{
  "version": 3,
  "sources": ["/cdn/shop/t/2/assets/kattfontan.js?x=7481"],
  "sourcesContent": ["/* Kattfont\u00E4n: buy box, gallery, voices filter, smooth scroll, sticky CTA. */\r\n(function () {\r\n  var RM = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches, SM = RM ? 'auto' : 'smooth';\r\n  'use strict';\r\n\r\n  // ---- smooth scroll to anchors ----\r\n  document.addEventListener('click', function (e) {\r\n    var a = e.target.closest('[data-rp-scroll]');\r\n    if (!a) return;\r\n    var href = a.getAttribute('href') || '';\r\n    if (href.charAt(0) !== '#') return;\r\n    var t = document.querySelector(href);\r\n    if (!t) return;\r\n    // A CTA (not the band itself) aimed at the buy box lands on the Black Friday band above it, so the offer shows.\r\n    if (t.id === 'rp-buy' && !a.closest('[data-rp-promo]')) {\r\n      var promo = document.querySelector('[data-rp-promo]');\r\n      if (promo && promo.getBoundingClientRect().top + window.scrollY < t.getBoundingClientRect().top + window.scrollY) t = promo;\r\n    }\r\n    e.preventDefault();\r\n    document.documentElement.classList.add('rp-cv-off');   // real heights, so the jump lands exactly\r\n    // clear only a header that actually stays fixed at the top; otherwise sit near the very top\r\n    var off = 12;\r\n    document.querySelectorAll('header, [class*=\"header\"], sticky-header').forEach(function (h) {\r\n      var cs = getComputedStyle(h), r = h.getBoundingClientRect();\r\n      if ((cs.position === 'fixed' || cs.position === 'sticky') && r.top <= 1 && r.height > 10 && r.height < 160) off = Math.max(off, r.height + 6);\r\n    });\r\n    var y = t.getBoundingClientRect().top + window.scrollY - off;\r\n    window.scrollTo({ top: y, behavior: SM });\r\n  });\r\n\r\n  // (Revipets g\u00E5vosynk f\u00F6r strumpor/protokoll borttagen 10 nov: Kattfont\u00E4n har inga g\u00E5vor, och synken\r\n  //  skrev om varje varukorgs\u00E4ndring till variant-id 0, vilket gav \"n\u00E5got gick fel\" och gick inte att ta bort.)\r\n\r\n  // ---- gallery: native swipe track (finger-following, snaps, slides on thumb/arrow) ----\r\n  document.querySelectorAll('[data-rp-gal]').forEach(function (g) {\r\n    var track = g.querySelector('[data-track]'); if (!track) return;\r\n    var imgs = track.querySelectorAll('img'), thumbs = g.querySelectorAll('.rp-gal__thumb');\r\n    var count = g.querySelector('[data-count]'), n = imgs.length, i = 0, tick = false, near = false;\r\n    if (n < 2) g.querySelectorAll('.rp-gal__arrow').forEach(function (b) { b.hidden = true; });\r\n    if (!n) { if (count) count.hidden = true; return; }\r\n    function mark(k) {\r\n      i = k;\r\n      thumbs.forEach(function (t, j) { t.setAttribute('aria-current', j === i ? 'true' : 'false'); });\r\n      if (count) count.textContent = (i + 1) + ' / ' + n;\r\n      var th = thumbs[i]; if (th) th.parentNode.scrollTo({ left: th.offsetLeft - 20, behavior: SM });\r\n      if (near) [i - 1, i, i + 1].forEach(function (j) { if (imgs[j]) imgs[j].loading = 'eager'; });\r\n    }\r\n    function go(k) { k = Math.max(0, Math.min(n - 1, k)); track.scrollTo({ left: k * track.clientWidth, behavior: SM }); }\r\n    track.addEventListener('scroll', function () {\r\n      if (tick) return; tick = true;\r\n      requestAnimationFrame(function () { tick = false; var k = Math.round(track.scrollLeft / track.clientWidth); if (k !== i) mark(k); });\r\n    }, { passive: true });\r\n    g.addEventListener('click', function (e) {\r\n      var ar = e.target.closest('.rp-gal__arrow'); if (ar) return go(i + parseInt(ar.dataset.dir, 10));\r\n      var th = e.target.closest('.rp-gal__thumb'); if (th) return go(parseInt(th.dataset.i, 10));\r\n    });\r\n    mark(0);\r\n    // the rest of the gallery downloads only once the reader gets near it\r\n    if ('IntersectionObserver' in window) { var go2 = new IntersectionObserver(function (es) { if (es[0].isIntersecting) { near = true; imgs.forEach(function (im) { im.loading = 'eager'; }); go2.disconnect(); } }, { rootMargin: '800px 0px' }); go2.observe(g); }\r\n  });\r\n\r\n  // ---- buy box ----\r\n  document.querySelectorAll('[data-rp-buy]').forEach(function (box) {\r\n    var offers = box.querySelectorAll('.rp-offer, .rp-tile');\r\n    var label = box.querySelector('[data-rp-atc-label]');\r\n    var btn = box.querySelector('[data-rp-atc]');\r\n    var err = box.querySelector('[data-rp-err]');\r\n    var base = label ? label.textContent : '';\r\n    function current() { return box.querySelector('.rp-offer.is-on, .rp-tile.is-on') || offers[0]; }\r\n    function pick(o) {\r\n      offers.forEach(function (x) { x.classList.toggle('is-on', x === o); var r = x.querySelector('input'); if (r) r.checked = x === o; });\r\n      if (label) label.textContent = o.dataset.label || base;\r\n    }\r\n    offers.forEach(function (o) { o.addEventListener('click', function (e) { e.preventDefault(); pick(o); }); });\r\n    if (current()) pick(current());\r\n    if (!btn) return;\r\n    btn.addEventListener('click', function () {\r\n      var o = current(); if (!o) return;\r\n      var updates = {};\r\n      if (o.dataset.variant) {   // paketprodukter: bara det valda paketet, de andra nollas\r\n        offers.forEach(function (x) { if (x.dataset.variant) updates[x.dataset.variant] = 0; });\r\n        updates[o.dataset.variant] = 1;\r\n      } else {\r\n      updates[box.dataset.pad] = parseInt(o.dataset.qty, 10) || 1;\r\n      if (box.dataset.wrap) updates[box.dataset.wrap] = o.dataset.wrap === '1' ? 1 : 0;\r\n      if (box.__rpGifts) { Object.keys(box.__rpGifts).forEach(function (id) { updates[id] = box.__rpGifts[id]; }); }   // one pair of fitted socks per pad\r\n      else if (box.dataset.gift) updates[box.dataset.gift] = 1;\r\n      }\r\n      btn.disabled = true; btn.classList.add('is-busy'); if (err) err.hidden = true;\r\n      var lab = btn.querySelector('[data-rp-atc-label]'); if (lab) { lab.dataset.prev = lab.textContent; lab.textContent = 'L\u00E4gger i varukorgen\u2026'; }\r\n      fetch((window.Shopify && Shopify.routes ? Shopify.routes.root : '/') + 'cart/update.js', {\r\n        method: 'POST', headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\r\n        body: JSON.stringify({ updates: updates, attributes: { offer: (o.querySelector('.rp-offer__t, .rp-tile__t') || {}).textContent || '' } })\r\n      }).then(function (r) { if (!r.ok) throw r; return r.json(); })\r\n        .then(function () { return fetch((window.Shopify && Shopify.routes ? Shopify.routes.root : '/') + '?sections=cart-drawer,cart-icon-bubble').then(function (r) { return r.json(); }); })\r\n        .then(function (sec) {\r\n          var drawer = document.querySelector('cart-drawer');\r\n          if (!drawer || !drawer.open) { window.location.href = '/cart'; return; }\r\n          var doc = new DOMParser().parseFromString(sec['cart-drawer'], 'text/html'), fresh = doc.querySelector('cart-drawer');\r\n          if (fresh) { drawer.className = fresh.className; drawer.innerHTML = fresh.innerHTML; var ov = drawer.querySelector('#CartDrawer-Overlay'); if (ov) ov.addEventListener('click', function () { drawer.close(); }); }\r\n          var bub = document.getElementById('cart-icon-bubble');\r\n          if (bub && sec['cart-icon-bubble']) { var nb = new DOMParser().parseFromString(sec['cart-icon-bubble'], 'text/html').querySelector('.shopify-section'); if (nb) bub.innerHTML = nb.innerHTML; }\r\n          var hd = drawer.querySelector('.drawer__header h2, .drawer__heading'); if (hd) hd.textContent = 'Tillagd i varukorgen';\r\n          drawer.open();\r\n          btn.disabled = false; btn.classList.remove('is-busy'); if (lab && lab.dataset.prev) lab.textContent = lab.dataset.prev;\r\n        })\r\n        .catch(function () { btn.disabled = false; btn.classList.remove('is-busy'); if (lab && lab.dataset.prev) lab.textContent = lab.dataset.prev; if (err) err.hidden = false; });\r\n    });\r\n  });\r\n\r\n  // ---- voices filter ----\r\n  document.querySelectorAll('[data-rp-voices]').forEach(function (sec) {\r\n    var tabs = sec.querySelectorAll('.rp-tab');\r\n    var cards = sec.querySelectorAll('.rp-voice');\r\n    tabs.forEach(function (t) {\r\n      // no \"All\" button: tap a tab to filter, tap it again to show every review\r\n      t.addEventListener('click', function () {\r\n        var on = t.getAttribute('aria-pressed') !== 'true';\r\n        tabs.forEach(function (x) { x.setAttribute('aria-pressed', x === t && on ? 'true' : 'false'); });\r\n        var tag = on ? t.dataset.tag : 'all';\r\n        cards.forEach(function (c) { c.hidden = !(tag === 'all' || c.dataset.tag === tag); });\r\n      });\r\n    });\r\n  });\r\n\r\n  // ---- sticky CTA: show from the 3rd reason (listicle), hide while the buy box is on screen ----\r\n  var sticky = document.querySelector('[data-rp-sticky]');\r\n  if (sticky && 'IntersectionObserver' in window) {\r\n    var hero = document.querySelector('.rp-hero'), buy = document.querySelector('#rp-buy');\r\n    var pastHero = false, inBuy = false;\r\n    function upd() { sticky.classList.toggle('is-on', pastHero && !inBuy); }\r\n    // listicle: appear once the reader reaches the 4th reason; other pages: once past the hero\r\n    var third = document.querySelectorAll('.rp-reasons__list > .rp-reason')[3];\r\n    if (third) new IntersectionObserver(function (es) { pastHero = es[0].isIntersecting || es[0].boundingClientRect.top < 0; upd(); }, { rootMargin: '0px 0px -40% 0px' }).observe(third);\r\n    else if (hero) new IntersectionObserver(function (es) { pastHero = !es[0].isIntersecting && es[0].boundingClientRect.top < 0; upd(); }).observe(hero);\r\n    else { pastHero = true; upd(); }\r\n    if (buy) new IntersectionObserver(function (es) { inBuy = es[0].isIntersecting; upd(); }, { rootMargin: '0px 0px -30% 0px' }).observe(buy);\r\n  }\r\n\r\n  // ---- videos: fetch only when near the screen, play on screen, pause off screen. Nothing loads for reduced motion ----\r\n  if ('IntersectionObserver' in window && !RM) {\r\n    var vo = new IntersectionObserver(function (es) {\r\n      es.forEach(function (e) {\r\n        var v = e.target;\r\n        if (e.isIntersecting) {\r\n          if (!v.src) { v.src = v.dataset.src; v.addEventListener('playing', function () { v.classList.add('is-on'); }, { once: true }); }\r\n          var pr = v.play(); if (pr && pr.catch) pr.catch(function () {});\r\n        } else if (v.src) v.pause();\r\n      });\r\n    }, { rootMargin: '300px 0px' });\r\n    var startV = function () { document.querySelectorAll('video.rp-lazyv').forEach(function (v) { vo.observe(v); }); };\r\n    if (document.readyState === 'complete') setTimeout(startV, 300); else window.addEventListener('load', function () { setTimeout(startV, 300); });\r\n  }\r\n\r\n  // ---- purposeful motion: reveal, tick, fill, pulse (see the CSS block for each role) ----\r\n  if ('IntersectionObserver' in window && !window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\r\n    // scroll reveals switched off (user: distracting). Content is simply there; the countdown tick is the only motion.\r\n    return;\r\n    var seen = new IntersectionObserver(function (es) {\r\n      es.forEach(function (e) {\r\n        if (!e.isIntersecting) return;\r\n        e.target.classList.add('is-in'); seen.unobserve(e.target);\r\n        if (e.target.matches('[data-rp-buy]')) { var btn = e.target.querySelector('[data-rp-atc]'); if (btn) btn.classList.add('rp-pulse'); }\r\n      });\r\n    }, { threshold: 0.25 });\r\n    document.querySelectorAll('.rp-reason, .rp-layers, .rp-hero .rp-checks, .rp-proof__bar, .rp-stock__bar, [data-rp-buy]').forEach(function (el) { seen.observe(el); });\r\n  }\r\n\r\n  // ---- personal plan line: the symptom check's answers become \"your plan\" in the buy box ----\r\n  function rpPlan() {\r\n    var el = document.querySelector('[data-rp-plan]'); if (!el) return;\r\n    var signs = []; try { signs = JSON.parse(sessionStorage.getItem('rpSigns') || '[]'); } catch (e) {}\r\n    if (!signs.length) { el.hidden = true; return; }\r\n    var s = signs.join(' ').toLowerCase(), area = 'hips', mins = '15 minutes';\r\n    if (/back|lies down/.test(s) && !/stairs|floor|getting up|naps/.test(s)) area = 'lower back';\r\n    if (/lags|walks/.test(s) && signs.length === 1) { area = 'shoulders'; mins = '10 minutes'; }\r\n    el.innerHTML = '<b>Your plan for him:</b> ' + area + ', ' + mins + ', twice a day. Based on the ' + signs.length + ' sign' + (signs.length > 1 ? 's' : '') + ' you tapped.';\r\n    el.hidden = false;\r\n  }\r\n  document.addEventListener('rp:signs', rpPlan); rpPlan();\r\n})();\r\n\r\n\r\n/* Cart drawer: real savings percent on the \"You save\" line. Reads the drawer only, never touches the cart. */\r\n(function () {\r\n  function money(el) { return el ? parseFloat(el.textContent.replace(/[^0-9.]/g, '')) || 0 : 0; }\r\n  function sync() {\r\n    var head = document.querySelector('#CartDrawer .drawer__heading');\r\n    if (head && document.querySelector('#CartDrawer .cart-drawer-item') && head.textContent.trim() !== 'Tillagd i varukorgen') head.textContent = 'Tillagd i varukorgen';\r\n    var row = document.querySelector('#CartDrawer .cart-drawer__totals__row.text-color-accent-1');\r\n    if (!row) return;\r\n    var label = row.querySelector('strong');\r\n    if (!label || label.textContent.indexOf('%') !== -1) return;\r\n    var saved = money(row.querySelector('.cart-drawer__totals__row__money'));\r\n    var total = money(document.querySelector('#CartDrawer .cart-drawer__totals__row.text-color-text .cart-drawer__totals__row__money'));\r\n    if (saved > 0) label.textContent = label.textContent + ' \\u00b7 ' + Math.round(saved / (saved + total) * 100) + ' % rabatt';\r\n  }\r\n  function watch() {\r\n    var d = document.querySelector('cart-drawer'); if (!d) return;\r\n    new MutationObserver(function () { requestAnimationFrame(sync); }).observe(d, { childList: true, subtree: true });\r\n    sync();\r\n  }\r\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', watch); else watch();\r\n})();\r\n\r\n/* Materialv\u00E4ljare i k\u00F6prutan: visar paketen f\u00F6r valt material och beh\u00E5ller samma paketstorlek.\r\n   Delegerat p\u00E5 document eftersom k\u00F6prutan ritas om efter laddning. */\r\ndocument.addEventListener('click', function (e) {\r\n  var btn = e.target.closest && e.target.closest('[data-rp-group]'); if (!btn) return;\r\n  var wrap = btn.closest('[data-rp-groups]'); var box = btn.closest('[data-rp-buy]') || document;\r\n  var g = btn.dataset.rpGroup;\r\n  wrap.querySelectorAll('[data-rp-group]').forEach(function (x) { var on = x === btn; x.classList.toggle('is-on', on); x.setAttribute('aria-pressed', on); });\r\n  var tiles = [].slice.call(box.querySelectorAll('.rp-tile[data-group]'));\r\n  var aktiv = tiles.filter(function (x) { return x.classList.contains('is-on'); })[0];\r\n  var idx = aktiv ? tiles.filter(function (x) { return x.dataset.group === aktiv.dataset.group; }).indexOf(aktiv) : 0;\r\n  tiles.forEach(function (x) { x.hidden = x.dataset.group !== g; });\r\n  var nya = tiles.filter(function (x) { return x.dataset.group === g; });\r\n  var mal = nya[Math.max(0, Math.min(idx, nya.length - 1))];\r\n  if (mal) { var inp = mal.querySelector('input'); if (inp) inp.click(); else mal.click(); }\r\n});\r\n"],
  "mappings": "CACC,UAAY,CACX,IAAI,GAAK,OAAO,YAAc,OAAO,WAAW,kCAAkC,EAAE,QAAS,GAAK,GAAK,OAAS,SAIhH,SAAS,iBAAiB,QAAS,SAAU,EAAG,CAC9C,IAAI,EAAI,EAAE,OAAO,QAAQ,kBAAkB,EAC3C,GAAK,EACL,KAAI,KAAO,EAAE,aAAa,MAAM,GAAK,GACrC,GAAI,KAAK,OAAO,CAAC,IAAM,IACvB,KAAI,EAAI,SAAS,cAAc,IAAI,EACnC,GAAK,EAEL,IAAI,EAAE,KAAO,UAAY,CAAC,EAAE,QAAQ,iBAAiB,EAAG,CACtD,IAAI,MAAQ,SAAS,cAAc,iBAAiB,EAChD,OAAS,MAAM,sBAAsB,EAAE,IAAM,OAAO,QAAU,EAAE,sBAAsB,EAAE,IAAM,OAAO,UAAS,EAAI,MACxH,CACA,EAAE,eAAe,EACjB,SAAS,gBAAgB,UAAU,IAAI,WAAW,EAElD,IAAI,IAAM,GACV,SAAS,iBAAiB,0CAA0C,EAAE,QAAQ,SAAU,EAAG,CACzF,IAAI,GAAK,iBAAiB,CAAC,EAAG,EAAI,EAAE,sBAAsB,GACrD,GAAG,WAAa,SAAW,GAAG,WAAa,WAAa,EAAE,KAAO,GAAK,EAAE,OAAS,IAAM,EAAE,OAAS,MAAK,IAAM,KAAK,IAAI,IAAK,EAAE,OAAS,CAAC,EAC9I,CAAC,EACD,IAAI,EAAI,EAAE,sBAAsB,EAAE,IAAM,OAAO,QAAU,IACzD,OAAO,SAAS,CAAE,IAAK,EAAG,SAAU,EAAG,CAAC,IAC1C,CAAC,EAMD,SAAS,iBAAiB,eAAe,EAAE,QAAQ,SAAU,EAAG,CAC9D,IAAI,MAAQ,EAAE,cAAc,cAAc,EAAG,GAAI,CAAC,MAAO,OACzD,IAAI,KAAO,MAAM,iBAAiB,KAAK,EAAG,OAAS,EAAE,iBAAiB,gBAAgB,EAClF,MAAQ,EAAE,cAAc,cAAc,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,KAAO,GAAO,KAAO,GAE1F,GADI,EAAI,GAAG,EAAE,iBAAiB,gBAAgB,EAAE,QAAQ,SAAU,EAAG,CAAE,EAAE,OAAS,EAAM,CAAC,EACrF,CAAC,EAAG,CAAM,QAAO,MAAM,OAAS,IAAM,MAAQ,CAClD,SAAS,KAAK,EAAG,CACf,EAAI,EACJ,OAAO,QAAQ,SAAU,EAAG,EAAG,CAAE,EAAE,aAAa,eAAgB,IAAM,EAAI,OAAS,OAAO,CAAG,CAAC,EAC1F,QAAO,MAAM,YAAe,EAAI,EAAK,MAAQ,GACjD,IAAI,GAAK,OAAO,CAAC,EAAO,IAAI,GAAG,WAAW,SAAS,CAAE,KAAM,GAAG,WAAa,GAAI,SAAU,EAAG,CAAC,EACzF,MAAM,CAAC,EAAI,EAAG,EAAG,EAAI,CAAC,EAAE,QAAQ,SAAU,EAAG,CAAM,KAAK,CAAC,IAAG,KAAK,CAAC,EAAE,QAAU,QAAS,CAAC,CAC9F,CACA,SAAS,GAAG,EAAG,CAAE,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAI,EAAG,CAAC,CAAC,EAAG,MAAM,SAAS,CAAE,KAAM,EAAI,MAAM,YAAa,SAAU,EAAG,CAAC,CAAG,CAWrH,GAVA,MAAM,iBAAiB,SAAU,UAAY,CACvC,OAAc,KAAO,GACzB,sBAAsB,UAAY,CAAE,KAAO,GAAO,IAAI,EAAI,KAAK,MAAM,MAAM,WAAa,MAAM,WAAW,EAAO,IAAM,GAAG,KAAK,CAAC,CAAG,CAAC,EACrI,EAAG,CAAE,QAAS,EAAK,CAAC,EACpB,EAAE,iBAAiB,QAAS,SAAU,EAAG,CACvC,IAAI,GAAK,EAAE,OAAO,QAAQ,gBAAgB,EAAG,GAAI,GAAI,OAAO,GAAG,EAAI,SAAS,GAAG,QAAQ,IAAK,EAAE,CAAC,EAC/F,IAAI,GAAK,EAAE,OAAO,QAAQ,gBAAgB,EAAG,GAAI,GAAI,OAAO,GAAG,SAAS,GAAG,QAAQ,EAAG,EAAE,CAAC,CAC3F,CAAC,EACD,KAAK,CAAC,EAEF,yBAA0B,OAAQ,CAAE,IAAI,IAAM,IAAI,qBAAqB,SAAU,GAAI,CAAM,GAAG,CAAC,EAAE,iBAAkB,KAAO,GAAM,KAAK,QAAQ,SAAU,GAAI,CAAE,GAAG,QAAU,OAAS,CAAC,EAAG,IAAI,WAAW,EAAK,EAAG,CAAE,WAAY,WAAY,CAAC,EAAG,IAAI,QAAQ,CAAC,CAAG,CAClQ,CAAC,EAGD,SAAS,iBAAiB,eAAe,EAAE,QAAQ,SAAU,IAAK,CAChE,IAAI,OAAS,IAAI,iBAAiB,qBAAqB,EACnD,MAAQ,IAAI,cAAc,qBAAqB,EAC/C,IAAM,IAAI,cAAc,eAAe,EACvC,IAAM,IAAI,cAAc,eAAe,EACvC,KAAO,MAAQ,MAAM,YAAc,GACvC,SAAS,SAAU,CAAE,OAAO,IAAI,cAAc,iCAAiC,GAAK,OAAO,CAAC,CAAG,CAC/F,SAAS,KAAK,EAAG,CACf,OAAO,QAAQ,SAAU,EAAG,CAAE,EAAE,UAAU,OAAO,QAAS,IAAM,CAAC,EAAG,IAAI,EAAI,EAAE,cAAc,OAAO,EAAO,IAAG,EAAE,QAAU,IAAM,EAAG,CAAC,EAC/H,QAAO,MAAM,YAAc,EAAE,QAAQ,OAAS,KACpD,CACA,OAAO,QAAQ,SAAU,EAAG,CAAE,EAAE,iBAAiB,QAAS,SAAU,EAAG,CAAE,EAAE,eAAe,EAAG,KAAK,CAAC,CAAG,CAAC,CAAG,CAAC,EACvG,QAAQ,GAAG,KAAK,QAAQ,CAAC,EACxB,KACL,IAAI,iBAAiB,QAAS,UAAY,CACxC,IAAI,EAAI,QAAQ,EAAG,GAAK,EACxB,KAAI,QAAU,CAAC,EACX,EAAE,QAAQ,SACZ,OAAO,QAAQ,SAAU,EAAG,CAAM,EAAE,QAAQ,UAAS,QAAQ,EAAE,QAAQ,OAAO,EAAI,EAAG,CAAC,EACtF,QAAQ,EAAE,QAAQ,OAAO,EAAI,IAE/B,QAAQ,IAAI,QAAQ,GAAG,EAAI,SAAS,EAAE,QAAQ,IAAK,EAAE,GAAK,EACtD,IAAI,QAAQ,OAAM,QAAQ,IAAI,QAAQ,IAAI,EAAI,EAAE,QAAQ,OAAS,IAAM,EAAI,GAC3E,IAAI,UAAa,OAAO,KAAK,IAAI,SAAS,EAAE,QAAQ,SAAU,GAAI,CAAE,QAAQ,EAAE,EAAI,IAAI,UAAU,EAAE,CAAG,CAAC,EACjG,IAAI,QAAQ,OAAM,QAAQ,IAAI,QAAQ,IAAI,EAAI,IAEvD,IAAI,SAAW,GAAM,IAAI,UAAU,IAAI,SAAS,EAAO,MAAK,IAAI,OAAS,IACzE,IAAI,IAAM,IAAI,cAAc,qBAAqB,EAAO,MAAO,IAAI,QAAQ,KAAO,IAAI,YAAa,IAAI,YAAc,gCACrH,OAAO,OAAO,SAAW,QAAQ,OAAS,QAAQ,OAAO,KAAO,KAAO,iBAAkB,CACvF,OAAQ,OAAQ,QAAS,CAAE,eAAgB,mBAAoB,OAAQ,kBAAmB,EAC1F,KAAM,KAAK,UAAU,CAAE,QAAS,QAAS,WAAY,CAAE,OAAQ,EAAE,cAAc,2BAA2B,GAAK,CAAC,GAAG,aAAe,EAAG,CAAE,CAAC,CAC1I,CAAC,EAAE,KAAK,SAAU,EAAG,CAAE,GAAI,CAAC,EAAE,GAAI,MAAM,EAAG,OAAO,EAAE,KAAK,CAAG,CAAC,EAC1D,KAAK,UAAY,CAAE,OAAO,OAAO,OAAO,SAAW,QAAQ,OAAS,QAAQ,OAAO,KAAO,KAAO,wCAAwC,EAAE,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,KAAK,CAAG,CAAC,CAAG,CAAC,EACrL,KAAK,SAAU,IAAK,CACnB,IAAI,OAAS,SAAS,cAAc,aAAa,EACjD,GAAI,CAAC,QAAU,CAAC,OAAO,KAAM,CAAE,OAAO,SAAS,KAAO,QAAS,MAAQ,CACvE,IAAI,IAAM,IAAI,UAAU,EAAE,gBAAgB,IAAI,aAAa,EAAG,WAAW,EAAG,MAAQ,IAAI,cAAc,aAAa,EACnH,GAAI,MAAO,CAAE,OAAO,UAAY,MAAM,UAAW,OAAO,UAAY,MAAM,UAAW,IAAI,GAAK,OAAO,cAAc,qBAAqB,EAAO,IAAI,GAAG,iBAAiB,QAAS,UAAY,CAAE,OAAO,MAAM,CAAG,CAAC,CAAG,CAClN,IAAI,IAAM,SAAS,eAAe,kBAAkB,EACpD,GAAI,KAAO,IAAI,kBAAkB,EAAG,CAAE,IAAI,GAAK,IAAI,UAAU,EAAE,gBAAgB,IAAI,kBAAkB,EAAG,WAAW,EAAE,cAAc,kBAAkB,EAAO,KAAI,IAAI,UAAY,GAAG,UAAW,CAC9L,IAAI,GAAK,OAAO,cAAc,sCAAsC,EAAO,KAAI,GAAG,YAAc,wBAChG,OAAO,KAAK,EACZ,IAAI,SAAW,GAAO,IAAI,UAAU,OAAO,SAAS,EAAO,KAAO,IAAI,QAAQ,OAAM,IAAI,YAAc,IAAI,QAAQ,KACpH,CAAC,EACA,MAAM,UAAY,CAAE,IAAI,SAAW,GAAO,IAAI,UAAU,OAAO,SAAS,EAAO,KAAO,IAAI,QAAQ,OAAM,IAAI,YAAc,IAAI,QAAQ,MAAU,MAAK,IAAI,OAAS,GAAO,CAAC,EAC/K,CAAC,CACH,CAAC,EAGD,SAAS,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU,IAAK,CACnE,IAAI,KAAO,IAAI,iBAAiB,SAAS,EACrC,MAAQ,IAAI,iBAAiB,WAAW,EAC5C,KAAK,QAAQ,SAAU,EAAG,CAExB,EAAE,iBAAiB,QAAS,UAAY,CACtC,IAAI,GAAK,EAAE,aAAa,cAAc,IAAM,OAC5C,KAAK,QAAQ,SAAU,EAAG,CAAE,EAAE,aAAa,eAAgB,IAAM,GAAK,GAAK,OAAS,OAAO,CAAG,CAAC,EAC/F,IAAI,IAAM,GAAK,EAAE,QAAQ,IAAM,MAC/B,MAAM,QAAQ,SAAU,EAAG,CAAE,EAAE,OAAS,EAAE,MAAQ,OAAS,EAAE,QAAQ,MAAQ,IAAM,CAAC,CACtF,CAAC,CACH,CAAC,CACH,CAAC,EAGD,IAAI,OAAS,SAAS,cAAc,kBAAkB,EACtD,GAAI,QAAU,yBAA0B,OAAQ,CAG9C,IAASA,KAAT,UAAe,CAAE,OAAO,UAAU,OAAO,QAAS,UAAY,CAAC,KAAK,CAAG,EAA9D,IAAAA,KAFL,KAAO,SAAS,cAAc,UAAU,EAAG,IAAM,SAAS,cAAc,SAAS,EACjF,SAAW,GAAO,MAAQ,GAG1B,MAAQ,SAAS,iBAAiB,gCAAgC,EAAE,CAAC,EACrE,MAAO,IAAI,qBAAqB,SAAU,GAAI,CAAE,SAAW,GAAG,CAAC,EAAE,gBAAkB,GAAG,CAAC,EAAE,mBAAmB,IAAM,EAAGA,KAAI,CAAG,EAAG,CAAE,WAAY,kBAAmB,CAAC,EAAE,QAAQ,KAAK,EAC3K,KAAM,IAAI,qBAAqB,SAAU,GAAI,CAAE,SAAW,CAAC,GAAG,CAAC,EAAE,gBAAkB,GAAG,CAAC,EAAE,mBAAmB,IAAM,EAAGA,KAAI,CAAG,CAAC,EAAE,QAAQ,IAAI,GAC7I,SAAW,GAAMA,KAAI,GACxB,KAAK,IAAI,qBAAqB,SAAU,GAAI,CAAE,MAAQ,GAAG,CAAC,EAAE,eAAgBA,KAAI,CAAG,EAAG,CAAE,WAAY,kBAAmB,CAAC,EAAE,QAAQ,GAAG,CAC3I,CAGA,GAAI,yBAA0B,QAAU,CAAC,GAAI,CAC3C,IAAI,GAAK,IAAI,qBAAqB,SAAU,GAAI,CAC9C,GAAG,QAAQ,SAAU,EAAG,CACtB,IAAI,EAAI,EAAE,OACV,GAAI,EAAE,eAAgB,CACf,EAAE,MAAO,EAAE,IAAM,EAAE,QAAQ,IAAK,EAAE,iBAAiB,UAAW,UAAY,CAAE,EAAE,UAAU,IAAI,OAAO,CAAG,EAAG,CAAE,KAAM,EAAK,CAAC,GAC5H,IAAI,GAAK,EAAE,KAAK,EAAO,IAAM,GAAG,OAAO,GAAG,MAAM,UAAY,CAAC,CAAC,CAChE,MAAW,EAAE,KAAK,EAAE,MAAM,CAC5B,CAAC,CACH,EAAG,CAAE,WAAY,WAAY,CAAC,EAC1B,OAAS,UAAY,CAAE,SAAS,iBAAiB,gBAAgB,EAAE,QAAQ,SAAU,EAAG,CAAE,GAAG,QAAQ,CAAC,CAAG,CAAC,CAAG,EAC7G,SAAS,aAAe,WAAY,WAAW,OAAQ,GAAG,EAAQ,OAAO,iBAAiB,OAAQ,UAAY,CAAE,WAAW,OAAQ,GAAG,CAAG,CAAC,CAChJ,CAGA,GAAI,yBAA0B,QAAU,CAAC,OAAO,WAAW,kCAAkC,EAAE,QAAS,CAEtG,OACA,IAAI,IAQN,CAGA,SAAS,QAAS,CAChB,IAAI,GAAK,SAAS,cAAc,gBAAgB,EAAG,GAAK,GACxD,KAAI,MAAQ,CAAC,EAAG,GAAI,CAAE,MAAQ,KAAK,MAAM,eAAe,QAAQ,SAAS,GAAK,IAAI,CAAG,OAAS,EAAG,CAAC,CAClG,GAAI,CAAC,MAAM,OAAQ,CAAE,GAAG,OAAS,GAAM,MAAQ,CAC/C,IAAI,EAAI,MAAM,KAAK,GAAG,EAAE,YAAY,EAAG,KAAO,OAAQ,KAAO,aACzD,iBAAiB,KAAK,CAAC,GAAK,CAAC,+BAA+B,KAAK,CAAC,IAAG,KAAO,cAC5E,aAAa,KAAK,CAAC,GAAK,MAAM,SAAW,IAAK,KAAO,YAAa,KAAO,cAC7E,GAAG,UAAY,6BAA+B,KAAO,KAAO,KAAO,+BAAiC,MAAM,OAAS,SAAW,MAAM,OAAS,EAAI,IAAM,IAAM,eAC7J,GAAG,OAAS,GACd,CACA,SAAS,iBAAiB,WAAY,MAAM,EAAG,OAAO,CACxD,GAAG,GAIF,UAAY,CACX,SAAS,MAAM,GAAI,CAAE,OAAO,IAAK,WAAW,GAAG,YAAY,QAAQ,WAAY,EAAE,CAAC,GAAK,CAAO,CAC9F,SAAS,MAAO,CACd,IAAI,KAAO,SAAS,cAAc,8BAA8B,EAC5D,MAAQ,SAAS,cAAc,+BAA+B,GAAK,KAAK,YAAY,KAAK,IAAM,yBAAwB,KAAK,YAAc,wBAC9I,IAAI,IAAM,SAAS,cAAc,2DAA2D,EAC5F,GAAK,IACL,KAAI,MAAQ,IAAI,cAAc,QAAQ,EACtC,GAAI,GAAC,OAAS,MAAM,YAAY,QAAQ,GAAG,IAAM,IACjD,KAAI,MAAQ,MAAM,IAAI,cAAc,kCAAkC,CAAC,EACnE,MAAQ,MAAM,SAAS,cAAc,wFAAwF,CAAC,EAC9H,MAAQ,IAAG,MAAM,YAAc,MAAM,YAAc,SAAa,KAAK,MAAM,OAAS,MAAQ,OAAS,GAAG,EAAI,cAClH,CACA,SAAS,OAAQ,CACf,IAAI,EAAI,SAAS,cAAc,aAAa,EAAQ,IACpD,IAAI,iBAAiB,UAAY,CAAE,sBAAsB,IAAI,CAAG,CAAC,EAAE,QAAQ,EAAG,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,EAChH,KAAK,EACP,CACI,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoB,KAAK,EAAQ,MAAM,CAC1G,GAAG,EAIH,SAAS,iBAAiB,QAAS,SAAU,EAAG,CAC9C,IAAI,IAAM,EAAE,OAAO,SAAW,EAAE,OAAO,QAAQ,iBAAiB,EAAG,GAAK,IACxE,KAAI,KAAO,IAAI,QAAQ,kBAAkB,EAAO,IAAM,IAAI,QAAQ,eAAe,GAAK,SAClF,EAAI,IAAI,QAAQ,QACpB,KAAK,iBAAiB,iBAAiB,EAAE,QAAQ,SAAU,EAAG,CAAE,IAAI,GAAK,IAAM,IAAK,EAAE,UAAU,OAAO,QAAS,EAAE,EAAG,EAAE,aAAa,eAAgB,EAAE,CAAG,CAAC,EAC1J,IAAI,MAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,iBAAiB,sBAAsB,CAAC,EAClE,MAAQ,MAAM,OAAO,SAAU,EAAG,CAAE,OAAO,EAAE,UAAU,SAAS,OAAO,CAAG,CAAC,EAAE,CAAC,EAC9E,IAAM,MAAQ,MAAM,OAAO,SAAU,EAAG,CAAE,OAAO,EAAE,QAAQ,QAAU,MAAM,QAAQ,KAAO,CAAC,EAAE,QAAQ,KAAK,EAAI,EAClH,MAAM,QAAQ,SAAU,EAAG,CAAE,EAAE,OAAS,EAAE,QAAQ,QAAU,CAAG,CAAC,EAChE,IAAI,IAAM,MAAM,OAAO,SAAU,EAAG,CAAE,OAAO,EAAE,QAAQ,QAAU,CAAG,CAAC,EACjE,IAAM,IAAI,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,IAAI,OAAS,CAAC,CAAC,CAAC,EACxD,GAAI,IAAK,CAAE,IAAI,IAAM,IAAI,cAAc,OAAO,EAAO,IAAK,IAAI,MAAM,EAAQ,IAAI,MAAM,CAAG,EAC3F,CAAC",
  "names": ["upd"]
}
