{
  "version": 3,
  "sources": ["/cdn/shop/t/30/assets/custom.js?cb=1791638236430"],
  "sourcesContent": ["$(document).ready(function() {\n  // Detect mobile screen size (for example, less than 768px)\n  function checkScreenSize() {\n    return $(window).width() < 768;\n  }\n\n  // Toggle the sidebar visibility for mobile only\n  $(document).on('click', '.side-categories', function() {\n    if (checkScreenSize()) {\n      $('.sidebar').toggleClass('active'); // Toggling 'active' class on the sidebar\n    }\n  });\n\n  // Ensure the sidebar is visible in desktop mode (when the screen is resized)\n  $(window).resize(function() {\n    if (!checkScreenSize()) {\n      $('.sidebar').removeClass('active'); // Remove 'active' class on desktop\n    }\n  });\n});\n\n/* ------------------------------------------------------------------\n   MyTuff4x4 kit builder \u2014 TRIAL on listed products only (v2, 10 Oct 2026)\n   Turns the APO dropdowns into steps. APO still does the pricing and\n   the add-to-cart: this only changes what the customer sees, by setting\n   APO's own <select> elements. If anything here fails, the original\n   dropdowns are left exactly as they were.\n   v2: truck/load answers start blank and must be picked; extras start\n   unticked; works on kits with or without a 2\"/3\" height choice.\n   v3 (11 Oct): kits with a \"Shocks\" dropdown get a pick-your-shocks step\n   (cards with the price difference); advice for the SWB driveline kit,\n   draglink and panhard rod; rear-spring wording for linear/variable coils.\n   ------------------------------------------------------------------ */\n(function () {\n  \"use strict\";\n\n  var HANDLES = [\n    \"dobinsons-mrr-adjustable-height-lift-kit-2-3inch-suitable-for-n70\",\n    \"dobinsons-mra-3-way-adjustable-2inch-lift-kit-nissan-patrol-gu-ute-coil-leaf\",\n    \"dobinsons-mrr-remote-reservoir-2inch-lift-kit-nissan-patrol-gu-ute-coil-leaf\",\n    \"dobinsons-2inch-lift-kit-nissan-patrol-gq-swb-wagon\"\n  ];\n  if (window.__mtKitBuilder) return;\n  var m = location.pathname.match(/\\/products\\/([^\\/?#]+)/);\n  if (!m) {\n    // Shopify's draft-product preview lives at /products_preview; the handle is in the canonical link.\n    var canon = document.querySelector('link[rel=\"canonical\"]') || document.querySelector('meta[property=\"og:url\"]');\n    m = canon ? String(canon.href || canon.content || \"\").match(/\\/products\\/([^\\/?#]+)/) : null;\n  }\n  var HANDLE = m ? decodeURIComponent(m[1]) : \"\";\n  if (HANDLES.indexOf(HANDLE) === -1) return;\n  window.__mtKitBuilder = true;\n\n  var basePrice = null;\n\n  // Fallback price when /products/{handle}.js is not available (draft-product preview).\n  function metaPrice() {\n    try {\n      var p = window.ShopifyAnalytics.meta.product.variants[0].price;\n      return p ? p / 100 : null;\n    } catch (e) { return null; }\n  }\n\n  /* --- helpers --------------------------------------------------- */\n\n  function money(n) {\n    return \"$\" + Number(n).toLocaleString(\"en-AU\", { minimumFractionDigits: 0, maximumFractionDigits: 0 });\n  }\n\n  // The real charge is APO's own trailing \"(+$X.XX AUD)\". Anything earlier is hand-typed.\n  function priceOf(text) {\n    var r = String(text).match(/\\(\\+\\s*\\$([\\d,]+(?:\\.\\d+)?)\\s*AUD\\s*\\)\\s*$/i);\n    return r ? parseFloat(r[1].replace(/,/g, \"\")) : 0;\n  }\n\n  // Strip every \"(+$...)\" and any unclosed bracket left behind.\n  function cleanLabel(text) {\n    var t = String(text).replace(/\\(\\+\\s*\\$[\\d,.]+\\s*(AUD)?\\s*\\)?/gi, \" \");\n    var open = (t.match(/\\(/g) || []).length, close = (t.match(/\\)/g) || []).length;\n    if (open !== close) t = t.replace(/[()]/g, \" \");\n    return t.replace(/\\s{2,}/g, \" \").trim();\n  }\n\n  // \"Yes Please Spacer Style\" -> \"Spacer Style\"; a bare \"Yes Please\" is left alone.\n  function choiceLabel(lbl) {\n    var t = String(lbl).replace(/^yes[,]?\\s*(please)?\\s*/i, \"\").trim();\n    return t || lbl;\n  }\n\n  // Set a native select so APO's own listeners fire.\n  function setSelect(sel, value) {\n    if (!sel || sel.value === value) return;\n    var setter = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, \"value\").set;\n    setter.call(sel, value);\n    sel.dispatchEvent(new Event(\"input\", { bubbles: true }));\n    sel.dispatchEvent(new Event(\"change\", { bubbles: true }));\n  }\n\n  function el(tag, cls, text) {\n    var n = document.createElement(tag);\n    if (cls) n.className = cls;\n    if (text != null) n.textContent = text;\n    return n;\n  }\n\n  /* --- read the APO groups --------------------------------------- */\n\n  function readGroups(container) {\n    var out = [];\n    container.querySelectorAll(\".mw-option\").forEach(function (w) {\n      var sel = w.querySelector(\"select\");\n      if (!sel) return;\n      var labNode = w.querySelector(\"label, .mw-option__label, .mw-option-title\");\n      var label = labNode ? labNode.textContent.replace(/\\*/g, \"\").trim() : \"\";\n      var values = [];\n      Array.prototype.forEach.call(sel.options, function (o) {\n        if (o.value === \"\") return;\n        values.push({ value: o.value, raw: o.text, label: cleanLabel(o.text), price: priceOf(o.text) });\n      });\n      var required = w.classList.contains(\"mw-option--required\");\n      out.push({ wrap: w, sel: sel, label: label, values: values, required: required });\n    });\n    return out;\n  }\n\n  function noThanksValue(g) {\n    var n = g.values.filter(function (v) { return /^no\\b|^none$/i.test(v.label); })[0];\n    return n ? n.value : null;\n  }\n  function yesValues(g) {\n    return g.values.filter(function (v) { return !/^no\\b|^none$/i.test(v.label); });\n  }\n\n  function classify(g) {\n    var l = g.label.toLowerCase();\n    var looksLikeHeight = g.values.length && g.values.every(function (v) { return /^\\d\\s*(\"|inch|in)?$/i.test(v.label); });\n    if (looksLikeHeight || /\\bor\\s*\\d\\s*(\"|inch)/i.test(l)) return \"height\";\n    if (/^shocks?$|shock absorber|shock option|which shock|shock choice/i.test(l)) return \"shock\";\n    if (/coil option|coil spring|front spring|what'?s on the front|bar & winch|bar and winch/i.test(l)) return \"front\";\n    if (/rear leaf|leaf option|rear spring/i.test(l)) return \"rear\";\n    if (/engine/i.test(l)) return \"engine\";\n    if (noThanksValue(g) && yesValues(g).length) return \"addon\";\n    return \"other\";\n  }\n\n  /* --- advice, keyed off the group label ------------------------- */\n  // g2 / g3 = how strongly we push it at 2 inch / 3 inch. Kits with no height choice use g2.\n\n  var ADVICE = {\n    front: \"A bar and a winch put weight on the front. It decides which coil we send.\",\n    rear: \"Constant load \u2014 what's in there most of the time, not the odd trip.\",\n    engine: \"Some engines are heavier at the front, so we match the coil to it.\",\n    strut: { why: \"Saves the workshop pulling your old struts apart. Bolt-in, ready to go.\", g2: \"opt\", g3: \"opt\" },\n    arms: {\n      why2: \"Pulls the caster back toward factory. Worth it if you carry weight or tow.\",\n      why3: \"At 3 inch the alignment won't come back into spec without them.\",\n      g2: \"rec\", g3: \"req\"\n    },\n    pins: { why: \"Greasable means they don't seize. Cheap now, a nightmare later.\", g2: \"rec\", g3: \"rec\" },\n    diff: {\n      why2: \"You can get away without one at 2 inch. It roughly doubles how long the CV boots last.\",\n      why3: \"At 3 inch the CV angle is past where Toyota wanted it. Fit one.\",\n      g2: \"rec\", g3: \"req\"\n    },\n    castor: { why: \"Lifting the front changes the castor angle. Dobinsons recommend a wheel alignment to check whether you need these.\", g2: \"opt\", g3: \"opt\" },\n    damper: { why: \"A heavy duty steering damper settles the front end over corrugations and with bigger tyres.\", g2: \"opt\", g3: \"opt\" },\n    sway: { why: \"Longer links put the sway bar back at the right angle after the lift.\", g2: \"opt\", g3: \"opt\" },\n    driveline: { why: \"A lift steepens the tailshaft angle on a short wheelbase. Dobinsons recommend this kit on every raised SWB to cut driveline vibration.\", g2: \"rec\", g3: \"rec\" },\n    draglink: { why: \"An adjustable draglink lets us centre the steering wheel again after the lift.\", g2: \"opt\", g3: \"opt\" },\n    panhard: { why: \"The lift pulls the front axle slightly to one side. An adjustable panhard rod puts it back in the middle.\", g2: \"opt\", g3: \"opt\" }\n  };\n\n  // Rear springs sold by rate (linear / variable / constant load) instead of by weight.\n  var ADVICE_REAR_RATE = \"Linear rate for an empty or lightly loaded wagon. Variable rate if the load changes trip to trip. Constant load if the weight is always in there.\";\n\n  // One line under each shock on the pick-your-shocks step.\n  var SHOCK_WHY = [\n    [/remote reservoir|\\bmrr\\b/i, \"Extra oil in the remote reservoir. Stays firm when the shocks get hot \u2014 touring and towing.\"],\n    [/adjustable|\\bmra\\b/i, \"Three-way adjustable damping. Soft for daily driving, firm when the truck is loaded.\"],\n    [/monotube|\\bims\\b/i, \"Bigger bore monotube. Runs cooler on long corrugated roads.\"],\n    [/nitro|\\bgas\\b|\\bgs\\b/i, \"Twin tube, nitrogen charged. The everyday choice.\"]\n  ];\n  function shockWhy(label) {\n    for (var i = 0; i < SHOCK_WHY.length; i++) if (SHOCK_WHY[i][0].test(label)) return SHOCK_WHY[i][1];\n    return \"\";\n  }\n\n  function addonKey(label) {\n    var l = label.toLowerCase();\n    if (/strut/.test(l)) return \"strut\";\n    if (/control arm/.test(l)) return \"arms\";\n    if (/pins|shackle/.test(l)) return \"pins\";\n    if (/diff drop/.test(l)) return \"diff\";\n    if (/cast(e|o)r/.test(l)) return \"castor\";\n    if (/stabili[sz]er|steering damper/.test(l)) return \"damper\";\n    if (/sway/.test(l)) return \"sway\";\n    if (/driveline|drive line|tailshaft/.test(l)) return \"driveline\";\n    if (/drag ?link/.test(l)) return \"draglink\";\n    if (/panhard/.test(l)) return \"panhard\";\n    return null;\n  }\n\n  /* --- build ------------------------------------------------------ */\n\n  function build(container) {\n    var groups = readGroups(container);\n    if (!groups.length) return false;\n\n    var height = null, shock = null, truck = [], addons = [], others = [];\n    groups.forEach(function (g) {\n      var kind = classify(g);\n      if (kind === \"height\" && !height) height = g;\n      else if (kind === \"shock\" && !shock && g.values.length) shock = g;\n      else if (kind === \"front\" || kind === \"rear\" || kind === \"engine\") { g.kind = kind; truck.push(g); }\n      else if (kind === \"addon\") addons.push(g);\n      else others.push(g);\n    });\n    // front, engine, then rear\n    var order = { front: 0, engine: 1, rear: 2 };\n    truck.sort(function (a, b) { return order[a.kind] - order[b.kind]; });\n\n    var steps = (height ? 1 : 0) + (shock ? 1 : 0) + (truck.length ? 1 : 0) + (addons.length ? 1 : 0);\n    var stepNo = 0;\n    function stepLabel() { stepNo++; return \"Step \" + stepNo + \" of \" + steps; }\n\n    var root = el(\"div\", \"mtkb\");\n    var heightNow = null;\n    var shockNow = null;   // the chosen shock value object (its price goes in the total)\n    var truckSelects = [];\n\n    /* height */\n    if (height) {\n      var s1 = el(\"div\", \"mtkb__step\");\n      s1.appendChild(el(\"p\", \"mtkb__no\", stepLabel()));\n      s1.appendChild(el(\"h3\", null, \"How high are you going?\"));\n      s1.appendChild(el(\"p\", \"mtkb__hint\", \"This decides what else the truck needs. The extras below update when you change it.\"));\n      var seg = el(\"div\", \"mtkb__seg\");\n      height.values.forEach(function (v) {\n        var b = el(\"button\", null, v.label);\n        b.type = \"button\";\n        b.setAttribute(\"aria-pressed\", \"false\");\n        b.addEventListener(\"click\", function () {\n          seg.querySelectorAll(\"button\").forEach(function (x) { x.setAttribute(\"aria-pressed\", \"false\"); });\n          b.setAttribute(\"aria-pressed\", \"true\");\n          setSelect(height.sel, v.value);\n          heightNow = parseInt(v.label, 10) || 2;\n          renderAddons();\n        });\n        seg.appendChild(b);\n      });\n      s1.appendChild(seg);\n      root.appendChild(s1);\n      var firstBtn = seg.querySelector(\"button\");\n      if (firstBtn) { firstBtn.setAttribute(\"aria-pressed\", \"true\"); setSelect(height.sel, height.values[0].value); heightNow = parseInt(height.values[0].label, 10) || 2; }\n    }\n\n    /* shocks \u2014 cards, the first (included) one starts selected */\n    if (shock) {\n      var ss = el(\"div\", \"mtkb__step\");\n      ss.appendChild(el(\"p\", \"mtkb__no\", stepLabel()));\n      ss.appendChild(el(\"h3\", null, \"Pick your shocks\"));\n      ss.appendChild(el(\"p\", \"mtkb__hint\", \"Same springs whichever you pick. The shock sets the ride and the price.\"));\n      var cards = el(\"div\", \"mtkb__cards\");\n      shock.values.forEach(function (v, i) {\n        var b = el(\"button\", \"mtkb__card\");\n        b.type = \"button\";\n        b.setAttribute(\"aria-pressed\", \"false\");\n        var top = el(\"span\", \"mtkb__cardtop\");\n        top.appendChild(el(\"span\", \"mtkb__cardname\", v.label));\n        top.appendChild(el(\"span\", \"mtkb__cardamt\", v.price ? \"+\" + money(v.price) : \"Included\"));\n        b.appendChild(top);\n        var why = shockWhy(v.label);\n        if (why) b.appendChild(el(\"span\", \"mtkb__cardwhy\", why));\n        b.addEventListener(\"click\", function () {\n          cards.querySelectorAll(\"button\").forEach(function (x) { x.setAttribute(\"aria-pressed\", \"false\"); });\n          b.setAttribute(\"aria-pressed\", \"true\");\n          shockNow = v;\n          setSelect(shock.sel, v.value);\n          apply();\n        });\n        cards.appendChild(b);\n        if (i === 0) { b.setAttribute(\"aria-pressed\", \"true\"); shockNow = v; }\n      });\n      ss.appendChild(cards);\n      root.appendChild(ss);\n      if (shockNow) setSelect(shock.sel, shockNow.value);\n    }\n\n    /* the truck \u2014 these start blank and must be answered */\n    if (truck.length) {\n      var s2 = el(\"div\", \"mtkb__step\");\n      s2.appendChild(el(\"p\", \"mtkb__no\", stepLabel()));\n      s2.appendChild(el(\"h3\", null, \"Tell us about your truck\"));\n      s2.appendChild(el(\"p\", \"mtkb__hint\", \"We pick the springs off these answers. Not sure? Ring us on 02 8747 0325.\"));\n      var TITLES = { front: \"What's on the front?\", engine: \"Which engine?\", rear: \"What do you carry in the back?\" };\n      truck.forEach(function (g) {\n        var f = el(\"div\", \"mtkb__field\");\n        var lab = el(\"label\", null, TITLES[g.kind] + \" \");\n        var byRate = g.kind === \"rear\" && g.values.some(function (v) { return /linear|variable/i.test(v.label); });\n        lab.appendChild(el(\"span\", \"mtkb__sub\", byRate ? ADVICE_REAR_RATE : ADVICE[g.kind]));\n        var sel = el(\"select\");\n        sel.appendChild(new Option(\"-- Please choose --\", \"\"));\n        g.values.forEach(function (v) {\n          sel.appendChild(new Option(v.label + (v.price ? \" (+\" + money(v.price) + \")\" : \"\"), v.value));\n        });\n        sel.value = g.sel.value || \"\";\n        sel.addEventListener(\"change\", function () {\n          setSelect(g.sel, sel.value);\n          f.classList.toggle(\"mtkb__field--missing\", !sel.value);\n          apply();\n        });\n        lab.setAttribute(\"for\", \"mtkb_\" + g.sel.id);\n        sel.id = \"mtkb_\" + g.sel.id;\n        f.appendChild(lab); f.appendChild(sel);\n        s2.appendChild(f);\n        truckSelects.push({ g: g, sel: sel, field: f });\n      });\n      root.appendChild(s2);\n    }\n\n    /* finish the job \u2014 extras, all unticked */\n    var s3 = el(\"div\", \"mtkb__step\");\n    s3.appendChild(el(\"p\", \"mtkb__no\", \"\"));\n    s3.appendChild(el(\"h3\", null, \"Finish the job\"));\n    var hint3 = el(\"p\", \"mtkb__hint\", \"\");\n    s3.appendChild(hint3);\n    var addonBox = el(\"div\", \"mtkb__opts\");\n    s3.appendChild(addonBox);\n    if (addons.length) { s3.firstChild.textContent = stepLabel(); root.appendChild(s3); }\n\n    /* anything we didn't recognise stays as a plain dropdown so nothing is lost */\n    if (others.length) {\n      var so = el(\"div\", \"mtkb__step\");\n      so.appendChild(el(\"h3\", null, \"Other options\"));\n      others.forEach(function (g) {\n        var f = el(\"div\", \"mtkb__field\");\n        var lab = el(\"label\", null, g.label);\n        var sel = el(\"select\");\n        sel.appendChild(new Option(\"-- Please choose --\", \"\"));\n        g.values.forEach(function (v) { sel.appendChild(new Option(v.raw, v.value)); });\n        sel.value = g.sel.value;\n        sel.addEventListener(\"change\", function () { setSelect(g.sel, sel.value); f.classList.toggle(\"mtkb__field--missing\", !sel.value); apply(); });\n        f.appendChild(lab); f.appendChild(sel);\n        so.appendChild(f);\n        if (g.required) truckSelects.push({ g: g, sel: sel, field: f });\n      });\n      root.appendChild(so);\n    }\n\n    /* total */\n    var foot = el(\"div\", \"mtkb__foot\");\n    var sumRow = el(\"div\", \"mtkb__sumrow\");\n    var left = el(\"div\");\n    left.appendChild(el(\"div\", \"mtkb__lab\", \"Your kit\"));\n    var sumEl = el(\"div\", \"mtkb__sum\", \"\u2014\");\n    left.appendChild(sumEl);\n    var cnt = el(\"div\", \"mtkb__lab\", \"Kit only\");\n    sumRow.appendChild(left); sumRow.appendChild(cnt);\n    foot.appendChild(sumRow);\n    var msg = el(\"p\", \"mtkb__msg\", \"\");\n    foot.appendChild(msg);\n    root.appendChild(foot);\n\n    var state = {};\n\n    function renderAddons() {\n      addonBox.innerHTML = \"\";\n      if (heightNow) {\n        hint3.textContent = heightNow >= 3\n          ? \"At 3 inch the arms and the diff drop stop being a suggestion. Tick what you want \u2014 nothing is added unless you tick it.\"\n          : \"At 2 inch you can get away without the arms and the diff drop. Tick what you want \u2014 nothing is added unless you tick it.\";\n      } else {\n        hint3.textContent = \"Tick what you want \u2014 nothing is added unless you tick it. Not sure? Ring us on 02 8747 0325.\";\n      }\n\n      var ranked = { req: [], rec: [], opt: [] };\n      addons.forEach(function (g) {\n        var key = addonKey(g.label);\n        var adv = key ? ADVICE[key] : null;\n        var band = adv ? ((heightNow || 2) >= 3 ? adv.g3 : adv.g2) : \"opt\";\n        ranked[band].push({ g: g, adv: adv, band: band });\n      });\n\n      [\"req\", \"rec\", \"opt\"].forEach(function (band) {\n        ranked[band].forEach(function (item) {\n          var g = item.g, adv = item.adv;\n          var ys = yesValues(g);\n          if (!ys.length) return;\n\n          var row = el(\"div\", \"mtkb__opt\");\n          var cb = document.createElement(\"input\");\n          cb.type = \"checkbox\";\n          cb.id = \"mtkb_cb_\" + g.sel.id;\n          cb.checked = !!state[g.sel.id];\n\n          var body = el(\"div\", \"mtkb__body\");\n          var lab = el(\"label\", null, g.label.replace(/^add\\s+/i, \"\").replace(/\\s*\\*$/, \"\"));\n          lab.setAttribute(\"for\", cb.id);\n          body.appendChild(lab);\n\n          var whyTxt = adv ? (((heightNow || 2) >= 3 ? adv.why3 : adv.why2) || adv.why) : \"\";\n          if (whyTxt) body.appendChild(el(\"p\", \"mtkb__why\", whyTxt));\n\n          var pill = el(\"span\", \"mtkb__pill mtkb__pill--\" + band,\n            band === \"req\" ? \"Needed at \" + heightNow + \" inch\" : (band === \"rec\" ? \"Recommended\" : \"Optional\"));\n          body.appendChild(pill);\n\n          if (ys.length > 1) {\n            var wrapSel = el(\"div\", \"mtkb__chooser\");\n            var chooser = el(\"select\");\n            ys.forEach(function (v, i) { chooser.appendChild(new Option(choiceLabel(v.label) + \" \u2014 \" + money(v.price), String(i))); });\n            chooser.value = String(state[g.sel.id + \"_pick\"] || 0);\n            chooser.addEventListener(\"change\", function () {\n              state[g.sel.id + \"_pick\"] = +chooser.value;\n              apply();\n            });\n            wrapSel.appendChild(chooser);\n            body.appendChild(wrapSel);\n          }\n\n          var amt = el(\"div\", \"mtkb__amt\", money(ys[state[g.sel.id + \"_pick\"] || 0].price));\n          g.__amtEl = amt;\n\n          cb.addEventListener(\"change\", function () {\n            state[g.sel.id] = cb.checked;\n            apply();\n          });\n\n          row.appendChild(cb); row.appendChild(body); row.appendChild(amt);\n          addonBox.appendChild(row);\n        });\n      });\n      apply();\n    }\n\n    function apply() {\n      var total = basePrice || 0, n = 0;\n      if (shockNow) total += shockNow.price;\n      truckSelects.forEach(function (t) {\n        var v = t.g.values.filter(function (x) { return x.value === t.sel.value; })[0];\n        if (v) total += v.price;\n      });\n      addons.forEach(function (g) {\n        var ys = yesValues(g), no = noThanksValue(g);\n        var pick = ys[state[g.sel.id + \"_pick\"] || 0];\n        if (g.__amtEl && pick) g.__amtEl.textContent = money(pick.price);\n        if (state[g.sel.id] && pick) { setSelect(g.sel, pick.value); total += pick.price; n++; }\n        else if (no) setSelect(g.sel, no);\n      });\n      sumEl.textContent = basePrice ? money(total) : \"\u2014\";\n      cnt.textContent = n === 0 ? \"Kit only\" : \"Kit + \" + n + (n === 1 ? \" extra\" : \" extras\");\n      var left = truckSelects.filter(function (t) { return !t.sel.value; }).length;\n      msg.className = \"mtkb__msg\";\n      msg.textContent = left ? left + (left === 1 ? \" question\" : \" questions\") + \" above still to answer before adding to cart.\" : \"\";\n    }\n\n    // stop an incomplete order going through while APO's own messages are hidden\n    var form = container.closest(\"form\");\n    function guard(e) {\n      var missing = truckSelects.filter(function (t) { return !t.sel.value; });\n      if (!missing.length) return;\n      e.preventDefault();\n      e.stopImmediatePropagation();\n      missing.forEach(function (t) { t.field.classList.add(\"mtkb__field--missing\"); });\n      msg.className = \"mtkb__msg mtkb__msg--bad\";\n      msg.textContent = \"Please answer the \" + (missing.length === 1 ? \"question\" : missing.length + \" questions\") + \" marked in red first.\";\n      missing[0].sel.focus();\n      missing[0].field.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n    }\n    if (form) {\n      form.addEventListener(\"submit\", guard, true);\n      form.querySelectorAll('button[type=\"submit\"], [name=\"add\"]').forEach(function (b) { b.addEventListener(\"click\", guard, true); });\n    }\n\n    container.parentNode.insertBefore(root, container);\n    container.classList.add(\"mtkb-hidden\");\n    renderAddons();\n\n    fetch(\"/products/\" + HANDLE + \".js\", { credentials: \"same-origin\" })\n      .then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })\n      .then(function (p) { basePrice = (p.price || 0) / 100; apply(); })\n      .catch(function () {\n        var mp = metaPrice();\n        if (mp) { basePrice = mp; apply(); }   // otherwise the total just stays as a dash\n      });\n\n    return true;\n  }\n\n  /* --- styles ----------------------------------------------------- */\n\n  var css = \"\"\n    + \".mtkb-hidden{display:none!important}\"\n    + \".mtkb{font-family:inherit;margin:0 0 18px}\"\n    + \".mtkb__step{border-top:1px solid #d9ddcb;padding:16px 0 2px}\"\n    + \".mtkb__step:first-child{border-top:0;padding-top:0}\"\n    + \".mtkb__no{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#5f6d0e;margin:0 0 2px}\"\n    + \".mtkb h3{font-size:19px;text-transform:uppercase;letter-spacing:.02em;margin:0 0 3px}\"\n    + \".mtkb__hint{margin:0 0 11px;font-size:13px;color:#5e6554;line-height:1.5}\"\n    + \".mtkb__seg{display:flex;gap:8px}\"\n    + \".mtkb__seg button{flex:1 1 0;min-height:54px;font:inherit;font-size:19px;font-weight:700;text-transform:uppercase;background:#fff;color:#5e6554;border:1px solid #d9ddcb;border-radius:3px;cursor:pointer}\"\n    + \".mtkb__seg button[aria-pressed=\\\"true\\\"]{background:#1b1f17;color:#fff;border-color:#1b1f17}\"\n    + \".mtkb__cards{display:flex;flex-direction:column;gap:8px}\"\n    + \".mtkb__card{display:block;width:100%;text-align:left;font:inherit;text-transform:none;letter-spacing:0;line-height:1.3;background:#fff;color:#1b1f17;border:1px solid #d9ddcb;border-radius:3px;padding:10px 12px;cursor:pointer}\"\n    + \".mtkb__card[aria-pressed=\\\"true\\\"]{border:2px solid #1b1f17;background:#f6f7f1;padding:9px 11px}\"\n    + \".mtkb__cardtop{display:flex;justify-content:space-between;gap:10px;align-items:baseline}\"\n    + \".mtkb__cardname{font-size:15px;font-weight:700;color:#111}\"\n    + \".mtkb__cardamt{font-size:15px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;color:#111}\"\n    + \".mtkb__cardwhy{display:block;margin-top:3px;font-size:12.5px;color:#6b7160;line-height:1.5;font-weight:400}\"\n    + \".mtkb__field{margin-bottom:13px}\"\n    + \".mtkb__field label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}\"\n    + \".mtkb__sub{font-weight:400;color:#5e6554;font-size:12px}\"\n    + \".mtkb__field select{width:100%;max-width:100%;min-height:46px;font:inherit;font-size:14px;padding:9px 11px;background:#fff;color:#1b1f17;border:1px solid #d9ddcb;border-radius:3px}\"\n    + \".mtkb__field--missing select{border:2px solid #b3261e;background:#fdf3f2}\"\n    + \".mtkb__opt{display:flex;gap:11px;align-items:flex-start;padding:12px 0;border-top:1px solid #e6e9dc}\"\n    + \".mtkb__opt:first-child{border-top:0}\"\n    + \".mtkb__opt input[type=checkbox]{width:22px;height:22px;flex:0 0 auto;margin:2px 0 0;accent-color:#a3b50c}\"\n    + \".mtkb__body{flex:1 1 auto;min-width:0}\"\n    + \".mtkb__body label{display:block;font-size:14.5px;font-weight:600;line-height:1.35;cursor:pointer}\"\n    + \".mtkb__why{margin:3px 0 0;font-size:12.5px;color:#5e6554;line-height:1.5}\"\n    + \".mtkb__pill{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;border-radius:2px;padding:3px 7px;margin-top:6px}\"\n    + \".mtkb__pill--req{background:#f8ece6;color:#8c3b1f}\"\n    + \".mtkb__pill--rec{background:#edf1dc;color:#45550f}\"\n    + \".mtkb__pill--opt{border:1px solid #d9ddcb;color:#5e6554}\"\n    + \".mtkb__chooser{margin-top:7px}\"\n    + \".mtkb__chooser select{width:100%;min-height:42px;font:inherit;font-size:13px;padding:7px 9px;background:#fff;border:1px solid #d9ddcb;border-radius:3px}\"\n    + \".mtkb__amt{font-size:18px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}\"\n    + \".mtkb__foot{border-top:2px solid #1b1f17;margin-top:16px;padding-top:13px}\"\n    + \".mtkb__sumrow{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;justify-content:space-between}\"\n    + \".mtkb__lab{font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#5e6554}\"\n    + \".mtkb__sum{font-size:33px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}\"\n    + \".mtkb__msg{margin:9px 0 0;font-size:13px;color:#5e6554;min-height:1.2em}\"\n    + \".mtkb__msg--bad{color:#b3261e;font-weight:600}\"\n    /* headings and questions darker and bolder than the helper text under them */\n    + \".mtkb h3{color:#111!important;font-weight:800!important}\"\n    + \".mtkb__field>label,.mtkb__body>label{color:#111!important;font-weight:700!important;font-size:15px!important}\"\n    + \".mtkb__sub,.mtkb__why,.mtkb__hint{color:#6b7160!important;font-weight:400!important}\"\n    + \".mtkb__field>label .mtkb__sub{display:block;font-size:12.5px!important;margin-top:1px}\";\n\n  function injectCss() {\n    if (document.getElementById(\"mtkb-css\")) return;\n    var s = document.createElement(\"style\");\n    s.id = \"mtkb-css\";\n    s.textContent = css;\n    document.head.appendChild(s);\n  }\n\n  /* --- wait for APO, then build ------------------------------------ */\n\n  var tries = 0;\n  function attempt() {\n    var c = document.querySelector(\".mw-apo-container\");\n    if (c && c.querySelector(\".mw-option select\")) {\n      try {\n        injectCss();\n        if (!build(c)) c.classList.remove(\"mtkb-hidden\");\n      } catch (e) {\n        c.classList.remove(\"mtkb-hidden\");\n        if (window.console) console.log(\"[mtkb] stood down:\", e);\n      }\n      return;\n    }\n    if (++tries < 60) setTimeout(attempt, 250);\n  }\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", attempt);\n  else attempt();\n})();\n"],
  "mappings": "AAAA,EAAE,QAAQ,EAAE,MAAM,UAAW,CAE3B,SAAS,iBAAkB,CACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAI,GAC7B,CAGA,EAAE,QAAQ,EAAE,GAAG,QAAS,mBAAoB,UAAW,CACjD,gBAAgB,GAClB,EAAE,UAAU,EAAE,YAAY,QAAQ,CAEtC,CAAC,EAGD,EAAE,MAAM,EAAE,OAAO,UAAW,CACrB,gBAAgB,GACnB,EAAE,UAAU,EAAE,YAAY,QAAQ,CAEtC,CAAC,CACH,CAAC,GAcA,UAAY,CACX,aAEA,IAAI,QAAU,CACZ,oEACA,+EACA,+EACA,qDACF,EACA,GAAI,OAAO,eAAgB,OAC3B,IAAI,EAAI,SAAS,SAAS,MAAM,wBAAwB,EACxD,GAAI,CAAC,EAAG,CAEN,IAAI,MAAQ,SAAS,cAAc,uBAAuB,GAAK,SAAS,cAAc,yBAAyB,EAC/G,EAAI,MAAQ,OAAO,MAAM,MAAQ,MAAM,SAAW,EAAE,EAAE,MAAM,wBAAwB,EAAI,IAC1F,CACA,IAAI,OAAS,EAAI,mBAAmB,EAAE,CAAC,CAAC,EAAI,GAC5C,GAAI,QAAQ,QAAQ,MAAM,IAAM,GAAI,OACpC,OAAO,eAAiB,GAExB,IAAI,UAAY,KAGhB,SAAS,WAAY,CACnB,GAAI,CACF,IAAI,EAAI,OAAO,iBAAiB,KAAK,QAAQ,SAAS,CAAC,EAAE,MACzD,OAAO,EAAI,EAAI,IAAM,IACvB,OAAS,EAAG,CAAE,OAAO,IAAM,CAC7B,CAIA,SAAS,MAAM,EAAG,CAChB,MAAO,IAAM,OAAO,CAAC,EAAE,eAAe,QAAS,CAAE,sBAAuB,EAAG,sBAAuB,CAAE,CAAC,CACvG,CAGA,SAAS,QAAQ,KAAM,CACrB,IAAI,EAAI,OAAO,IAAI,EAAE,MAAM,6CAA6C,EACxE,OAAO,EAAI,WAAW,EAAE,CAAC,EAAE,QAAQ,KAAM,EAAE,CAAC,EAAI,CAClD,CAGA,SAAS,WAAW,KAAM,CACxB,IAAI,EAAI,OAAO,IAAI,EAAE,QAAQ,oCAAqC,GAAG,EACjE,MAAQ,EAAE,MAAM,KAAK,GAAK,CAAC,GAAG,OAAQ,OAAS,EAAE,MAAM,KAAK,GAAK,CAAC,GAAG,OACzE,OAAI,OAAS,QAAO,EAAI,EAAE,QAAQ,QAAS,GAAG,GACvC,EAAE,QAAQ,UAAW,GAAG,EAAE,KAAK,CACxC,CAGA,SAAS,YAAY,IAAK,CACxB,IAAI,EAAI,OAAO,GAAG,EAAE,QAAQ,2BAA4B,EAAE,EAAE,KAAK,EACjE,OAAO,GAAK,GACd,CAGA,SAAS,UAAU,IAAK,MAAO,CAC7B,GAAI,GAAC,KAAO,IAAI,QAAU,OAC1B,KAAI,OAAS,OAAO,yBAAyB,OAAO,kBAAkB,UAAW,OAAO,EAAE,IAC1F,OAAO,KAAK,IAAK,KAAK,EACtB,IAAI,cAAc,IAAI,MAAM,QAAS,CAAE,QAAS,EAAK,CAAC,CAAC,EACvD,IAAI,cAAc,IAAI,MAAM,SAAU,CAAE,QAAS,EAAK,CAAC,CAAC,EAC1D,CAEA,SAAS,GAAG,IAAK,IAAK,KAAM,CAC1B,IAAI,EAAI,SAAS,cAAc,GAAG,EAClC,OAAI,MAAK,EAAE,UAAY,KACnB,MAAQ,OAAM,EAAE,YAAc,MAC3B,CACT,CAIA,SAAS,WAAW,UAAW,CAC7B,IAAI,IAAM,CAAC,EACX,iBAAU,iBAAiB,YAAY,EAAE,QAAQ,SAAU,EAAG,CAC5D,IAAI,IAAM,EAAE,cAAc,QAAQ,EAClC,GAAK,IACL,KAAI,QAAU,EAAE,cAAc,4CAA4C,EACtE,MAAQ,QAAU,QAAQ,YAAY,QAAQ,MAAO,EAAE,EAAE,KAAK,EAAI,GAClE,OAAS,CAAC,EACd,MAAM,UAAU,QAAQ,KAAK,IAAI,QAAS,SAAU,EAAG,CACjD,EAAE,QAAU,IAChB,OAAO,KAAK,CAAE,MAAO,EAAE,MAAO,IAAK,EAAE,KAAM,MAAO,WAAW,EAAE,IAAI,EAAG,MAAO,QAAQ,EAAE,IAAI,CAAE,CAAC,CAChG,CAAC,EACD,IAAI,SAAW,EAAE,UAAU,SAAS,qBAAqB,EACzD,IAAI,KAAK,CAAE,KAAM,EAAG,IAAK,IAAK,MAAO,MAAO,OAAQ,OAAQ,SAAU,QAAS,CAAC,EAClF,CAAC,EACM,GACT,CAEA,SAAS,cAAc,EAAG,CACxB,IAAI,EAAI,EAAE,OAAO,OAAO,SAAU,EAAG,CAAE,MAAO,gBAAgB,KAAK,EAAE,KAAK,CAAG,CAAC,EAAE,CAAC,EACjF,OAAO,EAAI,EAAE,MAAQ,IACvB,CACA,SAAS,UAAU,EAAG,CACpB,OAAO,EAAE,OAAO,OAAO,SAAU,EAAG,CAAE,MAAO,CAAC,gBAAgB,KAAK,EAAE,KAAK,CAAG,CAAC,CAChF,CAEA,SAAS,SAAS,EAAG,CACnB,IAAI,EAAI,EAAE,MAAM,YAAY,EACxB,gBAAkB,EAAE,OAAO,QAAU,EAAE,OAAO,MAAM,SAAU,EAAG,CAAE,MAAO,uBAAuB,KAAK,EAAE,KAAK,CAAG,CAAC,EACrH,OAAI,iBAAmB,wBAAwB,KAAK,CAAC,EAAU,SAC3D,kEAAkE,KAAK,CAAC,EAAU,QAClF,uFAAuF,KAAK,CAAC,EAAU,QACvG,qCAAqC,KAAK,CAAC,EAAU,OACrD,UAAU,KAAK,CAAC,EAAU,SAC1B,cAAc,CAAC,GAAK,UAAU,CAAC,EAAE,OAAe,QAC7C,OACT,CAKA,IAAI,OAAS,CACX,MAAO,4EACP,KAAM,2EACN,OAAQ,qEACR,MAAO,CAAE,IAAK,0EAA2E,GAAI,MAAO,GAAI,KAAM,EAC9G,KAAM,CACJ,KAAM,6EACN,KAAM,kEACN,GAAI,MAAO,GAAI,KACjB,EACA,KAAM,CAAE,IAAK,kEAAmE,GAAI,MAAO,GAAI,KAAM,EACrG,KAAM,CACJ,KAAM,yFACN,KAAM,kEACN,GAAI,MAAO,GAAI,KACjB,EACA,OAAQ,CAAE,IAAK,qHAAsH,GAAI,MAAO,GAAI,KAAM,EAC1J,OAAQ,CAAE,IAAK,8FAA+F,GAAI,MAAO,GAAI,KAAM,EACnI,KAAM,CAAE,IAAK,wEAAyE,GAAI,MAAO,GAAI,KAAM,EAC3G,UAAW,CAAE,IAAK,yIAA0I,GAAI,MAAO,GAAI,KAAM,EACjL,SAAU,CAAE,IAAK,iFAAkF,GAAI,MAAO,GAAI,KAAM,EACxH,QAAS,CAAE,IAAK,4GAA6G,GAAI,MAAO,GAAI,KAAM,CACpJ,EAGI,iBAAmB,oJAGnB,UAAY,CACd,CAAC,4BAA6B,kGAA6F,EAC3H,CAAC,sBAAuB,sFAAsF,EAC9G,CAAC,oBAAqB,6DAA6D,EACnF,CAAC,wBAAyB,mDAAmD,CAC/E,EACA,SAAS,SAAS,MAAO,CACvB,QAAS,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,GAAI,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,EAAG,OAAO,UAAU,CAAC,EAAE,CAAC,EACjG,MAAO,EACT,CAEA,SAAS,SAAS,MAAO,CACvB,IAAI,EAAI,MAAM,YAAY,EAC1B,MAAI,QAAQ,KAAK,CAAC,EAAU,QACxB,cAAc,KAAK,CAAC,EAAU,OAC9B,eAAe,KAAK,CAAC,EAAU,OAC/B,YAAY,KAAK,CAAC,EAAU,OAC5B,aAAa,KAAK,CAAC,EAAU,SAC7B,gCAAgC,KAAK,CAAC,EAAU,SAChD,OAAO,KAAK,CAAC,EAAU,OACvB,iCAAiC,KAAK,CAAC,EAAU,YACjD,aAAa,KAAK,CAAC,EAAU,WAC7B,UAAU,KAAK,CAAC,EAAU,UACvB,IACT,CAIA,SAAS,MAAM,UAAW,CACxB,IAAI,OAAS,WAAW,SAAS,EACjC,GAAI,CAAC,OAAO,OAAQ,MAAO,GAE3B,IAAI,OAAS,KAAM,MAAQ,KAAM,MAAQ,CAAC,EAAG,OAAS,CAAC,EAAG,OAAS,CAAC,EACpE,OAAO,QAAQ,SAAU,EAAG,CAC1B,IAAI,KAAO,SAAS,CAAC,EACjB,OAAS,UAAY,CAAC,OAAQ,OAAS,EAClC,OAAS,SAAW,CAAC,OAAS,EAAE,OAAO,OAAQ,MAAQ,EACvD,OAAS,SAAW,OAAS,QAAU,OAAS,UAAY,EAAE,KAAO,KAAM,MAAM,KAAK,CAAC,GACvF,OAAS,QAAS,OAAO,KAAK,CAAC,EACnC,OAAO,KAAK,CAAC,CACpB,CAAC,EAED,IAAI,MAAQ,CAAE,MAAO,EAAG,OAAQ,EAAG,KAAM,CAAE,EAC3C,MAAM,KAAK,SAAU,EAAG,EAAG,CAAE,OAAO,MAAM,EAAE,IAAI,EAAI,MAAM,EAAE,IAAI,CAAG,CAAC,EAEpE,IAAI,OAAS,OAAS,EAAI,IAAM,MAAQ,EAAI,IAAM,MAAM,OAAS,EAAI,IAAM,OAAO,OAAS,EAAI,GAC3F,OAAS,EACb,SAAS,WAAY,CAAE,gBAAiB,QAAU,OAAS,OAAS,KAAO,CAE3E,IAAI,KAAO,GAAG,MAAO,MAAM,EACvB,UAAY,KACZ,SAAW,KACX,aAAe,CAAC,EAGpB,GAAI,OAAQ,CACV,IAAI,GAAK,GAAG,MAAO,YAAY,EAC/B,GAAG,YAAY,GAAG,IAAK,WAAY,UAAU,CAAC,CAAC,EAC/C,GAAG,YAAY,GAAG,KAAM,KAAM,yBAAyB,CAAC,EACxD,GAAG,YAAY,GAAG,IAAK,aAAc,qFAAqF,CAAC,EAC3H,IAAI,IAAM,GAAG,MAAO,WAAW,EAC/B,OAAO,OAAO,QAAQ,SAAU,EAAG,CACjC,IAAI,EAAI,GAAG,SAAU,KAAM,EAAE,KAAK,EAClC,EAAE,KAAO,SACT,EAAE,aAAa,eAAgB,OAAO,EACtC,EAAE,iBAAiB,QAAS,UAAY,CACtC,IAAI,iBAAiB,QAAQ,EAAE,QAAQ,SAAU,EAAG,CAAE,EAAE,aAAa,eAAgB,OAAO,CAAG,CAAC,EAChG,EAAE,aAAa,eAAgB,MAAM,EACrC,UAAU,OAAO,IAAK,EAAE,KAAK,EAC7B,UAAY,SAAS,EAAE,MAAO,EAAE,GAAK,EACrC,aAAa,CACf,CAAC,EACD,IAAI,YAAY,CAAC,CACnB,CAAC,EACD,GAAG,YAAY,GAAG,EAClB,KAAK,YAAY,EAAE,EACnB,IAAI,SAAW,IAAI,cAAc,QAAQ,EACrC,WAAY,SAAS,aAAa,eAAgB,MAAM,EAAG,UAAU,OAAO,IAAK,OAAO,OAAO,CAAC,EAAE,KAAK,EAAG,UAAY,SAAS,OAAO,OAAO,CAAC,EAAE,MAAO,EAAE,GAAK,EACpK,CAGA,GAAI,MAAO,CACT,IAAI,GAAK,GAAG,MAAO,YAAY,EAC/B,GAAG,YAAY,GAAG,IAAK,WAAY,UAAU,CAAC,CAAC,EAC/C,GAAG,YAAY,GAAG,KAAM,KAAM,kBAAkB,CAAC,EACjD,GAAG,YAAY,GAAG,IAAK,aAAc,yEAAyE,CAAC,EAC/G,IAAI,MAAQ,GAAG,MAAO,aAAa,EACnC,MAAM,OAAO,QAAQ,SAAU,EAAG,EAAG,CACnC,IAAI,EAAI,GAAG,SAAU,YAAY,EACjC,EAAE,KAAO,SACT,EAAE,aAAa,eAAgB,OAAO,EACtC,IAAI,IAAM,GAAG,OAAQ,eAAe,EACpC,IAAI,YAAY,GAAG,OAAQ,iBAAkB,EAAE,KAAK,CAAC,EACrD,IAAI,YAAY,GAAG,OAAQ,gBAAiB,EAAE,MAAQ,IAAM,MAAM,EAAE,KAAK,EAAI,UAAU,CAAC,EACxF,EAAE,YAAY,GAAG,EACjB,IAAI,IAAM,SAAS,EAAE,KAAK,EACtB,KAAK,EAAE,YAAY,GAAG,OAAQ,gBAAiB,GAAG,CAAC,EACvD,EAAE,iBAAiB,QAAS,UAAY,CACtC,MAAM,iBAAiB,QAAQ,EAAE,QAAQ,SAAU,EAAG,CAAE,EAAE,aAAa,eAAgB,OAAO,CAAG,CAAC,EAClG,EAAE,aAAa,eAAgB,MAAM,EACrC,SAAW,EACX,UAAU,MAAM,IAAK,EAAE,KAAK,EAC5B,MAAM,CACR,CAAC,EACD,MAAM,YAAY,CAAC,EACf,IAAM,IAAK,EAAE,aAAa,eAAgB,MAAM,EAAG,SAAW,EACpE,CAAC,EACD,GAAG,YAAY,KAAK,EACpB,KAAK,YAAY,EAAE,EACf,UAAU,UAAU,MAAM,IAAK,SAAS,KAAK,CACnD,CAGA,GAAI,MAAM,OAAQ,CAChB,IAAI,GAAK,GAAG,MAAO,YAAY,EAC/B,GAAG,YAAY,GAAG,IAAK,WAAY,UAAU,CAAC,CAAC,EAC/C,GAAG,YAAY,GAAG,KAAM,KAAM,0BAA0B,CAAC,EACzD,GAAG,YAAY,GAAG,IAAK,aAAc,2EAA2E,CAAC,EACjH,IAAI,OAAS,CAAE,MAAO,uBAAwB,OAAQ,gBAAiB,KAAM,gCAAiC,EAC9G,MAAM,QAAQ,SAAU,EAAG,CACzB,IAAI,EAAI,GAAG,MAAO,aAAa,EAC3B,IAAM,GAAG,QAAS,KAAM,OAAO,EAAE,IAAI,EAAI,GAAG,EAC5C,OAAS,EAAE,OAAS,QAAU,EAAE,OAAO,KAAK,SAAU,EAAG,CAAE,MAAO,mBAAmB,KAAK,EAAE,KAAK,CAAG,CAAC,EACzG,IAAI,YAAY,GAAG,OAAQ,YAAa,OAAS,iBAAmB,OAAO,EAAE,IAAI,CAAC,CAAC,EACnF,IAAI,IAAM,GAAG,QAAQ,EACrB,IAAI,YAAY,IAAI,OAAO,sBAAuB,EAAE,CAAC,EACrD,EAAE,OAAO,QAAQ,SAAU,EAAG,CAC5B,IAAI,YAAY,IAAI,OAAO,EAAE,OAAS,EAAE,MAAQ,MAAQ,MAAM,EAAE,KAAK,EAAI,IAAM,IAAK,EAAE,KAAK,CAAC,CAC9F,CAAC,EACD,IAAI,MAAQ,EAAE,IAAI,OAAS,GAC3B,IAAI,iBAAiB,SAAU,UAAY,CACzC,UAAU,EAAE,IAAK,IAAI,KAAK,EAC1B,EAAE,UAAU,OAAO,uBAAwB,CAAC,IAAI,KAAK,EACrD,MAAM,CACR,CAAC,EACD,IAAI,aAAa,MAAO,QAAU,EAAE,IAAI,EAAE,EAC1C,IAAI,GAAK,QAAU,EAAE,IAAI,GACzB,EAAE,YAAY,GAAG,EAAG,EAAE,YAAY,GAAG,EACrC,GAAG,YAAY,CAAC,EAChB,aAAa,KAAK,CAAE,EAAG,EAAG,IAAK,IAAK,MAAO,CAAE,CAAC,CAChD,CAAC,EACD,KAAK,YAAY,EAAE,CACrB,CAGA,IAAI,GAAK,GAAG,MAAO,YAAY,EAC/B,GAAG,YAAY,GAAG,IAAK,WAAY,EAAE,CAAC,EACtC,GAAG,YAAY,GAAG,KAAM,KAAM,gBAAgB,CAAC,EAC/C,IAAI,MAAQ,GAAG,IAAK,aAAc,EAAE,EACpC,GAAG,YAAY,KAAK,EACpB,IAAI,SAAW,GAAG,MAAO,YAAY,EAKrC,GAJA,GAAG,YAAY,QAAQ,EACnB,OAAO,SAAU,GAAG,WAAW,YAAc,UAAU,EAAG,KAAK,YAAY,EAAE,GAG7E,OAAO,OAAQ,CACjB,IAAI,GAAK,GAAG,MAAO,YAAY,EAC/B,GAAG,YAAY,GAAG,KAAM,KAAM,eAAe,CAAC,EAC9C,OAAO,QAAQ,SAAU,EAAG,CAC1B,IAAI,EAAI,GAAG,MAAO,aAAa,EAC3B,IAAM,GAAG,QAAS,KAAM,EAAE,KAAK,EAC/B,IAAM,GAAG,QAAQ,EACrB,IAAI,YAAY,IAAI,OAAO,sBAAuB,EAAE,CAAC,EACrD,EAAE,OAAO,QAAQ,SAAU,EAAG,CAAE,IAAI,YAAY,IAAI,OAAO,EAAE,IAAK,EAAE,KAAK,CAAC,CAAG,CAAC,EAC9E,IAAI,MAAQ,EAAE,IAAI,MAClB,IAAI,iBAAiB,SAAU,UAAY,CAAE,UAAU,EAAE,IAAK,IAAI,KAAK,EAAG,EAAE,UAAU,OAAO,uBAAwB,CAAC,IAAI,KAAK,EAAG,MAAM,CAAG,CAAC,EAC5I,EAAE,YAAY,GAAG,EAAG,EAAE,YAAY,GAAG,EACrC,GAAG,YAAY,CAAC,EACZ,EAAE,UAAU,aAAa,KAAK,CAAE,EAAG,EAAG,IAAK,IAAK,MAAO,CAAE,CAAC,CAChE,CAAC,EACD,KAAK,YAAY,EAAE,CACrB,CAGA,IAAI,KAAO,GAAG,MAAO,YAAY,EAC7B,OAAS,GAAG,MAAO,cAAc,EACjC,KAAO,GAAG,KAAK,EACnB,KAAK,YAAY,GAAG,MAAO,YAAa,UAAU,CAAC,EACnD,IAAI,MAAQ,GAAG,MAAO,YAAa,QAAG,EACtC,KAAK,YAAY,KAAK,EACtB,IAAI,IAAM,GAAG,MAAO,YAAa,UAAU,EAC3C,OAAO,YAAY,IAAI,EAAG,OAAO,YAAY,GAAG,EAChD,KAAK,YAAY,MAAM,EACvB,IAAI,IAAM,GAAG,IAAK,YAAa,EAAE,EACjC,KAAK,YAAY,GAAG,EACpB,KAAK,YAAY,IAAI,EAErB,IAAI,MAAQ,CAAC,EAEb,SAAS,cAAe,CACtB,SAAS,UAAY,GACjB,UACF,MAAM,YAAc,WAAa,EAC7B,+HACA,gIAEJ,MAAM,YAAc,oGAGtB,IAAI,OAAS,CAAE,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,CAAE,EACzC,OAAO,QAAQ,SAAU,EAAG,CAC1B,IAAI,IAAM,SAAS,EAAE,KAAK,EACtB,IAAM,IAAM,OAAO,GAAG,EAAI,KAC1B,KAAO,KAAQ,WAAa,IAAM,EAAI,IAAI,GAAK,IAAI,GAAM,MAC7D,OAAO,IAAI,EAAE,KAAK,CAAE,EAAG,EAAG,IAAK,IAAK,KAAM,IAAK,CAAC,CAClD,CAAC,EAED,CAAC,MAAO,MAAO,KAAK,EAAE,QAAQ,SAAU,KAAM,CAC5C,OAAO,IAAI,EAAE,QAAQ,SAAU,KAAM,CACnC,IAAI,EAAI,KAAK,EAAG,IAAM,KAAK,IACvB,GAAK,UAAU,CAAC,EACpB,GAAK,GAAG,OAER,KAAI,IAAM,GAAG,MAAO,WAAW,EAC3B,GAAK,SAAS,cAAc,OAAO,EACvC,GAAG,KAAO,WACV,GAAG,GAAK,WAAa,EAAE,IAAI,GAC3B,GAAG,QAAU,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAE7B,IAAI,KAAO,GAAG,MAAO,YAAY,EAC7B,IAAM,GAAG,QAAS,KAAM,EAAE,MAAM,QAAQ,WAAY,EAAE,EAAE,QAAQ,SAAU,EAAE,CAAC,EACjF,IAAI,aAAa,MAAO,GAAG,EAAE,EAC7B,KAAK,YAAY,GAAG,EAEpB,IAAI,OAAS,MAAS,WAAa,IAAM,EAAI,IAAI,KAAO,IAAI,OAAS,IAAI,IAAO,GAC5E,QAAQ,KAAK,YAAY,GAAG,IAAK,YAAa,MAAM,CAAC,EAEzD,IAAI,KAAO,GAAG,OAAQ,0BAA4B,KAChD,OAAS,MAAQ,aAAe,UAAY,QAAW,OAAS,MAAQ,cAAgB,UAAW,EAGrG,GAFA,KAAK,YAAY,IAAI,EAEjB,GAAG,OAAS,EAAG,CACjB,IAAI,QAAU,GAAG,MAAO,eAAe,EACnC,QAAU,GAAG,QAAQ,EACzB,GAAG,QAAQ,SAAU,EAAG,EAAG,CAAE,QAAQ,YAAY,IAAI,OAAO,YAAY,EAAE,KAAK,EAAI,WAAQ,MAAM,EAAE,KAAK,EAAG,OAAO,CAAC,CAAC,CAAC,CAAG,CAAC,EACzH,QAAQ,MAAQ,OAAO,MAAM,EAAE,IAAI,GAAK,OAAO,GAAK,CAAC,EACrD,QAAQ,iBAAiB,SAAU,UAAY,CAC7C,MAAM,EAAE,IAAI,GAAK,OAAO,EAAI,CAAC,QAAQ,MACrC,MAAM,CACR,CAAC,EACD,QAAQ,YAAY,OAAO,EAC3B,KAAK,YAAY,OAAO,CAC1B,CAEA,IAAI,IAAM,GAAG,MAAO,YAAa,MAAM,GAAG,MAAM,EAAE,IAAI,GAAK,OAAO,GAAK,CAAC,EAAE,KAAK,CAAC,EAChF,EAAE,QAAU,IAEZ,GAAG,iBAAiB,SAAU,UAAY,CACxC,MAAM,EAAE,IAAI,EAAE,EAAI,GAAG,QACrB,MAAM,CACR,CAAC,EAED,IAAI,YAAY,EAAE,EAAG,IAAI,YAAY,IAAI,EAAG,IAAI,YAAY,GAAG,EAC/D,SAAS,YAAY,GAAG,EAC1B,CAAC,CACH,CAAC,EACD,MAAM,CACR,CAEA,SAAS,OAAQ,CACf,IAAI,MAAQ,WAAa,EAAG,EAAI,EAC5B,WAAU,OAAS,SAAS,OAChC,aAAa,QAAQ,SAAU,EAAG,CAChC,IAAI,EAAI,EAAE,EAAE,OAAO,OAAO,SAAU,EAAG,CAAE,OAAO,EAAE,QAAU,EAAE,IAAI,KAAO,CAAC,EAAE,CAAC,EACzE,IAAG,OAAS,EAAE,MACpB,CAAC,EACD,OAAO,QAAQ,SAAU,EAAG,CAC1B,IAAI,GAAK,UAAU,CAAC,EAAG,GAAK,cAAc,CAAC,EACvC,KAAO,GAAG,MAAM,EAAE,IAAI,GAAK,OAAO,GAAK,CAAC,EACxC,EAAE,SAAW,OAAM,EAAE,QAAQ,YAAc,MAAM,KAAK,KAAK,GAC3D,MAAM,EAAE,IAAI,EAAE,GAAK,MAAQ,UAAU,EAAE,IAAK,KAAK,KAAK,EAAG,OAAS,KAAK,MAAO,KACzE,IAAI,UAAU,EAAE,IAAK,EAAE,CAClC,CAAC,EACD,MAAM,YAAc,UAAY,MAAM,KAAK,EAAI,SAC/C,IAAI,YAAc,IAAM,EAAI,WAAa,SAAW,GAAK,IAAM,EAAI,SAAW,WAC9E,IAAIA,MAAO,aAAa,OAAO,SAAU,EAAG,CAAE,MAAO,CAAC,EAAE,IAAI,KAAO,CAAC,EAAE,OACtE,IAAI,UAAY,YAChB,IAAI,YAAcA,MAAOA,OAAQA,QAAS,EAAI,YAAc,cAAgB,gDAAkD,EAChI,CAGA,IAAI,KAAO,UAAU,QAAQ,MAAM,EACnC,SAAS,MAAM,EAAG,CAChB,IAAI,QAAU,aAAa,OAAO,SAAU,EAAG,CAAE,MAAO,CAAC,EAAE,IAAI,KAAO,CAAC,EAClE,QAAQ,SACb,EAAE,eAAe,EACjB,EAAE,yBAAyB,EAC3B,QAAQ,QAAQ,SAAU,EAAG,CAAE,EAAE,MAAM,UAAU,IAAI,sBAAsB,CAAG,CAAC,EAC/E,IAAI,UAAY,2BAChB,IAAI,YAAc,sBAAwB,QAAQ,SAAW,EAAI,WAAa,QAAQ,OAAS,cAAgB,wBAC/G,QAAQ,CAAC,EAAE,IAAI,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,eAAe,CAAE,SAAU,SAAU,MAAO,QAAS,CAAC,EACzE,CACA,OAAI,OACF,KAAK,iBAAiB,SAAU,MAAO,EAAI,EAC3C,KAAK,iBAAiB,qCAAqC,EAAE,QAAQ,SAAU,EAAG,CAAE,EAAE,iBAAiB,QAAS,MAAO,EAAI,CAAG,CAAC,GAGjI,UAAU,WAAW,aAAa,KAAM,SAAS,EACjD,UAAU,UAAU,IAAI,aAAa,EACrC,aAAa,EAEb,MAAM,aAAe,OAAS,MAAO,CAAE,YAAa,aAAc,CAAC,EAChE,KAAK,SAAU,EAAG,CAAE,GAAI,CAAC,EAAE,GAAI,MAAM,IAAI,MAAM,EAAE,MAAM,EAAG,OAAO,EAAE,KAAK,CAAG,CAAC,EAC5E,KAAK,SAAU,EAAG,CAAE,WAAa,EAAE,OAAS,GAAK,IAAK,MAAM,CAAG,CAAC,EAChE,MAAM,UAAY,CACjB,IAAI,GAAK,UAAU,EACf,KAAM,UAAY,GAAI,MAAM,EAClC,CAAC,EAEI,EACT,CAIA,IAAI,IAAM,suHAgDV,SAAS,WAAY,CACnB,GAAI,UAAS,eAAe,UAAU,EACtC,KAAI,EAAI,SAAS,cAAc,OAAO,EACtC,EAAE,GAAK,WACP,EAAE,YAAc,IAChB,SAAS,KAAK,YAAY,CAAC,EAC7B,CAIA,IAAI,MAAQ,EACZ,SAAS,SAAU,CACjB,IAAI,EAAI,SAAS,cAAc,mBAAmB,EAClD,GAAI,GAAK,EAAE,cAAc,mBAAmB,EAAG,CAC7C,GAAI,CACF,UAAU,EACL,MAAM,CAAC,GAAG,EAAE,UAAU,OAAO,aAAa,CACjD,OAAS,EAAG,CACV,EAAE,UAAU,OAAO,aAAa,EAC5B,OAAO,SAAS,QAAQ,IAAI,qBAAsB,CAAC,CACzD,CACA,MACF,CACI,EAAE,MAAQ,IAAI,WAAW,QAAS,GAAG,CAC3C,CACI,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoB,OAAO,EACvF,QAAQ,CACf,GAAG",
  "names": ["left"]
}
