Plugin Directory

Changeset 3264604


Ignore:
Timestamp:
03/31/2025 04:56:31 PM (12 months ago)
Author:
aguidrevitch
Message:

more fixes for https://wordpress.org/support/topic/elementor-embed-youtube-video-not-showing/

Location:
wp-meteor/trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • wp-meteor/trunk/assets/css/admin/settings.css.map

    r3264090 r3264604  
    11{
    22  "version": 3,
    3   "sources": ["../../../src/css/vendor/settings.css", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/settings.scss", "../../../src/css/admin/%3Cinput%20css%20p50BwT%3E", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/ultimate.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/simple.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/textarea.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/regexp-textarea.scss"],
     3  "sources": ["../../../src/css/vendor/settings.css", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/settings.scss", "../../../src/css/admin/%3Cinput%20css%20xnf7yB%3E", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/ultimate.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/simple.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/textarea.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/regexp-textarea.scss"],
    44  "sourcesContent": [".ui-state-default{display:inline;border-color:#ccc;border-width:1px;border-style:solid;border-bottom-width:0px;padding:12px 0px;background:none repeat scroll 0% 0% #e4e4e4}.ui-tabs-nav{padding-bottom:9px;padding-left:10px;border-bottom:1px solid #ccc}.ui-tabs-anchor,.ui-tabs-anchor:focus{text-decoration:none;font-weight:600;font-size:15px;line-height:24px;color:#7f7f7f;padding:10px;box-shadow:none}.ui-tabs-anchor:hover,.ui-state-active a{color:black}.ui-tabs-active,.ui-tabs-active:hover,.ui-tabs-active:active{color:#000;background:#efefef !important}.metabox-holder .postbox{max-width:100%}.metabox-holder .postbox h3{padding-left:10px}.settings-tab{float:left}.right-column-settings-page{max-width:270px;float:right}\n", "\n@import '../vendor/settings.css';\n\n@keyframes opacity {\n  0% {\n    opacity: 0;\n  }\n\n  50% {\n    opacity: 1\n  }\n\n  100% {\n    opacity: 0;\n  }\n}\n\n#tabs .ui-state-disabled {\n  opacity: 0.1;\n}\n\n#tabs {\n  .ui-tabs-nav {\n    display: flex;\n    padding-bottom: 0px;\n\n    .ui-tabs-tab {\n      margin-bottom: 0px;\n    }\n\n    .ui-tabs-anchor, .ui-tabs-anchor:focus {\n      display: block;\n      width: 100%;\n      height: 100%;\n    }\n\n  }\n\n  .tab { \n    display: none; \n    padding: 0 20px;\n  }\n\n  ul.content {\n    padding-inline-start: 40px;\n    li {\n      list-style-type: circle;\n      margin-left: 8px;\n    }\n  }\n\n  .answer {\n    padding-left: 20px;\n  }\n\n}\n\n.settings-tab {\n  float: none;\n  [dir=\"rtl\"] & {\n    direction: ltr;\n  }\n}\n\n#author {\n  .row {\n    display: flex;\n    flex-direction: row;\n  }\n  .author-image img {\n    width: 20vw;\n    height: auto;\n  }\n  .author-bio {\n    padding-left: 10px;\n    width: 70vw;\n    button {\n      padding: 2px;\n    }\n  }\n  ul {\n    padding-inline-start: 1em;\n    li {\n      list-style-type: circle;\n      margin-left: 1em;\n    }\n  }\n}\n\n@media screen and (max-width: 414px) {\n  #tabs {\n    .ui-tabs-nav {\n      display: flex;\n  \n      .ui-tabs-tab {\n        writing-mode: vertical-lr;\n        flex-grow: 1;\n      }\n\n    }\n  }\n  #author {\n    h1 {\n      text-align: center;\n    }\n    .row {\n      flex-direction: column;\n    }\n    .author-image img {\n      width: 100%;\n    }\n  }\n}\n\n.tooltip {\n  &.__react_component_tooltip {\n    z-index: 9999;\n  }\n  line-height: 1.4em;\n}\n\nsection.banner {\n  width: 100%;\n  background-color: #fff;\n  display: flex;\n  align-items: center;\n  border: 1px solid #ccc;\n  margin-top: 35px;\n  margin-bottom: 45px;\n  position: relative;\n\n  .image, .line, .button-wrap {\n    padding: 2px 4px;\n  }\n\n  .image img {\n    width: 120px;\n  }\n\n  .line {\n    font-weight: 600;\n    font-size: 15px;\n  }\n}\n\n\n@import './components/ultimate.scss';\n@import './components/simple.scss';\n@import './components/textarea.scss';\n@import './components/regexp-textarea.scss';", "@import '../vendor/settings.css';\n@keyframes opacity {\n  0% {\n    opacity: 0;\n  }\n  50% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n  }\n}\n#tabs .ui-state-disabled {\n  opacity: 0.1;\n}\n\n#tabs .ui-tabs-nav {\n  display: flex;\n  padding-bottom: 0px;\n}\n#tabs .ui-tabs-nav .ui-tabs-tab {\n  margin-bottom: 0px;\n}\n#tabs .ui-tabs-nav .ui-tabs-anchor, #tabs .ui-tabs-nav .ui-tabs-anchor:focus {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n#tabs .tab {\n  display: none;\n  padding: 0 20px;\n}\n#tabs ul.content {\n  padding-inline-start: 40px;\n}\n#tabs ul.content li {\n  list-style-type: circle;\n  margin-left: 8px;\n}\n#tabs .answer {\n  padding-left: 20px;\n}\n\n.settings-tab {\n  float: none;\n}\n[dir=rtl] .settings-tab {\n  direction: ltr;\n}\n\n#author .row {\n  display: flex;\n  flex-direction: row;\n}\n#author .author-image img {\n  width: 20vw;\n  height: auto;\n}\n#author .author-bio {\n  padding-left: 10px;\n  width: 70vw;\n}\n#author .author-bio button {\n  padding: 2px;\n}\n#author ul {\n  padding-inline-start: 1em;\n}\n#author ul li {\n  list-style-type: circle;\n  margin-left: 1em;\n}\n\n@media screen and (max-width: 414px) {\n  #tabs .ui-tabs-nav {\n    display: flex;\n  }\n  #tabs .ui-tabs-nav .ui-tabs-tab {\n    writing-mode: vertical-lr;\n    flex-grow: 1;\n  }\n  #author h1 {\n    text-align: center;\n  }\n  #author .row {\n    flex-direction: column;\n  }\n  #author .author-image img {\n    width: 100%;\n  }\n}\n.tooltip {\n  line-height: 1.4em;\n}\n.tooltip.__react_component_tooltip {\n  z-index: 9999;\n}\n\nsection.banner {\n  width: 100%;\n  background-color: #fff;\n  display: flex;\n  align-items: center;\n  border: 1px solid #ccc;\n  margin-top: 35px;\n  margin-bottom: 45px;\n  position: relative;\n}\nsection.banner .image, section.banner .line, section.banner .button-wrap {\n  padding: 2px 4px;\n}\nsection.banner .image img {\n  width: 120px;\n}\nsection.banner .line {\n  font-weight: 600;\n  font-size: 15px;\n}\n\n.ultimate ul {\n  display: flex;\n  flex-direction: column;\n}\n.ultimate ul li {\n  font-size: 1.2em;\n}\n.ultimate ul li .enabled {\n  display: flex;\n  margin: 0 4px;\n  width: 322px;\n  /* width: 434px; for 3s and 4s delays */\n  overflow: hidden;\n  line-height: 22px;\n}\n.ultimate ul li .enabled .slider {\n  margin: 4px;\n  width: 112px;\n  /* width: 224px; for 3s and 4s delays */\n  height: 20px;\n}\n.ultimate ul li .enabled .thumb {\n  height: 20px;\n  line-height: 20px;\n  width: 20px;\n  text-align: center;\n  background-color: #fff;\n  color: #000;\n  border-radius: 50%;\n  cursor: grab;\n  box-shadow: 0 0 2px 3px #3bf;\n}\n.ultimate ul li .enabled .track {\n  top: 0;\n  bottom: 0;\n  height: 16px;\n  margin: 2px 0;\n  border-radius: 999px;\n}\n.ultimate ul li label, .ultimate ul li .question-mark {\n  margin-left: 8px;\n  line-height: 30px;\n}\n.ultimate ul li .question-mark {\n  margin-left: 4px;\n  cursor: pointer;\n}\n\n[dir=rtl] .simple ul .enabled label {\n  padding-left: 4px;\n}\n\n.textarea ul .enabled {\n  display: block;\n}\n[dir=rtl] .textarea ul .enabled label {\n  padding-left: 4px;\n}\n.textarea ul .description {\n  margin: 10px 0 4px 0;\n  width: 80vw;\n}\n.textarea ul textarea {\n  height: 200px;\n  width: 80vw;\n  white-space: pre-line;\n}\n\n.regexp-textarea ul .enabled {\n  display: block;\n}\n[dir=rtl] .regexp-textarea ul .enabled label {\n  padding-left: 4px;\n}\n.regexp-textarea ul .description {\n  margin: 10px 0 4px 0;\n  width: 80vw;\n}\n.regexp-textarea ul div[contenteditable] {\n  white-space: pre;\n  display: inline-block;\n  min-height: 16em;\n  background-color: white;\n  box-shadow: 0 0 0 transparent;\n  border-radius: 4px;\n  border: 1px solid #8c8f94;\n  background-color: #fff;\n  color: #2c3338;\n  overflow: auto;\n  padding: 2px 6px;\n  line-height: 1.42857143;\n  resize: vertical;\n  width: 80%;\n}\n.regexp-textarea ul div[contenteditable] .error {\n  margin: 0;\n  border-bottom: 0;\n  border-top: 0;\n  padding: 0 4px;\n}\n.regexp-textarea ul div[contenteditable] .error::after {\n  content: \"invalid regular expression\";\n  float: right;\n  color: red;\n}\n.regexp-textarea ul textarea {\n  height: 200px;\n  width: 80vw;\n  white-space: pre-line;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL2FnL2RldmVsb3BtZW50L2Zhc3RwaXhlbC1zZXJ2ZXJzL3BhY2thZ2VzL3dwLW1ldGVvci9zcmMvY3NzL2FkbWluIiwic291cmNlcyI6WyJzZXR0aW5ncy5zY3NzIiwiY29tcG9uZW50cy91bHRpbWF0ZS5zY3NzIiwiY29tcG9uZW50cy9zaW1wbGUuc2NzcyIsImNvbXBvbmVudHMvdGV4dGFyZWEuc2NzcyIsImNvbXBvbmVudHMvcmVnZXhwLXRleHRhcmVhLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ1E7QUFFUjtFQUNFO0lBQ0U7O0VBR0Y7SUFDRTs7RUFHRjtJQUNFOzs7QUFJSjtFQUNFOzs7QUFJQTtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFLSjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7QUFDQTtFQUNFO0VBQ0E7O0FBSUo7RUFDRTs7O0FBS0o7RUFDRTs7QUFDQTtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7O0FBRUY7RUFDRTtFQUNBOztBQUVGO0VBQ0U7RUFDQTs7QUFDQTtFQUNFOztBQUdKO0VBQ0U7O0FBQ0E7RUFDRTtFQUNBOzs7QUFLTjtFQUVJO0lBQ0U7O0VBRUE7SUFDRTtJQUNBOztFQU1KO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUFLTjtFQUlFOztBQUhBO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBOzs7QUM3SUo7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0FBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUVBOztBQUdKO0VBQ0k7RUFDQTs7O0FDaERKO0VBQ0k7OztBQ0ZSO0VBQ0k7O0FBRUk7RUFDSTs7QUFLWjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQ2pCSjtFQUNJOztBQUVJO0VBQ0k7O0FBS1o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiXG5AaW1wb3J0ICcuLi92ZW5kb3Ivc2V0dGluZ3MuY3NzJztcblxuQGtleWZyYW1lcyBvcGFjaXR5IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuI3RhYnMgLnVpLXN0YXRlLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4xO1xufVxuXG4jdGFicyB7XG4gIC51aS10YWJzLW5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuXG4gICAgLnVpLXRhYnMtdGFiIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG5cbiAgICAudWktdGFicy1hbmNob3IsIC51aS10YWJzLWFuY2hvcjpmb2N1cyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICB9XG5cbiAgLnRhYiB7IFxuICAgIGRpc3BsYXk6IG5vbmU7IFxuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgfVxuXG4gIHVsLmNvbnRlbnQge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0MHB4O1xuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAuYW5zd2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cblxufVxuXG4uc2V0dGluZ3MtdGFiIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gIH1cbn1cblxuI2F1dGhvciB7XG4gIC5yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAuYXV0aG9yLWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDIwdnc7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIC5hdXRob3ItYmlvIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgd2lkdGg6IDcwdnc7XG4gICAgYnV0dG9uIHtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICB9XG4gIH1cbiAgdWwge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxZW07XG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG4gICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MTRweCkge1xuICAjdGFicyB7XG4gICAgLnVpLXRhYnMtbmF2IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gIFxuICAgICAgLnVpLXRhYnMtdGFiIHtcbiAgICAgICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gICNhdXRob3Ige1xuICAgIGgxIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLnJvdyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICAuYXV0aG9yLWltYWdlIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLnRvb2x0aXAge1xuICAmLl9fcmVhY3RfY29tcG9uZW50X3Rvb2x0aXAge1xuICAgIHotaW5kZXg6IDk5OTk7XG4gIH1cbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xufVxuXG5zZWN0aW9uLmJhbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBtYXJnaW4tdG9wOiAzNXB4O1xuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLmltYWdlLCAubGluZSwgLmJ1dHRvbi13cmFwIHtcbiAgICBwYWRkaW5nOiAycHggNHB4O1xuICB9XG5cbiAgLmltYWdlIGltZyB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICB9XG5cbiAgLmxpbmUge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG59XG5cblxuQGltcG9ydCAnLi9jb21wb25lbnRzL3VsdGltYXRlLnNjc3MnO1xuQGltcG9ydCAnLi9jb21wb25lbnRzL3NpbXBsZS5zY3NzJztcbkBpbXBvcnQgJy4vY29tcG9uZW50cy90ZXh0YXJlYS5zY3NzJztcbkBpbXBvcnQgJy4vY29tcG9uZW50cy9yZWdleHAtdGV4dGFyZWEuc2Nzcyc7IiwiLnVsdGltYXRlIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG5cbiAgICAgICAgLmVuYWJsZWQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgICAgICB3aWR0aDogMzIycHg7XG4gICAgICAgICAgICAvKiB3aWR0aDogNDM0cHg7IGZvciAzcyBhbmQgNHMgZGVsYXlzICovXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG5cbiAgICAgICAgICAgIC5zbGlkZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMTJweDtcbiAgICAgICAgICAgICAgICAvKiB3aWR0aDogMjI0cHg7IGZvciAzcyBhbmQgNHMgZGVsYXlzICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGh1bWIge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggM3B4ICMzYmZcbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIC50cmFjayB7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAycHggMDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsLCAucXVlc3Rpb24tbWFyayB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgLy8gZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnF1ZXN0aW9uLW1hcmsge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5zaW1wbGUgdWwge1xuXG4gICAgLmVuYWJsZWQgbGFiZWwge1xuICAgICAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gLnRvb2x0aXAge1xuICAgIC8vICAgICB6LWluZGV4OiA5OTk5O1xuICAgIC8vICAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gICAgLy8gfVxufVxuIiwiLnRleHRhcmVhIHVsIHtcblxuICAgIC5lbmFibGVkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW46IDEwcHggMCA0cHggMDtcbiAgICAgICAgd2lkdGg6IDgwdnc7XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICB3aWR0aDogODB2dztcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICAgIH1cbn1cbiIsIi5yZWdleHAtdGV4dGFyZWEgdWwge1xuXG4gICAgLmVuYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbiB7IFxuICAgICAgICBtYXJnaW46IDEwcHggMCA0cHggMDtcbiAgICAgICAgd2lkdGg6IDgwdnc7XG4gICAgfVxuXG4gICAgZGl2W2NvbnRlbnRlZGl0YWJsZV0ge1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICAgXG4gICAgICAgIG1pbi1oZWlnaHQ6IDE2ZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOGM4Zjk0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBjb2xvcjogIzJjMzMzODtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgICB3aWR0aDogODAlO1xuXG4gICAgICAgIC5lcnJvciB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICB9XG4gICAgICAgIC5lcnJvcjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJpbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvblwiO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIHdpZHRoOiA4MHZ3O1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgfVxufVxuIl19 */", ".ultimate ul {\n    display: flex;\n    flex-direction: column;\n\n    li {\n        font-size: 1.2em;\n\n        .enabled {\n            display: flex;\n            margin: 0 4px;\n            width: 322px;\n            /* width: 434px; for 3s and 4s delays */\n            overflow: hidden;\n            line-height: 22px;\n\n            .slider {\n                margin: 4px;\n                width: 112px;\n                /* width: 224px; for 3s and 4s delays */\n                height: 20px;\n            }\n\n            .thumb {\n                height: 20px;\n                line-height: 20px;\n                width: 20px;\n                text-align: center;\n                background-color: #fff;\n                color: #000;\n                border-radius: 50%;\n                cursor: grab;\n                box-shadow: 0 0 2px 3px #3bf\n            }\n    \n            .track {\n                top: 0;\n                bottom: 0;\n                height: 16px;\n                margin: 2px 0;\n                border-radius: 999px;\n            }\n        }\n\n        label, .question-mark {\n            margin-left: 8px;\n            // font-weight: 700;\n            line-height: 30px;\n        }\n\n        .question-mark {\n            margin-left: 4px;\n            cursor: pointer;\n        }\n    }\n}\n", ".simple ul {\n\n    .enabled label {\n        [dir=\"rtl\"] & {\n            padding-left: 4px;\n        }\n    }\n    // .tooltip {\n    //     z-index: 9999;\n    //     line-height: 1.4em;\n    // }\n}\n", ".textarea ul {\n\n    .enabled {\n        display: block;\n        label {\n            [dir=\"rtl\"] & {\n                padding-left: 4px;\n            }\n        }\n    }\n\n    .description {\n        margin: 10px 0 4px 0;\n        width: 80vw;\n    }\n\n    textarea {\n        height: 200px;\n        width: 80vw;\n        white-space: pre-line;\n    }\n}\n", ".regexp-textarea ul {\n\n    .enabled {\n        display: block;\n        label {\n            [dir=\"rtl\"] & {\n                padding-left: 4px;\n            }\n        }\n    }\n\n    .description { \n        margin: 10px 0 4px 0;\n        width: 80vw;\n    }\n\n    div[contenteditable] {\n        white-space: pre;\n        display: inline-block;   \n        min-height: 16em;\n        background-color: white;\n        box-shadow: 0 0 0 transparent;\n        border-radius: 4px;\n        border: 1px solid #8c8f94;\n        background-color: #fff;\n        color: #2c3338;\n        overflow: auto;\n        padding: 2px 6px;\n        line-height: 1.42857143;\n        resize: vertical;\n        width: 80%;\n\n        .error {\n            margin: 0;\n            border-bottom: 0;\n            border-top: 0;\n            padding: 0 4px;\n        }\n        .error::after {\n            content: \"invalid regular expression\";\n            float: right;\n            color: red;\n        }\n    }\n    \n    textarea {\n        height: 200px;\n        width: 80vw;\n        white-space: pre-line;\n    }\n}\n"],
    55  "mappings": "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",
  • wp-meteor/trunk/assets/js/public/public-debug.js

    r3264090 r3264604  
    853853    const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt);
    854854    const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt);
     855    const originalRemoveAttribute = scriptElt[removeAttribute].bind(scriptElt);
    855856    const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt);
    856857    const originalAttributes = scriptElt[__lookupGetter__]("attributes").bind(scriptElt);
     
    862863          c(delta_default(), "setting ", property, value);
    863864          if (property === "type" && value && !isJavascriptRegexp.test(value)) {
    864             return scriptElt[setAttribute](property, value);
     865            return originalSetAttribute(property, value);
    865866          }
    866867          if (property === "src" && value) {
     
    869870            originalSetAttribute("type", javascriptBlocked);
    870871          }
    871           return value ? scriptElt[setAttribute](prefix2 + property, value) : scriptElt[removeAttribute](prefix2 + property);
     872          return value ? originalSetAttribute(prefix2 + property, value) : originalRemoveAttribute(prefix2 + property);
    872873        },
    873874        get() {
     
    903904          originalSetAttribute("type", javascriptBlocked);
    904905        }
    905         return value ? originalSetAttribute(prefix2 + property, value) : scriptElt[removeAttribute](prefix2 + property);
     906        return value ? originalSetAttribute(prefix2 + property, value) : originalRemoveAttribute(prefix2 + property);
    906907      } else {
    907908        originalSetAttribute(property, value);
  • wp-meteor/trunk/assets/js/public/public-debug.js.map

    r3264090 r3264604  
    22  "version": 3,
    33  "sources": ["../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/delta.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/literals.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/globals.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/mocks/jquery.js", "../../../../fpo-inpage-first-interaction/src/browser/utils/delta.mjs", "../../../../fpo-inpage-first-interaction/src/browser/utils/console.mjs", "../../../../fpo-inpage-events/src/index.mjs", "../../../../fpo-inpage-first-interaction/src/browser/index.mjs", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/event-emitter.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/dispatcher.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/device-mode.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/animations.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/pp-menu.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/public.js"],
    4   "sourcesContent": ["export default () => Math.round(performance.now()) / 1000;\n", "export const\n    addEventListener = \"addEventListener\",\n    removeEventListener = \"removeEventListener\",\n    getAttribute = \"getAttribute\",\n    setAttribute = \"setAttribute\",\n    removeAttribute = \"removeAttribute\",\n    hasAttribute = \"hasAttribute\",\n    querySelector = \"querySelector\",\n    querySelectorAll = querySelector + \"All\",\n    appendChild = \"appendChild\",\n    removeChild = \"removeChild\",\n    createElement = \"createElement\",\n    tagName = \"tagName\",\n    getOwnPropertyDescriptor = \"getOwnPropertyDescriptor\",\n    prototype = \"prototype\",\n    __lookupGetter__ = \"__lookupGetter__\",\n    __lookupSetter__ = \"__lookupSetter__\",\n    DCL = \"DOMContentLoaded\",\n    L = \"load\",\n    E = \"error\";\n", "const\n    w = window,\n    d = document,\n    de = d.documentElement,\n    c = process.env.DEBUG ? console.log : () => { },\n    ce = console.error;\n\nexport {\n    w,\n    d,\n    de,\n    c,\n    ce,\n};", "import delta from \"../utils/delta\";\nimport {\n    addEventListener,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n    c,\n    ce,\n} from \"../globals\";\n\n/**\n * class name should not match mocked object\n */\nlet mocked = true;\nexport default class jQueryMock {\n    constructor() {\n        this.known = [];\n    }\n    init() {\n\n        let Mock;\n        let Mock$;\n\n        // the goal here is to capture a real jQuery object and override its load and ready methods\n        // to delay firing ready() until WP-Meteor finishes loading JS\n        const override = (jQuery, symbol) => {\n\n            if (mocked && jQuery && jQuery.fn && !jQuery.__wpmeteor) {\n                process.env.DEBUG && c(delta(), \"new \" + symbol + \" detected\", jQuery.__wpmeteor, jQuery);\n\n                // can't use () => {} as it binds to different this\n                const enqueue = function (func) {\n                    process.env.DEBUG && c(delta(), \"enqueued jQuery(func)\", func);\n                    // there is a loop when you call $(\"selector\", $), as it calls $.ready\n                    // which in turn calls readyList.then( fn ) and returns this\n                    // without this code, page-infinite-loop.html hangs\n                    if (func === jQuery) {\n                        return this;\n                    }\n                    d[addEventListener](DCL, e => {\n                        process.env.DEBUG && c(delta(), \"running enqueued jQuery function\", func);\n                        func.call(d, jQuery, e, \"jQueryMock\");\n                    });\n                    return this;\n                };\n\n                this.known.push([jQuery, jQuery.fn.ready, jQuery.fn.init?.prototype?.ready]);\n                jQuery.fn.ready = enqueue;\n                if (jQuery.fn.init?.prototype?.ready) {\n                    jQuery.fn.init.prototype.ready = enqueue;\n                }\n                jQuery.__wpmeteor = true;\n            }\n            return jQuery;\n        };\n\n        if (window.jQuery || window.$) {\n            // not throwing error, as it might come from a chrome extension\n            // but also not mocking it, just giving a warning\n            process.env.DEBUG && ce(delta(), \"WARNING: JQUERY WAS INSTALLED BEFORE WP-METEOR, PROBABLY FROM A CHROME EXTENSION\");\n        }\n\n        Object.defineProperty(window, \"jQuery\", {\n            get() {\n                return Mock;\n            },\n            set(jQuery) {\n                Mock = override(jQuery, \"jQuery\");\n            },\n            configurable: true,\n        });\n\n        Object.defineProperty(window, \"$\", {\n            get() {\n                return Mock$;\n            },\n            set($) {\n                Mock$ = override($, \"$\");\n            },\n            configurable: true,\n        });\n    }\n    unmock() {\n        this.known.forEach(([jQuery, oldReady, oldPrototypeReady]) => {\n            process.env.DEBUG && c(delta(), \"unmocking jQuery\", jQuery);\n            jQuery.fn.ready = oldReady;\n            if (jQuery.fn.init?.prototype?.ready && oldPrototypeReady) {\n                jQuery.fn.init.prototype.ready = oldPrototypeReady;\n            }\n        });\n        mocked = false;\n    }\n}\n", "export default () => Math.round(performance.now()) / 1000;\n", "const c = process.env.DEBUG ? console.log : () => { };\nexport default c;", "const EVENT_FIRST_INTERACTION = \"fpo:first-interaction\";\nconst EVENT_REPLAY_CAPTURED_EVENTS = \"fpo:replay-captured-events\";\nconst EVENT_LCP_ELEMENT = \"fpo:lcp-element\";\nconst EVENT_LCP_ELEMENT_CANDIDATE = \"fpo:lcp-element-candidate\";\nconst EVENT_LCP_LOADED = \"fpo:lcp-loaded\";\nconst EVENT_LAZY_ELEMENT = \"fpo:lazy-element\";\nconst EVENT_STYLES_TAG_AVAILABLE = \"fpo:styles-tag-available\";\nconst EVENT_CSS_LOADED = \"fpo:css-loaded\";\nconst EVENT_ELEMENT_LOADED = \"fpo:element-loaded\";\nconst EVENT_IMAGES_LOADED = \"fpo:images-loaded\";\nconst EVENT_THE_END = \"fpo:the-end\";\nconst EVENT_SCROLL_TO_REVEAL_ANIMATIONS = \"fpo:scroll-to-reveal-animations\";\n\nexport {\n    EVENT_LCP_ELEMENT,\n    EVENT_LCP_ELEMENT_CANDIDATE,\n    EVENT_LCP_LOADED,\n    EVENT_LAZY_ELEMENT,\n    EVENT_STYLES_TAG_AVAILABLE,\n    EVENT_FIRST_INTERACTION, \n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n    EVENT_SCROLL_TO_REVEAL_ANIMATIONS,\n};\n", "import delta from \"./utils/delta.mjs\";\nimport c from \"./utils/console.mjs\";\nimport { EVENT_FIRST_INTERACTION, EVENT_REPLAY_CAPTURED_EVENTS } from \"@aguidrevitch/fpo-inpage-events\";\n\nconst EVENT_CLICK = \"click\";\n\nconst w = window;\nconst wOrigAddEventListener = w.addEventListener.bind(w);\nconst wOrigRemoveEventListener = w.removeEventListener.bind(w);\nconst ra = \"removeAttribute\";\nconst ga = \"getAttribute\";\nconst sa = \"setAttribute\";\nconst passiveEvents = [\"touchstart\", \"touchmove\", \"touchend\", \"touchcancel\", \"keydown\", \"wheel\"]; //, \"scroll\"];\nconst activeEvents = [\"mouseover\", \"mouseout\", EVENT_CLICK];\nconst captureEvents = [\"touchstart\", \"touchend\", \"touchcancel\", \"mouseover\", \"mouseout\", EVENT_CLICK];\nconst prefix = \"data-wpmeteor-\";\nconst separator = \"----\";\nconst dispatchEvent = \"dispatchEvent\";\n\nconst synteticCick = e => {\n    process.env.DEBUG && c(delta(), \"creating syntetic click event for\", e);\n    const event = new MouseEvent(EVENT_CLICK, {\n        view: e.view,\n        bubbles: true,\n        cancelable: true\n    });\n    Object.defineProperty(event, \"target\", { writable: false, value: e.target });\n    return event;\n};\n\nclass InteractionEvents {\n    static capture() {\n        let firstInteractionFired = false;\n\n        // lighthouse sets __nativePromise and __nativeURL\n        // to the original Promise and URL\n        const [, p, n] = `${window.Promise}`.split(/[\\s[(){]+/s);\n        if (w[\"__\" + n + p]) {\n            return;\n        }\n\n        const capturedEvents = [];\n        const captureEvent = e => {\n            if (e.target && (dispatchEvent in e.target)) {\n                if (!e.isTrusted) {\n                    // this is a flag that this event is probably replaying\n                    process.env.DEBUG && c(delta(), \"the event is not trusted, configuration issues, not recording\", e.type, e.target);\n                    process.env.DEBUG && c(delta(), \"please double check if first interaction listener was installed before wp-meteor\");\n                    return;\n                }\n                if (e.cancelable && !passiveEvents.includes(e.type)) {\n                    try {\n                        e.preventDefault();\n                    } catch { }\n                }\n                e.stopImmediatePropagation();\n\n                if (e.type === EVENT_CLICK) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(synteticCick(e));\n                } else if (captureEvents.includes(e.type)) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(e);\n                }\n                // scroll event target doesn't have setAttribute\n                // if (e.target[sa]) {\n                //     e.target[sa](prefix + e.type, true);\n                // }\n                e.target[sa](prefix + e.type, true);\n                if (!firstInteractionFired) {\n                    firstInteractionFired = true;\n                    w[dispatchEvent](new CustomEvent(EVENT_FIRST_INTERACTION));\n                }\n            }\n        };\n\n        w.addEventListener(EVENT_REPLAY_CAPTURED_EVENTS, () => {\n            process.env.DEBUG && c(delta(), separator, \"got \" + EVENT_REPLAY_CAPTURED_EVENTS);\n            process.env.DEBUG && c(delta(), separator, \"removing event listeners\");\n            activeEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: false, capture: true }));\n            passiveEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: true, capture: true }));\n\n            let e;\n            while (e = capturedEvents.shift()) { // eslint-disable-line no-cond-assign\n                var target = e.target;\n                if (target[ga](prefix + \"touchstart\") && target[ga](prefix + \"touchend\") && !target[ga](prefix + EVENT_CLICK)) {\n                    if (target[ga](prefix + \"touchmove\")) {\n                        process.env.DEBUG && c(delta(), `touchmove happened, so not dispatching ${EVENT_CLICK} to `, e.target);\n                    } else {\n                        // why would I want to remove prefix + \"touchmove\", if previous if checks it is present?\n                        // target[ra](prefix + \"touchmove\");\n                        capturedEvents.push(synteticCick(e));\n                    }\n                    target[ra](prefix + \"touchstart\");\n                    target[ra](prefix + \"touchend\");\n                } else {\n                    target[ra](prefix + e.type);\n                }\n                process.env.DEBUG && c(delta(), \" dispatching \" + e.type + \" to \", e.target);\n                target[dispatchEvent](e);\n            }\n        });\n\n        process.env.DEBUG && c(delta(), separator, \"installing first interaction event listeners\");\n        activeEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: false, capture: true }));\n        passiveEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: true, capture: true }));\n    }\n}\n\nexport {\n    InteractionEvents,\n};\n\nexport default InteractionEvents;", "export default class EventEmitter {\n    constructor() {\n        this.l = [];\n    }\n    emit(name, data = null) {\n        this.l[name] && this.l[name].forEach(l => l(data));\n    }\n    on(name, callback) {\n        this.l[name] ||= [];\n        this.l[name].push(callback);\n    }\n    off(name, callback) {\n        this.l[name] = (this.l[name] || []).filter(c => c !== callback);\n    }\n    /*\n    once(name, callback) {\n        const closure = () => {\n            this.off(closure);\n            callback();\n        }\n        this.l[name] ||= [];\n        this.l[name].push(closure);\n    }\n    */\n}\n", "import EventEmitter from \"./event-emitter\";\nexport default new EventEmitter();\n", "import {\n    setAttribute,\n    appendChild,\n    createElement,\n} from \"../literals\";\n\nimport {\n    d,\n} from \"../globals\";\n\nconst $deviceMode = d[createElement](\"span\");\n$deviceMode[setAttribute](\"id\", \"elementor-device-mode\");\n$deviceMode[setAttribute](\"class\", \"elementor-screen-only\");\n\nlet attached = false;\n\nexport default () => {\n    if (!attached) {\n        d.body[appendChild]($deviceMode);\n    }\n    return getComputedStyle($deviceMode, \":after\").content.replace(/\"/g, \"\");\n};\n", "import delta from \"../utils/delta\";\nimport dispatcher from \"../utils/dispatcher\";\nimport getCurrentDeviceMode from \"./device-mode\";\nimport {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    L,\n} from \"../literals\";\nimport {\n    w,\n    d,\n    de,\n    c,\n} from \"../globals\";\n\nconst getClass = (el) => {\n    return el[getAttribute](\"class\") || \"\";\n};\n\nconst setClass = (el, value) => {\n    return el[setAttribute](\"class\", value);\n};\n\nexport default () => {\n    w[addEventListener](L, function () {\n        const mode = getCurrentDeviceMode();\n        const vw = Math.max(de.clientWidth || 0, w.innerWidth || 0);\n        const vh = Math.max(de.clientHeight || 0, w.innerHeight || 0);\n\n        const keys = [\"_animation_\" + mode, \"animation_\" + mode, \"_animation\", \"_animation\", \"animation\"];\n        Array.from(d[querySelectorAll](\".elementor-invisible\")).forEach(el => {\n\n            // we  only want to optimize elements in the top of the page\n            const viewportOffset = el.getBoundingClientRect();\n            if (viewportOffset.top + w.scrollY <= vh && viewportOffset.left + w.scrollX < vw) {\n                try {\n                    const settings = JSON.parse(el[getAttribute](\"data-settings\"));\n                    if (settings.trigger_source) {\n                        return;\n                    }\n                    const animationDelay = settings._animation_delay || settings.animation_delay || 0;\n                    let animation, key;\n\n                    for (var i = 0; i < keys.length; i++) {\n                        if (settings[keys[i]]) {\n                            key = keys[i];\n                            animation = settings[key];\n                            break;\n                        }\n                    }\n\n                    if (animation) {\n                        process.env.DEBUG && c(delta(), \"animating with\" + animation, el);\n                        const oldClass = getClass(el);\n                        const newClass = animation === \"none\"\n                            ? oldClass\n                            : oldClass + \" animated \" + animation;\n\n                        const animate = () => {\n                            setClass(el, newClass.replace(/\\belementor-invisible\\b/, \"\"));\n                            keys.forEach(key => delete settings[key]);\n                            el[setAttribute](\"data-settings\", JSON.stringify(settings));\n                        };\n\n                        let timeout = setTimeout(animate, animationDelay);\n\n                        dispatcher.on(\"fi\", () => {\n                            clearTimeout(timeout);\n                            setClass(el, getClass(el).replace(new RegExp(\"\\\\b\" + animation + \"\\\\b\"), \"\"));\n                        });\n\n                    }\n                } catch (e) {\n                    console.error(e);\n                }\n            }\n        });\n    });\n};", "import {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    appendChild,\n    removeChild,\n    createElement,\n    tagName,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n} from \"../globals\";\n\nconst inmega = \"data-in-mega_smartmenus\";\n\nexport default () => {\n\n    const div = d[createElement](\"div\");\n    div.innerHTML = \"<span class=\\\"sub-arrow --wp-meteor\\\"><i class=\\\"fa\\\" aria-hidden=\\\"true\\\"></i></span>\";\n    const placeholder = div.firstChild;\n\n    const prevAll = el => {\n        const result = [];\n        while (el = el.previousElementSibling) // eslint-disable-line no-cond-assign\n            result.push(el);\n        return result;\n    };\n\n    d[addEventListener](DCL, function () {\n        Array.from(d[querySelectorAll](\".pp-advanced-menu ul\")).forEach(ul => {\n            /* skipping mega menues */\n            if (ul[getAttribute](inmega)) {\n                return;\n            } else if ((ul[getAttribute](\"class\") || \"\").match(/\\bmega-menu\\b/)) {\n                ul[querySelectorAll](\"ul\").forEach(ul => {\n                    ul[setAttribute](inmega, true);\n                });\n            }\n            let prev = prevAll(ul);\n            let a = prev.filter(el => el).filter(el => el[tagName] === \"A\").pop();\n            if (!a) {\n                a = prev.map(el => Array.from(el[querySelectorAll](\"a\"))).filter(el => el).flat().pop();\n            }\n            if (a) {\n                const span = placeholder.cloneNode(true);\n                a[appendChild](span);\n\n                const observer = new MutationObserver(mutations => {\n                    mutations.forEach(({ addedNodes }) => {\n                        addedNodes.forEach(node => {\n                            // For each added script tag\n                            if (node.nodeType === 1 && \"SPAN\" === node[tagName]) {\n                                try {\n                                    a[removeChild](span);\n                                } catch {\n                                    // do nothing\n                                }\n                            }\n                        });\n                    });\n                });\n                observer.observe(a, { childList: true });\n            }\n        });\n    });\n};", "/* global _wpmeteor, RocketLazyLoadScripts */\n\nimport jQueryMock from \"./includes/mocks/jquery\";\nimport InteractionEvents from \"@aguidrevitch/fpo-inpage-first-interaction\";\nimport dispatcher from \"./includes/utils/dispatcher\";\nimport delta from \"./includes/utils/delta\";\nimport elementorAnimations from \"./includes/elementor/animations\";\nimport elementorPP from \"./includes/elementor/pp-menu\";\nimport {\n    addEventListener,\n    removeEventListener,\n    getAttribute,\n    setAttribute,\n    removeAttribute,\n    hasAttribute,\n    // querySelectorAll,\n    appendChild,\n    removeChild,\n    tagName,\n    getOwnPropertyDescriptor,\n    prototype,\n    __lookupGetter__,\n    __lookupSetter__,\n    DCL,\n    L,\n    E,\n} from \"./includes/literals\";\nimport {\n    w,\n    d,\n    c,\n    ce,\n} from \"./includes/globals\";\n\nimport {\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_FIRST_INTERACTION,\n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n} from \"@aguidrevitch/fpo-inpage-events\";\n\nconst RSC = \"readystatechange\",\n    M = \"message\",\n    separator = \"----\",\n    S = \"SCRIPT\",\n    prefix = \"data-wpmeteor-\",\n    Object_defineProperty = Object.defineProperty, // eslint-disable-line camelcase\n    Object_defineProperties = Object.defineProperties, // eslint-disable-line camelcase\n    javascriptBlocked = \"javascript/blocked\",\n    isJavascriptRegexp = /^\\s*(application|text)\\/javascript|module\\s*$/i,\n    _rAF = \"requestAnimationFrame\",\n    _rIC = \"requestIdleCallback\",\n    _setTimeout = \"setTimeout\",\n    __dynamic = \"__dynamic\";\n\nconst windowEventPrefix = w.constructor.name + \"::\";\nconst documentEventPrefix = d.constructor.name + \"::\";\n\nconst forEach = function (callback, thisArg) {\n    thisArg = thisArg || w;\n    for (var i = 0; i < this.length; i++) {\n        callback.call(thisArg, this[i], i, this);\n    }\n};\n\nif (\"NodeList\" in w && !NodeList[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling NodeList.forEach\");\n    NodeList[prototype].forEach = forEach;\n}\nif (\"HTMLCollection\" in w && !HTMLCollection[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling HTMLCollection.forEach\");\n    HTMLCollection[prototype].forEach = forEach;\n}\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor[\"elementor-animations\"]) {\n        elementorAnimations();\n    }\n\n    if (_wpmeteor[\"elementor-pp\"]) {\n        elementorPP();\n    }\n})();\n\nconst reorder = [];\nconst defer = [];\nconst async = [];\n\nlet DONE = false;\nconst eventQueue = [];\nlet listeners = {};\nlet WindowLoaded = false;\nlet firedEventsCount = 0;\n\nlet rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\nlet rIC = w[_rIC] || rAF;\nd[addEventListener](\"visibilitychange\", () => {\n    rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\n    rIC = w[_rIC] || rAF;\n});\n\nconst nextTick = w[_setTimeout];\n\nlet createElementOverride;\nconst capturedAttributes = [\"src\", \"type\"];\n\n/* Hack around 'avoid serving legacy javascript to modern browsers' */\nconst O = Object,\n    definePropert = \"definePropert\";\n\nO[definePropert + \"y\"] = (object, property, options) => {\n    if (object === w && ([\"jQuery\", \"onload\"].indexOf(property) >= 0)\n        || (object === d || object === d.body) && [\"readyState\", \"write\", \"writeln\", \"on\" + RSC].indexOf(property) >= 0) {\n        if ([\"on\" + RSC, \"on\" + L].indexOf(property) && options.set) {\n            listeners[\"on\" + RSC] = listeners[\"on\" + RSC] || [];\n            listeners[\"on\" + RSC].push(options.set);\n            // objectRedefinitions['onreadystatechange'] = options;\n        } else {\n            process.env.DEBUG && ce(\"Denied \" + (object.constructor || {}).name + \" \" + property + \" redefinition\");\n        }\n        return object;\n    } else if ((object instanceof HTMLScriptElement) && capturedAttributes.indexOf(property) >= 0) {\n\n        if (!object[property + \"__def\"]) {\n            const descriptor = O[getOwnPropertyDescriptor](object, property);\n            Object_defineProperty(object, property, {\n                set(value) {\n                    if (object[property + \"__set\"]) {\n                        return object[property + \"__set\"].call(object, value);\n                    }\n                    return descriptor.set.call(object, value);\n                },\n                get() {\n                    if (object[property + \"__get\"]) {\n                        return object[property + \"__get\"].call(object);\n                    }\n                    return descriptor.get.call(object);\n                }\n            });\n            object[property + \"__def\"] = true;\n        }\n\n        if (options.get) {\n            object[property + \"__get\"] = options.get;\n        }\n\n        if (options.set) {\n            object[property + \"__set\"] = options.set;\n        }\n\n        return object;\n    }\n    // console.log(\"object\", object, \"property\", property, \"options\", options, new Error().stack);\n    return Object_defineProperty(object, property, options);\n};\n\nO[definePropert + \"ies\"] = (object, properties) => {\n    // console.log(\"object\", object, \"properties\", properties);\n    for (let i in properties) {\n        O[definePropert + \"y\"](object, i, properties[i]);\n    }\n    // symbols are not enumerable,\n    // so we have to use Object.getOwnPropertySymbols\n    // for compatibility with https://modelviewer.dev/\n    for (let sym of O.getOwnPropertySymbols(properties)) {\n        O[definePropert + \"y\"](object, sym, properties[sym]);\n    }\n    return object;\n};\n\nif (process.env.DEBUG) {\n    d[addEventListener](RSC, () => {\n        c(delta(), separator, RSC, d.readyState);\n    });\n\n    d[addEventListener](DCL, () => {\n        c(delta(), separator, DCL);\n    });\n\n    dispatcher.on(EVENT_THE_END, () => {\n        c(delta(), separator, EVENT_THE_END);\n        c(delta(), separator, firedEventsCount + \" queued events fired\");\n    });\n\n    w[addEventListener](L, () => {\n        c(delta(), separator, L);\n    });\n}\n\n// saving original methods\nconst origAddEventListener = EventTarget[prototype][addEventListener];\nconst origRemoveEventListener = EventTarget[prototype][removeEventListener];\nconst dOrigAddEventListener = origAddEventListener.bind(d);\nconst dOrigRemoveEventListener = origRemoveEventListener.bind(d);\nconst wOrigAddEventListener = origAddEventListener.bind(w);\nconst wOrigRemoveEventListener = origRemoveEventListener.bind(w);\nconst origCreateElement = Document[prototype].createElement;\nconst dOrigCreateElement = origCreateElement.bind(d);\nconst origReadyStateGetter = d.__proto__[__lookupGetter__](\"readyState\").bind(d);  \n\nlet readyState = \"loading\";\nObject_defineProperty(d, \"readyState\", {\n    get() { return readyState; },\n    set(value) { return readyState = value; },\n});\n\nconst hasUnfiredListeners = (eventNames) => {\n    return eventQueue.filter(([event, , context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            for (let i = 0; i < listeners[name].length; i++) {\n                if (listeners[name][i]) {\n                    const listenerKey = name + \"::\" + j + \"::\" + i;\n                    if (!firedListeners[listenerKey]) {\n                        return true;\n                    }\n                }\n            }\n        } catch {\n            // do nothing\n        }\n    }).length;\n};\n\nlet currentlyFiredEvent;\nconst firedListeners = {};\nconst fireQueuedEvents = (eventNames) => {\n    eventQueue.forEach(([event, readyState, context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            if ((listeners[name] || []).length) {\n                // listeners[name].forEach doesn't work as the listeners might be added \n                // during the loop\n                for (let i = 0; i < listeners[name].length; i++) {\n                    const func = listeners[name][i];\n                    if (func) {\n                        // readystatechanges fires multiple time times on same \n                        // listener with different readyState, accounting for that\n                        // const listenerKey = event === M \n                        //     ? name + '::' + j + '::' + i + '::' + readyState\n                        //     : name + '::' + i + '::' + readyState;\n                        const listenerKey = name + \"::\" + j + \"::\" + i;\n                        if (!firedListeners[listenerKey]) {\n                            firedListeners[listenerKey] = true;\n                            d.readyState = readyState;\n                            currentlyFiredEvent = name;\n                            try {\n                                firedEventsCount++;\n                                process.env.DEBUG && c(delta(), \"firing \" + event.type + \"(\" + d.readyState + \") for\", func[prototype] ? func[prototype].constructor : func);\n                                if (!func[prototype] || func[prototype].constructor === func) {\n                                    func.bind(context)(event);\n                                } else {\n                                    func(event);\n                                }\n                            } catch (e) {\n                                ce(e, func);\n                            }\n                            currentlyFiredEvent = null;\n                        }\n                    }\n                }\n            }\n        } catch (e) {\n            ce(e);\n        }\n    });\n};\n\n// we need to clone L, DCL, RSC events\n// because we internally track them and use them, eg window.load\n// if some script like elementor runs e.stopImmediatePropagation()\n// we won't ever get them, just the same way we do in the inpage-first-interaction\ndOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), d]);\n});\ndOrigAddEventListener(RSC, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + RSC);\n    eventQueue.push([new e.constructor(RSC, e), origReadyStateGetter(), d]);\n});\nwOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued window \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), w]);\n});\nwOrigAddEventListener(L, (e) => {\n    WindowLoaded = true;\n    process.env.DEBUG && c(delta(), \"enqueued window \" + L);\n    eventQueue.push([new e.constructor(L, e), origReadyStateGetter(), w]);\n    // we must fire queued events for excluded scripts\n    // if firstInteractionFired, then some scripts might have registered load event listeners\n    // and they will be fired as well, which is invalid behaviour\n    // https://wordpress.org/support/topic/meteor-blocks-contact-form-email/\n    if (!iterating) {\n        fireQueuedEvents([DCL, RSC, M, L]);\n    }\n});\nconst messageListener = (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued \" + M);\n    eventQueue.push([e, d.readyState, w]);\n};\n\nconst origWindowOnMessageGetter = w[__lookupGetter__](\"onmessage\");\nconst origWindowOnMessageSetter = w[__lookupSetter__](\"onmessage\");\n\n// will be called inside iterate, right before dispatching EVENT_THE_END\nconst restoreMessageListener = () => {\n    // this code is called only when all the events were fired\n    wOrigRemoveEventListener(M, messageListener);\n    // restoring message listeners\n    (listeners[windowEventPrefix + \"message\"] || []).forEach(listener => {\n        wOrigAddEventListener(M, listener);\n    });\n    Object_defineProperty(w, \"onmessage\", {\n        get: origWindowOnMessageGetter,\n        set: origWindowOnMessageSetter,\n    });\n    process.env.DEBUG && c(delta(), \"message listener restored\");\n};\n// removal will be inside iterate\nwOrigAddEventListener(M, messageListener);\n\n// jQuery mock allows to trigger jQuery.ready early\n// because if we rely on native logics, the ready() listeners will fire after window.load\nconst jQuery = new jQueryMock();\njQuery.init();\n\n// there are 3 cases\n// 1. first interaction fires before window.load as a resut of user interaction\n// 2. window.load fires before first interaction \n// 3. !!!!!!! 3rd party scripts might trigger it programmatically if they were excluded from optimization\nconst startIterating = () => {\n    if (!iterating && !DONE) {\n        iterating = true;\n        // mayBePreloadScripts();\n        d.readyState = \"loading\";\n        rAF(flushPreloadsAndPreconnects);\n        rAF(iterate); // starts the iteration\n        // nextTick(iterate); // starts the iteration\n    }\n    /**\n     * If window.load fires after iteration complete, eg some images delay window.load\n     * there might be some unfired events left in the queue\n     * so we will restart iteration which will fire them\n     */\n    if (!WindowLoaded) {\n        wOrigAddEventListener(L, () => {\n            process.env.DEBUG && c(delta(), separator, \"starting iterating after window loaded\");\n            startIterating();\n        });\n    }\n};\n\n// We need CSS to start iterating, because there are cases,\n// when something injects CSS before some <link>, that is \n// inside <noscript>. This is why we wait for EVENT_CSS_LOADED,\n// which triggers EVENT_IMAGES_LOADED\nprocess.env.SPO || wOrigAddEventListener(EVENT_FIRST_INTERACTION, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating on first interaction\");\n    startIterating();\n});\n\n/* EVENT_IMAGES_LOADED is an internal event, known to dispatcher only */\ndispatcher.on(EVENT_IMAGES_LOADED, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating after images loaded\");\n    startIterating();\n});\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor.rdelay >= 0) {\n        InteractionEvents.capture();\n    }\n})();\n\n// scriptsToLoad is set to 1 to allow an extra call at the end of iteration\n// that means that once last script loads, it won't trigger the end of the cycle\n// only after all the events fire, the cycle will end\nlet scriptsToLoad = [-1];\nconst scriptLoaded = (event) => {\n    process.env.DEBUG && c(delta(), \"scriptLoaded\", event.target, scriptsToLoad.length);\n    scriptsToLoad = scriptsToLoad.filter(script => script !== event.target);\n    if (!scriptsToLoad.length) {\n        // this is ultimate end of the iteration cycle\n        nextTick(dispatcher.emit.bind(dispatcher, EVENT_THE_END));\n    }\n};\n\nlet i = 0;\nlet iterating = false;\n\n// TODO: async and defer scripts can be injected into the document in parallel\n// we can either insert them in 2 batches (defer, then async), or even in one batch\nconst iterate = () => {\n    process.env.DEBUG && c(delta(), \"it\", i++, reorder.length);\n    const element = reorder.shift();\n    if (element) {\n        // process.env.DEBUG && c(separator, \"iterating\", element, element.dataset);\n        if (element[getAttribute](prefix + \"src\")) {\n            if (element[hasAttribute](\"async\") || element[__dynamic]) {\n                if (element.isConnected) {\n                    // we can't be sure that it is going to be inserted into the DOM\n                    process.env.DEBUG && c(delta(), \"pushed to scriptsToLoad\", scriptsToLoad);\n                    scriptsToLoad.push(element);\n                    // https://github.com/aguidrevitch/fpo-javascript-rewrite/issues/6\n                    // https://wordpress.org/support/topic/script-loading-waited-on-js-file/\n                    // if an async script hangs for longer than 1 seconds\n                    // we stop waiting for it to finish page load\n                    setTimeout(scriptLoaded, 1000, { target: element });\n                }\n                // even if it is not in the scriptsToLoad list, \n                // scriptLoaded won't remove it from the list\n                unblock(element, scriptLoaded);\n                nextTick(iterate);\n            } else {\n                // process.env.DEBUG && c(delta(), \"sync\", element);\n                unblock(element, nextTick.bind(null, iterate));\n                // iterate()\n            }\n        } else if (element.origtype == javascriptBlocked) {\n            unblock(element);\n            // allow inserted script to execute\n            nextTick(iterate);\n        } else {\n            // it might be wrongfully processed script by backend, eg type=\"application/ld+json\" \n            // and execution will stop here\n            process.env.DEBUG && ce(\"running next iteration\", element, element.origtype, element.origtype == javascriptBlocked);\n            nextTick(iterate);\n        }\n        // } else if (scriptsToInsert) {\n        //     process.env.DEBUG && c(delta(), scriptsToInsert, \"more scripts to insert\");\n        //     rAF(iterate);\n    } else {\n        if (defer.length) {\n            process.env.DEBUG &&\n                defer.forEach(script =>\n                    c(delta(), \"adding deferred script from defer queue to reorder\", script.cloneNode(true))\n                );\n            reorder.push(...defer);\n            defer.length = 0;\n\n            // mayBePreloadScripts();\n            nextTick(iterate);\n\n            // process.env.DEBUG && c('loaded all the scripts');\n            // not restoring original addEventListener\n            // to avoid unexpected failures,\n            // however, that triggers spurious handlers which were sleeping\n            // d[addEventListener] = dOrigAddEventListener;\n        } else if (hasUnfiredListeners([DCL, RSC, M])) {\n            process.env.DEBUG && c(delta(), \"firing unfired listeners\");\n            fireQueuedEvents([DCL, RSC, M]);\n            nextTick(iterate);\n        } else if (WindowLoaded) {\n            // as cycle starts in 'fi' listener\n            if (hasUnfiredListeners([L, M])) {\n                fireQueuedEvents([L, M]);\n                nextTick(iterate);\n            } else if (scriptsToLoad.length > 1) {\n                // can get here only if started loading async scripts\n                process.env.DEBUG && c(delta(), `waiting for ${scriptsToLoad.length - 1} more scripts to load`, scriptsToLoad);\n                rIC(iterate);\n            } else if (async.length) {\n                process.env.DEBUG &&\n                    async.forEach(script =>\n                        c(delta(), \"adding async script from async queue to reorder\", script.cloneNode(true))\n                    );\n\n                reorder.push(...async);\n                async.length = 0;\n\n                // mayBePreloadScripts();\n                nextTick(iterate);\n            } else {\n                // CloudFlare RocketLoader workaround\n                if (w.RocketLazyLoadScripts) {\n                    try {\n                        RocketLazyLoadScripts.run();\n                    } catch (e) {\n                        ce(e);\n                    }\n                }\n                d.readyState = \"complete\";\n\n                // restoring message listener here to avoid messages that can fall\n                // in the gap before EVENT_THE_END fires\n                restoreMessageListener();\n\n                // restoring original jQuery.ready here to avoid calls that can fall\n                // in the gap before EVENT_THE_END fires\n                jQuery.unmock();\n\n                // We can't restore original event listeners\n                // because on slow connections, 3rd party scripts might be loaded late\n                // and bind to window.load or anything else we track\n                // documentAddEventListener = dOrigAddEventListener;\n                // documentRemoveEventListener = dOrigRemoveEventListener;\n                // windowAddEventListener = wOrigAddEventListener;\n                // windowRemoveEventListener = wOrigRemoveEventListener;\n\n                // process.env.DEBUG && c('running emulatedWindowLoaded');\n                // technically, iterating = false is not needed\n                // as the only place where it is checked is inside window.load\n                // and here he has already fired as WindowLoaded === true\n                iterating = false;\n                DONE = true;\n\n                // setTimeout(() => dispatcher.emit(EVENT_THE_END));\n                w[_setTimeout](() => scriptLoaded({ target: -1 }));\n            }\n        } else {\n            // exiting iterate() cycle in case window.load hasn't fired yet\n            iterating = false;\n        }\n    }\n};\n\nconst cloneScript = (el) => {\n\n    const newElement = dOrigCreateElement(S);\n\n    const attrs = el.attributes;\n    // console.log(\"newElement\", attrs.map(attr => attr.name + \"=\" + attr.value));\n\n    // move attributes\n    for (var i = attrs.length - 1; i >= 0; i--) {\n        if (!attrs[i].name.startsWith(prefix)) {\n            newElement[setAttribute](attrs[i].name, attrs[i].value);\n        }\n    }\n\n    const type = el[getAttribute](prefix + \"type\"); // data-wpmeteor-type\n    if (type) {\n        newElement.type = type;\n    } else {\n        newElement.type = \"text/javascript\";\n    }\n\n    // CloudFlare RocketLoader workaround\n    if ((el.textContent || \"\").match(/^\\s*class RocketLazyLoadScripts/)) {\n        newElement.textContent = el.textContent.replace(/^\\s*class\\s*RocketLazyLoadScripts/, \"window.RocketLazyLoadScripts=class\").replace(\"RocketLazyLoadScripts.run();\", \"\");\n    } else {\n        newElement.textContent = el.textContent;\n    }\n\n    // these might not be set as attributes, but instead as properties\n    for (const property of [\"onload\", \"onerror\", \"onreadystatechange\"]) {\n        if (el[property]) {\n            process.env.DEBUG && c(delta(), `re-adding ${property} to`, el, el[property]);\n            newElement[property] = el[property];\n        }\n    }\n\n    return newElement;\n};\n\n// let scriptsToInsert = 0;\n/*\nconst replaceScript = (el, newElement) => {\n    const parentNode = el.parentNode;\n    if (parentNode) {\n        // some scripts want parentNode to remove script themselves\n        const newParent = parentNode.nodeType === 11\n            ? dOrigCreateElement(parentNode.host[tagName])\n            : dOrigCreateElement(parentNode[tagName]);\n        // rAF is probably inacceptable for inline scripts at least. Here is the catch\n        // a script is supposed to create another script which should be captured by MutationObserver\n        // but by the time document.createElement() is called, iterating = false\n        // this is temporary fix, probably there are better solutions\n        // scriptsToInsert++;\n        // rAF(() => {\n        //     scriptsToInsert--;\n        //     newParent[appendChild](parentNode.replaceChild(newElement, el));\n        // });\n        newParent[appendChild](parentNode.replaceChild(newElement, el));\n        if (!parentNode.isConnected) {\n            // it happens sometimes, so no need to trigger verbose error\n            process.env.DEBUG && ce(\"Parent for\", el, \" is not part of the DOM\");\n            // we have to return empty element to trigger onload() callback\n            // instantly instead of waiting for never firing onload event listener\n            return;\n        }\n        return el;\n    }\n    ce(\"No parent for\", el);\n};\n*/\n\nconst unblock = (el, callback) => {\n    // const ds = el.dataset;\n    let src = el[getAttribute](prefix + \"src\");\n    // convert relative to absolute if SPO\n    process.env.SPO && src && _wpmeteor.baseURL && (() => { try { src = new URL(src, _wpmeteor.baseURL).href; } catch { } })(); // eslint-disable-line no-empty\n\n    if (src) {\n        process.env.DEBUG && c(delta(), \"unblocking src\", src);\n\n        const addEventListener = origAddEventListener.bind(el);\n\n        // if (el.getEventListeners) {\n        //     el.getEventListeners().forEach(([event, listener]) => {\n        //         process.env.DEBUG && c(delta(), \"re-adding event listeners to element\", event, listener);\n        //         addEventListener(event, listener);\n        //     });\n        // }\n\n        if (el.isConnected && callback) {\n            addEventListener(L, callback);\n            addEventListener(E, callback);\n        }\n\n        /** setting type before src is crucial for load/error events to be triggered \n          * According to the HTML5 specification, when a script element is inserted \n          * into the document, it starts fetching the script as soon as the src attribute is encountered, \n          * provided the type is a recognized script type. If the type is not set correctly at that point, \n          * the script will not be fetched.\n          */\n        /* el.origtypegets and sets original \"type\" attribute, el.type points to data-wpmeteor-src */\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        /* el.origsrc gets and sets original \"src\" attribute, el.src points to data-wpmeteor-src */\n        el.origsrc = src;\n\n        /** Do not remove prefix + \"src\" and prefix + \"type\" attributes, they are needed in the following case:\n          * * document.currentScript.getAttribute('src') will return null if they are removed\n          * as access to the attributes is still wrapped by us\n          */\n        // el[removeAttribute](prefix + \"src\");\n        // el[removeAttribute](prefix + \"type\");\n\n        process.env.DEBUG && c(delta(), \"unblocked src\", src, el);\n        // http://www.iana.org/assignments/media-types/media-types.xhtml\n        // in fact only text/javascript is the right one, the rest is obsolete\n        if ((!el.isConnected || el[hasAttribute](\"nomodule\") || (el.type && !isJavascriptRegexp.test(el.type))) && callback) {\n            // listeners won't fire\n            // so have to trigger callback\n            callback(new Event(L, { target: el }));\n        }\n    } else if (el.origtype === javascriptBlocked) {\n        // onLoad is never passed here\n        process.env.DEBUG && c(delta(), \"unblocking inline\", el);\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        // have to insert updated content in order to trigger execution\n        // we are going to change the content, so integrity is not valid anymore\n        el[removeAttribute](\"integrity\");\n        el.textContent = el.textContent + \"\\n\";\n        process.env.DEBUG && c(delta(), \"unblocked inline\", el);\n    } else {\n        process.env.DEBUG && ce(delta(), \"already unblocked\", el);\n        if (callback) {\n            callback(new Event(L, { target: el }));\n        }\n    }\n};\n// TODO: support for ...args ????\nconst removeQueuedEventListener = (name, func) => {\n    const pos = (listeners[name] || []).indexOf(func);\n    if (pos >= 0) {\n        listeners[name][pos] = undefined;\n        return true;\n    }\n};\n\nconst documentAddEventListener = (event, func, ...args) => {\n    if (\"HTMLDocument::\" + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, d[addEventListener].bind(d, event, func, ...args));\n        return;\n    }\n    if (func && (event === DCL || event === RSC)) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = documentEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    return dOrigAddEventListener(event, func, ...args);\n};\n\n// ...args were missing, making it impossible to remove listeners for google maps mobile\nconst documentRemoveEventListener = (event, func, ...args) => {\n    if (event === DCL) {\n        const name = documentEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return dOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(d, {\n    [addEventListener]: {\n        get() { return documentAddEventListener; },\n        set() { return documentAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return documentRemoveEventListener; },\n        set() { return documentRemoveEventListener; },\n    }\n});\n\nlet preloadsAndPreconnectsFragment = d.createDocumentFragment();\nconst flushPreloadsAndPreconnects = () => {\n    if (preloadsAndPreconnectsFragment.hasChildNodes()) {\n        d.head[appendChild](preloadsAndPreconnectsFragment);\n        preloadsAndPreconnectsFragment = d.createDocumentFragment();\n    }\n};\nconst preconnects = process.env.SPO && { \"https://cdn.fastpixel.io\": true } || {};\nconst preconnect = (src) => {\n    if (!src)\n        return;\n    try {\n        const url = new URL(src, d.location.href);\n        const href = url.origin;\n        if (href && !preconnects[href] && d.location.host !== url.host) {\n            const s = dOrigCreateElement(\"link\");\n            s.rel = \"preconnect\";\n            s.href = href;\n            preloadsAndPreconnectsFragment[appendChild](s);\n            process.env.DEBUG && c(delta(), \"preconnecting\", url.origin);\n            preconnects[href] = true;\n            if (iterating) {\n                rAF(flushPreloadsAndPreconnects);\n            }\n        }\n    } catch (e) {\n        process.env.DEBUG && ce(delta(), \"failed to parse src for preconnect\", src, e);\n    }\n};\n\nconst preloads = {};\nconst preloadAsScript = (src, isModule, crossorigin, integrity) => {\n    const s = dOrigCreateElement(\"link\");\n    s.rel = isModule\n        ? \"modulepre\" + L\n        : \"pre\" + L;\n    s.as = \"script\";\n    if (crossorigin)\n        s[setAttribute](\"crossorigin\", crossorigin); // must be setAttribute\n    if (integrity)\n        s[setAttribute](\"integrity\", integrity); // must be setAttribute\n    try {\n        src = new URL(src, d.location.href).href;\n    } catch { }\n    s.href = src;\n    preloadsAndPreconnectsFragment[appendChild](s);\n    preloads[src] = true;\n    if (iterating) {\n        rAF(flushPreloadsAndPreconnects);\n    }\n};\n\n/*\nconst mayBePreloadScripts = () => {\n    if (_wpmeteor.preload && reorder.length) {\n        reorder.forEach(script => {\n            const src = script[getAttribute](prefix + \"src\");\n            if (src && !preloads[src] && !script[hasAttribute](\"nomodule\")) {\n                preloadAsScript(src, script[getAttribute](prefix + \"type\") == \"module\", script[hasAttribute](\"crossorigin\") && script[getAttribute](\"crossorigin\"), script[getAttribute](\"integrity\"));\n            }\n        });\n    }\n};\n*/\n\n/*\ndOrigAddEventListener(DCL, () => {\n    const treorder = [...reorder];\n    reorder.length = 0;\n    [...d[querySelectorAll](\"script[type='\" + javascriptBlocked + \"']\"), ...treorder].forEach(el => {\n        // this is a workaround to skip nodes that were detected in MutationObserver\n        // and already hit iterate(), however, they miss the next Object_defineProperty() for origtype\n        // so this is incorrect, and doesn't work, check for node.origtype presense was added\n        // with fixed MutationObserver this is not needed anymore\n        if (seenScripts.has(el)) {\n            process.env.DEBUG && ce(delta(), \"WARNING: the scripts should have been filtered in MutationObserver\", el);\n            return;\n        }\n        const originalAttributeGetter = el[__lookupGetter__](\"type\").bind(el);\n        Object_defineProperty(el, \"origtype\", {\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n        if ((el[getAttribute](prefix + \"src\") || \"\").match(/\\/gtm.js\\?/)) {\n            process.env.DEBUG && c(delta(), \"delaying regex\", el[getAttribute](prefix + \"src\"));\n            async.push(el);\n        } else if (el[hasAttribute](\"async\")) {\n            process.env.DEBUG && c(delta(), \"delaying async\", el[getAttribute](prefix + \"src\"));\n            async.unshift(el);\n        } else if (el[hasAttribute](\"defer\")) {\n            process.env.DEBUG && c(delta(), \"delaying defer\", el[getAttribute](prefix + \"src\"));\n            defer.push(el);\n        } else {\n            reorder.push(el);\n        }\n        seenScripts.add(el);\n    });\n    // we will loose all event listeners, so we'd better track addEventListener/removeEventListener as well\n    // not supported yet, cant find reference in backend\n    // const querySelectors = ['link'].map(n => n + '[' + prefix + 'onload]').join(',');\n    // d.querySelectorAll(querySelectors).forEach(el => reorder.push(el));\n});\n*/\n\n/* 3rd party scripts handling */\nconst createElement = function (...args) {\n\n    const scriptElt = dOrigCreateElement(...args);\n\n    // createElement(null), createElement(undefined) are valid calls\n    // so we have to check for args[0] presence\n    if (!args || args[0].toUpperCase() !== S || !iterating) {\n        return scriptElt;\n    }\n\n    process.env.DEBUG && c(delta(), \"creating script element\");\n\n    // Backup the original setAttribute function\n    const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt);\n    const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt);\n    const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt);\n    const originalAttributes = scriptElt[__lookupGetter__](\"attributes\").bind(scriptElt);\n\n    // originalSetAttribute(prefix + \"after\", \"REORDER\");\n    // originalSetAttribute(prefix + \"type\", \"text/javascript\");\n\n    // scriptElt.type = javascriptBlocked;\n\n    // const eventListeners = [];\n    // scriptElt.getEventListeners = () => {\n    //     return eventListeners;\n    // };\n\n    capturedAttributes.forEach(property => {\n        const originalAttributeGetter = scriptElt[__lookupGetter__](property).bind(scriptElt);\n        const originalAttributeSetter = scriptElt[__lookupSetter__](property).bind(scriptElt);\n        O[definePropert + \"y\"](scriptElt, property, {\n            set(value) {\n                process.env.DEBUG && c(delta(), \"setting \", property, value);\n                // bypass for application/ld+json and similar\n                if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                    return scriptElt[setAttribute](property, value);\n                }\n                if (property === \"src\" && value) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                } else if (property === \"type\" && value && scriptElt.origsrc) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                }\n                return value\n                    ? scriptElt[setAttribute](prefix + property, value)\n                    : scriptElt[removeAttribute](prefix + property);\n            },\n            get() {\n                const result = scriptElt[getAttribute](prefix + property);\n                if (property === \"src\") {\n                    // convert to absolute\n                    try {\n                        const url = new URL(result, d.location.href);\n                        return url.href;\n                    } catch {\n                         \n                    }\n                }\n                return result;\n            }\n        });\n        Object_defineProperty(scriptElt, \"orig\" + property, {\n            set(value) {\n                return originalAttributeSetter(value);\n            },\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n\n    });\n\n    // this is not needded anymore as we are not copying the node\n    // so we don't need to reattach the listeners\n    // scriptElt[addEventListener] = function (event, handler) {\n    //     eventListeners.push([event, handler]);\n    // };\n\n    // Monkey patch the setAttribute function so that the setter is called instead.\n    // Otherwise, setAttribute('type', 'whatever') will bypass our custom descriptors!\n    scriptElt[setAttribute] = function (property, value) {\n        if (capturedAttributes.includes(property)) {\n            process.env.DEBUG && c(delta(), \"setting attribute\", property, value);\n            // bypass for application/ld+json and similar\n            if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                return originalSetAttribute(property, value);\n            }\n            if (property === \"src\" && value) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            } else if (property === \"type\" && value && scriptElt.origsrc) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            }\n            return value\n                ? originalSetAttribute(prefix + property, value)\n                : scriptElt[removeAttribute](prefix + property);\n        } else {\n            originalSetAttribute(property, value);\n        }\n    };\n\n    scriptElt[getAttribute] = function (property) {\n        const result = capturedAttributes.indexOf(property) >= 0\n            ? originalGetAttribute(prefix + property)\n            : originalGetAttribute(property);\n        if (property === \"src\") {\n            // convert to absolute\n            try {\n                const url = new URL(result, d.location.href);\n                return url.href;\n            } catch {\n                 \n            }\n        }\n        return result;\n    };\n\n    scriptElt[hasAttribute] = function (property) {\n        return capturedAttributes.indexOf(property) >= 0\n            ? originalHasAttribute(prefix + property)\n            : originalHasAttribute(property);\n    };\n\n    /* very shallow mocking of NamedNodeMap */\n    Object_defineProperty(scriptElt, \"attributes\", {\n        get() {\n            const mock = [...originalAttributes()]\n                .filter(attr => attr.name !== \"type\") // no need to filter as we no longer append it && attr.name !== prefix + \"after\")\n                .map(attr => {\n                    return {\n                        name: attr.name.match(new RegExp(prefix))\n                            ? attr.name.replace(prefix, \"\")\n                            : attr.name,\n                        value: attr.value\n                    };\n                });\n            return mock;\n        }\n    });\n\n    // this is to make it to the async queue where it belongs\n    scriptElt[__dynamic] = true;\n\n    return scriptElt;\n};\n\n// Allowing to override, but still not the best option - onetrust captures createElement \n// even for users who accepted cookies\nObject.defineProperty(Document[prototype], \"createElement\", {\n    set(value) {\n        if (process.env.DEBUG) {\n            if (value == origCreateElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement restored to original\");\n            } else if (value === createElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden\");\n            } else {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden by a 3rd party script\");\n            }\n        }\n        if (value !== createElement) {\n            createElementOverride = value;\n        }\n    },\n    get() {\n        return createElementOverride || createElement;\n    }\n});\n\nconst seenScripts = new Set();\nconst observer = new MutationObserver(mutations => {\n    mutations.forEach(({ removedNodes, addedNodes, target }) => {\n        // this is the case for https://essential-addons.com/elementor/offcanvas-content/\n        // which, in EAELOffcanvasContent.prototype = { init: function() { \n        // ... 0 === e(\".eael-offcanvas-container\").length && (e(\"body\").wrapInner('<div class=\"eael-offcanvas-container eael-offcanvas-container-' + this.id + '\" />'),\n        // }}\n        // wraps the whole body into a div, removes some scripts from the DOM and reinserts them wrapped in .eael-offcanvas-container.eael-offcanvas-container-<id>\n        removedNodes.forEach(node => {\n            // For each removed script tag\n            if (node.nodeType === 1 && S === node[tagName] && \"origtype\" in node) {\n                seenScripts.delete(node);\n            }\n        });\n        addedNodes.forEach(node => {\n            // For each added script tag\n            if (node.nodeType === 1) {\n                if (S === node[tagName]) {\n                    // process.env.DEBUG && c(delta(), \"XXXX\", node, node.origtype, node[getAttribute](\"type\"));\n                    if (\"origtype\" in node) {\n                        // process.env.DEBUG && c(delta(), \"mutationobserver captured some script\", node.cloneNode(true));\n                        if (node.origtype !== javascriptBlocked) {\n                            process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                            return;\n                        }\n                    } else if (node[getAttribute](\"type\") !== javascriptBlocked) {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                        return;\n                    }\n                    // all the intercepted nodes inserted by createElement() should have origtype getter\n                    if (!(\"origtype\" in node)) {\n                        process.env.DEBUG && (node[getAttribute](\"type\") === javascriptBlocked\n                            ? c(delta(), \"mutationobserver captured blocked script\", node)\n                            : c(delta(), \"mutationobserver captured non-javascript script\", node));\n                        capturedAttributes.forEach(property => {\n                            const originalAttributeGetter = node[__lookupGetter__](property).bind(node);\n                            const originalAttributeSetter = node[__lookupSetter__](property).bind(node);\n                            Object_defineProperty(node, \"orig\" + property, {\n                                set(value) {\n                                    return originalAttributeSetter(value);\n                                },\n                                get() {\n                                    return originalAttributeGetter();\n                                }\n                            });\n                        });\n                    } else {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured new script\", node.cloneNode(true));\n                    }\n\n                    // const src = node[getAttribute](prefix + \"src\");\n                    const src = node[getAttribute](prefix + \"src\");\n\n                    if (seenScripts.has(node)) {\n                        ce(\"Inserted twice\", node);\n                    }\n\n                    if (node.parentNode) {\n                        seenScripts.add(node);\n                        const origType = node[getAttribute](prefix + \"type\");\n                        if ((src || \"\").match(/\\/gtm.js\\?/)) {\n                            process.env.DEBUG && c(delta(), \"delaying regex\", node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        } else if (node[hasAttribute](\"async\") || node[__dynamic]) {\n                            process.env.DEBUG && c(delta(),\n                                node.__async\n                                    ? \"delaying dynamically inserted script as async\"\n                                    : \"delaying async\",\n                                node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules:\n                        // \"There is no need to use the defer attribute (see <script> attributes) \n                        // when loading a module script; modules are deferred automatically.\"\n                        } else if (node[hasAttribute](\"defer\") || origType === \"module\") {\n                            process.env.DEBUG && c(delta(), \"delaying defer\", node[getAttribute](prefix + \"src\"));\n                            defer.push(node);\n                            preconnect(src);\n                        } else {\n                            if (src && !node[hasAttribute](\"nomodule\") && !preloads[src]) {\n                                // no need to preload if it is the next script in the queue\n                                // VWO removes node instantly\n                                preloadAsScript(src, origType === \"module\", node[hasAttribute](\"crossorigin\") && node[getAttribute](\"crossorigin\"), node[getAttribute](\"integrity\"));\n                            }\n                            reorder.push(node);\n                        }\n                    } else {\n                        // if the node has been instanly removed, we still want to load it and run\n                        // I tested appendNode(script); removeNode(script) - it still loads and triggers the code\n                        process.env.DEBUG && ce(\"No parent node for\", node, \"re-adding to\", target);\n                        node[addEventListener](L, e => e.target.parentNode[removeChild](e.target));\n                        node[addEventListener](E, e => e.target.parentNode[removeChild](e.target));\n                        target[appendChild](node);\n                        // no need to push to seenScripts and reorder as it will happen on the next iteration\n                        // of MutationObserver\n                    }\n                } else if (\"LINK\" === node[tagName] && node[getAttribute](\"as\") === \"script\") {\n                    preloads[node[getAttribute](\"href\")] = true;\n                }\n            }\n        });\n    });\n});\n\nconst mutationObserverOptions = {\n    childList: true,\n    subtree: true,\n    // attributes: true,\n    // attributeFilter: ['src', 'type'],\n    // attributeOldValue: true,\n};\n\nobserver.observe(d.documentElement, mutationObserverOptions);\n\nconst origAttachShadow = HTMLElement[prototype].attachShadow;\nHTMLElement[prototype].attachShadow = function (options) {\n    const shadowRoot = origAttachShadow.call(this, options);\n    if (options.mode === \"open\") {\n        observer.observe(shadowRoot, mutationObserverOptions);\n    }\n    return shadowRoot;\n};\n\nprocess.env.SPO || (() => {\n    const origIFrameSrc = O[getOwnPropertyDescriptor](HTMLIFrameElement[prototype], \"src\");\n    Object_defineProperty(HTMLIFrameElement[prototype], \"src\", {\n        get() {\n            if (this.dataset.fpoSrc) {\n                return this.dataset.fpoSrc;\n            }\n            return origIFrameSrc.get.call(this);\n        },\n        set(value) {\n            delete this.dataset.fpoSrc;\n            origIFrameSrc.set.call(this, value);\n        }\n    });\n})();\n\n// cleaning up\ndispatcher.on(EVENT_THE_END, () => {\n    process.env.DEBUG && c(delta(), \"THE END\");\n    if (!createElementOverride || createElementOverride === createElement) {\n        Document[prototype].createElement = origCreateElement;\n        observer.disconnect();\n    } else {\n        process.env.DEBUG && c(delta(), \"createElement is overridden, keeping observers in place\");\n    }\n    // we should only fire EVENT_REPLAY_CAPTURED_EVENTS if no lazyload is in the page\n    // eg in pure WP METEOR mode, not for FASTPIXEL\n    process.env.SPO || dispatchEvent(new CustomEvent(EVENT_REPLAY_CAPTURED_EVENTS));\n    dispatchEvent(new CustomEvent(EVENT_THE_END));\n});\n/* end 3rd party scripts handling */\n\n/* we have to override document.write as all of them will fire after DOMContentLoaded */\nlet documentWrite = (str) => {\n    let parent, currentScript;\n    if (!d.currentScript || !d.currentScript.parentNode) {\n        /* trying our best */\n        parent = d.body;\n        currentScript = parent.lastChild;\n    } else {\n        currentScript = d.currentScript;\n        parent = currentScript.parentNode;\n    }\n    try {\n        const df = dOrigCreateElement(\"div\");\n        df.innerHTML = str;\n        Array.from(df.childNodes).forEach(node => {\n            if (node.nodeName === S) {\n                // cloneScript is a must for safari\n                parent.insertBefore(cloneScript(node), currentScript);\n            } else {\n                parent.insertBefore(node, currentScript);\n            }\n        });\n    } catch (e) {\n        ce(e);\n    }\n};\nlet documentWriteLn = (str) => documentWrite(str + \"\\n\");\n\nObject_defineProperties(d, {\n    \"write\": {\n        get() { return documentWrite; },\n        set(func) { return documentWrite = func; },\n    },\n    \"writeln\": {\n        get() { return documentWriteLn; },\n        set(func) { return documentWriteLn = func; },\n    },\n});\n\n// Capturing and queueing Window Load event handlers\nlet windowAddEventListener = (event, func, ...args) => {\n    // We have to skip registering message listeners if DONE, as we already restored \n    // original eventListener to messages in restoreMessageListener()\n    // ??? not sure why there is windowEventPrefix instead of documentEventPrefix\n    // but I think this was to workaround some external javascripts\n    if (windowEventPrefix + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (windowEventPrefix + L == currentlyFiredEvent && event === L) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (func && (event === L || event === DCL || (event === M && !DONE))) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    // process.env.DEBUG && c(event, func);\n    return wOrigAddEventListener(event, func, ...args);\n};\nlet windowRemoveEventListener = (event, func, ...args) => {\n    if (event === L) { // L = load\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return wOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(w, {\n    [addEventListener]: {\n        get() { return windowAddEventListener; },\n        set() { return windowAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return windowRemoveEventListener; },\n        set() { return windowRemoveEventListener; },\n    }\n});\n\nconst onHandlerOptions = (name) => {\n    let handler;\n    return {\n        get() {\n            process.env.DEBUG && c(delta(), separator, \"getting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", handler);\n            return handler;\n        },\n        set(func) {\n            process.env.DEBUG && c(delta(), separator, \"setting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", func);\n            // only last handler should fire\n            if (handler) {\n                removeQueuedEventListener(name, func);\n            }\n            listeners[name] = listeners[name] || [];\n            listeners[name].push(func);\n            return handler = func;\n        },\n        // rocket-loader from CloudFlare tries to override onload so we will let him\n        // configurable: true,\n    };\n};\n\n/* \n * this code handles event from onload attributes\n * when rewriting body, iframes, images and scripts\n * we move original onload attribute to data-wpemeteor-onload\n * and replace onload with a function that fires CustomEvent(EVENT_ELEMENT_LOADED)\n */\n// bind to window\n// 2024-02-18: it seems that the only element we need this workaround are <document onload> and <html onload>\nwOrigAddEventListener(EVENT_ELEMENT_LOADED, e => {\n    const { target, event } = e.detail;\n    const el = target === w ? d.body : target;\n    const func = el[getAttribute](prefix + \"on\" + event.type);\n    el[removeAttribute](prefix + \"on\" + event.type);\n    try {\n        const f = new Function(\"event\", func);\n        if (target === w) {\n            // the trick here is to enqueue Window::load\n            // using overridden window.addEventListener\n            w[addEventListener](L, f.bind(target, event));\n        } else {\n            f.call(target, event);\n        }\n    } catch (err) {\n        console.err(err);\n    }\n});\n\n// overriding window.onload and document.body.onload, they are the same function\n{\n\n    const options = onHandlerOptions(windowEventPrefix + L);\n    Object_defineProperty(w, \"onload\", options);\n    dOrigAddEventListener(DCL, () => {\n        Object_defineProperty(d.body, \"onload\", options);\n    });\n}\n// overriding document.onreadystatechange\nObject_defineProperty(d, \"onreadystatechange\", onHandlerOptions(documentEventPrefix + RSC));\n// overriding window.onmessage\nObject_defineProperty(w, \"onmessage\", onHandlerOptions(windowEventPrefix + M));\n\n// rdelay delay is handled in the fpo-inpage-lazyload\n// previously it was handled here along with EVENT_FIRST_INTERACTION\n// I moved both to fpo-inpage-lazyload\nprocess.env.SPO &&\n    wOrigAddEventListener(EVENT_CSS_LOADED, () => dispatcher.emit(EVENT_IMAGES_LOADED)); /* , _wpmeteor.rdelay); */\n\nprocess.env.SPO\n    || (() => {\n\n        const wheight = w.innerHeight;\n        const wwidth = w.innerWidth;\n\n        const intersectsViewport = (el) => {\n            // chrome settings\n            // https://web.dev/browser-level-image-lazy-loading/#improved-data-savings-and-distance-from-viewport-thresholds\n            let extras = {\n                \"4g\": 1250,\n                \"3g\": 2500,\n                \"2g\": 2500,\n            };\n\n            const extra = extras[(navigator.connection || {}).effectiveType] || 0;\n            const rect = el.getBoundingClientRect();\n            const viewport = {\n                top: -1 * wheight - extra,\n                left: -1 * wwidth - extra,\n                bottom: wheight + extra,\n                right: wwidth + extra\n            };\n\n            // If one rectangle is on left side of other\n            if (rect.left >= viewport.right || rect.right <= viewport.left)\n                return false;\n\n            // If one rectangle is above other\n            if (rect.top >= viewport.bottom || rect.bottom <= viewport.top)\n                return false;\n\n            return true;\n        };\n\n        const waitForImages = (reallyWait = true) => {\n            let imagesToLoad = 1;\n            let imagesLoadedCount = -1;\n            const seen = {};\n\n            const imageLoadedHandler = () => {\n                imagesLoadedCount++;\n                // let's trigger \n                if (!--imagesToLoad) {\n                    process.env.DEBUG && c(delta(), imagesLoadedCount + \" eager images loaded\");\n                    // there are 2 options here\n                    // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n                    // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n\n                    // 1.\n                    w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n                    // 2. \n                    // should never get there, as we bypass waitForImages()\n                    // dispatcher.emit(EVENT_IMAGES_LOADED);\n                }\n            };\n\n            Array.from(d.getElementsByTagName(\"*\")).forEach(tag => {\n                let src, style, bgUrl;\n                if (tag[tagName] === \"IMG\") {\n                    let _src = tag.currentSrc || tag.src; // trying to capture srcsets if they are already loading\n                    if (_src && !seen[_src] && !_src.match(/^data:/i)) {\n                        if ((tag.loading || \"\").toLowerCase() !== \"lazy\") {\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading image\", src, \"for\", tag);\n                        } else if (intersectsViewport(tag)) { // lazy && already loading\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading lazy image\", src, \"for\", tag);\n                        }\n                    }\n                } else if (tag[tagName] === S) {\n                    preconnect(tag[getAttribute](prefix + \"src\"));\n                } else if (tag[tagName] === \"LINK\" && tag[getAttribute](\"as\") === \"script\" && [\"pre\" + L, \"modulepre\" + L].indexOf(tag[getAttribute](\"rel\")) >= 0) {\n                    preloads[tag[getAttribute](\"href\")] = true;\n                    // supposedly all CSS has already been loaded\n                } else if ((style = w.getComputedStyle(tag)) && (bgUrl = (style.backgroundImage || \"\").match(/^url\\s*\\((.*?)\\)/i)) && (bgUrl || []).length) { // eslint-disable-line no-cond-assign\n                    const url = bgUrl[0].slice(4, -1).replace(/\"/g, \"\");\n                    if (!seen[url] && !url.match(/^data:/i)) {\n                        src = url;\n                        process.env.DEBUG && c(delta(), \"loading background\", src, \"for\", tag);\n                    }\n                }\n                if (src) {\n                    seen[src] = true;\n                    const temp = new Image();\n                    if (reallyWait) {\n                        imagesToLoad++;\n                        temp[addEventListener](L, imageLoadedHandler);\n                        temp[addEventListener](E, imageLoadedHandler);\n                    }\n                    temp.src = src;\n                }\n            });\n            d.fonts.ready.then(() => {\n                process.env.DEBUG && c(delta(), \"fonts ready\");\n                imageLoadedHandler();\n            });\n        };\n\n        if (_wpmeteor.rdelay === 0) {\n            // dOrigAddEventListener(DCL, () => nextTick(waitForImages.bind(null, false)));\n            dOrigAddEventListener(DCL, waitForImages);\n        } else {\n            // there are 2 options here\n            // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n            // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n            // Reasoning for 1. is that on slow connections, we still want to wait for images to load\n\n            // 1.\n            wOrigAddEventListener(L, waitForImages);\n            // 2.\n            // w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n        }\n    })();\n"],
    5   "mappings": "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",
     4  "sourcesContent": ["export default () => Math.round(performance.now()) / 1000;\n", "export const\n    addEventListener = \"addEventListener\",\n    removeEventListener = \"removeEventListener\",\n    getAttribute = \"getAttribute\",\n    setAttribute = \"setAttribute\",\n    removeAttribute = \"removeAttribute\",\n    hasAttribute = \"hasAttribute\",\n    querySelector = \"querySelector\",\n    querySelectorAll = querySelector + \"All\",\n    appendChild = \"appendChild\",\n    removeChild = \"removeChild\",\n    createElement = \"createElement\",\n    tagName = \"tagName\",\n    getOwnPropertyDescriptor = \"getOwnPropertyDescriptor\",\n    prototype = \"prototype\",\n    __lookupGetter__ = \"__lookupGetter__\",\n    __lookupSetter__ = \"__lookupSetter__\",\n    DCL = \"DOMContentLoaded\",\n    L = \"load\",\n    E = \"error\";\n", "const\n    w = window,\n    d = document,\n    de = d.documentElement,\n    c = process.env.DEBUG ? console.log : () => { },\n    ce = console.error;\n\nexport {\n    w,\n    d,\n    de,\n    c,\n    ce,\n};", "import delta from \"../utils/delta\";\nimport {\n    addEventListener,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n    c,\n    ce,\n} from \"../globals\";\n\n/**\n * class name should not match mocked object\n */\nlet mocked = true;\nexport default class jQueryMock {\n    constructor() {\n        this.known = [];\n    }\n    init() {\n\n        let Mock;\n        let Mock$;\n\n        // the goal here is to capture a real jQuery object and override its load and ready methods\n        // to delay firing ready() until WP-Meteor finishes loading JS\n        const override = (jQuery, symbol) => {\n\n            if (mocked && jQuery && jQuery.fn && !jQuery.__wpmeteor) {\n                process.env.DEBUG && c(delta(), \"new \" + symbol + \" detected\", jQuery.__wpmeteor, jQuery);\n\n                // can't use () => {} as it binds to different this\n                const enqueue = function (func) {\n                    process.env.DEBUG && c(delta(), \"enqueued jQuery(func)\", func);\n                    // there is a loop when you call $(\"selector\", $), as it calls $.ready\n                    // which in turn calls readyList.then( fn ) and returns this\n                    // without this code, page-infinite-loop.html hangs\n                    if (func === jQuery) {\n                        return this;\n                    }\n                    d[addEventListener](DCL, e => {\n                        process.env.DEBUG && c(delta(), \"running enqueued jQuery function\", func);\n                        func.call(d, jQuery, e, \"jQueryMock\");\n                    });\n                    return this;\n                };\n\n                this.known.push([jQuery, jQuery.fn.ready, jQuery.fn.init?.prototype?.ready]);\n                jQuery.fn.ready = enqueue;\n                if (jQuery.fn.init?.prototype?.ready) {\n                    jQuery.fn.init.prototype.ready = enqueue;\n                }\n                jQuery.__wpmeteor = true;\n            }\n            return jQuery;\n        };\n\n        if (window.jQuery || window.$) {\n            // not throwing error, as it might come from a chrome extension\n            // but also not mocking it, just giving a warning\n            process.env.DEBUG && ce(delta(), \"WARNING: JQUERY WAS INSTALLED BEFORE WP-METEOR, PROBABLY FROM A CHROME EXTENSION\");\n        }\n\n        Object.defineProperty(window, \"jQuery\", {\n            get() {\n                return Mock;\n            },\n            set(jQuery) {\n                Mock = override(jQuery, \"jQuery\");\n            },\n            configurable: true,\n        });\n\n        Object.defineProperty(window, \"$\", {\n            get() {\n                return Mock$;\n            },\n            set($) {\n                Mock$ = override($, \"$\");\n            },\n            configurable: true,\n        });\n    }\n    unmock() {\n        this.known.forEach(([jQuery, oldReady, oldPrototypeReady]) => {\n            process.env.DEBUG && c(delta(), \"unmocking jQuery\", jQuery);\n            jQuery.fn.ready = oldReady;\n            if (jQuery.fn.init?.prototype?.ready && oldPrototypeReady) {\n                jQuery.fn.init.prototype.ready = oldPrototypeReady;\n            }\n        });\n        mocked = false;\n    }\n}\n", "export default () => Math.round(performance.now()) / 1000;\n", "const c = process.env.DEBUG ? console.log : () => { };\nexport default c;", "const EVENT_FIRST_INTERACTION = \"fpo:first-interaction\";\nconst EVENT_REPLAY_CAPTURED_EVENTS = \"fpo:replay-captured-events\";\nconst EVENT_LCP_ELEMENT = \"fpo:lcp-element\";\nconst EVENT_LCP_ELEMENT_CANDIDATE = \"fpo:lcp-element-candidate\";\nconst EVENT_LCP_LOADED = \"fpo:lcp-loaded\";\nconst EVENT_LAZY_ELEMENT = \"fpo:lazy-element\";\nconst EVENT_STYLES_TAG_AVAILABLE = \"fpo:styles-tag-available\";\nconst EVENT_CSS_LOADED = \"fpo:css-loaded\";\nconst EVENT_ELEMENT_LOADED = \"fpo:element-loaded\";\nconst EVENT_IMAGES_LOADED = \"fpo:images-loaded\";\nconst EVENT_THE_END = \"fpo:the-end\";\nconst EVENT_SCROLL_TO_REVEAL_ANIMATIONS = \"fpo:scroll-to-reveal-animations\";\n\nexport {\n    EVENT_LCP_ELEMENT,\n    EVENT_LCP_ELEMENT_CANDIDATE,\n    EVENT_LCP_LOADED,\n    EVENT_LAZY_ELEMENT,\n    EVENT_STYLES_TAG_AVAILABLE,\n    EVENT_FIRST_INTERACTION, \n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n    EVENT_SCROLL_TO_REVEAL_ANIMATIONS,\n};\n", "import delta from \"./utils/delta.mjs\";\nimport c from \"./utils/console.mjs\";\nimport { EVENT_FIRST_INTERACTION, EVENT_REPLAY_CAPTURED_EVENTS } from \"@aguidrevitch/fpo-inpage-events\";\n\nconst EVENT_CLICK = \"click\";\n\nconst w = window;\nconst wOrigAddEventListener = w.addEventListener.bind(w);\nconst wOrigRemoveEventListener = w.removeEventListener.bind(w);\nconst ra = \"removeAttribute\";\nconst ga = \"getAttribute\";\nconst sa = \"setAttribute\";\nconst passiveEvents = [\"touchstart\", \"touchmove\", \"touchend\", \"touchcancel\", \"keydown\", \"wheel\"]; //, \"scroll\"];\nconst activeEvents = [\"mouseover\", \"mouseout\", EVENT_CLICK];\nconst captureEvents = [\"touchstart\", \"touchend\", \"touchcancel\", \"mouseover\", \"mouseout\", EVENT_CLICK];\nconst prefix = \"data-wpmeteor-\";\nconst separator = \"----\";\nconst dispatchEvent = \"dispatchEvent\";\n\nconst synteticCick = e => {\n    process.env.DEBUG && c(delta(), \"creating syntetic click event for\", e);\n    const event = new MouseEvent(EVENT_CLICK, {\n        view: e.view,\n        bubbles: true,\n        cancelable: true\n    });\n    Object.defineProperty(event, \"target\", { writable: false, value: e.target });\n    return event;\n};\n\nclass InteractionEvents {\n    static capture() {\n        let firstInteractionFired = false;\n\n        // lighthouse sets __nativePromise and __nativeURL\n        // to the original Promise and URL\n        const [, p, n] = `${window.Promise}`.split(/[\\s[(){]+/s);\n        if (w[\"__\" + n + p]) {\n            return;\n        }\n\n        const capturedEvents = [];\n        const captureEvent = e => {\n            if (e.target && (dispatchEvent in e.target)) {\n                if (!e.isTrusted) {\n                    // this is a flag that this event is probably replaying\n                    process.env.DEBUG && c(delta(), \"the event is not trusted, configuration issues, not recording\", e.type, e.target);\n                    process.env.DEBUG && c(delta(), \"please double check if first interaction listener was installed before wp-meteor\");\n                    return;\n                }\n                if (e.cancelable && !passiveEvents.includes(e.type)) {\n                    try {\n                        e.preventDefault();\n                    } catch { }\n                }\n                e.stopImmediatePropagation();\n\n                if (e.type === EVENT_CLICK) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(synteticCick(e));\n                } else if (captureEvents.includes(e.type)) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(e);\n                }\n                // scroll event target doesn't have setAttribute\n                // if (e.target[sa]) {\n                //     e.target[sa](prefix + e.type, true);\n                // }\n                e.target[sa](prefix + e.type, true);\n                if (!firstInteractionFired) {\n                    firstInteractionFired = true;\n                    w[dispatchEvent](new CustomEvent(EVENT_FIRST_INTERACTION));\n                }\n            }\n        };\n\n        w.addEventListener(EVENT_REPLAY_CAPTURED_EVENTS, () => {\n            process.env.DEBUG && c(delta(), separator, \"got \" + EVENT_REPLAY_CAPTURED_EVENTS);\n            process.env.DEBUG && c(delta(), separator, \"removing event listeners\");\n            activeEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: false, capture: true }));\n            passiveEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: true, capture: true }));\n\n            let e;\n            while (e = capturedEvents.shift()) { // eslint-disable-line no-cond-assign\n                var target = e.target;\n                if (target[ga](prefix + \"touchstart\") && target[ga](prefix + \"touchend\") && !target[ga](prefix + EVENT_CLICK)) {\n                    if (target[ga](prefix + \"touchmove\")) {\n                        process.env.DEBUG && c(delta(), `touchmove happened, so not dispatching ${EVENT_CLICK} to `, e.target);\n                    } else {\n                        // why would I want to remove prefix + \"touchmove\", if previous if checks it is present?\n                        // target[ra](prefix + \"touchmove\");\n                        capturedEvents.push(synteticCick(e));\n                    }\n                    target[ra](prefix + \"touchstart\");\n                    target[ra](prefix + \"touchend\");\n                } else {\n                    target[ra](prefix + e.type);\n                }\n                process.env.DEBUG && c(delta(), \" dispatching \" + e.type + \" to \", e.target);\n                target[dispatchEvent](e);\n            }\n        });\n\n        process.env.DEBUG && c(delta(), separator, \"installing first interaction event listeners\");\n        activeEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: false, capture: true }));\n        passiveEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: true, capture: true }));\n    }\n}\n\nexport {\n    InteractionEvents,\n};\n\nexport default InteractionEvents;", "export default class EventEmitter {\n    constructor() {\n        this.l = [];\n    }\n    emit(name, data = null) {\n        this.l[name] && this.l[name].forEach(l => l(data));\n    }\n    on(name, callback) {\n        this.l[name] ||= [];\n        this.l[name].push(callback);\n    }\n    off(name, callback) {\n        this.l[name] = (this.l[name] || []).filter(c => c !== callback);\n    }\n    /*\n    once(name, callback) {\n        const closure = () => {\n            this.off(closure);\n            callback();\n        }\n        this.l[name] ||= [];\n        this.l[name].push(closure);\n    }\n    */\n}\n", "import EventEmitter from \"./event-emitter\";\nexport default new EventEmitter();\n", "import {\n    setAttribute,\n    appendChild,\n    createElement,\n} from \"../literals\";\n\nimport {\n    d,\n} from \"../globals\";\n\nconst $deviceMode = d[createElement](\"span\");\n$deviceMode[setAttribute](\"id\", \"elementor-device-mode\");\n$deviceMode[setAttribute](\"class\", \"elementor-screen-only\");\n\nlet attached = false;\n\nexport default () => {\n    if (!attached) {\n        d.body[appendChild]($deviceMode);\n    }\n    return getComputedStyle($deviceMode, \":after\").content.replace(/\"/g, \"\");\n};\n", "import delta from \"../utils/delta\";\nimport dispatcher from \"../utils/dispatcher\";\nimport getCurrentDeviceMode from \"./device-mode\";\nimport {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    L,\n} from \"../literals\";\nimport {\n    w,\n    d,\n    de,\n    c,\n} from \"../globals\";\n\nconst getClass = (el) => {\n    return el[getAttribute](\"class\") || \"\";\n};\n\nconst setClass = (el, value) => {\n    return el[setAttribute](\"class\", value);\n};\n\nexport default () => {\n    w[addEventListener](L, function () {\n        const mode = getCurrentDeviceMode();\n        const vw = Math.max(de.clientWidth || 0, w.innerWidth || 0);\n        const vh = Math.max(de.clientHeight || 0, w.innerHeight || 0);\n\n        const keys = [\"_animation_\" + mode, \"animation_\" + mode, \"_animation\", \"_animation\", \"animation\"];\n        Array.from(d[querySelectorAll](\".elementor-invisible\")).forEach(el => {\n\n            // we  only want to optimize elements in the top of the page\n            const viewportOffset = el.getBoundingClientRect();\n            if (viewportOffset.top + w.scrollY <= vh && viewportOffset.left + w.scrollX < vw) {\n                try {\n                    const settings = JSON.parse(el[getAttribute](\"data-settings\"));\n                    if (settings.trigger_source) {\n                        return;\n                    }\n                    const animationDelay = settings._animation_delay || settings.animation_delay || 0;\n                    let animation, key;\n\n                    for (var i = 0; i < keys.length; i++) {\n                        if (settings[keys[i]]) {\n                            key = keys[i];\n                            animation = settings[key];\n                            break;\n                        }\n                    }\n\n                    if (animation) {\n                        process.env.DEBUG && c(delta(), \"animating with\" + animation, el);\n                        const oldClass = getClass(el);\n                        const newClass = animation === \"none\"\n                            ? oldClass\n                            : oldClass + \" animated \" + animation;\n\n                        const animate = () => {\n                            setClass(el, newClass.replace(/\\belementor-invisible\\b/, \"\"));\n                            keys.forEach(key => delete settings[key]);\n                            el[setAttribute](\"data-settings\", JSON.stringify(settings));\n                        };\n\n                        let timeout = setTimeout(animate, animationDelay);\n\n                        dispatcher.on(\"fi\", () => {\n                            clearTimeout(timeout);\n                            setClass(el, getClass(el).replace(new RegExp(\"\\\\b\" + animation + \"\\\\b\"), \"\"));\n                        });\n\n                    }\n                } catch (e) {\n                    console.error(e);\n                }\n            }\n        });\n    });\n};", "import {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    appendChild,\n    removeChild,\n    createElement,\n    tagName,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n} from \"../globals\";\n\nconst inmega = \"data-in-mega_smartmenus\";\n\nexport default () => {\n\n    const div = d[createElement](\"div\");\n    div.innerHTML = \"<span class=\\\"sub-arrow --wp-meteor\\\"><i class=\\\"fa\\\" aria-hidden=\\\"true\\\"></i></span>\";\n    const placeholder = div.firstChild;\n\n    const prevAll = el => {\n        const result = [];\n        while (el = el.previousElementSibling) // eslint-disable-line no-cond-assign\n            result.push(el);\n        return result;\n    };\n\n    d[addEventListener](DCL, function () {\n        Array.from(d[querySelectorAll](\".pp-advanced-menu ul\")).forEach(ul => {\n            /* skipping mega menues */\n            if (ul[getAttribute](inmega)) {\n                return;\n            } else if ((ul[getAttribute](\"class\") || \"\").match(/\\bmega-menu\\b/)) {\n                ul[querySelectorAll](\"ul\").forEach(ul => {\n                    ul[setAttribute](inmega, true);\n                });\n            }\n            let prev = prevAll(ul);\n            let a = prev.filter(el => el).filter(el => el[tagName] === \"A\").pop();\n            if (!a) {\n                a = prev.map(el => Array.from(el[querySelectorAll](\"a\"))).filter(el => el).flat().pop();\n            }\n            if (a) {\n                const span = placeholder.cloneNode(true);\n                a[appendChild](span);\n\n                const observer = new MutationObserver(mutations => {\n                    mutations.forEach(({ addedNodes }) => {\n                        addedNodes.forEach(node => {\n                            // For each added script tag\n                            if (node.nodeType === 1 && \"SPAN\" === node[tagName]) {\n                                try {\n                                    a[removeChild](span);\n                                } catch {\n                                    // do nothing\n                                }\n                            }\n                        });\n                    });\n                });\n                observer.observe(a, { childList: true });\n            }\n        });\n    });\n};", "/* global _wpmeteor, RocketLazyLoadScripts */\n\nimport jQueryMock from \"./includes/mocks/jquery\";\nimport InteractionEvents from \"@aguidrevitch/fpo-inpage-first-interaction\";\nimport dispatcher from \"./includes/utils/dispatcher\";\nimport delta from \"./includes/utils/delta\";\nimport elementorAnimations from \"./includes/elementor/animations\";\nimport elementorPP from \"./includes/elementor/pp-menu\";\nimport {\n    addEventListener,\n    removeEventListener,\n    getAttribute,\n    setAttribute,\n    removeAttribute,\n    hasAttribute,\n    // querySelectorAll,\n    appendChild,\n    removeChild,\n    tagName,\n    getOwnPropertyDescriptor,\n    prototype,\n    __lookupGetter__,\n    __lookupSetter__,\n    DCL,\n    L,\n    E,\n} from \"./includes/literals\";\nimport {\n    w,\n    d,\n    c,\n    ce,\n} from \"./includes/globals\";\n\nimport {\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_FIRST_INTERACTION,\n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n} from \"@aguidrevitch/fpo-inpage-events\";\n\nconst RSC = \"readystatechange\",\n    M = \"message\",\n    separator = \"----\",\n    S = \"SCRIPT\",\n    prefix = \"data-wpmeteor-\",\n    Object_defineProperty = Object.defineProperty, // eslint-disable-line camelcase\n    Object_defineProperties = Object.defineProperties, // eslint-disable-line camelcase\n    javascriptBlocked = \"javascript/blocked\",\n    isJavascriptRegexp = /^\\s*(application|text)\\/javascript|module\\s*$/i,\n    _rAF = \"requestAnimationFrame\",\n    _rIC = \"requestIdleCallback\",\n    _setTimeout = \"setTimeout\",\n    __dynamic = \"__dynamic\";\n\nconst windowEventPrefix = w.constructor.name + \"::\";\nconst documentEventPrefix = d.constructor.name + \"::\";\n\nconst forEach = function (callback, thisArg) {\n    thisArg = thisArg || w;\n    for (var i = 0; i < this.length; i++) {\n        callback.call(thisArg, this[i], i, this);\n    }\n};\n\nif (\"NodeList\" in w && !NodeList[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling NodeList.forEach\");\n    NodeList[prototype].forEach = forEach;\n}\nif (\"HTMLCollection\" in w && !HTMLCollection[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling HTMLCollection.forEach\");\n    HTMLCollection[prototype].forEach = forEach;\n}\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor[\"elementor-animations\"]) {\n        elementorAnimations();\n    }\n\n    if (_wpmeteor[\"elementor-pp\"]) {\n        elementorPP();\n    }\n})();\n\nconst reorder = [];\nconst defer = [];\nconst async = [];\n\nlet DONE = false;\nconst eventQueue = [];\nlet listeners = {};\nlet WindowLoaded = false;\nlet firedEventsCount = 0;\n\nlet rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\nlet rIC = w[_rIC] || rAF;\nd[addEventListener](\"visibilitychange\", () => {\n    rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\n    rIC = w[_rIC] || rAF;\n});\n\nconst nextTick = w[_setTimeout];\n\nlet createElementOverride;\nconst capturedAttributes = [\"src\", \"type\"];\n\n/* Hack around 'avoid serving legacy javascript to modern browsers' */\nconst O = Object,\n    definePropert = \"definePropert\";\n\nO[definePropert + \"y\"] = (object, property, options) => {\n    if (object === w && ([\"jQuery\", \"onload\"].indexOf(property) >= 0)\n        || (object === d || object === d.body) && [\"readyState\", \"write\", \"writeln\", \"on\" + RSC].indexOf(property) >= 0) {\n        if ([\"on\" + RSC, \"on\" + L].indexOf(property) && options.set) {\n            listeners[\"on\" + RSC] = listeners[\"on\" + RSC] || [];\n            listeners[\"on\" + RSC].push(options.set);\n            // objectRedefinitions['onreadystatechange'] = options;\n        } else {\n            process.env.DEBUG && ce(\"Denied \" + (object.constructor || {}).name + \" \" + property + \" redefinition\");\n        }\n        return object;\n    } else if ((object instanceof HTMLScriptElement) && capturedAttributes.indexOf(property) >= 0) {\n\n        if (!object[property + \"__def\"]) {\n            const descriptor = O[getOwnPropertyDescriptor](object, property);\n            Object_defineProperty(object, property, {\n                set(value) {\n                    if (object[property + \"__set\"]) {\n                        return object[property + \"__set\"].call(object, value);\n                    }\n                    return descriptor.set.call(object, value);\n                },\n                get() {\n                    if (object[property + \"__get\"]) {\n                        return object[property + \"__get\"].call(object);\n                    }\n                    return descriptor.get.call(object);\n                }\n            });\n            object[property + \"__def\"] = true;\n        }\n\n        if (options.get) {\n            object[property + \"__get\"] = options.get;\n        }\n\n        if (options.set) {\n            object[property + \"__set\"] = options.set;\n        }\n\n        return object;\n    }\n    // console.log(\"object\", object, \"property\", property, \"options\", options, new Error().stack);\n    return Object_defineProperty(object, property, options);\n};\n\nO[definePropert + \"ies\"] = (object, properties) => {\n    // console.log(\"object\", object, \"properties\", properties);\n    for (let i in properties) {\n        O[definePropert + \"y\"](object, i, properties[i]);\n    }\n    // symbols are not enumerable,\n    // so we have to use Object.getOwnPropertySymbols\n    // for compatibility with https://modelviewer.dev/\n    for (let sym of O.getOwnPropertySymbols(properties)) {\n        O[definePropert + \"y\"](object, sym, properties[sym]);\n    }\n    return object;\n};\n\nif (process.env.DEBUG) {\n    d[addEventListener](RSC, () => {\n        c(delta(), separator, RSC, d.readyState);\n    });\n\n    d[addEventListener](DCL, () => {\n        c(delta(), separator, DCL);\n    });\n\n    dispatcher.on(EVENT_THE_END, () => {\n        c(delta(), separator, EVENT_THE_END);\n        c(delta(), separator, firedEventsCount + \" queued events fired\");\n    });\n\n    w[addEventListener](L, () => {\n        c(delta(), separator, L);\n    });\n}\n\n// saving original methods\nconst origAddEventListener = EventTarget[prototype][addEventListener];\nconst origRemoveEventListener = EventTarget[prototype][removeEventListener];\nconst dOrigAddEventListener = origAddEventListener.bind(d);\nconst dOrigRemoveEventListener = origRemoveEventListener.bind(d);\nconst wOrigAddEventListener = origAddEventListener.bind(w);\nconst wOrigRemoveEventListener = origRemoveEventListener.bind(w);\nconst origCreateElement = Document[prototype].createElement;\nconst dOrigCreateElement = origCreateElement.bind(d);\nconst origReadyStateGetter = d.__proto__[__lookupGetter__](\"readyState\").bind(d);  \n\nlet readyState = \"loading\";\nObject_defineProperty(d, \"readyState\", {\n    get() { return readyState; },\n    set(value) { return readyState = value; },\n});\n\nconst hasUnfiredListeners = (eventNames) => {\n    return eventQueue.filter(([event, , context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            for (let i = 0; i < listeners[name].length; i++) {\n                if (listeners[name][i]) {\n                    const listenerKey = name + \"::\" + j + \"::\" + i;\n                    if (!firedListeners[listenerKey]) {\n                        return true;\n                    }\n                }\n            }\n        } catch {\n            // do nothing\n        }\n    }).length;\n};\n\nlet currentlyFiredEvent;\nconst firedListeners = {};\nconst fireQueuedEvents = (eventNames) => {\n    eventQueue.forEach(([event, readyState, context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            if ((listeners[name] || []).length) {\n                // listeners[name].forEach doesn't work as the listeners might be added \n                // during the loop\n                for (let i = 0; i < listeners[name].length; i++) {\n                    const func = listeners[name][i];\n                    if (func) {\n                        // readystatechanges fires multiple time times on same \n                        // listener with different readyState, accounting for that\n                        // const listenerKey = event === M \n                        //     ? name + '::' + j + '::' + i + '::' + readyState\n                        //     : name + '::' + i + '::' + readyState;\n                        const listenerKey = name + \"::\" + j + \"::\" + i;\n                        if (!firedListeners[listenerKey]) {\n                            firedListeners[listenerKey] = true;\n                            d.readyState = readyState;\n                            currentlyFiredEvent = name;\n                            try {\n                                firedEventsCount++;\n                                process.env.DEBUG && c(delta(), \"firing \" + event.type + \"(\" + d.readyState + \") for\", func[prototype] ? func[prototype].constructor : func);\n                                if (!func[prototype] || func[prototype].constructor === func) {\n                                    func.bind(context)(event);\n                                } else {\n                                    func(event);\n                                }\n                            } catch (e) {\n                                ce(e, func);\n                            }\n                            currentlyFiredEvent = null;\n                        }\n                    }\n                }\n            }\n        } catch (e) {\n            ce(e);\n        }\n    });\n};\n\n// we need to clone L, DCL, RSC events\n// because we internally track them and use them, eg window.load\n// if some script like elementor runs e.stopImmediatePropagation()\n// we won't ever get them, just the same way we do in the inpage-first-interaction\ndOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), d]);\n});\ndOrigAddEventListener(RSC, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + RSC);\n    eventQueue.push([new e.constructor(RSC, e), origReadyStateGetter(), d]);\n});\nwOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued window \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), w]);\n});\nwOrigAddEventListener(L, (e) => {\n    WindowLoaded = true;\n    process.env.DEBUG && c(delta(), \"enqueued window \" + L);\n    eventQueue.push([new e.constructor(L, e), origReadyStateGetter(), w]);\n    // we must fire queued events for excluded scripts\n    // if firstInteractionFired, then some scripts might have registered load event listeners\n    // and they will be fired as well, which is invalid behaviour\n    // https://wordpress.org/support/topic/meteor-blocks-contact-form-email/\n    if (!iterating) {\n        fireQueuedEvents([DCL, RSC, M, L]);\n    }\n});\nconst messageListener = (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued \" + M);\n    eventQueue.push([e, d.readyState, w]);\n};\n\nconst origWindowOnMessageGetter = w[__lookupGetter__](\"onmessage\");\nconst origWindowOnMessageSetter = w[__lookupSetter__](\"onmessage\");\n\n// will be called inside iterate, right before dispatching EVENT_THE_END\nconst restoreMessageListener = () => {\n    // this code is called only when all the events were fired\n    wOrigRemoveEventListener(M, messageListener);\n    // restoring message listeners\n    (listeners[windowEventPrefix + \"message\"] || []).forEach(listener => {\n        wOrigAddEventListener(M, listener);\n    });\n    Object_defineProperty(w, \"onmessage\", {\n        get: origWindowOnMessageGetter,\n        set: origWindowOnMessageSetter,\n    });\n    process.env.DEBUG && c(delta(), \"message listener restored\");\n};\n// removal will be inside iterate\nwOrigAddEventListener(M, messageListener);\n\n// jQuery mock allows to trigger jQuery.ready early\n// because if we rely on native logics, the ready() listeners will fire after window.load\nconst jQuery = new jQueryMock();\njQuery.init();\n\n// there are 3 cases\n// 1. first interaction fires before window.load as a resut of user interaction\n// 2. window.load fires before first interaction \n// 3. !!!!!!! 3rd party scripts might trigger it programmatically if they were excluded from optimization\nconst startIterating = () => {\n    if (!iterating && !DONE) {\n        iterating = true;\n        // mayBePreloadScripts();\n        d.readyState = \"loading\";\n        rAF(flushPreloadsAndPreconnects);\n        rAF(iterate); // starts the iteration\n        // nextTick(iterate); // starts the iteration\n    }\n    /**\n     * If window.load fires after iteration complete, eg some images delay window.load\n     * there might be some unfired events left in the queue\n     * so we will restart iteration which will fire them\n     */\n    if (!WindowLoaded) {\n        wOrigAddEventListener(L, () => {\n            process.env.DEBUG && c(delta(), separator, \"starting iterating after window loaded\");\n            startIterating();\n        });\n    }\n};\n\n// We need CSS to start iterating, because there are cases,\n// when something injects CSS before some <link>, that is \n// inside <noscript>. This is why we wait for EVENT_CSS_LOADED,\n// which triggers EVENT_IMAGES_LOADED\nprocess.env.SPO || wOrigAddEventListener(EVENT_FIRST_INTERACTION, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating on first interaction\");\n    startIterating();\n});\n\n/* EVENT_IMAGES_LOADED is an internal event, known to dispatcher only */\ndispatcher.on(EVENT_IMAGES_LOADED, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating after images loaded\");\n    startIterating();\n});\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor.rdelay >= 0) {\n        InteractionEvents.capture();\n    }\n})();\n\n// scriptsToLoad is set to 1 to allow an extra call at the end of iteration\n// that means that once last script loads, it won't trigger the end of the cycle\n// only after all the events fire, the cycle will end\nlet scriptsToLoad = [-1];\nconst scriptLoaded = (event) => {\n    process.env.DEBUG && c(delta(), \"scriptLoaded\", event.target, scriptsToLoad.length);\n    scriptsToLoad = scriptsToLoad.filter(script => script !== event.target);\n    if (!scriptsToLoad.length) {\n        // this is ultimate end of the iteration cycle\n        nextTick(dispatcher.emit.bind(dispatcher, EVENT_THE_END));\n    }\n};\n\nlet i = 0;\nlet iterating = false;\n\n// TODO: async and defer scripts can be injected into the document in parallel\n// we can either insert them in 2 batches (defer, then async), or even in one batch\nconst iterate = () => {\n    process.env.DEBUG && c(delta(), \"it\", i++, reorder.length);\n    const element = reorder.shift();\n    if (element) {\n        // process.env.DEBUG && c(separator, \"iterating\", element, element.dataset);\n        if (element[getAttribute](prefix + \"src\")) {\n            if (element[hasAttribute](\"async\") || element[__dynamic]) {\n                if (element.isConnected) {\n                    // we can't be sure that it is going to be inserted into the DOM\n                    process.env.DEBUG && c(delta(), \"pushed to scriptsToLoad\", scriptsToLoad);\n                    scriptsToLoad.push(element);\n                    // https://github.com/aguidrevitch/fpo-javascript-rewrite/issues/6\n                    // https://wordpress.org/support/topic/script-loading-waited-on-js-file/\n                    // if an async script hangs for longer than 1 seconds\n                    // we stop waiting for it to finish page load\n                    setTimeout(scriptLoaded, 1000, { target: element });\n                }\n                // even if it is not in the scriptsToLoad list, \n                // scriptLoaded won't remove it from the list\n                unblock(element, scriptLoaded);\n                nextTick(iterate);\n            } else {\n                // process.env.DEBUG && c(delta(), \"sync\", element);\n                unblock(element, nextTick.bind(null, iterate));\n                // iterate()\n            }\n        } else if (element.origtype == javascriptBlocked) {\n            unblock(element);\n            // allow inserted script to execute\n            nextTick(iterate);\n        } else {\n            // it might be wrongfully processed script by backend, eg type=\"application/ld+json\" \n            // and execution will stop here\n            process.env.DEBUG && ce(\"running next iteration\", element, element.origtype, element.origtype == javascriptBlocked);\n            nextTick(iterate);\n        }\n        // } else if (scriptsToInsert) {\n        //     process.env.DEBUG && c(delta(), scriptsToInsert, \"more scripts to insert\");\n        //     rAF(iterate);\n    } else {\n        if (defer.length) {\n            process.env.DEBUG &&\n                defer.forEach(script =>\n                    c(delta(), \"adding deferred script from defer queue to reorder\", script.cloneNode(true))\n                );\n            reorder.push(...defer);\n            defer.length = 0;\n\n            // mayBePreloadScripts();\n            nextTick(iterate);\n\n            // process.env.DEBUG && c('loaded all the scripts');\n            // not restoring original addEventListener\n            // to avoid unexpected failures,\n            // however, that triggers spurious handlers which were sleeping\n            // d[addEventListener] = dOrigAddEventListener;\n        } else if (hasUnfiredListeners([DCL, RSC, M])) {\n            process.env.DEBUG && c(delta(), \"firing unfired listeners\");\n            fireQueuedEvents([DCL, RSC, M]);\n            nextTick(iterate);\n        } else if (WindowLoaded) {\n            // as cycle starts in 'fi' listener\n            if (hasUnfiredListeners([L, M])) {\n                fireQueuedEvents([L, M]);\n                nextTick(iterate);\n            } else if (scriptsToLoad.length > 1) {\n                // can get here only if started loading async scripts\n                process.env.DEBUG && c(delta(), `waiting for ${scriptsToLoad.length - 1} more scripts to load`, scriptsToLoad);\n                rIC(iterate);\n            } else if (async.length) {\n                process.env.DEBUG &&\n                    async.forEach(script =>\n                        c(delta(), \"adding async script from async queue to reorder\", script.cloneNode(true))\n                    );\n\n                reorder.push(...async);\n                async.length = 0;\n\n                // mayBePreloadScripts();\n                nextTick(iterate);\n            } else {\n                // CloudFlare RocketLoader workaround\n                if (w.RocketLazyLoadScripts) {\n                    try {\n                        RocketLazyLoadScripts.run();\n                    } catch (e) {\n                        ce(e);\n                    }\n                }\n                d.readyState = \"complete\";\n\n                // restoring message listener here to avoid messages that can fall\n                // in the gap before EVENT_THE_END fires\n                restoreMessageListener();\n\n                // restoring original jQuery.ready here to avoid calls that can fall\n                // in the gap before EVENT_THE_END fires\n                jQuery.unmock();\n\n                // We can't restore original event listeners\n                // because on slow connections, 3rd party scripts might be loaded late\n                // and bind to window.load or anything else we track\n                // documentAddEventListener = dOrigAddEventListener;\n                // documentRemoveEventListener = dOrigRemoveEventListener;\n                // windowAddEventListener = wOrigAddEventListener;\n                // windowRemoveEventListener = wOrigRemoveEventListener;\n\n                // process.env.DEBUG && c('running emulatedWindowLoaded');\n                // technically, iterating = false is not needed\n                // as the only place where it is checked is inside window.load\n                // and here he has already fired as WindowLoaded === true\n                iterating = false;\n                DONE = true;\n\n                // setTimeout(() => dispatcher.emit(EVENT_THE_END));\n                w[_setTimeout](() => scriptLoaded({ target: -1 }));\n            }\n        } else {\n            // exiting iterate() cycle in case window.load hasn't fired yet\n            iterating = false;\n        }\n    }\n};\n\nconst cloneScript = (el) => {\n\n    const newElement = dOrigCreateElement(S);\n\n    const attrs = el.attributes;\n    // console.log(\"newElement\", attrs.map(attr => attr.name + \"=\" + attr.value));\n\n    // move attributes\n    for (var i = attrs.length - 1; i >= 0; i--) {\n        if (!attrs[i].name.startsWith(prefix)) {\n            newElement[setAttribute](attrs[i].name, attrs[i].value);\n        }\n    }\n\n    const type = el[getAttribute](prefix + \"type\"); // data-wpmeteor-type\n    if (type) {\n        newElement.type = type;\n    } else {\n        newElement.type = \"text/javascript\";\n    }\n\n    // CloudFlare RocketLoader workaround\n    if ((el.textContent || \"\").match(/^\\s*class RocketLazyLoadScripts/)) {\n        newElement.textContent = el.textContent.replace(/^\\s*class\\s*RocketLazyLoadScripts/, \"window.RocketLazyLoadScripts=class\").replace(\"RocketLazyLoadScripts.run();\", \"\");\n    } else {\n        newElement.textContent = el.textContent;\n    }\n\n    // these might not be set as attributes, but instead as properties\n    for (const property of [\"onload\", \"onerror\", \"onreadystatechange\"]) {\n        if (el[property]) {\n            process.env.DEBUG && c(delta(), `re-adding ${property} to`, el, el[property]);\n            newElement[property] = el[property];\n        }\n    }\n\n    return newElement;\n};\n\n// let scriptsToInsert = 0;\n/*\nconst replaceScript = (el, newElement) => {\n    const parentNode = el.parentNode;\n    if (parentNode) {\n        // some scripts want parentNode to remove script themselves\n        const newParent = parentNode.nodeType === 11\n            ? dOrigCreateElement(parentNode.host[tagName])\n            : dOrigCreateElement(parentNode[tagName]);\n        // rAF is probably inacceptable for inline scripts at least. Here is the catch\n        // a script is supposed to create another script which should be captured by MutationObserver\n        // but by the time document.createElement() is called, iterating = false\n        // this is temporary fix, probably there are better solutions\n        // scriptsToInsert++;\n        // rAF(() => {\n        //     scriptsToInsert--;\n        //     newParent[appendChild](parentNode.replaceChild(newElement, el));\n        // });\n        newParent[appendChild](parentNode.replaceChild(newElement, el));\n        if (!parentNode.isConnected) {\n            // it happens sometimes, so no need to trigger verbose error\n            process.env.DEBUG && ce(\"Parent for\", el, \" is not part of the DOM\");\n            // we have to return empty element to trigger onload() callback\n            // instantly instead of waiting for never firing onload event listener\n            return;\n        }\n        return el;\n    }\n    ce(\"No parent for\", el);\n};\n*/\n\nconst unblock = (el, callback) => {\n    // const ds = el.dataset;\n    let src = el[getAttribute](prefix + \"src\");\n    // convert relative to absolute if SPO\n    process.env.SPO && src && _wpmeteor.baseURL && (() => { try { src = new URL(src, _wpmeteor.baseURL).href; } catch { } })(); // eslint-disable-line no-empty\n\n    if (src) {\n        process.env.DEBUG && c(delta(), \"unblocking src\", src);\n\n        const addEventListener = origAddEventListener.bind(el);\n\n        // if (el.getEventListeners) {\n        //     el.getEventListeners().forEach(([event, listener]) => {\n        //         process.env.DEBUG && c(delta(), \"re-adding event listeners to element\", event, listener);\n        //         addEventListener(event, listener);\n        //     });\n        // }\n\n        if (el.isConnected && callback) {\n            addEventListener(L, callback);\n            addEventListener(E, callback);\n        }\n\n        /** setting type before src is crucial for load/error events to be triggered \n          * According to the HTML5 specification, when a script element is inserted \n          * into the document, it starts fetching the script as soon as the src attribute is encountered, \n          * provided the type is a recognized script type. If the type is not set correctly at that point, \n          * the script will not be fetched.\n          */\n        /* el.origtypegets and sets original \"type\" attribute, el.type points to data-wpmeteor-src */\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        /* el.origsrc gets and sets original \"src\" attribute, el.src points to data-wpmeteor-src */\n        el.origsrc = src;\n\n        /** Do not remove prefix + \"src\" and prefix + \"type\" attributes, they are needed in the following case:\n          * * document.currentScript.getAttribute('src') will return null if they are removed\n          * as access to the attributes is still wrapped by us\n          */\n        // el[removeAttribute](prefix + \"src\");\n        // el[removeAttribute](prefix + \"type\");\n\n        process.env.DEBUG && c(delta(), \"unblocked src\", src, el);\n        // http://www.iana.org/assignments/media-types/media-types.xhtml\n        // in fact only text/javascript is the right one, the rest is obsolete\n        if ((!el.isConnected || el[hasAttribute](\"nomodule\") || (el.type && !isJavascriptRegexp.test(el.type))) && callback) {\n            // listeners won't fire\n            // so have to trigger callback\n            callback(new Event(L, { target: el }));\n        }\n    } else if (el.origtype === javascriptBlocked) {\n        // onLoad is never passed here\n        process.env.DEBUG && c(delta(), \"unblocking inline\", el);\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        // have to insert updated content in order to trigger execution\n        // we are going to change the content, so integrity is not valid anymore\n        el[removeAttribute](\"integrity\");\n        el.textContent = el.textContent + \"\\n\";\n        process.env.DEBUG && c(delta(), \"unblocked inline\", el);\n    } else {\n        process.env.DEBUG && ce(delta(), \"already unblocked\", el);\n        if (callback) {\n            callback(new Event(L, { target: el }));\n        }\n    }\n};\n// TODO: support for ...args ????\nconst removeQueuedEventListener = (name, func) => {\n    const pos = (listeners[name] || []).indexOf(func);\n    if (pos >= 0) {\n        listeners[name][pos] = undefined;\n        return true;\n    }\n};\n\nconst documentAddEventListener = (event, func, ...args) => {\n    if (\"HTMLDocument::\" + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, d[addEventListener].bind(d, event, func, ...args));\n        return;\n    }\n    if (func && (event === DCL || event === RSC)) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = documentEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    return dOrigAddEventListener(event, func, ...args);\n};\n\n// ...args were missing, making it impossible to remove listeners for google maps mobile\nconst documentRemoveEventListener = (event, func, ...args) => {\n    if (event === DCL) {\n        const name = documentEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return dOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(d, {\n    [addEventListener]: {\n        get() { return documentAddEventListener; },\n        set() { return documentAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return documentRemoveEventListener; },\n        set() { return documentRemoveEventListener; },\n    }\n});\n\nlet preloadsAndPreconnectsFragment = d.createDocumentFragment();\nconst flushPreloadsAndPreconnects = () => {\n    if (preloadsAndPreconnectsFragment.hasChildNodes()) {\n        d.head[appendChild](preloadsAndPreconnectsFragment);\n        preloadsAndPreconnectsFragment = d.createDocumentFragment();\n    }\n};\nconst preconnects = process.env.SPO && { \"https://cdn.fastpixel.io\": true } || {};\nconst preconnect = (src) => {\n    if (!src)\n        return;\n    try {\n        const url = new URL(src, d.location.href);\n        const href = url.origin;\n        if (href && !preconnects[href] && d.location.host !== url.host) {\n            const s = dOrigCreateElement(\"link\");\n            s.rel = \"preconnect\";\n            s.href = href;\n            preloadsAndPreconnectsFragment[appendChild](s);\n            process.env.DEBUG && c(delta(), \"preconnecting\", url.origin);\n            preconnects[href] = true;\n            if (iterating) {\n                rAF(flushPreloadsAndPreconnects);\n            }\n        }\n    } catch (e) {\n        process.env.DEBUG && ce(delta(), \"failed to parse src for preconnect\", src, e);\n    }\n};\n\nconst preloads = {};\nconst preloadAsScript = (src, isModule, crossorigin, integrity) => {\n    const s = dOrigCreateElement(\"link\");\n    s.rel = isModule\n        ? \"modulepre\" + L\n        : \"pre\" + L;\n    s.as = \"script\";\n    if (crossorigin)\n        s[setAttribute](\"crossorigin\", crossorigin); // must be setAttribute\n    if (integrity)\n        s[setAttribute](\"integrity\", integrity); // must be setAttribute\n    try {\n        src = new URL(src, d.location.href).href;\n    } catch { }\n    s.href = src;\n    preloadsAndPreconnectsFragment[appendChild](s);\n    preloads[src] = true;\n    if (iterating) {\n        rAF(flushPreloadsAndPreconnects);\n    }\n};\n\n/*\nconst mayBePreloadScripts = () => {\n    if (_wpmeteor.preload && reorder.length) {\n        reorder.forEach(script => {\n            const src = script[getAttribute](prefix + \"src\");\n            if (src && !preloads[src] && !script[hasAttribute](\"nomodule\")) {\n                preloadAsScript(src, script[getAttribute](prefix + \"type\") == \"module\", script[hasAttribute](\"crossorigin\") && script[getAttribute](\"crossorigin\"), script[getAttribute](\"integrity\"));\n            }\n        });\n    }\n};\n*/\n\n/*\ndOrigAddEventListener(DCL, () => {\n    const treorder = [...reorder];\n    reorder.length = 0;\n    [...d[querySelectorAll](\"script[type='\" + javascriptBlocked + \"']\"), ...treorder].forEach(el => {\n        // this is a workaround to skip nodes that were detected in MutationObserver\n        // and already hit iterate(), however, they miss the next Object_defineProperty() for origtype\n        // so this is incorrect, and doesn't work, check for node.origtype presense was added\n        // with fixed MutationObserver this is not needed anymore\n        if (seenScripts.has(el)) {\n            process.env.DEBUG && ce(delta(), \"WARNING: the scripts should have been filtered in MutationObserver\", el);\n            return;\n        }\n        const originalAttributeGetter = el[__lookupGetter__](\"type\").bind(el);\n        Object_defineProperty(el, \"origtype\", {\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n        if ((el[getAttribute](prefix + \"src\") || \"\").match(/\\/gtm.js\\?/)) {\n            process.env.DEBUG && c(delta(), \"delaying regex\", el[getAttribute](prefix + \"src\"));\n            async.push(el);\n        } else if (el[hasAttribute](\"async\")) {\n            process.env.DEBUG && c(delta(), \"delaying async\", el[getAttribute](prefix + \"src\"));\n            async.unshift(el);\n        } else if (el[hasAttribute](\"defer\")) {\n            process.env.DEBUG && c(delta(), \"delaying defer\", el[getAttribute](prefix + \"src\"));\n            defer.push(el);\n        } else {\n            reorder.push(el);\n        }\n        seenScripts.add(el);\n    });\n    // we will loose all event listeners, so we'd better track addEventListener/removeEventListener as well\n    // not supported yet, cant find reference in backend\n    // const querySelectors = ['link'].map(n => n + '[' + prefix + 'onload]').join(',');\n    // d.querySelectorAll(querySelectors).forEach(el => reorder.push(el));\n});\n*/\n\n/* 3rd party scripts handling */\nconst createElement = function (...args) {\n\n    const scriptElt = dOrigCreateElement(...args);\n\n    // createElement(null), createElement(undefined) are valid calls\n    // so we have to check for args[0] presence\n    if (!args || args[0].toUpperCase() !== S || !iterating) {\n        return scriptElt;\n    }\n\n    process.env.DEBUG && c(delta(), \"creating script element\");\n\n    // Backup the original setAttribute function\n    const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt);\n    const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt);\n    const originalRemoveAttribute = scriptElt[removeAttribute].bind(scriptElt);\n    const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt);\n    const originalAttributes = scriptElt[__lookupGetter__](\"attributes\").bind(scriptElt);\n\n    // originalSetAttribute(prefix + \"after\", \"REORDER\");\n    // originalSetAttribute(prefix + \"type\", \"text/javascript\");\n\n    // scriptElt.type = javascriptBlocked;\n\n    // const eventListeners = [];\n    // scriptElt.getEventListeners = () => {\n    //     return eventListeners;\n    // };\n\n    capturedAttributes.forEach(property => {\n        const originalAttributeGetter = scriptElt[__lookupGetter__](property).bind(scriptElt);\n        const originalAttributeSetter = scriptElt[__lookupSetter__](property).bind(scriptElt);\n        O[definePropert + \"y\"](scriptElt, property, {\n            set(value) {\n                process.env.DEBUG && c(delta(), \"setting \", property, value);\n                // bypass for application/ld+json and similar\n                if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                    return originalSetAttribute(property, value);\n                }\n                if (property === \"src\" && value) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                } else if (property === \"type\" && value && scriptElt.origsrc) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                }\n                return value\n                    ? originalSetAttribute(prefix + property, value)\n                    : originalRemoveAttribute(prefix + property);\n            },\n            get() {\n                const result = scriptElt[getAttribute](prefix + property);\n                if (property === \"src\") {\n                    // convert to absolute\n                    try {\n                        const url = new URL(result, d.location.href);\n                        return url.href;\n                    } catch {\n                         \n                    }\n                }\n                return result;\n            }\n        });\n        Object_defineProperty(scriptElt, \"orig\" + property, {\n            set(value) {\n                return originalAttributeSetter(value);\n            },\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n\n    });\n\n    // this is not needded anymore as we are not copying the node\n    // so we don't need to reattach the listeners\n    // scriptElt[addEventListener] = function (event, handler) {\n    //     eventListeners.push([event, handler]);\n    // };\n\n    // Monkey patch the setAttribute function so that the setter is called instead.\n    // Otherwise, setAttribute('type', 'whatever') will bypass our custom descriptors!\n    scriptElt[setAttribute] = function (property, value) {\n        if (capturedAttributes.includes(property)) {\n            process.env.DEBUG && c(delta(), \"setting attribute\", property, value);\n            // bypass for application/ld+json and similar\n            if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                return originalSetAttribute(property, value);\n            }\n            if (property === \"src\" && value) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            } else if (property === \"type\" && value && scriptElt.origsrc) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            }\n            return value\n                ? originalSetAttribute(prefix + property, value)\n                : originalRemoveAttribute(prefix + property);\n        } else {\n            originalSetAttribute(property, value);\n        }\n    };\n\n    scriptElt[getAttribute] = function (property) {\n        const result = capturedAttributes.indexOf(property) >= 0\n            ? originalGetAttribute(prefix + property)\n            : originalGetAttribute(property);\n        if (property === \"src\") {\n            // convert to absolute\n            try {\n                const url = new URL(result, d.location.href);\n                return url.href;\n            } catch {\n                 \n            }\n        }\n        return result;\n    };\n\n    scriptElt[hasAttribute] = function (property) {\n        return capturedAttributes.indexOf(property) >= 0\n            ? originalHasAttribute(prefix + property)\n            : originalHasAttribute(property);\n    };\n\n    /* very shallow mocking of NamedNodeMap */\n    Object_defineProperty(scriptElt, \"attributes\", {\n        get() {\n            const mock = [...originalAttributes()]\n                .filter(attr => attr.name !== \"type\") // no need to filter as we no longer append it && attr.name !== prefix + \"after\")\n                .map(attr => {\n                    return {\n                        name: attr.name.match(new RegExp(prefix))\n                            ? attr.name.replace(prefix, \"\")\n                            : attr.name,\n                        value: attr.value\n                    };\n                });\n            return mock;\n        }\n    });\n\n    // this is to make it to the async queue where it belongs\n    scriptElt[__dynamic] = true;\n\n    return scriptElt;\n};\n\n// Allowing to override, but still not the best option - onetrust captures createElement \n// even for users who accepted cookies\nObject.defineProperty(Document[prototype], \"createElement\", {\n    set(value) {\n        if (process.env.DEBUG) {\n            if (value == origCreateElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement restored to original\");\n            } else if (value === createElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden\");\n            } else {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden by a 3rd party script\");\n            }\n        }\n        if (value !== createElement) {\n            createElementOverride = value;\n        }\n    },\n    get() {\n        return createElementOverride || createElement;\n    }\n});\n\nconst seenScripts = new Set();\nconst observer = new MutationObserver(mutations => {\n    mutations.forEach(({ removedNodes, addedNodes, target }) => {\n        // this is the case for https://essential-addons.com/elementor/offcanvas-content/\n        // which, in EAELOffcanvasContent.prototype = { init: function() { \n        // ... 0 === e(\".eael-offcanvas-container\").length && (e(\"body\").wrapInner('<div class=\"eael-offcanvas-container eael-offcanvas-container-' + this.id + '\" />'),\n        // }}\n        // wraps the whole body into a div, removes some scripts from the DOM and reinserts them wrapped in .eael-offcanvas-container.eael-offcanvas-container-<id>\n        removedNodes.forEach(node => {\n            // For each removed script tag\n            if (node.nodeType === 1 && S === node[tagName] && \"origtype\" in node) {\n                seenScripts.delete(node);\n            }\n        });\n        addedNodes.forEach(node => {\n            // For each added script tag\n            if (node.nodeType === 1) {\n                if (S === node[tagName]) {\n                    // process.env.DEBUG && c(delta(), \"XXXX\", node, node.origtype, node[getAttribute](\"type\"));\n                    if (\"origtype\" in node) {\n                        // process.env.DEBUG && c(delta(), \"mutationobserver captured some script\", node.cloneNode(true));\n                        if (node.origtype !== javascriptBlocked) {\n                            process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                            return;\n                        }\n                    } else if (node[getAttribute](\"type\") !== javascriptBlocked) {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                        return;\n                    }\n                    // all the intercepted nodes inserted by createElement() should have origtype getter\n                    if (!(\"origtype\" in node)) {\n                        process.env.DEBUG && (node[getAttribute](\"type\") === javascriptBlocked\n                            ? c(delta(), \"mutationobserver captured blocked script\", node)\n                            : c(delta(), \"mutationobserver captured non-javascript script\", node));\n                        capturedAttributes.forEach(property => {\n                            const originalAttributeGetter = node[__lookupGetter__](property).bind(node);\n                            const originalAttributeSetter = node[__lookupSetter__](property).bind(node);\n                            Object_defineProperty(node, \"orig\" + property, {\n                                set(value) {\n                                    return originalAttributeSetter(value);\n                                },\n                                get() {\n                                    return originalAttributeGetter();\n                                }\n                            });\n                        });\n                    } else {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured new script\", node.cloneNode(true));\n                    }\n\n                    // const src = node[getAttribute](prefix + \"src\");\n                    const src = node[getAttribute](prefix + \"src\");\n\n                    if (seenScripts.has(node)) {\n                        ce(\"Inserted twice\", node);\n                    }\n\n                    if (node.parentNode) {\n                        seenScripts.add(node);\n                        const origType = node[getAttribute](prefix + \"type\");\n                        if ((src || \"\").match(/\\/gtm.js\\?/)) {\n                            process.env.DEBUG && c(delta(), \"delaying regex\", node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        } else if (node[hasAttribute](\"async\") || node[__dynamic]) {\n                            process.env.DEBUG && c(delta(),\n                                node.__async\n                                    ? \"delaying dynamically inserted script as async\"\n                                    : \"delaying async\",\n                                node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules:\n                        // \"There is no need to use the defer attribute (see <script> attributes) \n                        // when loading a module script; modules are deferred automatically.\"\n                        } else if (node[hasAttribute](\"defer\") || origType === \"module\") {\n                            process.env.DEBUG && c(delta(), \"delaying defer\", node[getAttribute](prefix + \"src\"));\n                            defer.push(node);\n                            preconnect(src);\n                        } else {\n                            if (src && !node[hasAttribute](\"nomodule\") && !preloads[src]) {\n                                // no need to preload if it is the next script in the queue\n                                // VWO removes node instantly\n                                preloadAsScript(src, origType === \"module\", node[hasAttribute](\"crossorigin\") && node[getAttribute](\"crossorigin\"), node[getAttribute](\"integrity\"));\n                            }\n                            reorder.push(node);\n                        }\n                    } else {\n                        // if the node has been instanly removed, we still want to load it and run\n                        // I tested appendNode(script); removeNode(script) - it still loads and triggers the code\n                        process.env.DEBUG && ce(\"No parent node for\", node, \"re-adding to\", target);\n                        node[addEventListener](L, e => e.target.parentNode[removeChild](e.target));\n                        node[addEventListener](E, e => e.target.parentNode[removeChild](e.target));\n                        target[appendChild](node);\n                        // no need to push to seenScripts and reorder as it will happen on the next iteration\n                        // of MutationObserver\n                    }\n                } else if (\"LINK\" === node[tagName] && node[getAttribute](\"as\") === \"script\") {\n                    preloads[node[getAttribute](\"href\")] = true;\n                }\n            }\n        });\n    });\n});\n\nconst mutationObserverOptions = {\n    childList: true,\n    subtree: true,\n    // attributes: true,\n    // attributeFilter: ['src', 'type'],\n    // attributeOldValue: true,\n};\n\nobserver.observe(d.documentElement, mutationObserverOptions);\n\nconst origAttachShadow = HTMLElement[prototype].attachShadow;\nHTMLElement[prototype].attachShadow = function (options) {\n    const shadowRoot = origAttachShadow.call(this, options);\n    if (options.mode === \"open\") {\n        observer.observe(shadowRoot, mutationObserverOptions);\n    }\n    return shadowRoot;\n};\n\nprocess.env.SPO || (() => {\n    const origIFrameSrc = O[getOwnPropertyDescriptor](HTMLIFrameElement[prototype], \"src\");\n    Object_defineProperty(HTMLIFrameElement[prototype], \"src\", {\n        get() {\n            if (this.dataset.fpoSrc) {\n                return this.dataset.fpoSrc;\n            }\n            return origIFrameSrc.get.call(this);\n        },\n        set(value) {\n            delete this.dataset.fpoSrc;\n            origIFrameSrc.set.call(this, value);\n        }\n    });\n})();\n\n// cleaning up\ndispatcher.on(EVENT_THE_END, () => {\n    process.env.DEBUG && c(delta(), \"THE END\");\n    if (!createElementOverride || createElementOverride === createElement) {\n        Document[prototype].createElement = origCreateElement;\n        observer.disconnect();\n    } else {\n        process.env.DEBUG && c(delta(), \"createElement is overridden, keeping observers in place\");\n    }\n    // we should only fire EVENT_REPLAY_CAPTURED_EVENTS if no lazyload is in the page\n    // eg in pure WP METEOR mode, not for FASTPIXEL\n    process.env.SPO || dispatchEvent(new CustomEvent(EVENT_REPLAY_CAPTURED_EVENTS));\n    dispatchEvent(new CustomEvent(EVENT_THE_END));\n});\n/* end 3rd party scripts handling */\n\n/* we have to override document.write as all of them will fire after DOMContentLoaded */\nlet documentWrite = (str) => {\n    let parent, currentScript;\n    if (!d.currentScript || !d.currentScript.parentNode) {\n        /* trying our best */\n        parent = d.body;\n        currentScript = parent.lastChild;\n    } else {\n        currentScript = d.currentScript;\n        parent = currentScript.parentNode;\n    }\n    try {\n        const df = dOrigCreateElement(\"div\");\n        df.innerHTML = str;\n        Array.from(df.childNodes).forEach(node => {\n            if (node.nodeName === S) {\n                // cloneScript is a must for safari\n                parent.insertBefore(cloneScript(node), currentScript);\n            } else {\n                parent.insertBefore(node, currentScript);\n            }\n        });\n    } catch (e) {\n        ce(e);\n    }\n};\nlet documentWriteLn = (str) => documentWrite(str + \"\\n\");\n\nObject_defineProperties(d, {\n    \"write\": {\n        get() { return documentWrite; },\n        set(func) { return documentWrite = func; },\n    },\n    \"writeln\": {\n        get() { return documentWriteLn; },\n        set(func) { return documentWriteLn = func; },\n    },\n});\n\n// Capturing and queueing Window Load event handlers\nlet windowAddEventListener = (event, func, ...args) => {\n    // We have to skip registering message listeners if DONE, as we already restored \n    // original eventListener to messages in restoreMessageListener()\n    // ??? not sure why there is windowEventPrefix instead of documentEventPrefix\n    // but I think this was to workaround some external javascripts\n    if (windowEventPrefix + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (windowEventPrefix + L == currentlyFiredEvent && event === L) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (func && (event === L || event === DCL || (event === M && !DONE))) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    // process.env.DEBUG && c(event, func);\n    return wOrigAddEventListener(event, func, ...args);\n};\nlet windowRemoveEventListener = (event, func, ...args) => {\n    if (event === L) { // L = load\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return wOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(w, {\n    [addEventListener]: {\n        get() { return windowAddEventListener; },\n        set() { return windowAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return windowRemoveEventListener; },\n        set() { return windowRemoveEventListener; },\n    }\n});\n\nconst onHandlerOptions = (name) => {\n    let handler;\n    return {\n        get() {\n            process.env.DEBUG && c(delta(), separator, \"getting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", handler);\n            return handler;\n        },\n        set(func) {\n            process.env.DEBUG && c(delta(), separator, \"setting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", func);\n            // only last handler should fire\n            if (handler) {\n                removeQueuedEventListener(name, func);\n            }\n            listeners[name] = listeners[name] || [];\n            listeners[name].push(func);\n            return handler = func;\n        },\n        // rocket-loader from CloudFlare tries to override onload so we will let him\n        // configurable: true,\n    };\n};\n\n/* \n * this code handles event from onload attributes\n * when rewriting body, iframes, images and scripts\n * we move original onload attribute to data-wpemeteor-onload\n * and replace onload with a function that fires CustomEvent(EVENT_ELEMENT_LOADED)\n */\n// bind to window\n// 2024-02-18: it seems that the only element we need this workaround are <document onload> and <html onload>\nwOrigAddEventListener(EVENT_ELEMENT_LOADED, e => {\n    const { target, event } = e.detail;\n    const el = target === w ? d.body : target;\n    const func = el[getAttribute](prefix + \"on\" + event.type);\n    el[removeAttribute](prefix + \"on\" + event.type);\n    try {\n        const f = new Function(\"event\", func);\n        if (target === w) {\n            // the trick here is to enqueue Window::load\n            // using overridden window.addEventListener\n            w[addEventListener](L, f.bind(target, event));\n        } else {\n            f.call(target, event);\n        }\n    } catch (err) {\n        console.err(err);\n    }\n});\n\n// overriding window.onload and document.body.onload, they are the same function\n{\n\n    const options = onHandlerOptions(windowEventPrefix + L);\n    Object_defineProperty(w, \"onload\", options);\n    dOrigAddEventListener(DCL, () => {\n        Object_defineProperty(d.body, \"onload\", options);\n    });\n}\n// overriding document.onreadystatechange\nObject_defineProperty(d, \"onreadystatechange\", onHandlerOptions(documentEventPrefix + RSC));\n// overriding window.onmessage\nObject_defineProperty(w, \"onmessage\", onHandlerOptions(windowEventPrefix + M));\n\n// rdelay delay is handled in the fpo-inpage-lazyload\n// previously it was handled here along with EVENT_FIRST_INTERACTION\n// I moved both to fpo-inpage-lazyload\nprocess.env.SPO &&\n    wOrigAddEventListener(EVENT_CSS_LOADED, () => dispatcher.emit(EVENT_IMAGES_LOADED)); /* , _wpmeteor.rdelay); */\n\nprocess.env.SPO\n    || (() => {\n\n        const wheight = w.innerHeight;\n        const wwidth = w.innerWidth;\n\n        const intersectsViewport = (el) => {\n            // chrome settings\n            // https://web.dev/browser-level-image-lazy-loading/#improved-data-savings-and-distance-from-viewport-thresholds\n            let extras = {\n                \"4g\": 1250,\n                \"3g\": 2500,\n                \"2g\": 2500,\n            };\n\n            const extra = extras[(navigator.connection || {}).effectiveType] || 0;\n            const rect = el.getBoundingClientRect();\n            const viewport = {\n                top: -1 * wheight - extra,\n                left: -1 * wwidth - extra,\n                bottom: wheight + extra,\n                right: wwidth + extra\n            };\n\n            // If one rectangle is on left side of other\n            if (rect.left >= viewport.right || rect.right <= viewport.left)\n                return false;\n\n            // If one rectangle is above other\n            if (rect.top >= viewport.bottom || rect.bottom <= viewport.top)\n                return false;\n\n            return true;\n        };\n\n        const waitForImages = (reallyWait = true) => {\n            let imagesToLoad = 1;\n            let imagesLoadedCount = -1;\n            const seen = {};\n\n            const imageLoadedHandler = () => {\n                imagesLoadedCount++;\n                // let's trigger \n                if (!--imagesToLoad) {\n                    process.env.DEBUG && c(delta(), imagesLoadedCount + \" eager images loaded\");\n                    // there are 2 options here\n                    // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n                    // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n\n                    // 1.\n                    w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n                    // 2. \n                    // should never get there, as we bypass waitForImages()\n                    // dispatcher.emit(EVENT_IMAGES_LOADED);\n                }\n            };\n\n            Array.from(d.getElementsByTagName(\"*\")).forEach(tag => {\n                let src, style, bgUrl;\n                if (tag[tagName] === \"IMG\") {\n                    let _src = tag.currentSrc || tag.src; // trying to capture srcsets if they are already loading\n                    if (_src && !seen[_src] && !_src.match(/^data:/i)) {\n                        if ((tag.loading || \"\").toLowerCase() !== \"lazy\") {\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading image\", src, \"for\", tag);\n                        } else if (intersectsViewport(tag)) { // lazy && already loading\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading lazy image\", src, \"for\", tag);\n                        }\n                    }\n                } else if (tag[tagName] === S) {\n                    preconnect(tag[getAttribute](prefix + \"src\"));\n                } else if (tag[tagName] === \"LINK\" && tag[getAttribute](\"as\") === \"script\" && [\"pre\" + L, \"modulepre\" + L].indexOf(tag[getAttribute](\"rel\")) >= 0) {\n                    preloads[tag[getAttribute](\"href\")] = true;\n                    // supposedly all CSS has already been loaded\n                } else if ((style = w.getComputedStyle(tag)) && (bgUrl = (style.backgroundImage || \"\").match(/^url\\s*\\((.*?)\\)/i)) && (bgUrl || []).length) { // eslint-disable-line no-cond-assign\n                    const url = bgUrl[0].slice(4, -1).replace(/\"/g, \"\");\n                    if (!seen[url] && !url.match(/^data:/i)) {\n                        src = url;\n                        process.env.DEBUG && c(delta(), \"loading background\", src, \"for\", tag);\n                    }\n                }\n                if (src) {\n                    seen[src] = true;\n                    const temp = new Image();\n                    if (reallyWait) {\n                        imagesToLoad++;\n                        temp[addEventListener](L, imageLoadedHandler);\n                        temp[addEventListener](E, imageLoadedHandler);\n                    }\n                    temp.src = src;\n                }\n            });\n            d.fonts.ready.then(() => {\n                process.env.DEBUG && c(delta(), \"fonts ready\");\n                imageLoadedHandler();\n            });\n        };\n\n        if (_wpmeteor.rdelay === 0) {\n            // dOrigAddEventListener(DCL, () => nextTick(waitForImages.bind(null, false)));\n            dOrigAddEventListener(DCL, waitForImages);\n        } else {\n            // there are 2 options here\n            // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n            // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n            // Reasoning for 1. is that on slow connections, we still want to wait for images to load\n\n            // 1.\n            wOrigAddEventListener(L, waitForImages);\n            // 2.\n            // w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n        }\n    })();\n"],
     5  "mappings": "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",
    66  "names": ["jQuery", "delta_default", "c", "w", "dispatchEvent", "delta_default", "c", "i", "key", "ul", "observer", "separator", "prefix", "i", "wOrigAddEventListener", "wOrigRemoveEventListener", "readyState", "addEventListener", "createElement"]
    77}
  • wp-meteor/trunk/assets/js/public/public.js

    r3264090 r3264604  
    1 (()=>{var h="addEventListener",de="removeEventListener",u="getAttribute",v="setAttribute",K="removeAttribute",U="hasAttribute",At="querySelector",H=At+"All",G="appendChild",J="removeChild",ue="createElement",T="tagName",be="getOwnPropertyDescriptor",y="prototype",q="__lookupGetter__",pe="__lookupSetter__",E="DOMContentLoaded",f="load",fe="error";var l=window,c=document,Te=c.documentElement;var F=console.error;var Ye=!0,Q=class{constructor(){this.known=[]}init(){let t,s,o=(r,a)=>{if(Ye&&r&&r.fn&&!r.__wpmeteor){let n=function(i){return i===r?this:(c[h](E,p=>{i.call(c,r,p,"jQueryMock")}),this)};this.known.push([r,r.fn.ready,r.fn.init?.prototype?.ready]),r.fn.ready=n,r.fn.init?.prototype?.ready&&(r.fn.init.prototype.ready=n),r.__wpmeteor=!0}return r};window.jQuery||window.$,Object.defineProperty(window,"jQuery",{get(){return t},set(r){t=o(r,"jQuery")},configurable:!0}),Object.defineProperty(window,"$",{get(){return s},set(r){s=o(r,"$")},configurable:!0})}unmock(){this.known.forEach(([t,s,o])=>{t.fn.ready=s,t.fn.init?.prototype?.ready&&o&&(t.fn.init.prototype.ready=o)}),Ye=!1}};var Ee="fpo:first-interaction",me="fpo:replay-captured-events";var Ke="fpo:element-loaded",Ae="fpo:images-loaded",k="fpo:the-end";var X="click",P=window,Je=P.addEventListener.bind(P),Qe=P.removeEventListener.bind(P),Se="removeAttribute",ge="getAttribute",St="setAttribute",Ue=["touchstart","touchmove","touchend","touchcancel","keydown","wheel"],Xe=["mouseover","mouseout",X],Ut=["touchstart","touchend","touchcancel","mouseover","mouseout",X],N="data-wpmeteor-";var Ge="dispatchEvent",Ze=e=>{let t=new MouseEvent(X,{view:e.view,bubbles:!0,cancelable:!0});return Object.defineProperty(t,"target",{writable:!1,value:e.target}),t},Ce=class{static capture(){let t=!1,[,s,o]=`${window.Promise}`.split(/[\s[(){]+/s);if(P["__"+o+s])return;let r=[],a=n=>{if(n.target&&Ge in n.target){if(!n.isTrusted)return;if(n.cancelable&&!Ue.includes(n.type))try{n.preventDefault()}catch{}n.stopImmediatePropagation(),n.type===X?r.push(Ze(n)):Ut.includes(n.type)&&r.push(n),n.target[St](N+n.type,!0),t||(t=!0,P[Ge](new CustomEvent(Ee)))}};P.addEventListener(me,()=>{Xe.forEach(p=>Qe(p,a,{passive:!1,capture:!0})),Ue.forEach(p=>Qe(p,a,{passive:!0,capture:!0}));let n;for(;n=r.shift();){var i=n.target;i[ge](N+"touchstart")&&i[ge](N+"touchend")&&!i[ge](N+X)?(i[ge](N+"touchmove")||r.push(Ze(n)),i[Se](N+"touchstart"),i[Se](N+"touchend")):i[Se](N+n.type),i[Ge](n)}}),Xe.forEach(n=>Je(n,a,{passive:!1,capture:!0})),Ue.forEach(n=>Je(n,a,{passive:!0,capture:!0}))}};var je=Ce;var Z=class{constructor(){this.l=[]}emit(t,s=null){this.l[t]&&this.l[t].forEach(o=>o(s))}on(t,s){this.l[t]||=[],this.l[t].push(s)}off(t,s){this.l[t]=(this.l[t]||[]).filter(o=>o!==s)}};var D=new Z;var he=c[ue]("span");he[v]("id","elementor-device-mode");he[v]("class","elementor-screen-only");var Gt=!1,et=()=>(Gt||c.body[G](he),getComputedStyle(he,":after").content.replace(/"/g,""));var tt=e=>e[u]("class")||"",rt=(e,t)=>e[v]("class",t),nt=()=>{l[h](f,function(){let e=et(),t=Math.max(Te.clientWidth||0,l.innerWidth||0),s=Math.max(Te.clientHeight||0,l.innerHeight||0),o=["_animation_"+e,"animation_"+e,"_animation","_animation","animation"];Array.from(c[H](".elementor-invisible")).forEach(r=>{let a=r.getBoundingClientRect();if(a.top+l.scrollY<=s&&a.left+l.scrollX<t)try{let i=JSON.parse(r[u]("data-settings"));if(i.trigger_source)return;let p=i._animation_delay||i.animation_delay||0,d,L;for(var n=0;n<o.length;n++)if(i[o[n]]){L=o[n],d=i[L];break}if(d){let z=tt(r),Y=d==="none"?z:z+" animated "+d,bt=setTimeout(()=>{rt(r,Y.replace(/\belementor-invisible\b/,"")),o.forEach(Tt=>delete i[Tt]),r[v]("data-settings",JSON.stringify(i))},p);D.on("fi",()=>{clearTimeout(bt),rt(r,tt(r).replace(new RegExp("\\b"+d+"\\b"),""))})}}catch(i){console.error(i)}})})};var st="data-in-mega_smartmenus",ot=()=>{let e=c[ue]("div");e.innerHTML='<span class="sub-arrow --wp-meteor"><i class="fa" aria-hidden="true"></i></span>';let t=e.firstChild,s=o=>{let r=[];for(;o=o.previousElementSibling;)r.push(o);return r};c[h](E,function(){Array.from(c[H](".pp-advanced-menu ul")).forEach(o=>{if(o[u](st))return;(o[u]("class")||"").match(/\bmega-menu\b/)&&o[H]("ul").forEach(n=>{n[v](st,!0)});let r=s(o),a=r.filter(n=>n).filter(n=>n[T]==="A").pop();if(a||(a=r.map(n=>Array.from(n[H]("a"))).filter(n=>n).flat().pop()),a){let n=t.cloneNode(!0);a[G](n),new MutationObserver(p=>{p.forEach(({addedNodes:d})=>{d.forEach(L=>{if(L.nodeType===1&&L[T]==="SPAN")try{a[J](n)}catch{}})})}).observe(a,{childList:!0})}})})};var w="readystatechange",S="message";var $="SCRIPT",m="data-wpmeteor-",b=Object.defineProperty,Me=Object.defineProperties,O="javascript/blocked",Re=/^\s*(application|text)\/javascript|module\s*$/i,Et="requestAnimationFrame",mt="requestIdleCallback",ie="setTimeout",Ie="__dynamic",M=l.constructor.name+"::",ce=c.constructor.name+"::",gt=function(e,t){t=t||l;for(var s=0;s<this.length;s++)e.call(t,this[s],s,this)};"NodeList"in l&&!NodeList[y].forEach&&(NodeList[y].forEach=gt);"HTMLCollection"in l&&!HTMLCollection[y].forEach&&(HTMLCollection[y].forEach=gt);_wpmeteor["elementor-animations"]&&nt(),_wpmeteor["elementor-pp"]&&ot();var ve=[],ye=[],j=[],ne=!1,V=[],g={},Ve=!1,Ct=0,I=c.visibilityState==="visible"?l[Et]:l[ie],ht=l[mt]||I;c[h]("visibilitychange",()=>{I=c.visibilityState==="visible"?l[Et]:l[ie],ht=l[mt]||I});var C=l[ie],Le,W=["src","type"],R=Object,ee="definePropert";R[ee+"y"]=(e,t,s)=>{if(e===l&&["jQuery","onload"].indexOf(t)>=0||(e===c||e===c.body)&&["readyState","write","writeln","on"+w].indexOf(t)>=0)return["on"+w,"on"+f].indexOf(t)&&s.set&&(g["on"+w]=g["on"+w]||[],g["on"+w].push(s.set)),e;if(e instanceof HTMLScriptElement&&W.indexOf(t)>=0){if(!e[t+"__def"]){let o=R[be](e,t);b(e,t,{set(r){return e[t+"__set"]?e[t+"__set"].call(e,r):o.set.call(e,r)},get(){return e[t+"__get"]?e[t+"__get"].call(e):o.get.call(e)}}),e[t+"__def"]=!0}return s.get&&(e[t+"__get"]=s.get),s.set&&(e[t+"__set"]=s.set),e}return b(e,t,s)};R[ee+"ies"]=(e,t)=>{for(let s in t)R[ee+"y"](e,s,t[s]);for(let s of R.getOwnPropertySymbols(t))R[ee+"y"](e,s,t[s]);return e};var He=EventTarget[y][h],vt=EventTarget[y][de],ae=He.bind(c),Bt=vt.bind(c),B=He.bind(l),yt=vt.bind(l),_t=Document[y].createElement,le=_t.bind(c),we=c.__proto__[q]("readyState").bind(c),it="loading";b(c,"readyState",{get(){return it},set(e){return it=e}});var ct=e=>V.filter(([t,,s],o)=>{if(!(e.indexOf(t.type)<0)){s||(s=t.target);try{let r=s.constructor.name+"::"+t.type;for(let a=0;a<g[r].length;a++)if(g[r][a]){let n=r+"::"+o+"::"+a;if(!xe[n])return!0}}catch{}}}).length,se,xe={},oe=e=>{V.forEach(([t,s,o],r)=>{if(!(e.indexOf(t.type)<0)){o||(o=t.target);try{let a=o.constructor.name+"::"+t.type;if((g[a]||[]).length)for(let n=0;n<g[a].length;n++){let i=g[a][n];if(i){let p=a+"::"+r+"::"+n;if(!xe[p]){xe[p]=!0,c.readyState=s,se=a;try{Ct++,!i[y]||i[y].constructor===i?i.bind(o)(t):i(t)}catch(d){F(d,i)}se=null}}}}catch(a){F(a)}}})};ae(E,e=>{V.push([new e.constructor(E,e),we(),c])});ae(w,e=>{V.push([new e.constructor(w,e),we(),c])});B(E,e=>{V.push([new e.constructor(E,e),we(),l])});B(f,e=>{Ve=!0,V.push([new e.constructor(f,e),we(),l]),x||oe([E,w,S,f])});var Lt=e=>{V.push([e,c.readyState,l])},Nt=l[q]("onmessage"),Ot=l[pe]("onmessage"),Rt=()=>{yt(S,Lt),(g[M+"message"]||[]).forEach(e=>{B(S,e)}),b(l,"onmessage",{get:Nt,set:Ot})};B(S,Lt);var Dt=new Q;Dt.init();var qe=()=>{!x&&!ne&&(x=!0,c.readyState="loading",I(We),I(A)),Ve||B(f,()=>{qe()})};B(Ee,()=>{qe()});D.on(Ae,()=>{qe()});_wpmeteor.rdelay>=0&&je.capture();var te=[-1],Be=e=>{te=te.filter(t=>t!==e.target),te.length||C(D.emit.bind(D,k))};var x=!1,A=()=>{let e=ve.shift();if(e)e[u](m+"src")?e[U]("async")||e[Ie]?(e.isConnected&&(te.push(e),setTimeout(Be,1e3,{target:e})),Ne(e,Be),C(A)):Ne(e,C.bind(null,A)):(e.origtype==O&&Ne(e),C(A));else if(ye.length)ve.push(...ye),ye.length=0,C(A);else if(ct([E,w,S]))oe([E,w,S]),C(A);else if(Ve)if(ct([f,S]))oe([f,S]),C(A);else if(te.length>1)ht(A);else if(j.length)ve.push(...j),j.length=0,C(A);else{if(l.RocketLazyLoadScripts)try{RocketLazyLoadScripts.run()}catch(t){F(t)}c.readyState="complete",Rt(),Dt.unmock(),x=!1,ne=!0,l[ie](()=>Be({target:-1}))}else x=!1},xt=e=>{let t=le($),s=e.attributes;for(var o=s.length-1;o>=0;o--)s[o].name.startsWith(m)||t[v](s[o].name,s[o].value);let r=e[u](m+"type");r?t.type=r:t.type="text/javascript",(e.textContent||"").match(/^\s*class RocketLazyLoadScripts/)?t.textContent=e.textContent.replace(/^\s*class\s*RocketLazyLoadScripts/,"window.RocketLazyLoadScripts=class").replace("RocketLazyLoadScripts.run();",""):t.textContent=e.textContent;for(let a of["onload","onerror","onreadystatechange"])e[a]&&(t[a]=e[a]);return t},Ne=(e,t)=>{let s=e[u](m+"src");if(s){let o=He.bind(e);e.isConnected&&t&&(o(f,t),o(fe,t)),e.origtype=e[u](m+"type")||"text/javascript",e.origsrc=s,(!e.isConnected||e[U]("nomodule")||e.type&&!Re.test(e.type))&&t&&t(new Event(f,{target:e}))}else e.origtype===O?(e.origtype=e[u](m+"type")||"text/javascript",e[K]("integrity"),e.textContent=e.textContent+`
    2 `):t&&t(new Event(f,{target:e}))},Fe=(e,t)=>{let s=(g[e]||[]).indexOf(t);if(s>=0)return g[e][s]=void 0,!0},at=(e,t,...s)=>{if("HTMLDocument::"+E==se&&e===E&&!t.toString().match(/jQueryMock/)){D.on(k,c[h].bind(c,e,t,...s));return}if(t&&(e===E||e===w)){let o=ce+e;g[o]=g[o]||[],g[o].push(t),ne&&oe([e]);return}return ae(e,t,...s)},lt=(e,t,...s)=>{if(e===E){let o=ce+e;Fe(o,t)}return Bt(e,t,...s)};Me(c,{[h]:{get(){return at},set(){return at}},[de]:{get(){return lt},set(){return lt}}});var re=c.createDocumentFragment(),We=()=>{re.hasChildNodes()&&(c.head[G](re),re=c.createDocumentFragment())},dt={},_e=e=>{if(e)try{let t=new URL(e,c.location.href),s=t.origin;if(s&&!dt[s]&&c.location.host!==t.host){let o=le("link");o.rel="preconnect",o.href=s,re[G](o),dt[s]=!0,x&&I(We)}}catch{}},De={},kt=(e,t,s,o)=>{let r=le("link");r.rel=t?"modulepre"+f:"pre"+f,r.as="script",s&&r[v]("crossorigin",s),o&&r[v]("integrity",o);try{e=new URL(e,c.location.href).href}catch{}r.href=e,re[G](r),De[e]=!0,x&&I(We)},ke=function(...e){let t=le(...e);if(!e||e[0].toUpperCase()!==$||!x)return t;let s=t[v].bind(t),o=t[u].bind(t),r=t[U].bind(t),a=t[q]("attributes").bind(t);return W.forEach(n=>{let i=t[q](n).bind(t),p=t[pe](n).bind(t);R[ee+"y"](t,n,{set(d){return n==="type"&&d&&!Re.test(d)?t[v](n,d):((n==="src"&&d||n==="type"&&d&&t.origsrc)&&s("type",O),d?t[v](m+n,d):t[K](m+n))},get(){let d=t[u](m+n);if(n==="src")try{return new URL(d,c.location.href).href}catch{}return d}}),b(t,"orig"+n,{set(d){return p(d)},get(){return i()}})}),t[v]=function(n,i){if(W.includes(n))return n==="type"&&i&&!Re.test(i)?s(n,i):((n==="src"&&i||n==="type"&&i&&t.origsrc)&&s("type",O),i?s(m+n,i):t[K](m+n));s(n,i)},t[u]=function(n){let i=W.indexOf(n)>=0?o(m+n):o(n);if(n==="src")try{return new URL(i,c.location.href).href}catch{}return i},t[U]=function(n){return W.indexOf(n)>=0?r(m+n):r(n)},b(t,"attributes",{get(){return[...a()].filter(i=>i.name!=="type").map(i=>({name:i.name.match(new RegExp(m))?i.name.replace(m,""):i.name,value:i.value}))}}),t[Ie]=!0,t};Object.defineProperty(Document[y],"createElement",{set(e){e!==ke&&(Le=e)},get(){return Le||ke}});var Oe=new Set,$e=new MutationObserver(e=>{e.forEach(({removedNodes:t,addedNodes:s,target:o})=>{t.forEach(r=>{r.nodeType===1&&$===r[T]&&"origtype"in r&&Oe.delete(r)}),s.forEach(r=>{if(r.nodeType===1)if($===r[T]){if("origtype"in r){if(r.origtype!==O)return}else if(r[u]("type")!==O)return;"origtype"in r||W.forEach(n=>{let i=r[q](n).bind(r),p=r[pe](n).bind(r);b(r,"orig"+n,{set(d){return p(d)},get(){return i()}})});let a=r[u](m+"src");if(Oe.has(r)&&F("Inserted twice",r),r.parentNode){Oe.add(r);let n=r[u](m+"type");(a||"").match(/\/gtm.js\?/)||r[U]("async")||r[Ie]?(j.push(r),_e(a)):r[U]("defer")||n==="module"?(ye.push(r),_e(a)):(a&&!r[U]("nomodule")&&!De[a]&&kt(a,n==="module",r[U]("crossorigin")&&r[u]("crossorigin"),r[u]("integrity")),ve.push(r))}else r[h](f,n=>n.target.parentNode[J](n.target)),r[h](fe,n=>n.target.parentNode[J](n.target)),o[G](r)}else r[T]==="LINK"&&r[u]("as")==="script"&&(De[r[u]("href")]=!0)})})}),wt={childList:!0,subtree:!0};$e.observe(c.documentElement,wt);var Pt=HTMLElement[y].attachShadow;HTMLElement[y].attachShadow=function(e){let t=Pt.call(this,e);return e.mode==="open"&&$e.observe(t,wt),t};(()=>{let e=R[be](HTMLIFrameElement[y],"src");b(HTMLIFrameElement[y],"src",{get(){return this.dataset.fpoSrc?this.dataset.fpoSrc:e.get.call(this)},set(t){delete this.dataset.fpoSrc,e.set.call(this,t)}})})();D.on(k,()=>{(!Le||Le===ke)&&(Document[y].createElement=_t,$e.disconnect()),dispatchEvent(new CustomEvent(me)),dispatchEvent(new CustomEvent(k))});var Pe=e=>{let t,s;!c.currentScript||!c.currentScript.parentNode?(t=c.body,s=t.lastChild):(s=c.currentScript,t=s.parentNode);try{let o=le("div");o.innerHTML=e,Array.from(o.childNodes).forEach(r=>{r.nodeName===$?t.insertBefore(xt(r),s):t.insertBefore(r,s)})}catch(o){F(o)}},ut=e=>Pe(e+`
    3 `);Me(c,{write:{get(){return Pe},set(e){return Pe=e}},writeln:{get(){return ut},set(e){return ut=e}}});var pt=(e,t,...s)=>{if(M+E==se&&e===E&&!t.toString().match(/jQueryMock/)){D.on(k,l[h].bind(l,e,t,...s));return}if(M+f==se&&e===f){D.on(k,l[h].bind(l,e,t,...s));return}if(t&&(e===f||e===E||e===S&&!ne)){let o=e===E?ce+e:M+e;g[o]=g[o]||[],g[o].push(t),ne&&oe([e]);return}return B(e,t,...s)},ft=(e,t,...s)=>{if(e===f){let o=e===E?ce+e:M+e;Fe(o,t)}return yt(e,t,...s)};Me(l,{[h]:{get(){return pt},set(){return pt}},[de]:{get(){return ft},set(){return ft}}});var ze=e=>{let t;return{get(){return t},set(s){return t&&Fe(e,s),g[e]=g[e]||[],g[e].push(s),t=s}}};B(Ke,e=>{let{target:t,event:s}=e.detail,o=t===l?c.body:t,r=o[u](m+"on"+s.type);o[K](m+"on"+s.type);try{let a=new Function("event",r);t===l?l[h](f,a.bind(t,s)):a.call(t,s)}catch(a){console.err(a)}});{let e=ze(M+f);b(l,"onload",e),ae(E,()=>{b(c.body,"onload",e)})}b(c,"onreadystatechange",ze(ce+w));b(l,"onmessage",ze(M+S));(()=>{let e=l.innerHeight,t=l.innerWidth,s=r=>{let n={"4g":1250,"3g":2500,"2g":2500}[(navigator.connection||{}).effectiveType]||0,i=r.getBoundingClientRect(),p={top:-1*e-n,left:-1*t-n,bottom:e+n,right:t+n};return!(i.left>=p.right||i.right<=p.left||i.top>=p.bottom||i.bottom<=p.top)},o=(r=!0)=>{let a=1,n=-1,i={},p=()=>{n++,--a||l[ie](D.emit.bind(D,Ae),_wpmeteor.rdelay)};Array.from(c.getElementsByTagName("*")).forEach(d=>{let L,z,Y;if(d[T]==="IMG"){let _=d.currentSrc||d.src;_&&!i[_]&&!_.match(/^data:/i)&&((d.loading||"").toLowerCase()!=="lazy"||s(d))&&(L=_)}else if(d[T]===$)_e(d[u](m+"src"));else if(d[T]==="LINK"&&d[u]("as")==="script"&&["pre"+f,"modulepre"+f].indexOf(d[u]("rel"))>=0)De[d[u]("href")]=!0;else if((z=l.getComputedStyle(d))&&(Y=(z.backgroundImage||"").match(/^url\s*\((.*?)\)/i))&&(Y||[]).length){let _=Y[0].slice(4,-1).replace(/"/g,"");!i[_]&&!_.match(/^data:/i)&&(L=_)}if(L){i[L]=!0;let _=new Image;r&&(a++,_[h](f,p),_[h](fe,p)),_.src=L}}),c.fonts.ready.then(()=>{p()})};_wpmeteor.rdelay===0?ae(E,o):B(f,o)})();})();
     1(()=>{var v="addEventListener",le="removeEventListener",p="getAttribute",L="setAttribute",de="removeAttribute",U="hasAttribute",Tt="querySelector",q=Tt+"All",G="appendChild",K="removeChild",ue="createElement",A="tagName",be="getOwnPropertyDescriptor",y="prototype",F="__lookupGetter__",pe="__lookupSetter__",m="DOMContentLoaded",f="load",fe="error";var d=window,c=document,Ae=c.documentElement;var W=console.error;var Ye=!0,J=class{constructor(){this.known=[]}init(){let t,n,s=(r,a)=>{if(Ye&&r&&r.fn&&!r.__wpmeteor){let o=function(i){return i===r?this:(c[v](m,l=>{i.call(c,r,l,"jQueryMock")}),this)};this.known.push([r,r.fn.ready,r.fn.init?.prototype?.ready]),r.fn.ready=o,r.fn.init?.prototype?.ready&&(r.fn.init.prototype.ready=o),r.__wpmeteor=!0}return r};window.jQuery||window.$,Object.defineProperty(window,"jQuery",{get(){return t},set(r){t=s(r,"jQuery")},configurable:!0}),Object.defineProperty(window,"$",{get(){return n},set(r){n=s(r,"$")},configurable:!0})}unmock(){this.known.forEach(([t,n,s])=>{t.fn.ready=n,t.fn.init?.prototype?.ready&&s&&(t.fn.init.prototype.ready=s)}),Ye=!1}};var Ee="fpo:first-interaction",me="fpo:replay-captured-events";var Ke="fpo:element-loaded",Te="fpo:images-loaded",k="fpo:the-end";var Q="click",P=window,Je=P.addEventListener.bind(P),Qe=P.removeEventListener.bind(P),Se="removeAttribute",ge="getAttribute",St="setAttribute",Ue=["touchstart","touchmove","touchend","touchcancel","keydown","wheel"],Xe=["mouseover","mouseout",Q],Ut=["touchstart","touchend","touchcancel","mouseover","mouseout",Q],N="data-wpmeteor-";var Ge="dispatchEvent",Ze=e=>{let t=new MouseEvent(Q,{view:e.view,bubbles:!0,cancelable:!0});return Object.defineProperty(t,"target",{writable:!1,value:e.target}),t},Ce=class{static capture(){let t=!1,[,n,s]=`${window.Promise}`.split(/[\s[(){]+/s);if(P["__"+s+n])return;let r=[],a=o=>{if(o.target&&Ge in o.target){if(!o.isTrusted)return;if(o.cancelable&&!Ue.includes(o.type))try{o.preventDefault()}catch{}o.stopImmediatePropagation(),o.type===Q?r.push(Ze(o)):Ut.includes(o.type)&&r.push(o),o.target[St](N+o.type,!0),t||(t=!0,P[Ge](new CustomEvent(Ee)))}};P.addEventListener(me,()=>{Xe.forEach(l=>Qe(l,a,{passive:!1,capture:!0})),Ue.forEach(l=>Qe(l,a,{passive:!0,capture:!0}));let o;for(;o=r.shift();){var i=o.target;i[ge](N+"touchstart")&&i[ge](N+"touchend")&&!i[ge](N+Q)?(i[ge](N+"touchmove")||r.push(Ze(o)),i[Se](N+"touchstart"),i[Se](N+"touchend")):i[Se](N+o.type),i[Ge](o)}}),Xe.forEach(o=>Je(o,a,{passive:!1,capture:!0})),Ue.forEach(o=>Je(o,a,{passive:!0,capture:!0}))}};var je=Ce;var X=class{constructor(){this.l=[]}emit(t,n=null){this.l[t]&&this.l[t].forEach(s=>s(n))}on(t,n){this.l[t]||=[],this.l[t].push(n)}off(t,n){this.l[t]=(this.l[t]||[]).filter(s=>s!==n)}};var D=new X;var he=c[ue]("span");he[L]("id","elementor-device-mode");he[L]("class","elementor-screen-only");var Gt=!1,et=()=>(Gt||c.body[G](he),getComputedStyle(he,":after").content.replace(/"/g,""));var tt=e=>e[p]("class")||"",rt=(e,t)=>e[L]("class",t),nt=()=>{d[v](f,function(){let e=et(),t=Math.max(Ae.clientWidth||0,d.innerWidth||0),n=Math.max(Ae.clientHeight||0,d.innerHeight||0),s=["_animation_"+e,"animation_"+e,"_animation","_animation","animation"];Array.from(c[q](".elementor-invisible")).forEach(r=>{let a=r.getBoundingClientRect();if(a.top+d.scrollY<=n&&a.left+d.scrollX<t)try{let i=JSON.parse(r[p]("data-settings"));if(i.trigger_source)return;let l=i._animation_delay||i.animation_delay||0,u,E;for(var o=0;o<s.length;o++)if(i[s[o]]){E=s[o],u=i[E];break}if(u){let H=tt(r),Y=u==="none"?H:H+" animated "+u,bt=setTimeout(()=>{rt(r,Y.replace(/\belementor-invisible\b/,"")),s.forEach(At=>delete i[At]),r[L]("data-settings",JSON.stringify(i))},l);D.on("fi",()=>{clearTimeout(bt),rt(r,tt(r).replace(new RegExp("\\b"+u+"\\b"),""))})}}catch(i){console.error(i)}})})};var st="data-in-mega_smartmenus",ot=()=>{let e=c[ue]("div");e.innerHTML='<span class="sub-arrow --wp-meteor"><i class="fa" aria-hidden="true"></i></span>';let t=e.firstChild,n=s=>{let r=[];for(;s=s.previousElementSibling;)r.push(s);return r};c[v](m,function(){Array.from(c[q](".pp-advanced-menu ul")).forEach(s=>{if(s[p](st))return;(s[p]("class")||"").match(/\bmega-menu\b/)&&s[q]("ul").forEach(o=>{o[L](st,!0)});let r=n(s),a=r.filter(o=>o).filter(o=>o[A]==="A").pop();if(a||(a=r.map(o=>Array.from(o[q]("a"))).filter(o=>o).flat().pop()),a){let o=t.cloneNode(!0);a[G](o),new MutationObserver(l=>{l.forEach(({addedNodes:u})=>{u.forEach(E=>{if(E.nodeType===1&&E[A]==="SPAN")try{a[K](o)}catch{}})})}).observe(a,{childList:!0})}})})};var w="readystatechange",S="message";var z="SCRIPT",g="data-wpmeteor-",b=Object.defineProperty,Me=Object.defineProperties,O="javascript/blocked",Re=/^\s*(application|text)\/javascript|module\s*$/i,Et="requestAnimationFrame",mt="requestIdleCallback",oe="setTimeout",Ie="__dynamic",M=d.constructor.name+"::",ie=c.constructor.name+"::",gt=function(e,t){t=t||d;for(var n=0;n<this.length;n++)e.call(t,this[n],n,this)};"NodeList"in d&&!NodeList[y].forEach&&(NodeList[y].forEach=gt);"HTMLCollection"in d&&!HTMLCollection[y].forEach&&(HTMLCollection[y].forEach=gt);_wpmeteor["elementor-animations"]&&nt(),_wpmeteor["elementor-pp"]&&ot();var ve=[],ye=[],Z=[],re=!1,V=[],h={},Ve=!1,Ct=0,I=c.visibilityState==="visible"?d[Et]:d[oe],ht=d[mt]||I;c[v]("visibilitychange",()=>{I=c.visibilityState==="visible"?d[Et]:d[oe],ht=d[mt]||I});var C=d[oe],Le,$=["src","type"],R=Object,j="definePropert";R[j+"y"]=(e,t,n)=>{if(e===d&&["jQuery","onload"].indexOf(t)>=0||(e===c||e===c.body)&&["readyState","write","writeln","on"+w].indexOf(t)>=0)return["on"+w,"on"+f].indexOf(t)&&n.set&&(h["on"+w]=h["on"+w]||[],h["on"+w].push(n.set)),e;if(e instanceof HTMLScriptElement&&$.indexOf(t)>=0){if(!e[t+"__def"]){let s=R[be](e,t);b(e,t,{set(r){return e[t+"__set"]?e[t+"__set"].call(e,r):s.set.call(e,r)},get(){return e[t+"__get"]?e[t+"__get"].call(e):s.get.call(e)}}),e[t+"__def"]=!0}return n.get&&(e[t+"__get"]=n.get),n.set&&(e[t+"__set"]=n.set),e}return b(e,t,n)};R[j+"ies"]=(e,t)=>{for(let n in t)R[j+"y"](e,n,t[n]);for(let n of R.getOwnPropertySymbols(t))R[j+"y"](e,n,t[n]);return e};var He=EventTarget[y][v],vt=EventTarget[y][le],ce=He.bind(c),Bt=vt.bind(c),B=He.bind(d),yt=vt.bind(d),_t=Document[y].createElement,ae=_t.bind(c),we=c.__proto__[F]("readyState").bind(c),it="loading";b(c,"readyState",{get(){return it},set(e){return it=e}});var ct=e=>V.filter(([t,,n],s)=>{if(!(e.indexOf(t.type)<0)){n||(n=t.target);try{let r=n.constructor.name+"::"+t.type;for(let a=0;a<h[r].length;a++)if(h[r][a]){let o=r+"::"+s+"::"+a;if(!xe[o])return!0}}catch{}}}).length,ne,xe={},se=e=>{V.forEach(([t,n,s],r)=>{if(!(e.indexOf(t.type)<0)){s||(s=t.target);try{let a=s.constructor.name+"::"+t.type;if((h[a]||[]).length)for(let o=0;o<h[a].length;o++){let i=h[a][o];if(i){let l=a+"::"+r+"::"+o;if(!xe[l]){xe[l]=!0,c.readyState=n,ne=a;try{Ct++,!i[y]||i[y].constructor===i?i.bind(s)(t):i(t)}catch(u){W(u,i)}ne=null}}}}catch(a){W(a)}}})};ce(m,e=>{V.push([new e.constructor(m,e),we(),c])});ce(w,e=>{V.push([new e.constructor(w,e),we(),c])});B(m,e=>{V.push([new e.constructor(m,e),we(),d])});B(f,e=>{Ve=!0,V.push([new e.constructor(f,e),we(),d]),x||se([m,w,S,f])});var Lt=e=>{V.push([e,c.readyState,d])},Nt=d[F]("onmessage"),Ot=d[pe]("onmessage"),Rt=()=>{yt(S,Lt),(h[M+"message"]||[]).forEach(e=>{B(S,e)}),b(d,"onmessage",{get:Nt,set:Ot})};B(S,Lt);var Dt=new J;Dt.init();var qe=()=>{!x&&!re&&(x=!0,c.readyState="loading",I(We),I(T)),Ve||B(f,()=>{qe()})};B(Ee,()=>{qe()});D.on(Te,()=>{qe()});_wpmeteor.rdelay>=0&&je.capture();var ee=[-1],Be=e=>{ee=ee.filter(t=>t!==e.target),ee.length||C(D.emit.bind(D,k))};var x=!1,T=()=>{let e=ve.shift();if(e)e[p](g+"src")?e[U]("async")||e[Ie]?(e.isConnected&&(ee.push(e),setTimeout(Be,1e3,{target:e})),Ne(e,Be),C(T)):Ne(e,C.bind(null,T)):(e.origtype==O&&Ne(e),C(T));else if(ye.length)ve.push(...ye),ye.length=0,C(T);else if(ct([m,w,S]))se([m,w,S]),C(T);else if(Ve)if(ct([f,S]))se([f,S]),C(T);else if(ee.length>1)ht(T);else if(Z.length)ve.push(...Z),Z.length=0,C(T);else{if(d.RocketLazyLoadScripts)try{RocketLazyLoadScripts.run()}catch(t){W(t)}c.readyState="complete",Rt(),Dt.unmock(),x=!1,re=!0,d[oe](()=>Be({target:-1}))}else x=!1},xt=e=>{let t=ae(z),n=e.attributes;for(var s=n.length-1;s>=0;s--)n[s].name.startsWith(g)||t[L](n[s].name,n[s].value);let r=e[p](g+"type");r?t.type=r:t.type="text/javascript",(e.textContent||"").match(/^\s*class RocketLazyLoadScripts/)?t.textContent=e.textContent.replace(/^\s*class\s*RocketLazyLoadScripts/,"window.RocketLazyLoadScripts=class").replace("RocketLazyLoadScripts.run();",""):t.textContent=e.textContent;for(let a of["onload","onerror","onreadystatechange"])e[a]&&(t[a]=e[a]);return t},Ne=(e,t)=>{let n=e[p](g+"src");if(n){let s=He.bind(e);e.isConnected&&t&&(s(f,t),s(fe,t)),e.origtype=e[p](g+"type")||"text/javascript",e.origsrc=n,(!e.isConnected||e[U]("nomodule")||e.type&&!Re.test(e.type))&&t&&t(new Event(f,{target:e}))}else e.origtype===O?(e.origtype=e[p](g+"type")||"text/javascript",e[de]("integrity"),e.textContent=e.textContent+`
     2`):t&&t(new Event(f,{target:e}))},Fe=(e,t)=>{let n=(h[e]||[]).indexOf(t);if(n>=0)return h[e][n]=void 0,!0},at=(e,t,...n)=>{if("HTMLDocument::"+m==ne&&e===m&&!t.toString().match(/jQueryMock/)){D.on(k,c[v].bind(c,e,t,...n));return}if(t&&(e===m||e===w)){let s=ie+e;h[s]=h[s]||[],h[s].push(t),re&&se([e]);return}return ce(e,t,...n)},lt=(e,t,...n)=>{if(e===m){let s=ie+e;Fe(s,t)}return Bt(e,t,...n)};Me(c,{[v]:{get(){return at},set(){return at}},[le]:{get(){return lt},set(){return lt}}});var te=c.createDocumentFragment(),We=()=>{te.hasChildNodes()&&(c.head[G](te),te=c.createDocumentFragment())},dt={},_e=e=>{if(e)try{let t=new URL(e,c.location.href),n=t.origin;if(n&&!dt[n]&&c.location.host!==t.host){let s=ae("link");s.rel="preconnect",s.href=n,te[G](s),dt[n]=!0,x&&I(We)}}catch{}},De={},kt=(e,t,n,s)=>{let r=ae("link");r.rel=t?"modulepre"+f:"pre"+f,r.as="script",n&&r[L]("crossorigin",n),s&&r[L]("integrity",s);try{e=new URL(e,c.location.href).href}catch{}r.href=e,te[G](r),De[e]=!0,x&&I(We)},ke=function(...e){let t=ae(...e);if(!e||e[0].toUpperCase()!==z||!x)return t;let n=t[L].bind(t),s=t[p].bind(t),r=t[de].bind(t),a=t[U].bind(t),o=t[F]("attributes").bind(t);return $.forEach(i=>{let l=t[F](i).bind(t),u=t[pe](i).bind(t);R[j+"y"](t,i,{set(E){return i==="type"&&E&&!Re.test(E)?n(i,E):((i==="src"&&E||i==="type"&&E&&t.origsrc)&&n("type",O),E?n(g+i,E):r(g+i))},get(){let E=t[p](g+i);if(i==="src")try{return new URL(E,c.location.href).href}catch{}return E}}),b(t,"orig"+i,{set(E){return u(E)},get(){return l()}})}),t[L]=function(i,l){if($.includes(i))return i==="type"&&l&&!Re.test(l)?n(i,l):((i==="src"&&l||i==="type"&&l&&t.origsrc)&&n("type",O),l?n(g+i,l):r(g+i));n(i,l)},t[p]=function(i){let l=$.indexOf(i)>=0?s(g+i):s(i);if(i==="src")try{return new URL(l,c.location.href).href}catch{}return l},t[U]=function(i){return $.indexOf(i)>=0?a(g+i):a(i)},b(t,"attributes",{get(){return[...o()].filter(l=>l.name!=="type").map(l=>({name:l.name.match(new RegExp(g))?l.name.replace(g,""):l.name,value:l.value}))}}),t[Ie]=!0,t};Object.defineProperty(Document[y],"createElement",{set(e){e!==ke&&(Le=e)},get(){return Le||ke}});var Oe=new Set,$e=new MutationObserver(e=>{e.forEach(({removedNodes:t,addedNodes:n,target:s})=>{t.forEach(r=>{r.nodeType===1&&z===r[A]&&"origtype"in r&&Oe.delete(r)}),n.forEach(r=>{if(r.nodeType===1)if(z===r[A]){if("origtype"in r){if(r.origtype!==O)return}else if(r[p]("type")!==O)return;"origtype"in r||$.forEach(o=>{let i=r[F](o).bind(r),l=r[pe](o).bind(r);b(r,"orig"+o,{set(u){return l(u)},get(){return i()}})});let a=r[p](g+"src");if(Oe.has(r)&&W("Inserted twice",r),r.parentNode){Oe.add(r);let o=r[p](g+"type");(a||"").match(/\/gtm.js\?/)||r[U]("async")||r[Ie]?(Z.push(r),_e(a)):r[U]("defer")||o==="module"?(ye.push(r),_e(a)):(a&&!r[U]("nomodule")&&!De[a]&&kt(a,o==="module",r[U]("crossorigin")&&r[p]("crossorigin"),r[p]("integrity")),ve.push(r))}else r[v](f,o=>o.target.parentNode[K](o.target)),r[v](fe,o=>o.target.parentNode[K](o.target)),s[G](r)}else r[A]==="LINK"&&r[p]("as")==="script"&&(De[r[p]("href")]=!0)})})}),wt={childList:!0,subtree:!0};$e.observe(c.documentElement,wt);var Pt=HTMLElement[y].attachShadow;HTMLElement[y].attachShadow=function(e){let t=Pt.call(this,e);return e.mode==="open"&&$e.observe(t,wt),t};(()=>{let e=R[be](HTMLIFrameElement[y],"src");b(HTMLIFrameElement[y],"src",{get(){return this.dataset.fpoSrc?this.dataset.fpoSrc:e.get.call(this)},set(t){delete this.dataset.fpoSrc,e.set.call(this,t)}})})();D.on(k,()=>{(!Le||Le===ke)&&(Document[y].createElement=_t,$e.disconnect()),dispatchEvent(new CustomEvent(me)),dispatchEvent(new CustomEvent(k))});var Pe=e=>{let t,n;!c.currentScript||!c.currentScript.parentNode?(t=c.body,n=t.lastChild):(n=c.currentScript,t=n.parentNode);try{let s=ae("div");s.innerHTML=e,Array.from(s.childNodes).forEach(r=>{r.nodeName===z?t.insertBefore(xt(r),n):t.insertBefore(r,n)})}catch(s){W(s)}},ut=e=>Pe(e+`
     3`);Me(c,{write:{get(){return Pe},set(e){return Pe=e}},writeln:{get(){return ut},set(e){return ut=e}}});var pt=(e,t,...n)=>{if(M+m==ne&&e===m&&!t.toString().match(/jQueryMock/)){D.on(k,d[v].bind(d,e,t,...n));return}if(M+f==ne&&e===f){D.on(k,d[v].bind(d,e,t,...n));return}if(t&&(e===f||e===m||e===S&&!re)){let s=e===m?ie+e:M+e;h[s]=h[s]||[],h[s].push(t),re&&se([e]);return}return B(e,t,...n)},ft=(e,t,...n)=>{if(e===f){let s=e===m?ie+e:M+e;Fe(s,t)}return yt(e,t,...n)};Me(d,{[v]:{get(){return pt},set(){return pt}},[le]:{get(){return ft},set(){return ft}}});var ze=e=>{let t;return{get(){return t},set(n){return t&&Fe(e,n),h[e]=h[e]||[],h[e].push(n),t=n}}};B(Ke,e=>{let{target:t,event:n}=e.detail,s=t===d?c.body:t,r=s[p](g+"on"+n.type);s[de](g+"on"+n.type);try{let a=new Function("event",r);t===d?d[v](f,a.bind(t,n)):a.call(t,n)}catch(a){console.err(a)}});{let e=ze(M+f);b(d,"onload",e),ce(m,()=>{b(c.body,"onload",e)})}b(c,"onreadystatechange",ze(ie+w));b(d,"onmessage",ze(M+S));(()=>{let e=d.innerHeight,t=d.innerWidth,n=r=>{let o={"4g":1250,"3g":2500,"2g":2500}[(navigator.connection||{}).effectiveType]||0,i=r.getBoundingClientRect(),l={top:-1*e-o,left:-1*t-o,bottom:e+o,right:t+o};return!(i.left>=l.right||i.right<=l.left||i.top>=l.bottom||i.bottom<=l.top)},s=(r=!0)=>{let a=1,o=-1,i={},l=()=>{o++,--a||d[oe](D.emit.bind(D,Te),_wpmeteor.rdelay)};Array.from(c.getElementsByTagName("*")).forEach(u=>{let E,H,Y;if(u[A]==="IMG"){let _=u.currentSrc||u.src;_&&!i[_]&&!_.match(/^data:/i)&&((u.loading||"").toLowerCase()!=="lazy"||n(u))&&(E=_)}else if(u[A]===z)_e(u[p](g+"src"));else if(u[A]==="LINK"&&u[p]("as")==="script"&&["pre"+f,"modulepre"+f].indexOf(u[p]("rel"))>=0)De[u[p]("href")]=!0;else if((H=d.getComputedStyle(u))&&(Y=(H.backgroundImage||"").match(/^url\s*\((.*?)\)/i))&&(Y||[]).length){let _=Y[0].slice(4,-1).replace(/"/g,"");!i[_]&&!_.match(/^data:/i)&&(E=_)}if(E){i[E]=!0;let _=new Image;r&&(a++,_[v](f,l),_[v](fe,l)),_.src=E}}),c.fonts.ready.then(()=>{l()})};_wpmeteor.rdelay===0?ce(m,s):B(f,s)})();})();
    44//1.0.42
    55//# sourceMappingURL=public.js.map
  • wp-meteor/trunk/assets/js/public/public.js.map

    r3264090 r3264604  
    22  "version": 3,
    33  "sources": ["../../../../fpo-javascript-rewrite/src/wp-meteor/includes/literals.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/globals.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/mocks/jquery.js", "../../../../fpo-inpage-events/src/index.mjs", "../../../../fpo-inpage-first-interaction/src/browser/index.mjs", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/event-emitter.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/dispatcher.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/device-mode.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/animations.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/pp-menu.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/public.js"],
    4   "sourcesContent": ["export const\n    addEventListener = \"addEventListener\",\n    removeEventListener = \"removeEventListener\",\n    getAttribute = \"getAttribute\",\n    setAttribute = \"setAttribute\",\n    removeAttribute = \"removeAttribute\",\n    hasAttribute = \"hasAttribute\",\n    querySelector = \"querySelector\",\n    querySelectorAll = querySelector + \"All\",\n    appendChild = \"appendChild\",\n    removeChild = \"removeChild\",\n    createElement = \"createElement\",\n    tagName = \"tagName\",\n    getOwnPropertyDescriptor = \"getOwnPropertyDescriptor\",\n    prototype = \"prototype\",\n    __lookupGetter__ = \"__lookupGetter__\",\n    __lookupSetter__ = \"__lookupSetter__\",\n    DCL = \"DOMContentLoaded\",\n    L = \"load\",\n    E = \"error\";\n", "const\n    w = window,\n    d = document,\n    de = d.documentElement,\n    c = process.env.DEBUG ? console.log : () => { },\n    ce = console.error;\n\nexport {\n    w,\n    d,\n    de,\n    c,\n    ce,\n};", "import delta from \"../utils/delta\";\nimport {\n    addEventListener,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n    c,\n    ce,\n} from \"../globals\";\n\n/**\n * class name should not match mocked object\n */\nlet mocked = true;\nexport default class jQueryMock {\n    constructor() {\n        this.known = [];\n    }\n    init() {\n\n        let Mock;\n        let Mock$;\n\n        // the goal here is to capture a real jQuery object and override its load and ready methods\n        // to delay firing ready() until WP-Meteor finishes loading JS\n        const override = (jQuery, symbol) => {\n\n            if (mocked && jQuery && jQuery.fn && !jQuery.__wpmeteor) {\n                process.env.DEBUG && c(delta(), \"new \" + symbol + \" detected\", jQuery.__wpmeteor, jQuery);\n\n                // can't use () => {} as it binds to different this\n                const enqueue = function (func) {\n                    process.env.DEBUG && c(delta(), \"enqueued jQuery(func)\", func);\n                    // there is a loop when you call $(\"selector\", $), as it calls $.ready\n                    // which in turn calls readyList.then( fn ) and returns this\n                    // without this code, page-infinite-loop.html hangs\n                    if (func === jQuery) {\n                        return this;\n                    }\n                    d[addEventListener](DCL, e => {\n                        process.env.DEBUG && c(delta(), \"running enqueued jQuery function\", func);\n                        func.call(d, jQuery, e, \"jQueryMock\");\n                    });\n                    return this;\n                };\n\n                this.known.push([jQuery, jQuery.fn.ready, jQuery.fn.init?.prototype?.ready]);\n                jQuery.fn.ready = enqueue;\n                if (jQuery.fn.init?.prototype?.ready) {\n                    jQuery.fn.init.prototype.ready = enqueue;\n                }\n                jQuery.__wpmeteor = true;\n            }\n            return jQuery;\n        };\n\n        if (window.jQuery || window.$) {\n            // not throwing error, as it might come from a chrome extension\n            // but also not mocking it, just giving a warning\n            process.env.DEBUG && ce(delta(), \"WARNING: JQUERY WAS INSTALLED BEFORE WP-METEOR, PROBABLY FROM A CHROME EXTENSION\");\n        }\n\n        Object.defineProperty(window, \"jQuery\", {\n            get() {\n                return Mock;\n            },\n            set(jQuery) {\n                Mock = override(jQuery, \"jQuery\");\n            },\n            configurable: true,\n        });\n\n        Object.defineProperty(window, \"$\", {\n            get() {\n                return Mock$;\n            },\n            set($) {\n                Mock$ = override($, \"$\");\n            },\n            configurable: true,\n        });\n    }\n    unmock() {\n        this.known.forEach(([jQuery, oldReady, oldPrototypeReady]) => {\n            process.env.DEBUG && c(delta(), \"unmocking jQuery\", jQuery);\n            jQuery.fn.ready = oldReady;\n            if (jQuery.fn.init?.prototype?.ready && oldPrototypeReady) {\n                jQuery.fn.init.prototype.ready = oldPrototypeReady;\n            }\n        });\n        mocked = false;\n    }\n}\n", "const EVENT_FIRST_INTERACTION = \"fpo:first-interaction\";\nconst EVENT_REPLAY_CAPTURED_EVENTS = \"fpo:replay-captured-events\";\nconst EVENT_LCP_ELEMENT = \"fpo:lcp-element\";\nconst EVENT_LCP_ELEMENT_CANDIDATE = \"fpo:lcp-element-candidate\";\nconst EVENT_LCP_LOADED = \"fpo:lcp-loaded\";\nconst EVENT_LAZY_ELEMENT = \"fpo:lazy-element\";\nconst EVENT_STYLES_TAG_AVAILABLE = \"fpo:styles-tag-available\";\nconst EVENT_CSS_LOADED = \"fpo:css-loaded\";\nconst EVENT_ELEMENT_LOADED = \"fpo:element-loaded\";\nconst EVENT_IMAGES_LOADED = \"fpo:images-loaded\";\nconst EVENT_THE_END = \"fpo:the-end\";\nconst EVENT_SCROLL_TO_REVEAL_ANIMATIONS = \"fpo:scroll-to-reveal-animations\";\n\nexport {\n    EVENT_LCP_ELEMENT,\n    EVENT_LCP_ELEMENT_CANDIDATE,\n    EVENT_LCP_LOADED,\n    EVENT_LAZY_ELEMENT,\n    EVENT_STYLES_TAG_AVAILABLE,\n    EVENT_FIRST_INTERACTION, \n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n    EVENT_SCROLL_TO_REVEAL_ANIMATIONS,\n};\n", "import delta from \"./utils/delta.mjs\";\nimport c from \"./utils/console.mjs\";\nimport { EVENT_FIRST_INTERACTION, EVENT_REPLAY_CAPTURED_EVENTS } from \"@aguidrevitch/fpo-inpage-events\";\n\nconst EVENT_CLICK = \"click\";\n\nconst w = window;\nconst wOrigAddEventListener = w.addEventListener.bind(w);\nconst wOrigRemoveEventListener = w.removeEventListener.bind(w);\nconst ra = \"removeAttribute\";\nconst ga = \"getAttribute\";\nconst sa = \"setAttribute\";\nconst passiveEvents = [\"touchstart\", \"touchmove\", \"touchend\", \"touchcancel\", \"keydown\", \"wheel\"]; //, \"scroll\"];\nconst activeEvents = [\"mouseover\", \"mouseout\", EVENT_CLICK];\nconst captureEvents = [\"touchstart\", \"touchend\", \"touchcancel\", \"mouseover\", \"mouseout\", EVENT_CLICK];\nconst prefix = \"data-wpmeteor-\";\nconst separator = \"----\";\nconst dispatchEvent = \"dispatchEvent\";\n\nconst synteticCick = e => {\n    process.env.DEBUG && c(delta(), \"creating syntetic click event for\", e);\n    const event = new MouseEvent(EVENT_CLICK, {\n        view: e.view,\n        bubbles: true,\n        cancelable: true\n    });\n    Object.defineProperty(event, \"target\", { writable: false, value: e.target });\n    return event;\n};\n\nclass InteractionEvents {\n    static capture() {\n        let firstInteractionFired = false;\n\n        // lighthouse sets __nativePromise and __nativeURL\n        // to the original Promise and URL\n        const [, p, n] = `${window.Promise}`.split(/[\\s[(){]+/s);\n        if (w[\"__\" + n + p]) {\n            return;\n        }\n\n        const capturedEvents = [];\n        const captureEvent = e => {\n            if (e.target && (dispatchEvent in e.target)) {\n                if (!e.isTrusted) {\n                    // this is a flag that this event is probably replaying\n                    process.env.DEBUG && c(delta(), \"the event is not trusted, configuration issues, not recording\", e.type, e.target);\n                    process.env.DEBUG && c(delta(), \"please double check if first interaction listener was installed before wp-meteor\");\n                    return;\n                }\n                if (e.cancelable && !passiveEvents.includes(e.type)) {\n                    try {\n                        e.preventDefault();\n                    } catch { }\n                }\n                e.stopImmediatePropagation();\n\n                if (e.type === EVENT_CLICK) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(synteticCick(e));\n                } else if (captureEvents.includes(e.type)) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(e);\n                }\n                // scroll event target doesn't have setAttribute\n                // if (e.target[sa]) {\n                //     e.target[sa](prefix + e.type, true);\n                // }\n                e.target[sa](prefix + e.type, true);\n                if (!firstInteractionFired) {\n                    firstInteractionFired = true;\n                    w[dispatchEvent](new CustomEvent(EVENT_FIRST_INTERACTION));\n                }\n            }\n        };\n\n        w.addEventListener(EVENT_REPLAY_CAPTURED_EVENTS, () => {\n            process.env.DEBUG && c(delta(), separator, \"got \" + EVENT_REPLAY_CAPTURED_EVENTS);\n            process.env.DEBUG && c(delta(), separator, \"removing event listeners\");\n            activeEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: false, capture: true }));\n            passiveEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: true, capture: true }));\n\n            let e;\n            while (e = capturedEvents.shift()) { // eslint-disable-line no-cond-assign\n                var target = e.target;\n                if (target[ga](prefix + \"touchstart\") && target[ga](prefix + \"touchend\") && !target[ga](prefix + EVENT_CLICK)) {\n                    if (target[ga](prefix + \"touchmove\")) {\n                        process.env.DEBUG && c(delta(), `touchmove happened, so not dispatching ${EVENT_CLICK} to `, e.target);\n                    } else {\n                        // why would I want to remove prefix + \"touchmove\", if previous if checks it is present?\n                        // target[ra](prefix + \"touchmove\");\n                        capturedEvents.push(synteticCick(e));\n                    }\n                    target[ra](prefix + \"touchstart\");\n                    target[ra](prefix + \"touchend\");\n                } else {\n                    target[ra](prefix + e.type);\n                }\n                process.env.DEBUG && c(delta(), \" dispatching \" + e.type + \" to \", e.target);\n                target[dispatchEvent](e);\n            }\n        });\n\n        process.env.DEBUG && c(delta(), separator, \"installing first interaction event listeners\");\n        activeEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: false, capture: true }));\n        passiveEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: true, capture: true }));\n    }\n}\n\nexport {\n    InteractionEvents,\n};\n\nexport default InteractionEvents;", "export default class EventEmitter {\n    constructor() {\n        this.l = [];\n    }\n    emit(name, data = null) {\n        this.l[name] && this.l[name].forEach(l => l(data));\n    }\n    on(name, callback) {\n        this.l[name] ||= [];\n        this.l[name].push(callback);\n    }\n    off(name, callback) {\n        this.l[name] = (this.l[name] || []).filter(c => c !== callback);\n    }\n    /*\n    once(name, callback) {\n        const closure = () => {\n            this.off(closure);\n            callback();\n        }\n        this.l[name] ||= [];\n        this.l[name].push(closure);\n    }\n    */\n}\n", "import EventEmitter from \"./event-emitter\";\nexport default new EventEmitter();\n", "import {\n    setAttribute,\n    appendChild,\n    createElement,\n} from \"../literals\";\n\nimport {\n    d,\n} from \"../globals\";\n\nconst $deviceMode = d[createElement](\"span\");\n$deviceMode[setAttribute](\"id\", \"elementor-device-mode\");\n$deviceMode[setAttribute](\"class\", \"elementor-screen-only\");\n\nlet attached = false;\n\nexport default () => {\n    if (!attached) {\n        d.body[appendChild]($deviceMode);\n    }\n    return getComputedStyle($deviceMode, \":after\").content.replace(/\"/g, \"\");\n};\n", "import delta from \"../utils/delta\";\nimport dispatcher from \"../utils/dispatcher\";\nimport getCurrentDeviceMode from \"./device-mode\";\nimport {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    L,\n} from \"../literals\";\nimport {\n    w,\n    d,\n    de,\n    c,\n} from \"../globals\";\n\nconst getClass = (el) => {\n    return el[getAttribute](\"class\") || \"\";\n};\n\nconst setClass = (el, value) => {\n    return el[setAttribute](\"class\", value);\n};\n\nexport default () => {\n    w[addEventListener](L, function () {\n        const mode = getCurrentDeviceMode();\n        const vw = Math.max(de.clientWidth || 0, w.innerWidth || 0);\n        const vh = Math.max(de.clientHeight || 0, w.innerHeight || 0);\n\n        const keys = [\"_animation_\" + mode, \"animation_\" + mode, \"_animation\", \"_animation\", \"animation\"];\n        Array.from(d[querySelectorAll](\".elementor-invisible\")).forEach(el => {\n\n            // we  only want to optimize elements in the top of the page\n            const viewportOffset = el.getBoundingClientRect();\n            if (viewportOffset.top + w.scrollY <= vh && viewportOffset.left + w.scrollX < vw) {\n                try {\n                    const settings = JSON.parse(el[getAttribute](\"data-settings\"));\n                    if (settings.trigger_source) {\n                        return;\n                    }\n                    const animationDelay = settings._animation_delay || settings.animation_delay || 0;\n                    let animation, key;\n\n                    for (var i = 0; i < keys.length; i++) {\n                        if (settings[keys[i]]) {\n                            key = keys[i];\n                            animation = settings[key];\n                            break;\n                        }\n                    }\n\n                    if (animation) {\n                        process.env.DEBUG && c(delta(), \"animating with\" + animation, el);\n                        const oldClass = getClass(el);\n                        const newClass = animation === \"none\"\n                            ? oldClass\n                            : oldClass + \" animated \" + animation;\n\n                        const animate = () => {\n                            setClass(el, newClass.replace(/\\belementor-invisible\\b/, \"\"));\n                            keys.forEach(key => delete settings[key]);\n                            el[setAttribute](\"data-settings\", JSON.stringify(settings));\n                        };\n\n                        let timeout = setTimeout(animate, animationDelay);\n\n                        dispatcher.on(\"fi\", () => {\n                            clearTimeout(timeout);\n                            setClass(el, getClass(el).replace(new RegExp(\"\\\\b\" + animation + \"\\\\b\"), \"\"));\n                        });\n\n                    }\n                } catch (e) {\n                    console.error(e);\n                }\n            }\n        });\n    });\n};", "import {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    appendChild,\n    removeChild,\n    createElement,\n    tagName,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n} from \"../globals\";\n\nconst inmega = \"data-in-mega_smartmenus\";\n\nexport default () => {\n\n    const div = d[createElement](\"div\");\n    div.innerHTML = \"<span class=\\\"sub-arrow --wp-meteor\\\"><i class=\\\"fa\\\" aria-hidden=\\\"true\\\"></i></span>\";\n    const placeholder = div.firstChild;\n\n    const prevAll = el => {\n        const result = [];\n        while (el = el.previousElementSibling) // eslint-disable-line no-cond-assign\n            result.push(el);\n        return result;\n    };\n\n    d[addEventListener](DCL, function () {\n        Array.from(d[querySelectorAll](\".pp-advanced-menu ul\")).forEach(ul => {\n            /* skipping mega menues */\n            if (ul[getAttribute](inmega)) {\n                return;\n            } else if ((ul[getAttribute](\"class\") || \"\").match(/\\bmega-menu\\b/)) {\n                ul[querySelectorAll](\"ul\").forEach(ul => {\n                    ul[setAttribute](inmega, true);\n                });\n            }\n            let prev = prevAll(ul);\n            let a = prev.filter(el => el).filter(el => el[tagName] === \"A\").pop();\n            if (!a) {\n                a = prev.map(el => Array.from(el[querySelectorAll](\"a\"))).filter(el => el).flat().pop();\n            }\n            if (a) {\n                const span = placeholder.cloneNode(true);\n                a[appendChild](span);\n\n                const observer = new MutationObserver(mutations => {\n                    mutations.forEach(({ addedNodes }) => {\n                        addedNodes.forEach(node => {\n                            // For each added script tag\n                            if (node.nodeType === 1 && \"SPAN\" === node[tagName]) {\n                                try {\n                                    a[removeChild](span);\n                                } catch {\n                                    // do nothing\n                                }\n                            }\n                        });\n                    });\n                });\n                observer.observe(a, { childList: true });\n            }\n        });\n    });\n};", "/* global _wpmeteor, RocketLazyLoadScripts */\n\nimport jQueryMock from \"./includes/mocks/jquery\";\nimport InteractionEvents from \"@aguidrevitch/fpo-inpage-first-interaction\";\nimport dispatcher from \"./includes/utils/dispatcher\";\nimport delta from \"./includes/utils/delta\";\nimport elementorAnimations from \"./includes/elementor/animations\";\nimport elementorPP from \"./includes/elementor/pp-menu\";\nimport {\n    addEventListener,\n    removeEventListener,\n    getAttribute,\n    setAttribute,\n    removeAttribute,\n    hasAttribute,\n    // querySelectorAll,\n    appendChild,\n    removeChild,\n    tagName,\n    getOwnPropertyDescriptor,\n    prototype,\n    __lookupGetter__,\n    __lookupSetter__,\n    DCL,\n    L,\n    E,\n} from \"./includes/literals\";\nimport {\n    w,\n    d,\n    c,\n    ce,\n} from \"./includes/globals\";\n\nimport {\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_FIRST_INTERACTION,\n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n} from \"@aguidrevitch/fpo-inpage-events\";\n\nconst RSC = \"readystatechange\",\n    M = \"message\",\n    separator = \"----\",\n    S = \"SCRIPT\",\n    prefix = \"data-wpmeteor-\",\n    Object_defineProperty = Object.defineProperty, // eslint-disable-line camelcase\n    Object_defineProperties = Object.defineProperties, // eslint-disable-line camelcase\n    javascriptBlocked = \"javascript/blocked\",\n    isJavascriptRegexp = /^\\s*(application|text)\\/javascript|module\\s*$/i,\n    _rAF = \"requestAnimationFrame\",\n    _rIC = \"requestIdleCallback\",\n    _setTimeout = \"setTimeout\",\n    __dynamic = \"__dynamic\";\n\nconst windowEventPrefix = w.constructor.name + \"::\";\nconst documentEventPrefix = d.constructor.name + \"::\";\n\nconst forEach = function (callback, thisArg) {\n    thisArg = thisArg || w;\n    for (var i = 0; i < this.length; i++) {\n        callback.call(thisArg, this[i], i, this);\n    }\n};\n\nif (\"NodeList\" in w && !NodeList[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling NodeList.forEach\");\n    NodeList[prototype].forEach = forEach;\n}\nif (\"HTMLCollection\" in w && !HTMLCollection[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling HTMLCollection.forEach\");\n    HTMLCollection[prototype].forEach = forEach;\n}\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor[\"elementor-animations\"]) {\n        elementorAnimations();\n    }\n\n    if (_wpmeteor[\"elementor-pp\"]) {\n        elementorPP();\n    }\n})();\n\nconst reorder = [];\nconst defer = [];\nconst async = [];\n\nlet DONE = false;\nconst eventQueue = [];\nlet listeners = {};\nlet WindowLoaded = false;\nlet firedEventsCount = 0;\n\nlet rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\nlet rIC = w[_rIC] || rAF;\nd[addEventListener](\"visibilitychange\", () => {\n    rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\n    rIC = w[_rIC] || rAF;\n});\n\nconst nextTick = w[_setTimeout];\n\nlet createElementOverride;\nconst capturedAttributes = [\"src\", \"type\"];\n\n/* Hack around 'avoid serving legacy javascript to modern browsers' */\nconst O = Object,\n    definePropert = \"definePropert\";\n\nO[definePropert + \"y\"] = (object, property, options) => {\n    if (object === w && ([\"jQuery\", \"onload\"].indexOf(property) >= 0)\n        || (object === d || object === d.body) && [\"readyState\", \"write\", \"writeln\", \"on\" + RSC].indexOf(property) >= 0) {\n        if ([\"on\" + RSC, \"on\" + L].indexOf(property) && options.set) {\n            listeners[\"on\" + RSC] = listeners[\"on\" + RSC] || [];\n            listeners[\"on\" + RSC].push(options.set);\n            // objectRedefinitions['onreadystatechange'] = options;\n        } else {\n            process.env.DEBUG && ce(\"Denied \" + (object.constructor || {}).name + \" \" + property + \" redefinition\");\n        }\n        return object;\n    } else if ((object instanceof HTMLScriptElement) && capturedAttributes.indexOf(property) >= 0) {\n\n        if (!object[property + \"__def\"]) {\n            const descriptor = O[getOwnPropertyDescriptor](object, property);\n            Object_defineProperty(object, property, {\n                set(value) {\n                    if (object[property + \"__set\"]) {\n                        return object[property + \"__set\"].call(object, value);\n                    }\n                    return descriptor.set.call(object, value);\n                },\n                get() {\n                    if (object[property + \"__get\"]) {\n                        return object[property + \"__get\"].call(object);\n                    }\n                    return descriptor.get.call(object);\n                }\n            });\n            object[property + \"__def\"] = true;\n        }\n\n        if (options.get) {\n            object[property + \"__get\"] = options.get;\n        }\n\n        if (options.set) {\n            object[property + \"__set\"] = options.set;\n        }\n\n        return object;\n    }\n    // console.log(\"object\", object, \"property\", property, \"options\", options, new Error().stack);\n    return Object_defineProperty(object, property, options);\n};\n\nO[definePropert + \"ies\"] = (object, properties) => {\n    // console.log(\"object\", object, \"properties\", properties);\n    for (let i in properties) {\n        O[definePropert + \"y\"](object, i, properties[i]);\n    }\n    // symbols are not enumerable,\n    // so we have to use Object.getOwnPropertySymbols\n    // for compatibility with https://modelviewer.dev/\n    for (let sym of O.getOwnPropertySymbols(properties)) {\n        O[definePropert + \"y\"](object, sym, properties[sym]);\n    }\n    return object;\n};\n\nif (process.env.DEBUG) {\n    d[addEventListener](RSC, () => {\n        c(delta(), separator, RSC, d.readyState);\n    });\n\n    d[addEventListener](DCL, () => {\n        c(delta(), separator, DCL);\n    });\n\n    dispatcher.on(EVENT_THE_END, () => {\n        c(delta(), separator, EVENT_THE_END);\n        c(delta(), separator, firedEventsCount + \" queued events fired\");\n    });\n\n    w[addEventListener](L, () => {\n        c(delta(), separator, L);\n    });\n}\n\n// saving original methods\nconst origAddEventListener = EventTarget[prototype][addEventListener];\nconst origRemoveEventListener = EventTarget[prototype][removeEventListener];\nconst dOrigAddEventListener = origAddEventListener.bind(d);\nconst dOrigRemoveEventListener = origRemoveEventListener.bind(d);\nconst wOrigAddEventListener = origAddEventListener.bind(w);\nconst wOrigRemoveEventListener = origRemoveEventListener.bind(w);\nconst origCreateElement = Document[prototype].createElement;\nconst dOrigCreateElement = origCreateElement.bind(d);\nconst origReadyStateGetter = d.__proto__[__lookupGetter__](\"readyState\").bind(d);  \n\nlet readyState = \"loading\";\nObject_defineProperty(d, \"readyState\", {\n    get() { return readyState; },\n    set(value) { return readyState = value; },\n});\n\nconst hasUnfiredListeners = (eventNames) => {\n    return eventQueue.filter(([event, , context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            for (let i = 0; i < listeners[name].length; i++) {\n                if (listeners[name][i]) {\n                    const listenerKey = name + \"::\" + j + \"::\" + i;\n                    if (!firedListeners[listenerKey]) {\n                        return true;\n                    }\n                }\n            }\n        } catch {\n            // do nothing\n        }\n    }).length;\n};\n\nlet currentlyFiredEvent;\nconst firedListeners = {};\nconst fireQueuedEvents = (eventNames) => {\n    eventQueue.forEach(([event, readyState, context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            if ((listeners[name] || []).length) {\n                // listeners[name].forEach doesn't work as the listeners might be added \n                // during the loop\n                for (let i = 0; i < listeners[name].length; i++) {\n                    const func = listeners[name][i];\n                    if (func) {\n                        // readystatechanges fires multiple time times on same \n                        // listener with different readyState, accounting for that\n                        // const listenerKey = event === M \n                        //     ? name + '::' + j + '::' + i + '::' + readyState\n                        //     : name + '::' + i + '::' + readyState;\n                        const listenerKey = name + \"::\" + j + \"::\" + i;\n                        if (!firedListeners[listenerKey]) {\n                            firedListeners[listenerKey] = true;\n                            d.readyState = readyState;\n                            currentlyFiredEvent = name;\n                            try {\n                                firedEventsCount++;\n                                process.env.DEBUG && c(delta(), \"firing \" + event.type + \"(\" + d.readyState + \") for\", func[prototype] ? func[prototype].constructor : func);\n                                if (!func[prototype] || func[prototype].constructor === func) {\n                                    func.bind(context)(event);\n                                } else {\n                                    func(event);\n                                }\n                            } catch (e) {\n                                ce(e, func);\n                            }\n                            currentlyFiredEvent = null;\n                        }\n                    }\n                }\n            }\n        } catch (e) {\n            ce(e);\n        }\n    });\n};\n\n// we need to clone L, DCL, RSC events\n// because we internally track them and use them, eg window.load\n// if some script like elementor runs e.stopImmediatePropagation()\n// we won't ever get them, just the same way we do in the inpage-first-interaction\ndOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), d]);\n});\ndOrigAddEventListener(RSC, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + RSC);\n    eventQueue.push([new e.constructor(RSC, e), origReadyStateGetter(), d]);\n});\nwOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued window \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), w]);\n});\nwOrigAddEventListener(L, (e) => {\n    WindowLoaded = true;\n    process.env.DEBUG && c(delta(), \"enqueued window \" + L);\n    eventQueue.push([new e.constructor(L, e), origReadyStateGetter(), w]);\n    // we must fire queued events for excluded scripts\n    // if firstInteractionFired, then some scripts might have registered load event listeners\n    // and they will be fired as well, which is invalid behaviour\n    // https://wordpress.org/support/topic/meteor-blocks-contact-form-email/\n    if (!iterating) {\n        fireQueuedEvents([DCL, RSC, M, L]);\n    }\n});\nconst messageListener = (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued \" + M);\n    eventQueue.push([e, d.readyState, w]);\n};\n\nconst origWindowOnMessageGetter = w[__lookupGetter__](\"onmessage\");\nconst origWindowOnMessageSetter = w[__lookupSetter__](\"onmessage\");\n\n// will be called inside iterate, right before dispatching EVENT_THE_END\nconst restoreMessageListener = () => {\n    // this code is called only when all the events were fired\n    wOrigRemoveEventListener(M, messageListener);\n    // restoring message listeners\n    (listeners[windowEventPrefix + \"message\"] || []).forEach(listener => {\n        wOrigAddEventListener(M, listener);\n    });\n    Object_defineProperty(w, \"onmessage\", {\n        get: origWindowOnMessageGetter,\n        set: origWindowOnMessageSetter,\n    });\n    process.env.DEBUG && c(delta(), \"message listener restored\");\n};\n// removal will be inside iterate\nwOrigAddEventListener(M, messageListener);\n\n// jQuery mock allows to trigger jQuery.ready early\n// because if we rely on native logics, the ready() listeners will fire after window.load\nconst jQuery = new jQueryMock();\njQuery.init();\n\n// there are 3 cases\n// 1. first interaction fires before window.load as a resut of user interaction\n// 2. window.load fires before first interaction \n// 3. !!!!!!! 3rd party scripts might trigger it programmatically if they were excluded from optimization\nconst startIterating = () => {\n    if (!iterating && !DONE) {\n        iterating = true;\n        // mayBePreloadScripts();\n        d.readyState = \"loading\";\n        rAF(flushPreloadsAndPreconnects);\n        rAF(iterate); // starts the iteration\n        // nextTick(iterate); // starts the iteration\n    }\n    /**\n     * If window.load fires after iteration complete, eg some images delay window.load\n     * there might be some unfired events left in the queue\n     * so we will restart iteration which will fire them\n     */\n    if (!WindowLoaded) {\n        wOrigAddEventListener(L, () => {\n            process.env.DEBUG && c(delta(), separator, \"starting iterating after window loaded\");\n            startIterating();\n        });\n    }\n};\n\n// We need CSS to start iterating, because there are cases,\n// when something injects CSS before some <link>, that is \n// inside <noscript>. This is why we wait for EVENT_CSS_LOADED,\n// which triggers EVENT_IMAGES_LOADED\nprocess.env.SPO || wOrigAddEventListener(EVENT_FIRST_INTERACTION, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating on first interaction\");\n    startIterating();\n});\n\n/* EVENT_IMAGES_LOADED is an internal event, known to dispatcher only */\ndispatcher.on(EVENT_IMAGES_LOADED, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating after images loaded\");\n    startIterating();\n});\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor.rdelay >= 0) {\n        InteractionEvents.capture();\n    }\n})();\n\n// scriptsToLoad is set to 1 to allow an extra call at the end of iteration\n// that means that once last script loads, it won't trigger the end of the cycle\n// only after all the events fire, the cycle will end\nlet scriptsToLoad = [-1];\nconst scriptLoaded = (event) => {\n    process.env.DEBUG && c(delta(), \"scriptLoaded\", event.target, scriptsToLoad.length);\n    scriptsToLoad = scriptsToLoad.filter(script => script !== event.target);\n    if (!scriptsToLoad.length) {\n        // this is ultimate end of the iteration cycle\n        nextTick(dispatcher.emit.bind(dispatcher, EVENT_THE_END));\n    }\n};\n\nlet i = 0;\nlet iterating = false;\n\n// TODO: async and defer scripts can be injected into the document in parallel\n// we can either insert them in 2 batches (defer, then async), or even in one batch\nconst iterate = () => {\n    process.env.DEBUG && c(delta(), \"it\", i++, reorder.length);\n    const element = reorder.shift();\n    if (element) {\n        // process.env.DEBUG && c(separator, \"iterating\", element, element.dataset);\n        if (element[getAttribute](prefix + \"src\")) {\n            if (element[hasAttribute](\"async\") || element[__dynamic]) {\n                if (element.isConnected) {\n                    // we can't be sure that it is going to be inserted into the DOM\n                    process.env.DEBUG && c(delta(), \"pushed to scriptsToLoad\", scriptsToLoad);\n                    scriptsToLoad.push(element);\n                    // https://github.com/aguidrevitch/fpo-javascript-rewrite/issues/6\n                    // https://wordpress.org/support/topic/script-loading-waited-on-js-file/\n                    // if an async script hangs for longer than 1 seconds\n                    // we stop waiting for it to finish page load\n                    setTimeout(scriptLoaded, 1000, { target: element });\n                }\n                // even if it is not in the scriptsToLoad list, \n                // scriptLoaded won't remove it from the list\n                unblock(element, scriptLoaded);\n                nextTick(iterate);\n            } else {\n                // process.env.DEBUG && c(delta(), \"sync\", element);\n                unblock(element, nextTick.bind(null, iterate));\n                // iterate()\n            }\n        } else if (element.origtype == javascriptBlocked) {\n            unblock(element);\n            // allow inserted script to execute\n            nextTick(iterate);\n        } else {\n            // it might be wrongfully processed script by backend, eg type=\"application/ld+json\" \n            // and execution will stop here\n            process.env.DEBUG && ce(\"running next iteration\", element, element.origtype, element.origtype == javascriptBlocked);\n            nextTick(iterate);\n        }\n        // } else if (scriptsToInsert) {\n        //     process.env.DEBUG && c(delta(), scriptsToInsert, \"more scripts to insert\");\n        //     rAF(iterate);\n    } else {\n        if (defer.length) {\n            process.env.DEBUG &&\n                defer.forEach(script =>\n                    c(delta(), \"adding deferred script from defer queue to reorder\", script.cloneNode(true))\n                );\n            reorder.push(...defer);\n            defer.length = 0;\n\n            // mayBePreloadScripts();\n            nextTick(iterate);\n\n            // process.env.DEBUG && c('loaded all the scripts');\n            // not restoring original addEventListener\n            // to avoid unexpected failures,\n            // however, that triggers spurious handlers which were sleeping\n            // d[addEventListener] = dOrigAddEventListener;\n        } else if (hasUnfiredListeners([DCL, RSC, M])) {\n            process.env.DEBUG && c(delta(), \"firing unfired listeners\");\n            fireQueuedEvents([DCL, RSC, M]);\n            nextTick(iterate);\n        } else if (WindowLoaded) {\n            // as cycle starts in 'fi' listener\n            if (hasUnfiredListeners([L, M])) {\n                fireQueuedEvents([L, M]);\n                nextTick(iterate);\n            } else if (scriptsToLoad.length > 1) {\n                // can get here only if started loading async scripts\n                process.env.DEBUG && c(delta(), `waiting for ${scriptsToLoad.length - 1} more scripts to load`, scriptsToLoad);\n                rIC(iterate);\n            } else if (async.length) {\n                process.env.DEBUG &&\n                    async.forEach(script =>\n                        c(delta(), \"adding async script from async queue to reorder\", script.cloneNode(true))\n                    );\n\n                reorder.push(...async);\n                async.length = 0;\n\n                // mayBePreloadScripts();\n                nextTick(iterate);\n            } else {\n                // CloudFlare RocketLoader workaround\n                if (w.RocketLazyLoadScripts) {\n                    try {\n                        RocketLazyLoadScripts.run();\n                    } catch (e) {\n                        ce(e);\n                    }\n                }\n                d.readyState = \"complete\";\n\n                // restoring message listener here to avoid messages that can fall\n                // in the gap before EVENT_THE_END fires\n                restoreMessageListener();\n\n                // restoring original jQuery.ready here to avoid calls that can fall\n                // in the gap before EVENT_THE_END fires\n                jQuery.unmock();\n\n                // We can't restore original event listeners\n                // because on slow connections, 3rd party scripts might be loaded late\n                // and bind to window.load or anything else we track\n                // documentAddEventListener = dOrigAddEventListener;\n                // documentRemoveEventListener = dOrigRemoveEventListener;\n                // windowAddEventListener = wOrigAddEventListener;\n                // windowRemoveEventListener = wOrigRemoveEventListener;\n\n                // process.env.DEBUG && c('running emulatedWindowLoaded');\n                // technically, iterating = false is not needed\n                // as the only place where it is checked is inside window.load\n                // and here he has already fired as WindowLoaded === true\n                iterating = false;\n                DONE = true;\n\n                // setTimeout(() => dispatcher.emit(EVENT_THE_END));\n                w[_setTimeout](() => scriptLoaded({ target: -1 }));\n            }\n        } else {\n            // exiting iterate() cycle in case window.load hasn't fired yet\n            iterating = false;\n        }\n    }\n};\n\nconst cloneScript = (el) => {\n\n    const newElement = dOrigCreateElement(S);\n\n    const attrs = el.attributes;\n    // console.log(\"newElement\", attrs.map(attr => attr.name + \"=\" + attr.value));\n\n    // move attributes\n    for (var i = attrs.length - 1; i >= 0; i--) {\n        if (!attrs[i].name.startsWith(prefix)) {\n            newElement[setAttribute](attrs[i].name, attrs[i].value);\n        }\n    }\n\n    const type = el[getAttribute](prefix + \"type\"); // data-wpmeteor-type\n    if (type) {\n        newElement.type = type;\n    } else {\n        newElement.type = \"text/javascript\";\n    }\n\n    // CloudFlare RocketLoader workaround\n    if ((el.textContent || \"\").match(/^\\s*class RocketLazyLoadScripts/)) {\n        newElement.textContent = el.textContent.replace(/^\\s*class\\s*RocketLazyLoadScripts/, \"window.RocketLazyLoadScripts=class\").replace(\"RocketLazyLoadScripts.run();\", \"\");\n    } else {\n        newElement.textContent = el.textContent;\n    }\n\n    // these might not be set as attributes, but instead as properties\n    for (const property of [\"onload\", \"onerror\", \"onreadystatechange\"]) {\n        if (el[property]) {\n            process.env.DEBUG && c(delta(), `re-adding ${property} to`, el, el[property]);\n            newElement[property] = el[property];\n        }\n    }\n\n    return newElement;\n};\n\n// let scriptsToInsert = 0;\n/*\nconst replaceScript = (el, newElement) => {\n    const parentNode = el.parentNode;\n    if (parentNode) {\n        // some scripts want parentNode to remove script themselves\n        const newParent = parentNode.nodeType === 11\n            ? dOrigCreateElement(parentNode.host[tagName])\n            : dOrigCreateElement(parentNode[tagName]);\n        // rAF is probably inacceptable for inline scripts at least. Here is the catch\n        // a script is supposed to create another script which should be captured by MutationObserver\n        // but by the time document.createElement() is called, iterating = false\n        // this is temporary fix, probably there are better solutions\n        // scriptsToInsert++;\n        // rAF(() => {\n        //     scriptsToInsert--;\n        //     newParent[appendChild](parentNode.replaceChild(newElement, el));\n        // });\n        newParent[appendChild](parentNode.replaceChild(newElement, el));\n        if (!parentNode.isConnected) {\n            // it happens sometimes, so no need to trigger verbose error\n            process.env.DEBUG && ce(\"Parent for\", el, \" is not part of the DOM\");\n            // we have to return empty element to trigger onload() callback\n            // instantly instead of waiting for never firing onload event listener\n            return;\n        }\n        return el;\n    }\n    ce(\"No parent for\", el);\n};\n*/\n\nconst unblock = (el, callback) => {\n    // const ds = el.dataset;\n    let src = el[getAttribute](prefix + \"src\");\n    // convert relative to absolute if SPO\n    process.env.SPO && src && _wpmeteor.baseURL && (() => { try { src = new URL(src, _wpmeteor.baseURL).href; } catch { } })(); // eslint-disable-line no-empty\n\n    if (src) {\n        process.env.DEBUG && c(delta(), \"unblocking src\", src);\n\n        const addEventListener = origAddEventListener.bind(el);\n\n        // if (el.getEventListeners) {\n        //     el.getEventListeners().forEach(([event, listener]) => {\n        //         process.env.DEBUG && c(delta(), \"re-adding event listeners to element\", event, listener);\n        //         addEventListener(event, listener);\n        //     });\n        // }\n\n        if (el.isConnected && callback) {\n            addEventListener(L, callback);\n            addEventListener(E, callback);\n        }\n\n        /** setting type before src is crucial for load/error events to be triggered \n          * According to the HTML5 specification, when a script element is inserted \n          * into the document, it starts fetching the script as soon as the src attribute is encountered, \n          * provided the type is a recognized script type. If the type is not set correctly at that point, \n          * the script will not be fetched.\n          */\n        /* el.origtypegets and sets original \"type\" attribute, el.type points to data-wpmeteor-src */\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        /* el.origsrc gets and sets original \"src\" attribute, el.src points to data-wpmeteor-src */\n        el.origsrc = src;\n\n        /** Do not remove prefix + \"src\" and prefix + \"type\" attributes, they are needed in the following case:\n          * * document.currentScript.getAttribute('src') will return null if they are removed\n          * as access to the attributes is still wrapped by us\n          */\n        // el[removeAttribute](prefix + \"src\");\n        // el[removeAttribute](prefix + \"type\");\n\n        process.env.DEBUG && c(delta(), \"unblocked src\", src, el);\n        // http://www.iana.org/assignments/media-types/media-types.xhtml\n        // in fact only text/javascript is the right one, the rest is obsolete\n        if ((!el.isConnected || el[hasAttribute](\"nomodule\") || (el.type && !isJavascriptRegexp.test(el.type))) && callback) {\n            // listeners won't fire\n            // so have to trigger callback\n            callback(new Event(L, { target: el }));\n        }\n    } else if (el.origtype === javascriptBlocked) {\n        // onLoad is never passed here\n        process.env.DEBUG && c(delta(), \"unblocking inline\", el);\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        // have to insert updated content in order to trigger execution\n        // we are going to change the content, so integrity is not valid anymore\n        el[removeAttribute](\"integrity\");\n        el.textContent = el.textContent + \"\\n\";\n        process.env.DEBUG && c(delta(), \"unblocked inline\", el);\n    } else {\n        process.env.DEBUG && ce(delta(), \"already unblocked\", el);\n        if (callback) {\n            callback(new Event(L, { target: el }));\n        }\n    }\n};\n// TODO: support for ...args ????\nconst removeQueuedEventListener = (name, func) => {\n    const pos = (listeners[name] || []).indexOf(func);\n    if (pos >= 0) {\n        listeners[name][pos] = undefined;\n        return true;\n    }\n};\n\nconst documentAddEventListener = (event, func, ...args) => {\n    if (\"HTMLDocument::\" + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, d[addEventListener].bind(d, event, func, ...args));\n        return;\n    }\n    if (func && (event === DCL || event === RSC)) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = documentEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    return dOrigAddEventListener(event, func, ...args);\n};\n\n// ...args were missing, making it impossible to remove listeners for google maps mobile\nconst documentRemoveEventListener = (event, func, ...args) => {\n    if (event === DCL) {\n        const name = documentEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return dOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(d, {\n    [addEventListener]: {\n        get() { return documentAddEventListener; },\n        set() { return documentAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return documentRemoveEventListener; },\n        set() { return documentRemoveEventListener; },\n    }\n});\n\nlet preloadsAndPreconnectsFragment = d.createDocumentFragment();\nconst flushPreloadsAndPreconnects = () => {\n    if (preloadsAndPreconnectsFragment.hasChildNodes()) {\n        d.head[appendChild](preloadsAndPreconnectsFragment);\n        preloadsAndPreconnectsFragment = d.createDocumentFragment();\n    }\n};\nconst preconnects = process.env.SPO && { \"https://cdn.fastpixel.io\": true } || {};\nconst preconnect = (src) => {\n    if (!src)\n        return;\n    try {\n        const url = new URL(src, d.location.href);\n        const href = url.origin;\n        if (href && !preconnects[href] && d.location.host !== url.host) {\n            const s = dOrigCreateElement(\"link\");\n            s.rel = \"preconnect\";\n            s.href = href;\n            preloadsAndPreconnectsFragment[appendChild](s);\n            process.env.DEBUG && c(delta(), \"preconnecting\", url.origin);\n            preconnects[href] = true;\n            if (iterating) {\n                rAF(flushPreloadsAndPreconnects);\n            }\n        }\n    } catch (e) {\n        process.env.DEBUG && ce(delta(), \"failed to parse src for preconnect\", src, e);\n    }\n};\n\nconst preloads = {};\nconst preloadAsScript = (src, isModule, crossorigin, integrity) => {\n    const s = dOrigCreateElement(\"link\");\n    s.rel = isModule\n        ? \"modulepre\" + L\n        : \"pre\" + L;\n    s.as = \"script\";\n    if (crossorigin)\n        s[setAttribute](\"crossorigin\", crossorigin); // must be setAttribute\n    if (integrity)\n        s[setAttribute](\"integrity\", integrity); // must be setAttribute\n    try {\n        src = new URL(src, d.location.href).href;\n    } catch { }\n    s.href = src;\n    preloadsAndPreconnectsFragment[appendChild](s);\n    preloads[src] = true;\n    if (iterating) {\n        rAF(flushPreloadsAndPreconnects);\n    }\n};\n\n/*\nconst mayBePreloadScripts = () => {\n    if (_wpmeteor.preload && reorder.length) {\n        reorder.forEach(script => {\n            const src = script[getAttribute](prefix + \"src\");\n            if (src && !preloads[src] && !script[hasAttribute](\"nomodule\")) {\n                preloadAsScript(src, script[getAttribute](prefix + \"type\") == \"module\", script[hasAttribute](\"crossorigin\") && script[getAttribute](\"crossorigin\"), script[getAttribute](\"integrity\"));\n            }\n        });\n    }\n};\n*/\n\n/*\ndOrigAddEventListener(DCL, () => {\n    const treorder = [...reorder];\n    reorder.length = 0;\n    [...d[querySelectorAll](\"script[type='\" + javascriptBlocked + \"']\"), ...treorder].forEach(el => {\n        // this is a workaround to skip nodes that were detected in MutationObserver\n        // and already hit iterate(), however, they miss the next Object_defineProperty() for origtype\n        // so this is incorrect, and doesn't work, check for node.origtype presense was added\n        // with fixed MutationObserver this is not needed anymore\n        if (seenScripts.has(el)) {\n            process.env.DEBUG && ce(delta(), \"WARNING: the scripts should have been filtered in MutationObserver\", el);\n            return;\n        }\n        const originalAttributeGetter = el[__lookupGetter__](\"type\").bind(el);\n        Object_defineProperty(el, \"origtype\", {\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n        if ((el[getAttribute](prefix + \"src\") || \"\").match(/\\/gtm.js\\?/)) {\n            process.env.DEBUG && c(delta(), \"delaying regex\", el[getAttribute](prefix + \"src\"));\n            async.push(el);\n        } else if (el[hasAttribute](\"async\")) {\n            process.env.DEBUG && c(delta(), \"delaying async\", el[getAttribute](prefix + \"src\"));\n            async.unshift(el);\n        } else if (el[hasAttribute](\"defer\")) {\n            process.env.DEBUG && c(delta(), \"delaying defer\", el[getAttribute](prefix + \"src\"));\n            defer.push(el);\n        } else {\n            reorder.push(el);\n        }\n        seenScripts.add(el);\n    });\n    // we will loose all event listeners, so we'd better track addEventListener/removeEventListener as well\n    // not supported yet, cant find reference in backend\n    // const querySelectors = ['link'].map(n => n + '[' + prefix + 'onload]').join(',');\n    // d.querySelectorAll(querySelectors).forEach(el => reorder.push(el));\n});\n*/\n\n/* 3rd party scripts handling */\nconst createElement = function (...args) {\n\n    const scriptElt = dOrigCreateElement(...args);\n\n    // createElement(null), createElement(undefined) are valid calls\n    // so we have to check for args[0] presence\n    if (!args || args[0].toUpperCase() !== S || !iterating) {\n        return scriptElt;\n    }\n\n    process.env.DEBUG && c(delta(), \"creating script element\");\n\n    // Backup the original setAttribute function\n    const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt);\n    const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt);\n    const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt);\n    const originalAttributes = scriptElt[__lookupGetter__](\"attributes\").bind(scriptElt);\n\n    // originalSetAttribute(prefix + \"after\", \"REORDER\");\n    // originalSetAttribute(prefix + \"type\", \"text/javascript\");\n\n    // scriptElt.type = javascriptBlocked;\n\n    // const eventListeners = [];\n    // scriptElt.getEventListeners = () => {\n    //     return eventListeners;\n    // };\n\n    capturedAttributes.forEach(property => {\n        const originalAttributeGetter = scriptElt[__lookupGetter__](property).bind(scriptElt);\n        const originalAttributeSetter = scriptElt[__lookupSetter__](property).bind(scriptElt);\n        O[definePropert + \"y\"](scriptElt, property, {\n            set(value) {\n                process.env.DEBUG && c(delta(), \"setting \", property, value);\n                // bypass for application/ld+json and similar\n                if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                    return scriptElt[setAttribute](property, value);\n                }\n                if (property === \"src\" && value) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                } else if (property === \"type\" && value && scriptElt.origsrc) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                }\n                return value\n                    ? scriptElt[setAttribute](prefix + property, value)\n                    : scriptElt[removeAttribute](prefix + property);\n            },\n            get() {\n                const result = scriptElt[getAttribute](prefix + property);\n                if (property === \"src\") {\n                    // convert to absolute\n                    try {\n                        const url = new URL(result, d.location.href);\n                        return url.href;\n                    } catch {\n                         \n                    }\n                }\n                return result;\n            }\n        });\n        Object_defineProperty(scriptElt, \"orig\" + property, {\n            set(value) {\n                return originalAttributeSetter(value);\n            },\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n\n    });\n\n    // this is not needded anymore as we are not copying the node\n    // so we don't need to reattach the listeners\n    // scriptElt[addEventListener] = function (event, handler) {\n    //     eventListeners.push([event, handler]);\n    // };\n\n    // Monkey patch the setAttribute function so that the setter is called instead.\n    // Otherwise, setAttribute('type', 'whatever') will bypass our custom descriptors!\n    scriptElt[setAttribute] = function (property, value) {\n        if (capturedAttributes.includes(property)) {\n            process.env.DEBUG && c(delta(), \"setting attribute\", property, value);\n            // bypass for application/ld+json and similar\n            if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                return originalSetAttribute(property, value);\n            }\n            if (property === \"src\" && value) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            } else if (property === \"type\" && value && scriptElt.origsrc) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            }\n            return value\n                ? originalSetAttribute(prefix + property, value)\n                : scriptElt[removeAttribute](prefix + property);\n        } else {\n            originalSetAttribute(property, value);\n        }\n    };\n\n    scriptElt[getAttribute] = function (property) {\n        const result = capturedAttributes.indexOf(property) >= 0\n            ? originalGetAttribute(prefix + property)\n            : originalGetAttribute(property);\n        if (property === \"src\") {\n            // convert to absolute\n            try {\n                const url = new URL(result, d.location.href);\n                return url.href;\n            } catch {\n                 \n            }\n        }\n        return result;\n    };\n\n    scriptElt[hasAttribute] = function (property) {\n        return capturedAttributes.indexOf(property) >= 0\n            ? originalHasAttribute(prefix + property)\n            : originalHasAttribute(property);\n    };\n\n    /* very shallow mocking of NamedNodeMap */\n    Object_defineProperty(scriptElt, \"attributes\", {\n        get() {\n            const mock = [...originalAttributes()]\n                .filter(attr => attr.name !== \"type\") // no need to filter as we no longer append it && attr.name !== prefix + \"after\")\n                .map(attr => {\n                    return {\n                        name: attr.name.match(new RegExp(prefix))\n                            ? attr.name.replace(prefix, \"\")\n                            : attr.name,\n                        value: attr.value\n                    };\n                });\n            return mock;\n        }\n    });\n\n    // this is to make it to the async queue where it belongs\n    scriptElt[__dynamic] = true;\n\n    return scriptElt;\n};\n\n// Allowing to override, but still not the best option - onetrust captures createElement \n// even for users who accepted cookies\nObject.defineProperty(Document[prototype], \"createElement\", {\n    set(value) {\n        if (process.env.DEBUG) {\n            if (value == origCreateElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement restored to original\");\n            } else if (value === createElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden\");\n            } else {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden by a 3rd party script\");\n            }\n        }\n        if (value !== createElement) {\n            createElementOverride = value;\n        }\n    },\n    get() {\n        return createElementOverride || createElement;\n    }\n});\n\nconst seenScripts = new Set();\nconst observer = new MutationObserver(mutations => {\n    mutations.forEach(({ removedNodes, addedNodes, target }) => {\n        // this is the case for https://essential-addons.com/elementor/offcanvas-content/\n        // which, in EAELOffcanvasContent.prototype = { init: function() { \n        // ... 0 === e(\".eael-offcanvas-container\").length && (e(\"body\").wrapInner('<div class=\"eael-offcanvas-container eael-offcanvas-container-' + this.id + '\" />'),\n        // }}\n        // wraps the whole body into a div, removes some scripts from the DOM and reinserts them wrapped in .eael-offcanvas-container.eael-offcanvas-container-<id>\n        removedNodes.forEach(node => {\n            // For each removed script tag\n            if (node.nodeType === 1 && S === node[tagName] && \"origtype\" in node) {\n                seenScripts.delete(node);\n            }\n        });\n        addedNodes.forEach(node => {\n            // For each added script tag\n            if (node.nodeType === 1) {\n                if (S === node[tagName]) {\n                    // process.env.DEBUG && c(delta(), \"XXXX\", node, node.origtype, node[getAttribute](\"type\"));\n                    if (\"origtype\" in node) {\n                        // process.env.DEBUG && c(delta(), \"mutationobserver captured some script\", node.cloneNode(true));\n                        if (node.origtype !== javascriptBlocked) {\n                            process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                            return;\n                        }\n                    } else if (node[getAttribute](\"type\") !== javascriptBlocked) {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                        return;\n                    }\n                    // all the intercepted nodes inserted by createElement() should have origtype getter\n                    if (!(\"origtype\" in node)) {\n                        process.env.DEBUG && (node[getAttribute](\"type\") === javascriptBlocked\n                            ? c(delta(), \"mutationobserver captured blocked script\", node)\n                            : c(delta(), \"mutationobserver captured non-javascript script\", node));\n                        capturedAttributes.forEach(property => {\n                            const originalAttributeGetter = node[__lookupGetter__](property).bind(node);\n                            const originalAttributeSetter = node[__lookupSetter__](property).bind(node);\n                            Object_defineProperty(node, \"orig\" + property, {\n                                set(value) {\n                                    return originalAttributeSetter(value);\n                                },\n                                get() {\n                                    return originalAttributeGetter();\n                                }\n                            });\n                        });\n                    } else {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured new script\", node.cloneNode(true));\n                    }\n\n                    // const src = node[getAttribute](prefix + \"src\");\n                    const src = node[getAttribute](prefix + \"src\");\n\n                    if (seenScripts.has(node)) {\n                        ce(\"Inserted twice\", node);\n                    }\n\n                    if (node.parentNode) {\n                        seenScripts.add(node);\n                        const origType = node[getAttribute](prefix + \"type\");\n                        if ((src || \"\").match(/\\/gtm.js\\?/)) {\n                            process.env.DEBUG && c(delta(), \"delaying regex\", node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        } else if (node[hasAttribute](\"async\") || node[__dynamic]) {\n                            process.env.DEBUG && c(delta(),\n                                node.__async\n                                    ? \"delaying dynamically inserted script as async\"\n                                    : \"delaying async\",\n                                node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules:\n                        // \"There is no need to use the defer attribute (see <script> attributes) \n                        // when loading a module script; modules are deferred automatically.\"\n                        } else if (node[hasAttribute](\"defer\") || origType === \"module\") {\n                            process.env.DEBUG && c(delta(), \"delaying defer\", node[getAttribute](prefix + \"src\"));\n                            defer.push(node);\n                            preconnect(src);\n                        } else {\n                            if (src && !node[hasAttribute](\"nomodule\") && !preloads[src]) {\n                                // no need to preload if it is the next script in the queue\n                                // VWO removes node instantly\n                                preloadAsScript(src, origType === \"module\", node[hasAttribute](\"crossorigin\") && node[getAttribute](\"crossorigin\"), node[getAttribute](\"integrity\"));\n                            }\n                            reorder.push(node);\n                        }\n                    } else {\n                        // if the node has been instanly removed, we still want to load it and run\n                        // I tested appendNode(script); removeNode(script) - it still loads and triggers the code\n                        process.env.DEBUG && ce(\"No parent node for\", node, \"re-adding to\", target);\n                        node[addEventListener](L, e => e.target.parentNode[removeChild](e.target));\n                        node[addEventListener](E, e => e.target.parentNode[removeChild](e.target));\n                        target[appendChild](node);\n                        // no need to push to seenScripts and reorder as it will happen on the next iteration\n                        // of MutationObserver\n                    }\n                } else if (\"LINK\" === node[tagName] && node[getAttribute](\"as\") === \"script\") {\n                    preloads[node[getAttribute](\"href\")] = true;\n                }\n            }\n        });\n    });\n});\n\nconst mutationObserverOptions = {\n    childList: true,\n    subtree: true,\n    // attributes: true,\n    // attributeFilter: ['src', 'type'],\n    // attributeOldValue: true,\n};\n\nobserver.observe(d.documentElement, mutationObserverOptions);\n\nconst origAttachShadow = HTMLElement[prototype].attachShadow;\nHTMLElement[prototype].attachShadow = function (options) {\n    const shadowRoot = origAttachShadow.call(this, options);\n    if (options.mode === \"open\") {\n        observer.observe(shadowRoot, mutationObserverOptions);\n    }\n    return shadowRoot;\n};\n\nprocess.env.SPO || (() => {\n    const origIFrameSrc = O[getOwnPropertyDescriptor](HTMLIFrameElement[prototype], \"src\");\n    Object_defineProperty(HTMLIFrameElement[prototype], \"src\", {\n        get() {\n            if (this.dataset.fpoSrc) {\n                return this.dataset.fpoSrc;\n            }\n            return origIFrameSrc.get.call(this);\n        },\n        set(value) {\n            delete this.dataset.fpoSrc;\n            origIFrameSrc.set.call(this, value);\n        }\n    });\n})();\n\n// cleaning up\ndispatcher.on(EVENT_THE_END, () => {\n    process.env.DEBUG && c(delta(), \"THE END\");\n    if (!createElementOverride || createElementOverride === createElement) {\n        Document[prototype].createElement = origCreateElement;\n        observer.disconnect();\n    } else {\n        process.env.DEBUG && c(delta(), \"createElement is overridden, keeping observers in place\");\n    }\n    // we should only fire EVENT_REPLAY_CAPTURED_EVENTS if no lazyload is in the page\n    // eg in pure WP METEOR mode, not for FASTPIXEL\n    process.env.SPO || dispatchEvent(new CustomEvent(EVENT_REPLAY_CAPTURED_EVENTS));\n    dispatchEvent(new CustomEvent(EVENT_THE_END));\n});\n/* end 3rd party scripts handling */\n\n/* we have to override document.write as all of them will fire after DOMContentLoaded */\nlet documentWrite = (str) => {\n    let parent, currentScript;\n    if (!d.currentScript || !d.currentScript.parentNode) {\n        /* trying our best */\n        parent = d.body;\n        currentScript = parent.lastChild;\n    } else {\n        currentScript = d.currentScript;\n        parent = currentScript.parentNode;\n    }\n    try {\n        const df = dOrigCreateElement(\"div\");\n        df.innerHTML = str;\n        Array.from(df.childNodes).forEach(node => {\n            if (node.nodeName === S) {\n                // cloneScript is a must for safari\n                parent.insertBefore(cloneScript(node), currentScript);\n            } else {\n                parent.insertBefore(node, currentScript);\n            }\n        });\n    } catch (e) {\n        ce(e);\n    }\n};\nlet documentWriteLn = (str) => documentWrite(str + \"\\n\");\n\nObject_defineProperties(d, {\n    \"write\": {\n        get() { return documentWrite; },\n        set(func) { return documentWrite = func; },\n    },\n    \"writeln\": {\n        get() { return documentWriteLn; },\n        set(func) { return documentWriteLn = func; },\n    },\n});\n\n// Capturing and queueing Window Load event handlers\nlet windowAddEventListener = (event, func, ...args) => {\n    // We have to skip registering message listeners if DONE, as we already restored \n    // original eventListener to messages in restoreMessageListener()\n    // ??? not sure why there is windowEventPrefix instead of documentEventPrefix\n    // but I think this was to workaround some external javascripts\n    if (windowEventPrefix + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (windowEventPrefix + L == currentlyFiredEvent && event === L) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (func && (event === L || event === DCL || (event === M && !DONE))) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    // process.env.DEBUG && c(event, func);\n    return wOrigAddEventListener(event, func, ...args);\n};\nlet windowRemoveEventListener = (event, func, ...args) => {\n    if (event === L) { // L = load\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return wOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(w, {\n    [addEventListener]: {\n        get() { return windowAddEventListener; },\n        set() { return windowAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return windowRemoveEventListener; },\n        set() { return windowRemoveEventListener; },\n    }\n});\n\nconst onHandlerOptions = (name) => {\n    let handler;\n    return {\n        get() {\n            process.env.DEBUG && c(delta(), separator, \"getting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", handler);\n            return handler;\n        },\n        set(func) {\n            process.env.DEBUG && c(delta(), separator, \"setting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", func);\n            // only last handler should fire\n            if (handler) {\n                removeQueuedEventListener(name, func);\n            }\n            listeners[name] = listeners[name] || [];\n            listeners[name].push(func);\n            return handler = func;\n        },\n        // rocket-loader from CloudFlare tries to override onload so we will let him\n        // configurable: true,\n    };\n};\n\n/* \n * this code handles event from onload attributes\n * when rewriting body, iframes, images and scripts\n * we move original onload attribute to data-wpemeteor-onload\n * and replace onload with a function that fires CustomEvent(EVENT_ELEMENT_LOADED)\n */\n// bind to window\n// 2024-02-18: it seems that the only element we need this workaround are <document onload> and <html onload>\nwOrigAddEventListener(EVENT_ELEMENT_LOADED, e => {\n    const { target, event } = e.detail;\n    const el = target === w ? d.body : target;\n    const func = el[getAttribute](prefix + \"on\" + event.type);\n    el[removeAttribute](prefix + \"on\" + event.type);\n    try {\n        const f = new Function(\"event\", func);\n        if (target === w) {\n            // the trick here is to enqueue Window::load\n            // using overridden window.addEventListener\n            w[addEventListener](L, f.bind(target, event));\n        } else {\n            f.call(target, event);\n        }\n    } catch (err) {\n        console.err(err);\n    }\n});\n\n// overriding window.onload and document.body.onload, they are the same function\n{\n\n    const options = onHandlerOptions(windowEventPrefix + L);\n    Object_defineProperty(w, \"onload\", options);\n    dOrigAddEventListener(DCL, () => {\n        Object_defineProperty(d.body, \"onload\", options);\n    });\n}\n// overriding document.onreadystatechange\nObject_defineProperty(d, \"onreadystatechange\", onHandlerOptions(documentEventPrefix + RSC));\n// overriding window.onmessage\nObject_defineProperty(w, \"onmessage\", onHandlerOptions(windowEventPrefix + M));\n\n// rdelay delay is handled in the fpo-inpage-lazyload\n// previously it was handled here along with EVENT_FIRST_INTERACTION\n// I moved both to fpo-inpage-lazyload\nprocess.env.SPO &&\n    wOrigAddEventListener(EVENT_CSS_LOADED, () => dispatcher.emit(EVENT_IMAGES_LOADED)); /* , _wpmeteor.rdelay); */\n\nprocess.env.SPO\n    || (() => {\n\n        const wheight = w.innerHeight;\n        const wwidth = w.innerWidth;\n\n        const intersectsViewport = (el) => {\n            // chrome settings\n            // https://web.dev/browser-level-image-lazy-loading/#improved-data-savings-and-distance-from-viewport-thresholds\n            let extras = {\n                \"4g\": 1250,\n                \"3g\": 2500,\n                \"2g\": 2500,\n            };\n\n            const extra = extras[(navigator.connection || {}).effectiveType] || 0;\n            const rect = el.getBoundingClientRect();\n            const viewport = {\n                top: -1 * wheight - extra,\n                left: -1 * wwidth - extra,\n                bottom: wheight + extra,\n                right: wwidth + extra\n            };\n\n            // If one rectangle is on left side of other\n            if (rect.left >= viewport.right || rect.right <= viewport.left)\n                return false;\n\n            // If one rectangle is above other\n            if (rect.top >= viewport.bottom || rect.bottom <= viewport.top)\n                return false;\n\n            return true;\n        };\n\n        const waitForImages = (reallyWait = true) => {\n            let imagesToLoad = 1;\n            let imagesLoadedCount = -1;\n            const seen = {};\n\n            const imageLoadedHandler = () => {\n                imagesLoadedCount++;\n                // let's trigger \n                if (!--imagesToLoad) {\n                    process.env.DEBUG && c(delta(), imagesLoadedCount + \" eager images loaded\");\n                    // there are 2 options here\n                    // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n                    // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n\n                    // 1.\n                    w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n                    // 2. \n                    // should never get there, as we bypass waitForImages()\n                    // dispatcher.emit(EVENT_IMAGES_LOADED);\n                }\n            };\n\n            Array.from(d.getElementsByTagName(\"*\")).forEach(tag => {\n                let src, style, bgUrl;\n                if (tag[tagName] === \"IMG\") {\n                    let _src = tag.currentSrc || tag.src; // trying to capture srcsets if they are already loading\n                    if (_src && !seen[_src] && !_src.match(/^data:/i)) {\n                        if ((tag.loading || \"\").toLowerCase() !== \"lazy\") {\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading image\", src, \"for\", tag);\n                        } else if (intersectsViewport(tag)) { // lazy && already loading\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading lazy image\", src, \"for\", tag);\n                        }\n                    }\n                } else if (tag[tagName] === S) {\n                    preconnect(tag[getAttribute](prefix + \"src\"));\n                } else if (tag[tagName] === \"LINK\" && tag[getAttribute](\"as\") === \"script\" && [\"pre\" + L, \"modulepre\" + L].indexOf(tag[getAttribute](\"rel\")) >= 0) {\n                    preloads[tag[getAttribute](\"href\")] = true;\n                    // supposedly all CSS has already been loaded\n                } else if ((style = w.getComputedStyle(tag)) && (bgUrl = (style.backgroundImage || \"\").match(/^url\\s*\\((.*?)\\)/i)) && (bgUrl || []).length) { // eslint-disable-line no-cond-assign\n                    const url = bgUrl[0].slice(4, -1).replace(/\"/g, \"\");\n                    if (!seen[url] && !url.match(/^data:/i)) {\n                        src = url;\n                        process.env.DEBUG && c(delta(), \"loading background\", src, \"for\", tag);\n                    }\n                }\n                if (src) {\n                    seen[src] = true;\n                    const temp = new Image();\n                    if (reallyWait) {\n                        imagesToLoad++;\n                        temp[addEventListener](L, imageLoadedHandler);\n                        temp[addEventListener](E, imageLoadedHandler);\n                    }\n                    temp.src = src;\n                }\n            });\n            d.fonts.ready.then(() => {\n                process.env.DEBUG && c(delta(), \"fonts ready\");\n                imageLoadedHandler();\n            });\n        };\n\n        if (_wpmeteor.rdelay === 0) {\n            // dOrigAddEventListener(DCL, () => nextTick(waitForImages.bind(null, false)));\n            dOrigAddEventListener(DCL, waitForImages);\n        } else {\n            // there are 2 options here\n            // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n            // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n            // Reasoning for 1. is that on slow connections, we still want to wait for images to load\n\n            // 1.\n            wOrigAddEventListener(L, waitForImages);\n            // 2.\n            // w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n        }\n    })();\n"],
    5   "mappings": "MAAO,IACHA,EAAmB,mBACnBC,GAAsB,sBACtBC,EAAe,eACfC,EAAe,eACfC,EAAkB,kBAClBC,EAAe,eACfC,GAAgB,gBAChBC,EAAmBD,GAAgB,MACnCE,EAAc,cACdC,EAAc,cACdC,GAAgB,gBAChBC,EAAU,UACVC,GAA2B,2BAC3BC,EAAY,YACZC,EAAmB,mBACnBC,GAAmB,mBACnBC,EAAM,mBACNC,EAAI,OACJC,GAAI,QCnBR,IACIC,EAAI,OACJC,EAAI,SACJC,GAAKD,EAAE,gBAHX,IAKIE,EAAK,QAAQ,MCSjB,IAAIC,GAAS,GACQC,EAArB,KAAgC,CAC5B,aAAc,CACV,KAAK,MAAQ,CAAC,CAClB,CACA,MAAO,CAEH,IAAIC,EACAC,EAIEC,EAAW,CAACC,EAAQC,IAAW,CAEjC,GAAIN,IAAUK,GAAUA,EAAO,IAAM,CAACA,EAAO,WAAY,CAIrD,IAAME,EAAU,SAAUC,EAAM,CAK5B,OAAIA,IAASH,EACF,MAEXI,EAAEC,CAAgB,EAAEC,EAAKC,GAAK,CAE1BJ,EAAK,KAAKC,EAAGJ,EAAQO,EAAG,YAAY,CACxC,CAAC,EACM,KACX,EAEA,KAAK,MAAM,KAAK,CAACP,EAAQA,EAAO,GAAG,MAAOA,EAAO,GAAG,MAAM,WAAW,KAAK,CAAC,EAC3EA,EAAO,GAAG,MAAQE,EACdF,EAAO,GAAG,MAAM,WAAW,QAC3BA,EAAO,GAAG,KAAK,UAAU,MAAQE,GAErCF,EAAO,WAAa,GAExB,OAAOA,CACX,EAEI,OAAO,QAAU,OAAO,EAM5B,OAAO,eAAe,OAAQ,SAAU,CACpC,KAAM,CACF,OAAOH,CACX,EACA,IAAIG,EAAQ,CACRH,EAAOE,EAASC,EAAQ,QAAQ,CACpC,EACA,aAAc,EAClB,CAAC,EAED,OAAO,eAAe,OAAQ,IAAK,CAC/B,KAAM,CACF,OAAOF,CACX,EACA,IAAIU,EAAG,CACHV,EAAQC,EAASS,EAAG,GAAG,CAC3B,EACA,aAAc,EAClB,CAAC,CACL,CACA,QAAS,CACL,KAAK,MAAM,QAAQ,CAAC,CAACR,EAAQS,EAAUC,CAAiB,IAAM,CAE1DV,EAAO,GAAG,MAAQS,EACdT,EAAO,GAAG,MAAM,WAAW,OAASU,IACpCV,EAAO,GAAG,KAAK,UAAU,MAAQU,EAEzC,CAAC,EACDf,GAAS,EACb,CACJ,EC7FA,IAAMgB,GAA0B,wBAC1BC,GAA+B,6BAOrC,IAAMC,GAAuB,qBACvBC,GAAsB,oBACtBC,EAAgB,cCNtB,IAAMC,EAAc,QAEdC,EAAI,OACJC,GAAwBD,EAAE,iBAAiB,KAAKA,CAAC,EACjDE,GAA2BF,EAAE,oBAAoB,KAAKA,CAAC,EACvDG,GAAK,kBACLC,GAAK,eACLC,GAAK,eACLC,GAAgB,CAAC,aAAc,YAAa,WAAY,cAAe,UAAW,OAAO,EACzFC,GAAe,CAAC,YAAa,WAAYR,CAAW,EACpDS,GAAgB,CAAC,aAAc,WAAY,cAAe,YAAa,WAAYT,CAAW,EAC9FU,EAAS,iBAEf,IAAMC,GAAgB,gBAEhBC,GAAe,GAAK,CAEtB,IAAMC,EAAQ,IAAI,WAAWC,EAAa,CACtC,KAAM,EAAE,KACR,QAAS,GACT,WAAY,EAChB,CAAC,EACD,cAAO,eAAeD,EAAO,SAAU,CAAE,SAAU,GAAO,MAAO,EAAE,MAAO,CAAC,EACpEA,CACX,EAEME,GAAN,KAAwB,CACpB,OAAO,SAAU,CACb,IAAIC,EAAwB,GAItB,CAAC,CAAEC,EAAGC,CAAC,EAAI,GAAG,OAAO,UAAU,MAAM,YAAY,EACvD,GAAIC,EAAE,KAAOD,EAAID,CAAC,EACd,OAGJ,IAAMG,EAAiB,CAAC,EAClBC,EAAeC,GAAK,CACtB,GAAIA,EAAE,QAAWX,MAAiBW,EAAE,OAAS,CACzC,GAAI,CAACA,EAAE,UAIH,OAEJ,GAAIA,EAAE,YAAc,CAACC,GAAc,SAASD,EAAE,IAAI,EAC9C,GAAI,CACAA,EAAE,eAAe,CACrB,MAAE,CAAQ,CAEdA,EAAE,yBAAyB,EAEvBA,EAAE,OAASR,EAEXM,EAAe,KAAKR,GAAaU,CAAC,CAAC,EAC5BE,GAAc,SAASF,EAAE,IAAI,GAEpCF,EAAe,KAAKE,CAAC,EAMzBA,EAAE,OAAOG,EAAE,EAAEC,EAASJ,EAAE,KAAM,EAAI,EAC7BN,IACDA,EAAwB,GACxBG,EAAER,EAAa,EAAE,IAAI,YAAYgB,EAAuB,CAAC,GAGrE,EAEAR,EAAE,iBAAiBS,GAA8B,IAAM,CAGnDC,GAAa,QAAQhB,GAASiB,GAAyBjB,EAAOQ,EAAc,CAAE,QAAS,GAAO,QAAS,EAAK,CAAC,CAAC,EAC9GE,GAAc,QAAQV,GAASiB,GAAyBjB,EAAOQ,EAAc,CAAE,QAAS,GAAM,QAAS,EAAK,CAAC,CAAC,EAE9G,IAAIC,EACJ,KAAOA,EAAIF,EAAe,MAAM,GAAG,CAC/B,IAAIW,EAAST,EAAE,OACXS,EAAOC,EAAE,EAAEN,EAAS,YAAY,GAAKK,EAAOC,EAAE,EAAEN,EAAS,UAAU,GAAK,CAACK,EAAOC,EAAE,EAAEN,EAASZ,CAAW,GACpGiB,EAAOC,EAAE,EAAEN,EAAS,WAAW,GAK/BN,EAAe,KAAKR,GAAaU,CAAC,CAAC,EAEvCS,EAAOE,EAAE,EAAEP,EAAS,YAAY,EAChCK,EAAOE,EAAE,EAAEP,EAAS,UAAU,GAE9BK,EAAOE,EAAE,EAAEP,EAASJ,EAAE,IAAI,EAG9BS,EAAOpB,EAAa,EAAEW,CAAC,EAE/B,CAAC,EAGDO,GAAa,QAAQhB,GAASqB,GAAsBrB,EAAOQ,EAAc,CAAE,QAAS,GAAO,QAAS,EAAK,CAAC,CAAC,EAC3GE,GAAc,QAAQV,GAASqB,GAAsBrB,EAAOQ,EAAc,CAAE,QAAS,GAAM,QAAS,EAAK,CAAC,CAAC,CAC/G,CACJ,EAMA,IAAOc,GAAQC,GCjHf,IAAqBC,EAArB,KAAkC,CAC9B,aAAc,CACV,KAAK,EAAI,CAAC,CACd,CACA,KAAKC,EAAMC,EAAO,KAAM,CACpB,KAAK,EAAED,CAAI,GAAK,KAAK,EAAEA,CAAI,EAAE,QAAQE,GAAKA,EAAED,CAAI,CAAC,CACrD,CACA,GAAGD,EAAMG,EAAU,CACf,KAAK,EAAEH,CAAI,IAAM,CAAC,EAClB,KAAK,EAAEA,CAAI,EAAE,KAAKG,CAAQ,CAC9B,CACA,IAAIH,EAAMG,EAAU,CAChB,KAAK,EAAEH,CAAI,GAAK,KAAK,EAAEA,CAAI,GAAK,CAAC,GAAG,OAAOI,GAAKA,IAAMD,CAAQ,CAClE,CAWJ,ECvBA,IAAOE,EAAQ,IAAIC,ECSnB,IAAMC,GAAcC,EAAEC,EAAa,EAAE,MAAM,EAC3CF,GAAYG,CAAY,EAAE,KAAM,uBAAuB,EACvDH,GAAYG,CAAY,EAAE,QAAS,uBAAuB,EAE1D,IAAIC,GAAW,GAERC,GAAQ,KACND,IACDH,EAAE,KAAKK,CAAW,EAAEN,EAAW,EAE5B,iBAAiBA,GAAa,QAAQ,EAAE,QAAQ,QAAQ,KAAM,EAAE,GCH3E,IAAMO,GAAYC,GACPA,EAAGC,CAAY,EAAE,OAAO,GAAK,GAGlCC,GAAW,CAACF,EAAIG,IACXH,EAAGI,CAAY,EAAE,QAASD,CAAK,EAGnCE,GAAQ,IAAM,CACjBC,EAAEC,CAAgB,EAAEC,EAAG,UAAY,CAC/B,IAAMC,EAAOC,GAAqB,EAC5BC,EAAK,KAAK,IAAIC,GAAG,aAAe,EAAGN,EAAE,YAAc,CAAC,EACpDO,EAAK,KAAK,IAAID,GAAG,cAAgB,EAAGN,EAAE,aAAe,CAAC,EAEtDQ,EAAO,CAAC,cAAgBL,EAAM,aAAeA,EAAM,aAAc,aAAc,WAAW,EAChG,MAAM,KAAKM,EAAEC,CAAgB,EAAE,sBAAsB,CAAC,EAAE,QAAQhB,GAAM,CAGlE,IAAMiB,EAAiBjB,EAAG,sBAAsB,EAChD,GAAIiB,EAAe,IAAMX,EAAE,SAAWO,GAAMI,EAAe,KAAOX,EAAE,QAAUK,EAC1E,GAAI,CACA,IAAMO,EAAW,KAAK,MAAMlB,EAAGC,CAAY,EAAE,eAAe,CAAC,EAC7D,GAAIiB,EAAS,eACT,OAEJ,IAAMC,EAAiBD,EAAS,kBAAoBA,EAAS,iBAAmB,EAC5EE,EAAWC,EAEf,QAASC,EAAI,EAAGA,EAAIR,EAAK,OAAQQ,IAC7B,GAAIJ,EAASJ,EAAKQ,CAAC,CAAC,EAAG,CACnBD,EAAMP,EAAKQ,CAAC,EACZF,EAAYF,EAASG,CAAG,EACxB,MAIR,GAAID,EAAW,CAEX,IAAMG,EAAWxB,GAASC,CAAE,EACtBwB,EAAWJ,IAAc,OACzBG,EACAA,EAAW,aAAeH,EAQ5BK,GAAU,WANE,IAAM,CAClBvB,GAASF,EAAIwB,EAAS,QAAQ,0BAA2B,EAAE,CAAC,EAC5DV,EAAK,QAAQO,IAAO,OAAOH,EAASG,EAAG,CAAC,EACxCrB,EAAGI,CAAY,EAAE,gBAAiB,KAAK,UAAUc,CAAQ,CAAC,CAC9D,EAEkCC,CAAc,EAEhDO,EAAW,GAAG,KAAM,IAAM,CACtB,aAAaD,EAAO,EACpBvB,GAASF,EAAID,GAASC,CAAE,EAAE,QAAQ,IAAI,OAAO,MAAQoB,EAAY,KAAK,EAAG,EAAE,CAAC,CAChF,CAAC,EAGT,OAASO,EAAP,CACE,QAAQ,MAAMA,CAAC,CACnB,CAER,CAAC,CACL,CAAC,CACL,ECjEA,IAAMC,GAAS,0BAERC,GAAQ,IAAM,CAEjB,IAAMC,EAAMC,EAAEC,EAAa,EAAE,KAAK,EAClCF,EAAI,UAAY,mFAChB,IAAMG,EAAcH,EAAI,WAElBI,EAAUC,GAAM,CAClB,IAAMC,EAAS,CAAC,EAChB,KAAOD,EAAKA,EAAG,wBACXC,EAAO,KAAKD,CAAE,EAClB,OAAOC,CACX,EAEAL,EAAEM,CAAgB,EAAEC,EAAK,UAAY,CACjC,MAAM,KAAKP,EAAEQ,CAAgB,EAAE,sBAAsB,CAAC,EAAE,QAAQC,GAAM,CAElE,GAAIA,EAAGC,CAAY,EAAEb,EAAM,EACvB,QACQY,EAAGC,CAAY,EAAE,OAAO,GAAK,IAAI,MAAM,eAAe,GAC9DD,EAAGD,CAAgB,EAAE,IAAI,EAAE,QAAQC,GAAM,CACrCA,EAAGE,CAAY,EAAEd,GAAQ,EAAI,CACjC,CAAC,EAEL,IAAIe,EAAOT,EAAQM,CAAE,EACjB,EAAIG,EAAK,OAAOR,GAAMA,CAAE,EAAE,OAAOA,GAAMA,EAAGS,CAAO,IAAM,GAAG,EAAE,IAAI,EAIpE,GAHK,IACD,EAAID,EAAK,IAAIR,GAAM,MAAM,KAAKA,EAAGI,CAAgB,EAAE,GAAG,CAAC,CAAC,EAAE,OAAOJ,GAAMA,CAAE,EAAE,KAAK,EAAE,IAAI,GAEtF,EAAG,CACH,IAAMU,EAAOZ,EAAY,UAAU,EAAI,EACvC,EAAEa,CAAW,EAAED,CAAI,EAEF,IAAI,iBAAiBE,GAAa,CAC/CA,EAAU,QAAQ,CAAC,CAAE,WAAAC,CAAW,IAAM,CAClCA,EAAW,QAAQC,GAAQ,CAEvB,GAAIA,EAAK,WAAa,GAAgBA,EAAKL,CAAO,IAAvB,OACvB,GAAI,CACA,EAAEM,CAAW,EAAEL,CAAI,CACvB,MAAE,CAEF,CAER,CAAC,CACL,CAAC,CACL,CAAC,EACQ,QAAQ,EAAG,CAAE,UAAW,EAAK,CAAC,EAE/C,CAAC,CACL,CAAC,CACL,ECxBA,IAAMM,EAAM,mBACRC,EAAI,UADR,IAGIC,EAAI,SACJC,EAAS,iBACTC,EAAwB,OAAO,eAC/BC,GAA0B,OAAO,iBACjCC,EAAoB,qBACpBC,GAAqB,iDACrBC,GAAO,wBACPC,GAAO,sBACPC,GAAc,aACdC,GAAY,YAEVC,EAAoBC,EAAE,YAAY,KAAO,KACzCC,GAAsBC,EAAE,YAAY,KAAO,KAE3CC,GAAU,SAAUC,EAAUC,EAAS,CACzCA,EAAUA,GAAWL,EACrB,QAASM,EAAI,EAAGA,EAAI,KAAK,OAAQA,IAC7BF,EAAS,KAAKC,EAAS,KAAKC,CAAC,EAAGA,EAAG,IAAI,CAE/C,EAEI,aAAcN,GAAK,CAAC,SAASO,CAAS,EAAE,UAExC,SAASA,CAAS,EAAE,QAAUJ,IAE9B,mBAAoBH,GAAK,CAAC,eAAeO,CAAS,EAAE,UAEpD,eAAeA,CAAS,EAAE,QAAUJ,IAIhC,UAAU,sBAAsB,GAChCK,GAAoB,EAGpB,UAAU,cAAc,GACxBC,GAAY,EAIpB,IAAMC,GAAU,CAAC,EACXC,GAAQ,CAAC,EACTC,EAAQ,CAAC,EAEXC,GAAO,GACLC,EAAa,CAAC,EAChBC,EAAY,CAAC,EACbC,GAAe,GACfC,GAAmB,EAEnBC,EAAMhB,EAAE,kBAAoB,UAAYF,EAAEL,EAAI,EAAIK,EAAEH,EAAW,EAC/DsB,GAAMnB,EAAEJ,EAAI,GAAKsB,EACrBhB,EAAEkB,CAAgB,EAAE,mBAAoB,IAAM,CAC1CF,EAAMhB,EAAE,kBAAoB,UAAYF,EAAEL,EAAI,EAAIK,EAAEH,EAAW,EAC/DsB,GAAMnB,EAAEJ,EAAI,GAAKsB,CACrB,CAAC,EAED,IAAMG,EAAWrB,EAAEH,EAAW,EAE1ByB,GACEC,EAAqB,CAAC,MAAO,MAAM,EAGnCC,EAAI,OACNC,GAAgB,gBAEpBD,EAAEC,GAAgB,GAAG,EAAI,CAACC,EAAQC,EAAUC,IAAY,CACpD,GAAIF,IAAW1B,GAAM,CAAC,SAAU,QAAQ,EAAE,QAAQ2B,CAAQ,GAAK,IACvDD,IAAWxB,GAAKwB,IAAWxB,EAAE,OAAS,CAAC,aAAc,QAAS,UAAW,KAAO2B,CAAG,EAAE,QAAQF,CAAQ,GAAK,EAC9G,MAAI,CAAC,KAAOE,EAAK,KAAOC,CAAC,EAAE,QAAQH,CAAQ,GAAKC,EAAQ,MACpDb,EAAU,KAAOc,CAAG,EAAId,EAAU,KAAOc,CAAG,GAAK,CAAC,EAClDd,EAAU,KAAOc,CAAG,EAAE,KAAKD,EAAQ,GAAG,GAKnCF,EACJ,GAAKA,aAAkB,mBAAsBH,EAAmB,QAAQI,CAAQ,GAAK,EAAG,CAE3F,GAAI,CAACD,EAAOC,EAAW,OAAO,EAAG,CAC7B,IAAMI,EAAaP,EAAEQ,EAAwB,EAAEN,EAAQC,CAAQ,EAC/DpC,EAAsBmC,EAAQC,EAAU,CACpC,IAAIM,EAAO,CACP,OAAIP,EAAOC,EAAW,OAAO,EAClBD,EAAOC,EAAW,OAAO,EAAE,KAAKD,EAAQO,CAAK,EAEjDF,EAAW,IAAI,KAAKL,EAAQO,CAAK,CAC5C,EACA,KAAM,CACF,OAAIP,EAAOC,EAAW,OAAO,EAClBD,EAAOC,EAAW,OAAO,EAAE,KAAKD,CAAM,EAE1CK,EAAW,IAAI,KAAKL,CAAM,CACrC,CACJ,CAAC,EACDA,EAAOC,EAAW,OAAO,EAAI,GAGjC,OAAIC,EAAQ,MACRF,EAAOC,EAAW,OAAO,EAAIC,EAAQ,KAGrCA,EAAQ,MACRF,EAAOC,EAAW,OAAO,EAAIC,EAAQ,KAGlCF,EAGX,OAAOnC,EAAsBmC,EAAQC,EAAUC,CAAO,CAC1D,EAEAJ,EAAEC,GAAgB,KAAK,EAAI,CAACC,EAAQQ,IAAe,CAE/C,QAAS5B,KAAK4B,EACVV,EAAEC,GAAgB,GAAG,EAAEC,EAAQpB,EAAG4B,EAAW5B,CAAC,CAAC,EAKnD,QAAS6B,KAAOX,EAAE,sBAAsBU,CAAU,EAC9CV,EAAEC,GAAgB,GAAG,EAAEC,EAAQS,EAAKD,EAAWC,CAAG,CAAC,EAEvD,OAAOT,CACX,EAsBA,IAAMU,GAAuB,YAAY7B,CAAS,EAAEa,CAAgB,EAC9DiB,GAA0B,YAAY9B,CAAS,EAAE+B,EAAmB,EACpEC,GAAwBH,GAAqB,KAAKlC,CAAC,EACnDsC,GAA2BH,GAAwB,KAAKnC,CAAC,EACzDuC,EAAwBL,GAAqB,KAAKpC,CAAC,EACnD0C,GAA2BL,GAAwB,KAAKrC,CAAC,EACzD2C,GAAoB,SAASpC,CAAS,EAAE,cACxCqC,GAAqBD,GAAkB,KAAKzC,CAAC,EAC7C2C,GAAuB3C,EAAE,UAAU4C,CAAgB,EAAE,YAAY,EAAE,KAAK5C,CAAC,EAE3E6C,GAAa,UACjBxD,EAAsBW,EAAG,aAAc,CACnC,KAAM,CAAE,OAAO6C,EAAY,EAC3B,IAAId,EAAO,CAAE,OAAOc,GAAad,CAAO,CAC5C,CAAC,EAED,IAAMe,GAAuBC,GAClBnC,EAAW,OAAO,CAAC,CAACoC,EAAO,CAAEC,CAAO,EAAGC,IAAM,CAChD,GAAI,EAAAH,EAAW,QAAQC,EAAM,IAAI,EAAI,GAGrC,CAAKC,IACDA,EAAUD,EAAM,QAEpB,GAAI,CACA,IAAMG,EAAOF,EAAQ,YAAY,KAAO,KAAOD,EAAM,KACrD,QAAS5C,EAAI,EAAGA,EAAIS,EAAUsC,CAAI,EAAE,OAAQ/C,IACxC,GAAIS,EAAUsC,CAAI,EAAE/C,CAAC,EAAG,CACpB,IAAMgD,EAAcD,EAAO,KAAOD,EAAI,KAAO9C,EAC7C,GAAI,CAACiD,GAAeD,CAAW,EAC3B,MAAO,GAIvB,MAAE,CAEF,EACJ,CAAC,EAAE,OAGHE,GACED,GAAiB,CAAC,EAClBE,GAAoBR,GAAe,CACrCnC,EAAW,QAAQ,CAAC,CAACoC,EAAOH,EAAYI,CAAO,EAAGC,IAAM,CACpD,GAAI,EAAAH,EAAW,QAAQC,EAAM,IAAI,EAAI,GAGrC,CAAKC,IACDA,EAAUD,EAAM,QAEpB,GAAI,CACA,IAAMG,EAAOF,EAAQ,YAAY,KAAO,KAAOD,EAAM,KACrD,IAAKnC,EAAUsC,CAAI,GAAK,CAAC,GAAG,OAGxB,QAAS/C,EAAI,EAAGA,EAAIS,EAAUsC,CAAI,EAAE,OAAQ/C,IAAK,CAC7C,IAAMoD,EAAO3C,EAAUsC,CAAI,EAAE/C,CAAC,EAC9B,GAAIoD,EAAM,CAMN,IAAMJ,EAAcD,EAAO,KAAOD,EAAI,KAAO9C,EAC7C,GAAI,CAACiD,GAAeD,CAAW,EAAG,CAC9BC,GAAeD,CAAW,EAAI,GAC9BpD,EAAE,WAAa6C,EACfS,GAAsBH,EACtB,GAAI,CACApC,KAEI,CAACyC,EAAKnD,CAAS,GAAKmD,EAAKnD,CAAS,EAAE,cAAgBmD,EACpDA,EAAK,KAAKP,CAAO,EAAED,CAAK,EAExBQ,EAAKR,CAAK,CAElB,OAASS,EAAP,CACEC,EAAGD,EAAGD,CAAI,CACd,CACAF,GAAsB,OAK1C,OAASG,EAAP,CACEC,EAAGD,CAAC,CACR,EACJ,CAAC,CACL,EAMApB,GAAsBsB,EAAM,GAAM,CAE9B/C,EAAW,KAAK,CAAC,IAAI,EAAE,YAAY+C,EAAK,CAAC,EAAGhB,GAAqB,EAAG3C,CAAC,CAAC,CAC1E,CAAC,EACDqC,GAAsBV,EAAM,GAAM,CAE9Bf,EAAW,KAAK,CAAC,IAAI,EAAE,YAAYe,EAAK,CAAC,EAAGgB,GAAqB,EAAG3C,CAAC,CAAC,CAC1E,CAAC,EACDuC,EAAsBoB,EAAM,GAAM,CAE9B/C,EAAW,KAAK,CAAC,IAAI,EAAE,YAAY+C,EAAK,CAAC,EAAGhB,GAAqB,EAAG7C,CAAC,CAAC,CAC1E,CAAC,EACDyC,EAAsBX,EAAI,GAAM,CAC5Bd,GAAe,GAEfF,EAAW,KAAK,CAAC,IAAI,EAAE,YAAYgB,EAAG,CAAC,EAAGe,GAAqB,EAAG7C,CAAC,CAAC,EAK/D8D,GACDL,GAAiB,CAACI,EAAKhC,EAAKkC,EAAGjC,CAAC,CAAC,CAEzC,CAAC,EACD,IAAMkC,GAAmB,GAAM,CAE3BlD,EAAW,KAAK,CAAC,EAAGZ,EAAE,WAAYF,CAAC,CAAC,CACxC,EAEMiE,GAA4BjE,EAAE8C,CAAgB,EAAE,WAAW,EAC3DoB,GAA4BlE,EAAEmE,EAAgB,EAAE,WAAW,EAG3DC,GAAyB,IAAM,CAEjC1B,GAAyBqB,EAAGC,EAAe,GAE1CjD,EAAUhB,EAAoB,SAAS,GAAK,CAAC,GAAG,QAAQsE,GAAY,CACjE5B,EAAsBsB,EAAGM,CAAQ,CACrC,CAAC,EACD9E,EAAsBS,EAAG,YAAa,CAClC,IAAKiE,GACL,IAAKC,EACT,CAAC,CAEL,EAEAzB,EAAsBsB,EAAGC,EAAe,EAIxC,IAAMM,GAAS,IAAIC,EACnBD,GAAO,KAAK,EAMZ,IAAME,GAAiB,IAAM,CACrB,CAACV,GAAa,CAACjD,KACfiD,EAAY,GAEZ5D,EAAE,WAAa,UACfgB,EAAIuD,EAA2B,EAC/BvD,EAAIwD,CAAO,GAQV1D,IACDyB,EAAsBX,EAAG,IAAM,CAE3B0C,GAAe,CACnB,CAAC,CAET,EAMmB/B,EAAsBkC,GAAyB,IAAM,CAEpEH,GAAe,CACnB,CAAC,EAGDI,EAAW,GAAGC,GAAqB,IAAM,CAErCL,GAAe,CACnB,CAAC,EAGO,UAAU,QAAU,GACpBM,GAAkB,QAAQ,EAOlC,IAAIC,GAAgB,CAAC,EAAE,EACjBC,GAAgB9B,GAAU,CAE5B6B,GAAgBA,GAAc,OAAOE,GAAUA,IAAW/B,EAAM,MAAM,EACjE6B,GAAc,QAEf1D,EAASuD,EAAW,KAAK,KAAKA,EAAYM,CAAa,CAAC,CAEhE,EAGA,IAAIC,EAAY,GAIVC,EAAU,IAAM,CAElB,IAAMC,EAAUC,GAAQ,MAAM,EAC9B,GAAID,EAEIA,EAAQE,CAAY,EAAEC,EAAS,KAAK,EAChCH,EAAQI,CAAY,EAAE,OAAO,GAAKJ,EAAQK,EAAS,GAC/CL,EAAQ,cAGRM,GAAc,KAAKN,CAAO,EAK1B,WAAWO,GAAc,IAAM,CAAE,OAAQP,CAAQ,CAAC,GAItDQ,GAAQR,EAASO,EAAY,EAC7BE,EAASV,CAAO,GAGhBS,GAAQR,EAASS,EAAS,KAAK,KAAMV,CAAO,CAAC,GAG1CC,EAAQ,UAAYU,GAC3BF,GAAQR,CAAO,EAEfS,EAASV,CAAO,WAWhBY,GAAM,OAKNV,GAAQ,KAAK,GAAGU,EAAK,EACrBA,GAAM,OAAS,EAGfF,EAASV,CAAO,UAOTa,GAAoB,CAACC,EAAKC,EAAKC,CAAC,CAAC,EAExCC,GAAiB,CAACH,EAAKC,EAAKC,CAAC,CAAC,EAC9BN,EAASV,CAAO,UACTkB,GAEP,GAAIL,GAAoB,CAACM,EAAGH,CAAC,CAAC,EAC1BC,GAAiB,CAACE,EAAGH,CAAC,CAAC,EACvBN,EAASV,CAAO,UACTO,GAAc,OAAS,EAG9Ba,GAAIpB,CAAO,UACJqB,EAAM,OAMbnB,GAAQ,KAAK,GAAGmB,CAAK,EACrBA,EAAM,OAAS,EAGfX,EAASV,CAAO,MACb,CAEH,GAAIsB,EAAE,sBACF,GAAI,CACA,sBAAsB,IAAI,CAC9B,OAASC,EAAP,CACEC,EAAGD,CAAC,CACR,CAEJE,EAAE,WAAa,WAIfC,GAAuB,EAIvBC,GAAO,OAAO,EAcd5B,EAAY,GACZ6B,GAAO,GAGPN,EAAEO,EAAW,EAAE,IAAMrB,GAAa,CAAE,OAAQ,EAAG,CAAC,CAAC,OAIrDT,EAAY,EAGxB,EAEM+B,GAAeC,GAAO,CAExB,IAAMC,EAAaC,GAAmBC,CAAC,EAEjCC,EAAQJ,EAAG,WAIjB,QAASK,EAAID,EAAM,OAAS,EAAGC,GAAK,EAAGA,IAC9BD,EAAMC,CAAC,EAAE,KAAK,WAAWhC,CAAM,GAChC4B,EAAWK,CAAY,EAAEF,EAAMC,CAAC,EAAE,KAAMD,EAAMC,CAAC,EAAE,KAAK,EAI9D,IAAME,EAAOP,EAAG5B,CAAY,EAAEC,EAAS,MAAM,EACzCkC,EACAN,EAAW,KAAOM,EAElBN,EAAW,KAAO,mBAIjBD,EAAG,aAAe,IAAI,MAAM,iCAAiC,EAC9DC,EAAW,YAAcD,EAAG,YAAY,QAAQ,oCAAqC,oCAAoC,EAAE,QAAQ,+BAAgC,EAAE,EAErKC,EAAW,YAAcD,EAAG,YAIhC,QAAWQ,IAAY,CAAC,SAAU,UAAW,oBAAoB,EACzDR,EAAGQ,CAAQ,IAEXP,EAAWO,CAAQ,EAAIR,EAAGQ,CAAQ,GAI1C,OAAOP,CACX,EAkCMvB,GAAU,CAACsB,EAAIS,IAAa,CAE9B,IAAIC,EAAMV,EAAG5B,CAAY,EAAEC,EAAS,KAAK,EAIzC,GAAIqC,EAAK,CAGL,IAAMC,EAAmBC,GAAqB,KAAKZ,CAAE,EASjDA,EAAG,aAAeS,IAClBE,EAAiBvB,EAAGqB,CAAQ,EAC5BE,EAAiBE,GAAGJ,CAAQ,GAUhCT,EAAG,SAAWA,EAAG5B,CAAY,EAAEC,EAAS,MAAM,GAAK,kBAEnD2B,EAAG,QAAUU,GAYR,CAACV,EAAG,aAAeA,EAAG1B,CAAY,EAAE,UAAU,GAAM0B,EAAG,MAAQ,CAACc,GAAmB,KAAKd,EAAG,IAAI,IAAOS,GAGvGA,EAAS,IAAI,MAAMrB,EAAG,CAAE,OAAQY,CAAG,CAAC,CAAC,OAElCA,EAAG,WAAapB,GAGvBoB,EAAG,SAAWA,EAAG5B,CAAY,EAAEC,EAAS,MAAM,GAAK,kBAGnD2B,EAAGe,CAAe,EAAE,WAAW,EAC/Bf,EAAG,YAAcA,EAAG,YAAc;AAAA,GAI9BS,GACAA,EAAS,IAAI,MAAMrB,EAAG,CAAE,OAAQY,CAAG,CAAC,CAAC,CAGjD,EAEMgB,GAA4B,CAACC,EAAMC,IAAS,CAC9C,IAAMC,GAAOC,EAAUH,CAAI,GAAK,CAAC,GAAG,QAAQC,CAAI,EAChD,GAAIC,GAAO,EACP,OAAAC,EAAUH,CAAI,EAAEE,CAAG,EAAI,OAChB,EAEf,EAEME,GAA2B,CAACC,EAAOJ,KAASK,IAAS,CACvD,GAAI,iBAAmBxC,GAAOyC,IAAuBF,IAAUvC,GAAO,CAACmC,EAAK,SAAS,EAAE,MAAM,YAAY,EAAG,CACxGO,EAAW,GAAGC,EAAehC,EAAEiB,CAAgB,EAAE,KAAKjB,EAAG4B,EAAOJ,EAAM,GAAGK,CAAI,CAAC,EAC9E,OAEJ,GAAIL,IAASI,IAAUvC,GAAOuC,IAAUtC,GAAM,CAE1C,IAAMiC,EAAOU,GAAsBL,EACnCF,EAAUH,CAAI,EAAIG,EAAUH,CAAI,GAAK,CAAC,EACtCG,EAAUH,CAAI,EAAE,KAAKC,CAAI,EACrBrB,IACAX,GAAiB,CAACoC,CAAK,CAAC,EAE5B,OAEJ,OAAOM,GAAsBN,EAAOJ,EAAM,GAAGK,CAAI,CACrD,EAGMM,GAA8B,CAACP,EAAOJ,KAASK,IAAS,CAC1D,GAAID,IAAUvC,EAAK,CACf,IAAMkC,EAAOU,GAAsBL,EACnCN,GAA0BC,EAAMC,CAAI,EAExC,OAAOY,GAAyBR,EAAOJ,EAAM,GAAGK,CAAI,CACxD,EAKAQ,GAAwBrC,EAAG,CACvB,CAACiB,CAAgB,EAAG,CAChB,KAAM,CAAE,OAAOU,EAA0B,EACzC,KAAM,CAAE,OAAOA,EAA0B,CAC7C,EACA,CAACW,EAAmB,EAAG,CACnB,KAAM,CAAE,OAAOH,EAA6B,EAC5C,KAAM,CAAE,OAAOA,EAA6B,CAChD,CACJ,CAAC,EAED,IAAII,GAAiCvC,EAAE,uBAAuB,EACxDwC,GAA8B,IAAM,CAClCD,GAA+B,cAAc,IAC7CvC,EAAE,KAAKyC,CAAW,EAAEF,EAA8B,EAClDA,GAAiCvC,EAAE,uBAAuB,EAElE,EACM0C,GAAyE,CAAC,EAC1EC,GAAc3B,GAAQ,CACxB,GAAKA,EAEL,GAAI,CACA,IAAM4B,EAAM,IAAI,IAAI5B,EAAKhB,EAAE,SAAS,IAAI,EAClC6C,EAAOD,EAAI,OACjB,GAAIC,GAAQ,CAACH,GAAYG,CAAI,GAAK7C,EAAE,SAAS,OAAS4C,EAAI,KAAM,CAC5D,IAAME,EAAItC,GAAmB,MAAM,EACnCsC,EAAE,IAAM,aACRA,EAAE,KAAOD,EACTN,GAA+BE,CAAW,EAAEK,CAAC,EAE7CJ,GAAYG,CAAI,EAAI,GAChBvE,GACAyE,EAAIP,EAA2B,EAG3C,MAAE,CAEF,CACJ,EAEMQ,GAAW,CAAC,EACZC,GAAkB,CAACjC,EAAKkC,EAAUC,EAAaC,IAAc,CAC/D,IAAMN,EAAItC,GAAmB,MAAM,EACnCsC,EAAE,IAAMI,EACF,YAAcxD,EACd,MAAQA,EACdoD,EAAE,GAAK,SACHK,GACAL,EAAElC,CAAY,EAAE,cAAeuC,CAAW,EAC1CC,GACAN,EAAElC,CAAY,EAAE,YAAawC,CAAS,EAC1C,GAAI,CACApC,EAAM,IAAI,IAAIA,EAAKhB,EAAE,SAAS,IAAI,EAAE,IACxC,MAAE,CAAQ,CACV8C,EAAE,KAAO9B,EACTuB,GAA+BE,CAAW,EAAEK,CAAC,EAC7CE,GAAShC,CAAG,EAAI,GACZ1C,GACAyE,EAAIP,EAA2B,CAEvC,EAwDMa,GAAgB,YAAaxB,EAAM,CAErC,IAAMyB,EAAY9C,GAAmB,GAAGqB,CAAI,EAI5C,GAAI,CAACA,GAAQA,EAAK,CAAC,EAAE,YAAY,IAAMpB,GAAK,CAACnC,EACzC,OAAOgF,EAMX,IAAMC,EAAuBD,EAAU1C,CAAY,EAAE,KAAK0C,CAAS,EAC7DE,EAAuBF,EAAU5E,CAAY,EAAE,KAAK4E,CAAS,EAC7DG,EAAuBH,EAAU1E,CAAY,EAAE,KAAK0E,CAAS,EAC7DI,EAAqBJ,EAAUK,CAAgB,EAAE,YAAY,EAAE,KAAKL,CAAS,EAYnF,OAAAM,EAAmB,QAAQ9C,GAAY,CACnC,IAAM+C,EAA0BP,EAAUK,CAAgB,EAAE7C,CAAQ,EAAE,KAAKwC,CAAS,EAC9EQ,EAA0BR,EAAUS,EAAgB,EAAEjD,CAAQ,EAAE,KAAKwC,CAAS,EACpFU,EAAEC,GAAgB,GAAG,EAAEX,EAAWxC,EAAU,CACxC,IAAIoD,EAAO,CAGP,OAAIpD,IAAa,QAAUoD,GAAS,CAAC9C,GAAmB,KAAK8C,CAAK,EACvDZ,EAAU1C,CAAY,EAAEE,EAAUoD,CAAK,IAE9CpD,IAAa,OAASoD,GAEfpD,IAAa,QAAUoD,GAASZ,EAAU,UACjDC,EAAqB,OAAQrE,CAAiB,EAE3CgF,EACDZ,EAAU1C,CAAY,EAAEjC,EAASmC,EAAUoD,CAAK,EAChDZ,EAAUjC,CAAe,EAAE1C,EAASmC,CAAQ,EACtD,EACA,KAAM,CACF,IAAMqD,EAASb,EAAU5E,CAAY,EAAEC,EAASmC,CAAQ,EACxD,GAAIA,IAAa,MAEb,GAAI,CAEA,OADY,IAAI,IAAIqD,EAAQnE,EAAE,SAAS,IAAI,EAChC,IACf,MAAE,CAEF,CAEJ,OAAOmE,CACX,CACJ,CAAC,EACDC,EAAsBd,EAAW,OAASxC,EAAU,CAChD,IAAIoD,EAAO,CACP,OAAOJ,EAAwBI,CAAK,CACxC,EACA,KAAM,CACF,OAAOL,EAAwB,CACnC,CACJ,CAAC,CAEL,CAAC,EAUDP,EAAU1C,CAAY,EAAI,SAAUE,EAAUoD,EAAO,CACjD,GAAIN,EAAmB,SAAS9C,CAAQ,EAGpC,OAAIA,IAAa,QAAUoD,GAAS,CAAC9C,GAAmB,KAAK8C,CAAK,EACvDX,EAAqBzC,EAAUoD,CAAK,IAE3CpD,IAAa,OAASoD,GAEfpD,IAAa,QAAUoD,GAASZ,EAAU,UACjDC,EAAqB,OAAQrE,CAAiB,EAE3CgF,EACDX,EAAqB5E,EAASmC,EAAUoD,CAAK,EAC7CZ,EAAUjC,CAAe,EAAE1C,EAASmC,CAAQ,GAElDyC,EAAqBzC,EAAUoD,CAAK,CAE5C,EAEAZ,EAAU5E,CAAY,EAAI,SAAUoC,EAAU,CAC1C,IAAMqD,EAASP,EAAmB,QAAQ9C,CAAQ,GAAK,EACjD0C,EAAqB7E,EAASmC,CAAQ,EACtC0C,EAAqB1C,CAAQ,EACnC,GAAIA,IAAa,MAEb,GAAI,CAEA,OADY,IAAI,IAAIqD,EAAQnE,EAAE,SAAS,IAAI,EAChC,IACf,MAAE,CAEF,CAEJ,OAAOmE,CACX,EAEAb,EAAU1E,CAAY,EAAI,SAAUkC,EAAU,CAC1C,OAAO8C,EAAmB,QAAQ9C,CAAQ,GAAK,EACzC2C,EAAqB9E,EAASmC,CAAQ,EACtC2C,EAAqB3C,CAAQ,CACvC,EAGAsD,EAAsBd,EAAW,aAAc,CAC3C,KAAM,CAWF,MAVa,CAAC,GAAGI,EAAmB,CAAC,EAChC,OAAOW,GAAQA,EAAK,OAAS,MAAM,EACnC,IAAIA,IACM,CACH,KAAMA,EAAK,KAAK,MAAM,IAAI,OAAO1F,CAAM,CAAC,EAClC0F,EAAK,KAAK,QAAQ1F,EAAQ,EAAE,EAC5B0F,EAAK,KACX,MAAOA,EAAK,KAChB,EACH,CAET,CACJ,CAAC,EAGDf,EAAUzE,EAAS,EAAI,GAEhByE,CACX,EAIA,OAAO,eAAe,SAASgB,CAAS,EAAG,gBAAiB,CACxD,IAAIJ,EAAO,CAUHA,IAAUb,KACVkB,GAAwBL,EAEhC,EACA,KAAM,CACF,OAAOK,IAAyBlB,EACpC,CACJ,CAAC,EAED,IAAMmB,GAAc,IAAI,IAClBC,GAAW,IAAI,iBAAiBC,GAAa,CAC/CA,EAAU,QAAQ,CAAC,CAAE,aAAAC,EAAc,WAAAC,EAAY,OAAAC,CAAO,IAAM,CAMxDF,EAAa,QAAQG,GAAQ,CAErBA,EAAK,WAAa,GAAKrE,IAAMqE,EAAKC,CAAO,GAAK,aAAcD,GAC5DN,GAAY,OAAOM,CAAI,CAE/B,CAAC,EACDF,EAAW,QAAQE,GAAQ,CAEvB,GAAIA,EAAK,WAAa,EAClB,GAAIrE,IAAMqE,EAAKC,CAAO,EAAG,CAErB,GAAI,aAAcD,GAEd,GAAIA,EAAK,WAAa5F,EAElB,eAEG4F,EAAKpG,CAAY,EAAE,MAAM,IAAMQ,EAEtC,OAGE,aAAc4F,GAIhBlB,EAAmB,QAAQ9C,GAAY,CACnC,IAAM+C,EAA0BiB,EAAKnB,CAAgB,EAAE7C,CAAQ,EAAE,KAAKgE,CAAI,EACpEhB,EAA0BgB,EAAKf,EAAgB,EAAEjD,CAAQ,EAAE,KAAKgE,CAAI,EAC1EV,EAAsBU,EAAM,OAAShE,EAAU,CAC3C,IAAIoD,EAAO,CACP,OAAOJ,EAAwBI,CAAK,CACxC,EACA,KAAM,CACF,OAAOL,EAAwB,CACnC,CACJ,CAAC,CACL,CAAC,EAML,IAAM7C,EAAM8D,EAAKpG,CAAY,EAAEC,EAAS,KAAK,EAM7C,GAJI6F,GAAY,IAAIM,CAAI,GACpB/E,EAAG,iBAAkB+E,CAAI,EAGzBA,EAAK,WAAY,CACjBN,GAAY,IAAIM,CAAI,EACpB,IAAME,EAAWF,EAAKpG,CAAY,EAAEC,EAAS,MAAM,GAC9CqC,GAAO,IAAI,MAAM,YAAY,GAIvB8D,EAAKlG,CAAY,EAAE,OAAO,GAAKkG,EAAKjG,EAAS,GAFpDe,EAAM,KAAKkF,CAAI,EACfnC,GAAW3B,CAAG,GAYP8D,EAAKlG,CAAY,EAAE,OAAO,GAAKoG,IAAa,UAEnD7F,GAAM,KAAK2F,CAAI,EACfnC,GAAW3B,CAAG,IAEVA,GAAO,CAAC8D,EAAKlG,CAAY,EAAE,UAAU,GAAK,CAACoE,GAAShC,CAAG,GAGvDiC,GAAgBjC,EAAKgE,IAAa,SAAUF,EAAKlG,CAAY,EAAE,aAAa,GAAKkG,EAAKpG,CAAY,EAAE,aAAa,EAAGoG,EAAKpG,CAAY,EAAE,WAAW,CAAC,EAEvJD,GAAQ,KAAKqG,CAAI,QAMrBA,EAAK7D,CAAgB,EAAEvB,EAAGI,GAAKA,EAAE,OAAO,WAAWmF,CAAW,EAAEnF,EAAE,MAAM,CAAC,EACzEgF,EAAK7D,CAAgB,EAAEE,GAAGrB,GAAKA,EAAE,OAAO,WAAWmF,CAAW,EAAEnF,EAAE,MAAM,CAAC,EACzE+E,EAAOpC,CAAW,EAAEqC,CAAI,OAIVA,EAAKC,CAAO,IAAvB,QAA4BD,EAAKpG,CAAY,EAAE,IAAI,IAAM,WAChEsE,GAAS8B,EAAKpG,CAAY,EAAE,MAAM,CAAC,EAAI,GAGnD,CAAC,CACL,CAAC,CACL,CAAC,EAEKwG,GAA0B,CAC5B,UAAW,GACX,QAAS,EAIb,EAEAT,GAAS,QAAQzE,EAAE,gBAAiBkF,EAAuB,EAE3D,IAAMC,GAAmB,YAAYb,CAAS,EAAE,aAChD,YAAYA,CAAS,EAAE,aAAe,SAAUc,EAAS,CACrD,IAAMC,EAAaF,GAAiB,KAAK,KAAMC,CAAO,EACtD,OAAIA,EAAQ,OAAS,QACjBX,GAAS,QAAQY,EAAYH,EAAuB,EAEjDG,CACX,GAEoB,IAAM,CACtB,IAAMC,EAAgBtB,EAAEuB,EAAwB,EAAE,kBAAkBjB,CAAS,EAAG,KAAK,EACrFF,EAAsB,kBAAkBE,CAAS,EAAG,MAAO,CACvD,KAAM,CACF,OAAI,KAAK,QAAQ,OACN,KAAK,QAAQ,OAEjBgB,EAAc,IAAI,KAAK,IAAI,CACtC,EACA,IAAIpB,EAAO,CACP,OAAO,KAAK,QAAQ,OACpBoB,EAAc,IAAI,KAAK,KAAMpB,CAAK,CACtC,CACJ,CAAC,CACL,GAAG,EAGHnC,EAAW,GAAGC,EAAe,IAAM,EAE3B,CAACuC,IAAyBA,KAA0BlB,MACpD,SAASiB,CAAS,EAAE,cAAgBkB,GACpCf,GAAS,WAAW,GAML,cAAc,IAAI,YAAYgB,EAA4B,CAAC,EAC9E,cAAc,IAAI,YAAYzD,CAAa,CAAC,CAChD,CAAC,EAID,IAAI0D,GAAiBC,GAAQ,CACzB,IAAIC,EAAQC,EACR,CAAC7F,EAAE,eAAiB,CAACA,EAAE,cAAc,YAErC4F,EAAS5F,EAAE,KACX6F,EAAgBD,EAAO,YAEvBC,EAAgB7F,EAAE,cAClB4F,EAASC,EAAc,YAE3B,GAAI,CACA,IAAMC,EAAKtF,GAAmB,KAAK,EACnCsF,EAAG,UAAYH,EACf,MAAM,KAAKG,EAAG,UAAU,EAAE,QAAQhB,GAAQ,CAClCA,EAAK,WAAarE,EAElBmF,EAAO,aAAavF,GAAYyE,CAAI,EAAGe,CAAa,EAEpDD,EAAO,aAAad,EAAMe,CAAa,CAE/C,CAAC,CACL,OAAS/F,EAAP,CACEC,EAAGD,CAAC,CACR,CACJ,EACIiG,GAAmBJ,GAAQD,GAAcC,EAAM;AAAA,CAAI,EAEvDtD,GAAwBrC,EAAG,CACvB,MAAS,CACL,KAAM,CAAE,OAAO0F,EAAe,EAC9B,IAAIlE,EAAM,CAAE,OAAOkE,GAAgBlE,CAAM,CAC7C,EACA,QAAW,CACP,KAAM,CAAE,OAAOuE,EAAiB,EAChC,IAAIvE,EAAM,CAAE,OAAOuE,GAAkBvE,CAAM,CAC/C,CACJ,CAAC,EAGD,IAAIwE,GAAyB,CAACpE,EAAOJ,KAASK,IAAS,CAKnD,GAAIoE,EAAoB5G,GAAOyC,IAAuBF,IAAUvC,GAAO,CAACmC,EAAK,SAAS,EAAE,MAAM,YAAY,EAAG,CACzGO,EAAW,GAAGC,EAAenC,EAAEoB,CAAgB,EAAE,KAAKpB,EAAG+B,EAAOJ,EAAM,GAAGK,CAAI,CAAC,EAC9E,OAEJ,GAAIoE,EAAoBvG,GAAKoC,IAAuBF,IAAUlC,EAAG,CAC7DqC,EAAW,GAAGC,EAAenC,EAAEoB,CAAgB,EAAE,KAAKpB,EAAG+B,EAAOJ,EAAM,GAAGK,CAAI,CAAC,EAC9E,OAEJ,GAAIL,IAASI,IAAUlC,GAAKkC,IAAUvC,GAAQuC,IAAUrC,GAAK,CAACY,IAAQ,CAElE,IAAMoB,EAAOK,IAAUvC,EAAM4C,GAAsBL,EAAQqE,EAAoBrE,EAC/EF,EAAUH,CAAI,EAAIG,EAAUH,CAAI,GAAK,CAAC,EACtCG,EAAUH,CAAI,EAAE,KAAKC,CAAI,EACrBrB,IACAX,GAAiB,CAACoC,CAAK,CAAC,EAE5B,OAGJ,OAAOsE,EAAsBtE,EAAOJ,EAAM,GAAGK,CAAI,CACrD,EACIsE,GAA4B,CAACvE,EAAOJ,KAASK,IAAS,CACtD,GAAID,IAAUlC,EAAG,CACb,IAAM6B,EAAOK,IAAUvC,EAAM4C,GAAsBL,EAAQqE,EAAoBrE,EAC/EN,GAA0BC,EAAMC,CAAI,EAExC,OAAO4E,GAAyBxE,EAAOJ,EAAM,GAAGK,CAAI,CACxD,EAKAQ,GAAwBxC,EAAG,CACvB,CAACoB,CAAgB,EAAG,CAChB,KAAM,CAAE,OAAO+E,EAAwB,EACvC,KAAM,CAAE,OAAOA,EAAwB,CAC3C,EACA,CAAC1D,EAAmB,EAAG,CACnB,KAAM,CAAE,OAAO6D,EAA2B,EAC1C,KAAM,CAAE,OAAOA,EAA2B,CAC9C,CACJ,CAAC,EAED,IAAME,GAAoB9E,GAAS,CAC/B,IAAI+E,EACJ,MAAO,CACH,KAAM,CAEF,OAAOA,CACX,EACA,IAAI9E,EAAM,CAGN,OAAI8E,GACAhF,GAA0BC,EAAMC,CAAI,EAExCE,EAAUH,CAAI,EAAIG,EAAUH,CAAI,GAAK,CAAC,EACtCG,EAAUH,CAAI,EAAE,KAAKC,CAAI,EAClB8E,EAAU9E,CACrB,CAGJ,CACJ,EAUA0E,EAAsBK,GAAsB,GAAK,CAC7C,GAAM,CAAE,OAAA1B,EAAQ,MAAAjD,CAAM,EAAI,EAAE,OACtBtB,EAAKuE,IAAWhF,EAAIG,EAAE,KAAO6E,EAC7BrD,EAAOlB,EAAG5B,CAAY,EAAEC,EAAS,KAAOiD,EAAM,IAAI,EACxDtB,EAAGe,CAAe,EAAE1C,EAAS,KAAOiD,EAAM,IAAI,EAC9C,GAAI,CACA,IAAM4E,EAAI,IAAI,SAAS,QAAShF,CAAI,EAChCqD,IAAWhF,EAGXA,EAAEoB,CAAgB,EAAEvB,EAAG8G,EAAE,KAAK3B,EAAQjD,CAAK,CAAC,EAE5C4E,EAAE,KAAK3B,EAAQjD,CAAK,CAE5B,OAAS6E,EAAP,CACE,QAAQ,IAAIA,CAAG,CACnB,CACJ,CAAC,EAGD,CAEI,IAAMrB,EAAUiB,GAAiBJ,EAAoBvG,CAAC,EACtD0E,EAAsBvE,EAAG,SAAUuF,CAAO,EAC1ClD,GAAsB7C,EAAK,IAAM,CAC7B+E,EAAsBpE,EAAE,KAAM,SAAUoF,CAAO,CACnD,CAAC,CACL,CAEAhB,EAAsBpE,EAAG,qBAAsBqG,GAAiBpE,GAAsB3C,CAAG,CAAC,EAE1F8E,EAAsBvE,EAAG,YAAawG,GAAiBJ,EAAoB1G,CAAC,CAAC,GASrE,IAAM,CAEN,IAAMmH,EAAU7G,EAAE,YACZ8G,EAAS9G,EAAE,WAEX+G,EAAsBtG,GAAO,CAS/B,IAAMuG,EANO,CACT,KAAM,KACN,KAAM,KACN,KAAM,IACV,GAEsB,UAAU,YAAc,CAAC,GAAG,aAAa,GAAK,EAC9DC,EAAOxG,EAAG,sBAAsB,EAChCyG,EAAW,CACb,IAAK,GAAKL,EAAUG,EACpB,KAAM,GAAKF,EAASE,EACpB,OAAQH,EAAUG,EAClB,MAAOF,EAASE,CACpB,EAOA,MAJI,EAAAC,EAAK,MAAQC,EAAS,OAASD,EAAK,OAASC,EAAS,MAItDD,EAAK,KAAOC,EAAS,QAAUD,EAAK,QAAUC,EAAS,IAI/D,EAEMC,EAAgB,CAACC,EAAa,KAAS,CACzC,IAAIC,EAAe,EACfC,EAAoB,GAClBC,EAAO,CAAC,EAERC,EAAqB,IAAM,CAC7BF,IAEK,EAAED,GAOHrH,EAAEO,EAAW,EAAE2B,EAAW,KAAK,KAAKA,EAAYuF,EAAmB,EAAG,UAAU,MAAM,CAK9F,EAEA,MAAM,KAAKtH,EAAE,qBAAqB,GAAG,CAAC,EAAE,QAAQuH,GAAO,CACnD,IAAIvG,EAAKwG,EAAOC,EAChB,GAAIF,EAAIxC,CAAO,IAAM,MAAO,CACxB,IAAI2C,EAAOH,EAAI,YAAcA,EAAI,IAC7BG,GAAQ,CAACN,EAAKM,CAAI,GAAK,CAACA,EAAK,MAAM,SAAS,KACvCH,EAAI,SAAW,IAAI,YAAY,IAAM,QAG/BX,EAAmBW,CAAG,KAC7BvG,EAAM0G,WAIPH,EAAIxC,CAAO,IAAMtE,EACxBkC,GAAW4E,EAAI7I,CAAY,EAAEC,EAAS,KAAK,CAAC,UACrC4I,EAAIxC,CAAO,IAAM,QAAUwC,EAAI7I,CAAY,EAAE,IAAI,IAAM,UAAY,CAAC,MAAQgB,EAAG,YAAcA,CAAC,EAAE,QAAQ6H,EAAI7I,CAAY,EAAE,KAAK,CAAC,GAAK,EAC5IsE,GAASuE,EAAI7I,CAAY,EAAE,MAAM,CAAC,EAAI,YAE9B8I,EAAQ3H,EAAE,iBAAiB0H,CAAG,KAAOE,GAASD,EAAM,iBAAmB,IAAI,MAAM,mBAAmB,KAAOC,GAAS,CAAC,GAAG,OAAQ,CACxI,IAAM7E,EAAM6E,EAAM,CAAC,EAAE,MAAM,EAAG,EAAE,EAAE,QAAQ,KAAM,EAAE,EAC9C,CAACL,EAAKxE,CAAG,GAAK,CAACA,EAAI,MAAM,SAAS,IAClC5B,EAAM4B,GAId,GAAI5B,EAAK,CACLoG,EAAKpG,CAAG,EAAI,GACZ,IAAM2G,EAAO,IAAI,MACbV,IACAC,IACAS,EAAK1G,CAAgB,EAAEvB,EAAG2H,CAAkB,EAC5CM,EAAK1G,CAAgB,EAAEE,GAAGkG,CAAkB,GAEhDM,EAAK,IAAM3G,EAEnB,CAAC,EACDhB,EAAE,MAAM,MAAM,KAAK,IAAM,CAErBqH,EAAmB,CACvB,CAAC,CACL,EAEI,UAAU,SAAW,EAErBnF,GAAsB7C,EAAK2H,CAAa,EAQxCd,EAAsBxG,EAAGsH,CAAa,CAI9C,GAAG",
    6   "names": ["addEventListener", "removeEventListener", "getAttribute", "setAttribute", "removeAttribute", "hasAttribute", "querySelector", "querySelectorAll", "appendChild", "removeChild", "createElement", "tagName", "getOwnPropertyDescriptor", "prototype", "__lookupGetter__", "__lookupSetter__", "DCL", "L", "E", "w", "d", "de", "ce", "mocked", "jQueryMock", "Mock", "Mock$", "override", "jQuery", "symbol", "enqueue", "func", "d", "addEventListener", "DCL", "e", "$", "oldReady", "oldPrototypeReady", "EVENT_FIRST_INTERACTION", "EVENT_REPLAY_CAPTURED_EVENTS", "EVENT_ELEMENT_LOADED", "EVENT_IMAGES_LOADED", "EVENT_THE_END", "EVENT_CLICK", "w", "wOrigAddEventListener", "wOrigRemoveEventListener", "ra", "ga", "sa", "passiveEvents", "activeEvents", "captureEvents", "prefix", "dispatchEvent", "synteticCick", "event", "EVENT_CLICK", "InteractionEvents", "firstInteractionFired", "p", "n", "w", "capturedEvents", "captureEvent", "e", "passiveEvents", "captureEvents", "sa", "prefix", "EVENT_FIRST_INTERACTION", "EVENT_REPLAY_CAPTURED_EVENTS", "activeEvents", "wOrigRemoveEventListener", "target", "ga", "ra", "wOrigAddEventListener", "browser_default", "InteractionEvents", "EventEmitter", "name", "data", "l", "callback", "c", "dispatcher_default", "EventEmitter", "$deviceMode", "d", "createElement", "setAttribute", "attached", "device_mode_default", "appendChild", "getClass", "el", "getAttribute", "setClass", "value", "setAttribute", "animations_default", "w", "addEventListener", "L", "mode", "device_mode_default", "vw", "de", "vh", "keys", "d", "querySelectorAll", "viewportOffset", "settings", "animationDelay", "animation", "key", "i", "oldClass", "newClass", "timeout", "dispatcher_default", "e", "inmega", "pp_menu_default", "div", "d", "createElement", "placeholder", "prevAll", "el", "result", "addEventListener", "DCL", "querySelectorAll", "ul", "getAttribute", "setAttribute", "prev", "tagName", "span", "appendChild", "mutations", "addedNodes", "node", "removeChild", "RSC", "M", "S", "prefix", "Object_defineProperty", "Object_defineProperties", "javascriptBlocked", "isJavascriptRegexp", "_rAF", "_rIC", "_setTimeout", "__dynamic", "windowEventPrefix", "w", "documentEventPrefix", "d", "forEach", "callback", "thisArg", "i", "prototype", "animations_default", "pp_menu_default", "reorder", "defer", "async", "DONE", "eventQueue", "listeners", "WindowLoaded", "firedEventsCount", "rAF", "rIC", "addEventListener", "nextTick", "createElementOverride", "capturedAttributes", "O", "definePropert", "object", "property", "options", "RSC", "L", "descriptor", "getOwnPropertyDescriptor", "value", "properties", "sym", "origAddEventListener", "origRemoveEventListener", "removeEventListener", "dOrigAddEventListener", "dOrigRemoveEventListener", "wOrigAddEventListener", "wOrigRemoveEventListener", "origCreateElement", "dOrigCreateElement", "origReadyStateGetter", "__lookupGetter__", "readyState", "hasUnfiredListeners", "eventNames", "event", "context", "j", "name", "listenerKey", "firedListeners", "currentlyFiredEvent", "fireQueuedEvents", "func", "e", "ce", "DCL", "iterating", "M", "messageListener", "origWindowOnMessageGetter", "origWindowOnMessageSetter", "__lookupSetter__", "restoreMessageListener", "listener", "jQuery", "jQueryMock", "startIterating", "flushPreloadsAndPreconnects", "iterate", "EVENT_FIRST_INTERACTION", "dispatcher_default", "EVENT_IMAGES_LOADED", "browser_default", "scriptsToLoad", "scriptLoaded", "script", "EVENT_THE_END", "iterating", "iterate", "element", "reorder", "getAttribute", "prefix", "hasAttribute", "__dynamic", "scriptsToLoad", "scriptLoaded", "unblock", "nextTick", "javascriptBlocked", "defer", "hasUnfiredListeners", "DCL", "RSC", "M", "fireQueuedEvents", "WindowLoaded", "L", "rIC", "async", "w", "e", "ce", "d", "restoreMessageListener", "jQuery", "DONE", "_setTimeout", "cloneScript", "el", "newElement", "dOrigCreateElement", "S", "attrs", "i", "setAttribute", "type", "property", "callback", "src", "addEventListener", "origAddEventListener", "E", "isJavascriptRegexp", "removeAttribute", "removeQueuedEventListener", "name", "func", "pos", "listeners", "documentAddEventListener", "event", "args", "currentlyFiredEvent", "dispatcher_default", "EVENT_THE_END", "documentEventPrefix", "dOrigAddEventListener", "documentRemoveEventListener", "dOrigRemoveEventListener", "Object_defineProperties", "removeEventListener", "preloadsAndPreconnectsFragment", "flushPreloadsAndPreconnects", "appendChild", "preconnects", "preconnect", "url", "href", "s", "rAF", "preloads", "preloadAsScript", "isModule", "crossorigin", "integrity", "createElement", "scriptElt", "originalSetAttribute", "originalGetAttribute", "originalHasAttribute", "originalAttributes", "__lookupGetter__", "capturedAttributes", "originalAttributeGetter", "originalAttributeSetter", "__lookupSetter__", "O", "definePropert", "value", "result", "Object_defineProperty", "attr", "prototype", "createElementOverride", "seenScripts", "observer", "mutations", "removedNodes", "addedNodes", "target", "node", "tagName", "origType", "removeChild", "mutationObserverOptions", "origAttachShadow", "options", "shadowRoot", "origIFrameSrc", "getOwnPropertyDescriptor", "origCreateElement", "EVENT_REPLAY_CAPTURED_EVENTS", "documentWrite", "str", "parent", "currentScript", "df", "documentWriteLn", "windowAddEventListener", "windowEventPrefix", "wOrigAddEventListener", "windowRemoveEventListener", "wOrigRemoveEventListener", "onHandlerOptions", "handler", "EVENT_ELEMENT_LOADED", "f", "err", "wheight", "wwidth", "intersectsViewport", "extra", "rect", "viewport", "waitForImages", "reallyWait", "imagesToLoad", "imagesLoadedCount", "seen", "imageLoadedHandler", "EVENT_IMAGES_LOADED", "tag", "style", "bgUrl", "_src", "temp"]
     4  "sourcesContent": ["export const\n    addEventListener = \"addEventListener\",\n    removeEventListener = \"removeEventListener\",\n    getAttribute = \"getAttribute\",\n    setAttribute = \"setAttribute\",\n    removeAttribute = \"removeAttribute\",\n    hasAttribute = \"hasAttribute\",\n    querySelector = \"querySelector\",\n    querySelectorAll = querySelector + \"All\",\n    appendChild = \"appendChild\",\n    removeChild = \"removeChild\",\n    createElement = \"createElement\",\n    tagName = \"tagName\",\n    getOwnPropertyDescriptor = \"getOwnPropertyDescriptor\",\n    prototype = \"prototype\",\n    __lookupGetter__ = \"__lookupGetter__\",\n    __lookupSetter__ = \"__lookupSetter__\",\n    DCL = \"DOMContentLoaded\",\n    L = \"load\",\n    E = \"error\";\n", "const\n    w = window,\n    d = document,\n    de = d.documentElement,\n    c = process.env.DEBUG ? console.log : () => { },\n    ce = console.error;\n\nexport {\n    w,\n    d,\n    de,\n    c,\n    ce,\n};", "import delta from \"../utils/delta\";\nimport {\n    addEventListener,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n    c,\n    ce,\n} from \"../globals\";\n\n/**\n * class name should not match mocked object\n */\nlet mocked = true;\nexport default class jQueryMock {\n    constructor() {\n        this.known = [];\n    }\n    init() {\n\n        let Mock;\n        let Mock$;\n\n        // the goal here is to capture a real jQuery object and override its load and ready methods\n        // to delay firing ready() until WP-Meteor finishes loading JS\n        const override = (jQuery, symbol) => {\n\n            if (mocked && jQuery && jQuery.fn && !jQuery.__wpmeteor) {\n                process.env.DEBUG && c(delta(), \"new \" + symbol + \" detected\", jQuery.__wpmeteor, jQuery);\n\n                // can't use () => {} as it binds to different this\n                const enqueue = function (func) {\n                    process.env.DEBUG && c(delta(), \"enqueued jQuery(func)\", func);\n                    // there is a loop when you call $(\"selector\", $), as it calls $.ready\n                    // which in turn calls readyList.then( fn ) and returns this\n                    // without this code, page-infinite-loop.html hangs\n                    if (func === jQuery) {\n                        return this;\n                    }\n                    d[addEventListener](DCL, e => {\n                        process.env.DEBUG && c(delta(), \"running enqueued jQuery function\", func);\n                        func.call(d, jQuery, e, \"jQueryMock\");\n                    });\n                    return this;\n                };\n\n                this.known.push([jQuery, jQuery.fn.ready, jQuery.fn.init?.prototype?.ready]);\n                jQuery.fn.ready = enqueue;\n                if (jQuery.fn.init?.prototype?.ready) {\n                    jQuery.fn.init.prototype.ready = enqueue;\n                }\n                jQuery.__wpmeteor = true;\n            }\n            return jQuery;\n        };\n\n        if (window.jQuery || window.$) {\n            // not throwing error, as it might come from a chrome extension\n            // but also not mocking it, just giving a warning\n            process.env.DEBUG && ce(delta(), \"WARNING: JQUERY WAS INSTALLED BEFORE WP-METEOR, PROBABLY FROM A CHROME EXTENSION\");\n        }\n\n        Object.defineProperty(window, \"jQuery\", {\n            get() {\n                return Mock;\n            },\n            set(jQuery) {\n                Mock = override(jQuery, \"jQuery\");\n            },\n            configurable: true,\n        });\n\n        Object.defineProperty(window, \"$\", {\n            get() {\n                return Mock$;\n            },\n            set($) {\n                Mock$ = override($, \"$\");\n            },\n            configurable: true,\n        });\n    }\n    unmock() {\n        this.known.forEach(([jQuery, oldReady, oldPrototypeReady]) => {\n            process.env.DEBUG && c(delta(), \"unmocking jQuery\", jQuery);\n            jQuery.fn.ready = oldReady;\n            if (jQuery.fn.init?.prototype?.ready && oldPrototypeReady) {\n                jQuery.fn.init.prototype.ready = oldPrototypeReady;\n            }\n        });\n        mocked = false;\n    }\n}\n", "const EVENT_FIRST_INTERACTION = \"fpo:first-interaction\";\nconst EVENT_REPLAY_CAPTURED_EVENTS = \"fpo:replay-captured-events\";\nconst EVENT_LCP_ELEMENT = \"fpo:lcp-element\";\nconst EVENT_LCP_ELEMENT_CANDIDATE = \"fpo:lcp-element-candidate\";\nconst EVENT_LCP_LOADED = \"fpo:lcp-loaded\";\nconst EVENT_LAZY_ELEMENT = \"fpo:lazy-element\";\nconst EVENT_STYLES_TAG_AVAILABLE = \"fpo:styles-tag-available\";\nconst EVENT_CSS_LOADED = \"fpo:css-loaded\";\nconst EVENT_ELEMENT_LOADED = \"fpo:element-loaded\";\nconst EVENT_IMAGES_LOADED = \"fpo:images-loaded\";\nconst EVENT_THE_END = \"fpo:the-end\";\nconst EVENT_SCROLL_TO_REVEAL_ANIMATIONS = \"fpo:scroll-to-reveal-animations\";\n\nexport {\n    EVENT_LCP_ELEMENT,\n    EVENT_LCP_ELEMENT_CANDIDATE,\n    EVENT_LCP_LOADED,\n    EVENT_LAZY_ELEMENT,\n    EVENT_STYLES_TAG_AVAILABLE,\n    EVENT_FIRST_INTERACTION, \n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n    EVENT_SCROLL_TO_REVEAL_ANIMATIONS,\n};\n", "import delta from \"./utils/delta.mjs\";\nimport c from \"./utils/console.mjs\";\nimport { EVENT_FIRST_INTERACTION, EVENT_REPLAY_CAPTURED_EVENTS } from \"@aguidrevitch/fpo-inpage-events\";\n\nconst EVENT_CLICK = \"click\";\n\nconst w = window;\nconst wOrigAddEventListener = w.addEventListener.bind(w);\nconst wOrigRemoveEventListener = w.removeEventListener.bind(w);\nconst ra = \"removeAttribute\";\nconst ga = \"getAttribute\";\nconst sa = \"setAttribute\";\nconst passiveEvents = [\"touchstart\", \"touchmove\", \"touchend\", \"touchcancel\", \"keydown\", \"wheel\"]; //, \"scroll\"];\nconst activeEvents = [\"mouseover\", \"mouseout\", EVENT_CLICK];\nconst captureEvents = [\"touchstart\", \"touchend\", \"touchcancel\", \"mouseover\", \"mouseout\", EVENT_CLICK];\nconst prefix = \"data-wpmeteor-\";\nconst separator = \"----\";\nconst dispatchEvent = \"dispatchEvent\";\n\nconst synteticCick = e => {\n    process.env.DEBUG && c(delta(), \"creating syntetic click event for\", e);\n    const event = new MouseEvent(EVENT_CLICK, {\n        view: e.view,\n        bubbles: true,\n        cancelable: true\n    });\n    Object.defineProperty(event, \"target\", { writable: false, value: e.target });\n    return event;\n};\n\nclass InteractionEvents {\n    static capture() {\n        let firstInteractionFired = false;\n\n        // lighthouse sets __nativePromise and __nativeURL\n        // to the original Promise and URL\n        const [, p, n] = `${window.Promise}`.split(/[\\s[(){]+/s);\n        if (w[\"__\" + n + p]) {\n            return;\n        }\n\n        const capturedEvents = [];\n        const captureEvent = e => {\n            if (e.target && (dispatchEvent in e.target)) {\n                if (!e.isTrusted) {\n                    // this is a flag that this event is probably replaying\n                    process.env.DEBUG && c(delta(), \"the event is not trusted, configuration issues, not recording\", e.type, e.target);\n                    process.env.DEBUG && c(delta(), \"please double check if first interaction listener was installed before wp-meteor\");\n                    return;\n                }\n                if (e.cancelable && !passiveEvents.includes(e.type)) {\n                    try {\n                        e.preventDefault();\n                    } catch { }\n                }\n                e.stopImmediatePropagation();\n\n                if (e.type === EVENT_CLICK) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(synteticCick(e));\n                } else if (captureEvents.includes(e.type)) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(e);\n                }\n                // scroll event target doesn't have setAttribute\n                // if (e.target[sa]) {\n                //     e.target[sa](prefix + e.type, true);\n                // }\n                e.target[sa](prefix + e.type, true);\n                if (!firstInteractionFired) {\n                    firstInteractionFired = true;\n                    w[dispatchEvent](new CustomEvent(EVENT_FIRST_INTERACTION));\n                }\n            }\n        };\n\n        w.addEventListener(EVENT_REPLAY_CAPTURED_EVENTS, () => {\n            process.env.DEBUG && c(delta(), separator, \"got \" + EVENT_REPLAY_CAPTURED_EVENTS);\n            process.env.DEBUG && c(delta(), separator, \"removing event listeners\");\n            activeEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: false, capture: true }));\n            passiveEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: true, capture: true }));\n\n            let e;\n            while (e = capturedEvents.shift()) { // eslint-disable-line no-cond-assign\n                var target = e.target;\n                if (target[ga](prefix + \"touchstart\") && target[ga](prefix + \"touchend\") && !target[ga](prefix + EVENT_CLICK)) {\n                    if (target[ga](prefix + \"touchmove\")) {\n                        process.env.DEBUG && c(delta(), `touchmove happened, so not dispatching ${EVENT_CLICK} to `, e.target);\n                    } else {\n                        // why would I want to remove prefix + \"touchmove\", if previous if checks it is present?\n                        // target[ra](prefix + \"touchmove\");\n                        capturedEvents.push(synteticCick(e));\n                    }\n                    target[ra](prefix + \"touchstart\");\n                    target[ra](prefix + \"touchend\");\n                } else {\n                    target[ra](prefix + e.type);\n                }\n                process.env.DEBUG && c(delta(), \" dispatching \" + e.type + \" to \", e.target);\n                target[dispatchEvent](e);\n            }\n        });\n\n        process.env.DEBUG && c(delta(), separator, \"installing first interaction event listeners\");\n        activeEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: false, capture: true }));\n        passiveEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: true, capture: true }));\n    }\n}\n\nexport {\n    InteractionEvents,\n};\n\nexport default InteractionEvents;", "export default class EventEmitter {\n    constructor() {\n        this.l = [];\n    }\n    emit(name, data = null) {\n        this.l[name] && this.l[name].forEach(l => l(data));\n    }\n    on(name, callback) {\n        this.l[name] ||= [];\n        this.l[name].push(callback);\n    }\n    off(name, callback) {\n        this.l[name] = (this.l[name] || []).filter(c => c !== callback);\n    }\n    /*\n    once(name, callback) {\n        const closure = () => {\n            this.off(closure);\n            callback();\n        }\n        this.l[name] ||= [];\n        this.l[name].push(closure);\n    }\n    */\n}\n", "import EventEmitter from \"./event-emitter\";\nexport default new EventEmitter();\n", "import {\n    setAttribute,\n    appendChild,\n    createElement,\n} from \"../literals\";\n\nimport {\n    d,\n} from \"../globals\";\n\nconst $deviceMode = d[createElement](\"span\");\n$deviceMode[setAttribute](\"id\", \"elementor-device-mode\");\n$deviceMode[setAttribute](\"class\", \"elementor-screen-only\");\n\nlet attached = false;\n\nexport default () => {\n    if (!attached) {\n        d.body[appendChild]($deviceMode);\n    }\n    return getComputedStyle($deviceMode, \":after\").content.replace(/\"/g, \"\");\n};\n", "import delta from \"../utils/delta\";\nimport dispatcher from \"../utils/dispatcher\";\nimport getCurrentDeviceMode from \"./device-mode\";\nimport {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    L,\n} from \"../literals\";\nimport {\n    w,\n    d,\n    de,\n    c,\n} from \"../globals\";\n\nconst getClass = (el) => {\n    return el[getAttribute](\"class\") || \"\";\n};\n\nconst setClass = (el, value) => {\n    return el[setAttribute](\"class\", value);\n};\n\nexport default () => {\n    w[addEventListener](L, function () {\n        const mode = getCurrentDeviceMode();\n        const vw = Math.max(de.clientWidth || 0, w.innerWidth || 0);\n        const vh = Math.max(de.clientHeight || 0, w.innerHeight || 0);\n\n        const keys = [\"_animation_\" + mode, \"animation_\" + mode, \"_animation\", \"_animation\", \"animation\"];\n        Array.from(d[querySelectorAll](\".elementor-invisible\")).forEach(el => {\n\n            // we  only want to optimize elements in the top of the page\n            const viewportOffset = el.getBoundingClientRect();\n            if (viewportOffset.top + w.scrollY <= vh && viewportOffset.left + w.scrollX < vw) {\n                try {\n                    const settings = JSON.parse(el[getAttribute](\"data-settings\"));\n                    if (settings.trigger_source) {\n                        return;\n                    }\n                    const animationDelay = settings._animation_delay || settings.animation_delay || 0;\n                    let animation, key;\n\n                    for (var i = 0; i < keys.length; i++) {\n                        if (settings[keys[i]]) {\n                            key = keys[i];\n                            animation = settings[key];\n                            break;\n                        }\n                    }\n\n                    if (animation) {\n                        process.env.DEBUG && c(delta(), \"animating with\" + animation, el);\n                        const oldClass = getClass(el);\n                        const newClass = animation === \"none\"\n                            ? oldClass\n                            : oldClass + \" animated \" + animation;\n\n                        const animate = () => {\n                            setClass(el, newClass.replace(/\\belementor-invisible\\b/, \"\"));\n                            keys.forEach(key => delete settings[key]);\n                            el[setAttribute](\"data-settings\", JSON.stringify(settings));\n                        };\n\n                        let timeout = setTimeout(animate, animationDelay);\n\n                        dispatcher.on(\"fi\", () => {\n                            clearTimeout(timeout);\n                            setClass(el, getClass(el).replace(new RegExp(\"\\\\b\" + animation + \"\\\\b\"), \"\"));\n                        });\n\n                    }\n                } catch (e) {\n                    console.error(e);\n                }\n            }\n        });\n    });\n};", "import {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    appendChild,\n    removeChild,\n    createElement,\n    tagName,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n} from \"../globals\";\n\nconst inmega = \"data-in-mega_smartmenus\";\n\nexport default () => {\n\n    const div = d[createElement](\"div\");\n    div.innerHTML = \"<span class=\\\"sub-arrow --wp-meteor\\\"><i class=\\\"fa\\\" aria-hidden=\\\"true\\\"></i></span>\";\n    const placeholder = div.firstChild;\n\n    const prevAll = el => {\n        const result = [];\n        while (el = el.previousElementSibling) // eslint-disable-line no-cond-assign\n            result.push(el);\n        return result;\n    };\n\n    d[addEventListener](DCL, function () {\n        Array.from(d[querySelectorAll](\".pp-advanced-menu ul\")).forEach(ul => {\n            /* skipping mega menues */\n            if (ul[getAttribute](inmega)) {\n                return;\n            } else if ((ul[getAttribute](\"class\") || \"\").match(/\\bmega-menu\\b/)) {\n                ul[querySelectorAll](\"ul\").forEach(ul => {\n                    ul[setAttribute](inmega, true);\n                });\n            }\n            let prev = prevAll(ul);\n            let a = prev.filter(el => el).filter(el => el[tagName] === \"A\").pop();\n            if (!a) {\n                a = prev.map(el => Array.from(el[querySelectorAll](\"a\"))).filter(el => el).flat().pop();\n            }\n            if (a) {\n                const span = placeholder.cloneNode(true);\n                a[appendChild](span);\n\n                const observer = new MutationObserver(mutations => {\n                    mutations.forEach(({ addedNodes }) => {\n                        addedNodes.forEach(node => {\n                            // For each added script tag\n                            if (node.nodeType === 1 && \"SPAN\" === node[tagName]) {\n                                try {\n                                    a[removeChild](span);\n                                } catch {\n                                    // do nothing\n                                }\n                            }\n                        });\n                    });\n                });\n                observer.observe(a, { childList: true });\n            }\n        });\n    });\n};", "/* global _wpmeteor, RocketLazyLoadScripts */\n\nimport jQueryMock from \"./includes/mocks/jquery\";\nimport InteractionEvents from \"@aguidrevitch/fpo-inpage-first-interaction\";\nimport dispatcher from \"./includes/utils/dispatcher\";\nimport delta from \"./includes/utils/delta\";\nimport elementorAnimations from \"./includes/elementor/animations\";\nimport elementorPP from \"./includes/elementor/pp-menu\";\nimport {\n    addEventListener,\n    removeEventListener,\n    getAttribute,\n    setAttribute,\n    removeAttribute,\n    hasAttribute,\n    // querySelectorAll,\n    appendChild,\n    removeChild,\n    tagName,\n    getOwnPropertyDescriptor,\n    prototype,\n    __lookupGetter__,\n    __lookupSetter__,\n    DCL,\n    L,\n    E,\n} from \"./includes/literals\";\nimport {\n    w,\n    d,\n    c,\n    ce,\n} from \"./includes/globals\";\n\nimport {\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_FIRST_INTERACTION,\n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n} from \"@aguidrevitch/fpo-inpage-events\";\n\nconst RSC = \"readystatechange\",\n    M = \"message\",\n    separator = \"----\",\n    S = \"SCRIPT\",\n    prefix = \"data-wpmeteor-\",\n    Object_defineProperty = Object.defineProperty, // eslint-disable-line camelcase\n    Object_defineProperties = Object.defineProperties, // eslint-disable-line camelcase\n    javascriptBlocked = \"javascript/blocked\",\n    isJavascriptRegexp = /^\\s*(application|text)\\/javascript|module\\s*$/i,\n    _rAF = \"requestAnimationFrame\",\n    _rIC = \"requestIdleCallback\",\n    _setTimeout = \"setTimeout\",\n    __dynamic = \"__dynamic\";\n\nconst windowEventPrefix = w.constructor.name + \"::\";\nconst documentEventPrefix = d.constructor.name + \"::\";\n\nconst forEach = function (callback, thisArg) {\n    thisArg = thisArg || w;\n    for (var i = 0; i < this.length; i++) {\n        callback.call(thisArg, this[i], i, this);\n    }\n};\n\nif (\"NodeList\" in w && !NodeList[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling NodeList.forEach\");\n    NodeList[prototype].forEach = forEach;\n}\nif (\"HTMLCollection\" in w && !HTMLCollection[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling HTMLCollection.forEach\");\n    HTMLCollection[prototype].forEach = forEach;\n}\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor[\"elementor-animations\"]) {\n        elementorAnimations();\n    }\n\n    if (_wpmeteor[\"elementor-pp\"]) {\n        elementorPP();\n    }\n})();\n\nconst reorder = [];\nconst defer = [];\nconst async = [];\n\nlet DONE = false;\nconst eventQueue = [];\nlet listeners = {};\nlet WindowLoaded = false;\nlet firedEventsCount = 0;\n\nlet rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\nlet rIC = w[_rIC] || rAF;\nd[addEventListener](\"visibilitychange\", () => {\n    rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\n    rIC = w[_rIC] || rAF;\n});\n\nconst nextTick = w[_setTimeout];\n\nlet createElementOverride;\nconst capturedAttributes = [\"src\", \"type\"];\n\n/* Hack around 'avoid serving legacy javascript to modern browsers' */\nconst O = Object,\n    definePropert = \"definePropert\";\n\nO[definePropert + \"y\"] = (object, property, options) => {\n    if (object === w && ([\"jQuery\", \"onload\"].indexOf(property) >= 0)\n        || (object === d || object === d.body) && [\"readyState\", \"write\", \"writeln\", \"on\" + RSC].indexOf(property) >= 0) {\n        if ([\"on\" + RSC, \"on\" + L].indexOf(property) && options.set) {\n            listeners[\"on\" + RSC] = listeners[\"on\" + RSC] || [];\n            listeners[\"on\" + RSC].push(options.set);\n            // objectRedefinitions['onreadystatechange'] = options;\n        } else {\n            process.env.DEBUG && ce(\"Denied \" + (object.constructor || {}).name + \" \" + property + \" redefinition\");\n        }\n        return object;\n    } else if ((object instanceof HTMLScriptElement) && capturedAttributes.indexOf(property) >= 0) {\n\n        if (!object[property + \"__def\"]) {\n            const descriptor = O[getOwnPropertyDescriptor](object, property);\n            Object_defineProperty(object, property, {\n                set(value) {\n                    if (object[property + \"__set\"]) {\n                        return object[property + \"__set\"].call(object, value);\n                    }\n                    return descriptor.set.call(object, value);\n                },\n                get() {\n                    if (object[property + \"__get\"]) {\n                        return object[property + \"__get\"].call(object);\n                    }\n                    return descriptor.get.call(object);\n                }\n            });\n            object[property + \"__def\"] = true;\n        }\n\n        if (options.get) {\n            object[property + \"__get\"] = options.get;\n        }\n\n        if (options.set) {\n            object[property + \"__set\"] = options.set;\n        }\n\n        return object;\n    }\n    // console.log(\"object\", object, \"property\", property, \"options\", options, new Error().stack);\n    return Object_defineProperty(object, property, options);\n};\n\nO[definePropert + \"ies\"] = (object, properties) => {\n    // console.log(\"object\", object, \"properties\", properties);\n    for (let i in properties) {\n        O[definePropert + \"y\"](object, i, properties[i]);\n    }\n    // symbols are not enumerable,\n    // so we have to use Object.getOwnPropertySymbols\n    // for compatibility with https://modelviewer.dev/\n    for (let sym of O.getOwnPropertySymbols(properties)) {\n        O[definePropert + \"y\"](object, sym, properties[sym]);\n    }\n    return object;\n};\n\nif (process.env.DEBUG) {\n    d[addEventListener](RSC, () => {\n        c(delta(), separator, RSC, d.readyState);\n    });\n\n    d[addEventListener](DCL, () => {\n        c(delta(), separator, DCL);\n    });\n\n    dispatcher.on(EVENT_THE_END, () => {\n        c(delta(), separator, EVENT_THE_END);\n        c(delta(), separator, firedEventsCount + \" queued events fired\");\n    });\n\n    w[addEventListener](L, () => {\n        c(delta(), separator, L);\n    });\n}\n\n// saving original methods\nconst origAddEventListener = EventTarget[prototype][addEventListener];\nconst origRemoveEventListener = EventTarget[prototype][removeEventListener];\nconst dOrigAddEventListener = origAddEventListener.bind(d);\nconst dOrigRemoveEventListener = origRemoveEventListener.bind(d);\nconst wOrigAddEventListener = origAddEventListener.bind(w);\nconst wOrigRemoveEventListener = origRemoveEventListener.bind(w);\nconst origCreateElement = Document[prototype].createElement;\nconst dOrigCreateElement = origCreateElement.bind(d);\nconst origReadyStateGetter = d.__proto__[__lookupGetter__](\"readyState\").bind(d);  \n\nlet readyState = \"loading\";\nObject_defineProperty(d, \"readyState\", {\n    get() { return readyState; },\n    set(value) { return readyState = value; },\n});\n\nconst hasUnfiredListeners = (eventNames) => {\n    return eventQueue.filter(([event, , context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            for (let i = 0; i < listeners[name].length; i++) {\n                if (listeners[name][i]) {\n                    const listenerKey = name + \"::\" + j + \"::\" + i;\n                    if (!firedListeners[listenerKey]) {\n                        return true;\n                    }\n                }\n            }\n        } catch {\n            // do nothing\n        }\n    }).length;\n};\n\nlet currentlyFiredEvent;\nconst firedListeners = {};\nconst fireQueuedEvents = (eventNames) => {\n    eventQueue.forEach(([event, readyState, context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            if ((listeners[name] || []).length) {\n                // listeners[name].forEach doesn't work as the listeners might be added \n                // during the loop\n                for (let i = 0; i < listeners[name].length; i++) {\n                    const func = listeners[name][i];\n                    if (func) {\n                        // readystatechanges fires multiple time times on same \n                        // listener with different readyState, accounting for that\n                        // const listenerKey = event === M \n                        //     ? name + '::' + j + '::' + i + '::' + readyState\n                        //     : name + '::' + i + '::' + readyState;\n                        const listenerKey = name + \"::\" + j + \"::\" + i;\n                        if (!firedListeners[listenerKey]) {\n                            firedListeners[listenerKey] = true;\n                            d.readyState = readyState;\n                            currentlyFiredEvent = name;\n                            try {\n                                firedEventsCount++;\n                                process.env.DEBUG && c(delta(), \"firing \" + event.type + \"(\" + d.readyState + \") for\", func[prototype] ? func[prototype].constructor : func);\n                                if (!func[prototype] || func[prototype].constructor === func) {\n                                    func.bind(context)(event);\n                                } else {\n                                    func(event);\n                                }\n                            } catch (e) {\n                                ce(e, func);\n                            }\n                            currentlyFiredEvent = null;\n                        }\n                    }\n                }\n            }\n        } catch (e) {\n            ce(e);\n        }\n    });\n};\n\n// we need to clone L, DCL, RSC events\n// because we internally track them and use them, eg window.load\n// if some script like elementor runs e.stopImmediatePropagation()\n// we won't ever get them, just the same way we do in the inpage-first-interaction\ndOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), d]);\n});\ndOrigAddEventListener(RSC, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + RSC);\n    eventQueue.push([new e.constructor(RSC, e), origReadyStateGetter(), d]);\n});\nwOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued window \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), w]);\n});\nwOrigAddEventListener(L, (e) => {\n    WindowLoaded = true;\n    process.env.DEBUG && c(delta(), \"enqueued window \" + L);\n    eventQueue.push([new e.constructor(L, e), origReadyStateGetter(), w]);\n    // we must fire queued events for excluded scripts\n    // if firstInteractionFired, then some scripts might have registered load event listeners\n    // and they will be fired as well, which is invalid behaviour\n    // https://wordpress.org/support/topic/meteor-blocks-contact-form-email/\n    if (!iterating) {\n        fireQueuedEvents([DCL, RSC, M, L]);\n    }\n});\nconst messageListener = (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued \" + M);\n    eventQueue.push([e, d.readyState, w]);\n};\n\nconst origWindowOnMessageGetter = w[__lookupGetter__](\"onmessage\");\nconst origWindowOnMessageSetter = w[__lookupSetter__](\"onmessage\");\n\n// will be called inside iterate, right before dispatching EVENT_THE_END\nconst restoreMessageListener = () => {\n    // this code is called only when all the events were fired\n    wOrigRemoveEventListener(M, messageListener);\n    // restoring message listeners\n    (listeners[windowEventPrefix + \"message\"] || []).forEach(listener => {\n        wOrigAddEventListener(M, listener);\n    });\n    Object_defineProperty(w, \"onmessage\", {\n        get: origWindowOnMessageGetter,\n        set: origWindowOnMessageSetter,\n    });\n    process.env.DEBUG && c(delta(), \"message listener restored\");\n};\n// removal will be inside iterate\nwOrigAddEventListener(M, messageListener);\n\n// jQuery mock allows to trigger jQuery.ready early\n// because if we rely on native logics, the ready() listeners will fire after window.load\nconst jQuery = new jQueryMock();\njQuery.init();\n\n// there are 3 cases\n// 1. first interaction fires before window.load as a resut of user interaction\n// 2. window.load fires before first interaction \n// 3. !!!!!!! 3rd party scripts might trigger it programmatically if they were excluded from optimization\nconst startIterating = () => {\n    if (!iterating && !DONE) {\n        iterating = true;\n        // mayBePreloadScripts();\n        d.readyState = \"loading\";\n        rAF(flushPreloadsAndPreconnects);\n        rAF(iterate); // starts the iteration\n        // nextTick(iterate); // starts the iteration\n    }\n    /**\n     * If window.load fires after iteration complete, eg some images delay window.load\n     * there might be some unfired events left in the queue\n     * so we will restart iteration which will fire them\n     */\n    if (!WindowLoaded) {\n        wOrigAddEventListener(L, () => {\n            process.env.DEBUG && c(delta(), separator, \"starting iterating after window loaded\");\n            startIterating();\n        });\n    }\n};\n\n// We need CSS to start iterating, because there are cases,\n// when something injects CSS before some <link>, that is \n// inside <noscript>. This is why we wait for EVENT_CSS_LOADED,\n// which triggers EVENT_IMAGES_LOADED\nprocess.env.SPO || wOrigAddEventListener(EVENT_FIRST_INTERACTION, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating on first interaction\");\n    startIterating();\n});\n\n/* EVENT_IMAGES_LOADED is an internal event, known to dispatcher only */\ndispatcher.on(EVENT_IMAGES_LOADED, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating after images loaded\");\n    startIterating();\n});\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor.rdelay >= 0) {\n        InteractionEvents.capture();\n    }\n})();\n\n// scriptsToLoad is set to 1 to allow an extra call at the end of iteration\n// that means that once last script loads, it won't trigger the end of the cycle\n// only after all the events fire, the cycle will end\nlet scriptsToLoad = [-1];\nconst scriptLoaded = (event) => {\n    process.env.DEBUG && c(delta(), \"scriptLoaded\", event.target, scriptsToLoad.length);\n    scriptsToLoad = scriptsToLoad.filter(script => script !== event.target);\n    if (!scriptsToLoad.length) {\n        // this is ultimate end of the iteration cycle\n        nextTick(dispatcher.emit.bind(dispatcher, EVENT_THE_END));\n    }\n};\n\nlet i = 0;\nlet iterating = false;\n\n// TODO: async and defer scripts can be injected into the document in parallel\n// we can either insert them in 2 batches (defer, then async), or even in one batch\nconst iterate = () => {\n    process.env.DEBUG && c(delta(), \"it\", i++, reorder.length);\n    const element = reorder.shift();\n    if (element) {\n        // process.env.DEBUG && c(separator, \"iterating\", element, element.dataset);\n        if (element[getAttribute](prefix + \"src\")) {\n            if (element[hasAttribute](\"async\") || element[__dynamic]) {\n                if (element.isConnected) {\n                    // we can't be sure that it is going to be inserted into the DOM\n                    process.env.DEBUG && c(delta(), \"pushed to scriptsToLoad\", scriptsToLoad);\n                    scriptsToLoad.push(element);\n                    // https://github.com/aguidrevitch/fpo-javascript-rewrite/issues/6\n                    // https://wordpress.org/support/topic/script-loading-waited-on-js-file/\n                    // if an async script hangs for longer than 1 seconds\n                    // we stop waiting for it to finish page load\n                    setTimeout(scriptLoaded, 1000, { target: element });\n                }\n                // even if it is not in the scriptsToLoad list, \n                // scriptLoaded won't remove it from the list\n                unblock(element, scriptLoaded);\n                nextTick(iterate);\n            } else {\n                // process.env.DEBUG && c(delta(), \"sync\", element);\n                unblock(element, nextTick.bind(null, iterate));\n                // iterate()\n            }\n        } else if (element.origtype == javascriptBlocked) {\n            unblock(element);\n            // allow inserted script to execute\n            nextTick(iterate);\n        } else {\n            // it might be wrongfully processed script by backend, eg type=\"application/ld+json\" \n            // and execution will stop here\n            process.env.DEBUG && ce(\"running next iteration\", element, element.origtype, element.origtype == javascriptBlocked);\n            nextTick(iterate);\n        }\n        // } else if (scriptsToInsert) {\n        //     process.env.DEBUG && c(delta(), scriptsToInsert, \"more scripts to insert\");\n        //     rAF(iterate);\n    } else {\n        if (defer.length) {\n            process.env.DEBUG &&\n                defer.forEach(script =>\n                    c(delta(), \"adding deferred script from defer queue to reorder\", script.cloneNode(true))\n                );\n            reorder.push(...defer);\n            defer.length = 0;\n\n            // mayBePreloadScripts();\n            nextTick(iterate);\n\n            // process.env.DEBUG && c('loaded all the scripts');\n            // not restoring original addEventListener\n            // to avoid unexpected failures,\n            // however, that triggers spurious handlers which were sleeping\n            // d[addEventListener] = dOrigAddEventListener;\n        } else if (hasUnfiredListeners([DCL, RSC, M])) {\n            process.env.DEBUG && c(delta(), \"firing unfired listeners\");\n            fireQueuedEvents([DCL, RSC, M]);\n            nextTick(iterate);\n        } else if (WindowLoaded) {\n            // as cycle starts in 'fi' listener\n            if (hasUnfiredListeners([L, M])) {\n                fireQueuedEvents([L, M]);\n                nextTick(iterate);\n            } else if (scriptsToLoad.length > 1) {\n                // can get here only if started loading async scripts\n                process.env.DEBUG && c(delta(), `waiting for ${scriptsToLoad.length - 1} more scripts to load`, scriptsToLoad);\n                rIC(iterate);\n            } else if (async.length) {\n                process.env.DEBUG &&\n                    async.forEach(script =>\n                        c(delta(), \"adding async script from async queue to reorder\", script.cloneNode(true))\n                    );\n\n                reorder.push(...async);\n                async.length = 0;\n\n                // mayBePreloadScripts();\n                nextTick(iterate);\n            } else {\n                // CloudFlare RocketLoader workaround\n                if (w.RocketLazyLoadScripts) {\n                    try {\n                        RocketLazyLoadScripts.run();\n                    } catch (e) {\n                        ce(e);\n                    }\n                }\n                d.readyState = \"complete\";\n\n                // restoring message listener here to avoid messages that can fall\n                // in the gap before EVENT_THE_END fires\n                restoreMessageListener();\n\n                // restoring original jQuery.ready here to avoid calls that can fall\n                // in the gap before EVENT_THE_END fires\n                jQuery.unmock();\n\n                // We can't restore original event listeners\n                // because on slow connections, 3rd party scripts might be loaded late\n                // and bind to window.load or anything else we track\n                // documentAddEventListener = dOrigAddEventListener;\n                // documentRemoveEventListener = dOrigRemoveEventListener;\n                // windowAddEventListener = wOrigAddEventListener;\n                // windowRemoveEventListener = wOrigRemoveEventListener;\n\n                // process.env.DEBUG && c('running emulatedWindowLoaded');\n                // technically, iterating = false is not needed\n                // as the only place where it is checked is inside window.load\n                // and here he has already fired as WindowLoaded === true\n                iterating = false;\n                DONE = true;\n\n                // setTimeout(() => dispatcher.emit(EVENT_THE_END));\n                w[_setTimeout](() => scriptLoaded({ target: -1 }));\n            }\n        } else {\n            // exiting iterate() cycle in case window.load hasn't fired yet\n            iterating = false;\n        }\n    }\n};\n\nconst cloneScript = (el) => {\n\n    const newElement = dOrigCreateElement(S);\n\n    const attrs = el.attributes;\n    // console.log(\"newElement\", attrs.map(attr => attr.name + \"=\" + attr.value));\n\n    // move attributes\n    for (var i = attrs.length - 1; i >= 0; i--) {\n        if (!attrs[i].name.startsWith(prefix)) {\n            newElement[setAttribute](attrs[i].name, attrs[i].value);\n        }\n    }\n\n    const type = el[getAttribute](prefix + \"type\"); // data-wpmeteor-type\n    if (type) {\n        newElement.type = type;\n    } else {\n        newElement.type = \"text/javascript\";\n    }\n\n    // CloudFlare RocketLoader workaround\n    if ((el.textContent || \"\").match(/^\\s*class RocketLazyLoadScripts/)) {\n        newElement.textContent = el.textContent.replace(/^\\s*class\\s*RocketLazyLoadScripts/, \"window.RocketLazyLoadScripts=class\").replace(\"RocketLazyLoadScripts.run();\", \"\");\n    } else {\n        newElement.textContent = el.textContent;\n    }\n\n    // these might not be set as attributes, but instead as properties\n    for (const property of [\"onload\", \"onerror\", \"onreadystatechange\"]) {\n        if (el[property]) {\n            process.env.DEBUG && c(delta(), `re-adding ${property} to`, el, el[property]);\n            newElement[property] = el[property];\n        }\n    }\n\n    return newElement;\n};\n\n// let scriptsToInsert = 0;\n/*\nconst replaceScript = (el, newElement) => {\n    const parentNode = el.parentNode;\n    if (parentNode) {\n        // some scripts want parentNode to remove script themselves\n        const newParent = parentNode.nodeType === 11\n            ? dOrigCreateElement(parentNode.host[tagName])\n            : dOrigCreateElement(parentNode[tagName]);\n        // rAF is probably inacceptable for inline scripts at least. Here is the catch\n        // a script is supposed to create another script which should be captured by MutationObserver\n        // but by the time document.createElement() is called, iterating = false\n        // this is temporary fix, probably there are better solutions\n        // scriptsToInsert++;\n        // rAF(() => {\n        //     scriptsToInsert--;\n        //     newParent[appendChild](parentNode.replaceChild(newElement, el));\n        // });\n        newParent[appendChild](parentNode.replaceChild(newElement, el));\n        if (!parentNode.isConnected) {\n            // it happens sometimes, so no need to trigger verbose error\n            process.env.DEBUG && ce(\"Parent for\", el, \" is not part of the DOM\");\n            // we have to return empty element to trigger onload() callback\n            // instantly instead of waiting for never firing onload event listener\n            return;\n        }\n        return el;\n    }\n    ce(\"No parent for\", el);\n};\n*/\n\nconst unblock = (el, callback) => {\n    // const ds = el.dataset;\n    let src = el[getAttribute](prefix + \"src\");\n    // convert relative to absolute if SPO\n    process.env.SPO && src && _wpmeteor.baseURL && (() => { try { src = new URL(src, _wpmeteor.baseURL).href; } catch { } })(); // eslint-disable-line no-empty\n\n    if (src) {\n        process.env.DEBUG && c(delta(), \"unblocking src\", src);\n\n        const addEventListener = origAddEventListener.bind(el);\n\n        // if (el.getEventListeners) {\n        //     el.getEventListeners().forEach(([event, listener]) => {\n        //         process.env.DEBUG && c(delta(), \"re-adding event listeners to element\", event, listener);\n        //         addEventListener(event, listener);\n        //     });\n        // }\n\n        if (el.isConnected && callback) {\n            addEventListener(L, callback);\n            addEventListener(E, callback);\n        }\n\n        /** setting type before src is crucial for load/error events to be triggered \n          * According to the HTML5 specification, when a script element is inserted \n          * into the document, it starts fetching the script as soon as the src attribute is encountered, \n          * provided the type is a recognized script type. If the type is not set correctly at that point, \n          * the script will not be fetched.\n          */\n        /* el.origtypegets and sets original \"type\" attribute, el.type points to data-wpmeteor-src */\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        /* el.origsrc gets and sets original \"src\" attribute, el.src points to data-wpmeteor-src */\n        el.origsrc = src;\n\n        /** Do not remove prefix + \"src\" and prefix + \"type\" attributes, they are needed in the following case:\n          * * document.currentScript.getAttribute('src') will return null if they are removed\n          * as access to the attributes is still wrapped by us\n          */\n        // el[removeAttribute](prefix + \"src\");\n        // el[removeAttribute](prefix + \"type\");\n\n        process.env.DEBUG && c(delta(), \"unblocked src\", src, el);\n        // http://www.iana.org/assignments/media-types/media-types.xhtml\n        // in fact only text/javascript is the right one, the rest is obsolete\n        if ((!el.isConnected || el[hasAttribute](\"nomodule\") || (el.type && !isJavascriptRegexp.test(el.type))) && callback) {\n            // listeners won't fire\n            // so have to trigger callback\n            callback(new Event(L, { target: el }));\n        }\n    } else if (el.origtype === javascriptBlocked) {\n        // onLoad is never passed here\n        process.env.DEBUG && c(delta(), \"unblocking inline\", el);\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        // have to insert updated content in order to trigger execution\n        // we are going to change the content, so integrity is not valid anymore\n        el[removeAttribute](\"integrity\");\n        el.textContent = el.textContent + \"\\n\";\n        process.env.DEBUG && c(delta(), \"unblocked inline\", el);\n    } else {\n        process.env.DEBUG && ce(delta(), \"already unblocked\", el);\n        if (callback) {\n            callback(new Event(L, { target: el }));\n        }\n    }\n};\n// TODO: support for ...args ????\nconst removeQueuedEventListener = (name, func) => {\n    const pos = (listeners[name] || []).indexOf(func);\n    if (pos >= 0) {\n        listeners[name][pos] = undefined;\n        return true;\n    }\n};\n\nconst documentAddEventListener = (event, func, ...args) => {\n    if (\"HTMLDocument::\" + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, d[addEventListener].bind(d, event, func, ...args));\n        return;\n    }\n    if (func && (event === DCL || event === RSC)) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = documentEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    return dOrigAddEventListener(event, func, ...args);\n};\n\n// ...args were missing, making it impossible to remove listeners for google maps mobile\nconst documentRemoveEventListener = (event, func, ...args) => {\n    if (event === DCL) {\n        const name = documentEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return dOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(d, {\n    [addEventListener]: {\n        get() { return documentAddEventListener; },\n        set() { return documentAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return documentRemoveEventListener; },\n        set() { return documentRemoveEventListener; },\n    }\n});\n\nlet preloadsAndPreconnectsFragment = d.createDocumentFragment();\nconst flushPreloadsAndPreconnects = () => {\n    if (preloadsAndPreconnectsFragment.hasChildNodes()) {\n        d.head[appendChild](preloadsAndPreconnectsFragment);\n        preloadsAndPreconnectsFragment = d.createDocumentFragment();\n    }\n};\nconst preconnects = process.env.SPO && { \"https://cdn.fastpixel.io\": true } || {};\nconst preconnect = (src) => {\n    if (!src)\n        return;\n    try {\n        const url = new URL(src, d.location.href);\n        const href = url.origin;\n        if (href && !preconnects[href] && d.location.host !== url.host) {\n            const s = dOrigCreateElement(\"link\");\n            s.rel = \"preconnect\";\n            s.href = href;\n            preloadsAndPreconnectsFragment[appendChild](s);\n            process.env.DEBUG && c(delta(), \"preconnecting\", url.origin);\n            preconnects[href] = true;\n            if (iterating) {\n                rAF(flushPreloadsAndPreconnects);\n            }\n        }\n    } catch (e) {\n        process.env.DEBUG && ce(delta(), \"failed to parse src for preconnect\", src, e);\n    }\n};\n\nconst preloads = {};\nconst preloadAsScript = (src, isModule, crossorigin, integrity) => {\n    const s = dOrigCreateElement(\"link\");\n    s.rel = isModule\n        ? \"modulepre\" + L\n        : \"pre\" + L;\n    s.as = \"script\";\n    if (crossorigin)\n        s[setAttribute](\"crossorigin\", crossorigin); // must be setAttribute\n    if (integrity)\n        s[setAttribute](\"integrity\", integrity); // must be setAttribute\n    try {\n        src = new URL(src, d.location.href).href;\n    } catch { }\n    s.href = src;\n    preloadsAndPreconnectsFragment[appendChild](s);\n    preloads[src] = true;\n    if (iterating) {\n        rAF(flushPreloadsAndPreconnects);\n    }\n};\n\n/*\nconst mayBePreloadScripts = () => {\n    if (_wpmeteor.preload && reorder.length) {\n        reorder.forEach(script => {\n            const src = script[getAttribute](prefix + \"src\");\n            if (src && !preloads[src] && !script[hasAttribute](\"nomodule\")) {\n                preloadAsScript(src, script[getAttribute](prefix + \"type\") == \"module\", script[hasAttribute](\"crossorigin\") && script[getAttribute](\"crossorigin\"), script[getAttribute](\"integrity\"));\n            }\n        });\n    }\n};\n*/\n\n/*\ndOrigAddEventListener(DCL, () => {\n    const treorder = [...reorder];\n    reorder.length = 0;\n    [...d[querySelectorAll](\"script[type='\" + javascriptBlocked + \"']\"), ...treorder].forEach(el => {\n        // this is a workaround to skip nodes that were detected in MutationObserver\n        // and already hit iterate(), however, they miss the next Object_defineProperty() for origtype\n        // so this is incorrect, and doesn't work, check for node.origtype presense was added\n        // with fixed MutationObserver this is not needed anymore\n        if (seenScripts.has(el)) {\n            process.env.DEBUG && ce(delta(), \"WARNING: the scripts should have been filtered in MutationObserver\", el);\n            return;\n        }\n        const originalAttributeGetter = el[__lookupGetter__](\"type\").bind(el);\n        Object_defineProperty(el, \"origtype\", {\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n        if ((el[getAttribute](prefix + \"src\") || \"\").match(/\\/gtm.js\\?/)) {\n            process.env.DEBUG && c(delta(), \"delaying regex\", el[getAttribute](prefix + \"src\"));\n            async.push(el);\n        } else if (el[hasAttribute](\"async\")) {\n            process.env.DEBUG && c(delta(), \"delaying async\", el[getAttribute](prefix + \"src\"));\n            async.unshift(el);\n        } else if (el[hasAttribute](\"defer\")) {\n            process.env.DEBUG && c(delta(), \"delaying defer\", el[getAttribute](prefix + \"src\"));\n            defer.push(el);\n        } else {\n            reorder.push(el);\n        }\n        seenScripts.add(el);\n    });\n    // we will loose all event listeners, so we'd better track addEventListener/removeEventListener as well\n    // not supported yet, cant find reference in backend\n    // const querySelectors = ['link'].map(n => n + '[' + prefix + 'onload]').join(',');\n    // d.querySelectorAll(querySelectors).forEach(el => reorder.push(el));\n});\n*/\n\n/* 3rd party scripts handling */\nconst createElement = function (...args) {\n\n    const scriptElt = dOrigCreateElement(...args);\n\n    // createElement(null), createElement(undefined) are valid calls\n    // so we have to check for args[0] presence\n    if (!args || args[0].toUpperCase() !== S || !iterating) {\n        return scriptElt;\n    }\n\n    process.env.DEBUG && c(delta(), \"creating script element\");\n\n    // Backup the original setAttribute function\n    const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt);\n    const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt);\n    const originalRemoveAttribute = scriptElt[removeAttribute].bind(scriptElt);\n    const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt);\n    const originalAttributes = scriptElt[__lookupGetter__](\"attributes\").bind(scriptElt);\n\n    // originalSetAttribute(prefix + \"after\", \"REORDER\");\n    // originalSetAttribute(prefix + \"type\", \"text/javascript\");\n\n    // scriptElt.type = javascriptBlocked;\n\n    // const eventListeners = [];\n    // scriptElt.getEventListeners = () => {\n    //     return eventListeners;\n    // };\n\n    capturedAttributes.forEach(property => {\n        const originalAttributeGetter = scriptElt[__lookupGetter__](property).bind(scriptElt);\n        const originalAttributeSetter = scriptElt[__lookupSetter__](property).bind(scriptElt);\n        O[definePropert + \"y\"](scriptElt, property, {\n            set(value) {\n                process.env.DEBUG && c(delta(), \"setting \", property, value);\n                // bypass for application/ld+json and similar\n                if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                    return originalSetAttribute(property, value);\n                }\n                if (property === \"src\" && value) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                } else if (property === \"type\" && value && scriptElt.origsrc) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                }\n                return value\n                    ? originalSetAttribute(prefix + property, value)\n                    : originalRemoveAttribute(prefix + property);\n            },\n            get() {\n                const result = scriptElt[getAttribute](prefix + property);\n                if (property === \"src\") {\n                    // convert to absolute\n                    try {\n                        const url = new URL(result, d.location.href);\n                        return url.href;\n                    } catch {\n                         \n                    }\n                }\n                return result;\n            }\n        });\n        Object_defineProperty(scriptElt, \"orig\" + property, {\n            set(value) {\n                return originalAttributeSetter(value);\n            },\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n\n    });\n\n    // this is not needded anymore as we are not copying the node\n    // so we don't need to reattach the listeners\n    // scriptElt[addEventListener] = function (event, handler) {\n    //     eventListeners.push([event, handler]);\n    // };\n\n    // Monkey patch the setAttribute function so that the setter is called instead.\n    // Otherwise, setAttribute('type', 'whatever') will bypass our custom descriptors!\n    scriptElt[setAttribute] = function (property, value) {\n        if (capturedAttributes.includes(property)) {\n            process.env.DEBUG && c(delta(), \"setting attribute\", property, value);\n            // bypass for application/ld+json and similar\n            if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                return originalSetAttribute(property, value);\n            }\n            if (property === \"src\" && value) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            } else if (property === \"type\" && value && scriptElt.origsrc) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            }\n            return value\n                ? originalSetAttribute(prefix + property, value)\n                : originalRemoveAttribute(prefix + property);\n        } else {\n            originalSetAttribute(property, value);\n        }\n    };\n\n    scriptElt[getAttribute] = function (property) {\n        const result = capturedAttributes.indexOf(property) >= 0\n            ? originalGetAttribute(prefix + property)\n            : originalGetAttribute(property);\n        if (property === \"src\") {\n            // convert to absolute\n            try {\n                const url = new URL(result, d.location.href);\n                return url.href;\n            } catch {\n                 \n            }\n        }\n        return result;\n    };\n\n    scriptElt[hasAttribute] = function (property) {\n        return capturedAttributes.indexOf(property) >= 0\n            ? originalHasAttribute(prefix + property)\n            : originalHasAttribute(property);\n    };\n\n    /* very shallow mocking of NamedNodeMap */\n    Object_defineProperty(scriptElt, \"attributes\", {\n        get() {\n            const mock = [...originalAttributes()]\n                .filter(attr => attr.name !== \"type\") // no need to filter as we no longer append it && attr.name !== prefix + \"after\")\n                .map(attr => {\n                    return {\n                        name: attr.name.match(new RegExp(prefix))\n                            ? attr.name.replace(prefix, \"\")\n                            : attr.name,\n                        value: attr.value\n                    };\n                });\n            return mock;\n        }\n    });\n\n    // this is to make it to the async queue where it belongs\n    scriptElt[__dynamic] = true;\n\n    return scriptElt;\n};\n\n// Allowing to override, but still not the best option - onetrust captures createElement \n// even for users who accepted cookies\nObject.defineProperty(Document[prototype], \"createElement\", {\n    set(value) {\n        if (process.env.DEBUG) {\n            if (value == origCreateElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement restored to original\");\n            } else if (value === createElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden\");\n            } else {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden by a 3rd party script\");\n            }\n        }\n        if (value !== createElement) {\n            createElementOverride = value;\n        }\n    },\n    get() {\n        return createElementOverride || createElement;\n    }\n});\n\nconst seenScripts = new Set();\nconst observer = new MutationObserver(mutations => {\n    mutations.forEach(({ removedNodes, addedNodes, target }) => {\n        // this is the case for https://essential-addons.com/elementor/offcanvas-content/\n        // which, in EAELOffcanvasContent.prototype = { init: function() { \n        // ... 0 === e(\".eael-offcanvas-container\").length && (e(\"body\").wrapInner('<div class=\"eael-offcanvas-container eael-offcanvas-container-' + this.id + '\" />'),\n        // }}\n        // wraps the whole body into a div, removes some scripts from the DOM and reinserts them wrapped in .eael-offcanvas-container.eael-offcanvas-container-<id>\n        removedNodes.forEach(node => {\n            // For each removed script tag\n            if (node.nodeType === 1 && S === node[tagName] && \"origtype\" in node) {\n                seenScripts.delete(node);\n            }\n        });\n        addedNodes.forEach(node => {\n            // For each added script tag\n            if (node.nodeType === 1) {\n                if (S === node[tagName]) {\n                    // process.env.DEBUG && c(delta(), \"XXXX\", node, node.origtype, node[getAttribute](\"type\"));\n                    if (\"origtype\" in node) {\n                        // process.env.DEBUG && c(delta(), \"mutationobserver captured some script\", node.cloneNode(true));\n                        if (node.origtype !== javascriptBlocked) {\n                            process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                            return;\n                        }\n                    } else if (node[getAttribute](\"type\") !== javascriptBlocked) {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                        return;\n                    }\n                    // all the intercepted nodes inserted by createElement() should have origtype getter\n                    if (!(\"origtype\" in node)) {\n                        process.env.DEBUG && (node[getAttribute](\"type\") === javascriptBlocked\n                            ? c(delta(), \"mutationobserver captured blocked script\", node)\n                            : c(delta(), \"mutationobserver captured non-javascript script\", node));\n                        capturedAttributes.forEach(property => {\n                            const originalAttributeGetter = node[__lookupGetter__](property).bind(node);\n                            const originalAttributeSetter = node[__lookupSetter__](property).bind(node);\n                            Object_defineProperty(node, \"orig\" + property, {\n                                set(value) {\n                                    return originalAttributeSetter(value);\n                                },\n                                get() {\n                                    return originalAttributeGetter();\n                                }\n                            });\n                        });\n                    } else {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured new script\", node.cloneNode(true));\n                    }\n\n                    // const src = node[getAttribute](prefix + \"src\");\n                    const src = node[getAttribute](prefix + \"src\");\n\n                    if (seenScripts.has(node)) {\n                        ce(\"Inserted twice\", node);\n                    }\n\n                    if (node.parentNode) {\n                        seenScripts.add(node);\n                        const origType = node[getAttribute](prefix + \"type\");\n                        if ((src || \"\").match(/\\/gtm.js\\?/)) {\n                            process.env.DEBUG && c(delta(), \"delaying regex\", node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        } else if (node[hasAttribute](\"async\") || node[__dynamic]) {\n                            process.env.DEBUG && c(delta(),\n                                node.__async\n                                    ? \"delaying dynamically inserted script as async\"\n                                    : \"delaying async\",\n                                node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules:\n                        // \"There is no need to use the defer attribute (see <script> attributes) \n                        // when loading a module script; modules are deferred automatically.\"\n                        } else if (node[hasAttribute](\"defer\") || origType === \"module\") {\n                            process.env.DEBUG && c(delta(), \"delaying defer\", node[getAttribute](prefix + \"src\"));\n                            defer.push(node);\n                            preconnect(src);\n                        } else {\n                            if (src && !node[hasAttribute](\"nomodule\") && !preloads[src]) {\n                                // no need to preload if it is the next script in the queue\n                                // VWO removes node instantly\n                                preloadAsScript(src, origType === \"module\", node[hasAttribute](\"crossorigin\") && node[getAttribute](\"crossorigin\"), node[getAttribute](\"integrity\"));\n                            }\n                            reorder.push(node);\n                        }\n                    } else {\n                        // if the node has been instanly removed, we still want to load it and run\n                        // I tested appendNode(script); removeNode(script) - it still loads and triggers the code\n                        process.env.DEBUG && ce(\"No parent node for\", node, \"re-adding to\", target);\n                        node[addEventListener](L, e => e.target.parentNode[removeChild](e.target));\n                        node[addEventListener](E, e => e.target.parentNode[removeChild](e.target));\n                        target[appendChild](node);\n                        // no need to push to seenScripts and reorder as it will happen on the next iteration\n                        // of MutationObserver\n                    }\n                } else if (\"LINK\" === node[tagName] && node[getAttribute](\"as\") === \"script\") {\n                    preloads[node[getAttribute](\"href\")] = true;\n                }\n            }\n        });\n    });\n});\n\nconst mutationObserverOptions = {\n    childList: true,\n    subtree: true,\n    // attributes: true,\n    // attributeFilter: ['src', 'type'],\n    // attributeOldValue: true,\n};\n\nobserver.observe(d.documentElement, mutationObserverOptions);\n\nconst origAttachShadow = HTMLElement[prototype].attachShadow;\nHTMLElement[prototype].attachShadow = function (options) {\n    const shadowRoot = origAttachShadow.call(this, options);\n    if (options.mode === \"open\") {\n        observer.observe(shadowRoot, mutationObserverOptions);\n    }\n    return shadowRoot;\n};\n\nprocess.env.SPO || (() => {\n    const origIFrameSrc = O[getOwnPropertyDescriptor](HTMLIFrameElement[prototype], \"src\");\n    Object_defineProperty(HTMLIFrameElement[prototype], \"src\", {\n        get() {\n            if (this.dataset.fpoSrc) {\n                return this.dataset.fpoSrc;\n            }\n            return origIFrameSrc.get.call(this);\n        },\n        set(value) {\n            delete this.dataset.fpoSrc;\n            origIFrameSrc.set.call(this, value);\n        }\n    });\n})();\n\n// cleaning up\ndispatcher.on(EVENT_THE_END, () => {\n    process.env.DEBUG && c(delta(), \"THE END\");\n    if (!createElementOverride || createElementOverride === createElement) {\n        Document[prototype].createElement = origCreateElement;\n        observer.disconnect();\n    } else {\n        process.env.DEBUG && c(delta(), \"createElement is overridden, keeping observers in place\");\n    }\n    // we should only fire EVENT_REPLAY_CAPTURED_EVENTS if no lazyload is in the page\n    // eg in pure WP METEOR mode, not for FASTPIXEL\n    process.env.SPO || dispatchEvent(new CustomEvent(EVENT_REPLAY_CAPTURED_EVENTS));\n    dispatchEvent(new CustomEvent(EVENT_THE_END));\n});\n/* end 3rd party scripts handling */\n\n/* we have to override document.write as all of them will fire after DOMContentLoaded */\nlet documentWrite = (str) => {\n    let parent, currentScript;\n    if (!d.currentScript || !d.currentScript.parentNode) {\n        /* trying our best */\n        parent = d.body;\n        currentScript = parent.lastChild;\n    } else {\n        currentScript = d.currentScript;\n        parent = currentScript.parentNode;\n    }\n    try {\n        const df = dOrigCreateElement(\"div\");\n        df.innerHTML = str;\n        Array.from(df.childNodes).forEach(node => {\n            if (node.nodeName === S) {\n                // cloneScript is a must for safari\n                parent.insertBefore(cloneScript(node), currentScript);\n            } else {\n                parent.insertBefore(node, currentScript);\n            }\n        });\n    } catch (e) {\n        ce(e);\n    }\n};\nlet documentWriteLn = (str) => documentWrite(str + \"\\n\");\n\nObject_defineProperties(d, {\n    \"write\": {\n        get() { return documentWrite; },\n        set(func) { return documentWrite = func; },\n    },\n    \"writeln\": {\n        get() { return documentWriteLn; },\n        set(func) { return documentWriteLn = func; },\n    },\n});\n\n// Capturing and queueing Window Load event handlers\nlet windowAddEventListener = (event, func, ...args) => {\n    // We have to skip registering message listeners if DONE, as we already restored \n    // original eventListener to messages in restoreMessageListener()\n    // ??? not sure why there is windowEventPrefix instead of documentEventPrefix\n    // but I think this was to workaround some external javascripts\n    if (windowEventPrefix + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (windowEventPrefix + L == currentlyFiredEvent && event === L) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (func && (event === L || event === DCL || (event === M && !DONE))) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    // process.env.DEBUG && c(event, func);\n    return wOrigAddEventListener(event, func, ...args);\n};\nlet windowRemoveEventListener = (event, func, ...args) => {\n    if (event === L) { // L = load\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return wOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(w, {\n    [addEventListener]: {\n        get() { return windowAddEventListener; },\n        set() { return windowAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return windowRemoveEventListener; },\n        set() { return windowRemoveEventListener; },\n    }\n});\n\nconst onHandlerOptions = (name) => {\n    let handler;\n    return {\n        get() {\n            process.env.DEBUG && c(delta(), separator, \"getting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", handler);\n            return handler;\n        },\n        set(func) {\n            process.env.DEBUG && c(delta(), separator, \"setting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", func);\n            // only last handler should fire\n            if (handler) {\n                removeQueuedEventListener(name, func);\n            }\n            listeners[name] = listeners[name] || [];\n            listeners[name].push(func);\n            return handler = func;\n        },\n        // rocket-loader from CloudFlare tries to override onload so we will let him\n        // configurable: true,\n    };\n};\n\n/* \n * this code handles event from onload attributes\n * when rewriting body, iframes, images and scripts\n * we move original onload attribute to data-wpemeteor-onload\n * and replace onload with a function that fires CustomEvent(EVENT_ELEMENT_LOADED)\n */\n// bind to window\n// 2024-02-18: it seems that the only element we need this workaround are <document onload> and <html onload>\nwOrigAddEventListener(EVENT_ELEMENT_LOADED, e => {\n    const { target, event } = e.detail;\n    const el = target === w ? d.body : target;\n    const func = el[getAttribute](prefix + \"on\" + event.type);\n    el[removeAttribute](prefix + \"on\" + event.type);\n    try {\n        const f = new Function(\"event\", func);\n        if (target === w) {\n            // the trick here is to enqueue Window::load\n            // using overridden window.addEventListener\n            w[addEventListener](L, f.bind(target, event));\n        } else {\n            f.call(target, event);\n        }\n    } catch (err) {\n        console.err(err);\n    }\n});\n\n// overriding window.onload and document.body.onload, they are the same function\n{\n\n    const options = onHandlerOptions(windowEventPrefix + L);\n    Object_defineProperty(w, \"onload\", options);\n    dOrigAddEventListener(DCL, () => {\n        Object_defineProperty(d.body, \"onload\", options);\n    });\n}\n// overriding document.onreadystatechange\nObject_defineProperty(d, \"onreadystatechange\", onHandlerOptions(documentEventPrefix + RSC));\n// overriding window.onmessage\nObject_defineProperty(w, \"onmessage\", onHandlerOptions(windowEventPrefix + M));\n\n// rdelay delay is handled in the fpo-inpage-lazyload\n// previously it was handled here along with EVENT_FIRST_INTERACTION\n// I moved both to fpo-inpage-lazyload\nprocess.env.SPO &&\n    wOrigAddEventListener(EVENT_CSS_LOADED, () => dispatcher.emit(EVENT_IMAGES_LOADED)); /* , _wpmeteor.rdelay); */\n\nprocess.env.SPO\n    || (() => {\n\n        const wheight = w.innerHeight;\n        const wwidth = w.innerWidth;\n\n        const intersectsViewport = (el) => {\n            // chrome settings\n            // https://web.dev/browser-level-image-lazy-loading/#improved-data-savings-and-distance-from-viewport-thresholds\n            let extras = {\n                \"4g\": 1250,\n                \"3g\": 2500,\n                \"2g\": 2500,\n            };\n\n            const extra = extras[(navigator.connection || {}).effectiveType] || 0;\n            const rect = el.getBoundingClientRect();\n            const viewport = {\n                top: -1 * wheight - extra,\n                left: -1 * wwidth - extra,\n                bottom: wheight + extra,\n                right: wwidth + extra\n            };\n\n            // If one rectangle is on left side of other\n            if (rect.left >= viewport.right || rect.right <= viewport.left)\n                return false;\n\n            // If one rectangle is above other\n            if (rect.top >= viewport.bottom || rect.bottom <= viewport.top)\n                return false;\n\n            return true;\n        };\n\n        const waitForImages = (reallyWait = true) => {\n            let imagesToLoad = 1;\n            let imagesLoadedCount = -1;\n            const seen = {};\n\n            const imageLoadedHandler = () => {\n                imagesLoadedCount++;\n                // let's trigger \n                if (!--imagesToLoad) {\n                    process.env.DEBUG && c(delta(), imagesLoadedCount + \" eager images loaded\");\n                    // there are 2 options here\n                    // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n                    // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n\n                    // 1.\n                    w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n                    // 2. \n                    // should never get there, as we bypass waitForImages()\n                    // dispatcher.emit(EVENT_IMAGES_LOADED);\n                }\n            };\n\n            Array.from(d.getElementsByTagName(\"*\")).forEach(tag => {\n                let src, style, bgUrl;\n                if (tag[tagName] === \"IMG\") {\n                    let _src = tag.currentSrc || tag.src; // trying to capture srcsets if they are already loading\n                    if (_src && !seen[_src] && !_src.match(/^data:/i)) {\n                        if ((tag.loading || \"\").toLowerCase() !== \"lazy\") {\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading image\", src, \"for\", tag);\n                        } else if (intersectsViewport(tag)) { // lazy && already loading\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading lazy image\", src, \"for\", tag);\n                        }\n                    }\n                } else if (tag[tagName] === S) {\n                    preconnect(tag[getAttribute](prefix + \"src\"));\n                } else if (tag[tagName] === \"LINK\" && tag[getAttribute](\"as\") === \"script\" && [\"pre\" + L, \"modulepre\" + L].indexOf(tag[getAttribute](\"rel\")) >= 0) {\n                    preloads[tag[getAttribute](\"href\")] = true;\n                    // supposedly all CSS has already been loaded\n                } else if ((style = w.getComputedStyle(tag)) && (bgUrl = (style.backgroundImage || \"\").match(/^url\\s*\\((.*?)\\)/i)) && (bgUrl || []).length) { // eslint-disable-line no-cond-assign\n                    const url = bgUrl[0].slice(4, -1).replace(/\"/g, \"\");\n                    if (!seen[url] && !url.match(/^data:/i)) {\n                        src = url;\n                        process.env.DEBUG && c(delta(), \"loading background\", src, \"for\", tag);\n                    }\n                }\n                if (src) {\n                    seen[src] = true;\n                    const temp = new Image();\n                    if (reallyWait) {\n                        imagesToLoad++;\n                        temp[addEventListener](L, imageLoadedHandler);\n                        temp[addEventListener](E, imageLoadedHandler);\n                    }\n                    temp.src = src;\n                }\n            });\n            d.fonts.ready.then(() => {\n                process.env.DEBUG && c(delta(), \"fonts ready\");\n                imageLoadedHandler();\n            });\n        };\n\n        if (_wpmeteor.rdelay === 0) {\n            // dOrigAddEventListener(DCL, () => nextTick(waitForImages.bind(null, false)));\n            dOrigAddEventListener(DCL, waitForImages);\n        } else {\n            // there are 2 options here\n            // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n            // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n            // Reasoning for 1. is that on slow connections, we still want to wait for images to load\n\n            // 1.\n            wOrigAddEventListener(L, waitForImages);\n            // 2.\n            // w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n        }\n    })();\n"],
     5  "mappings": "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",
     6  "names": ["addEventListener", "removeEventListener", "getAttribute", "setAttribute", "removeAttribute", "hasAttribute", "querySelector", "querySelectorAll", "appendChild", "removeChild", "createElement", "tagName", "getOwnPropertyDescriptor", "prototype", "__lookupGetter__", "__lookupSetter__", "DCL", "L", "E", "w", "d", "de", "ce", "mocked", "jQueryMock", "Mock", "Mock$", "override", "jQuery", "symbol", "enqueue", "func", "d", "addEventListener", "DCL", "e", "$", "oldReady", "oldPrototypeReady", "EVENT_FIRST_INTERACTION", "EVENT_REPLAY_CAPTURED_EVENTS", "EVENT_ELEMENT_LOADED", "EVENT_IMAGES_LOADED", "EVENT_THE_END", "EVENT_CLICK", "w", "wOrigAddEventListener", "wOrigRemoveEventListener", "ra", "ga", "sa", "passiveEvents", "activeEvents", "captureEvents", "prefix", "dispatchEvent", "synteticCick", "event", "EVENT_CLICK", "InteractionEvents", "firstInteractionFired", "p", "n", "w", "capturedEvents", "captureEvent", "e", "passiveEvents", "captureEvents", "sa", "prefix", "EVENT_FIRST_INTERACTION", "EVENT_REPLAY_CAPTURED_EVENTS", "activeEvents", "wOrigRemoveEventListener", "target", "ga", "ra", "wOrigAddEventListener", "browser_default", "InteractionEvents", "EventEmitter", "name", "data", "l", "callback", "c", "dispatcher_default", "EventEmitter", "$deviceMode", "d", "createElement", "setAttribute", "attached", "device_mode_default", "appendChild", "getClass", "el", "getAttribute", "setClass", "value", "setAttribute", "animations_default", "w", "addEventListener", "L", "mode", "device_mode_default", "vw", "de", "vh", "keys", "d", "querySelectorAll", "viewportOffset", "settings", "animationDelay", "animation", "key", "i", "oldClass", "newClass", "timeout", "dispatcher_default", "e", "inmega", "pp_menu_default", "div", "d", "createElement", "placeholder", "prevAll", "el", "result", "addEventListener", "DCL", "querySelectorAll", "ul", "getAttribute", "setAttribute", "prev", "tagName", "span", "appendChild", "mutations", "addedNodes", "node", "removeChild", "RSC", "M", "S", "prefix", "Object_defineProperty", "Object_defineProperties", "javascriptBlocked", "isJavascriptRegexp", "_rAF", "_rIC", "_setTimeout", "__dynamic", "windowEventPrefix", "w", "documentEventPrefix", "d", "forEach", "callback", "thisArg", "i", "prototype", "animations_default", "pp_menu_default", "reorder", "defer", "async", "DONE", "eventQueue", "listeners", "WindowLoaded", "firedEventsCount", "rAF", "rIC", "addEventListener", "nextTick", "createElementOverride", "capturedAttributes", "O", "definePropert", "object", "property", "options", "RSC", "L", "descriptor", "getOwnPropertyDescriptor", "value", "properties", "sym", "origAddEventListener", "origRemoveEventListener", "removeEventListener", "dOrigAddEventListener", "dOrigRemoveEventListener", "wOrigAddEventListener", "wOrigRemoveEventListener", "origCreateElement", "dOrigCreateElement", "origReadyStateGetter", "__lookupGetter__", "readyState", "hasUnfiredListeners", "eventNames", "event", "context", "j", "name", "listenerKey", "firedListeners", "currentlyFiredEvent", "fireQueuedEvents", "func", "e", "ce", "DCL", "iterating", "M", "messageListener", "origWindowOnMessageGetter", "origWindowOnMessageSetter", "__lookupSetter__", "restoreMessageListener", "listener", "jQuery", "jQueryMock", "startIterating", "flushPreloadsAndPreconnects", "iterate", "EVENT_FIRST_INTERACTION", "dispatcher_default", "EVENT_IMAGES_LOADED", "browser_default", "scriptsToLoad", "scriptLoaded", "script", "EVENT_THE_END", "iterating", "iterate", "element", "reorder", "getAttribute", "prefix", "hasAttribute", "__dynamic", "scriptsToLoad", "scriptLoaded", "unblock", "nextTick", "javascriptBlocked", "defer", "hasUnfiredListeners", "DCL", "RSC", "M", "fireQueuedEvents", "WindowLoaded", "L", "rIC", "async", "w", "e", "ce", "d", "restoreMessageListener", "jQuery", "DONE", "_setTimeout", "cloneScript", "el", "newElement", "dOrigCreateElement", "S", "attrs", "i", "setAttribute", "type", "property", "callback", "src", "addEventListener", "origAddEventListener", "E", "isJavascriptRegexp", "removeAttribute", "removeQueuedEventListener", "name", "func", "pos", "listeners", "documentAddEventListener", "event", "args", "currentlyFiredEvent", "dispatcher_default", "EVENT_THE_END", "documentEventPrefix", "dOrigAddEventListener", "documentRemoveEventListener", "dOrigRemoveEventListener", "Object_defineProperties", "removeEventListener", "preloadsAndPreconnectsFragment", "flushPreloadsAndPreconnects", "appendChild", "preconnects", "preconnect", "url", "href", "rAF", "preloads", "preloadAsScript", "isModule", "crossorigin", "integrity", "s", "createElement", "scriptElt", "originalSetAttribute", "originalGetAttribute", "originalRemoveAttribute", "originalHasAttribute", "originalAttributes", "__lookupGetter__", "capturedAttributes", "originalAttributeGetter", "originalAttributeSetter", "__lookupSetter__", "O", "definePropert", "value", "result", "Object_defineProperty", "attr", "prototype", "createElementOverride", "seenScripts", "observer", "mutations", "removedNodes", "addedNodes", "target", "node", "tagName", "origType", "removeChild", "mutationObserverOptions", "origAttachShadow", "options", "shadowRoot", "origIFrameSrc", "getOwnPropertyDescriptor", "origCreateElement", "EVENT_REPLAY_CAPTURED_EVENTS", "documentWrite", "str", "parent", "currentScript", "df", "documentWriteLn", "windowAddEventListener", "windowEventPrefix", "wOrigAddEventListener", "windowRemoveEventListener", "wOrigRemoveEventListener", "onHandlerOptions", "handler", "EVENT_ELEMENT_LOADED", "f", "err", "wheight", "wwidth", "intersectsViewport", "extra", "rect", "viewport", "waitForImages", "reallyWait", "imagesToLoad", "imagesLoadedCount", "seen", "imageLoadedHandler", "EVENT_IMAGES_LOADED", "tag", "style", "bgUrl", "_src", "temp"]
    77}
  • wp-meteor/trunk/blocker/Exclusions/GDPR.php

    r3179645 r3264604  
    132132    {
    133133        $exists = isset($sanitized[$this->id]['enabled']);
    134         $sanitized[$this->id] = array_merge($settings[$this->id], $sanitized[$this->id] ?: []);
     134        $sanitized[$this->id] = array_merge($settings[$this->id], @$sanitized[$this->id] ?: []);
    135135        $sanitized[$this->id]['enabled'] = $exists;
    136136
  • wp-meteor/trunk/readme.txt

    r3264090 r3264604  
    55Requires at least: 4.5
    66Tested up to: 6.7
    7 Stable tag: 3.4.14
     7Stable tag: 3.4.15
    88Requires PHP: 7.0
    99License: GPLv3 or later
     
    115115== Changelog ==
    116116
     1173.4.15 - Undefined index: gdpr warning fixed
    1171183.4.14 - [Bug](https://wordpress.org/support/topic/elementor-embed-youtube-video-not-showing/) fixed, infinite loop in some conditions fixed
    1181193.4.13 - Link to [FastPixel](https://wordpress.org/plugins/fastpixel-website-accelerator/) added
  • wp-meteor/trunk/src/js/public/public.js

    r3264090 r3264604  
    531531  const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt);
    532532  const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt);
     533  const originalRemoveAttribute = scriptElt[removeAttribute].bind(scriptElt);
    533534  const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt);
    534535  const originalAttributes = scriptElt[__lookupGetter__]("attributes").bind(scriptElt);
     
    540541        process.env.DEBUG && c(delta(), "setting ", property, value);
    541542        if (property === "type" && value && !isJavascriptRegexp.test(value)) {
    542           return scriptElt[setAttribute](property, value);
     543          return originalSetAttribute(property, value);
    543544        }
    544545        if (property === "src" && value) {
     
    547548          originalSetAttribute("type", javascriptBlocked);
    548549        }
    549         return value ? scriptElt[setAttribute](prefix + property, value) : scriptElt[removeAttribute](prefix + property);
     550        return value ? originalSetAttribute(prefix + property, value) : originalRemoveAttribute(prefix + property);
    550551      },
    551552      get() {
     
    581582        originalSetAttribute("type", javascriptBlocked);
    582583      }
    583       return value ? originalSetAttribute(prefix + property, value) : scriptElt[removeAttribute](prefix + property);
     584      return value ? originalSetAttribute(prefix + property, value) : originalRemoveAttribute(prefix + property);
    584585    } else {
    585586      originalSetAttribute(property, value);
  • wp-meteor/trunk/vendor/composer/installed.php

    r3264090 r3264604  
    44        'pretty_version' => 'dev-main',
    55        'version' => 'dev-main',
    6         'reference' => '3aeb667db13d289081c23fcdb86835063b884c20',
     6        'reference' => 'bd04c4e47f726791e90c66211bd22f91157562dd',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-main',
    1515            'version' => 'dev-main',
    16             'reference' => '3aeb667db13d289081c23fcdb86835063b884c20',
     16            'reference' => 'bd04c4e47f726791e90c66211bd22f91157562dd',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
  • wp-meteor/trunk/wp-meteor.php

    r3264090 r3264604  
    1111 * Plugin URI:      https://wp-meteor.com/
    1212 * Description:     Improves your page speed, even on top of your existing optimizations
    13  * Version:         3.4.14
     13 * Version:         3.4.15
    1414 * Author:          Aleksandr Guidrevitch
    1515 * Author URI:      https://wp-meteor.com/
     
    2626}
    2727
    28 define('WPMETEOR_VERSION', '3.4.14');
     28define('WPMETEOR_VERSION', '3.4.15');
    2929define('WPMETEOR_TEXTDOMAIN', 'wp-meteor');
    3030define('WPMETEOR_NAME', 'WP Meteor');
Note: See TracChangeset for help on using the changeset viewer.