{"version":3,"file":"wzard-customize-id-page.js","names":["document","addEventListener","URLSearchParams","window","location","search","sizeSelected","colorSelected","idType","$","click","this","hasClass","show","removeClass","addClass","data","getAttribute","url","val","urlEngrave","urlToUse","ajax","method","success","response","error","xhr","status","checkIfAllSelected","ctaElement","querySelector","element","offset","elementPosition","getBoundingClientRect","top","scrollY","scrollTo","behavior","smoothScrollToElement","handleDesktopScroll","upButton","downButton","imagesWrapper","productImages","querySelectorAll","currentPosition","getElementById","sizeContainers","colorContainers","maxScroll","length","style","transform","forEach","sizeContainer","html","container","classList","remove","add","innerHTML","productSize","each","selectedSizeContainer","on","prop","css","text","colorContainer","contains","colorName","productColor","handleColorSelection","selectedColorContainer","pid","textContent","dataUrl","attr","get","selectedVariant","inCart","opacity","err","imageContainer","imageSelected","setAttribute","img","firstColumn","secondColumn","containerRow","Imagewrappercontainer","innerWidth","scrollLeft","marginLeft","isScrollingTogether","firstColumnRect","secondColumnRect","containerRect","bottom","position","customizeid","pdpEditbutton","customizeidQr","updateLinkTarget","link","find","trim","editPid","type","redirectUrl","href","input","counter","nextElementSibling","previewId","id","previewElement","value","remaining","button","event","stopPropagation","body","previousElementSibling","isExpanded","toggle","toggleReadMore","ready","accordion","collapseElement"],"sources":["wzard-customize-id-page.js"],"sourcesContent":["document.addEventListener(\"DOMContentLoaded\", function () {\n  // Get the full URL\n  var urlParams = new URLSearchParams(window.location.search);\n  const productData = {};\n\n  let sizeSelected = null;\n  let colorSelected = null;\n  let idType = null;\n\n  $(\".engrave-cards-container\").click(function () {\n    if ($(this).hasClass(\"selected-engrave-cards-container\")) {\n      return;\n    }\n    $(\".pdpLoader\").show();\n    $(\".engrave-cards-container\").removeClass(\n      \"selected-engrave-cards-container\"\n    );\n    $(this).addClass(\"selected-engrave-cards-container\");\n    var data = this.getAttribute(\"data-name\");\n    idType = data;\n    var url = $(\".call-sm\").val();\n    var urlEngrave = $(\".call-engrave\").val();\n    var cardType = $(this).data(\"name\");\n    var urlToUse = cardType === \"QR\" ? url : urlEngrave;\n\n    $.ajax({\n      url: urlToUse,\n      method: \"GET\",\n      success: function (response) {\n        console.log(\"Response:\", response);\n      },\n      error: function (xhr, status, error) {\n        console.log(\"AJAX error:\", error);\n      },\n    });\n\n    // Check if all selected to handle desktop scroll\n    if (checkIfAllSelected()) {\n      handleDesktopScroll();\n    }\n  });\n\n  const upButton = document.querySelector(\".up-button\");\n  const downButton = document.querySelector(\".down-button\");\n  const imagesWrapper = document.querySelector(\".images-wrapper\");\n  const productImages = imagesWrapper.querySelectorAll(\".product-colors-image\");\n  let imageHeight = 88 + 5 * 2; // Image height (88px) + margin (8px * 2)\n\n  const EngraveID = document.querySelector(\".EngraveID-Container\");\n  const compareBenifits = document.querySelector(\".compareBenifits\");\n\n  const visibleImagesCount = 5;\n  let currentPosition = 0;\n  const button = document.getElementById(\"customizeid\");\n\n  const sizeContainers = document.querySelectorAll(\n    \".customize-size-container-variation\"\n  );\n  const colorContainers = document.querySelectorAll(\n    \".customize-color-container\"\n  );\n\n  // Calculate the max scroll position based on the number of images\n  const maxScroll = -(\n    (productImages.length - visibleImagesCount) *\n    imageHeight\n  );\n\n  // Function to check if all options are selected\n  function checkIfAllSelected() {\n    //eslint-disable-line\n\n    if (sizeContainers.length == 0 && colorContainers.length == 0) {\n      return true;\n    }\n\n    if (sizeContainers.length != 0 && colorContainers.length != 0) {\n      return sizeSelected && colorSelected;\n    } else {\n      if (sizeContainers.length != 0 && sizeSelected != null) {\n        return true;\n      } else {\n        if (colorContainers.length != 0 && colorSelected != null) {\n          return true;\n        } else {\n          return false;\n        }\n      }\n    }\n  }\n\n  // Scroll functionality for product images\n  upButton.addEventListener(\"click\", function () {\n    if (currentPosition < 0) {\n      currentPosition += imageHeight;\n      imagesWrapper.style.transform = \"translateY(\" + currentPosition + \"px)\";\n    }\n  });\n\n  downButton.addEventListener(\"click\", function () {\n    if (currentPosition > maxScroll) {\n      currentPosition -= imageHeight;\n      imagesWrapper.style.transform = \"translateY(\" + currentPosition + \"px)\";\n    }\n  });\n\n  // Handle size selection\n  sizeContainers.forEach(function (sizeContainer) {\n    sizeContainer.addEventListener(\"click\", function () {\n      $(\"#sizeHeader\").html(\"Size: \");\n      sizeContainers.forEach(function (container) {\n        return container.classList.remove(\"customize-size-container-active\");\n      });\n      this.classList.add(\"customize-size-container-active\");\n      sizeSelected = this.getAttribute(\"data-size\");\n      document.querySelectorAll(\".customize-size\").forEach(function (element) {\n        element.innerHTML = sizeSelected;\n      });\n      productSize = sizeSelected;\n      if (checkIfAllSelected()) {\n        // handleDesktopScroll();\n      }\n      $(\"#sizeHeader\").removeClass(\"errorState\");\n      $(\".customizeid-sizechart .customize-size-container\").each(function () {\n        $(this).removeClass(\"size-error-state\");\n      });\n    });\n  });\n\n  const selectedSizeContainer = document.querySelector(\n    \".customize-size-container-variation.selected\"\n  );\n  if (selectedSizeContainer) {\n    selectedSizeContainer.classList.add(\"customize-size-container-active\"); // Ensure it's visually active\n    sizeSelected = selectedSizeContainer.getAttribute(\"data-size\");\n    document.querySelectorAll(\".customize-size\").forEach(function (element) {\n      element.innerHTML = sizeSelected;\n    });\n    productSize = sizeSelected;\n    $(\"#sizeHeader\").html(\"Size: \");\n  }\n\n  // $(\".customize-color-container\").click(function() {\n  //     $(\".customize-color-container\").removeClass(\"customize-color-active\");\n  //     $(this).addClass(\"customize-color-active\");\n  // });\n\n  // $(\"#customizeEngraveid\").click(function () {\n  //   if ($(\"#EngraveCheckboxPDP\").prop(\"checked\")) {\n  //     $(\".custom-checkbox-container .checkmark\").css(\"border-color\", \"\");\n  //     $(\".declaration .text\").css(\"color\", \"\");\n  //   } else {\n  //     $(\".custom-checkbox-container .checkmark\").css(\"border-color\", \"#e63946\");\n  //     $(\".declaration .text\").css(\"color\", \"#e63946\");\n  //   }\n  // });\n\n  $(\"#EngraveCheckbox\").on(\"change\", function () {\n    if ($(this).prop(\"checked\")) {\n      // Reset styles if the checkbox is checked\n      $(\".custom-checkbox-container .checkmark\").css({\n        \"border-color\": \"#051424\",\n      });\n      $(\".declaration .text\").css(\"color\", \"#051424\");\n    } else {\n      $(\"#engravingline3\").val(\"\");\n      $(\"#engravingline4\").val(\"\");\n      $(\"#pengravingline3\").text(\"\");\n      $(\"#pengravingline4\").text(\"\");\n    }\n  });\n\n  function handleColorSelection(colorContainer) {\n    // Check if there is only one color and prevent unselecting\n    if (colorContainers.length === 1) {\n      return; // Exit without changing anything\n    }\n    if (colorContainer.classList.contains(\"selected\")) {\n      // If already selected, reset\n      colorSelected = null;\n      $(\"#colorHeader\").html(\"Select Your Color: \");\n      colorContainer.classList.remove(\"customize-color-active\");\n\n      document.querySelectorAll(\".customize-color\").forEach(function (element) {\n        element.innerHTML = \"\";\n      });\n    } else {\n      // If not selected, update selection\n      $(\"#colorHeader\").html(\"Color: \");\n\n      // Remove active class from all\n      colorContainers.forEach(function (container) {\n        container.classList.remove(\"customize-color-active\");\n      });\n\n      // Add active class to the clicked one\n      colorContainer.classList.add(\"customize-color-active\");\n\n      colorSelected = colorContainer.getAttribute(\"data-attr-value\");\n      var colorName = colorSelected; // Just a more readable name\n\n      document.querySelectorAll(\".customize-color\").forEach(function (element) {\n        element.innerHTML = colorName;\n      });\n\n      productColor = colorName;\n    }\n  }\n\n  // Add event listeners for clicks\n  colorContainers.forEach(function (colorContainer) {\n    colorContainer.addEventListener(\"click\", function () {\n      handleColorSelection(colorContainer);\n      $(\"#colorHeader\").removeClass(\"errorState\");\n      $(\".customize-color-container\").each(function () {\n        $(this).removeClass(\"color-error-state\");\n      });\n    });\n  });\n\n  const selectedColorContainer = document.querySelector(\n    \".customize-color-container.selected\"\n  );\n  if (selectedColorContainer) {\n    selectedColorContainer.classList.add(\"customize-color-active\"); // Ensure it's visually active\n    colorSelected = selectedColorContainer.getAttribute(\"data-attr-value\");\n    productColor = colorSelected;\n\n    // Update UI with the selected color name\n    document.querySelectorAll(\".customize-color\").forEach(function (element) {\n      element.innerHTML = colorSelected;\n    });\n\n    $(\"#colorHeader\").html(\"Color: \");\n    var pid = $(\".product-id\")[0].textContent;\n    var dataUrl = $(\"#selectedVariationURL\").attr(\"data-url\");\n    var urlParams = new URLSearchParams(window.location.search);\n    var editPid = urlParams.get(\"editPid\");\n    if (!editPid) {\n      $.ajax({\n        url: dataUrl,\n        method: \"POST\",\n        data: { selectedVariant: pid },\n        success: function (response) {\n          if (response.inCart) {\n            $(\"#customizeid , #customizeidQr\")\n              .text(\"Already In Your Cart\")\n              .css({ opacity: \"0.5\", \"pointer-events\": \"none\" });\n          } else {\n            $(\"#customizeid , #customizeidQr\")\n              .text(\"Next\")\n              .css({ opacity: \"1\", \"pointer-events\": \"auto\" });\n          }\n        },\n        error: function (err) {\n          console.error(\"Error fetching product variation:\", err);\n        },\n      });\n    }\n  }\n\n  // Handle product image selection\n  productImages.forEach(function (imageContainer) {\n    imageContainer.addEventListener(\"click\", function () {\n      // Update selected image\n      imageSelected = this.querySelector(\"img\").getAttribute(\"src\");\n      document\n        .querySelector(\".Product-image img\")\n        .setAttribute(\"src\", imageSelected);\n\n      productImages.forEach(function (img) {\n        return img.classList.remove(\"product-colors-image-border\");\n      });\n      this.classList.add(\"product-colors-image-border\");\n\n      // checkIfAllSelected();\n    });\n  });\n\n  const firstColumn = document.querySelector(\".product-container-col\");\n  const secondColumn = document.querySelector(\".customizeid-col\");\n  const containerRow = document.querySelector(\".product-container-row\");\n\n  const Imagewrappercontainer = document.querySelector(\n    \".images-wrapper-container\"\n  );\n\n  Imagewrappercontainer.addEventListener(\"scroll\", function () {\n    if (window.innerWidth < 767) {\n      if (Imagewrappercontainer.scrollLeft > 0) {\n        Imagewrappercontainer.style.marginLeft = \"0px\"; // Remove left margin when scrolling\n      } else {\n        Imagewrappercontainer.style.marginLeft = \"16px\"; // Restore margin when scrolled back\n      }\n    }\n  });\n\n  let isScrollingTogether = false; // Track whether the columns are scrolling together\n\n  const handleScroll = function () {\n    const isDesktop = window.innerWidth > 1200; // Desktop breakpoint\n    if (!isDesktop) return; // Exit if not on desktop\n\n    const firstColumnRect = firstColumn.getBoundingClientRect();\n    const secondColumnRect = secondColumn.getBoundingClientRect();\n    const containerRect = containerRow.getBoundingClientRect();\n\n    // Check if the second column has reached the bottom of the first column\n    if (secondColumnRect.bottom <= firstColumnRect.bottom) {\n      if (isScrollingTogether) {\n        isScrollingTogether = true; // Update state to scrolling together\n        firstColumn.style.position = \"relative\";\n        firstColumn.style.top =\n          \"\" + secondColumnRect.top - containerRect.top + \"px\";\n      }\n    } else if (secondColumnRect.top <= containerRect.top) {\n      // Reset sticky behavior when scrolling back up\n      if (!isScrollingTogether) {\n        isScrollingTogether = false; // Update state to not scrolling together\n        firstColumn.style.position = \"sticky\";\n        firstColumn.style.top = \"88px\";\n      }\n    }\n  };\n\n  window.addEventListener(\"scroll\", handleScroll);\n\n  // Re-check window size on resize to enable/disable the function dynamically\n  window.addEventListener(\"resize\", function () {\n    const isDesktop = window.innerWidth >= 1200; // Desktop breakpoint\n    if (!isDesktop) {\n      // Reset styles if switching to mobile\n      firstColumn.style.position = \"\";\n      firstColumn.style.top = \"\";\n    }\n  });\n\n  // Helper function to smoothly scroll to an element\n  function smoothScrollToElement(element, offset = 0) {\n    const elementPosition =\n      element.getBoundingClientRect().top + window.scrollY - offset;\n    window.scrollTo({\n      top: elementPosition - 300,\n      behavior: \"smooth\",\n    });\n  }\n\n  // Desktop: Trigger scroll when validation is complete\n  function handleDesktopScroll() {\n    const ctaElement = document.querySelector(\"#customizeid\"); // Replace with your CTA button selector\n    const desktopOffset = 100; // Adjust offset to ensure button is above the fold\n    smoothScrollToElement(ctaElement, desktopOffset);\n  }\n\n  const customizeid = document.getElementById(\"customizeid\");\n  const pdpEditbutton = document.getElementById(\"pdpEditbutton\");\n  const customizeidQr = document.getElementById(\"customizeidQr\");\n\n  pdpEditbutton?.addEventListener(\"click\", function () {\n    document.querySelector(\".custom-engrave-container\").classList.add(\"d-none\");\n    document.querySelector(\".engravepdplikeheader\").classList.remove(\"d-none\");\n    document\n      .querySelector(\".engrave-plp-card-container\")\n      .classList.remove(\"d-none\");\n    document\n      .querySelector(\".productOnlyContainerPDP\")\n      .classList.remove(\"d-none\");\n    // $(\".engraveBar\").addClass(\"d-none\");\n    $(\".engraveBar\").removeClass(\"Wizard-account\");\n    $(\".Wizard-account-bar, .Wizard-engrave-bar\").css(\n      \"background-color\",\n      \"#828991\"\n    );\n    $(\".Wizard-engrave\").removeClass(\"progress-active\");\n    $(\".Wizard-account\").removeClass(\"progress-deactive\");\n    $(\".Wizard-account\").addClass(\"progress-active\");\n    $(\".Wizard-checked-circle-account\").removeClass(\"Wizard-account-circle\");\n  });\n\n  customizeid.addEventListener(\"click\", function () {\n    window.scrollTo({\n      top: 0,\n      behavior: \"smooth\", // Enables smooth scrolling\n    });\n    if (checkIfAllSelected()) {\n      document\n        .querySelector(\".custom-engrave-container\")\n        .classList.remove(\"d-none\");\n      document.querySelector(\".engravepdplikeheader\").classList.add(\"d-none\");\n      document\n        .querySelector(\".engrave-plp-card-container\")\n        .classList.add(\"d-none\");\n      document\n        .querySelector(\".productOnlyContainerPDP\")\n        .classList.add(\"d-none\");\n      $(\".engraveBar\").removeClass(\"d-none\");\n      $(\".Wizard-account-bar, .Wizard-engrave-bar\").css(\n        \"background-color\",\n        \"#0f7ef8\"\n      );\n      $(\".Wizard-engrave\").addClass(\"progress-active\");\n      $(\".Wizard-account\").removeClass(\"progress-active\");\n      $(\".Wizard-account\").addClass(\"progress-deactive\");\n      $(\".Wizard-checked-circle-account\").addClass(\"Wizard-account-circle\");\n    } else {\n      if (colorSelected == null) {\n        $(\"#colorHeader\").addClass(\"errorState\");\n        $(\".customize-color-container\").each(function () {\n          $(this).addClass(\"color-error-state\");\n        });\n      }\n      if (sizeSelected == null) {\n        $(\"#sizeHeader\").addClass(\"errorState\");\n        $(\".customizeid-sizechart .customize-size-container\").each(function () {\n          $(this).addClass(\"size-error-state\");\n        });\n      }\n    }\n  });\n\n  customizeidQr?.addEventListener(\"click\", function () {\n    window.scrollTo({\n      top: 0,\n      behavior: \"smooth\", // Enables smooth scrolling\n    });\n    if (checkIfAllSelected()) {\n      // Check if all options are selected\n      var pid = null;\n      $(\".modern-product-detail\").each(function () {\n        pid = $(this).find(\".product-id\").text();\n      });\n      var idType = $(\"#idType\").text().trim();\n      var url = $(\".move-to-plan\").val();\n      var urlParams = new URLSearchParams(window.location.search);\n      var editPid = urlParams.get(\"editPid\");\n      $.ajax({\n        url: url,\n        type: \"POST\",\n        data: {\n          pid: pid,\n          idType: idType,\n          editPid: editPid,\n        },\n        success: function (response) {\n          if (response.redirectUrl) {\n            window.location.href = response.redirectUrl;\n          }\n        },\n        error: function (xhr, status, error) {\n          console.log(\"Error:\", error);\n        },\n      });\n    } else {\n      if (colorSelected == null) {\n        $(\"#colorHeader\").addClass(\"errorState\");\n        $(\".customize-color-container\").each(function () {\n          $(this).addClass(\"color-error-state\");\n        });\n      }\n      if (sizeSelected == null) {\n        $(\"#sizeHeader\").addClass(\"errorState\");\n        $(\".customizeid-sizechart .customize-size-container\").each(function () {\n          $(this).addClass(\"size-error-state\");\n        });\n      }\n    }\n  });\n\n  document.querySelectorAll(\".engraveInput\").forEach(function (input) {\n    const counter = input.nextElementSibling; // Selects the adjacent counter div\n    input.addEventListener(\"input\", function () {\n      const previewId = \"p\" + input.id;\n      const previewElement = document.getElementById(previewId);\n      if (previewElement) {\n        previewElement.textContent = input.value; // Update preview with input value\n      }\n      const maxLength = input.getAttribute(\"maxlength\");\n      const remaining = maxLength - input.value.length;\n      counter.textContent = remaining; // Updates the counter text\n    });\n  });\n\n  // Handle Read More functionality\n  document.querySelectorAll(\".read-more\").forEach(function (button) {\n    button.addEventListener(\"click\", function (event) {\n      toggleReadMore(this, event);\n    });\n  });\n\n  function toggleReadMore(button, event) {\n    event.stopPropagation(); // Prevent accordion collapse\n    const body = button.previousElementSibling;\n    const isExpanded = body.classList.toggle(\"expanded\");\n    button.textContent = isExpanded ? \"Read Less\" : \"Read More\";\n  }\n\n  function updateLinkTarget() {\n    let link = document.querySelector(\".plp-Accordian-body a\"); // Select the link\n    if (window.innerWidth <= 768) {\n      link.setAttribute(\"target\", \"_self\");\n    } else {\n      link.setAttribute(\"target\", \"_blank\");\n    }\n  }\n\n  // Run function on page load\n  updateLinkTarget();\n\n  // Listen for screen resizing\n  window.addEventListener(\"resize\", updateLinkTarget);\n\n  $(document).ready(function () {\n    const accordions = $(\".accordion-item\");\n\n    accordions.each(function () {\n      const accordion = $(this);\n      const collapseElement = accordion.find(\".collapse\");\n\n      collapseElement.on(\"show.bs.collapse\", function () {\n        // accordions.removeClass(\"active\");\n        accordion.addClass(\"active\");\n      });\n\n      collapseElement.on(\"hidden.bs.collapse\", function () {\n        accordion.removeClass(\"active\");\n      });\n    });\n    // Prevent accordion from closing when clicking a link inside it\n    $(\".accordion-item a\").on(\"click\", function (event) {\n      event.stopPropagation(); // Stops Bootstrap from handling this click\n    });\n  });\n});\n"],"mappings":"AAAAA,SAASC,iBAAiB,oBAAoB,WAE5B,IAAIC,gBAAgBC,OAAOC,SAASC,QAGpD,IAAIC,EAAe,KACfC,EAAgB,KAChBC,EAAS,KAEbC,EAAE,4BAA4BC,OAAM,WAClC,IAAID,EAAEE,MAAMC,SAAS,oCAArB,CAGAH,EAAE,cAAcI,OAChBJ,EAAE,4BAA4BK,YAC5B,oCAEFL,EAAEE,MAAMI,SAAS,oCACjB,IAAIC,EAAOL,KAAKM,aAAa,aAC7BT,EAASQ,EACT,IAAIE,EAAMT,EAAE,YAAYU,MACpBC,EAAaX,EAAE,iBAAiBU,MAEhCE,EAAwB,OADbZ,EAAEE,MAAMK,KAAK,QACOE,EAAME,EAEzCX,EAAEa,KAAK,CACLJ,IAAKG,EACLE,OAAQ,MACRC,QAAS,SAAUC,GAEnB,EACAC,MAAO,SAAUC,EAAKC,EAAQF,GAE9B,IAIEG,KAuTN,WACE,MAAMC,EAAa9B,SAAS+B,cAAc,iBAX5C,SAA+BC,EAASC,EAAS,GAC/C,MAAMC,EACJF,EAAQG,wBAAwBC,IAAMjC,OAAOkC,QAAUJ,EACzD9B,OAAOmC,SAAS,CACdF,IAAKF,EAAkB,IACvBK,SAAU,UAEd,CAMEC,CAAsBV,EADA,IAExB,CA1TIW,EA1BF,CA4BF,IAEA,MAAMC,EAAW1C,SAAS+B,cAAc,cAClCY,EAAa3C,SAAS+B,cAAc,gBACpCa,EAAgB5C,SAAS+B,cAAc,mBACvCc,EAAgBD,EAAcE,iBAAiB,yBAGnC9C,SAAS+B,cAAc,wBACjB/B,SAAS+B,cAAc,oBAG/C,IAAIgB,EAAkB,EACP/C,SAASgD,eAAe,eAAvC,MAEMC,EAAiBjD,SAAS8C,iBAC9B,uCAEII,EAAkBlD,SAAS8C,iBAC/B,8BAIIK,GAjBY,IAkBfN,EAAcO,OAbU,GAkB3B,SAASvB,IAGP,OAA6B,GAAzBoB,EAAeG,QAAyC,GAA1BF,EAAgBE,SAIrB,GAAzBH,EAAeG,QAAyC,GAA1BF,EAAgBE,OACzC9C,GAAgBC,EAEM,GAAzB0C,EAAeG,QAA+B,MAAhB9C,GAGF,GAA1B4C,EAAgBE,QAAgC,MAAjB7C,EAOzC,CAGAmC,EAASzC,iBAAiB,SAAS,WAC7B8C,EAAkB,IACpBA,GAhDc,GAiDdH,EAAcS,MAAMC,UAAY,cAAgBP,EAAkB,MAEtE,IAEAJ,EAAW1C,iBAAiB,SAAS,WAC/B8C,EAAkBI,IACpBJ,GAvDc,GAwDdH,EAAcS,MAAMC,UAAY,cAAgBP,EAAkB,MAEtE,IAGAE,EAAeM,SAAQ,SAAUC,GAC/BA,EAAcvD,iBAAiB,SAAS,WACtCQ,EAAE,eAAegD,KAAK,UACtBR,EAAeM,SAAQ,SAAUG,GAC/B,OAAOA,EAAUC,UAAUC,OAAO,kCACpC,IACAjD,KAAKgD,UAAUE,IAAI,mCACnBvD,EAAeK,KAAKM,aAAa,aACjCjB,SAAS8C,iBAAiB,mBAAmBS,SAAQ,SAAUvB,GAC7DA,EAAQ8B,UAAYxD,CACtB,IACAyD,YAAczD,EACVuB,IAGJpB,EAAE,eAAeK,YAAY,cAC7BL,EAAE,oDAAoDuD,MAAK,WACzDvD,EAAEE,MAAMG,YAAY,mBACtB,GACF,GACF,IAEA,MAAMmD,EAAwBjE,SAAS+B,cACrC,gDAEEkC,IACFA,EAAsBN,UAAUE,IAAI,mCACpCvD,EAAe2D,EAAsBhD,aAAa,aAClDjB,SAAS8C,iBAAiB,mBAAmBS,SAAQ,SAAUvB,GAC7DA,EAAQ8B,UAAYxD,CACtB,IACAyD,YAAczD,EACdG,EAAE,eAAegD,KAAK,WAkBxBhD,EAAE,oBAAoByD,GAAG,UAAU,WAC7BzD,EAAEE,MAAMwD,KAAK,YAEf1D,EAAE,yCAAyC2D,IAAI,CAC7C,eAAgB,YAElB3D,EAAE,sBAAsB2D,IAAI,QAAS,aAErC3D,EAAE,mBAAmBU,IAAI,IACzBV,EAAE,mBAAmBU,IAAI,IACzBV,EAAE,oBAAoB4D,KAAK,IAC3B5D,EAAE,oBAAoB4D,KAAK,IAE/B,IAwCAnB,EAAgBK,SAAQ,SAAUe,GAChCA,EAAerE,iBAAiB,SAAS,YAvC3C,SAA8BqE,GAE5B,GAA+B,IAA3BpB,EAAgBE,OAGpB,GAAIkB,EAAeX,UAAUY,SAAS,YAEpChE,EAAgB,KAChBE,EAAE,gBAAgBgD,KAAK,uBACvBa,EAAeX,UAAUC,OAAO,0BAEhC5D,SAAS8C,iBAAiB,oBAAoBS,SAAQ,SAAUvB,GAC9DA,EAAQ8B,UAAY,EACtB,QACK,CAELrD,EAAE,gBAAgBgD,KAAK,WAGvBP,EAAgBK,SAAQ,SAAUG,GAChCA,EAAUC,UAAUC,OAAO,yBAC7B,IAGAU,EAAeX,UAAUE,IAAI,0BAE7BtD,EAAgB+D,EAAerD,aAAa,mBAC5C,IAAIuD,EAAYjE,EAEhBP,SAAS8C,iBAAiB,oBAAoBS,SAAQ,SAAUvB,GAC9DA,EAAQ8B,UAAYU,CACtB,IAEAC,aAAeD,CACjB,CACF,CAKIE,CAAqBJ,GACrB7D,EAAE,gBAAgBK,YAAY,cAC9BL,EAAE,8BAA8BuD,MAAK,WACnCvD,EAAEE,MAAMG,YAAY,oBACtB,GACF,GACF,IAEA,MAAM6D,EAAyB3E,SAAS+B,cACtC,uCAEF,GAAI4C,EAAwB,CAC1BA,EAAuBhB,UAAUE,IAAI,0BACrCtD,EAAgBoE,EAAuB1D,aAAa,mBACpDwD,aAAelE,EAGfP,SAAS8C,iBAAiB,oBAAoBS,SAAQ,SAAUvB,GAC9DA,EAAQ8B,UAAYvD,CACtB,IAEAE,EAAE,gBAAgBgD,KAAK,WACvB,IAAImB,EAAMnE,EAAE,eAAe,GAAGoE,YAC1BC,EAAUrE,EAAE,yBAAyBsE,KAAK,YAC9B,IAAI7E,gBAAgBC,OAAOC,SAASC,QAC5B2E,IAAI,YAE1BvE,EAAEa,KAAK,CACLJ,IAAK4D,EACLvD,OAAQ,OACRP,KAAM,CAAEiE,gBAAiBL,GACzBpD,QAAS,SAAUC,GACbA,EAASyD,OACXzE,EAAE,iCACC4D,KAAK,wBACLD,IAAI,CAAEe,QAAS,MAAO,iBAAkB,SAE3C1E,EAAE,iCACC4D,KAAK,QACLD,IAAI,CAAEe,QAAS,IAAK,iBAAkB,QAE7C,EACAzD,MAAO,SAAU0D,GAEjB,GAGN,CAGAvC,EAAcU,SAAQ,SAAU8B,GAC9BA,EAAepF,iBAAiB,SAAS,WAEvCqF,cAAgB3E,KAAKoB,cAAc,OAAOd,aAAa,OACvDjB,SACG+B,cAAc,sBACdwD,aAAa,MAAOD,eAEvBzC,EAAcU,SAAQ,SAAUiC,GAC9B,OAAOA,EAAI7B,UAAUC,OAAO,8BAC9B,IACAjD,KAAKgD,UAAUE,IAAI,8BAGrB,GACF,IAEA,MAAM4B,EAAczF,SAAS+B,cAAc,0BACrC2D,EAAe1F,SAAS+B,cAAc,oBACtC4D,EAAe3F,SAAS+B,cAAc,0BAEtC6D,EAAwB5F,SAAS+B,cACrC,6BAGF6D,EAAsB3F,iBAAiB,UAAU,WAC3CE,OAAO0F,WAAa,MAClBD,EAAsBE,WAAa,EACrCF,EAAsBvC,MAAM0C,WAAa,MAEzCH,EAAsBvC,MAAM0C,WAAa,OAG/C,IAEA,IAAIC,GAAsB,EA4B1B7F,OAAOF,iBAAiB,UA1BH,WAEnB,KADkBE,OAAO0F,WAAa,MACtB,OAEhB,MAAMI,EAAkBR,EAAYtD,wBAC9B+D,EAAmBR,EAAavD,wBAChCgE,EAAgBR,EAAaxD,wBAG/B+D,EAAiBE,QAAUH,EAAgBG,OACzCJ,IACFA,GAAsB,EACtBP,EAAYpC,MAAMgD,SAAW,WAC7BZ,EAAYpC,MAAMjB,IAChB,GAAK8D,EAAiB9D,IAAM+D,EAAc/D,IAAM,MAE3C8D,EAAiB9D,KAAO+D,EAAc/D,MAE1C4D,IACHA,GAAsB,EACtBP,EAAYpC,MAAMgD,SAAW,SAC7BZ,EAAYpC,MAAMjB,IAAM,QAG9B,IAKAjC,OAAOF,iBAAiB,UAAU,WACdE,OAAO0F,YAAc,OAGrCJ,EAAYpC,MAAMgD,SAAW,GAC7BZ,EAAYpC,MAAMjB,IAAM,GAE5B,IAmBA,MAAMkE,EAActG,SAASgD,eAAe,eACtCuD,EAAgBvG,SAASgD,eAAe,iBACxCwD,EAAgBxG,SAASgD,eAAe,iBA4I9C,SAASyD,IACP,IAAIC,EAAO1G,SAAS+B,cAAc,yBAC9B5B,OAAO0F,YAAc,IACvBa,EAAKnB,aAAa,SAAU,SAE5BmB,EAAKnB,aAAa,SAAU,SAEhC,CAjJAgB,GAAetG,iBAAiB,SAAS,WACvCD,SAAS+B,cAAc,6BAA6B4B,UAAUE,IAAI,UAClE7D,SAAS+B,cAAc,yBAAyB4B,UAAUC,OAAO,UACjE5D,SACG+B,cAAc,+BACd4B,UAAUC,OAAO,UACpB5D,SACG+B,cAAc,4BACd4B,UAAUC,OAAO,UAEpBnD,EAAE,eAAeK,YAAY,kBAC7BL,EAAE,4CAA4C2D,IAC5C,mBACA,WAEF3D,EAAE,mBAAmBK,YAAY,mBACjCL,EAAE,mBAAmBK,YAAY,qBACjCL,EAAE,mBAAmBM,SAAS,mBAC9BN,EAAE,kCAAkCK,YAAY,wBAClD,IAEAwF,EAAYrG,iBAAiB,SAAS,WACpCE,OAAOmC,SAAS,CACdF,IAAK,EACLG,SAAU,WAERV,KACF7B,SACG+B,cAAc,6BACd4B,UAAUC,OAAO,UACpB5D,SAAS+B,cAAc,yBAAyB4B,UAAUE,IAAI,UAC9D7D,SACG+B,cAAc,+BACd4B,UAAUE,IAAI,UACjB7D,SACG+B,cAAc,4BACd4B,UAAUE,IAAI,UACjBpD,EAAE,eAAeK,YAAY,UAC7BL,EAAE,4CAA4C2D,IAC5C,mBACA,WAEF3D,EAAE,mBAAmBM,SAAS,mBAC9BN,EAAE,mBAAmBK,YAAY,mBACjCL,EAAE,mBAAmBM,SAAS,qBAC9BN,EAAE,kCAAkCM,SAAS,2BAExB,MAAjBR,IACFE,EAAE,gBAAgBM,SAAS,cAC3BN,EAAE,8BAA8BuD,MAAK,WACnCvD,EAAEE,MAAMI,SAAS,oBACnB,KAEkB,MAAhBT,IACFG,EAAE,eAAeM,SAAS,cAC1BN,EAAE,oDAAoDuD,MAAK,WACzDvD,EAAEE,MAAMI,SAAS,mBACnB,KAGN,IAEAyF,GAAevG,iBAAiB,SAAS,WAKvC,GAJAE,OAAOmC,SAAS,CACdF,IAAK,EACLG,SAAU,WAERV,IAAsB,CAExB,IAAI+C,EAAM,KACVnE,EAAE,0BAA0BuD,MAAK,WAC/BY,EAAMnE,EAAEE,MAAMgG,KAAK,eAAetC,MACpC,IACA,IAAI7D,EAASC,EAAE,WAAW4D,OAAOuC,OAC7B1F,EAAMT,EAAE,iBAAiBU,MAEzB0F,EADY,IAAI3G,gBAAgBC,OAAOC,SAASC,QAC5B2E,IAAI,WAC5BvE,EAAEa,KAAK,CACLJ,IAAKA,EACL4F,KAAM,OACN9F,KAAM,CACJ4D,IAAKA,EACLpE,OAAQA,EACRqG,QAASA,GAEXrF,QAAS,SAAUC,GACbA,EAASsF,cACX5G,OAAOC,SAAS4G,KAAOvF,EAASsF,YAEpC,EACArF,MAAO,SAAUC,EAAKC,EAAQF,GAE9B,GAEJ,MACuB,MAAjBnB,IACFE,EAAE,gBAAgBM,SAAS,cAC3BN,EAAE,8BAA8BuD,MAAK,WACnCvD,EAAEE,MAAMI,SAAS,oBACnB,KAEkB,MAAhBT,IACFG,EAAE,eAAeM,SAAS,cAC1BN,EAAE,oDAAoDuD,MAAK,WACzDvD,EAAEE,MAAMI,SAAS,mBACnB,IAGN,IAEAf,SAAS8C,iBAAiB,iBAAiBS,SAAQ,SAAU0D,GAC3D,MAAMC,EAAUD,EAAME,mBACtBF,EAAMhH,iBAAiB,SAAS,WAC9B,MAAMmH,EAAY,IAAMH,EAAMI,GACxBC,EAAiBtH,SAASgD,eAAeoE,GAC3CE,IACFA,EAAezC,YAAcoC,EAAMM,OAErC,MACMC,EADYP,EAAMhG,aAAa,aACPgG,EAAMM,MAAMnE,OAC1C8D,EAAQrC,YAAc2C,CACxB,GACF,IAGAxH,SAAS8C,iBAAiB,cAAcS,SAAQ,SAAUkE,GACxDA,EAAOxH,iBAAiB,SAAS,SAAUyH,IAK7C,SAAwBD,EAAQC,GAC9BA,EAAMC,kBACN,MAAMC,EAAOH,EAAOI,uBACdC,EAAaF,EAAKjE,UAAUoE,OAAO,YACzCN,EAAO5C,YAAciD,EAAa,YAAc,WAClD,CATIE,CAAerH,KAAM+G,EACvB,GACF,IAmBAjB,IAGAtG,OAAOF,iBAAiB,SAAUwG,GAElChG,EAAET,UAAUiI,OAAM,WACGxH,EAAE,mBAEVuD,MAAK,WACd,MAAMkE,EAAYzH,EAAEE,MACdwH,EAAkBD,EAAUvB,KAAK,aAEvCwB,EAAgBjE,GAAG,oBAAoB,WAErCgE,EAAUnH,SAAS,SACrB,IAEAoH,EAAgBjE,GAAG,sBAAsB,WACvCgE,EAAUpH,YAAY,SACxB,GACF,IAEAL,EAAE,qBAAqByD,GAAG,SAAS,SAAUwD,GAC3CA,EAAMC,iBACR,GACF,GACF"}