{
  "version": 3,
  "sources": ["/cdn/shop/t/1/assets/ucl-final-landing.js?rev=20260424-fixed-bg-1"],
  "sourcesContent": ["(function () {\n  var CX_UCL_SHOP_DOMAIN_WHITELIST = {\n    \"test-app-english.myshopify.com\": \"\u6D4B\u8BD5\u5546\u5E97\",\n    \"fbed87-94.myshopify.com\": \"FKK\u82F1\u56FD\u7AD9\",\n    \"7hn35a-sn.myshopify.com\": \"CPS\u897F\u73ED\u7259\u7AD9\",\n    \"y1zcwg-pe.myshopify.com\": \"MFT\u897F\u73ED\u7259\u7AD9\",\n    \"s40hyy-wn.myshopify.com\": \"BLK\u6BD4\u5229\u65F6\u7AD9\",\n    \"q1r1mm-4n.myshopify.com\": \"TMS\u5308\u7259\u5229\u7AD9\",\n    \"8ah0vg-x1.myshopify.com\": \"ESC\u8461\u8404\u7259\u7AD9\"\n  };\n\n  function normalizeShopDomain(value) {\n    return String(value || \"\").trim().toLowerCase();\n  }\n\n  function isWhitelistedShopDomain(value) {\n    return !!CX_UCL_SHOP_DOMAIN_WHITELIST[normalizeShopDomain(value)];\n  }\n\n  function getCurrentShopDomain(root) {\n    var preferred = root && root.getAttribute ? root.getAttribute(\"data-cx-shop-domain\") : \"\";\n    var normalizedPreferred = normalizeShopDomain(preferred);\n    if (normalizedPreferred && isWhitelistedShopDomain(normalizedPreferred)) {\n      return normalizedPreferred;\n    }\n\n    var hostname = window.location && window.location.hostname ? window.location.hostname : \"\";\n    var normalizedHostname = normalizeShopDomain(hostname);\n    if (isWhitelistedShopDomain(normalizedHostname)) {\n      return normalizedHostname;\n    }\n\n    return \"\";\n  }\n\n  function scrollToTarget(id) {\n    if (!id) return;\n    var target = document.getElementById(id);\n    if (!target) return;\n    target.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n  }\n\n  function setButtonState(button, state, text) {\n    if (!button) return;\n    button.classList.remove(\"is-loading\", \"is-success\", \"is-error\");\n    if (state) button.classList.add(state);\n    var label = button.querySelector(\"[data-cx-button-label]\");\n    if (label && text) label.textContent = text;\n    if (!label && text) button.textContent = text;\n    if (text) button.setAttribute(\"aria-label\", text);\n  }\n\n  function updateGlobalCartCount(count) {\n    var itemCount = Math.max(0, Number(count) || 0);\n    var bubbleSelectors = [\n      \"#cart-icon-bubble .cart-count-bubble span\",\n      \"#cart-icon-bubble .cart-count-bubble\",\n      \".cart-count-bubble span\",\n      \".cart-count-bubble\"\n    ];\n\n    bubbleSelectors.forEach(function (selector) {\n      document.querySelectorAll(selector).forEach(function (node) {\n        if (itemCount > 0) {\n          if (\"hidden\" in node) node.hidden = false;\n          node.textContent = itemCount > 9 ? \"9+\" : String(itemCount);\n        } else if (\"hidden\" in node) {\n          node.hidden = true;\n        }\n      });\n    });\n\n    var iconBubble = document.getElementById(\"cart-icon-bubble\");\n    if (iconBubble) {\n      iconBubble.classList.toggle(\"is-empty\", itemCount === 0);\n    }\n\n    document.dispatchEvent(new CustomEvent(\"cart:updated\", {\n      detail: { itemCount: itemCount }\n    }));\n  }\n\n  function animateDigit(node, value) {\n    if (!node) return;\n    var previous = node.getAttribute(\"data-cx-last\");\n    if (previous !== value) {\n      node.textContent = value;\n      node.setAttribute(\"data-cx-last\", value);\n      node.classList.remove(\"is-flip\");\n      void node.offsetWidth;\n      node.classList.add(\"is-flip\");\n      window.setTimeout(function () {\n        node.classList.remove(\"is-flip\");\n      }, 320);\n    } else {\n      node.textContent = value;\n    }\n  }\n\n  function safeParse(value, fallback) {\n    try {\n      return value ? JSON.parse(value) : fallback;\n    } catch (error) {\n      return fallback;\n    }\n  }\n\n  function readStorage(key, fallback) {\n    if (!key) return fallback;\n    try {\n      return safeParse(window.localStorage.getItem(key), fallback);\n    } catch (error) {\n      return fallback;\n    }\n  }\n\n  function writeStorage(key, value) {\n    if (!key) return;\n    try {\n      window.localStorage.setItem(key, JSON.stringify(value));\n    } catch (error) {}\n  }\n\n  function getCommentCooldownKey(baseKey, email, shopDomain) {\n    return [baseKey || \"cx-comment-cooldown\", normalizeShopDomain(email), normalizeShopDomain(shopDomain)].join(\"::\");\n  }\n\n  function postJson(url, payload, shopDomain) {\n    if (!url) return Promise.resolve(null);\n    var requestPayload = Object.assign({}, payload || {});\n    if (!requestPayload.shop_domain && shopDomain) {\n      requestPayload.shop_domain = shopDomain;\n    }\n\n    return fetch(url, {\n      method: \"POST\",\n      mode: \"no-cors\",\n      keepalive: true,\n      headers: {\n        \"Content-Type\": \"text/plain;charset=utf-8\"\n      },\n      body: JSON.stringify(requestPayload)\n    }).then(function () {\n      return { status: \"sent\" };\n    });\n  }\n\n  function makeCommentId(row, fallbackIndex) {\n    if (row && row.id != null && row.id !== \"\") return String(row.id);\n    var seed = [\n      row && row.team ? row.team : \"\",\n      row && row.author ? row.author : \"\",\n      row && row.content ? row.content : row && row.comment ? row.comment : row && row.text ? row.text : \"\",\n      row && row.createdAt ? row.createdAt : \"\",\n      fallbackIndex != null ? fallbackIndex : \"\"\n    ].join(\"|\");\n    var hash = 0;\n    for (var index = 0; index < seed.length; index += 1) {\n      hash = (hash * 31 + seed.charCodeAt(index)) >>> 0;\n    }\n    return \"cx-\" + hash.toString(16);\n  }\n\n  function initCountdown(root) {\n    root.querySelectorAll(\"[data-cx-countdown]\").forEach(function (node) {\n      var target = node.getAttribute(\"data-target\");\n      if (!target) return;\n      var targetTime = new Date(target).getTime();\n      if (Number.isNaN(targetTime)) return;\n      var parts = {\n        days: node.querySelector(\"[data-cx-days]\"),\n        hours: node.querySelector(\"[data-cx-hours]\"),\n        minutes: node.querySelector(\"[data-cx-minutes]\"),\n        seconds: node.querySelector(\"[data-cx-seconds]\")\n      };\n\n      var update = function () {\n        var diff = Math.max(0, targetTime - Date.now());\n        animateDigit(parts.days, String(Math.floor(diff / 86400000)).padStart(2, \"0\"));\n        animateDigit(parts.hours, String(Math.floor((diff % 86400000) / 3600000)).padStart(2, \"0\"));\n        animateDigit(parts.minutes, String(Math.floor((diff % 3600000) / 60000)).padStart(2, \"0\"));\n        animateDigit(parts.seconds, String(Math.floor((diff % 60000) / 1000)).padStart(2, \"0\"));\n      };\n\n      update();\n      window.setInterval(update, 1000);\n    });\n  }\n\n  function refreshCartCount(root) {\n    fetch(\"/cart.js\", { headers: { Accept: \"application/json\" } })\n      .then(function (response) { return response.json(); })\n      .then(function (cart) {\n        updateGlobalCartCount(cart.item_count);\n        root.querySelectorAll(\"[data-cx-cart-count]\").forEach(function (badge) {\n          if (cart.item_count > 0) {\n            badge.hidden = false;\n            badge.textContent = cart.item_count > 9 ? \"9+\" : String(cart.item_count);\n          } else {\n            badge.hidden = true;\n          }\n        });\n      })\n      .catch(function () {});\n  }\n\n  function initCart(root) {\n    root.querySelectorAll(\"[data-cx-product-card]\").forEach(function (card) {\n      card.querySelectorAll(\"[data-cx-size]\").forEach(function (sizeButton) {\n        sizeButton.addEventListener(\"click\", function () {\n          card.classList.remove(\"is-size-error\");\n          card.querySelectorAll(\"[data-cx-size]\").forEach(function (node) {\n            node.classList.remove(\"is-active\");\n          });\n          sizeButton.classList.add(\"is-active\");\n        });\n      });\n    });\n\n    root.querySelectorAll(\"[data-cx-atc]\").forEach(function (form) {\n      form.addEventListener(\"submit\", function (event) {\n        event.preventDefault();\n        var card = form.closest(\"[data-cx-product-card]\");\n        if (card && card.querySelectorAll(\"[data-cx-size]\").length && !card.querySelector(\"[data-cx-size].is-active\")) {\n          card.classList.add(\"is-size-error\");\n          window.setTimeout(function () {\n            card.classList.remove(\"is-size-error\");\n          }, 1500);\n          return;\n        }\n\n        var button = form.querySelector(\"[type='submit']\");\n        var variantInput = form.querySelector(\"input[name='id']\");\n        if (!variantInput || !variantInput.value) return;\n        var original = button && button.getAttribute(\"data-label\") ? button.getAttribute(\"data-label\") : \"\u52A0\u8D2D\";\n        setButtonState(button, \"is-loading\", \"Deelnemen...\");\n\n        fetch(window.routes && window.routes.cart_add_url ? window.routes.cart_add_url : \"/cart/add.js\", {\n          method: \"POST\",\n          headers: {\n            \"Content-Type\": \"application/json\",\n            Accept: \"application/json\"\n          },\n          body: JSON.stringify({\n            items: [{ id: Number(variantInput.value), quantity: 1 }]\n          })\n        })\n          .then(function (response) {\n            if (!response.ok) throw new Error(\"cart-add-failed\");\n            return response.json();\n          })\n          .then(function () {\n            setButtonState(button, \"is-success\", \"Al lid\");\n            refreshCartCount(root);\n            window.setTimeout(function () {\n              setButtonState(button, \"\", original);\n            }, 1800);\n          })\n          .catch(function () {\n            setButtonState(button, \"is-error\", \"Toevoegen mislukt\");\n            window.setTimeout(function () {\n              setButtonState(button, \"\", original);\n            }, 1800);\n          });\n      });\n    });\n  }\n\n  var remoteJsonCache = {};\n  var remoteJsonpCounter = 0;\n\n  function appendQuery(source, params) {\n    var url = source || \"\";\n    var query = [];\n    Object.keys(params || {}).forEach(function (key) {\n      if (params[key] == null || params[key] === \"\") return;\n      query.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]));\n    });\n    if (!query.length) return url;\n    return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + query.join(\"&\");\n  }\n\n  function fetchRemoteJson(source, params) {\n    var requestUrl = appendQuery(source, params);\n    if (!requestUrl) return Promise.resolve(null);\n\n    if (!remoteJsonCache[requestUrl]) {\n      remoteJsonCache[requestUrl] = fetch(requestUrl, { headers: { Accept: \"application/json\" } })\n        .then(function (response) {\n          if (!response.ok) throw new Error(\"remote-source-failed\");\n          return response.json();\n        })\n        .catch(function () {\n          return new Promise(function (resolve, reject) {\n            remoteJsonpCounter += 1;\n            var callbackName = \"__cxRemoteJsonp\" + remoteJsonpCounter;\n            var cleanup = function () {\n              try {\n                delete window[callbackName];\n              } catch (error) {\n                window[callbackName] = undefined;\n              }\n              if (script && script.parentNode) script.parentNode.removeChild(script);\n            };\n            var timer = window.setTimeout(function () {\n              cleanup();\n              reject(new Error(\"remote-jsonp-timeout\"));\n            }, 10000);\n            var script = document.createElement(\"script\");\n            var separator = requestUrl.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n\n            window[callbackName] = function (payload) {\n              window.clearTimeout(timer);\n              cleanup();\n              resolve(payload);\n            };\n\n            script.src = requestUrl + separator + \"callback=\" + callbackName;\n            script.async = true;\n            script.onerror = function () {\n              window.clearTimeout(timer);\n              cleanup();\n              reject(new Error(\"remote-jsonp-failed\"));\n            };\n            document.head.appendChild(script);\n          });\n        });\n    }\n\n    return remoteJsonCache[requestUrl];\n  }\n\n  function normalizePredictionRows(data, currentDomain) {\n    var rows = Array.isArray(data) ? data : data && Array.isArray(data.players) ? data.players : [];\n    var current = normalizeShopDomain(currentDomain);\n    if (!isWhitelistedShopDomain(current)) {\n      return [];\n    }\n\n    return rows.filter(function (row) {\n      if (!row) return false;\n      var status = String(row.status || \"publish\").trim().toLowerCase();\n      var domain = normalizeShopDomain(row.shopDomain || row.shop_domain || \"\");\n      return status === \"publish\" && domain === current;\n    });\n  }\n\n  function resolveImageSrc(value) {\n    var raw = String(value || \"\").trim();\n    if (!raw) return \"\";\n\n    if (/^(https?:)?\\/\\//i.test(raw) || /^data:/i.test(raw)) {\n      return raw;\n    }\n\n    if (raw.charAt(0) === \"/\") {\n      return raw;\n    }\n\n    var normalized = raw\n      .replace(/^\\.?\\/*/, \"\")\n      .replace(/^files\\//i, \"\");\n\n    return window.location.origin + \"/cdn/shop/files/\" + encodeURIComponent(normalized).replace(/%2F/g, \"/\");\n  }\n\n  function getPlayerValue(row, index, suffixes) {\n    if (!row) return \"\";\n    for (var i = 0; i < suffixes.length; i += 1) {\n      var key = \"featurePlayer\" + index + suffixes[i];\n      if (row[key] != null && String(row[key]).trim()) {\n        return String(row[key]).trim();\n      }\n    }\n    return \"\";\n  }\n\n  function getPredictionPlayer(row, index) {\n    if (!row) return null;\n\n    var avatar = resolveImageSrc(getPlayerValue(row, index, [\"Avatar\", \"avatar\"]));\n    var image = resolveImageSrc(getPlayerValue(row, index, [\"Image\", \"image\", \"CardImage\", \"PopupImage\", \"ModalImage\"]));\n    var name = getPlayerValue(row, index, [\"Name\", \"name\", \"Title\", \"title\"]);\n    var description = getPlayerValue(row, index, [\"Description\", \"description\", \"Desc\", \"desc\"]);\n    var link = getPlayerValue(row, index, [\"ProductLink\", \"productLink\", \"Link\", \"link\", \"Url\", \"url\"]);\n\n    if (!avatar && !image && !name && !description && !link) {\n      return null;\n    }\n\n    return {\n      avatar: avatar,\n      image: image || avatar,\n      name: name,\n      description: description,\n      link: link\n    };\n  }\n\n  function createPredictionAvatarNode(player, teamName, index) {\n    var avatar = document.createElement(player ? \"button\" : \"span\");\n    avatar.className = \"cx-ucl__team-player-avatar\";\n\n    if (!player || !player.avatar) {\n      avatar.classList.add(\"is-placeholder\");\n      return avatar;\n    }\n\n    avatar.type = \"button\";\n    avatar.setAttribute(\"data-cx-player-trigger\", \"\");\n    avatar.setAttribute(\"data-cx-player-name\", player.name || \"\");\n    avatar.setAttribute(\"data-cx-player-description\", player.description || \"\");\n    avatar.setAttribute(\"data-cx-player-image\", player.image || \"\");\n    avatar.setAttribute(\"data-cx-player-link\", player.link || \"\");\n    avatar.setAttribute(\"data-cx-player-team\", teamName || \"\");\n    avatar.setAttribute(\"data-cx-player-number\", String(index).padStart(2, \"0\"));\n    avatar.setAttribute(\"aria-label\", (player.name || teamName || \"player\") + \" details\");\n\n    var image = document.createElement(\"img\");\n    image.className = \"cx-ucl__team-player-avatar-image\";\n    image.src = player.avatar;\n    image.alt = (player.name || teamName || \"player\") + \" avatar \" + index;\n    image.loading = \"lazy\";\n    avatar.appendChild(image);\n\n    return avatar;\n  }\n\n  function applyPredictionTeamAvatarRow(teamNode, row) {\n    if (!teamNode || !row) return;\n\n    var teamAvatarNode = teamNode.querySelector(\"[data-cx-team-avatar]\");\n    var avatarWrap = teamNode.querySelector(\"[data-cx-team-player-avatars]\");\n    var teamName = teamNode.getAttribute(\"data-cx-team-name\") || \"\";\n    var teamAvatar = resolveImageSrc(row.teamAvatar || row.TeamAvatar || \"\");\n\n    if (teamAvatarNode && teamAvatar) {\n      teamAvatarNode.innerHTML = '<img class=\"cx-ucl__team-avatar-image\" src=\"' + teamAvatar + '\" alt=\"' + teamName + '\" loading=\"lazy\">';\n    }\n\n    if (!avatarWrap) return;\n\n    avatarWrap.innerHTML = \"\";\n    [1, 2, 3].forEach(function (index) {\n      avatarWrap.appendChild(createPredictionAvatarNode(getPredictionPlayer(row, index), teamName, index));\n    });\n  }\n\n  function applyPredictionStats(card, root, stats) {\n    if (!card || !stats) return;\n\n    var predictionWrap = card.closest(\".cx-ucl__prediction-wrap\");\n    var teams = Array.prototype.slice.call(card.querySelectorAll(\"[data-cx-team]\"));\n    var total = Number(stats.total) || 0;\n    var totalNode = root.querySelector(\"[data-cx-total-votes]\");\n\n    if (totalNode) {\n      totalNode.textContent = Number(total).toLocaleString(\"en-US\");\n      totalNode.classList.remove(\"cx-ucl__loading-chip\", \"cx-ucl__loading-chip--pct\");\n      totalNode.removeAttribute(\"data-cx-loading-text\");\n      totalNode.removeAttribute(\"aria-busy\");\n    }\n\n    teams.forEach(function (teamNode, index) {\n      var teamKey = teamNode.getAttribute(\"data-cx-team-key\") || \"\";\n      var votes = Number(stats.teams && stats.teams[teamKey]) || 0;\n      var pct = total > 0 ? Math.round((votes / total) * 100) : 0;\n      var votesLabel = card.querySelector(\"[data-cx-team-votes-label='\" + index + \"']\");\n      var pctLabel = card.querySelector(\"[data-cx-team-pct='\" + index + \"']\");\n      var fill = card.querySelector(\"[data-cx-team-fill='\" + index + \"']\");\n      var mobilePctLabel = card.querySelector(\"[data-cx-mobile-team-pct='\" + index + \"']\");\n      var mobileFill = card.querySelector(\"[data-cx-mobile-team-fill='\" + index + \"']\");\n\n      teamNode.setAttribute(\"data-cx-team-votes\", String(votes));\n      if (votesLabel) {\n        votesLabel.textContent = Number(votes).toLocaleString(\"en-US\");\n        votesLabel.classList.remove(\"cx-ucl__loading-chip\", \"cx-ucl__loading-chip--pct\");\n        votesLabel.removeAttribute(\"data-cx-loading-text\");\n        votesLabel.removeAttribute(\"aria-busy\");\n      }\n      if (pctLabel) {\n        pctLabel.textContent = pct + \"%\";\n        pctLabel.classList.remove(\"cx-ucl__loading-chip\", \"cx-ucl__loading-chip--pct\");\n        pctLabel.removeAttribute(\"data-cx-loading-text\");\n        pctLabel.removeAttribute(\"aria-busy\");\n      }\n      if (fill) fill.style.width = pct + \"%\";\n      if (mobilePctLabel) {\n        mobilePctLabel.textContent = pct + \"%\";\n        mobilePctLabel.classList.remove(\"cx-ucl__loading-chip\", \"cx-ucl__loading-chip--pct\");\n        mobilePctLabel.removeAttribute(\"data-cx-loading-text\");\n        mobilePctLabel.removeAttribute(\"aria-busy\");\n      }\n      if (mobileFill) mobileFill.style.width = pct + \"%\";\n    });\n\n    card.setAttribute(\"data-cx-total\", String(total));\n    card.classList.remove(\"is-stats-loading\");\n    if (predictionWrap) {\n      predictionWrap.classList.remove(\"is-stats-loading\");\n    }\n  }\n\n  function normalizeCommentaryRows(data, teamKey) {\n    var rows = [];\n    if (Array.isArray(data)) {\n      rows = data;\n    } else if (data && Array.isArray(data.comments)) {\n      rows = data.comments;\n    } else if (data && data[teamKey] && Array.isArray(data[teamKey])) {\n      rows = data[teamKey];\n    } else if (data && data.teams && data.teams[teamKey] && Array.isArray(data.teams[teamKey])) {\n      rows = data.teams[teamKey];\n    }\n\n    return rows\n      .filter(function (row) {\n        if (!row) return false;\n        var status = String(row.status || \"publish\").trim().toLowerCase();\n        var team = String(row.team || row.team_key || row.teamKey || teamKey).trim();\n        var normalizedTeamKey = String(teamKey || \"\").trim();\n        var content = String(row.content || row.comment || row.text || \"\").trim();\n        return status === \"publish\" && team === normalizedTeamKey && content;\n      })\n      .sort(function (a, b) {\n        return (Number(a.sort) || 0) - (Number(b.sort) || 0);\n      });\n  }\n\n  function getPredictionCardFromNode(node) {\n    return node ? node.closest(\"[data-cx-prediction]\") : null;\n  }\n\n  function getLocalCommentaryRows(card, teamKey) {\n    var predictionCard = getPredictionCardFromNode(card);\n    var storageKey = predictionCard ? predictionCard.getAttribute(\"data-cx-comment-storage-key\") : \"\";\n    var rows = readStorage(storageKey, []);\n    return (Array.isArray(rows) ? rows : [])\n      .filter(function (row) {\n        return row && String(row.team || \"\").trim() === String(teamKey || \"\").trim();\n      })\n      .sort(function (a, b) {\n        return (Number(b.createdAt) || 0) - (Number(a.createdAt) || 0);\n      });\n  }\n\n  function createCommentaryItem(row, index) {\n    var item = document.createElement(\"li\");\n    item.className = \"cx-ucl__commentary-item\";\n    item.setAttribute(\"data-cx-commentary-item\", \"\");\n    item.setAttribute(\"data-cx-comment-key\", String(index));\n    item.setAttribute(\"data-cx-comment-id\", makeCommentId(row, index));\n    item.setAttribute(\"data-cx-comment-author\", String(row.author || \"\").trim());\n    item.setAttribute(\"data-cx-comment-content\", String(row.content || row.comment || row.text || \"\").trim());\n\n    if (row.author) {\n      var meta = document.createElement(\"div\");\n      meta.className = \"cx-ucl__commentary-meta\";\n\n      var author = document.createElement(\"strong\");\n      author.className = \"cx-ucl__commentary-author\";\n      author.textContent = String(row.author).trim();\n\n      meta.appendChild(author);\n\n      if (row.createdAt) {\n        var time = document.createElement(\"span\");\n        time.className = \"cx-ucl__commentary-time\";\n        time.textContent = row.isLocal ? \"\u00E9ppen\" : \"\";\n        meta.appendChild(time);\n      }\n\n      item.appendChild(meta);\n    }\n\n    var copy = document.createElement(\"p\");\n    copy.className = \"cx-ucl__commentary-copy\";\n    copy.textContent = String(row.content || row.comment || row.text || \"\").trim();\n\n    var actions = document.createElement(\"div\");\n    actions.className = \"cx-ucl__commentary-actions\";\n\n    [\n      { type: \"up\", label: \"dics\u00E9ret\", icon: \"\uD83D\uDC4D\", count: row.likes },\n      { type: \"down\", label: \"r\u00E1l\u00E9pni\", icon: \"\uD83D\uDC4E\", count: row.dislikes, negative: true }\n    ].forEach(function (action) {\n      var button = document.createElement(\"button\");\n      button.className = action.negative ? \"cx-ucl__commentary-action is-negative\" : \"cx-ucl__commentary-action\";\n      button.type = \"button\";\n      button.setAttribute(\"data-cx-comment-vote\", action.type);\n      button.setAttribute(\"aria-pressed\", \"false\");\n\n      var icon = document.createElement(\"span\");\n      icon.className = \"cx-ucl__commentary-action-icon\";\n      icon.setAttribute(\"aria-hidden\", \"true\");\n      icon.textContent = action.icon;\n\n      var label = document.createElement(\"span\");\n      label.className = \"cx-ucl__commentary-action-label\";\n      label.textContent = action.label;\n\n      var count = document.createElement(\"span\");\n      count.className = \"cx-ucl__commentary-action-count\";\n      count.setAttribute(\"data-cx-comment-count\", \"\");\n      count.textContent = String(Math.max(0, Number(action.count) || 0));\n\n      button.append(icon, label, count);\n      actions.appendChild(button);\n    });\n\n    item.append(copy, actions);\n    return item;\n  }\n\n  function renderCommentaryRows(list, rows) {\n    list.innerHTML = \"\";\n    rows.forEach(function (row, index) {\n      list.appendChild(createCommentaryItem(row, index));\n    });\n  }\n\n  function fetchCommentarySource(source, shopDomain) {\n    return fetchRemoteJson(source, {\n      shopDomain: shopDomain\n    });\n  }\n\n  function loadCommentaryData(card) {\n    var source = card.getAttribute(\"data-cx-commentary-source\");\n    var teamKey = card.getAttribute(\"data-cx-commentary-team\");\n    var root = card.closest(\"[data-cx-ucl-root]\");\n    var currentShopDomain = getCurrentShopDomain(root);\n    var localRows = getLocalCommentaryRows(card, teamKey).map(function (row) {\n      row.isLocal = true;\n      return row;\n    });\n\n    if (!source || !teamKey) {\n      return Promise.resolve(localRows);\n    }\n\n    return fetchCommentarySource(source, currentShopDomain)\n      .then(function (data) {\n        var remoteRows = normalizeCommentaryRows(data, teamKey);\n        return localRows.concat(remoteRows);\n      })\n      .catch(function () {\n        return localRows;\n      });\n  }\n\n  function refreshCommentaryCard(card) {\n    if (!card) return Promise.resolve(false);\n    var viewport = card.querySelector(\"[data-cx-commentary-viewport]\");\n    var list = card.querySelector(\"[data-cx-commentary-list]\");\n    var skeleton = card.querySelector(\"[data-cx-commentary-skeleton]\");\n    if (!viewport || !list) return Promise.resolve(false);\n\n    function setLoadingState(isLoading) {\n      card.classList.toggle(\"is-loading\", isLoading);\n      if (skeleton) {\n        skeleton.hidden = !isLoading;\n        skeleton.style.display = isLoading ? \"\" : \"none\";\n      }\n      list.hidden = isLoading;\n      list.style.display = isLoading ? \"none\" : \"\";\n    }\n\n    setLoadingState(true);\n    return loadCommentaryData(card).then(function (rows) {\n      renderCommentaryRows(list, rows);\n      viewport.scrollTop = 0;\n      setLoadingState(false);\n      return rows.length > 0;\n    });\n  }\n\n  function initCommentary(root) {\n    root.querySelectorAll(\"[data-cx-commentary-viewport]\").forEach(function (viewport) {\n      if (viewport.dataset.cxCommentaryInitialized === \"true\") return;\n      viewport.dataset.cxCommentaryInitialized = \"true\";\n\n      var card = viewport.closest(\".cx-ucl__commentary-card\");\n      var list = viewport.querySelector(\"[data-cx-commentary-list]\");\n      if (!card || !list) return;\n\n      refreshCommentaryCard(card);\n\n      var isAutoScrolling = false;\n      var lastAutoScrollAt = 0;\n      var pauseUntil = 0;\n      var releaseTimer = 0;\n\n      function setPausedState(paused) {\n        card.classList.toggle(\"is-paused\", paused);\n      }\n\n      function pauseAutoScroll(duration) {\n        pauseUntil = Date.now() + duration;\n        card.classList.add(\"is-user-scrolling\");\n        setPausedState(true);\n        window.clearTimeout(releaseTimer);\n        releaseTimer = window.setTimeout(function () {\n          card.classList.remove(\"is-user-scrolling\");\n          if (!viewport.matches(\":hover\")) setPausedState(false);\n        }, duration);\n      }\n\n      function adjustVoteCount(button, delta) {\n        var countNode = button.querySelector(\"[data-cx-comment-count]\");\n        if (!countNode) return;\n        var current = Number(countNode.textContent) || 0;\n        countNode.textContent = String(Math.max(0, current + delta));\n      }\n\n      viewport.addEventListener(\"click\", function (event) {\n        var button = event.target.closest(\"[data-cx-comment-vote]\");\n        if (!button) return;\n        var item = button.closest(\"[data-cx-commentary-item]\");\n        if (!item) return;\n        var predictionCard = getPredictionCardFromNode(card);\n        var syncUrl = predictionCard ? predictionCard.getAttribute(\"data-cx-comment-submit-url\") : \"\";\n        var commentId = item.getAttribute(\"data-cx-comment-id\") || \"\";\n        var commentAuthor = item.getAttribute(\"data-cx-comment-author\") || \"\";\n        var commentContent = item.getAttribute(\"data-cx-comment-content\") || \"\";\n        var teamKey = card.getAttribute(\"data-cx-commentary-team\") || \"\";\n        var commentKey = item.getAttribute(\"data-cx-comment-key\");\n        var voteType = button.getAttribute(\"data-cx-comment-vote\");\n        var relatedButtons = list.querySelectorAll(\"[data-cx-comment-key='\" + commentKey + \"'] [data-cx-comment-vote='\" + voteType + \"']\");\n        var oppositeType = voteType === \"up\" ? \"down\" : \"up\";\n        var oppositeButtons = list.querySelectorAll(\"[data-cx-comment-key='\" + commentKey + \"'] [data-cx-comment-vote='\" + oppositeType + \"']\");\n        var isPressed = button.getAttribute(\"aria-pressed\") === \"true\";\n        var voteValue = 0;\n\n        if (isPressed) {\n          relatedButtons.forEach(function (node) {\n            node.setAttribute(\"aria-pressed\", \"false\");\n            adjustVoteCount(node, -1);\n          });\n          voteValue = 0;\n        } else {\n          oppositeButtons.forEach(function (node) {\n            if (node.getAttribute(\"aria-pressed\") === \"true\") {\n              node.setAttribute(\"aria-pressed\", \"false\");\n              adjustVoteCount(node, -1);\n            }\n          });\n          relatedButtons.forEach(function (node) {\n            if (node.getAttribute(\"aria-pressed\") !== \"true\") {\n              node.setAttribute(\"aria-pressed\", \"true\");\n              adjustVoteCount(node, 1);\n            }\n          });\n          voteValue = 1;\n        }\n\n        pauseAutoScroll(2400);\n\n        postJson(syncUrl, {\n          type: \"vote\",\n          action: \"comment_vote\",\n          team: teamKey,\n          commentId: commentId,\n          author: commentAuthor,\n          content: commentContent,\n          voteType: voteType,\n          voteValue: voteValue,\n          updatedAt: Date.now()\n        }).catch(function () {});\n      });\n\n      viewport.addEventListener(\"mouseenter\", function () {\n        pauseUntil = Number.POSITIVE_INFINITY;\n        setPausedState(true);\n      });\n\n      viewport.addEventListener(\"mouseleave\", function () {\n        pauseUntil = Date.now() + 800;\n        card.classList.remove(\"is-user-scrolling\");\n        setPausedState(false);\n      });\n\n      viewport.addEventListener(\"wheel\", function () {\n        pauseAutoScroll(2400);\n      }, { passive: true });\n\n      viewport.addEventListener(\"touchstart\", function () {\n        pauseAutoScroll(2800);\n      }, { passive: true });\n\n      viewport.addEventListener(\"scroll\", function () {\n        if (Date.now() - lastAutoScrollAt < 120) return;\n        if (isAutoScrolling) return;\n        pauseAutoScroll(2400);\n      }, { passive: true });\n\n      function tick() {\n        if (!document.body.contains(viewport)) return;\n\n        var maxScrollTop = Math.max(0, viewport.scrollHeight - viewport.clientHeight);\n        if (\n          viewport.scrollHeight > viewport.clientHeight &&\n          viewport.scrollTop < maxScrollTop &&\n          Date.now() >= pauseUntil\n        ) {\n          isAutoScrolling = true;\n          lastAutoScrollAt = Date.now();\n          viewport.scrollTop = Math.min(maxScrollTop, viewport.scrollTop + 0.8);\n          isAutoScrolling = false;\n        }\n\n        window.requestAnimationFrame(tick);\n      }\n\n      window.requestAnimationFrame(tick);\n    });\n  }\n\n  function initPrediction(root) {\n    root.querySelectorAll(\"[data-cx-prediction]\").forEach(function (card) {\n      var currentShopDomain = getCurrentShopDomain(root);\n      var predictionWrap = card.closest(\".cx-ucl__prediction-wrap\");\n      var storageKey = card.getAttribute(\"data-cx-storage-key\");\n      var commentStorageKey = card.getAttribute(\"data-cx-comment-storage-key\");\n      var submitUrl = card.getAttribute(\"data-cx-prediction-submit-url\");\n      var commentSubmitUrl = card.getAttribute(\"data-cx-comment-submit-url\");\n      var helper = card.querySelector(\"[data-cx-prediction-helper]\");\n      var emailInput = card.querySelector(\"[data-cx-prediction-email]\");\n      var submitButton = card.querySelector(\"[data-cx-prediction-submit]\");\n      var modal = card.querySelector(\"[data-cx-prediction-modal]\");\n      var modalCloses = card.querySelectorAll(\"[data-cx-prediction-modal-close]\");\n      var playerModal = card.querySelector(\"[data-cx-player-modal]\");\n      var playerModalCloses = card.querySelectorAll(\"[data-cx-player-modal-close]\");\n      var playerModalImage = card.querySelector(\"[data-cx-player-modal-image]\");\n      var playerModalName = card.querySelector(\"[data-cx-player-modal-name]\");\n      var playerModalDesc = card.querySelector(\"[data-cx-player-modal-desc]\");\n      var playerModalLink = card.querySelector(\"[data-cx-player-modal-link]\");\n      var playerModalEyebrow = card.querySelector(\"[data-cx-player-modal-eyebrow]\");\n      var playerModalTag = card.querySelector(\"[data-cx-player-modal-tag]\");\n      var selectedCopy = card.querySelector(\"[data-cx-prediction-selected]\");\n      var commentGate = card.querySelector(\"[data-cx-comment-gate]\");\n      var commentGateCopy = card.querySelector(\"[data-cx-comment-gate-copy]\");\n      var commentForm = card.querySelector(\"[data-cx-comment-form]\");\n      var contentInput = card.querySelector(\"[data-cx-comment-content]\");\n      var commentFeedback = card.querySelector(\"[data-cx-comment-feedback]\");\n      var teamDisplay = card.querySelector(\"[data-cx-comment-team-display]\");\n      var commentaryTabs = Array.prototype.slice.call(card.querySelectorAll(\"[data-cx-commentary-tab]\"));\n      var commentaryCards = Array.prototype.slice.call(card.querySelectorAll(\"[data-cx-commentary-card]\"));\n      var defaultHelperText = helper ? helper.textContent : \"\";\n      var defaultTeamDisplayText = teamDisplay ? teamDisplay.textContent : \"\";\n      var defaultCommentFeedbackText = commentFeedback ? commentFeedback.textContent : \"\";\n      var teams = Array.prototype.slice.call(card.querySelectorAll(\"[data-cx-team]\"));\n      var teamsWrap = card.querySelector(\".cx-ucl__teams\");\n      var totalNode = root.querySelector(\"[data-cx-total-votes]\");\n      var votes = teams.map(function (team) {\n        return Number(team.getAttribute(\"data-cx-team-votes\")) || 0;\n      });\n      var totalVotes = Number(card.getAttribute(\"data-cx-total\")) || votes.reduce(function (sum, vote) {\n        return sum + vote;\n      }, 0);\n      var selected = null;\n      var predictionState = readStorage(storageKey, null);\n\n      card.classList.add(\"is-stats-loading\");\n      if (predictionWrap) {\n        predictionWrap.classList.add(\"is-stats-loading\");\n      }\n\n      function formatNumber(value) {\n        return Number(value).toLocaleString(\"en-US\");\n      }\n\n      function isMobileCommentaryTabs() {\n        return window.matchMedia(\"(max-width: 749px)\").matches;\n      }\n\n      function setActiveCommentaryTab(teamKey) {\n        if (!teamKey) return;\n        commentaryTabs.forEach(function (tab) {\n          var isActive = (tab.getAttribute(\"data-cx-commentary-tab\") || \"\") === teamKey;\n          tab.classList.toggle(\"is-active\", isActive);\n          tab.setAttribute(\"aria-selected\", isActive ? \"true\" : \"false\");\n        });\n\n        if (!isMobileCommentaryTabs()) {\n          commentaryCards.forEach(function (panel) {\n            panel.removeAttribute(\"data-cx-commentary-team-hidden\");\n          });\n          return;\n        }\n\n        commentaryCards.forEach(function (panel) {\n          var isActive = (panel.getAttribute(\"data-cx-commentary-team\") || \"\") === teamKey;\n          if (isActive) panel.removeAttribute(\"data-cx-commentary-team-hidden\");\n          else panel.setAttribute(\"data-cx-commentary-team-hidden\", \"\");\n        });\n      }\n\n      function syncCommentaryLayout() {\n        if (!commentaryTabs.length || !commentaryCards.length) return;\n        if (!isMobileCommentaryTabs()) {\n          commentaryCards.forEach(function (panel) {\n            panel.removeAttribute(\"data-cx-commentary-team-hidden\");\n          });\n          return;\n        }\n        var activeTab = commentaryTabs.find(function (tab) {\n          return tab.classList.contains(\"is-active\");\n        });\n        setActiveCommentaryTab(activeTab ? (activeTab.getAttribute(\"data-cx-commentary-tab\") || \"\") : (commentaryCards[0].getAttribute(\"data-cx-commentary-team\") || \"\"));\n      }\n\n      function getSelectedTeamData(index) {\n        var team = teams[index];\n        if (!team) return null;\n        return {\n          teamIndex: index,\n          teamKey: team.getAttribute(\"data-cx-team-key\") || \"\",\n          teamName: team.getAttribute(\"data-cx-team-name\") || \"\",\n          teamEmoji: team.getAttribute(\"data-cx-team-symbol\") || \"\",\n          email: emailInput && emailInput.value ? emailInput.value.trim() : \"\",\n          submittedAt: Date.now()\n        };\n      }\n\n      function isValidEmail(value) {\n        return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(String(value || \"\").trim());\n      }\n\n      function openModal() {\n        if (!modal) return;\n\n        if (modal.parentNode !== document.body) {\n          document.body.appendChild(modal);\n        }\n\n        modal.hidden = false;\n        modal.classList.remove(\"is-open\");\n\n        window.requestAnimationFrame(function () {\n          window.requestAnimationFrame(function () {\n            modal.classList.add(\"is-open\");\n          });\n        });\n\n        document.body.classList.add(\"cx-ucl-body-lock\");\n      }\n\n      function closeModal() {\n        if (!modal) return;\n\n        modal.classList.remove(\"is-open\");\n\n        window.setTimeout(function () {\n          modal.hidden = true;\n          if (!playerModal || playerModal.hidden) {\n            document.body.classList.remove(\"cx-ucl-body-lock\");\n          }\n        }, 220);\n      }\n\n      function openPlayerModal(trigger) {\n        if (!playerModal || !trigger) return;\n\n        if (playerModal.parentNode !== document.body) {\n          document.body.appendChild(playerModal);\n        }\n\n        var name = trigger.getAttribute(\"data-cx-player-name\") || \"\";\n        var description = trigger.getAttribute(\"data-cx-player-description\") || \"\";\n        var image = trigger.getAttribute(\"data-cx-player-image\") || \"\";\n        var link = trigger.getAttribute(\"data-cx-player-link\") || \"\";\n        var teamName = trigger.getAttribute(\"data-cx-player-team\") || \"\";\n\n        if (playerModalName) {\n          playerModalName.textContent = name || \"Featured player\";\n        }\n        if (playerModalEyebrow) {\n          playerModalEyebrow.textContent = name ? \"Player spotlight\" : \"Featured player\";\n        }\n        if (playerModalTag) {\n          playerModalTag.textContent = teamName || \"Matchday drop\";\n        }\n        if (playerModalDesc) {\n          playerModalDesc.textContent = description || \"Player details coming soon.\";\n        }\n        if (playerModalImage) {\n          if (image) {\n            playerModalImage.src = image;\n            playerModalImage.alt = name || \"Featured player\";\n            playerModalImage.hidden = false;\n          } else {\n            playerModalImage.hidden = true;\n          }\n        }\n        if (playerModalLink) {\n          if (link) {\n            playerModalLink.href = link;\n            playerModalLink.classList.remove(\"is-disabled\");\n            playerModalLink.removeAttribute(\"aria-disabled\");\n          } else {\n            playerModalLink.href = \"#\";\n            playerModalLink.classList.add(\"is-disabled\");\n            playerModalLink.setAttribute(\"aria-disabled\", \"true\");\n          }\n        }\n\n        playerModal.hidden = false;\n        playerModal.classList.remove(\"is-open\");\n        window.requestAnimationFrame(function () {\n          window.requestAnimationFrame(function () {\n            playerModal.classList.add(\"is-open\");\n          });\n        });\n        document.body.classList.add(\"cx-ucl-body-lock\");\n      }\n\n      function closePlayerModal() {\n        if (!playerModal) return;\n        playerModal.classList.remove(\"is-open\");\n        window.setTimeout(function () {\n          playerModal.hidden = true;\n          if (!modal || modal.hidden) {\n            document.body.classList.remove(\"cx-ucl-body-lock\");\n          }\n        }, 220);\n      }\n\n      function updateVotes() {\n        if (card.classList.contains(\"is-stats-loading\")) {\n          return;\n        }\n        totalVotes = votes.reduce(function (sum, vote) {\n          return sum + vote;\n        }, 0);\n        if (totalNode) totalNode.textContent = formatNumber(totalVotes);\n        teams.forEach(function (team, index) {\n          var pct = totalVotes > 0 ? Math.round((votes[index] / totalVotes) * 100) : 0;\n          var votesLabel = card.querySelector(\"[data-cx-team-votes-label='\" + index + \"']\");\n          var pctLabel = card.querySelector(\"[data-cx-team-pct='\" + index + \"']\");\n          var fill = card.querySelector(\"[data-cx-team-fill='\" + index + \"']\");\n          var mobilePctLabel = card.querySelector(\"[data-cx-mobile-team-pct='\" + index + \"']\");\n          var mobileFill = card.querySelector(\"[data-cx-mobile-team-fill='\" + index + \"']\");\n          if (votesLabel) votesLabel.textContent = formatNumber(votes[index]);\n          if (pctLabel) pctLabel.textContent = pct + \"%\";\n          if (fill) fill.style.width = pct + \"%\";\n          if (mobilePctLabel) mobilePctLabel.textContent = pct + \"%\";\n          if (mobileFill) mobileFill.style.width = pct + \"%\";\n          team.setAttribute(\"data-cx-team-votes\", String(votes[index]));\n        });\n      }\n\n      function renderState() {\n        var activeIndex = selected !== null ? selected : (predictionState ? predictionState.teamIndex : null);\n\n        teams.forEach(function (team, index) {\n          team.classList.toggle(\"is-active\", activeIndex === index);\n          team.classList.toggle(\"is-locked\", !!predictionState);\n          team.setAttribute(\"aria-disabled\", \"false\");\n        });\n\n        if (teamsWrap) {\n          teamsWrap.setAttribute(\"data-selected-team\", activeIndex === null ? \"\" : String(activeIndex));\n          teamsWrap.classList.toggle(\"is-team-selected\", activeIndex !== null);\n        }\n\n        if (submitButton) {\n          var emailValue = emailInput && emailInput.value ? emailInput.value.trim() : \"\";\n          submitButton.disabled = predictionState ? true : selected === null || !isValidEmail(emailValue);\n        }\n\n        if (predictionState) {\n          card.classList.add(\"is-predicted\");\n          if (helper) {\n            helper.textContent = \"As previs\u00F5es j\u00E1 est\u00E3o bloqueadas, mas a sec\u00E7\u00E3o de coment\u00E1rios est\u00E1 aberta.\";\n          }\n          if (selectedCopy) {\n            selectedCopy.textContent = \"Voc\u00EA enviou \" + predictionState.email + \" E suporte de bloqueio \" + predictionState.teamName + \"Se responder corretamente ap\u00F3s o concurso, receber\u00E1 uma notifica\u00E7\u00E3o por e-mail sobre o voucher.\";\n          }\n          if (commentGate) commentGate.hidden = true;\n          if (commentForm) commentForm.hidden = false;\n          if (teamDisplay) teamDisplay.textContent = (predictionState.teamEmoji ? predictionState.teamEmoji + \" \" : \"\") + predictionState.teamName;\n          if (commentGateCopy) {\n            commentGateCopy.textContent = \"A sec\u00E7\u00E3o de coment\u00E1rios est\u00E1 agora bloqueada:\" + predictionState.teamName;\n          }\n          setActiveCommentaryTab(predictionState.teamKey);\n          if (emailInput) {\n            emailInput.value = predictionState.email || \"\";\n            emailInput.disabled = true;\n          }\n        } else {\n          card.classList.remove(\"is-predicted\");\n          if (commentGate) commentGate.hidden = false;\n          if (commentForm) commentForm.hidden = true;\n          if (helper) helper.textContent = defaultHelperText;\n          if (teamDisplay) teamDisplay.textContent = defaultTeamDisplayText;\n          if (commentFeedback) commentFeedback.textContent = defaultCommentFeedbackText;\n          if (emailInput) emailInput.disabled = false;\n        }\n\n        updateVotes();\n      }\n\n      if (emailInput) {\n        [\"input\", \"change\", \"blur\"].forEach(function (eventName) {\n          emailInput.addEventListener(eventName, renderState);\n        });\n      }\n\n      teams.forEach(function (team, index) {\n        team.addEventListener(\"click\", function (event) {\n          selected = index;\n          renderState();\n        });\n        team.addEventListener(\"keydown\", function (event) {\n          if (event.key !== \"Enter\" && event.key !== \" \") return;\n          event.preventDefault();\n          selected = index;\n          renderState();\n        });\n      });\n\n      commentaryTabs.forEach(function (tab) {\n        tab.addEventListener(\"click\", function () {\n          setActiveCommentaryTab(tab.getAttribute(\"data-cx-commentary-tab\") || \"\");\n        });\n      });\n\n      window.addEventListener(\"resize\", syncCommentaryLayout);\n\n      fetchRemoteJson(submitUrl, {\n        view: \"players\",\n        shopDomain: currentShopDomain\n      }).then(function (data) {\n        var rows = normalizePredictionRows(data, currentShopDomain);\n        teams.forEach(function (teamNode) {\n          var teamKey = teamNode.getAttribute(\"data-cx-team-key\") || \"\";\n          var row = rows.find(function (item) {\n            return String(item.team || \"\").trim() === teamKey;\n          });\n          if (row) applyPredictionTeamAvatarRow(teamNode, row);\n        });\n      }).catch(function () {});\n\n      fetchRemoteJson(submitUrl, {\n        view: \"stats\",\n        shopDomain: currentShopDomain\n      }).then(function (stats) {\n        teams.forEach(function (teamNode, index) {\n          var teamKey = teamNode.getAttribute(\"data-cx-team-key\") || \"\";\n          votes[index] = Number(stats && stats.teams && stats.teams[teamKey]) || 0;\n        });\n        totalVotes = Number(stats && stats.total) || votes.reduce(function (sum, vote) {\n          return sum + vote;\n        }, 0);\n        applyPredictionStats(card, root, stats);\n      }).catch(function () {\n        card.classList.remove(\"is-stats-loading\");\n        if (predictionWrap) {\n          predictionWrap.classList.remove(\"is-stats-loading\");\n        }\n      });\n\n      if (submitButton) {\n        submitButton.addEventListener(\"click\", function () {\n          if (predictionState || selected === null) return;\n          var selectedData = getSelectedTeamData(selected);\n          if (!selectedData) return;\n          if (!isValidEmail(selectedData.email)) {\n            if (submitButton) submitButton.disabled = true;\n            if (helper) helper.textContent = \"Primeiro, introduza um endere\u00E7o de e-mail v\u00E1lido.\";\n            return;\n          }\n          predictionState = selectedData;\n          votes[selected] += 1;\n          writeStorage(storageKey, predictionState);\n          renderState();\n          openModal();\n          postJson(submitUrl, {\n            type: \"prediction\",\n            action: \"create_prediction\",\n            email: selectedData.email,\n            team: selectedData.teamKey,\n            teamName: selectedData.teamName,\n            submittedAt: selectedData.submittedAt,\n            pageUrl: window.location ? window.location.href : \"\"\n          }, currentShopDomain).catch(function () {});\n        });\n      }\n\n      if (modalCloses.length) {\n        modalCloses.forEach(function (node) {\n          node.addEventListener(\"click\", closeModal);\n        });\n      }\n\n      if (playerModalCloses.length) {\n        playerModalCloses.forEach(function (node) {\n          node.addEventListener(\"click\", closePlayerModal);\n        });\n      }\n\n      card.addEventListener(\"click\", function (event) {\n        var trigger = event.target.closest(\"[data-cx-player-trigger]\");\n        if (!trigger || !card.contains(trigger)) return;\n        event.preventDefault();\n        openPlayerModal(trigger);\n      });\n\n      document.addEventListener(\"keydown\", function (event) {\n        if (event.key === \"Escape\") {\n          closeModal();\n          closePlayerModal();\n        }\n      });\n\n      if (commentForm) {\n        commentForm.addEventListener(\"submit\", function (event) {\n          event.preventDefault();\n          if (!predictionState) return;\n          var now = Date.now();\n          var cooldownKey = getCommentCooldownKey(commentStorageKey, predictionState.email || \"\", currentShopDomain);\n          var lastCommentAt = Number(readStorage(cooldownKey, 0)) || 0;\n          if (lastCommentAt && now - lastCommentAt < 86400000) {\n            if (commentFeedback) commentFeedback.textContent = \"Apenas um coment\u00E1rio pode ser enviado a partir do mesmo endere\u00E7o de e-mail a cada 24 horas.\";\n            return;\n          }\n          var content = contentInput && contentInput.value ? contentInput.value.trim() : \"\";\n          if (!content) {\n            if (commentFeedback) commentFeedback.textContent = \"Por favor, escreva primeiro o seu coment\u00E1rio.\";\n            return;\n          }\n\n          var author = predictionState.email ? String(predictionState.email).split(\"@\")[0] : \"Novos f\u00E3s\";\n\n          var comment = {\n            id: makeCommentId({\n              team: predictionState.teamKey,\n              author: author || \"Novos f\u00E3s\",\n              content: content,\n              createdAt: now\n            }),\n            team: predictionState.teamKey,\n            author: author || \"Novos f\u00E3s\",\n            email: predictionState.email || \"\",\n            content: content,\n            likes: 0,\n            dislikes: 0,\n            status: \"publish\",\n            createdAt: now\n          };\n\n          var saved = readStorage(commentStorageKey, []);\n          if (!Array.isArray(saved)) saved = [];\n          saved.unshift(comment);\n          writeStorage(commentStorageKey, saved);\n          writeStorage(cooldownKey, now);\n\n          if (commentFeedback) commentFeedback.textContent = \"O seu coment\u00E1rio foi publicado e adicionado \u00E0 sec\u00E7\u00E3o de coment\u00E1rios da sua equipa favorita.\";\n          if (contentInput) contentInput.value = \"\";\n          setActiveCommentaryTab(predictionState.teamKey);\n\n          var targetCard = root.querySelector(\"[data-cx-commentary-card][data-cx-commentary-team='\" + predictionState.teamKey + \"']\");\n          if (targetCard) refreshCommentaryCard(targetCard);\n\n          postJson(submitUrl, {\n            type: \"prediction\",\n            action: \"create_prediction\",\n            email: predictionState.email || \"\",\n            team: predictionState.teamKey,\n            teamName: predictionState.teamName,\n            submittedAt: predictionState.submittedAt || now,\n            pageUrl: window.location ? window.location.href : \"\"\n          }, currentShopDomain).catch(function () {});\n\n          postJson(commentSubmitUrl, {\n            type: \"comment\",\n            action: \"create_comment\",\n            commentId: comment.id,\n            email: predictionState.email || \"\",\n            team: predictionState.teamKey,\n            teamName: predictionState.teamName,\n            teamEmoji: predictionState.teamEmoji || \"\",\n            author: comment.author,\n            content: comment.content,\n            likes: 0,\n            dislikes: 0,\n            status: \"publish\",\n            createdAt: comment.createdAt\n          }, currentShopDomain).catch(function () {\n            if (commentFeedback) commentFeedback.textContent = \"O coment\u00E1rio aparece na p\u00E1gina atual; a opera\u00E7\u00E3o de escrita remota ainda n\u00E3o foi conclu\u00EDda com sucesso.\";\n          });\n        });\n      }\n\n      renderState();\n      syncCommentaryLayout();\n    });\n  }\n\n  function initSticky(root) {\n    var sticky = root.querySelector(\"[data-cx-sticky]\");\n    if (!sticky) return;\n    var toggle = function () {\n      if (window.scrollY > 400) sticky.classList.add(\"is-visible\");\n      else sticky.classList.remove(\"is-visible\");\n    };\n    toggle();\n    window.addEventListener(\"scroll\", toggle, { passive: true });\n  }\n\n  function initBlogCarousel(root) {\n    root.querySelectorAll(\"[data-cx-blog-carousel]\").forEach(function (carousel) {\n      var viewport = carousel.querySelector(\"[data-cx-blog-viewport]\");\n      var prev = carousel.querySelector(\"[data-cx-blog-prev]\");\n      var next = carousel.querySelector(\"[data-cx-blog-next]\");\n      if (!viewport || !prev || !next) return;\n      var itemCount = Number(carousel.getAttribute(\"data-cx-blog-count\")) || 0;\n\n      if (itemCount > 0 && itemCount <= 4) {\n        carousel.classList.add(\"is-static\");\n        prev.disabled = true;\n        next.disabled = true;\n        viewport.scrollLeft = 0;\n        return;\n      }\n\n      carousel.classList.remove(\"is-static\");\n\n      function getStep() {\n        return Math.max(0, viewport.clientWidth);\n      }\n\n      function updateButtons() {\n        var maxScroll = Math.max(0, viewport.scrollWidth - viewport.clientWidth);\n        var current = Math.max(0, viewport.scrollLeft);\n        prev.disabled = current <= 4;\n        next.disabled = current >= maxScroll - 4;\n      }\n\n      prev.addEventListener(\"click\", function () {\n        viewport.scrollBy({ left: -getStep(), behavior: \"smooth\" });\n      });\n\n      next.addEventListener(\"click\", function () {\n        viewport.scrollBy({ left: getStep(), behavior: \"smooth\" });\n      });\n\n      viewport.addEventListener(\"scroll\", updateButtons, { passive: true });\n      window.addEventListener(\"resize\", updateButtons);\n      updateButtons();\n    });\n  }\n\n  function initPitchRunner(root) {\n    var runner = root.querySelector(\"[data-cx-pitch-runner]\");\n    var sprite = root.querySelector(\"[data-cx-pitch-sprite]\");\n    if (!runner || !sprite) return;\n\n    var ticking = false;\n\n    function update() {\n      ticking = false;\n      var doc = document.documentElement;\n      var maxScroll = Math.max(1, (doc.scrollHeight || 0) - window.innerHeight);\n      var progress = Math.min(1, Math.max(0, window.scrollY / maxScroll));\n      sprite.style.setProperty(\"--cx-runner-progress\", progress.toFixed(4));\n      runner.setAttribute(\"data-cx-phase\", progress >= 0.992 ? \"trophy\" : \"dribble\");\n    }\n\n    function requestUpdate() {\n      if (ticking) return;\n      ticking = true;\n      window.requestAnimationFrame(update);\n    }\n\n    update();\n    window.addEventListener(\"scroll\", requestUpdate, { passive: true });\n    window.addEventListener(\"resize\", requestUpdate);\n  }\n\n  function initAnchorButtons(root) {\n    root.querySelectorAll(\"[data-cx-scroll]\").forEach(function (button) {\n      button.addEventListener(\"click\", function () {\n        scrollToTarget(button.getAttribute(\"data-cx-scroll\"));\n      });\n    });\n  }\n\n  function initHeroEntrance(root) {\n    root.querySelectorAll(\"[data-cx-hero-entrance]\").forEach(function (hero) {\n      window.requestAnimationFrame(function () {\n        window.requestAnimationFrame(function () {\n          hero.classList.add(\"is-ready\");\n        });\n      });\n    });\n  }\n\n  function initReveal(root) {\n    var nodes = root.querySelectorAll(\"[data-cx-reveal]\");\n    if (!nodes.length) return;\n\n    if (!(\"IntersectionObserver\" in window)) {\n      nodes.forEach(function (node) {\n        node.classList.add(\"is-inview\");\n      });\n      return;\n    }\n\n    var observer = new IntersectionObserver(function (entries) {\n      entries.forEach(function (entry) {\n        if (!entry.isIntersecting) return;\n        entry.target.classList.add(\"is-inview\");\n        observer.unobserve(entry.target);\n      });\n    }, {\n      threshold: 0.2\n    });\n\n    nodes.forEach(function (node) {\n      observer.observe(node);\n    });\n  }\n\n  function initFixedBackground(root) {\n    var shell = root.querySelector(\".cx-ucl\");\n    var bg = shell ? shell.querySelector(\".cx-ucl__bg\") : null;\n    if (!shell || !bg) return;\n\n    var ticking = false;\n\n    function update() {\n      ticking = false;\n      var rect = root.getBoundingClientRect();\n      var isActive = rect.top < window.innerHeight && rect.bottom > 0;\n      var clipTop = Math.max(0, rect.top);\n      var clipBottom = Math.max(0, window.innerHeight - rect.bottom);\n\n      shell.classList.toggle(\"is-bg-active\", isActive);\n      bg.style.clipPath = \"inset(\" + clipTop.toFixed(2) + \"px 0 \" + clipBottom.toFixed(2) + \"px 0)\";\n    }\n\n    function requestUpdate() {\n      if (ticking) return;\n      ticking = true;\n      window.requestAnimationFrame(update);\n    }\n\n    update();\n    window.addEventListener(\"scroll\", requestUpdate, { passive: true });\n    window.addEventListener(\"resize\", requestUpdate);\n  }\n\n  function initSection(root) {\n    if (!root || root.dataset.cxInitialized === \"true\") return;\n    root.dataset.cxInitialized = \"true\";\n    initFixedBackground(root);\n    initHeroEntrance(root);\n    initReveal(root);\n    initAnchorButtons(root);\n    initCountdown(root);\n    initSticky(root);\n    initBlogCarousel(root);\n    initPitchRunner(root);\n    initCart(root);\n    initPrediction(root);\n    initCommentary(root);\n    refreshCartCount(root);\n  }\n\n  function ready(callback) {\n    if (document.readyState === \"loading\") {\n      document.addEventListener(\"DOMContentLoaded\", callback);\n    } else {\n      callback();\n    }\n  }\n\n  ready(function () {\n    document.querySelectorAll(\"[data-cx-ucl-root]\").forEach(initSection);\n  });\n\n  document.addEventListener(\"shopify:section:load\", function (event) {\n    if (!event || !event.target) return;\n    var root = event.target.querySelector(\"[data-cx-ucl-root]\") || event.target;\n    initSection(root);\n  });\n})();\n"],
  "mappings": "CAAC,UAAY,CACX,IAAI,6BAA+B,CACjC,iCAAkC,2BAClC,0BAA2B,wBAC3B,0BAA2B,8BAC3B,0BAA2B,8BAC3B,0BAA2B,8BAC3B,0BAA2B,8BAC3B,0BAA2B,6BAC7B,EAEA,SAAS,oBAAoB,MAAO,CAClC,OAAO,OAAO,OAAS,EAAE,EAAE,KAAK,EAAE,YAAY,CAChD,CAEA,SAAS,wBAAwB,MAAO,CACtC,MAAO,CAAC,CAAC,6BAA6B,oBAAoB,KAAK,CAAC,CAClE,CAEA,SAAS,qBAAqB,KAAM,CAClC,IAAI,UAAY,MAAQ,KAAK,aAAe,KAAK,aAAa,qBAAqB,EAAI,GACnF,oBAAsB,oBAAoB,SAAS,EACvD,GAAI,qBAAuB,wBAAwB,mBAAmB,EACpE,OAAO,oBAGT,IAAI,SAAW,OAAO,UAAY,OAAO,SAAS,SAAW,OAAO,SAAS,SAAW,GACpF,mBAAqB,oBAAoB,QAAQ,EACrD,OAAI,wBAAwB,kBAAkB,EACrC,mBAGF,EACT,CAEA,SAAS,eAAe,GAAI,CAC1B,GAAK,GACL,KAAI,OAAS,SAAS,eAAe,EAAE,EAClC,QACL,OAAO,eAAe,CAAE,SAAU,SAAU,MAAO,OAAQ,CAAC,EAC9D,CAEA,SAAS,eAAe,OAAQ,MAAO,KAAM,CAC3C,GAAK,OACL,QAAO,UAAU,OAAO,aAAc,aAAc,UAAU,EAC1D,OAAO,OAAO,UAAU,IAAI,KAAK,EACrC,IAAI,MAAQ,OAAO,cAAc,wBAAwB,EACrD,OAAS,OAAM,MAAM,YAAc,MACnC,CAAC,OAAS,OAAM,OAAO,YAAc,MACrC,MAAM,OAAO,aAAa,aAAc,IAAI,EAClD,CAEA,SAAS,sBAAsB,MAAO,CACpC,IAAI,UAAY,KAAK,IAAI,EAAG,OAAO,KAAK,GAAK,CAAC,EAC1C,gBAAkB,CACpB,4CACA,uCACA,0BACA,oBACF,EAEA,gBAAgB,QAAQ,SAAU,SAAU,CAC1C,SAAS,iBAAiB,QAAQ,EAAE,QAAQ,SAAU,KAAM,CACtD,UAAY,GACV,WAAY,OAAM,KAAK,OAAS,IACpC,KAAK,YAAc,UAAY,EAAI,KAAO,OAAO,SAAS,GACjD,WAAY,OACrB,KAAK,OAAS,GAElB,CAAC,CACH,CAAC,EAED,IAAI,WAAa,SAAS,eAAe,kBAAkB,EACvD,YACF,WAAW,UAAU,OAAO,WAAY,YAAc,CAAC,EAGzD,SAAS,cAAc,IAAI,YAAY,eAAgB,CACrD,OAAQ,CAAE,UAAW,SAAU,CACjC,CAAC,CAAC,CACJ,CAEA,SAAS,aAAa,KAAM,MAAO,CACjC,GAAK,KACL,KAAI,SAAW,KAAK,aAAa,cAAc,EAC3C,WAAa,OACf,KAAK,YAAc,MACnB,KAAK,aAAa,eAAgB,KAAK,EACvC,KAAK,UAAU,OAAO,SAAS,EAC1B,KAAK,YACV,KAAK,UAAU,IAAI,SAAS,EAC5B,OAAO,WAAW,UAAY,CAC5B,KAAK,UAAU,OAAO,SAAS,CACjC,EAAG,GAAG,GAEN,KAAK,YAAc,MAEvB,CAEA,SAAS,UAAU,MAAO,SAAU,CAClC,GAAI,CACF,OAAO,MAAQ,KAAK,MAAM,KAAK,EAAI,QACrC,OAAS,MAAO,CACd,OAAO,QACT,CACF,CAEA,SAAS,YAAY,IAAK,SAAU,CAClC,GAAI,CAAC,IAAK,OAAO,SACjB,GAAI,CACF,OAAO,UAAU,OAAO,aAAa,QAAQ,GAAG,EAAG,QAAQ,CAC7D,OAAS,MAAO,CACd,OAAO,QACT,CACF,CAEA,SAAS,aAAa,IAAK,MAAO,CAChC,GAAK,IACL,GAAI,CACF,OAAO,aAAa,QAAQ,IAAK,KAAK,UAAU,KAAK,CAAC,CACxD,OAAS,MAAO,CAAC,CACnB,CAEA,SAAS,sBAAsB,QAAS,MAAO,WAAY,CACzD,MAAO,CAAC,SAAW,sBAAuB,oBAAoB,KAAK,EAAG,oBAAoB,UAAU,CAAC,EAAE,KAAK,IAAI,CAClH,CAEA,SAAS,SAAS,IAAK,QAAS,WAAY,CAC1C,GAAI,CAAC,IAAK,OAAO,QAAQ,QAAQ,IAAI,EACrC,IAAI,eAAiB,OAAO,OAAO,CAAC,EAAG,SAAW,CAAC,CAAC,EACpD,MAAI,CAAC,eAAe,aAAe,aACjC,eAAe,YAAc,YAGxB,MAAM,IAAK,CAChB,OAAQ,OACR,KAAM,UACN,UAAW,GACX,QAAS,CACP,eAAgB,0BAClB,EACA,KAAM,KAAK,UAAU,cAAc,CACrC,CAAC,EAAE,KAAK,UAAY,CAClB,MAAO,CAAE,OAAQ,MAAO,CAC1B,CAAC,CACH,CAEA,SAAS,cAAc,IAAK,cAAe,CACzC,GAAI,KAAO,IAAI,IAAM,MAAQ,IAAI,KAAO,GAAI,OAAO,OAAO,IAAI,EAAE,EAShE,QARI,KAAO,CACT,KAAO,IAAI,KAAO,IAAI,KAAO,GAC7B,KAAO,IAAI,OAAS,IAAI,OAAS,GACjC,KAAO,IAAI,QAAU,IAAI,QAAU,KAAO,IAAI,QAAU,IAAI,QAAU,KAAO,IAAI,KAAO,IAAI,KAAO,GACnG,KAAO,IAAI,UAAY,IAAI,UAAY,GACvC,eAAiB,KAAO,cAAgB,EAC1C,EAAE,KAAK,GAAG,EACN,KAAO,EACF,MAAQ,EAAG,MAAQ,KAAK,OAAQ,OAAS,EAChD,KAAQ,KAAO,GAAK,KAAK,WAAW,KAAK,IAAO,EAElD,MAAO,MAAQ,KAAK,SAAS,EAAE,CACjC,CAEA,SAAS,cAAc,KAAM,CAC3B,KAAK,iBAAiB,qBAAqB,EAAE,QAAQ,SAAU,KAAM,CACnE,IAAI,OAAS,KAAK,aAAa,aAAa,EAC5C,GAAK,OACL,KAAI,WAAa,IAAI,KAAK,MAAM,EAAE,QAAQ,EAC1C,GAAI,QAAO,MAAM,UAAU,EAC3B,KAAI,MAAQ,CACV,KAAM,KAAK,cAAc,gBAAgB,EACzC,MAAO,KAAK,cAAc,iBAAiB,EAC3C,QAAS,KAAK,cAAc,mBAAmB,EAC/C,QAAS,KAAK,cAAc,mBAAmB,CACjD,EAEI,OAAS,UAAY,CACvB,IAAI,KAAO,KAAK,IAAI,EAAG,WAAa,KAAK,IAAI,CAAC,EAC9C,aAAa,MAAM,KAAM,OAAO,KAAK,MAAM,KAAO,KAAQ,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EAC7E,aAAa,MAAM,MAAO,OAAO,KAAK,MAAO,KAAO,MAAY,IAAO,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EAC1F,aAAa,MAAM,QAAS,OAAO,KAAK,MAAO,KAAO,KAAW,GAAK,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EACzF,aAAa,MAAM,QAAS,OAAO,KAAK,MAAO,KAAO,IAAS,GAAI,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,CACxF,EAEA,OAAO,EACP,OAAO,YAAY,OAAQ,GAAI,GACjC,CAAC,CACH,CAEA,SAAS,iBAAiB,KAAM,CAC9B,MAAM,WAAY,CAAE,QAAS,CAAE,OAAQ,kBAAmB,CAAE,CAAC,EAC1D,KAAK,SAAU,SAAU,CAAE,OAAO,SAAS,KAAK,CAAG,CAAC,EACpD,KAAK,SAAU,KAAM,CACpB,sBAAsB,KAAK,UAAU,EACrC,KAAK,iBAAiB,sBAAsB,EAAE,QAAQ,SAAU,MAAO,CACjE,KAAK,WAAa,GACpB,MAAM,OAAS,GACf,MAAM,YAAc,KAAK,WAAa,EAAI,KAAO,OAAO,KAAK,UAAU,GAEvE,MAAM,OAAS,EAEnB,CAAC,CACH,CAAC,EACA,MAAM,UAAY,CAAC,CAAC,CACzB,CAEA,SAAS,SAAS,KAAM,CACtB,KAAK,iBAAiB,wBAAwB,EAAE,QAAQ,SAAU,KAAM,CACtE,KAAK,iBAAiB,gBAAgB,EAAE,QAAQ,SAAU,WAAY,CACpE,WAAW,iBAAiB,QAAS,UAAY,CAC/C,KAAK,UAAU,OAAO,eAAe,EACrC,KAAK,iBAAiB,gBAAgB,EAAE,QAAQ,SAAU,KAAM,CAC9D,KAAK,UAAU,OAAO,WAAW,CACnC,CAAC,EACD,WAAW,UAAU,IAAI,WAAW,CACtC,CAAC,CACH,CAAC,CACH,CAAC,EAED,KAAK,iBAAiB,eAAe,EAAE,QAAQ,SAAU,KAAM,CAC7D,KAAK,iBAAiB,SAAU,SAAU,MAAO,CAC/C,MAAM,eAAe,EACrB,IAAI,KAAO,KAAK,QAAQ,wBAAwB,EAChD,GAAI,MAAQ,KAAK,iBAAiB,gBAAgB,EAAE,QAAU,CAAC,KAAK,cAAc,0BAA0B,EAAG,CAC7G,KAAK,UAAU,IAAI,eAAe,EAClC,OAAO,WAAW,UAAY,CAC5B,KAAK,UAAU,OAAO,eAAe,CACvC,EAAG,IAAI,EACP,MACF,CAEA,IAAI,OAAS,KAAK,cAAc,iBAAiB,EAC7C,aAAe,KAAK,cAAc,kBAAkB,EACxD,GAAI,GAAC,cAAgB,CAAC,aAAa,OACnC,KAAI,SAAW,QAAU,OAAO,aAAa,YAAY,EAAI,OAAO,aAAa,YAAY,EAAI,eACjG,eAAe,OAAQ,aAAc,cAAc,EAEnD,MAAM,OAAO,QAAU,OAAO,OAAO,aAAe,OAAO,OAAO,aAAe,eAAgB,CAC/F,OAAQ,OACR,QAAS,CACP,eAAgB,mBAChB,OAAQ,kBACV,EACA,KAAM,KAAK,UAAU,CACnB,MAAO,CAAC,CAAE,GAAI,OAAO,aAAa,KAAK,EAAG,SAAU,CAAE,CAAC,CACzD,CAAC,CACH,CAAC,EACE,KAAK,SAAU,SAAU,CACxB,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,MAAM,iBAAiB,EACnD,OAAO,SAAS,KAAK,CACvB,CAAC,EACA,KAAK,UAAY,CAChB,eAAe,OAAQ,aAAc,QAAQ,EAC7C,iBAAiB,IAAI,EACrB,OAAO,WAAW,UAAY,CAC5B,eAAe,OAAQ,GAAI,QAAQ,CACrC,EAAG,IAAI,CACT,CAAC,EACA,MAAM,UAAY,CACjB,eAAe,OAAQ,WAAY,mBAAmB,EACtD,OAAO,WAAW,UAAY,CAC5B,eAAe,OAAQ,GAAI,QAAQ,CACrC,EAAG,IAAI,CACT,CAAC,EACL,CAAC,CACH,CAAC,CACH,CAEA,IAAI,gBAAkB,CAAC,EACnB,mBAAqB,EAEzB,SAAS,YAAY,OAAQ,OAAQ,CACnC,IAAI,IAAM,QAAU,GAChB,MAAQ,CAAC,EAKb,OAJA,OAAO,KAAK,QAAU,CAAC,CAAC,EAAE,QAAQ,SAAU,IAAK,CAC3C,OAAO,GAAG,GAAK,MAAQ,OAAO,GAAG,IAAM,IAC3C,MAAM,KAAK,mBAAmB,GAAG,EAAI,IAAM,mBAAmB,OAAO,GAAG,CAAC,CAAC,CAC5E,CAAC,EACI,MAAM,OACJ,KAAO,IAAI,QAAQ,GAAG,IAAM,GAAK,IAAM,KAAO,MAAM,KAAK,GAAG,EADzC,GAE5B,CAEA,SAAS,gBAAgB,OAAQ,OAAQ,CACvC,IAAI,WAAa,YAAY,OAAQ,MAAM,EAC3C,OAAK,YAEA,gBAAgB,UAAU,IAC7B,gBAAgB,UAAU,EAAI,MAAM,WAAY,CAAE,QAAS,CAAE,OAAQ,kBAAmB,CAAE,CAAC,EACxF,KAAK,SAAU,SAAU,CACxB,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,MAAM,sBAAsB,EACxD,OAAO,SAAS,KAAK,CACvB,CAAC,EACA,MAAM,UAAY,CACjB,OAAO,IAAI,QAAQ,SAAU,QAAS,OAAQ,CAC5C,oBAAsB,EACtB,IAAI,aAAe,kBAAoB,mBACnC,QAAU,UAAY,CACxB,GAAI,CACF,OAAO,OAAO,YAAY,CAC5B,OAAS,MAAO,CACd,OAAO,YAAY,EAAI,MACzB,CACI,QAAU,OAAO,YAAY,OAAO,WAAW,YAAY,MAAM,CACvE,EACI,MAAQ,OAAO,WAAW,UAAY,CACxC,QAAQ,EACR,OAAO,IAAI,MAAM,sBAAsB,CAAC,CAC1C,EAAG,GAAK,EACJ,OAAS,SAAS,cAAc,QAAQ,EACxC,UAAY,WAAW,QAAQ,GAAG,IAAM,GAAK,IAAM,IAEvD,OAAO,YAAY,EAAI,SAAU,QAAS,CACxC,OAAO,aAAa,KAAK,EACzB,QAAQ,EACR,QAAQ,OAAO,CACjB,EAEA,OAAO,IAAM,WAAa,UAAY,YAAc,aACpD,OAAO,MAAQ,GACf,OAAO,QAAU,UAAY,CAC3B,OAAO,aAAa,KAAK,EACzB,QAAQ,EACR,OAAO,IAAI,MAAM,qBAAqB,CAAC,CACzC,EACA,SAAS,KAAK,YAAY,MAAM,CAClC,CAAC,CACH,CAAC,GAGE,gBAAgB,UAAU,GA7CT,QAAQ,QAAQ,IAAI,CA8C9C,CAEA,SAAS,wBAAwB,KAAM,cAAe,CACpD,IAAI,KAAO,MAAM,QAAQ,IAAI,EAAI,KAAO,MAAQ,MAAM,QAAQ,KAAK,OAAO,EAAI,KAAK,QAAU,CAAC,EAC1F,QAAU,oBAAoB,aAAa,EAC/C,OAAK,wBAAwB,OAAO,EAI7B,KAAK,OAAO,SAAU,IAAK,CAChC,GAAI,CAAC,IAAK,MAAO,GACjB,IAAI,OAAS,OAAO,IAAI,QAAU,SAAS,EAAE,KAAK,EAAE,YAAY,EAC5D,OAAS,oBAAoB,IAAI,YAAc,IAAI,aAAe,EAAE,EACxE,OAAO,SAAW,WAAa,SAAW,OAC5C,CAAC,EARQ,CAAC,CASZ,CAEA,SAAS,gBAAgB,MAAO,CAC9B,IAAI,IAAM,OAAO,OAAS,EAAE,EAAE,KAAK,EACnC,GAAI,CAAC,IAAK,MAAO,GAMjB,GAJI,mBAAmB,KAAK,GAAG,GAAK,UAAU,KAAK,GAAG,GAIlD,IAAI,OAAO,CAAC,IAAM,IACpB,OAAO,IAGT,IAAI,WAAa,IACd,QAAQ,UAAW,EAAE,EACrB,QAAQ,YAAa,EAAE,EAE1B,OAAO,OAAO,SAAS,OAAS,mBAAqB,mBAAmB,UAAU,EAAE,QAAQ,OAAQ,GAAG,CACzG,CAEA,SAAS,eAAe,IAAK,MAAO,SAAU,CAC5C,GAAI,CAAC,IAAK,MAAO,GACjB,QAAS,EAAI,EAAG,EAAI,SAAS,OAAQ,GAAK,EAAG,CAC3C,IAAI,IAAM,gBAAkB,MAAQ,SAAS,CAAC,EAC9C,GAAI,IAAI,GAAG,GAAK,MAAQ,OAAO,IAAI,GAAG,CAAC,EAAE,KAAK,EAC5C,OAAO,OAAO,IAAI,GAAG,CAAC,EAAE,KAAK,CAEjC,CACA,MAAO,EACT,CAEA,SAAS,oBAAoB,IAAK,MAAO,CACvC,GAAI,CAAC,IAAK,OAAO,KAEjB,IAAI,OAAS,gBAAgB,eAAe,IAAK,MAAO,CAAC,SAAU,QAAQ,CAAC,CAAC,EACzE,MAAQ,gBAAgB,eAAe,IAAK,MAAO,CAAC,QAAS,QAAS,YAAa,aAAc,YAAY,CAAC,CAAC,EAC/G,KAAO,eAAe,IAAK,MAAO,CAAC,OAAQ,OAAQ,QAAS,OAAO,CAAC,EACpE,YAAc,eAAe,IAAK,MAAO,CAAC,cAAe,cAAe,OAAQ,MAAM,CAAC,EACvF,KAAO,eAAe,IAAK,MAAO,CAAC,cAAe,cAAe,OAAQ,OAAQ,MAAO,KAAK,CAAC,EAElG,MAAI,CAAC,QAAU,CAAC,OAAS,CAAC,MAAQ,CAAC,aAAe,CAAC,KAC1C,KAGF,CACL,OAAQ,OACR,MAAO,OAAS,OAChB,KAAM,KACN,YAAa,YACb,KAAM,IACR,CACF,CAEA,SAAS,2BAA2B,OAAQ,SAAU,MAAO,CAC3D,IAAI,OAAS,SAAS,cAAc,OAAS,SAAW,MAAM,EAG9D,GAFA,OAAO,UAAY,6BAEf,CAAC,QAAU,CAAC,OAAO,OACrB,cAAO,UAAU,IAAI,gBAAgB,EAC9B,OAGT,OAAO,KAAO,SACd,OAAO,aAAa,yBAA0B,EAAE,EAChD,OAAO,aAAa,sBAAuB,OAAO,MAAQ,EAAE,EAC5D,OAAO,aAAa,6BAA8B,OAAO,aAAe,EAAE,EAC1E,OAAO,aAAa,uBAAwB,OAAO,OAAS,EAAE,EAC9D,OAAO,aAAa,sBAAuB,OAAO,MAAQ,EAAE,EAC5D,OAAO,aAAa,sBAAuB,UAAY,EAAE,EACzD,OAAO,aAAa,wBAAyB,OAAO,KAAK,EAAE,SAAS,EAAG,GAAG,CAAC,EAC3E,OAAO,aAAa,cAAe,OAAO,MAAQ,UAAY,UAAY,UAAU,EAEpF,IAAI,MAAQ,SAAS,cAAc,KAAK,EACxC,aAAM,UAAY,mCAClB,MAAM,IAAM,OAAO,OACnB,MAAM,KAAO,OAAO,MAAQ,UAAY,UAAY,WAAa,MACjE,MAAM,QAAU,OAChB,OAAO,YAAY,KAAK,EAEjB,MACT,CAEA,SAAS,6BAA6B,SAAU,IAAK,CACnD,GAAI,GAAC,UAAY,CAAC,KAElB,KAAI,eAAiB,SAAS,cAAc,uBAAuB,EAC/D,WAAa,SAAS,cAAc,+BAA+B,EACnE,SAAW,SAAS,aAAa,mBAAmB,GAAK,GACzD,WAAa,gBAAgB,IAAI,YAAc,IAAI,YAAc,EAAE,EAEnE,gBAAkB,aACpB,eAAe,UAAY,+CAAiD,WAAa,UAAY,SAAW,qBAG7G,aAEL,WAAW,UAAY,GACvB,CAAC,EAAG,EAAG,CAAC,EAAE,QAAQ,SAAU,MAAO,CACjC,WAAW,YAAY,2BAA2B,oBAAoB,IAAK,KAAK,EAAG,SAAU,KAAK,CAAC,CACrG,CAAC,GACH,CAEA,SAAS,qBAAqB,KAAM,KAAM,MAAO,CAC/C,GAAI,GAAC,MAAQ,CAAC,OAEd,KAAI,eAAiB,KAAK,QAAQ,0BAA0B,EACxD,MAAQ,MAAM,UAAU,MAAM,KAAK,KAAK,iBAAiB,gBAAgB,CAAC,EAC1E,MAAQ,OAAO,MAAM,KAAK,GAAK,EAC/B,UAAY,KAAK,cAAc,uBAAuB,EAEtD,YACF,UAAU,YAAc,OAAO,KAAK,EAAE,eAAe,OAAO,EAC5D,UAAU,UAAU,OAAO,uBAAwB,2BAA2B,EAC9E,UAAU,gBAAgB,sBAAsB,EAChD,UAAU,gBAAgB,WAAW,GAGvC,MAAM,QAAQ,SAAU,SAAU,MAAO,CACvC,IAAI,QAAU,SAAS,aAAa,kBAAkB,GAAK,GACvD,MAAQ,OAAO,MAAM,OAAS,MAAM,MAAM,OAAO,CAAC,GAAK,EACvD,IAAM,MAAQ,EAAI,KAAK,MAAO,MAAQ,MAAS,GAAG,EAAI,EACtD,WAAa,KAAK,cAAc,8BAAgC,MAAQ,IAAI,EAC5E,SAAW,KAAK,cAAc,sBAAwB,MAAQ,IAAI,EAClE,KAAO,KAAK,cAAc,uBAAyB,MAAQ,IAAI,EAC/D,eAAiB,KAAK,cAAc,6BAA+B,MAAQ,IAAI,EAC/E,WAAa,KAAK,cAAc,8BAAgC,MAAQ,IAAI,EAEhF,SAAS,aAAa,qBAAsB,OAAO,KAAK,CAAC,EACrD,aACF,WAAW,YAAc,OAAO,KAAK,EAAE,eAAe,OAAO,EAC7D,WAAW,UAAU,OAAO,uBAAwB,2BAA2B,EAC/E,WAAW,gBAAgB,sBAAsB,EACjD,WAAW,gBAAgB,WAAW,GAEpC,WACF,SAAS,YAAc,IAAM,IAC7B,SAAS,UAAU,OAAO,uBAAwB,2BAA2B,EAC7E,SAAS,gBAAgB,sBAAsB,EAC/C,SAAS,gBAAgB,WAAW,GAElC,OAAM,KAAK,MAAM,MAAQ,IAAM,KAC/B,iBACF,eAAe,YAAc,IAAM,IACnC,eAAe,UAAU,OAAO,uBAAwB,2BAA2B,EACnF,eAAe,gBAAgB,sBAAsB,EACrD,eAAe,gBAAgB,WAAW,GAExC,aAAY,WAAW,MAAM,MAAQ,IAAM,IACjD,CAAC,EAED,KAAK,aAAa,gBAAiB,OAAO,KAAK,CAAC,EAChD,KAAK,UAAU,OAAO,kBAAkB,EACpC,gBACF,eAAe,UAAU,OAAO,kBAAkB,EAEtD,CAEA,SAAS,wBAAwB,KAAM,QAAS,CAC9C,IAAI,KAAO,CAAC,EACZ,OAAI,MAAM,QAAQ,IAAI,EACpB,KAAO,KACE,MAAQ,MAAM,QAAQ,KAAK,QAAQ,EAC5C,KAAO,KAAK,SACH,MAAQ,KAAK,OAAO,GAAK,MAAM,QAAQ,KAAK,OAAO,CAAC,EAC7D,KAAO,KAAK,OAAO,EACV,MAAQ,KAAK,OAAS,KAAK,MAAM,OAAO,GAAK,MAAM,QAAQ,KAAK,MAAM,OAAO,CAAC,IACvF,KAAO,KAAK,MAAM,OAAO,GAGpB,KACJ,OAAO,SAAU,IAAK,CACrB,GAAI,CAAC,IAAK,MAAO,GACjB,IAAI,OAAS,OAAO,IAAI,QAAU,SAAS,EAAE,KAAK,EAAE,YAAY,EAC5D,KAAO,OAAO,IAAI,MAAQ,IAAI,UAAY,IAAI,SAAW,OAAO,EAAE,KAAK,EACvE,kBAAoB,OAAO,SAAW,EAAE,EAAE,KAAK,EAC/C,QAAU,OAAO,IAAI,SAAW,IAAI,SAAW,IAAI,MAAQ,EAAE,EAAE,KAAK,EACxE,OAAO,SAAW,WAAa,OAAS,mBAAqB,OAC/D,CAAC,EACA,KAAK,SAAU,EAAG,EAAG,CACpB,OAAQ,OAAO,EAAE,IAAI,GAAK,IAAM,OAAO,EAAE,IAAI,GAAK,EACpD,CAAC,CACL,CAEA,SAAS,0BAA0B,KAAM,CACvC,OAAO,KAAO,KAAK,QAAQ,sBAAsB,EAAI,IACvD,CAEA,SAAS,uBAAuB,KAAM,QAAS,CAC7C,IAAI,eAAiB,0BAA0B,IAAI,EAC/C,WAAa,eAAiB,eAAe,aAAa,6BAA6B,EAAI,GAC3F,KAAO,YAAY,WAAY,CAAC,CAAC,EACrC,OAAQ,MAAM,QAAQ,IAAI,EAAI,KAAO,CAAC,GACnC,OAAO,SAAU,IAAK,CACrB,OAAO,KAAO,OAAO,IAAI,MAAQ,EAAE,EAAE,KAAK,IAAM,OAAO,SAAW,EAAE,EAAE,KAAK,CAC7E,CAAC,EACA,KAAK,SAAU,EAAG,EAAG,CACpB,OAAQ,OAAO,EAAE,SAAS,GAAK,IAAM,OAAO,EAAE,SAAS,GAAK,EAC9D,CAAC,CACL,CAEA,SAAS,qBAAqB,IAAK,MAAO,CACxC,IAAI,KAAO,SAAS,cAAc,IAAI,EAQtC,GAPA,KAAK,UAAY,0BACjB,KAAK,aAAa,0BAA2B,EAAE,EAC/C,KAAK,aAAa,sBAAuB,OAAO,KAAK,CAAC,EACtD,KAAK,aAAa,qBAAsB,cAAc,IAAK,KAAK,CAAC,EACjE,KAAK,aAAa,yBAA0B,OAAO,IAAI,QAAU,EAAE,EAAE,KAAK,CAAC,EAC3E,KAAK,aAAa,0BAA2B,OAAO,IAAI,SAAW,IAAI,SAAW,IAAI,MAAQ,EAAE,EAAE,KAAK,CAAC,EAEpG,IAAI,OAAQ,CACd,IAAI,KAAO,SAAS,cAAc,KAAK,EACvC,KAAK,UAAY,0BAEjB,IAAI,OAAS,SAAS,cAAc,QAAQ,EAM5C,GALA,OAAO,UAAY,4BACnB,OAAO,YAAc,OAAO,IAAI,MAAM,EAAE,KAAK,EAE7C,KAAK,YAAY,MAAM,EAEnB,IAAI,UAAW,CACjB,IAAI,KAAO,SAAS,cAAc,MAAM,EACxC,KAAK,UAAY,0BACjB,KAAK,YAAc,IAAI,QAAU,WAAU,GAC3C,KAAK,YAAY,IAAI,CACvB,CAEA,KAAK,YAAY,IAAI,CACvB,CAEA,IAAI,KAAO,SAAS,cAAc,GAAG,EACrC,KAAK,UAAY,0BACjB,KAAK,YAAc,OAAO,IAAI,SAAW,IAAI,SAAW,IAAI,MAAQ,EAAE,EAAE,KAAK,EAE7E,IAAI,QAAU,SAAS,cAAc,KAAK,EAC1C,eAAQ,UAAY,6BAEpB,CACE,CAAE,KAAM,KAAM,MAAO,cAAY,KAAM,eAAM,MAAO,IAAI,KAAM,EAC9D,CAAE,KAAM,OAAQ,MAAO,gBAAW,KAAM,eAAM,MAAO,IAAI,SAAU,SAAU,EAAK,CACpF,EAAE,QAAQ,SAAU,OAAQ,CAC1B,IAAI,OAAS,SAAS,cAAc,QAAQ,EAC5C,OAAO,UAAY,OAAO,SAAW,wCAA0C,4BAC/E,OAAO,KAAO,SACd,OAAO,aAAa,uBAAwB,OAAO,IAAI,EACvD,OAAO,aAAa,eAAgB,OAAO,EAE3C,IAAI,KAAO,SAAS,cAAc,MAAM,EACxC,KAAK,UAAY,iCACjB,KAAK,aAAa,cAAe,MAAM,EACvC,KAAK,YAAc,OAAO,KAE1B,IAAI,MAAQ,SAAS,cAAc,MAAM,EACzC,MAAM,UAAY,kCAClB,MAAM,YAAc,OAAO,MAE3B,IAAI,MAAQ,SAAS,cAAc,MAAM,EACzC,MAAM,UAAY,kCAClB,MAAM,aAAa,wBAAyB,EAAE,EAC9C,MAAM,YAAc,OAAO,KAAK,IAAI,EAAG,OAAO,OAAO,KAAK,GAAK,CAAC,CAAC,EAEjE,OAAO,OAAO,KAAM,MAAO,KAAK,EAChC,QAAQ,YAAY,MAAM,CAC5B,CAAC,EAED,KAAK,OAAO,KAAM,OAAO,EAClB,IACT,CAEA,SAAS,qBAAqB,KAAM,KAAM,CACxC,KAAK,UAAY,GACjB,KAAK,QAAQ,SAAU,IAAK,MAAO,CACjC,KAAK,YAAY,qBAAqB,IAAK,KAAK,CAAC,CACnD,CAAC,CACH,CAEA,SAAS,sBAAsB,OAAQ,WAAY,CACjD,OAAO,gBAAgB,OAAQ,CAC7B,WAAY,UACd,CAAC,CACH,CAEA,SAAS,mBAAmB,KAAM,CAChC,IAAI,OAAS,KAAK,aAAa,2BAA2B,EACtD,QAAU,KAAK,aAAa,yBAAyB,EACrD,KAAO,KAAK,QAAQ,oBAAoB,EACxC,kBAAoB,qBAAqB,IAAI,EAC7C,UAAY,uBAAuB,KAAM,OAAO,EAAE,IAAI,SAAU,IAAK,CACvE,WAAI,QAAU,GACP,GACT,CAAC,EAED,MAAI,CAAC,QAAU,CAAC,QACP,QAAQ,QAAQ,SAAS,EAG3B,sBAAsB,OAAQ,iBAAiB,EACnD,KAAK,SAAU,KAAM,CACpB,IAAI,WAAa,wBAAwB,KAAM,OAAO,EACtD,OAAO,UAAU,OAAO,UAAU,CACpC,CAAC,EACA,MAAM,UAAY,CACjB,OAAO,SACT,CAAC,CACL,CAEA,SAAS,sBAAsB,KAAM,CACnC,GAAI,CAAC,KAAM,OAAO,QAAQ,QAAQ,EAAK,EACvC,IAAI,SAAW,KAAK,cAAc,+BAA+B,EAC7D,KAAO,KAAK,cAAc,2BAA2B,EACrD,SAAW,KAAK,cAAc,+BAA+B,EACjE,GAAI,CAAC,UAAY,CAAC,KAAM,OAAO,QAAQ,QAAQ,EAAK,EAEpD,SAAS,gBAAgB,UAAW,CAClC,KAAK,UAAU,OAAO,aAAc,SAAS,EACzC,WACF,SAAS,OAAS,CAAC,UACnB,SAAS,MAAM,QAAU,UAAY,GAAK,QAE5C,KAAK,OAAS,UACd,KAAK,MAAM,QAAU,UAAY,OAAS,EAC5C,CAEA,uBAAgB,EAAI,EACb,mBAAmB,IAAI,EAAE,KAAK,SAAU,KAAM,CACnD,4BAAqB,KAAM,IAAI,EAC/B,SAAS,UAAY,EACrB,gBAAgB,EAAK,EACd,KAAK,OAAS,CACvB,CAAC,CACH,CAEA,SAAS,eAAe,KAAM,CAC5B,KAAK,iBAAiB,+BAA+B,EAAE,QAAQ,SAAU,SAAU,CACjF,GAAI,SAAS,QAAQ,0BAA4B,OAAQ,OACzD,SAAS,QAAQ,wBAA0B,OAE3C,IAAI,KAAO,SAAS,QAAQ,0BAA0B,EAClD,KAAO,SAAS,cAAc,2BAA2B,EAC7D,GAAI,CAAC,MAAQ,CAAC,KAAM,OAEpB,sBAAsB,IAAI,EAE1B,IAAI,gBAAkB,GAClB,iBAAmB,EACnB,WAAa,EACb,aAAe,EAEnB,SAAS,eAAe,OAAQ,CAC9B,KAAK,UAAU,OAAO,YAAa,MAAM,CAC3C,CAEA,SAAS,gBAAgB,SAAU,CACjC,WAAa,KAAK,IAAI,EAAI,SAC1B,KAAK,UAAU,IAAI,mBAAmB,EACtC,eAAe,EAAI,EACnB,OAAO,aAAa,YAAY,EAChC,aAAe,OAAO,WAAW,UAAY,CAC3C,KAAK,UAAU,OAAO,mBAAmB,EACpC,SAAS,QAAQ,QAAQ,GAAG,eAAe,EAAK,CACvD,EAAG,QAAQ,CACb,CAEA,SAAS,gBAAgB,OAAQ,MAAO,CACtC,IAAI,UAAY,OAAO,cAAc,yBAAyB,EAC9D,GAAK,UACL,KAAI,QAAU,OAAO,UAAU,WAAW,GAAK,EAC/C,UAAU,YAAc,OAAO,KAAK,IAAI,EAAG,QAAU,KAAK,CAAC,EAC7D,CAEA,SAAS,iBAAiB,QAAS,SAAU,MAAO,CAClD,IAAI,OAAS,MAAM,OAAO,QAAQ,wBAAwB,EAC1D,GAAK,OACL,KAAI,KAAO,OAAO,QAAQ,2BAA2B,EACrD,GAAK,KACL,KAAI,eAAiB,0BAA0B,IAAI,EAC/C,QAAU,eAAiB,eAAe,aAAa,4BAA4B,EAAI,GACvF,UAAY,KAAK,aAAa,oBAAoB,GAAK,GACvD,cAAgB,KAAK,aAAa,wBAAwB,GAAK,GAC/D,eAAiB,KAAK,aAAa,yBAAyB,GAAK,GACjE,QAAU,KAAK,aAAa,yBAAyB,GAAK,GAC1D,WAAa,KAAK,aAAa,qBAAqB,EACpD,SAAW,OAAO,aAAa,sBAAsB,EACrD,eAAiB,KAAK,iBAAiB,yBAA2B,WAAa,6BAA+B,SAAW,IAAI,EAC7H,aAAe,WAAa,KAAO,OAAS,KAC5C,gBAAkB,KAAK,iBAAiB,yBAA2B,WAAa,6BAA+B,aAAe,IAAI,EAClI,UAAY,OAAO,aAAa,cAAc,IAAM,OACpD,UAAY,EAEZ,WACF,eAAe,QAAQ,SAAU,KAAM,CACrC,KAAK,aAAa,eAAgB,OAAO,EACzC,gBAAgB,KAAM,EAAE,CAC1B,CAAC,EACD,UAAY,IAEZ,gBAAgB,QAAQ,SAAU,KAAM,CAClC,KAAK,aAAa,cAAc,IAAM,SACxC,KAAK,aAAa,eAAgB,OAAO,EACzC,gBAAgB,KAAM,EAAE,EAE5B,CAAC,EACD,eAAe,QAAQ,SAAU,KAAM,CACjC,KAAK,aAAa,cAAc,IAAM,SACxC,KAAK,aAAa,eAAgB,MAAM,EACxC,gBAAgB,KAAM,CAAC,EAE3B,CAAC,EACD,UAAY,GAGd,gBAAgB,IAAI,EAEpB,SAAS,QAAS,CAChB,KAAM,OACN,OAAQ,eACR,KAAM,QACN,UAAW,UACX,OAAQ,cACR,QAAS,eACT,SAAU,SACV,UAAW,UACX,UAAW,KAAK,IAAI,CACtB,CAAC,EAAE,MAAM,UAAY,CAAC,CAAC,GACzB,CAAC,EAED,SAAS,iBAAiB,aAAc,UAAY,CAClD,WAAa,OAAO,kBACpB,eAAe,EAAI,CACrB,CAAC,EAED,SAAS,iBAAiB,aAAc,UAAY,CAClD,WAAa,KAAK,IAAI,EAAI,IAC1B,KAAK,UAAU,OAAO,mBAAmB,EACzC,eAAe,EAAK,CACtB,CAAC,EAED,SAAS,iBAAiB,QAAS,UAAY,CAC7C,gBAAgB,IAAI,CACtB,EAAG,CAAE,QAAS,EAAK,CAAC,EAEpB,SAAS,iBAAiB,aAAc,UAAY,CAClD,gBAAgB,IAAI,CACtB,EAAG,CAAE,QAAS,EAAK,CAAC,EAEpB,SAAS,iBAAiB,SAAU,UAAY,CAC1C,KAAK,IAAI,EAAI,iBAAmB,KAChC,iBACJ,gBAAgB,IAAI,CACtB,EAAG,CAAE,QAAS,EAAK,CAAC,EAEpB,SAAS,MAAO,CACd,GAAK,SAAS,KAAK,SAAS,QAAQ,EAEpC,KAAI,aAAe,KAAK,IAAI,EAAG,SAAS,aAAe,SAAS,YAAY,EAE1E,SAAS,aAAe,SAAS,cACjC,SAAS,UAAY,cACrB,KAAK,IAAI,GAAK,aAEd,gBAAkB,GAClB,iBAAmB,KAAK,IAAI,EAC5B,SAAS,UAAY,KAAK,IAAI,aAAc,SAAS,UAAY,EAAG,EACpE,gBAAkB,IAGpB,OAAO,sBAAsB,IAAI,EACnC,CAEA,OAAO,sBAAsB,IAAI,CACnC,CAAC,CACH,CAEA,SAAS,eAAe,KAAM,CAC5B,KAAK,iBAAiB,sBAAsB,EAAE,QAAQ,SAAU,KAAM,CACpE,IAAI,kBAAoB,qBAAqB,IAAI,EAC7C,eAAiB,KAAK,QAAQ,0BAA0B,EACxD,WAAa,KAAK,aAAa,qBAAqB,EACpD,kBAAoB,KAAK,aAAa,6BAA6B,EACnE,UAAY,KAAK,aAAa,+BAA+B,EAC7D,iBAAmB,KAAK,aAAa,4BAA4B,EACjE,OAAS,KAAK,cAAc,6BAA6B,EACzD,WAAa,KAAK,cAAc,4BAA4B,EAC5D,aAAe,KAAK,cAAc,6BAA6B,EAC/D,MAAQ,KAAK,cAAc,4BAA4B,EACvD,YAAc,KAAK,iBAAiB,kCAAkC,EACtE,YAAc,KAAK,cAAc,wBAAwB,EACzD,kBAAoB,KAAK,iBAAiB,8BAA8B,EACxE,iBAAmB,KAAK,cAAc,8BAA8B,EACpE,gBAAkB,KAAK,cAAc,6BAA6B,EAClE,gBAAkB,KAAK,cAAc,6BAA6B,EAClE,gBAAkB,KAAK,cAAc,6BAA6B,EAClE,mBAAqB,KAAK,cAAc,gCAAgC,EACxE,eAAiB,KAAK,cAAc,4BAA4B,EAChE,aAAe,KAAK,cAAc,+BAA+B,EACjE,YAAc,KAAK,cAAc,wBAAwB,EACzD,gBAAkB,KAAK,cAAc,6BAA6B,EAClE,YAAc,KAAK,cAAc,wBAAwB,EACzD,aAAe,KAAK,cAAc,2BAA2B,EAC7D,gBAAkB,KAAK,cAAc,4BAA4B,EACjE,YAAc,KAAK,cAAc,gCAAgC,EACjE,eAAiB,MAAM,UAAU,MAAM,KAAK,KAAK,iBAAiB,0BAA0B,CAAC,EAC7F,gBAAkB,MAAM,UAAU,MAAM,KAAK,KAAK,iBAAiB,2BAA2B,CAAC,EAC/F,kBAAoB,OAAS,OAAO,YAAc,GAClD,uBAAyB,YAAc,YAAY,YAAc,GACjE,2BAA6B,gBAAkB,gBAAgB,YAAc,GAC7E,MAAQ,MAAM,UAAU,MAAM,KAAK,KAAK,iBAAiB,gBAAgB,CAAC,EAC1E,UAAY,KAAK,cAAc,gBAAgB,EAC/C,UAAY,KAAK,cAAc,uBAAuB,EACtD,MAAQ,MAAM,IAAI,SAAU,KAAM,CACpC,OAAO,OAAO,KAAK,aAAa,oBAAoB,CAAC,GAAK,CAC5D,CAAC,EACG,WAAa,OAAO,KAAK,aAAa,eAAe,CAAC,GAAK,MAAM,OAAO,SAAU,IAAK,KAAM,CAC/F,OAAO,IAAM,IACf,EAAG,CAAC,EACA,SAAW,KACX,gBAAkB,YAAY,WAAY,IAAI,EAElD,KAAK,UAAU,IAAI,kBAAkB,EACjC,gBACF,eAAe,UAAU,IAAI,kBAAkB,EAGjD,SAAS,aAAa,MAAO,CAC3B,OAAO,OAAO,KAAK,EAAE,eAAe,OAAO,CAC7C,CAEA,SAAS,wBAAyB,CAChC,OAAO,OAAO,WAAW,oBAAoB,EAAE,OACjD,CAEA,SAAS,uBAAuB,QAAS,CACvC,GAAK,QAOL,IANA,eAAe,QAAQ,SAAU,IAAK,CACpC,IAAI,UAAY,IAAI,aAAa,wBAAwB,GAAK,MAAQ,QACtE,IAAI,UAAU,OAAO,YAAa,QAAQ,EAC1C,IAAI,aAAa,gBAAiB,SAAW,OAAS,OAAO,CAC/D,CAAC,EAEG,CAAC,uBAAuB,EAAG,CAC7B,gBAAgB,QAAQ,SAAU,MAAO,CACvC,MAAM,gBAAgB,gCAAgC,CACxD,CAAC,EACD,MACF,CAEA,gBAAgB,QAAQ,SAAU,MAAO,CACvC,IAAI,UAAY,MAAM,aAAa,yBAAyB,GAAK,MAAQ,QACrE,SAAU,MAAM,gBAAgB,gCAAgC,EAC/D,MAAM,aAAa,iCAAkC,EAAE,CAC9D,CAAC,EACH,CAEA,SAAS,sBAAuB,CAC9B,GAAI,GAAC,eAAe,QAAU,CAAC,gBAAgB,QAC/C,IAAI,CAAC,uBAAuB,EAAG,CAC7B,gBAAgB,QAAQ,SAAU,MAAO,CACvC,MAAM,gBAAgB,gCAAgC,CACxD,CAAC,EACD,MACF,CACA,IAAI,UAAY,eAAe,KAAK,SAAU,IAAK,CACjD,OAAO,IAAI,UAAU,SAAS,WAAW,CAC3C,CAAC,EACD,uBAAuB,UAAa,UAAU,aAAa,wBAAwB,GAAK,GAAO,gBAAgB,CAAC,EAAE,aAAa,yBAAyB,GAAK,EAAG,EAClK,CAEA,SAAS,oBAAoB,MAAO,CAClC,IAAI,KAAO,MAAM,KAAK,EACtB,OAAK,KACE,CACL,UAAW,MACX,QAAS,KAAK,aAAa,kBAAkB,GAAK,GAClD,SAAU,KAAK,aAAa,mBAAmB,GAAK,GACpD,UAAW,KAAK,aAAa,qBAAqB,GAAK,GACvD,MAAO,YAAc,WAAW,MAAQ,WAAW,MAAM,KAAK,EAAI,GAClE,YAAa,KAAK,IAAI,CACxB,EARkB,IASpB,CAEA,SAAS,aAAa,MAAO,CAC3B,MAAO,6BAA6B,KAAK,OAAO,OAAS,EAAE,EAAE,KAAK,CAAC,CACrE,CAEA,SAAS,WAAY,CACd,QAED,MAAM,aAAe,SAAS,MAChC,SAAS,KAAK,YAAY,KAAK,EAGjC,MAAM,OAAS,GACf,MAAM,UAAU,OAAO,SAAS,EAEhC,OAAO,sBAAsB,UAAY,CACvC,OAAO,sBAAsB,UAAY,CACvC,MAAM,UAAU,IAAI,SAAS,CAC/B,CAAC,CACH,CAAC,EAED,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAChD,CAEA,SAAS,YAAa,CACf,QAEL,MAAM,UAAU,OAAO,SAAS,EAEhC,OAAO,WAAW,UAAY,CAC5B,MAAM,OAAS,IACX,CAAC,aAAe,YAAY,SAC9B,SAAS,KAAK,UAAU,OAAO,kBAAkB,CAErD,EAAG,GAAG,EACR,CAEA,SAAS,gBAAgB,QAAS,CAChC,GAAI,GAAC,aAAe,CAAC,SAErB,CAAI,YAAY,aAAe,SAAS,MACtC,SAAS,KAAK,YAAY,WAAW,EAGvC,IAAI,KAAO,QAAQ,aAAa,qBAAqB,GAAK,GACtD,YAAc,QAAQ,aAAa,4BAA4B,GAAK,GACpE,MAAQ,QAAQ,aAAa,sBAAsB,GAAK,GACxD,KAAO,QAAQ,aAAa,qBAAqB,GAAK,GACtD,SAAW,QAAQ,aAAa,qBAAqB,GAAK,GAE1D,kBACF,gBAAgB,YAAc,MAAQ,mBAEpC,qBACF,mBAAmB,YAAc,KAAO,mBAAqB,mBAE3D,iBACF,eAAe,YAAc,UAAY,iBAEvC,kBACF,gBAAgB,YAAc,aAAe,+BAE3C,mBACE,OACF,iBAAiB,IAAM,MACvB,iBAAiB,IAAM,MAAQ,kBAC/B,iBAAiB,OAAS,IAE1B,iBAAiB,OAAS,IAG1B,kBACE,MACF,gBAAgB,KAAO,KACvB,gBAAgB,UAAU,OAAO,aAAa,EAC9C,gBAAgB,gBAAgB,eAAe,IAE/C,gBAAgB,KAAO,IACvB,gBAAgB,UAAU,IAAI,aAAa,EAC3C,gBAAgB,aAAa,gBAAiB,MAAM,IAIxD,YAAY,OAAS,GACrB,YAAY,UAAU,OAAO,SAAS,EACtC,OAAO,sBAAsB,UAAY,CACvC,OAAO,sBAAsB,UAAY,CACvC,YAAY,UAAU,IAAI,SAAS,CACrC,CAAC,CACH,CAAC,EACD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAChD,CAEA,SAAS,kBAAmB,CACrB,cACL,YAAY,UAAU,OAAO,SAAS,EACtC,OAAO,WAAW,UAAY,CAC5B,YAAY,OAAS,IACjB,CAAC,OAAS,MAAM,SAClB,SAAS,KAAK,UAAU,OAAO,kBAAkB,CAErD,EAAG,GAAG,EACR,CAEA,SAAS,aAAc,CACjB,KAAK,UAAU,SAAS,kBAAkB,IAG9C,WAAa,MAAM,OAAO,SAAU,IAAK,KAAM,CAC7C,OAAO,IAAM,IACf,EAAG,CAAC,EACA,YAAW,UAAU,YAAc,aAAa,UAAU,GAC9D,MAAM,QAAQ,SAAU,KAAM,MAAO,CACnC,IAAI,IAAM,WAAa,EAAI,KAAK,MAAO,MAAM,KAAK,EAAI,WAAc,GAAG,EAAI,EACvE,WAAa,KAAK,cAAc,8BAAgC,MAAQ,IAAI,EAC5E,SAAW,KAAK,cAAc,sBAAwB,MAAQ,IAAI,EAClE,KAAO,KAAK,cAAc,uBAAyB,MAAQ,IAAI,EAC/D,eAAiB,KAAK,cAAc,6BAA+B,MAAQ,IAAI,EAC/E,WAAa,KAAK,cAAc,8BAAgC,MAAQ,IAAI,EAC5E,aAAY,WAAW,YAAc,aAAa,MAAM,KAAK,CAAC,GAC9D,WAAU,SAAS,YAAc,IAAM,KACvC,OAAM,KAAK,MAAM,MAAQ,IAAM,KAC/B,iBAAgB,eAAe,YAAc,IAAM,KACnD,aAAY,WAAW,MAAM,MAAQ,IAAM,KAC/C,KAAK,aAAa,qBAAsB,OAAO,MAAM,KAAK,CAAC,CAAC,CAC9D,CAAC,EACH,CAEA,SAAS,aAAc,CACrB,IAAI,YAAc,WAAa,KAAO,SAAY,gBAAkB,gBAAgB,UAAY,KAahG,GAXA,MAAM,QAAQ,SAAU,KAAM,MAAO,CACnC,KAAK,UAAU,OAAO,YAAa,cAAgB,KAAK,EACxD,KAAK,UAAU,OAAO,YAAa,CAAC,CAAC,eAAe,EACpD,KAAK,aAAa,gBAAiB,OAAO,CAC5C,CAAC,EAEG,YACF,UAAU,aAAa,qBAAsB,cAAgB,KAAO,GAAK,OAAO,WAAW,CAAC,EAC5F,UAAU,UAAU,OAAO,mBAAoB,cAAgB,IAAI,GAGjE,aAAc,CAChB,IAAI,WAAa,YAAc,WAAW,MAAQ,WAAW,MAAM,KAAK,EAAI,GAC5E,aAAa,SAAW,gBAAkB,GAAO,WAAa,MAAQ,CAAC,aAAa,UAAU,CAChG,CAEI,iBACF,KAAK,UAAU,IAAI,cAAc,EAC7B,SACF,OAAO,YAAc,mGAEnB,eACF,aAAa,YAAc,kBAAiB,gBAAgB,MAAQ,0BAA4B,gBAAgB,SAAW,+GAEzH,cAAa,YAAY,OAAS,IAClC,cAAa,YAAY,OAAS,IAClC,cAAa,YAAY,aAAe,gBAAgB,UAAY,gBAAgB,UAAY,IAAM,IAAM,gBAAgB,UAC5H,kBACF,gBAAgB,YAAc,4DAAkD,gBAAgB,UAElG,uBAAuB,gBAAgB,OAAO,EAC1C,aACF,WAAW,MAAQ,gBAAgB,OAAS,GAC5C,WAAW,SAAW,MAGxB,KAAK,UAAU,OAAO,cAAc,EAChC,cAAa,YAAY,OAAS,IAClC,cAAa,YAAY,OAAS,IAClC,SAAQ,OAAO,YAAc,mBAC7B,cAAa,YAAY,YAAc,wBACvC,kBAAiB,gBAAgB,YAAc,4BAC/C,aAAY,WAAW,SAAW,KAGxC,YAAY,CACd,CAEI,YACF,CAAC,QAAS,SAAU,MAAM,EAAE,QAAQ,SAAU,UAAW,CACvD,WAAW,iBAAiB,UAAW,WAAW,CACpD,CAAC,EAGH,MAAM,QAAQ,SAAU,KAAM,MAAO,CACnC,KAAK,iBAAiB,QAAS,SAAU,MAAO,CAC9C,SAAW,MACX,YAAY,CACd,CAAC,EACD,KAAK,iBAAiB,UAAW,SAAU,MAAO,CAC5C,MAAM,MAAQ,SAAW,MAAM,MAAQ,MAC3C,MAAM,eAAe,EACrB,SAAW,MACX,YAAY,EACd,CAAC,CACH,CAAC,EAED,eAAe,QAAQ,SAAU,IAAK,CACpC,IAAI,iBAAiB,QAAS,UAAY,CACxC,uBAAuB,IAAI,aAAa,wBAAwB,GAAK,EAAE,CACzE,CAAC,CACH,CAAC,EAED,OAAO,iBAAiB,SAAU,oBAAoB,EAEtD,gBAAgB,UAAW,CACzB,KAAM,UACN,WAAY,iBACd,CAAC,EAAE,KAAK,SAAU,KAAM,CACtB,IAAI,KAAO,wBAAwB,KAAM,iBAAiB,EAC1D,MAAM,QAAQ,SAAU,SAAU,CAChC,IAAI,QAAU,SAAS,aAAa,kBAAkB,GAAK,GACvD,IAAM,KAAK,KAAK,SAAU,KAAM,CAClC,OAAO,OAAO,KAAK,MAAQ,EAAE,EAAE,KAAK,IAAM,OAC5C,CAAC,EACG,KAAK,6BAA6B,SAAU,GAAG,CACrD,CAAC,CACH,CAAC,EAAE,MAAM,UAAY,CAAC,CAAC,EAEvB,gBAAgB,UAAW,CACzB,KAAM,QACN,WAAY,iBACd,CAAC,EAAE,KAAK,SAAU,MAAO,CACvB,MAAM,QAAQ,SAAU,SAAU,MAAO,CACvC,IAAI,QAAU,SAAS,aAAa,kBAAkB,GAAK,GAC3D,MAAM,KAAK,EAAI,OAAO,OAAS,MAAM,OAAS,MAAM,MAAM,OAAO,CAAC,GAAK,CACzE,CAAC,EACD,WAAa,OAAO,OAAS,MAAM,KAAK,GAAK,MAAM,OAAO,SAAU,IAAK,KAAM,CAC7E,OAAO,IAAM,IACf,EAAG,CAAC,EACJ,qBAAqB,KAAM,KAAM,KAAK,CACxC,CAAC,EAAE,MAAM,UAAY,CACnB,KAAK,UAAU,OAAO,kBAAkB,EACpC,gBACF,eAAe,UAAU,OAAO,kBAAkB,CAEtD,CAAC,EAEG,cACF,aAAa,iBAAiB,QAAS,UAAY,CACjD,GAAI,mBAAmB,WAAa,MACpC,KAAI,aAAe,oBAAoB,QAAQ,EAC/C,GAAK,aACL,IAAI,CAAC,aAAa,aAAa,KAAK,EAAG,CACjC,eAAc,aAAa,SAAW,IACtC,SAAQ,OAAO,YAAc,2DACjC,MACF,CACA,gBAAkB,aAClB,MAAM,QAAQ,GAAK,EACnB,aAAa,WAAY,eAAe,EACxC,YAAY,EACZ,UAAU,EACV,SAAS,UAAW,CAClB,KAAM,aACN,OAAQ,oBACR,MAAO,aAAa,MACpB,KAAM,aAAa,QACnB,SAAU,aAAa,SACvB,YAAa,aAAa,YAC1B,QAAS,OAAO,SAAW,OAAO,SAAS,KAAO,EACpD,EAAG,iBAAiB,EAAE,MAAM,UAAY,CAAC,CAAC,GAC5C,CAAC,EAGC,YAAY,QACd,YAAY,QAAQ,SAAU,KAAM,CAClC,KAAK,iBAAiB,QAAS,UAAU,CAC3C,CAAC,EAGC,kBAAkB,QACpB,kBAAkB,QAAQ,SAAU,KAAM,CACxC,KAAK,iBAAiB,QAAS,gBAAgB,CACjD,CAAC,EAGH,KAAK,iBAAiB,QAAS,SAAU,MAAO,CAC9C,IAAI,QAAU,MAAM,OAAO,QAAQ,0BAA0B,EACzD,CAAC,SAAW,CAAC,KAAK,SAAS,OAAO,IACtC,MAAM,eAAe,EACrB,gBAAgB,OAAO,EACzB,CAAC,EAED,SAAS,iBAAiB,UAAW,SAAU,MAAO,CAChD,MAAM,MAAQ,WAChB,WAAW,EACX,iBAAiB,EAErB,CAAC,EAEG,aACF,YAAY,iBAAiB,SAAU,SAAU,MAAO,CAEtD,GADA,MAAM,eAAe,EACjB,EAAC,gBACL,KAAI,IAAM,KAAK,IAAI,EACf,YAAc,sBAAsB,kBAAmB,gBAAgB,OAAS,GAAI,iBAAiB,EACrG,cAAgB,OAAO,YAAY,YAAa,CAAC,CAAC,GAAK,EAC3D,GAAI,eAAiB,IAAM,cAAgB,MAAU,CAC/C,kBAAiB,gBAAgB,YAAc,qGACnD,MACF,CACA,IAAI,QAAU,cAAgB,aAAa,MAAQ,aAAa,MAAM,KAAK,EAAI,GAC/E,GAAI,CAAC,QAAS,CACR,kBAAiB,gBAAgB,YAAc,oDACnD,MACF,CAEA,IAAI,OAAS,gBAAgB,MAAQ,OAAO,gBAAgB,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,EAAI,eAE/E,QAAU,CACZ,GAAI,cAAc,CAChB,KAAM,gBAAgB,QACtB,OAAQ,QAAU,eAClB,QAAS,QACT,UAAW,GACb,CAAC,EACD,KAAM,gBAAgB,QACtB,OAAQ,QAAU,eAClB,MAAO,gBAAgB,OAAS,GAChC,QAAS,QACT,MAAO,EACP,SAAU,EACV,OAAQ,UACR,UAAW,GACb,EAEI,MAAQ,YAAY,kBAAmB,CAAC,CAAC,EACxC,MAAM,QAAQ,KAAK,IAAG,MAAQ,CAAC,GACpC,MAAM,QAAQ,OAAO,EACrB,aAAa,kBAAmB,KAAK,EACrC,aAAa,YAAa,GAAG,EAEzB,kBAAiB,gBAAgB,YAAc,8GAC/C,eAAc,aAAa,MAAQ,IACvC,uBAAuB,gBAAgB,OAAO,EAE9C,IAAI,WAAa,KAAK,cAAc,sDAAwD,gBAAgB,QAAU,IAAI,EACtH,YAAY,sBAAsB,UAAU,EAEhD,SAAS,UAAW,CAClB,KAAM,aACN,OAAQ,oBACR,MAAO,gBAAgB,OAAS,GAChC,KAAM,gBAAgB,QACtB,SAAU,gBAAgB,SAC1B,YAAa,gBAAgB,aAAe,IAC5C,QAAS,OAAO,SAAW,OAAO,SAAS,KAAO,EACpD,EAAG,iBAAiB,EAAE,MAAM,UAAY,CAAC,CAAC,EAE1C,SAAS,iBAAkB,CACzB,KAAM,UACN,OAAQ,iBACR,UAAW,QAAQ,GACnB,MAAO,gBAAgB,OAAS,GAChC,KAAM,gBAAgB,QACtB,SAAU,gBAAgB,SAC1B,UAAW,gBAAgB,WAAa,GACxC,OAAQ,QAAQ,OAChB,QAAS,QAAQ,QACjB,MAAO,EACP,SAAU,EACV,OAAQ,UACR,UAAW,QAAQ,SACrB,EAAG,iBAAiB,EAAE,MAAM,UAAY,CAClC,kBAAiB,gBAAgB,YAAc,4HACrD,CAAC,EACH,CAAC,EAGH,YAAY,EACZ,qBAAqB,CACvB,CAAC,CACH,CAEA,SAAS,WAAW,KAAM,CACxB,IAAI,OAAS,KAAK,cAAc,kBAAkB,EAClD,GAAK,OACL,KAAI,OAAS,UAAY,CACnB,OAAO,QAAU,IAAK,OAAO,UAAU,IAAI,YAAY,EACtD,OAAO,UAAU,OAAO,YAAY,CAC3C,EACA,OAAO,EACP,OAAO,iBAAiB,SAAU,OAAQ,CAAE,QAAS,EAAK,CAAC,EAC7D,CAEA,SAAS,iBAAiB,KAAM,CAC9B,KAAK,iBAAiB,yBAAyB,EAAE,QAAQ,SAAU,SAAU,CAC3E,IAAI,SAAW,SAAS,cAAc,yBAAyB,EAC3D,KAAO,SAAS,cAAc,qBAAqB,EACnD,KAAO,SAAS,cAAc,qBAAqB,EACvD,GAAI,CAAC,UAAY,CAAC,MAAQ,CAAC,KAAM,OACjC,IAAI,UAAY,OAAO,SAAS,aAAa,oBAAoB,CAAC,GAAK,EAEvE,GAAI,UAAY,GAAK,WAAa,EAAG,CACnC,SAAS,UAAU,IAAI,WAAW,EAClC,KAAK,SAAW,GAChB,KAAK,SAAW,GAChB,SAAS,WAAa,EACtB,MACF,CAEA,SAAS,UAAU,OAAO,WAAW,EAErC,SAAS,SAAU,CACjB,OAAO,KAAK,IAAI,EAAG,SAAS,WAAW,CACzC,CAEA,SAAS,eAAgB,CACvB,IAAI,UAAY,KAAK,IAAI,EAAG,SAAS,YAAc,SAAS,WAAW,EACnE,QAAU,KAAK,IAAI,EAAG,SAAS,UAAU,EAC7C,KAAK,SAAW,SAAW,EAC3B,KAAK,SAAW,SAAW,UAAY,CACzC,CAEA,KAAK,iBAAiB,QAAS,UAAY,CACzC,SAAS,SAAS,CAAE,KAAM,CAAC,QAAQ,EAAG,SAAU,QAAS,CAAC,CAC5D,CAAC,EAED,KAAK,iBAAiB,QAAS,UAAY,CACzC,SAAS,SAAS,CAAE,KAAM,QAAQ,EAAG,SAAU,QAAS,CAAC,CAC3D,CAAC,EAED,SAAS,iBAAiB,SAAU,cAAe,CAAE,QAAS,EAAK,CAAC,EACpE,OAAO,iBAAiB,SAAU,aAAa,EAC/C,cAAc,CAChB,CAAC,CACH,CAEA,SAAS,gBAAgB,KAAM,CAC7B,IAAI,OAAS,KAAK,cAAc,wBAAwB,EACpD,OAAS,KAAK,cAAc,wBAAwB,EACxD,GAAI,CAAC,QAAU,CAAC,OAAQ,OAExB,IAAI,QAAU,GAEd,SAAS,QAAS,CAChB,QAAU,GACV,IAAI,IAAM,SAAS,gBACf,UAAY,KAAK,IAAI,GAAI,IAAI,cAAgB,GAAK,OAAO,WAAW,EACpE,SAAW,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,OAAO,QAAU,SAAS,CAAC,EAClE,OAAO,MAAM,YAAY,uBAAwB,SAAS,QAAQ,CAAC,CAAC,EACpE,OAAO,aAAa,gBAAiB,UAAY,KAAQ,SAAW,SAAS,CAC/E,CAEA,SAAS,eAAgB,CACnB,UACJ,QAAU,GACV,OAAO,sBAAsB,MAAM,EACrC,CAEA,OAAO,EACP,OAAO,iBAAiB,SAAU,cAAe,CAAE,QAAS,EAAK,CAAC,EAClE,OAAO,iBAAiB,SAAU,aAAa,CACjD,CAEA,SAAS,kBAAkB,KAAM,CAC/B,KAAK,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU,OAAQ,CAClE,OAAO,iBAAiB,QAAS,UAAY,CAC3C,eAAe,OAAO,aAAa,gBAAgB,CAAC,CACtD,CAAC,CACH,CAAC,CACH,CAEA,SAAS,iBAAiB,KAAM,CAC9B,KAAK,iBAAiB,yBAAyB,EAAE,QAAQ,SAAU,KAAM,CACvE,OAAO,sBAAsB,UAAY,CACvC,OAAO,sBAAsB,UAAY,CACvC,KAAK,UAAU,IAAI,UAAU,CAC/B,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAEA,SAAS,WAAW,KAAM,CACxB,IAAI,MAAQ,KAAK,iBAAiB,kBAAkB,EACpD,GAAK,MAAM,OAEX,IAAI,EAAE,yBAA0B,QAAS,CACvC,MAAM,QAAQ,SAAU,KAAM,CAC5B,KAAK,UAAU,IAAI,WAAW,CAChC,CAAC,EACD,MACF,CAEA,IAAI,SAAW,IAAI,qBAAqB,SAAU,QAAS,CACzD,QAAQ,QAAQ,SAAU,MAAO,CAC1B,MAAM,iBACX,MAAM,OAAO,UAAU,IAAI,WAAW,EACtC,SAAS,UAAU,MAAM,MAAM,EACjC,CAAC,CACH,EAAG,CACD,UAAW,EACb,CAAC,EAED,MAAM,QAAQ,SAAU,KAAM,CAC5B,SAAS,QAAQ,IAAI,CACvB,CAAC,EACH,CAEA,SAAS,oBAAoB,KAAM,CACjC,IAAI,MAAQ,KAAK,cAAc,SAAS,EACpC,GAAK,MAAQ,MAAM,cAAc,aAAa,EAAI,KACtD,GAAI,CAAC,OAAS,CAAC,GAAI,OAEnB,IAAI,QAAU,GAEd,SAAS,QAAS,CAChB,QAAU,GACV,IAAI,KAAO,KAAK,sBAAsB,EAClC,SAAW,KAAK,IAAM,OAAO,aAAe,KAAK,OAAS,EAC1D,QAAU,KAAK,IAAI,EAAG,KAAK,GAAG,EAC9B,WAAa,KAAK,IAAI,EAAG,OAAO,YAAc,KAAK,MAAM,EAE7D,MAAM,UAAU,OAAO,eAAgB,QAAQ,EAC/C,GAAG,MAAM,SAAW,SAAW,QAAQ,QAAQ,CAAC,EAAI,QAAU,WAAW,QAAQ,CAAC,EAAI,OACxF,CAEA,SAAS,eAAgB,CACnB,UACJ,QAAU,GACV,OAAO,sBAAsB,MAAM,EACrC,CAEA,OAAO,EACP,OAAO,iBAAiB,SAAU,cAAe,CAAE,QAAS,EAAK,CAAC,EAClE,OAAO,iBAAiB,SAAU,aAAa,CACjD,CAEA,SAAS,YAAY,KAAM,CACrB,CAAC,MAAQ,KAAK,QAAQ,gBAAkB,SAC5C,KAAK,QAAQ,cAAgB,OAC7B,oBAAoB,IAAI,EACxB,iBAAiB,IAAI,EACrB,WAAW,IAAI,EACf,kBAAkB,IAAI,EACtB,cAAc,IAAI,EAClB,WAAW,IAAI,EACf,iBAAiB,IAAI,EACrB,gBAAgB,IAAI,EACpB,SAAS,IAAI,EACb,eAAe,IAAI,EACnB,eAAe,IAAI,EACnB,iBAAiB,IAAI,EACvB,CAEA,SAAS,MAAM,SAAU,CACnB,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,QAAQ,EAEtD,SAAS,CAEb,CAEA,MAAM,UAAY,CAChB,SAAS,iBAAiB,oBAAoB,EAAE,QAAQ,WAAW,CACrE,CAAC,EAED,SAAS,iBAAiB,uBAAwB,SAAU,MAAO,CACjE,GAAI,GAAC,OAAS,CAAC,MAAM,QACrB,KAAI,KAAO,MAAM,OAAO,cAAc,oBAAoB,GAAK,MAAM,OACrE,YAAY,IAAI,EAClB,CAAC,CACH,GAAG",
  "names": []
}
