{
  "version": 3,
  "sources": ["/cdn/shop/t/60/assets/havnby-vehicle-selector.js?hb=1.4.5"],
  "sourcesContent": ["(() => {\n  'use strict';\n\n  if (window.HavnbyStandaloneVehicleSelector) return;\n  window.HavnbyStandaloneVehicleSelector = { version: '1.4.5' };\n\n  const DEFAULT_SKU = '02CC-105-4FDB';\n  const HB_SKU = '02CC-105-4FDB-HB';\n\n  const SKU_OVERRIDES_BY_VEHICLE_ID = Object.freeze({\n    // Audi Q4 e-tron\n    'audi-q-4-e-tron-2021': HB_SKU,\n    'audi-q-4-e-tron-2022': HB_SKU,\n    'audi-q-4-e-tron-2023': HB_SKU,\n    'audi-q-4-e-tron-2024': HB_SKU,\n    'audi-q-4-e-tron-2025': HB_SKU,\n    'audi-q-4-e-tron-2026': HB_SKU,\n\n    // Chevrolet Equinox\n    'chevrolet-equinox-2010': HB_SKU,\n    'chevrolet-equinox-2011': HB_SKU,\n    'chevrolet-equinox-2012': HB_SKU,\n    'chevrolet-equinox-2013': HB_SKU,\n    'chevrolet-equinox-2014': HB_SKU,\n    'chevrolet-equinox-2015': HB_SKU,\n    'chevrolet-equinox-2016': HB_SKU,\n    'chevrolet-equinox-2017': HB_SKU,\n\n    // Dacia Duster\n    'dacia-duster-2018': HB_SKU,\n    'dacia-duster-2019': HB_SKU,\n    'dacia-duster-2020': HB_SKU,\n    'dacia-duster-2021': HB_SKU,\n    'dacia-duster-2022': HB_SKU,\n    'dacia-duster-2023': HB_SKU,\n    'dacia-duster-2024': HB_SKU,\n    'dacia-duster-2025': HB_SKU,\n    'dacia-duster-2026': HB_SKU,\n\n    // Renault Duster\n    'renault-duster-2022': HB_SKU,\n    'renault-duster-2023': HB_SKU,\n    'renault-duster-2024': HB_SKU,\n    'renault-duster-2025': HB_SKU,\n    'renault-duster-2026': HB_SKU,\n\n    // Ford Escape\n    'ford-escape-2008': HB_SKU,\n    'ford-escape-2009': HB_SKU,\n    'ford-escape-2010': HB_SKU,\n    'ford-escape-2011': HB_SKU,\n    'ford-escape-2012': HB_SKU,\n    'ford-escape-2013': HB_SKU,\n    'ford-escape-2014': HB_SKU,\n    'ford-escape-2015': HB_SKU,\n    'ford-escape-2016': HB_SKU,\n    'ford-escape-2017': HB_SKU,\n    'ford-escape-2018': HB_SKU,\n    'ford-escape-2019': HB_SKU,\n\n    // Land Rover Discovery Sport\n    'land-rover-discovery-sport-2022': HB_SKU,\n    'land-rover-discovery-sport-2023': HB_SKU,\n    'land-rover-discovery-sport-2024': HB_SKU,\n    'land-rover-discovery-sport-2025': HB_SKU,\n    'land-rover-discovery-sport-2026': HB_SKU,\n\n    // Subaru Forester\n    'subaru-forester-2009': HB_SKU,\n    'subaru-forester-2010': HB_SKU,\n    'subaru-forester-2011': HB_SKU,\n    'subaru-forester-2012': HB_SKU,\n    'subaru-forester-2013': HB_SKU,\n    'subaru-forester-2014': HB_SKU,\n    'subaru-forester-2015': HB_SKU,\n    'subaru-forester-2016': HB_SKU,\n    'subaru-forester-2017': HB_SKU,\n    'subaru-forester-2018': HB_SKU,\n\n    // Toyota Yaris Cross\n    'toyota-yaris-cross-2024': HB_SKU,\n    'toyota-yaris-cross-2025': HB_SKU,\n    'toyota-yaris-cross-2026': HB_SKU\n  });\n\n  function uniqueSorted(values) {\n    return Array.from(new Set(values)).sort((a, b) =>\n      String(a).localeCompare(String(b), undefined, { numeric: true })\n    );\n  }\n\n  function replaceOptions(select, placeholder, values) {\n    select.innerHTML = '';\n    const first = document.createElement('option');\n    first.value = '';\n    first.textContent = placeholder;\n    select.appendChild(first);\n\n    values.forEach((value) => {\n      const option = document.createElement('option');\n      option.value = String(value);\n      option.textContent = String(value);\n      select.appendChild(option);\n    });\n  }\n\n  function normalizeSku(value) {\n    return String(value || '').trim().toUpperCase();\n  }\n\n  function getVariantSku(variant) {\n    return normalizeSku(variant && variant.sku);\n  }\n\n  function normalizeVariantId(id) {\n    return String(id || '').replace(/^gid:\\/\\/shopify\\/ProductVariant\\//, '');\n  }\n\n  function init(root) {\n    if (root.dataset.havnbyInitialized === 'true') return;\n    root.dataset.havnbyInitialized = 'true';\n\n    const formId = root.dataset.formId;\n    const productHandle = root.dataset.productHandle;\n    const makeSelect = root.querySelector('[data-vehicle-make]');\n    const modelSelect = root.querySelector('[data-vehicle-model]');\n    const yearSelect = root.querySelector('[data-vehicle-year]');\n    const makeCurrent = root.querySelector('[data-vehicle-current=\"make\"]');\n    const modelCurrent = root.querySelector('[data-vehicle-current=\"model\"]');\n    const yearCurrent = root.querySelector('[data-vehicle-current=\"year\"]');\n    const triggers = {\n      make: root.querySelector('[data-vehicle-trigger=\"make\"]'),\n      model: root.querySelector('[data-vehicle-trigger=\"model\"]'),\n      year: root.querySelector('[data-vehicle-trigger=\"year\"]')\n    };\n    const triggerLabels = {\n      make: root.querySelector('[data-vehicle-trigger-label=\"make\"]'),\n      model: root.querySelector('[data-vehicle-trigger-label=\"model\"]'),\n      year: root.querySelector('[data-vehicle-trigger-label=\"year\"]')\n    };\n    const menus = {\n      make: root.querySelector('[data-vehicle-menu=\"make\"]'),\n      model: root.querySelector('[data-vehicle-menu=\"model\"]'),\n      year: root.querySelector('[data-vehicle-menu=\"year\"]')\n    };\n    const status = root.querySelector('[data-vehicle-status]');\n    const dataElement = root.querySelector('[data-vehicle-data]');\n    const productTitle = document.querySelector('[data-havnby-product-title], .product-info__title');\n    const productTitleText = productTitle\n      ? (productTitle.querySelector('[data-havnby-title-text]') || productTitle)\n      : null;\n    const originalProductTitle = productTitleText ? productTitleText.textContent.trim() : '';\n    const baseProductTitle = 'CloudCore Seamless Support Mattress';\n\n    let selectedVehicle = null;\n    let selectedVariant = null;\n    let records = [];\n    let productVariants = [];\n    let variantsLoaded = false;\n    let filteredSelectionLocked = false;\n\n    try {\n      records = JSON.parse(dataElement.textContent || '[]').filter((record) =>\n        record &&\n        record.active === true &&\n        record.productHandle === productHandle &&\n        record.handle &&\n        record.make &&\n        record.model &&\n        Array.isArray(record.years)\n      );\n    } catch (error) {\n      status.textContent = 'Vehicle data could not be loaded. Please refresh the page.';\n      status.dataset.state = 'error';\n      return;\n    }\n\n    function productForm() {\n      return document.getElementById(formId);\n    }\n\n    function variantIdInputs() {\n      const form = productForm();\n      const inputs = [\n        ...document.querySelectorAll('input[name=\"id\"][data-havnby-variant-id-input][form=\"' + formId + '\"], select[name=\"id\"][data-havnby-variant-id-input][form=\"' + formId + '\"]')\n      ];\n\n      if (!form) return inputs;\n\n      inputs.push(\n        ...form.querySelectorAll('input[name=\"id\"], select[name=\"id\"]'),\n        ...document.querySelectorAll('input[name=\"id\"][form=\"' + formId + '\"], select[name=\"id\"][form=\"' + formId + '\"]')\n      );\n\n      const namedInput = form.elements && form.elements.namedItem('id');\n      if (namedInput) {\n        if (typeof namedInput.length === 'number') inputs.push(...Array.from(namedInput));\n        else inputs.push(namedInput);\n      }\n\n      return Array.from(new Set(inputs)).filter((input) => input && input.getAttribute('name') === 'id');\n    }\n\n    function managedVariantIdInput() {\n      const form = productForm();\n      let input = document.querySelector(\n        'input[data-havnby-variant-id-input][form=\"' + formId + '\"]'\n      );\n\n      if (!input && form) {\n        input = form.querySelector('input[data-havnby-variant-id-input]');\n      }\n\n      if (!input) {\n        input = root.querySelector('input[data-havnby-variant-id-input]');\n      }\n\n      if (input) {\n        if (form && input.parentElement !== form) form.insertBefore(input, form.firstChild);\n        return input;\n      }\n\n      input = document.createElement('input');\n      input.type = 'hidden';\n      input.name = 'id';\n      input.dataset.havnbyVariantIdInput = 'true';\n      input.setAttribute('form', formId);\n\n      if (form) form.insertBefore(input, form.firstChild);\n      else root.appendChild(input);\n\n      return input;\n    }\n\n    function writeManagedVariantValue(input, variantId) {\n      input.disabled = false;\n      input.name = 'id';\n      input.setAttribute('name', 'id');\n      input.setAttribute('form', formId);\n      input.setAttribute('value', variantId);\n      input.defaultValue = variantId;\n      input.dataset.havnbyVariantIdValue = variantId;\n\n      if (!input.dataset.havnbyValuePropertyPatched) {\n        Object.defineProperty(input, 'value', {\n          configurable: true,\n          get() {\n            return input.dataset.havnbyVariantIdValue || input.getAttribute('value') || '';\n          },\n          set(value) {\n            const nextValue = String(value || '');\n            input.dataset.havnbyVariantIdValue = nextValue;\n            input.setAttribute('value', nextValue);\n            input.defaultValue = nextValue;\n          }\n        });\n\n        input.dataset.havnbyValuePropertyPatched = 'true';\n      }\n\n      input.value = variantId;\n    }\n\n    function variantBySku(sku) {\n      const normalized = normalizeSku(sku);\n      return productVariants.find((variant) => getVariantSku(variant) === normalized);\n    }\n\n    function firstAvailableVariant() {\n      return productVariants.find((variant) => variant.available !== false) || productVariants[0] || null;\n    }\n\n    function setVariantId(variant) {\n      if (!variant) return;\n      const variantId = normalizeVariantId(variant.id);\n      selectedVariant = variant;\n      root.dataset.havnbyVariantId = variantId;\n\n      const inputs = variantIdInputs();\n      const managedInput = managedVariantIdInput();\n      inputs.push(managedInput);\n\n      inputs.forEach((input) => {\n        if (input !== managedInput) {\n          input.disabled = true;\n          input.removeAttribute('name');\n          input.dataset.havnbyDisabledDuplicateVariantId = 'true';\n          return;\n        }\n\n        if (input.value === variantId && input.getAttribute('value') === variantId) return;\n        writeManagedVariantValue(input, variantId);\n      });\n\n      document\n        .querySelectorAll('shopify-payment-terms[variant-id]')\n        .forEach((element) => element.setAttribute('variant-id', variantId));\n    }\n\n    function prepareVariantIdForSubmit() {\n      if (!selectedVariant) return false;\n      const variantId = normalizeVariantId(selectedVariant.id);\n      const managedInput = managedVariantIdInput();\n      writeManagedVariantValue(managedInput, variantId);\n\n      const form = productForm();\n      if (form) {\n        if (managedInput.parentElement !== form) form.insertBefore(managedInput, form.firstChild);\n\n        form.querySelectorAll('input[name=\"id\"], select[name=\"id\"]').forEach((input) => {\n          if (input === managedInput) return;\n          input.disabled = true;\n          input.removeAttribute('name');\n          input.dataset.havnbyDisabledEmptyVariantId = 'true';\n        });\n      }\n\n      return managedInput.value === variantId;\n    }\n\n    function keepVariantIdStable(variant) {\n      if (!variant) {\n        window.clearInterval(root._havnbyVariantSyncTimer);\n        return;\n      }\n\n      window.clearInterval(root._havnbyVariantSyncTimer);\n      setVariantId(variant);\n      window.requestAnimationFrame(() => setVariantId(variant));\n      window.setTimeout(() => setVariantId(variant), 50);\n      window.setTimeout(() => setVariantId(variant), 250);\n      window.setTimeout(() => setVariantId(variant), 1000);\n\n      const startedAt = Date.now();\n      root._havnbyVariantSyncTimer = window.setInterval(() => {\n        setVariantId(variant);\n        const variantId = normalizeVariantId(variant.id);\n        const hasVariantId = variantIdInputs().some((input) => input.value === variantId);\n\n        if (hasVariantId || Date.now() - startedAt > 10000) {\n          window.clearInterval(root._havnbyVariantSyncTimer);\n        }\n      }, 250);\n    }\n\n    function loadProductVariants() {\n      return fetch('/products/' + encodeURIComponent(productHandle) + '.js', {\n        credentials: 'same-origin'\n      })\n        .then((response) => (response.ok ? response.json() : null))\n        .then((product) => {\n          productVariants = product && Array.isArray(product.variants) ? product.variants : [];\n          variantsLoaded = true;\n          if (selectedVehicle) completeSelection();\n          else applyVariantForSelection();\n        })\n        .catch(() => {\n          productVariants = [];\n          variantsLoaded = true;\n          if (selectedVehicle) completeSelection();\n          else applyVariantForSelection();\n        });\n    }\n\n    function property(name) {\n      return root.querySelector('[data-vehicle-property=\"' + name + '\"]');\n    }\n\n    function ensureProperty(name, label) {\n      let input = property(name);\n      if (input) return input;\n\n      input = document.createElement('select');\n      input.hidden = true;\n      input.setAttribute('form', formId);\n      input.name = 'properties[' + label + ']';\n      input.dataset.vehicleProperty = name;\n      root.appendChild(input);\n      return input;\n    }\n\n    function selectFor(name) {\n      if (name === 'make') return makeSelect;\n      if (name === 'model') return modelSelect;\n      return yearSelect;\n    }\n\n    function placeholderFor(name) {\n      if (name === 'make') return 'Select Brand';\n      if (name === 'model') return 'Select Model';\n      return 'Select Year';\n    }\n\n    function closeDropdowns(exceptName) {\n      Object.keys(menus).forEach((name) => {\n        if (name === exceptName) return;\n        menus[name].hidden = true;\n        triggers[name].setAttribute('aria-expanded', 'false');\n      });\n    }\n\n    function syncDropdown(name) {\n      const select = selectFor(name);\n      const trigger = triggers[name];\n      const menu = menus[name];\n      const selectedValue = select.value;\n\n      trigger.disabled = select.disabled;\n      triggerLabels[name].textContent = selectedValue || placeholderFor(name);\n      menu.innerHTML = '';\n\n      Array.from(select.options).forEach((option) => {\n        if (!option.value) return;\n        if (filteredSelectionLocked && option.value !== selectedValue) return;\n        const button = document.createElement('button');\n        button.type = 'button';\n        button.className = 'havnby-vehicle-selector__menu-option';\n        button.dataset.value = option.value;\n        button.setAttribute('role', 'option');\n        button.setAttribute('aria-selected', option.value === selectedValue ? 'true' : 'false');\n        button.textContent = option.textContent;\n        menu.appendChild(button);\n      });\n\n      if (select.disabled) {\n        menu.hidden = true;\n        trigger.setAttribute('aria-expanded', 'false');\n      }\n    }\n\n    function syncDropdowns() {\n      syncDropdown('make');\n      syncDropdown('model');\n      syncDropdown('year');\n    }\n\n    Object.keys(triggers).forEach((name) => {\n      const trigger = triggers[name];\n      const menu = menus[name];\n\n      trigger.addEventListener('click', (event) => {\n        event.stopPropagation();\n        if (trigger.disabled) return;\n        const willOpen = menu.hidden;\n        closeDropdowns(name);\n        menu.hidden = !willOpen;\n        trigger.setAttribute('aria-expanded', willOpen ? 'true' : 'false');\n      });\n\n      menu.addEventListener('click', (event) => {\n        const option = event.target.closest('[data-value]');\n        if (!option) return;\n        event.stopPropagation();\n        const select = selectFor(name);\n        select.value = option.dataset.value;\n        select.dispatchEvent(new Event('change', { bubbles: true }));\n        menu.hidden = true;\n        trigger.setAttribute('aria-expanded', 'false');\n        trigger.focus();\n      });\n    });\n\n    document.addEventListener('click', () => closeDropdowns());\n    document.addEventListener('keydown', (event) => {\n      if (event.key !== 'Escape') return;\n      closeDropdowns();\n    });\n\n    function purchaseButtons() {\n      const buttons = [];\n      const form = productForm();\n      if (form) buttons.push(...form.querySelectorAll('button[type=\"submit\"]'));\n      buttons.push(...document.querySelectorAll('button[type=\"submit\"][form=\"' + formId + '\"]'));\n      return Array.from(new Set(buttons));\n    }\n\n    function syncButtons(enabled) {\n      purchaseButtons().forEach((button) => {\n        if (!button.dataset.havnbyOriginalDisabled) {\n          button.dataset.havnbyOriginalDisabled = button.disabled ? 'true' : 'false';\n        }\n        const unavailable = button.dataset.havnbyOriginalDisabled === 'true';\n        button.disabled = unavailable || !enabled;\n        button.setAttribute('aria-disabled', button.disabled ? 'true' : 'false');\n      });\n    }\n\n    function setProperty(name, value) {\n      const input = property(name);\n      if (!input) return;\n      if (input instanceof HTMLSelectElement) {\n        input.innerHTML = '';\n        const option = document.createElement('option');\n        option.value = value;\n        option.textContent = value;\n        option.selected = true;\n        input.appendChild(option);\n      } else {\n        input.value = value;\n        input.setAttribute('value', value);\n      }\n    }\n\n    function setEnsuredProperty(name, label, value) {\n      ensureProperty(name, label);\n      setProperty(name, value);\n    }\n\n    function updateCurrentLabels() {\n      makeCurrent.textContent = makeSelect.value || '';\n      modelCurrent.textContent = modelSelect.value || '';\n      yearCurrent.textContent = yearSelect.value || '';\n      syncDropdowns();\n    }\n\n    function syncProductTitle() {\n      if (!productTitleText) return;\n      const title = selectedVehicle\n        ? baseProductTitle + ' for ' + selectedVehicle.name\n        : originalProductTitle;\n      if (productTitleText.textContent.trim() !== title) productTitleText.textContent = title;\n    }\n\n    function clearProperties() {\n      ['vehicle', 'id', 'sku', 'variantStatus'].forEach((name) => {\n        setProperty(name, '');\n      });\n    }\n\n    function updateUrl() {\n      const url = new URL(window.location.href);\n      url.searchParams.delete('vehicle');\n      url.searchParams.delete('havnby_vehicle');\n      window.history.replaceState(window.history.state, '', url.pathname + url.search + url.hash);\n    }\n\n    function resolveSku(entry, year, vehicleId) {\n      const yearKey = String(year);\n      const skuByYear = entry.skuByYear || entry.sku_by_year || {};\n\n      if (skuByYear && typeof skuByYear === 'object' && skuByYear[yearKey]) {\n        return normalizeSku(skuByYear[yearKey]);\n      }\n\n      if (SKU_OVERRIDES_BY_VEHICLE_ID[vehicleId]) {\n        return SKU_OVERRIDES_BY_VEHICLE_ID[vehicleId];\n      }\n\n      return normalizeSku(entry.defaultSku || entry.default_sku || DEFAULT_SKU);\n    }\n\n    function applyVariantForSelection() {\n      if (!selectedVehicle) {\n        setVariantId(firstAvailableVariant());\n        return true;\n      }\n\n      if (!variantsLoaded) {\n        selectedVariant = null;\n        setEnsuredProperty('variantStatus', '_Variant Match Status', 'loading_variants');\n        selectedVehicle.variantMatched = false;\n        selectedVehicle.variantAvailable = false;\n        return false;\n      }\n\n      const matchingVariant = variantBySku(selectedVehicle.sku);\n      const fallbackVariant = firstAvailableVariant();\n\n      if (matchingVariant) {\n        keepVariantIdStable(matchingVariant);\n        setEnsuredProperty('variantStatus', '_Variant Match Status', 'matched');\n        selectedVehicle.variantMatched = true;\n        selectedVehicle.variantAvailable = matchingVariant.available !== false;\n        return selectedVehicle.variantAvailable;\n      }\n\n      if (!fallbackVariant) {\n        selectedVariant = null;\n        setEnsuredProperty('variantStatus', '_Variant Match Status', 'variants_unavailable');\n        selectedVehicle.variantMatched = false;\n        selectedVehicle.variantAvailable = false;\n        return false;\n      }\n\n      keepVariantIdStable(fallbackVariant);\n      setEnsuredProperty('variantStatus', '_Variant Match Status', 'sku_missing_using_default_variant');\n      selectedVehicle.variantMatched = false;\n      selectedVehicle.variantAvailable = true;\n      return true;\n    }\n\n    function clearSelection(options) {\n      const settings = options || {};\n      selectedVehicle = null;\n      clearProperties();\n      applyVariantForSelection();\n      status.dataset.state = '';\n      status.textContent = 'Please select your vehicle before adding this product to cart.';\n      syncButtons(false);\n      updateCurrentLabels();\n      syncProductTitle();\n      if (settings.updateUrl !== false) updateUrl('');\n    }\n\n    function populateModels() {\n      const make = makeSelect.value;\n      const models = uniqueSorted(\n        records.filter((record) => record.make === make).map((record) => record.model)\n      );\n      replaceOptions(modelSelect, 'Select Model', models);\n      modelSelect.disabled = !make;\n      replaceOptions(yearSelect, 'Select Year', []);\n      yearSelect.disabled = true;\n      updateCurrentLabels();\n    }\n\n    function populateYears() {\n      const entry = records.find((record) =>\n        record.make === makeSelect.value && record.model === modelSelect.value\n      );\n      const years = entry\n        ? uniqueSorted(entry.years.map(Number)).sort((a, b) => b - a)\n        : [];\n      replaceOptions(yearSelect, 'Select Year', years);\n      yearSelect.disabled = !entry;\n      updateCurrentLabels();\n    }\n\n    function completeSelection() {\n      updateCurrentLabels();\n      const year = Number(yearSelect.value);\n      const entry = records.find((record) =>\n        record.make === makeSelect.value &&\n        record.model === modelSelect.value &&\n        record.years.map(Number).includes(year)\n      );\n\n      if (!entry || !year) {\n        clearSelection();\n        return;\n      }\n\n      const name = String(year) + ' ' + entry.make + ' ' + entry.model;\n      const vehicleId = entry.handle + '-' + String(year);\n      const sku = resolveSku(entry, year, vehicleId);\n      selectedVehicle = { id: vehicleId, name: name, sku: sku };\n      syncProductTitle();\n\n      setProperty('vehicle', name);\n      setProperty('id', vehicleId);\n      setEnsuredProperty('sku', '_Vehicle SKU', sku);\n\n      const variantCanSell = applyVariantForSelection();\n      const checkingVariant = !variantsLoaded;\n\n      status.dataset.state = checkingVariant ? '' : (variantCanSell ? 'valid' : 'error');\n      status.textContent = checkingVariant\n        ? 'Checking fit for ' + entry.make + ' ' + entry.model + ' ' + String(year) + '...'\n        : (variantCanSell\n          ? 'Fits your ' + entry.make + ' ' + entry.model + ' ' + String(year)\n          : 'Fits your ' + entry.make + ' ' + entry.model + ' ' + String(year) + ', but this SKU is currently unavailable.');\n      syncButtons(variantCanSell && variantsLoaded && Boolean(selectedVariant));\n      updateUrl(vehicleId);\n    }\n\n    makeSelect.addEventListener('change', () => {\n      populateModels();\n      clearSelection();\n    });\n\n    modelSelect.addEventListener('change', () => {\n      populateYears();\n      clearSelection();\n    });\n\n    yearSelect.addEventListener('change', completeSelection);\n\n    document.addEventListener('submit', (event) => {\n      if (event.target.getAttribute('id') !== formId) return;\n\n      if (!selectedVehicle) {\n        event.preventDefault();\n        event.stopImmediatePropagation();\n        status.dataset.state = 'error';\n        status.textContent = 'Select Brand, Model, and Year before adding to cart.';\n        root.scrollIntoView({ behavior: 'smooth', block: 'center' });\n        makeSelect.focus();\n        return;\n      }\n\n      const variantCanSell = applyVariantForSelection();\n      const hasVariantId = prepareVariantIdForSubmit();\n\n      if (!variantCanSell || !hasVariantId) {\n        event.preventDefault();\n        event.stopImmediatePropagation();\n        status.dataset.state = 'error';\n        status.textContent = 'We could not match this vehicle to a sellable SKU. Please refresh and try again.';\n      }\n    }, true);\n\n    document.addEventListener('formdata', (event) => {\n      if (event.target.getAttribute('id') !== formId || !selectedVariant) return;\n      const variantId = normalizeVariantId(selectedVariant.id);\n      event.formData.set('id', variantId);\n    });\n\n    replaceOptions(makeSelect, 'Select Brand', uniqueSorted(records.map((record) => record.make)));\n    replaceOptions(modelSelect, 'Select Model', []);\n    replaceOptions(yearSelect, 'Select Year', []);\n    modelSelect.disabled = true;\n    yearSelect.disabled = true;\n    clearSelection({ updateUrl: false });\n    loadProductVariants();\n\n    const pageUrl = new URL(window.location.href);\n    const vehicleParam = pageUrl.searchParams.get('vehicle');\n    const handoffParam = pageUrl.searchParams.get('havnby_vehicle');\n    const match = vehicleParam && vehicleParam.match(/^(.*)-(20\\d{2})$/);\n    let requestedEntry = null;\n    let requestedYear = '';\n\n    if (handoffParam) {\n      try {\n        const handoffVehicle = JSON.parse(handoffParam);\n        requestedYear = String(handoffVehicle.year || '');\n        requestedEntry = records.find((record) =>\n          record.make === String(handoffVehicle.make || '') &&\n          record.model === String(handoffVehicle.model || '') &&\n          record.years.map(Number).includes(Number(requestedYear))\n        ) || null;\n      } catch (_error) {\n        requestedEntry = null;\n        requestedYear = '';\n      }\n    }\n\n    if (!requestedEntry && match) {\n      requestedYear = match[2];\n      requestedEntry = records.find((record) =>\n        record.handle === match[1] && record.years.map(Number).includes(Number(requestedYear))\n      ) || null;\n    }\n\n    if (requestedEntry) {\n      filteredSelectionLocked = Boolean(handoffParam);\n      if (filteredSelectionLocked) root.dataset.havnbyVehiclePickerLocked = 'true';\n      makeSelect.value = requestedEntry.make;\n      populateModels();\n      modelSelect.value = requestedEntry.model;\n      populateYears();\n      yearSelect.value = requestedYear;\n      completeSelection();\n    }\n\n    if (handoffParam) {\n      pageUrl.searchParams.delete('havnby_vehicle');\n      window.history.replaceState(\n        window.history.state,\n        '',\n        pageUrl.pathname + pageUrl.search + pageUrl.hash\n      );\n    }\n\n    const observer = new MutationObserver(() => {\n      if (selectedVehicle && selectedVariant) setVariantId(selectedVariant);\n      syncButtons(Boolean(selectedVehicle && selectedVariant && selectedVehicle.variantAvailable !== false));\n      syncProductTitle();\n    });\n    if (document.documentElement) {\n      observer.observe(document.documentElement, { childList: true, subtree: true });\n    }\n  }\n\n  function initAll(scope) {\n    (scope || document).querySelectorAll('[data-havnby-vehicle-selector]').forEach(init);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', () => initAll(document));\n  } else {\n    initAll(document);\n  }\n\n  document.addEventListener('shopify:section:load', (event) => initAll(event.target));\n})();\n"],
  "mappings": "CAAC,IAAM,CACL,aAEA,GAAI,OAAO,gCAAiC,OAC5C,OAAO,gCAAkC,CAAE,QAAS,OAAQ,EAE5D,MAAM,YAAc,gBACd,OAAS,mBAET,4BAA8B,OAAO,OAAO,CAEhD,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OAGxB,yBAA0B,OAC1B,yBAA0B,OAC1B,yBAA0B,OAC1B,yBAA0B,OAC1B,yBAA0B,OAC1B,yBAA0B,OAC1B,yBAA0B,OAC1B,yBAA0B,OAG1B,oBAAqB,OACrB,oBAAqB,OACrB,oBAAqB,OACrB,oBAAqB,OACrB,oBAAqB,OACrB,oBAAqB,OACrB,oBAAqB,OACrB,oBAAqB,OACrB,oBAAqB,OAGrB,sBAAuB,OACvB,sBAAuB,OACvB,sBAAuB,OACvB,sBAAuB,OACvB,sBAAuB,OAGvB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OACpB,mBAAoB,OAGpB,kCAAmC,OACnC,kCAAmC,OACnC,kCAAmC,OACnC,kCAAmC,OACnC,kCAAmC,OAGnC,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OACxB,uBAAwB,OAGxB,0BAA2B,OAC3B,0BAA2B,OAC3B,0BAA2B,MAC7B,CAAC,EAED,SAAS,aAAa,OAAQ,CAC5B,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAG,IAC1C,OAAO,CAAC,EAAE,cAAc,OAAO,CAAC,EAAG,OAAW,CAAE,QAAS,EAAK,CAAC,CACjE,CACF,CAEA,SAAS,eAAe,OAAQ,YAAa,OAAQ,CACnD,OAAO,UAAY,GACnB,MAAM,MAAQ,SAAS,cAAc,QAAQ,EAC7C,MAAM,MAAQ,GACd,MAAM,YAAc,YACpB,OAAO,YAAY,KAAK,EAExB,OAAO,QAAS,OAAU,CACxB,MAAM,OAAS,SAAS,cAAc,QAAQ,EAC9C,OAAO,MAAQ,OAAO,KAAK,EAC3B,OAAO,YAAc,OAAO,KAAK,EACjC,OAAO,YAAY,MAAM,CAC3B,CAAC,CACH,CAEA,SAAS,aAAa,MAAO,CAC3B,OAAO,OAAO,OAAS,EAAE,EAAE,KAAK,EAAE,YAAY,CAChD,CAEA,SAAS,cAAc,QAAS,CAC9B,OAAO,aAAa,SAAW,QAAQ,GAAG,CAC5C,CAEA,SAAS,mBAAmB,GAAI,CAC9B,OAAO,OAAO,IAAM,EAAE,EAAE,QAAQ,qCAAsC,EAAE,CAC1E,CAEA,SAAS,KAAK,KAAM,CAClB,GAAI,KAAK,QAAQ,oBAAsB,OAAQ,OAC/C,KAAK,QAAQ,kBAAoB,OAEjC,MAAM,OAAS,KAAK,QAAQ,OACtB,cAAgB,KAAK,QAAQ,cAC7B,WAAa,KAAK,cAAc,qBAAqB,EACrD,YAAc,KAAK,cAAc,sBAAsB,EACvD,WAAa,KAAK,cAAc,qBAAqB,EACrD,YAAc,KAAK,cAAc,+BAA+B,EAChE,aAAe,KAAK,cAAc,gCAAgC,EAClE,YAAc,KAAK,cAAc,+BAA+B,EAChE,SAAW,CACf,KAAM,KAAK,cAAc,+BAA+B,EACxD,MAAO,KAAK,cAAc,gCAAgC,EAC1D,KAAM,KAAK,cAAc,+BAA+B,CAC1D,EACM,cAAgB,CACpB,KAAM,KAAK,cAAc,qCAAqC,EAC9D,MAAO,KAAK,cAAc,sCAAsC,EAChE,KAAM,KAAK,cAAc,qCAAqC,CAChE,EACM,MAAQ,CACZ,KAAM,KAAK,cAAc,4BAA4B,EACrD,MAAO,KAAK,cAAc,6BAA6B,EACvD,KAAM,KAAK,cAAc,4BAA4B,CACvD,EACM,OAAS,KAAK,cAAc,uBAAuB,EACnD,YAAc,KAAK,cAAc,qBAAqB,EACtD,aAAe,SAAS,cAAc,mDAAmD,EACzF,iBAAmB,aACpB,aAAa,cAAc,0BAA0B,GAAK,aAC3D,KACE,qBAAuB,iBAAmB,iBAAiB,YAAY,KAAK,EAAI,GAChF,iBAAmB,sCAEzB,IAAI,gBAAkB,KAClB,gBAAkB,KAClB,QAAU,CAAC,EACX,gBAAkB,CAAC,EACnB,eAAiB,GACjB,wBAA0B,GAE9B,GAAI,CACF,QAAU,KAAK,MAAM,YAAY,aAAe,IAAI,EAAE,OAAQ,QAC5D,QACA,OAAO,SAAW,IAClB,OAAO,gBAAkB,eACzB,OAAO,QACP,OAAO,MACP,OAAO,OACP,MAAM,QAAQ,OAAO,KAAK,CAC5B,CACF,MAAgB,CACd,OAAO,YAAc,6DACrB,OAAO,QAAQ,MAAQ,QACvB,MACF,CAEA,SAAS,aAAc,CACrB,OAAO,SAAS,eAAe,MAAM,CACvC,CAEA,SAAS,iBAAkB,CACzB,MAAM,KAAO,YAAY,EACnB,OAAS,CACb,GAAG,SAAS,iBAAiB,wDAA0D,OAAS,6DAA+D,OAAS,IAAI,CAC9K,EAEA,GAAI,CAAC,KAAM,OAAO,OAElB,OAAO,KACL,GAAG,KAAK,iBAAiB,qCAAqC,EAC9D,GAAG,SAAS,iBAAiB,0BAA4B,OAAS,+BAAiC,OAAS,IAAI,CAClH,EAEA,MAAM,WAAa,KAAK,UAAY,KAAK,SAAS,UAAU,IAAI,EAChE,OAAI,aACE,OAAO,WAAW,QAAW,SAAU,OAAO,KAAK,GAAG,MAAM,KAAK,UAAU,CAAC,EAC3E,OAAO,KAAK,UAAU,GAGtB,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,OAAQ,OAAU,OAAS,MAAM,aAAa,MAAM,IAAM,IAAI,CACnG,CAEA,SAAS,uBAAwB,CAC/B,MAAM,KAAO,YAAY,EACzB,IAAI,MAAQ,SAAS,cACnB,6CAA+C,OAAS,IAC1D,EAUA,MARI,CAAC,OAAS,OACZ,MAAQ,KAAK,cAAc,qCAAqC,GAG7D,QACH,MAAQ,KAAK,cAAc,qCAAqC,GAG9D,OACE,MAAQ,MAAM,gBAAkB,MAAM,KAAK,aAAa,MAAO,KAAK,UAAU,EAC3E,QAGT,MAAQ,SAAS,cAAc,OAAO,EACtC,MAAM,KAAO,SACb,MAAM,KAAO,KACb,MAAM,QAAQ,qBAAuB,OACrC,MAAM,aAAa,OAAQ,MAAM,EAE7B,KAAM,KAAK,aAAa,MAAO,KAAK,UAAU,EAC7C,KAAK,YAAY,KAAK,EAEpB,MACT,CAEA,SAAS,yBAAyB,MAAO,UAAW,CAClD,MAAM,SAAW,GACjB,MAAM,KAAO,KACb,MAAM,aAAa,OAAQ,IAAI,EAC/B,MAAM,aAAa,OAAQ,MAAM,EACjC,MAAM,aAAa,QAAS,SAAS,EACrC,MAAM,aAAe,UACrB,MAAM,QAAQ,qBAAuB,UAEhC,MAAM,QAAQ,6BACjB,OAAO,eAAe,MAAO,QAAS,CACpC,aAAc,GACd,KAAM,CACJ,OAAO,MAAM,QAAQ,sBAAwB,MAAM,aAAa,OAAO,GAAK,EAC9E,EACA,IAAI,MAAO,CACT,MAAM,UAAY,OAAO,OAAS,EAAE,EACpC,MAAM,QAAQ,qBAAuB,UACrC,MAAM,aAAa,QAAS,SAAS,EACrC,MAAM,aAAe,SACvB,CACF,CAAC,EAED,MAAM,QAAQ,2BAA6B,QAG7C,MAAM,MAAQ,SAChB,CAEA,SAAS,aAAa,IAAK,CACzB,MAAM,WAAa,aAAa,GAAG,EACnC,OAAO,gBAAgB,KAAM,SAAY,cAAc,OAAO,IAAM,UAAU,CAChF,CAEA,SAAS,uBAAwB,CAC/B,OAAO,gBAAgB,KAAM,SAAY,QAAQ,YAAc,EAAK,GAAK,gBAAgB,CAAC,GAAK,IACjG,CAEA,SAAS,aAAa,QAAS,CAC7B,GAAI,CAAC,QAAS,OACd,MAAM,UAAY,mBAAmB,QAAQ,EAAE,EAC/C,gBAAkB,QAClB,KAAK,QAAQ,gBAAkB,UAE/B,MAAM,OAAS,gBAAgB,EACzB,aAAe,sBAAsB,EAC3C,OAAO,KAAK,YAAY,EAExB,OAAO,QAAS,OAAU,CACxB,GAAI,QAAU,aAAc,CAC1B,MAAM,SAAW,GACjB,MAAM,gBAAgB,MAAM,EAC5B,MAAM,QAAQ,iCAAmC,OACjD,MACF,CAEI,MAAM,QAAU,WAAa,MAAM,aAAa,OAAO,IAAM,WACjE,yBAAyB,MAAO,SAAS,CAC3C,CAAC,EAED,SACG,iBAAiB,mCAAmC,EACpD,QAAS,SAAY,QAAQ,aAAa,aAAc,SAAS,CAAC,CACvE,CAEA,SAAS,2BAA4B,CACnC,GAAI,CAAC,gBAAiB,MAAO,GAC7B,MAAM,UAAY,mBAAmB,gBAAgB,EAAE,EACjD,aAAe,sBAAsB,EAC3C,yBAAyB,aAAc,SAAS,EAEhD,MAAM,KAAO,YAAY,EACzB,OAAI,OACE,aAAa,gBAAkB,MAAM,KAAK,aAAa,aAAc,KAAK,UAAU,EAExF,KAAK,iBAAiB,qCAAqC,EAAE,QAAS,OAAU,CAC1E,QAAU,eACd,MAAM,SAAW,GACjB,MAAM,gBAAgB,MAAM,EAC5B,MAAM,QAAQ,6BAA+B,OAC/C,CAAC,GAGI,aAAa,QAAU,SAChC,CAEA,SAAS,oBAAoB,QAAS,CACpC,GAAI,CAAC,QAAS,CACZ,OAAO,cAAc,KAAK,uBAAuB,EACjD,MACF,CAEA,OAAO,cAAc,KAAK,uBAAuB,EACjD,aAAa,OAAO,EACpB,OAAO,sBAAsB,IAAM,aAAa,OAAO,CAAC,EACxD,OAAO,WAAW,IAAM,aAAa,OAAO,EAAG,EAAE,EACjD,OAAO,WAAW,IAAM,aAAa,OAAO,EAAG,GAAG,EAClD,OAAO,WAAW,IAAM,aAAa,OAAO,EAAG,GAAI,EAEnD,MAAM,UAAY,KAAK,IAAI,EAC3B,KAAK,wBAA0B,OAAO,YAAY,IAAM,CACtD,aAAa,OAAO,EACpB,MAAM,UAAY,mBAAmB,QAAQ,EAAE,GAC1B,gBAAgB,EAAE,KAAM,OAAU,MAAM,QAAU,SAAS,GAE5D,KAAK,IAAI,EAAI,UAAY,MAC3C,OAAO,cAAc,KAAK,uBAAuB,CAErD,EAAG,GAAG,CACR,CAEA,SAAS,qBAAsB,CAC7B,OAAO,MAAM,aAAe,mBAAmB,aAAa,EAAI,MAAO,CACrE,YAAa,aACf,CAAC,EACE,KAAM,UAAc,SAAS,GAAK,SAAS,KAAK,EAAI,IAAK,EACzD,KAAM,SAAY,CACjB,gBAAkB,SAAW,MAAM,QAAQ,QAAQ,QAAQ,EAAI,QAAQ,SAAW,CAAC,EACnF,eAAiB,GACb,gBAAiB,kBAAkB,EAClC,yBAAyB,CAChC,CAAC,EACA,MAAM,IAAM,CACX,gBAAkB,CAAC,EACnB,eAAiB,GACb,gBAAiB,kBAAkB,EAClC,yBAAyB,CAChC,CAAC,CACL,CAEA,SAAS,SAAS,KAAM,CACtB,OAAO,KAAK,cAAc,2BAA6B,KAAO,IAAI,CACpE,CAEA,SAAS,eAAe,KAAM,MAAO,CACnC,IAAI,MAAQ,SAAS,IAAI,EACzB,OAAI,QAEJ,MAAQ,SAAS,cAAc,QAAQ,EACvC,MAAM,OAAS,GACf,MAAM,aAAa,OAAQ,MAAM,EACjC,MAAM,KAAO,cAAgB,MAAQ,IACrC,MAAM,QAAQ,gBAAkB,KAChC,KAAK,YAAY,KAAK,EACf,MACT,CAEA,SAAS,UAAU,KAAM,CACvB,OAAI,OAAS,OAAe,WACxB,OAAS,QAAgB,YACtB,UACT,CAEA,SAAS,eAAe,KAAM,CAC5B,OAAI,OAAS,OAAe,eACxB,OAAS,QAAgB,eACtB,aACT,CAEA,SAAS,eAAe,WAAY,CAClC,OAAO,KAAK,KAAK,EAAE,QAAS,MAAS,CAC/B,OAAS,aACb,MAAM,IAAI,EAAE,OAAS,GACrB,SAAS,IAAI,EAAE,aAAa,gBAAiB,OAAO,EACtD,CAAC,CACH,CAEA,SAAS,aAAa,KAAM,CAC1B,MAAM,OAAS,UAAU,IAAI,EACvB,QAAU,SAAS,IAAI,EACvB,KAAO,MAAM,IAAI,EACjB,cAAgB,OAAO,MAE7B,QAAQ,SAAW,OAAO,SAC1B,cAAc,IAAI,EAAE,YAAc,eAAiB,eAAe,IAAI,EACtE,KAAK,UAAY,GAEjB,MAAM,KAAK,OAAO,OAAO,EAAE,QAAS,QAAW,CAE7C,GADI,CAAC,OAAO,OACR,yBAA2B,OAAO,QAAU,cAAe,OAC/D,MAAM,OAAS,SAAS,cAAc,QAAQ,EAC9C,OAAO,KAAO,SACd,OAAO,UAAY,uCACnB,OAAO,QAAQ,MAAQ,OAAO,MAC9B,OAAO,aAAa,OAAQ,QAAQ,EACpC,OAAO,aAAa,gBAAiB,OAAO,QAAU,cAAgB,OAAS,OAAO,EACtF,OAAO,YAAc,OAAO,YAC5B,KAAK,YAAY,MAAM,CACzB,CAAC,EAEG,OAAO,WACT,KAAK,OAAS,GACd,QAAQ,aAAa,gBAAiB,OAAO,EAEjD,CAEA,SAAS,eAAgB,CACvB,aAAa,MAAM,EACnB,aAAa,OAAO,EACpB,aAAa,MAAM,CACrB,CAEA,OAAO,KAAK,QAAQ,EAAE,QAAS,MAAS,CACtC,MAAM,QAAU,SAAS,IAAI,EACvB,KAAO,MAAM,IAAI,EAEvB,QAAQ,iBAAiB,QAAU,OAAU,CAE3C,GADA,MAAM,gBAAgB,EAClB,QAAQ,SAAU,OACtB,MAAM,SAAW,KAAK,OACtB,eAAe,IAAI,EACnB,KAAK,OAAS,CAAC,SACf,QAAQ,aAAa,gBAAiB,SAAW,OAAS,OAAO,CACnE,CAAC,EAED,KAAK,iBAAiB,QAAU,OAAU,CACxC,MAAM,OAAS,MAAM,OAAO,QAAQ,cAAc,EAClD,GAAI,CAAC,OAAQ,OACb,MAAM,gBAAgB,EACtB,MAAM,OAAS,UAAU,IAAI,EAC7B,OAAO,MAAQ,OAAO,QAAQ,MAC9B,OAAO,cAAc,IAAI,MAAM,SAAU,CAAE,QAAS,EAAK,CAAC,CAAC,EAC3D,KAAK,OAAS,GACd,QAAQ,aAAa,gBAAiB,OAAO,EAC7C,QAAQ,MAAM,CAChB,CAAC,CACH,CAAC,EAED,SAAS,iBAAiB,QAAS,IAAM,eAAe,CAAC,EACzD,SAAS,iBAAiB,UAAY,OAAU,CAC1C,MAAM,MAAQ,UAClB,eAAe,CACjB,CAAC,EAED,SAAS,iBAAkB,CACzB,MAAM,QAAU,CAAC,EACX,KAAO,YAAY,EACzB,OAAI,MAAM,QAAQ,KAAK,GAAG,KAAK,iBAAiB,uBAAuB,CAAC,EACxE,QAAQ,KAAK,GAAG,SAAS,iBAAiB,+BAAiC,OAAS,IAAI,CAAC,EAClF,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,CACpC,CAEA,SAAS,YAAY,QAAS,CAC5B,gBAAgB,EAAE,QAAS,QAAW,CAC/B,OAAO,QAAQ,yBAClB,OAAO,QAAQ,uBAAyB,OAAO,SAAW,OAAS,SAErE,MAAM,YAAc,OAAO,QAAQ,yBAA2B,OAC9D,OAAO,SAAW,aAAe,CAAC,QAClC,OAAO,aAAa,gBAAiB,OAAO,SAAW,OAAS,OAAO,CACzE,CAAC,CACH,CAEA,SAAS,YAAY,KAAM,MAAO,CAChC,MAAM,MAAQ,SAAS,IAAI,EAC3B,GAAK,MACL,GAAI,iBAAiB,kBAAmB,CACtC,MAAM,UAAY,GAClB,MAAM,OAAS,SAAS,cAAc,QAAQ,EAC9C,OAAO,MAAQ,MACf,OAAO,YAAc,MACrB,OAAO,SAAW,GAClB,MAAM,YAAY,MAAM,CAC1B,MACE,MAAM,MAAQ,MACd,MAAM,aAAa,QAAS,KAAK,CAErC,CAEA,SAAS,mBAAmB,KAAM,MAAO,MAAO,CAC9C,eAAe,KAAM,KAAK,EAC1B,YAAY,KAAM,KAAK,CACzB,CAEA,SAAS,qBAAsB,CAC7B,YAAY,YAAc,WAAW,OAAS,GAC9C,aAAa,YAAc,YAAY,OAAS,GAChD,YAAY,YAAc,WAAW,OAAS,GAC9C,cAAc,CAChB,CAEA,SAAS,kBAAmB,CAC1B,GAAI,CAAC,iBAAkB,OACvB,MAAM,MAAQ,gBACV,iBAAmB,QAAU,gBAAgB,KAC7C,qBACA,iBAAiB,YAAY,KAAK,IAAM,QAAO,iBAAiB,YAAc,MACpF,CAEA,SAAS,iBAAkB,CACzB,CAAC,UAAW,KAAM,MAAO,eAAe,EAAE,QAAS,MAAS,CAC1D,YAAY,KAAM,EAAE,CACtB,CAAC,CACH,CAEA,SAAS,WAAY,CACnB,MAAM,IAAM,IAAI,IAAI,OAAO,SAAS,IAAI,EACxC,IAAI,aAAa,OAAO,SAAS,EACjC,IAAI,aAAa,OAAO,gBAAgB,EACxC,OAAO,QAAQ,aAAa,OAAO,QAAQ,MAAO,GAAI,IAAI,SAAW,IAAI,OAAS,IAAI,IAAI,CAC5F,CAEA,SAAS,WAAW,MAAO,KAAM,UAAW,CAC1C,MAAM,QAAU,OAAO,IAAI,EACrB,UAAY,MAAM,WAAa,MAAM,aAAe,CAAC,EAE3D,OAAI,WAAa,OAAO,WAAc,UAAY,UAAU,OAAO,EAC1D,aAAa,UAAU,OAAO,CAAC,EAGpC,4BAA4B,SAAS,EAChC,4BAA4B,SAAS,EAGvC,aAAa,MAAM,YAAc,MAAM,aAAe,WAAW,CAC1E,CAEA,SAAS,0BAA2B,CAClC,GAAI,CAAC,gBACH,oBAAa,sBAAsB,CAAC,EAC7B,GAGT,GAAI,CAAC,eACH,uBAAkB,KAClB,mBAAmB,gBAAiB,wBAAyB,kBAAkB,EAC/E,gBAAgB,eAAiB,GACjC,gBAAgB,iBAAmB,GAC5B,GAGT,MAAM,gBAAkB,aAAa,gBAAgB,GAAG,EAClD,gBAAkB,sBAAsB,EAE9C,OAAI,iBACF,oBAAoB,eAAe,EACnC,mBAAmB,gBAAiB,wBAAyB,SAAS,EACtE,gBAAgB,eAAiB,GACjC,gBAAgB,iBAAmB,gBAAgB,YAAc,GAC1D,gBAAgB,kBAGpB,iBAQL,oBAAoB,eAAe,EACnC,mBAAmB,gBAAiB,wBAAyB,mCAAmC,EAChG,gBAAgB,eAAiB,GACjC,gBAAgB,iBAAmB,GAC5B,KAXL,gBAAkB,KAClB,mBAAmB,gBAAiB,wBAAyB,sBAAsB,EACnF,gBAAgB,eAAiB,GACjC,gBAAgB,iBAAmB,GAC5B,GAQX,CAEA,SAAS,eAAe,QAAS,CAC/B,MAAM,SAAW,SAAW,CAAC,EAC7B,gBAAkB,KAClB,gBAAgB,EAChB,yBAAyB,EACzB,OAAO,QAAQ,MAAQ,GACvB,OAAO,YAAc,iEACrB,YAAY,EAAK,EACjB,oBAAoB,EACpB,iBAAiB,EACb,SAAS,YAAc,IAAO,UAAU,EAAE,CAChD,CAEA,SAAS,gBAAiB,CACxB,MAAM,KAAO,WAAW,MAClB,OAAS,aACb,QAAQ,OAAQ,QAAW,OAAO,OAAS,IAAI,EAAE,IAAK,QAAW,OAAO,KAAK,CAC/E,EACA,eAAe,YAAa,eAAgB,MAAM,EAClD,YAAY,SAAW,CAAC,KACxB,eAAe,WAAY,cAAe,CAAC,CAAC,EAC5C,WAAW,SAAW,GACtB,oBAAoB,CACtB,CAEA,SAAS,eAAgB,CACvB,MAAM,MAAQ,QAAQ,KAAM,QAC1B,OAAO,OAAS,WAAW,OAAS,OAAO,QAAU,YAAY,KACnE,EACM,MAAQ,MACV,aAAa,MAAM,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAG,IAAM,EAAI,CAAC,EAC1D,CAAC,EACL,eAAe,WAAY,cAAe,KAAK,EAC/C,WAAW,SAAW,CAAC,MACvB,oBAAoB,CACtB,CAEA,SAAS,mBAAoB,CAC3B,oBAAoB,EACpB,MAAM,KAAO,OAAO,WAAW,KAAK,EAC9B,MAAQ,QAAQ,KAAM,QAC1B,OAAO,OAAS,WAAW,OAC3B,OAAO,QAAU,YAAY,OAC7B,OAAO,MAAM,IAAI,MAAM,EAAE,SAAS,IAAI,CACxC,EAEA,GAAI,CAAC,OAAS,CAAC,KAAM,CACnB,eAAe,EACf,MACF,CAEA,MAAM,KAAO,OAAO,IAAI,EAAI,IAAM,MAAM,KAAO,IAAM,MAAM,MACrD,UAAY,MAAM,OAAS,IAAM,OAAO,IAAI,EAC5C,IAAM,WAAW,MAAO,KAAM,SAAS,EAC7C,gBAAkB,CAAE,GAAI,UAAW,KAAY,GAAS,EACxD,iBAAiB,EAEjB,YAAY,UAAW,IAAI,EAC3B,YAAY,KAAM,SAAS,EAC3B,mBAAmB,MAAO,eAAgB,GAAG,EAE7C,MAAM,eAAiB,yBAAyB,EAC1C,gBAAkB,CAAC,eAEzB,OAAO,QAAQ,MAAQ,gBAAkB,GAAM,eAAiB,QAAU,QAC1E,OAAO,YAAc,gBACjB,oBAAsB,MAAM,KAAO,IAAM,MAAM,MAAQ,IAAM,OAAO,IAAI,EAAI,MAC3E,eACC,aAAe,MAAM,KAAO,IAAM,MAAM,MAAQ,IAAM,OAAO,IAAI,EACjE,aAAe,MAAM,KAAO,IAAM,MAAM,MAAQ,IAAM,OAAO,IAAI,EAAI,2CAC3E,YAAY,gBAAkB,gBAAkB,EAAQ,eAAgB,EACxE,UAAU,SAAS,CACrB,CAEA,WAAW,iBAAiB,SAAU,IAAM,CAC1C,eAAe,EACf,eAAe,CACjB,CAAC,EAED,YAAY,iBAAiB,SAAU,IAAM,CAC3C,cAAc,EACd,eAAe,CACjB,CAAC,EAED,WAAW,iBAAiB,SAAU,iBAAiB,EAEvD,SAAS,iBAAiB,SAAW,OAAU,CAC7C,GAAI,MAAM,OAAO,aAAa,IAAI,IAAM,OAAQ,OAEhD,GAAI,CAAC,gBAAiB,CACpB,MAAM,eAAe,EACrB,MAAM,yBAAyB,EAC/B,OAAO,QAAQ,MAAQ,QACvB,OAAO,YAAc,uDACrB,KAAK,eAAe,CAAE,SAAU,SAAU,MAAO,QAAS,CAAC,EAC3D,WAAW,MAAM,EACjB,MACF,CAEA,MAAM,eAAiB,yBAAyB,EAC1C,aAAe,0BAA0B,GAE3C,CAAC,gBAAkB,CAAC,gBACtB,MAAM,eAAe,EACrB,MAAM,yBAAyB,EAC/B,OAAO,QAAQ,MAAQ,QACvB,OAAO,YAAc,mFAEzB,EAAG,EAAI,EAEP,SAAS,iBAAiB,WAAa,OAAU,CAC/C,GAAI,MAAM,OAAO,aAAa,IAAI,IAAM,QAAU,CAAC,gBAAiB,OACpE,MAAM,UAAY,mBAAmB,gBAAgB,EAAE,EACvD,MAAM,SAAS,IAAI,KAAM,SAAS,CACpC,CAAC,EAED,eAAe,WAAY,eAAgB,aAAa,QAAQ,IAAK,QAAW,OAAO,IAAI,CAAC,CAAC,EAC7F,eAAe,YAAa,eAAgB,CAAC,CAAC,EAC9C,eAAe,WAAY,cAAe,CAAC,CAAC,EAC5C,YAAY,SAAW,GACvB,WAAW,SAAW,GACtB,eAAe,CAAE,UAAW,EAAM,CAAC,EACnC,oBAAoB,EAEpB,MAAM,QAAU,IAAI,IAAI,OAAO,SAAS,IAAI,EACtC,aAAe,QAAQ,aAAa,IAAI,SAAS,EACjD,aAAe,QAAQ,aAAa,IAAI,gBAAgB,EACxD,MAAQ,cAAgB,aAAa,MAAM,kBAAkB,EACnE,IAAI,eAAiB,KACjB,cAAgB,GAEpB,GAAI,aACF,GAAI,CACF,MAAM,eAAiB,KAAK,MAAM,YAAY,EAC9C,cAAgB,OAAO,eAAe,MAAQ,EAAE,EAChD,eAAiB,QAAQ,KAAM,QAC7B,OAAO,OAAS,OAAO,eAAe,MAAQ,EAAE,GAChD,OAAO,QAAU,OAAO,eAAe,OAAS,EAAE,GAClD,OAAO,MAAM,IAAI,MAAM,EAAE,SAAS,OAAO,aAAa,CAAC,CACzD,GAAK,IACP,MAAiB,CACf,eAAiB,KACjB,cAAgB,EAClB,CAGE,CAAC,gBAAkB,QACrB,cAAgB,MAAM,CAAC,EACvB,eAAiB,QAAQ,KAAM,QAC7B,OAAO,SAAW,MAAM,CAAC,GAAK,OAAO,MAAM,IAAI,MAAM,EAAE,SAAS,OAAO,aAAa,CAAC,CACvF,GAAK,MAGH,iBACF,wBAA0B,EAAQ,aAC9B,0BAAyB,KAAK,QAAQ,0BAA4B,QACtE,WAAW,MAAQ,eAAe,KAClC,eAAe,EACf,YAAY,MAAQ,eAAe,MACnC,cAAc,EACd,WAAW,MAAQ,cACnB,kBAAkB,GAGhB,eACF,QAAQ,aAAa,OAAO,gBAAgB,EAC5C,OAAO,QAAQ,aACb,OAAO,QAAQ,MACf,GACA,QAAQ,SAAW,QAAQ,OAAS,QAAQ,IAC9C,GAGF,MAAM,SAAW,IAAI,iBAAiB,IAAM,CACtC,iBAAmB,iBAAiB,aAAa,eAAe,EACpE,YAAY,GAAQ,iBAAmB,iBAAmB,gBAAgB,mBAAqB,GAAM,EACrG,iBAAiB,CACnB,CAAC,EACG,SAAS,iBACX,SAAS,QAAQ,SAAS,gBAAiB,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,CAEjF,CAEA,SAAS,QAAQ,MAAO,EACrB,OAAS,UAAU,iBAAiB,gCAAgC,EAAE,QAAQ,IAAI,CACrF,CAEI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,IAAM,QAAQ,QAAQ,CAAC,EAErE,QAAQ,QAAQ,EAGlB,SAAS,iBAAiB,uBAAyB,OAAU,QAAQ,MAAM,MAAM,CAAC,CACpF,GAAG",
  "names": []
}
