PageSourceSearch

https://rjmusicalonline.com/wp-content/themes/nexoradio/assets/js/script.min.js?ver=1.6.7

js rjmusicalonline.com collected 2026-10-08 10:19:09 UTC 208,595 bytes, 6,458 lines download raw bytes

1var nxMain = (function () {
2  "use strict";
3  class jt {
4    constructor(e, t = {}) {
5      (this.entry = e),
6        (this.opts = t),
7        (this.changePage = null),
8        (this.changePageSearch = null);
9    }
10    disableAjax(e) {
11      if (
12        (e.matches("a") && e.classList.contains("no-ajax")) ||
13        (e.parentNode && e.parentNode.classList.contains("no-ajax"))
14      )
15        return !0;
16    }
17    validateLink(e) {
18      const t = e.getAttribute("href");
19      return !(
20        t == "#" ||
21        t == "#!" ||
22        t == "!#" ||
23        t.includes("#respond") ||
24        t == "#url" ||
25        t.startsWith("javascript") ||
26        e.target === "_blank" ||
27        new URL(t).origin !== window.location.origin ||
28        t.includes("wp-admin")
29      );
30    }
31    resolvePage(e, t) {
32      const i = new DOMParser().parseFromString(e, "text/html"),
33        r = i.querySelector(t);
34      return {
35        meta: { title: i.title, bodyClass: i.body.getAttribute("class") ?? "" },
36        htmlPlain: e,
37        body: i.body,
38        document: i,
39        page: r,
40        isElementorPage: i.body.classList.contains("elementor-page"),
41        isHomePage: i.body.classList.contains("home"),
42        isPostPage: i.body.classList.contains("single"),
43        isPagePage: i.body.classList.contains("single-page"),
44        isTemplatePage: i.body.classList.contains("page-template"),
45        isSearchPage: i.body.classList.contains("search"),
46      };
47    }
48    async getPage(e) {
49      let t = await fetch(e);
50      return (t = await t.text()), this.resolvePage(t, this.entry);
51    }
52    delteInstanceElementor() {
53      for (const e in window)
54        if (e.toLowerCase().includes("elementor")) {
55          const t = Object.getOwnPropertyDescriptor(window, e);
56          if (t && t.configurable)
57            try {
58              delete window[e];
59            } catch {}
60        }
61    }
62    makerScript(e) {
63      if (!e) return;
64      const t = document.createElement("script");
65      return (
66        e.hasAttribute("id") && (t.id = e.id),
67        e.innerHTML != "" && (t.innerHTML = e.innerHTML),
68        e.hasAttribute("src") && (t.src = e.src),
69        e.hasAttribute("async") && (t.async = e.async),
70        e.hasAttribute("defer") && (t.defer = e.defer),
71        e.hasAttribute("type") && (t.type = e.type),
72        t
73      );
74    }
75    elementorScriptsCompatibility(e) {
76      const t = document.body,
77        i = Array.from(t.children).filter(
78          (n) =>
79            n.tagName === "SCRIPT" &&
80            !n.innerHTML.includes("lazyloadRunObserver")
81        ),
82        r = Array.from(e.children).filter(
83          (n) =>
84            n.tagName === "SCRIPT" &&
85            !n.innerHTML.includes("lazyloadRunObserver")
86        );
87      this.delteInstanceElementor(),
88        [...i].forEach((n) => {
89          (n.id.includes("elementor") ||
90            n.src.includes("plugins/elementor") ||
91            n.innerHTML.includes("elementor")) &&
92            n.remove();
93        }),
94        [...r].forEach((n) => {
95          (n.id.includes("elementor") ||
96            n.src.includes("plugins/elementor") ||
97            n.innerHTML.includes("elementor")) &&
98            t.appendChild(this.makerScript(n));
99        });
100    }
101    elementorStylesCompatibility(e) {
102      const t = document.head,
103        i = Array.from(t.children).filter(
104          (n) => n.tagName === "STYLE" || n.tagName === "LINK"
105        ),
106        r = Array.from(e.children).filter(
107          (n) => n.tagName === "STYLE" || n.tagName === "LINK"
108        );
109      [...i].forEach((n) => {
110        (n.innerHTML.includes("elementor") ||
111          (n.hasAttribute("href") && n.href.includes("plugins/elementor")) ||
112          (n.hasAttribute("id") && n.id.includes("elementor"))) &&
113          n.remove();
114      }),
115        [...r].forEach((n) => {
116          (n.innerHTML.includes("elementor") ||
117            (n.hasAttribute("href") && n.href.includes("plugins/elementor")) ||
118            (n.hasAttribute("id") && n.id.includes("elementor"))) &&
119            document.head.appendChild(n);
120        });
121    }
122    nexoRadioCompatibility(e) {
123      const t = document.body,
124        i = Array.from(t.children).filter((n) => n.tagName === "SCRIPT"),
125        r = Array.from(e.children).filter((n) => n.tagName === "SCRIPT");
126      [...i].forEach((n) => {
127        n.id.includes("nxradio-widget") && n.remove();
128      }),
129        [...r].forEach((n) => {
130          n.id.includes("nxradio-widget") && t.appendChild(this.makerScript(n));
131        });
132    }
133    updatePage(e, t, i, r = !1) {
134      const n = t.page;
135      (document.title = t.meta.title),
136        (document.body.className = t.meta.bodyClass),
137        window.location.pathname !== i &&
138          history.pushState({}, t.meta.title, i),
139        r
140          ? r &&
141            ((this.opts.keepPosition ?? []).some((a) => r.classList.contains(a))
142              ? window.scrollTo(window.scrollX, window.scrollY)
143              : window.scrollTo(0, 0))
144          : window.scrollTo(0, 0),
145        this.opts.documentHeadRefresh &&
146          this.opts.documentHeadRefresh == !0 &&
147          this.elementorStylesCompatibility(t.document.head),
148        this.opts.refreshElementorScripts &&
149          this.opts.refreshElementorScripts == !0 &&
150          this.elementorScriptsCompatibility(t.body),
151        this.nexoRadioCompatibility(t.body),
152        (e.innerHTML = ""),
153        e.replaceChildren(...n.children);
154    }
155    onChangePage(e) {
156      this.changePage = e;
157    }
158    onChangePageSearch(e) {
159      this.changePageSearch = e;
160    }
161    start() {
162      const e = document.querySelector(this.entry);
163      e &&
164        (e.addEventListener("click", async (t) => {
165          const i = t.target;
166          if (!this.disableAjax(i) && i.matches("a") && this.validateLink(i)) {
167            t.preventDefault();
168            const r = t.target,
169              n = r.href,
170              o = new URL(n).pathname;
171            document.body.classList.add("ajaxify-loading");
172            const a = await this.getPage(n);
173            this.updatePage(e, a, o, r),
174              this.changePage && this.changePage(a.meta, a);
175          }
176        }),
177        window.addEventListener("popstate", async (t) => {
178          const i = t.currentTarget.location.href,
179            r = new URL(i),
180            n = r.pathname;
181          if (r.hash) return;
182          document.body.classList.add("ajaxify-loading");
183          const o = await this.getPage(i);
184          this.updatePage(e, o, n),
185            this.changePage && this.changePage(o.meta, o);
186        }),
187        document.addEventListener("keydown", async (t) => {
188          if (
189            t.key === "Enter" &&
190            t.target.tagName === "INPUT" &&
191            t.target.closest("form")
192          ) {
193            t.preventDefault();
194            const i = t.target.value;
195            document.body.classList.add("ajaxify-loading");
196            const r = window.location.origin + "?s=" + i,
197              n = new URL(window.location.origin).pathname,
198              o = await this.getPage(r);
199            this.updatePage(e, o, n + "?s=" + i),
200              this.changePageSearch && this.changePageSearch(o.meta, o),
201              this.changePage && this.changePage(o.meta, o);
202          }
203        }));
204    }
205    hotChange(e) {
206      const t = document.querySelector(this.entry);
207      Array.isArray(e) &&
208        e.forEach((i) => {
209          const r = document.querySelector(i);
210          if (!r || !t) return;
211          [...r.querySelectorAll("a")].forEach((o) => {
212            o.addEventListener("click", async (a) => {
213              if (!this.disableAjax(a.target) && this.validateLink(o)) {
214                a.preventDefault(), a.stopPropagation();
215                const l = o.href,
216                  u = new URL(l).pathname;
217                document.body.classList.add("ajaxify-loading");
218                const d = await this.getPage(l);
219                if (d.page == null) {
220                  console.warn("Entry point not founded!");
221                  return;
222                }
223                this.updatePage(t, d, u, o),
224                  this.changePage && this.changePage(d.meta, d);
225              }
226            });
227          });
228        });
229    }
230  }
231  function Ze(s) {
232    return (
233      s !== null &&
234      typeof s == "object" &&
235      "constructor" in s &&
236      s.constructor === Object
237    );
238  }
239  function Me(s, e) {
240    s === void 0 && (s = {}),
241      e === void 0 && (e = {}),
242      Object.keys(e).forEach((t) => {
243        typeof s[t] > "u"
244          ? (s[t] = e[t])
245          : Ze(e[t]) &&
246            Ze(s[t]) &&
247            Object.keys(e[t]).length > 0 &&
248            Me(s[t], e[t]);
249      });
250  }
251  const et = {
252    body: {},
253    addEventListener() {},
254    removeEventListener() {},
255    activeElement: { blur() {}, nodeName: "" },
256    querySelector() {
257      return null;
258    },
259    querySelectorAll() {
260      return [];
261    },
262    getElementById() {
263      return null;
264    },
265    createEvent() {
266      return { initEvent() {} };
267    },
268    createElement() {
269      return {
270        children: [],
271        childNodes: [],
272        style: {},
273        setAttribute() {},
274        getElementsByTagName() {
275          return [];
276        },
277      };
278    },
279    createElementNS() {
280      return {};
281    },
282    importNode() {
283      return null;
284    },
285    location: {
286      hash: "",
287      host: "",
288      hostname: "",
289      href: "",
290      origin: "",
291      pathname: "",
292      protocol: "",
293      search: "",
294    },
295  };
296  function ee() {
297    const s = typeof document < "u" ? document : {};
298    return Me(s, et), s;
299  }
300  const Wt = {
301    document: et,
302    navigator: { userAgent: "" },
303    location: {
304      hash: "",
305      host: "",
306      hostname: "",
307      href: "",
308      origin: "",
309      pathname: "",
310      protocol: "",
311      search: "",
312    },
313    history: { replaceState() {}, pushState() {}, go() {}, back() {} },
314    CustomEvent: function () {
315      return this;
316    },
317    addEventListener() {},
318    removeEventListener() {},
319    getComputedStyle() {
320      return {
321        getPropertyValue() {
322          return "";
323        },
324      };
325    },
326    Image() {},
327    Date() {},
328    screen: {},
329    setTimeout() {},
330    clearTimeout() {},
331    matchMedia() {
332      return {};
333    },
334    requestAnimationFrame(s) {
335      return typeof setTimeout > "u" ? (s(), null) : setTimeout(s, 0);
336    },
337    cancelAnimationFrame(s) {
338      typeof setTimeout > "u" || clearTimeout(s);
339    },
340  };
341  function X() {
342    const s = typeof window < "u" ? window : {};
343    return Me(s, Wt), s;
344  }
345  function Ut(s) {
346    return (
347      s === void 0 && (s = ""),
348      s
349        .trim()
350        .split(" ")
351        .filter((e) => !!e.trim())
352    );
353  }
354  function Yt(s) {
355    const e = s;
356    Object.keys(e).forEach((t) => {
357      try {
358        e[t] = null;
359      } catch {}
360      try {
361        delete e[t];
362      } catch {}
363    });
364  }
365  function Ae(s, e) {
366    return e === void 0 && (e = 0), setTimeout(s, e);
367  }
368  function ge() {
369    return Date.now();
370  }
371  function Xt(s) {
372    const e = X();
373    let t;
374    return (
375      e.getComputedStyle && (t = e.getComputedStyle(s, null)),
376      !t && s.currentStyle && (t = s.currentStyle),
377      t || (t = s.style),
378      t
379    );
380  }
381  function Kt(s, e) {
382    e === void 0 && (e = "x");
383    const t = X();
384    let i, r, n;
385    const o = Xt(s);
386    return (
387      t.WebKitCSSMatrix
388        ? ((r = o.transform || o.webkitTransform),
389          r.split(",").length > 6 &&
390            (r = r
391              .split(", ")
392              .map((a) => a.replace(",", "."))
393              .join(", ")),
394          (n = new t.WebKitCSSMatrix(r === "none" ? "" : r)))
395        : ((n =
396            o.MozTransform ||
397            o.OTransform ||
398            o.MsTransform ||
399            o.msTransform ||
400            o.transform ||
401            o
402              .getPropertyValue("transform")
403              .replace("translate(", "matrix(1, 0, 0, 1,")),
404          (i = n.toString().split(","))),
405      e === "x" &&
406        (t.WebKitCSSMatrix
407          ? (r = n.m41)
408          : i.length === 16
409          ? (r = parseFloat(i[12]))
410          : (r = parseFloat(i[4]))),
411      e === "y" &&
412        (t.WebKitCSSMatrix
413          ? (r = n.m42)
414          : i.length === 16
415          ? (r = parseFloat(i[13]))
416          : (r = parseFloat(i[5]))),
417      r || 0
418    );
419  }
420  function pe(s) {
421    return (
422      typeof s == "object" &&
423      s !== null &&
424      s.constructor &&
425      Object.prototype.toString.call(s).slice(8, -1) === "Object"
426    );
427  }
428  function Qt(s) {
429    return typeof window < "u" && typeof window.HTMLElement < "u"
430      ? s instanceof HTMLElement
431      : s && (s.nodeType === 1 || s.nodeType === 11);
432  }
433  function K() {
434    const s = Object(arguments.length <= 0 ? void 0 : arguments[0]),
435      e = ["__proto__", "constructor", "prototype"];
436    for (let t = 1; t < arguments.length; t += 1) {
437      const i = t < 0 || arguments.length <= t ? void 0 : arguments[t];
438      if (i != null && !Qt(i)) {
439        const r = Object.keys(Object(i)).filter((n) => e.indexOf(n) < 0);
440        for (let n = 0, o = r.length; n < o; n += 1) {
441          const a = r[n],
442            l = Object.getOwnPropertyDescriptor(i, a);
443          l !== void 0 &&
444            l.enumerable &&
445            (pe(s[a]) && pe(i[a])
446              ? i[a].__swiper__
447                ? (s[a] = i[a])
448                : K(s[a], i[a])
449              : !pe(s[a]) && pe(i[a])
450              ? ((s[a] = {}), i[a].__swiper__ ? (s[a] = i[a]) : K(s[a], i[a]))
451              : (s[a] = i[a]));
452        }
453      }
454    }
455    return s;
456  }
457  function ve(s, e, t) {
458    s.style.setProperty(e, t);
459  }
460  function tt(s) {
461    let { swiper: e, targetPosition: t, side: i } = s;
462    const r = X(),
463      n = -e.translate;
464    let o = null,
465      a;
466    const l = e.params.speed;
467    (e.wrapperEl.style.scrollSnapType = "none"),
468      r.cancelAnimationFrame(e.cssModeFrameID);
469    const u = t > n ? "next" : "prev",
470      d = (m, h) => (u === "next" && m >= h) || (u === "prev" && m <= h),
471      p = () => {
472        (a = new Date().getTime()), o === null && (o = a);
473        const m = Math.max(Math.min((a - o) / l, 1), 0),
474          h = 0.5 - Math.cos(m * Math.PI) / 2;
475        let g = n + h * (t - n);
476        if ((d(g, t) && (g = t), e.wrapperEl.scrollTo({ [i]: g }), d(g, t))) {
477          (e.wrapperEl.style.overflow = "hidden"),
478            (e.wrapperEl.style.scrollSnapType = ""),
479            setTimeout(() => {
480              (e.wrapperEl.style.overflow = ""),
481                e.wrapperEl.scrollTo({ [i]: g });
482            }),
483            r.cancelAnimationFrame(e.cssModeFrameID);
484          return;
485        }
486        e.cssModeFrameID = r.requestAnimationFrame(p);
487      };
488    p();
489  }
490  function st(s) {
491    return (
492      s.querySelector(".swiper-slide-transform") ||
493      (s.shadowRoot && s.shadowRoot.querySelector(".swiper-slide-transform")) ||
494      s
495    );
496  }
497  function Q(s, e) {
498    e === void 0 && (e = "");
499    const t = [...s.children];
500    return (
501      s instanceof HTMLSlotElement && t.push(...s.assignedElements()),
502      e ? t.filter((i) => i.matches(e)) : t
503    );
504  }
505  function Jt(s, e) {
506    const t = e.contains(s);
507    return !t && e instanceof HTMLSlotElement
508      ? [...e.assignedElements()].includes(s)
509      : t;
510  }
511  function ye(s) {
512    try {
513      console.warn(s);
514      return;
515    } catch {}
516  }
517  function we(s, e) {
518    e === void 0 && (e = []);
519    const t = document.createElement(s);
520    return t.classList.add(...(Array.isArray(e) ? e : Ut(e))), t;
521  }
522  function Zt(s, e) {
523    const t = [];
524    for (; s.previousElementSibling; ) {
525      const i = s.previousElementSibling;
526      e ? i.matches(e) && t.push(i) : t.push(i), (s = i);
527    }
528    return t;
529  }
530  function es(s, e) {
531    const t = [];
532    for (; s.nextElementSibling; ) {
533      const i = s.nextElementSibling;
534      e ? i.matches(e) && t.push(i) : t.push(i), (s = i);
535    }
536    return t;
537  }
538  function re(s, e) {
539    return X().getComputedStyle(s, null).getPropertyValue(e);
540  }
541  function Se(s) {
542    let e = s,
543      t;
544    if (e) {
545      for (t = 0; (e = e.previousSibling) !== null; )
546        e.nodeType === 1 && (t += 1);
547      return t;
548    }
549  }
550  function it(s, e) {
551    const t = [];
552    let i = s.parentElement;
553    for (; i; )
554      e ? i.matches(e) && t.push(i) : t.push(i), (i = i.parentElement);
555    return t;
556  }
557  function ts(s, e) {
558    function t(i) {
559      i.target === s &&
560        (e.call(s, i), s.removeEventListener("transitionend", t));
561    }
562    e && s.addEventListener("transitionend", t);
563  }
564  function Ie(s, e, t) {
565    const i = X();
566    return (
567      s[e === "width" ? "offsetWidth" : "offsetHeight"] +
568      parseFloat(
569        i
570          .getComputedStyle(s, null)
571          .getPropertyValue(e === "width" ? "margin-right" : "margin-top")
572      ) +
573      parseFloat(
574        i
575          .getComputedStyle(s, null)
576          .getPropertyValue(e === "width" ? "margin-left" : "margin-bottom")
577      )
578    );
579  }
580  function j(s) {
581    return (Array.isArray(s) ? s : [s]).filter((e) => !!e);
582  }
583  let ke;
584  function ss() {
585    const s = X(),
586      e = ee();
587    return {
588      smoothScroll:
589        e.documentElement &&
590        e.documentElement.style &&
591        "scrollBehavior" in e.documentElement.style,
592      touch: !!(
593        "ontouchstart" in s ||
594        (s.DocumentTouch && e instanceof s.DocumentTouch)
595      ),
596    };
597  }
598  function nt() {
599    return ke || (ke = ss()), ke;
600  }
601  let Oe;
602  function is(s) {
603    let { userAgent: e } = s === void 0 ? {} : s;
604    const t = nt(),
605      i = X(),
606      r = i.navigator.platform,
607      n = e || i.navigator.userAgent,
608      o = { ios: !1, android: !1 },
609      a = i.screen.width,
610      l = i.screen.height,
611      u = n.match(/(Android);?[\s\/]+([\d.]+)?/);
612    let d = n.match(/(iPad).*OS\s([\d_]+)/);
613    const p = n.match(/(iPod)(.*OS\s([\d_]+))?/),
614      m = !d && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
615      h = r === "Win32";
616    let g = r === "MacIntel";
617    const w = [
618      "1024x1366",
619      "1366x1024",
620      "834x1194",
621      "1194x834",
622      "834x1112",
623      "1112x834",
624      "768x1024",
625      "1024x768",
626      "820x1180",
627      "1180x820",
628      "810x1080",
629      "1080x810",
630    ];
631    return (
632      !d &&
633        g &&
634        t.touch &&
635        w.indexOf(`${a}x${l}`) >= 0 &&
636        ((d = n.match(/(Version)\/([\d.]+)/)),
637        d || (d = [0, 1, "13_0_0"]),
638        (g = !1)),
639      u && !h && ((o.os = "android"), (o.android = !0)),
640      (d || m || p) && ((o.os = "ios"), (o.ios = !0)),
641      o
642    );
643  }
644  function rt(s) {
645    return s === void 0 && (s = {}), Oe || (Oe = is(s)), Oe;
646  }
647  let $e;
648  function ns() {
649    const s = X(),
650      e = rt();
651    let t = !1;
652    function i() {
653      const a = s.navigator.userAgent.toLowerCase();
654      return (
655        a.indexOf("safari") >= 0 &&
656        a.indexOf("chrome") < 0 &&
657        a.indexOf("android") < 0
658      );
659    }
660    if (i()) {
661      const a = String(s.navigator.userAgent);
662      if (a.includes("Version/")) {
663        const [l, u] = a
664          .split("Version/")[1]
665          .split(" ")[0]
666          .split(".")
667          .map((d) => Number(d));
668        t = l < 16 || (l === 16 && u < 2);
669      }
670    }
671    const r = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(
672        s.navigator.userAgent
673      ),
674      n = i(),
675      o = n || (r && e.ios);
676    return {
677      isSafari: t || n,
678      needPerspectiveFix: t,
679      need3dFix: o,
680      isWebView: r,
681    };
682  }
683  function rs() {
684    return $e || ($e = ns()), $e;
685  }
686  function as(s) {
687    let { swiper: e, on: t, emit: i } = s;
688    const r = X();
689    let n = null,
690      o = null;
691    const a = () => {
692        !e || e.destroyed || !e.initialized || (i("beforeResize"), i("resize"));
693      },
694      l = () => {
695        !e ||
696          e.destroyed ||
697          !e.initialized ||
698          ((n = new ResizeObserver((p) => {
699            o = r.requestAnimationFrame(() => {
700              const { width: m, height: h } = e;
701              let g = m,
702                w = h;
703              p.forEach((b) => {
704                let { contentBoxSize: S, contentRect: c, target: f } = b;
705                (f && f !== e.el) ||
706                  ((g = c ? c.width : (S[0] || S).inlineSize),
707                  (w = c ? c.height : (S[0] || S).blockSize));
708              }),
709                (g !== m || w !== h) && a();
710            });
711          })),
712          n.observe(e.el));
713      },
714      u = () => {
715        o && r.cancelAnimationFrame(o),
716          n && n.unobserve && e.el && (n.unobserve(e.el), (n = null));
717      },
718      d = () => {
719        !e || e.destroyed || !e.initialized || i("orientationchange");
720      };
721    t("init", () => {
722      if (e.params.resizeObserver && typeof r.ResizeObserver < "u") {
723        l();
724        return;
725      }
726      r.addEventListener("resize", a),
727        r.addEventListener("orientationchange", d);
728    }),
729      t("destroy", () => {
730        u(),
731          r.removeEventListener("resize", a),
732          r.removeEventListener("orientationchange", d);
733      });
734  }
735  function os(s) {
736    let { swiper: e, extendParams: t, on: i, emit: r } = s;
737    const n = [],
738      o = X(),
739      a = function (d, p) {
740        p === void 0 && (p = {});
741        const m = o.MutationObserver || o.WebkitMutationObserver,
742          h = new m((g) => {
743            if (e.__preventObserver__) return;
744            if (g.length === 1) {
745              r("observerUpdate", g[0]);
746              return;
747            }
748            const w = function () {
749              r("observerUpdate", g[0]);
750            };
751            o.requestAnimationFrame
752              ? o.requestAnimationFrame(w)
753              : o.setTimeout(w, 0);
754          });
755        h.observe(d, {
756          attributes: typeof p.attributes > "u" ? !0 : p.attributes,
757          childList:
758            e.isElement || (typeof p.childList > "u" ? !0 : p).childList,
759          characterData: typeof p.characterData > "u" ? !0 : p.characterData,
760        }),
761          n.push(h);
762      },
763      l = () => {
764        if (e.params.observer) {
765          if (e.params.observeParents) {
766            const d = it(e.hostEl);
767            for (let p = 0; p < d.length; p += 1) a(d[p]);
768          }
769          a(e.hostEl, { childList: e.params.observeSlideChildren }),
770            a(e.wrapperEl, { attributes: !1 });
771        }
772      },
773      u = () => {
774        n.forEach((d) => {
775          d.disconnect();
776        }),
777          n.splice(0, n.length);
778      };
779    t({ observer: !1, observeParents: !1, observeSlideChildren: !1 }),
780      i("init", l),
781      i("destroy", u);
782  }
783  var ls = {
784    on(s, e, t) {
785      const i = this;
786      if (!i.eventsListeners || i.destroyed || typeof e != "function") return i;
787      const r = t ? "unshift" : "push";
788      return (
789        s.split(" ").forEach((n) => {
790          i.eventsListeners[n] || (i.eventsListeners[n] = []),
791            i.eventsListeners[n][r](e);
792        }),
793        i
794      );
795    },
796    once(s, e, t) {
797      const i = this;
798      if (!i.eventsListeners || i.destroyed || typeof e != "function") return i;
799      function r() {
800        i.off(s, r), r.__emitterProxy && delete r.__emitterProxy;
801        for (var n = arguments.length, o = new Array(n), a = 0; a < n; a++)
802          o[a] = arguments[a];
803        e.apply(i, o);
804      }
805      return (r.__emitterProxy = e), i.on(s, r, t);
806    },
807    onAny(s, e) {
808      const t = this;
809      if (!t.eventsListeners || t.destroyed || typeof s != "function") return t;
810      const i = e ? "unshift" : "push";
811      return (
812        t.eventsAnyListeners.indexOf(s) < 0 && t.eventsAnyListeners[i](s), t
813      );
814    },
815    offAny(s) {
816      const e = this;
817      if (!e.eventsListeners || e.destroyed || !e.eventsAnyListeners) return e;
818      const t = e.eventsAnyListeners.indexOf(s);
819      return t >= 0 && e.eventsAnyListeners.splice(t, 1), e;
820    },
821    off(s, e) {
822      const t = this;
823      return (
824        !t.eventsListeners ||
825          t.destroyed ||
826          !t.eventsListeners ||
827          s.split(" ").forEach((i) => {
828            typeof e > "u"
829              ? (t.eventsListeners[i] = [])
830              : t.eventsListeners[i] &&
831                t.eventsListeners[i].forEach((r, n) => {
832                  (r === e || (r.__emitterProxy && r.__emitterProxy === e)) &&
833                    t.eventsListeners[i].splice(n, 1);
834                });
835          }),
836        t
837      );
838    },
839    emit() {
840      const s = this;
841      if (!s.eventsListeners || s.destroyed || !s.eventsListeners) return s;
842      let e, t, i;
843      for (var r = arguments.length, n = new Array(r), o = 0; o < r; o++)
844        n[o] = arguments[o];
845      return (
846        typeof n[0] == "string" || Array.isArray(n[0])
847          ? ((e = n[0]), (t = n.slice(1, n.length)), (i = s))
848          : ((e = n[0].events), (t = n[0].data), (i = n[0].context || s)),
849        t.unshift(i),
850        (Array.isArray(e) ? e : e.split(" ")).forEach((l) => {
851          s.eventsAnyListeners &&
852            s.eventsAnyListeners.length &&
853            s.eventsAnyListeners.forEach((u) => {
854              u.apply(i, [l, ...t]);
855            }),
856            s.eventsListeners &&
857              s.eventsListeners[l] &&
858              s.eventsListeners[l].forEach((u) => {
859                u.apply(i, t);
860              });
861        }),
862        s
863      );
864    },
865  };
866  function ds() {
867    const s = this;
868    let e, t;
869    const i = s.el;
870    typeof s.params.width < "u" && s.params.width !== null
871      ? (e = s.params.width)
872      : (e = i.clientWidth),
873      typeof s.params.height < "u" && s.params.height !== null
874        ? (t = s.params.height)
875        : (t = i.clientHeight),
876      !((e === 0 && s.isHorizontal()) || (t === 0 && s.isVertical())) &&
877        ((e =
878          e -
879          parseInt(re(i, "padding-left") || 0, 10) -
880          parseInt(re(i, "padding-right") || 0, 10)),
881        (t =
882          t -
883          parseInt(re(i, "padding-top") || 0, 10) -
884          parseInt(re(i, "padding-bottom") || 0, 10)),
885        Number.isNaN(e) && (e = 0),
886        Number.isNaN(t) && (t = 0),
887        Object.assign(s, {
888          width: e,
889          height: t,
890          size: s.isHorizontal() ? e : t,
891        }));
892  }
893  function cs() {
894    const s = this;
895    function e(T, L) {
896      return parseFloat(T.getPropertyValue(s.getDirectionLabel(L)) || 0);
897    }
898    const t = s.params,
899      { wrapperEl: i, slidesEl: r, size: n, rtlTranslate: o, wrongRTL: a } = s,
900      l = s.virtual && t.virtual.enabled,
901      u = l ? s.virtual.slides.length : s.slides.length,
902      d = Q(r, `.${s.params.slideClass}, swiper-slide`),
903      p = l ? s.virtual.slides.length : d.length;
904    let m = [];
905    const h = [],
906      g = [];
907    let w = t.slidesOffsetBefore;
908    typeof w == "function" && (w = t.slidesOffsetBefore.call(s));
909    let b = t.slidesOffsetAfter;
910    typeof b == "function" && (b = t.slidesOffsetAfter.call(s));
911    const S = s.snapGrid.length,
912      c = s.slidesGrid.length;
913    let f = t.spaceBetween,
914      v = -w,
915      y = 0,
916      E = 0;
917    if (typeof n > "u") return;
918    typeof f == "string" && f.indexOf("%") >= 0
919      ? (f = (parseFloat(f.replace("%", "")) / 100) * n)
920      : typeof f == "string" && (f = parseFloat(f)),
921      (s.virtualSize = -f),
922      d.forEach((T) => {
923        o ? (T.style.marginLeft = "") : (T.style.marginRight = ""),
924          (T.style.marginBottom = ""),
925          (T.style.marginTop = "");
926      }),
927      t.centeredSlides &&
928        t.cssMode &&
929        (ve(i, "--swiper-centered-offset-before", ""),
930        ve(i, "--swiper-centered-offset-after", ""));
931    const H = t.grid && t.grid.rows > 1 && s.grid;
932    H ? s.grid.initSlides(d) : s.grid && s.grid.unsetSlides();
933    let I;
934    const D =
935      t.slidesPerView === "auto" &&
936      t.breakpoints &&
937      Object.keys(t.breakpoints).filter(
938        (T) => typeof t.breakpoints[T].slidesPerView < "u"
939      ).length > 0;
940    for (let T = 0; T < p; T += 1) {
941      I = 0;
942      let L;
943      if (
944        (d[T] && (L = d[T]),
945        H && s.grid.updateSlide(T, L, d),
946        !(d[T] && re(L, "display") === "none"))
947      ) {
948        if (t.slidesPerView === "auto") {
949          D && (d[T].style[s.getDirectionLabel("width")] = "");
950          const k = getComputedStyle(L),
951            C = L.style.transform,
952            $ = L.style.webkitTransform;
953          if (
954            (C && (L.style.transform = "none"),
955            $ && (L.style.webkitTransform = "none"),
956            t.roundLengths)
957          )
958            I = s.isHorizontal() ? Ie(L, "width") : Ie(L, "height");
959          else {
960            const B = e(k, "width"),
961              R = e(k, "padding-left"),
962              te = e(k, "padding-right"),
963              V = e(k, "margin-left"),
964              U = e(k, "margin-right"),
965              O = k.getPropertyValue("box-sizing");
966            if (O && O === "border-box") I = B + V + U;
967            else {
968              const { clientWidth: se, offsetWidth: ne } = L;
969              I = B + R + te + V + U + (ne - se);
970            }
971          }
972          C && (L.style.transform = C),
973            $ && (L.style.webkitTransform = $),
974            t.roundLengths && (I = Math.floor(I));
975        } else
976          (I = (n - (t.slidesPerView - 1) * f) / t.slidesPerView),
977            t.roundLengths && (I = Math.floor(I)),
978            d[T] && (d[T].style[s.getDirectionLabel("width")] = `${I}px`);
979        d[T] && (d[T].swiperSlideSize = I),
980          g.push(I),
981          t.centeredSlides
982            ? ((v = v + I / 2 + y / 2 + f),
983              y === 0 && T !== 0 && (v = v - n / 2 - f),
984              T === 0 && (v = v - n / 2 - f),
985              Math.abs(v) < 0.001 && (v = 0),
986              t.roundLengths && (v = Math.floor(v)),
987              E % t.slidesPerGroup === 0 && m.push(v),
988              h.push(v))
989            : (t.roundLengths && (v = Math.floor(v)),
990              (E - Math.min(s.params.slidesPerGroupSkip, E)) %
991                s.params.slidesPerGroup ===
992                0 && m.push(v),
993              h.push(v),
994              (v = v + I + f)),
995          (s.virtualSize += I + f),
996          (y = I),
997          (E += 1);
998      }
999    }
1000    if (
1001      ((s.virtualSize = Math.max(s.virtualSize, n) + b),
1002      o &&
1003        a &&
1004        (t.effect === "slide" || t.effect === "coverflow") &&
1005        (i.style.width = `${s.virtualSize + f}px`),
1006      t.setWrapperSize &&
1007        (i.style[s.getDirectionLabel("width")] = `${s.virtualSize + f}px`),
1008      H && s.grid.updateWrapperSize(I, m),
1009      !t.centeredSlides)
1010    ) {
1011      const T = [];
1012      for (let L = 0; L < m.length; L += 1) {
1013        let k = m[L];
1014        t.roundLengths && (k = Math.floor(k)),
1015          m[L] <= s.virtualSize - n && T.push(k);
1016      }
1017      (m = T),
1018        Math.floor(s.virtualSize - n) - Math.floor(m[m.length - 1]) > 1 &&
1019          m.push(s.virtualSize - n);
1020    }
1021    if (l && t.loop) {
1022      const T = g[0] + f;
1023      if (t.slidesPerGroup > 1) {
1024        const L = Math.ceil(
1025            (s.virtual.slidesBefore + s.virtual.slidesAfter) / t.slidesPerGroup
1026          ),
1027          k = T * t.slidesPerGroup;
1028        for (let C = 0; C < L; C += 1) m.push(m[m.length - 1] + k);
1029      }
1030      for (
1031        let L = 0;
1032        L < s.virtual.slidesBefore + s.virtual.slidesAfter;
1033        L += 1
1034      )
1035        t.slidesPerGroup === 1 && m.push(m[m.length - 1] + T),
1036          h.push(h[h.length - 1] + T),
1037          (s.virtualSize += T);
1038    }
1039    if ((m.length === 0 && (m = [0]), f !== 0)) {
1040      const T =
1041        s.isHorizontal() && o
1042          ? "marginLeft"
1043          : s.getDirectionLabel("marginRight");
1044      d.filter((L, k) =>
1045        !t.cssMode || t.loop ? !0 : k !== d.length - 1
1046      ).forEach((L) => {
1047        L.style[T] = `${f}px`;
1048      });
1049    }
1050    if (t.centeredSlides && t.centeredSlidesBounds) {
1051      let T = 0;
1052      g.forEach((k) => {
1053        T += k + (f || 0);
1054      }),
1055        (T -= f);
1056      const L = T > n ? T - n : 0;
1057      m = m.map((k) => (k <= 0 ? -w : k > L ? L + b : k));
1058    }
1059    if (t.centerInsufficientSlides) {
1060      let T = 0;
1061      g.forEach((k) => {
1062        T += k + (f || 0);
1063      }),
1064        (T -= f);
1065      const L = (t.slidesOffsetBefore || 0) + (t.slidesOffsetAfter || 0);
1066      if (T + L < n) {
1067        const k = (n - T - L) / 2;
1068        m.forEach((C, $) => {
1069          m[$] = C - k;
1070        }),
1071          h.forEach((C, $) => {
1072            h[$] = C + k;
1073          });
1074      }
1075    }
1076    if (
1077      (Object.assign(s, {
1078        slides: d,
1079        snapGrid: m,
1080        slidesGrid: h,
1081        slidesSizesGrid: g,
1082      }),
1083      t.centeredSlides && t.cssMode && !t.centeredSlidesBounds)
1084    ) {
1085      ve(i, "--swiper-centered-offset-before", `${-m[0]}px`),
1086        ve(
1087          i,
1088          "--swiper-centered-offset-after",
1089          `${s.size / 2 - g[g.length - 1] / 2}px`
1090        );
1091      const T = -s.snapGrid[0],
1092        L = -s.slidesGrid[0];
1093      (s.snapGrid = s.snapGrid.map((k) => k + T)),
1094        (s.slidesGrid = s.slidesGrid.map((k) => k + L));
1095    }
1096    if (
1097      (p !== u && s.emit("slidesLengthChange"),
1098      m.length !== S &&
1099        (s.params.watchOverflow && s.checkOverflow(),
1100        s.emit("snapGridLengthChange")),
1101      h.length !== c && s.emit("slidesGridLengthChange"),
1102      t.watchSlidesProgress && s.updateSlidesOffset(),
1103      s.emit("slidesUpdated"),
1104      !l && !t.cssMode && (t.effect === "slide" || t.effect === "fade"))
1105    ) {
1106      const T = `${t.containerModifierClass}backface-hidden`,
1107        L = s.el.classList.contains(T);
1108      p <= t.maxBackfaceHiddenSlides
1109        ? L || s.el.classList.add(T)
1110        : L && s.el.classList.remove(T);
1111    }
1112  }
1113  function us(s) {
1114    const e = this,
1115      t = [],
1116      i = e.virtual && e.params.virtual.enabled;
1117    let r = 0,
1118      n;
1119    typeof s == "number"
1120      ? e.setTransition(s)
1121      : s === !0 && e.setTransition(e.params.speed);
1122    const o = (a) => (i ? e.slides[e.getSlideIndexByData(a)] : e.slides[a]);
1123    if (e.params.slidesPerView !== "auto" && e.params.slidesPerView > 1)
1124      if (e.params.centeredSlides)
1125        (e.visibleSlides || []).forEach((a) => {
1126          t.push(a);
1127        });
1128      else
1129        for (n = 0; n < Math.ceil(e.params.slidesPerView); n += 1) {
1130          const a = e.activeIndex + n;
1131          if (a > e.slides.length && !i) break;
1132          t.push(o(a));
1133        }
1134    else t.push(o(e.activeIndex));
1135    for (n = 0; n < t.length; n += 1)
1136      if (typeof t[n] < "u") {
1137        const a = t[n].offsetHeight;
1138        r = a > r ? a : r;
1139      }
1140    (r || r === 0) && (e.wrapperEl.style.height = `${r}px`);
1141  }
1142  function fs() {
1143    const s = this,
1144      e = s.slides,
1145      t = s.isElement
1146        ? s.isHorizontal()
1147          ? s.wrapperEl.offsetLeft
1148          : s.wrapperEl.offsetTop
1149        : 0;
1150    for (let i = 0; i < e.length; i += 1)
1151      e[i].swiperSlideOffset =
1152        (s.isHorizontal() ? e[i].offsetLeft : e[i].offsetTop) -
1153        t -
1154        s.cssOverflowAdjustment();
1155  }
1156  const at = (s, e, t) => {
1157    e && !s.classList.contains(t)
1158      ? s.classList.add(t)
1159      : !e && s.classList.contains(t) && s.classList.remove(t);
1160  };
1161  function ps(s) {
1162    s === void 0 && (s = (this && this.translate) || 0);
1163    const e = this,
1164      t = e.params,
1165      { slides: i, rtlTranslate: r, snapGrid: n } = e;
1166    if (i.length === 0) return;
1167    typeof i[0].swiperSlideOffset > "u" && e.updateSlidesOffset();
1168    let o = -s;
1169    r && (o = s), (e.visibleSlidesIndexes = []), (e.visibleSlides = []);
1170    let a = t.spaceBetween;
1171    typeof a == "string" && a.indexOf("%") >= 0
1172      ? (a = (parseFloat(a.replace("%", "")) / 100) * e.size)
1173      : typeof a == "string" && (a = parseFloat(a));
1174    for (let l = 0; l < i.length; l += 1) {
1175      const u = i[l];
1176      let d = u.swiperSlideOffset;
1177      t.cssMode && t.centeredSlides && (d -= i[0].swiperSlideOffset);
1178      const p =
1179          (o + (t.centeredSlides ? e.minTranslate() : 0) - d) /
1180          (u.swiperSlideSize + a),
1181        m =
1182          (o - n[0] + (t.centeredSlides ? e.minTranslate() : 0) - d) /
1183          (u.swiperSlideSize + a),
1184        h = -(o - d),
1185        g = h + e.slidesSizesGrid[l],
1186        w = h >= 0 && h <= e.size - e.slidesSizesGrid[l],
1187        b =
1188          (h >= 0 && h < e.size - 1) ||
1189          (g > 1 && g <= e.size) ||
1190          (h <= 0 && g >= e.size);
1191      b && (e.visibleSlides.push(u), e.visibleSlidesIndexes.push(l)),
1192        at(u, b, t.slideVisibleClass),
1193        at(u, w, t.slideFullyVisibleClass),
1194        (u.progress = r ? -p : p),
1195        (u.originalProgress = r ? -m : m);
1196    }
1197  }
1198  function ms(s) {
1199    const e = this;
1200    if (typeof s > "u") {
1201      const d = e.rtlTranslate ? -1 : 1;
1202      s = (e && e.translate && e.translate * d) || 0;
1203    }
1204    const t = e.params,
1205      i = e.maxTranslate() - e.minTranslate();
1206    let { progress: r, isBeginning: n, isEnd: o, progressLoop: a } = e;
1207    const l = n,
1208      u = o;
1209    if (i === 0) (r = 0), (n = !0), (o = !0);
1210    else {
1211      r = (s - e.minTranslate()) / i;
1212      const d = Math.abs(s - e.minTranslate()) < 1,
1213        p = Math.abs(s - e.maxTranslate()) < 1;
1214      (n = d || r <= 0), (o = p || r >= 1), d && (r = 0), p && (r = 1);
1215    }
1216    if (t.loop) {
1217      const d = e.getSlideIndexByData(0),
1218        p = e.getSlideIndexByData(e.slides.length - 1),
1219        m = e.slidesGrid[d],
1220        h = e.slidesGrid[p],
1221        g = e.slidesGrid[e.slidesGrid.length - 1],
1222        w = Math.abs(s);
1223      w >= m ? (a = (w - m) / g) : (a = (w + g - h) / g), a > 1 && (a -= 1);
1224    }
1225    Object.assign(e, {
1226      progress: r,
1227      progressLoop: a,
1228      isBeginning: n,
1229      isEnd: o,
1230    }),
1231      (t.watchSlidesProgress || (t.centeredSlides && t.autoHeight)) &&
1232        e.updateSlidesProgress(s),
1233      n && !l && e.emit("reachBeginning toEdge"),
1234      o && !u && e.emit("reachEnd toEdge"),
1235      ((l && !n) || (u && !o)) && e.emit("fromEdge"),
1236      e.emit("progress", r);
1237  }
1238  const ze = (s, e, t) => {
1239    e && !s.classList.contains(t)
1240      ? s.classList.add(t)
1241      : !e && s.classList.contains(t) && s.classList.remove(t);
1242  };
1243  function hs() {
1244    const s = this,
1245      { slides: e, params: t, slidesEl: i, activeIndex: r } = s,
1246      n = s.virtual && t.virtual.enabled,
1247      o = s.grid && t.grid && t.grid.rows > 1,
1248      a = (p) => Q(i, `.${t.slideClass}${p}, swiper-slide${p}`)[0];
1249    let l, u, d;
1250    if (n)
1251      if (t.loop) {
1252        let p = r - s.virtual.slidesBefore;
1253        p < 0 && (p = s.virtual.slides.length + p),
1254          p >= s.virtual.slides.length && (p -= s.virtual.slides.length),
1255          (l = a(`[data-swiper-slide-index="${p}"]`));
1256      } else l = a(`[data-swiper-slide-index="${r}"]`);
1257    else
1258      o
1259        ? ((l = e.filter((p) => p.column === r)[0]),
1260          (d = e.filter((p) => p.column === r + 1)[0]),
1261          (u = e.filter((p) => p.column === r - 1)[0]))
1262        : (l = e[r]);
1263    l &&
1264      (o ||
1265        ((d = es(l, `.${t.slideClass}, swiper-slide`)[0]),
1266        t.loop && !d && (d = e[0]),
1267        (u = Zt(l, `.${t.slideClass}, swiper-slide`)[0]),
1268        t.loop && !u === 0 && (u = e[e.length - 1]))),
1269      e.forEach((p) => {
1270        ze(p, p === l, t.slideActiveClass),
1271          ze(p, p === d, t.slideNextClass),
1272          ze(p, p === u, t.slidePrevClass);
1273      }),
1274      s.emitSlidesClasses();
1275  }
1276  const be = (s, e) => {
1277      if (!s || s.destroyed || !s.params) return;
1278      const t = () =>
1279          s.isElement ? "swiper-slide" : `.${s.params.slideClass}`,
1280        i = e.closest(t());
1281      if (i) {
1282        let r = i.querySelector(`.${s.params.lazyPreloaderClass}`);
1283        !r &&
1284          s.isElement &&
1285          (i.shadowRoot
1286            ? (r = i.shadowRoot.querySelector(
1287                `.${s.params.lazyPreloaderClass}`
1288              ))
1289            : requestAnimationFrame(() => {
1290                i.shadowRoot &&
1291                  ((r = i.shadowRoot.querySelector(
1292                    `.${s.params.lazyPreloaderClass}`
1293                  )),
1294                  r && r.remove());
1295              })),
1296          r && r.remove();
1297      }
1298    },
1299    De = (s, e) => {
1300      if (!s.slides[e]) return;
1301      const t = s.slides[e].querySelector('[loading="lazy"]');
1302      t && t.removeAttribute("loading");
1303    },
1304    qe = (s) => {
1305      if (!s || s.destroyed || !s.params) return;
1306      let e = s.params.lazyPreloadPrevNext;
1307      const t = s.slides.length;
1308      if (!t || !e || e < 0) return;
1309      e = Math.min(e, t);
1310      const i =
1311          s.params.slidesPerView === "auto"
1312            ? s.slidesPerViewDynamic()
1313            : Math.ceil(s.params.slidesPerView),
1314        r = s.activeIndex;
1315      if (s.params.grid && s.params.grid.rows > 1) {
1316        const o = r,
1317          a = [o - e];
1318        a.push(...Array.from({ length: e }).map((l, u) => o + i + u)),
1319          s.slides.forEach((l, u) => {
1320            a.includes(l.column) && De(s, u);
1321          });
1322        return;
1323      }
1324      const n = r + i - 1;
1325      if (s.params.rewind || s.params.loop)
1326        for (let o = r - e; o <= n + e; o += 1) {
1327          const a = ((o % t) + t) % t;
1328          (a < r || a > n) && De(s, a);
1329        }
1330      else
1331        for (let o = Math.max(r - e, 0); o <= Math.min(n + e, t - 1); o += 1)
1332          o !== r && (o > n || o < r) && De(s, o);
1333    };
1334  function gs(s) {
1335    const { slidesGrid: e, params: t } = s,
1336      i = s.rtlTranslate ? s.translate : -s.translate;
1337    let r;
1338    for (let n = 0; n < e.length; n += 1)
1339      typeof e[n + 1] < "u"
1340        ? i >= e[n] && i < e[n + 1] - (e[n + 1] - e[n]) / 2
1341          ? (r = n)
1342          : i >= e[n] && i < e[n + 1] && (r = n + 1)
1343        : i >= e[n] && (r = n);
1344    return t.normalizeSlideIndex && (r < 0 || typeof r > "u") && (r = 0), r;
1345  }
1346  function vs(s) {
1347    const e = this,
1348      t = e.rtlTranslate ? e.translate : -e.translate,
1349      {
1350        snapGrid: i,
1351        params: r,
1352        activeIndex: n,
1353        realIndex: o,
1354        snapIndex: a,
1355      } = e;
1356    let l = s,
1357      u;
1358    const d = (h) => {
1359      let g = h - e.virtual.slidesBefore;
1360      return (
1361        g < 0 && (g = e.virtual.slides.length + g),
1362        g >= e.virtual.slides.length && (g -= e.virtual.slides.length),
1363        g
1364      );
1365    };
1366    if ((typeof l > "u" && (l = gs(e)), i.indexOf(t) >= 0)) u = i.indexOf(t);
1367    else {
1368      const h = Math.min(r.slidesPerGroupSkip, l);
1369      u = h + Math.floor((l - h) / r.slidesPerGroup);
1370    }
1371    if ((u >= i.length && (u = i.length - 1), l === n && !e.params.loop)) {
1372      u !== a && ((e.snapIndex = u), e.emit("snapIndexChange"));
1373      return;
1374    }
1375    if (l === n && e.params.loop && e.virtual && e.params.virtual.enabled) {
1376      e.realIndex = d(l);
1377      return;
1378    }
1379    const p = e.grid && r.grid && r.grid.rows > 1;
1380    let m;
1381    if (e.virtual && r.virtual.enabled && r.loop) m = d(l);
1382    else if (p) {
1383      const h = e.slides.filter((w) => w.column === l)[0];
1384      let g = parseInt(h.getAttribute("data-swiper-slide-index"), 10);
1385      Number.isNaN(g) && (g = Math.max(e.slides.indexOf(h), 0)),
1386        (m = Math.floor(g / r.grid.rows));
1387    } else if (e.slides[l]) {
1388      const h = e.slides[l].getAttribute("data-swiper-slide-index");
1389      h ? (m = parseInt(h, 10)) : (m = l);
1390    } else m = l;
1391    Object.assign(e, {
1392      previousSnapIndex: a,
1393      snapIndex: u,
1394      previousRealIndex: o,
1395      realIndex: m,
1396      previousIndex: n,
1397      activeIndex: l,
1398    }),
1399      e.initialized && qe(e),
1400      e.emit("activeIndexChange"),
1401      e.emit("snapIndexChange"),
1402      (e.initialized || e.params.runCallbacksOnInit) &&
1403        (o !== m && e.emit("realIndexChange"), e.emit("slideChange"));
1404  }
1405  function ys(s, e) {
1406    const t = this,
1407      i = t.params;
1408    let r = s.closest(`.${i.slideClass}, swiper-slide`);
1409    !r &&
1410      t.isElement &&
1411      e &&
1412      e.length > 1 &&
1413      e.includes(s) &&
1414      [...e.slice(e.indexOf(s) + 1, e.length)].forEach((a) => {
1415        !r &&
1416          a.matches &&
1417          a.matches(`.${i.slideClass}, swiper-slide`) &&
1418          (r = a);
1419      });
1420    let n = !1,
1421      o;
1422    if (r) {
1423      for (let a = 0; a < t.slides.length; a += 1)
1424        if (t.slides[a] === r) {
1425          (n = !0), (o = a);
1426          break;
1427        }
1428    }
1429    if (r && n)
1430      (t.clickedSlide = r),
1431        t.virtual && t.params.virtual.enabled
1432          ? (t.clickedIndex = parseInt(
1433              r.getAttribute("data-swiper-slide-index"),
1434              10
1435            ))
1436          : (t.clickedIndex = o);
1437    else {
1438      (t.clickedSlide = void 0), (t.clickedIndex = void 0);
1439      return;
1440    }
1441    i.slideToClickedSlide &&
1442      t.clickedIndex !== void 0 &&
1443      t.clickedIndex !== t.activeIndex &&
1444      t.slideToClickedSlide();
1445  }
1446  var ws = {
1447    updateSize: ds,
1448    updateSlides: cs,
1449    updateAutoHeight: us,
1450    updateSlidesOffset: fs,
1451    updateSlidesProgress: ps,
1452    updateProgress: ms,
1453    updateSlidesClasses: hs,
1454    updateActiveIndex: vs,
1455    updateClickedSlide: ys,
1456  };
1457  function Ss(s) {
1458    s === void 0 && (s = this.isHorizontal() ? "x" : "y");
1459    const e = this,
1460      { params: t, rtlTranslate: i, translate: r, wrapperEl: n } = e;
1461    if (t.virtualTranslate) return i ? -r : r;
1462    if (t.cssMode) return r;
1463    let o = Kt(n, s);
1464    return (o += e.cssOverflowAdjustment()), i && (o = -o), o || 0;
1465  }
1466  function bs(s, e) {
1467    const t = this,
1468      { rtlTranslate: i, params: r, wrapperEl: n, progress: o } = t;
1469    let a = 0,
1470      l = 0;
1471    const u = 0;
1472    t.isHorizontal() ? (a = i ? -s : s) : (l = s),
1473      r.roundLengths && ((a = Math.floor(a)), (l = Math.floor(l))),
1474      (t.previousTranslate = t.translate),
1475      (t.translate = t.isHorizontal() ? a : l),
1476      r.cssMode
1477        ? (n[t.isHorizontal() ? "scrollLeft" : "scrollTop"] = t.isHorizontal()
1478            ? -a
1479            : -l)
1480        : r.virtualTranslate ||
1481          (t.isHorizontal()
1482            ? (a -= t.cssOverflowAdjustment())
1483            : (l -= t.cssOverflowAdjustment()),
1484          (n.style.transform = `translate3d(${a}px, ${l}px, ${u}px)`));
1485    let d;
1486    const p = t.maxTranslate() - t.minTranslate();
1487    p === 0 ? (d = 0) : (d = (s - t.minTranslate()) / p),
1488      d !== o && t.updateProgress(s),
1489      t.emit("setTranslate", t.translate, e);
1490  }
1491  function Ts() {
1492    return -this.snapGrid[0];
1493  }
1494  function xs() {
1495    return -this.snapGrid[this.snapGrid.length - 1];
1496  }
1497  function Es(s, e, t, i, r) {
1498    s === void 0 && (s = 0),
1499      e === void 0 && (e = this.params.speed),
1500      t === void 0 && (t = !0),
1501      i === void 0 && (i = !0);
1502    const n = this,
1503      { params: o, wrapperEl: a } = n;
1504    if (n.animating && o.preventInteractionOnTransition) return !1;
1505    const l = n.minTranslate(),
1506      u = n.maxTranslate();
1507    let d;
1508    if (
1509      (i && s > l ? (d = l) : i && s < u ? (d = u) : (d = s),
1510      n.updateProgress(d),
1511      o.cssMode)
1512    ) {
1513      const p = n.isHorizontal();
1514      if (e === 0) a[p ? "scrollLeft" : "scrollTop"] = -d;
1515      else {
1516        if (!n.support.smoothScroll)
1517          return (
1518            tt({ swiper: n, targetPosition: -d, side: p ? "left" : "top" }), !0
1519          );
1520        a.scrollTo({ [p ? "left" : "top"]: -d, behavior: "smooth" });
1521      }
1522      return !0;
1523    }
1524    return (
1525      e === 0
1526        ? (n.setTransition(0),
1527          n.setTranslate(d),
1528          t && (n.emit("beforeTransitionStart", e, r), n.emit("transitionEnd")))
1529        : (n.setTransition(e),
1530          n.setTranslate(d),
1531          t &&
1532            (n.emit("beforeTransitionStart", e, r), n.emit("transitionStart")),
1533          n.animating ||
1534            ((n.animating = !0),
1535            n.onTranslateToWrapperTransitionEnd ||
1536              (n.onTranslateToWrapperTransitionEnd = function (m) {
1537                !n ||
1538                  n.destroyed ||
1539                  (m.target === this &&
1540                    (n.wrapperEl.removeEventListener(
1541                      "transitionend",
1542                      n.onTranslateToWrapperTransitionEnd
1543                    ),
1544                    (n.onTranslateToWrapperTransitionEnd = null),
1545                    delete n.onTranslateToWrapperTransitionEnd,
1546                    (n.animating = !1),
1547                    t && n.emit("transitionEnd")));
1548              }),
1549            n.wrapperEl.addEventListener(
1550              "transitionend",
1551              n.onTranslateToWrapperTransitionEnd
1552            ))),
1553      !0
1554    );
1555  }
1556  var Ls = {
1557    getTranslate: Ss,
1558    setTranslate: bs,
1559    minTranslate: Ts,
1560    maxTranslate: xs,
1561    translateTo: Es,
1562  };
1563  function Cs(s, e) {
1564    const t = this;
1565    t.params.cssMode ||
1566      ((t.wrapperEl.style.transitionDuration = `${s}ms`),
1567      (t.wrapperEl.style.transitionDelay = s === 0 ? "0ms" : "")),
1568      t.emit("setTransition", s, e);
1569  }
1570  function ot(s) {
1571    let { swiper: e, runCallbacks: t, direction: i, step: r } = s;
1572    const { activeIndex: n, previousIndex: o } = e;
1573    let a = i;
1574    if (
1575      (a || (n > o ? (a = "next") : n < o ? (a = "prev") : (a = "reset")),
1576      e.emit(`transition${r}`),
1577      t && n !== o)
1578    ) {
1579      if (a === "reset") {
1580        e.emit(`slideResetTransition${r}`);
1581        return;
1582      }
1583      e.emit(`slideChangeTransition${r}`),
1584        a === "next"
1585          ? e.emit(`slideNextTransition${r}`)
1586          : e.emit(`slidePrevTransition${r}`);
1587    }
1588  }
1589  function Ps(s, e) {
1590    s === void 0 && (s = !0);
1591    const t = this,
1592      { params: i } = t;
1593    i.cssMode ||
1594      (i.autoHeight && t.updateAutoHeight(),
1595      ot({ swiper: t, runCallbacks: s, direction: e, step: "Start" }));
1596  }
1597  function Ms(s, e) {
1598    s === void 0 && (s = !0);
1599    const t = this,
1600      { params: i } = t;
1601    (t.animating = !1),
1602      !i.cssMode &&
1603        (t.setTransition(0),
1604        ot({ swiper: t, runCallbacks: s, direction: e, step: "End" }));
1605  }
1606  var As = { setTransition: Cs, transitionStart: Ps, transitionEnd: Ms };
1607  function Is(s, e, t, i, r) {
1608    s === void 0 && (s = 0),
1609      t === void 0 && (t = !0),
1610      typeof s == "string" && (s = parseInt(s, 10));
1611    const n = this;
1612    let o = s;
1613    o < 0 && (o = 0);
1614    const {
1615      params: a,
1616      snapGrid: l,
1617      slidesGrid: u,
1618      previousIndex: d,
1619      activeIndex: p,
1620      rtlTranslate: m,
1621      wrapperEl: h,
1622      enabled: g,
1623    } = n;
1624    if (
1625      (!g && !i && !r) ||
1626      n.destroyed ||
1627      (n.animating && a.preventInteractionOnTransition)
1628    )
1629      return !1;
1630    typeof e > "u" && (e = n.params.speed);
1631    const w = Math.min(n.params.slidesPerGroupSkip, o);
1632    let b = w + Math.floor((o - w) / n.params.slidesPerGroup);
1633    b >= l.length && (b = l.length - 1);
1634    const S = -l[b];
1635    if (a.normalizeSlideIndex)
1636      for (let y = 0; y < u.length; y += 1) {
1637        const E = -Math.floor(S * 100),
1638          H = Math.floor(u[y] * 100),
1639          I = Math.floor(u[y + 1] * 100);
1640        typeof u[y + 1] < "u"
1641          ? E >= H && E < I - (I - H) / 2
1642            ? (o = y)
1643            : E >= H && E < I && (o = y + 1)
1644          : E >
1644= H && (o = y);
1645      }
1646    if (
1647      n.initialized &&
1648      o !== p &&
1649      ((!n.allowSlideNext &&
1650        (m
1651          ? S > n.translate && S > n.minTranslate()
1652          : S < n.translate && S < n.minTranslate())) ||
1653        (!n.allowSlidePrev &&
1654          S > n.translate &&
1655          S > n.maxTranslate() &&
1656          (p || 0) !== o))
1657    )
1658      return !1;
1659    o !== (d || 0) && t && n.emit("beforeSlideChangeStart"),
1660      n.updateProgress(S);
1661    let c;
1662    o > p ? (c = "next") : o < p ? (c = "prev") : (c = "reset");
1663    const f = n.virtual && n.params.virtual.enabled;
1664    if (!(f && r) && ((m && -S === n.translate) || (!m && S === n.translate)))
1665      return (
1666        n.updateActiveIndex(o),
1667        a.autoHeight && n.updateAutoHeight(),
1668        n.updateSlidesClasses(),
1669        a.effect !== "slide" && n.setTranslate(S),
1670        c !== "reset" && (n.transitionStart(t, c), n.transitionEnd(t, c)),
1671        !1
1672      );
1673    if (a.cssMode) {
1674      const y = n.isHorizontal(),
1675        E = m ? S : -S;
1676      if (e === 0)
1677        f &&
1678          ((n.wrapperEl.style.scrollSnapType = "none"),
1679          (n._immediateVirtual = !0)),
1680          f && !n._cssModeVirtualInitialSet && n.params.initialSlide > 0
1681            ? ((n._cssModeVirtualInitialSet = !0),
1682              requestAnimationFrame(() => {
1683                h[y ? "scrollLeft" : "scrollTop"] = E;
1684              }))
1685            : (h[y ? "scrollLeft" : "scrollTop"] = E),
1686          f &&
1687            requestAnimationFrame(() => {
1688              (n.wrapperEl.style.scrollSnapType = ""),
1689                (n._immediateVirtual = !1);
1690            });
1691      else {
1692        if (!n.support.smoothScroll)
1693          return (
1694            tt({ swiper: n, targetPosition: E, side: y ? "left" : "top" }), !0
1695          );
1696        h.scrollTo({ [y ? "left" : "top"]: E, behavior: "smooth" });
1697      }
1698      return !0;
1699    }
1700    return (
1701      n.setTransition(e),
1702      n.setTranslate(S),
1703      n.updateActiveIndex(o),
1704      n.updateSlidesClasses(),
1705      n.emit("beforeTransitionStart", e, i),
1706      n.transitionStart(t, c),
1707      e === 0
1708        ? n.transitionEnd(t, c)
1709        : n.animating ||
1710          ((n.animating = !0),
1711          n.onSlideToWrapperTransitionEnd ||
1712            (n.onSlideToWrapperTransitionEnd = function (E) {
1713              !n ||
1714                n.destroyed ||
1715                (E.target === this &&
1716                  (n.wrapperEl.removeEventListener(
1717                    "transitionend",
1718                    n.onSlideToWrapperTransitionEnd
1719                  ),
1720                  (n.onSlideToWrapperTransitionEnd = null),
1721                  delete n.onSlideToWrapperTransitionEnd,
1722                  n.transitionEnd(t, c)));
1723            }),
1724          n.wrapperEl.addEventListener(
1725            "transitionend",
1726            n.onSlideToWrapperTransitionEnd
1727          )),
1728      !0
1729    );
1730  }
1731  function ks(s, e, t, i) {
1732    s === void 0 && (s = 0),
1733      t === void 0 && (t = !0),
1734      typeof s == "string" && (s = parseInt(s, 10));
1735    const r = this;
1736    if (r.destroyed) return;
1737    typeof e > "u" && (e = r.params.speed);
1738    const n = r.grid && r.params.grid && r.params.grid.rows > 1;
1739    let o = s;
1740    if (r.params.loop)
1741      if (r.virtual && r.params.virtual.enabled) o = o + r.virtual.slidesBefore;
1742      else {
1743        let a;
1744        if (n) {
1745          const m = o * r.params.grid.rows;
1746          a = r.slides.filter(
1747            (h) => h.getAttribute("data-swiper-slide-index") * 1 === m
1748          )[0].column;
1749        } else a = r.getSlideIndexByData(o);
1750        const l = n
1751            ? Math.ceil(r.slides.length / r.params.grid.rows)
1752            : r.slides.length,
1753          { centeredSlides: u } = r.params;
1754        let d = r.params.slidesPerView;
1755        d === "auto"
1756          ? (d = r.slidesPerViewDynamic())
1757          : ((d = Math.ceil(parseFloat(r.params.slidesPerView, 10))),
1758            u && d % 2 === 0 && (d = d + 1));
1759        let p = l - a < d;
1760        if (
1761          (u && (p = p || a < Math.ceil(d / 2)),
1762          i && u && r.params.slidesPerView !== "auto" && !n && (p = !1),
1763          p)
1764        ) {
1765          const m = u
1766            ? a < r.activeIndex
1767              ? "prev"
1768              : "next"
1769            : a - r.activeIndex - 1 < r.params.slidesPerView
1770            ? "next"
1771            : "prev";
1772          r.loopFix({
1773            direction: m,
1774            slideTo: !0,
1775            activeSlideIndex: m === "next" ? a + 1 : a - l + 1,
1776            slideRealIndex: m === "next" ? r.realIndex : void 0,
1777          });
1778        }
1779        if (n) {
1780          const m = o * r.params.grid.rows;
1781          o = r.slides.filter(
1782            (h) => h.getAttribute("data-swiper-slide-index") * 1 === m
1783          )[0].column;
1784        } else o = r.getSlideIndexByData(o);
1785      }
1786    return (
1787      requestAnimationFrame(() => {
1788        r.slideTo(o, e, t, i);
1789      }),
1790      r
1791    );
1792  }
1793  function Os(s, e, t) {
1794    e === void 0 && (e = !0);
1795    const i = this,
1796      { enabled: r, params: n, animating: o } = i;
1797    if (!r || i.destroyed) return i;
1798    typeof s > "u" && (s = i.params.speed);
1799    let a = n.slidesPerGroup;
1800    n.slidesPerView === "auto" &&
1801      n.slidesPerGroup === 1 &&
1802      n.slidesPerGroupAuto &&
1803      (a = Math.max(i.slidesPerViewDynamic("current", !0), 1));
1804    const l = i.activeIndex < n.slidesPerGroupSkip ? 1 : a,
1805      u = i.virtual && n.virtual.enabled;
1806    if (n.loop) {
1807      if (o && !u && n.loopPreventsSliding) return !1;
1808      if (
1809        (i.loopFix({ direction: "next" }),
1810        (i._clientLeft = i.wrapperEl.clientLeft),
1811        i.activeIndex === i.slides.length - 1 && n.cssMode)
1812      )
1813        return (
1814          requestAnimationFrame(() => {
1815            i.slideTo(i.activeIndex + l, s, e, t);
1816          }),
1817          !0
1818        );
1819    }
1820    return n.rewind && i.isEnd
1821      ? i.slideTo(0, s, e, t)
1822      : i.slideTo(i.activeIndex + l, s, e, t);
1823  }
1824  function $s(s, e, t) {
1825    e === void 0 && (e = !0);
1826    const i = this,
1827      {
1828        params: r,
1829        snapGrid: n,
1830        slidesGrid: o,
1831        rtlTranslate: a,
1832        enabled: l,
1833        animating: u,
1834      } = i;
1835    if (!l || i.destroyed) return i;
1836    typeof s > "u" && (s = i.params.speed);
1837    const d = i.virtual && r.virtual.enabled;
1838    if (r.loop) {
1839      if (u && !d && r.loopPreventsSliding) return !1;
1840      i.loopFix({ direction: "prev" }),
1841        (i._clientLeft = i.wrapperEl.clientLeft);
1842    }
1843    const p = a ? i.translate : -i.translate;
1844    function m(S) {
1845      return S < 0 ? -Math.floor(Math.abs(S)) : Math.floor(S);
1846    }
1847    const h = m(p),
1848      g = n.map((S) => m(S));
1849    let w = n[g.indexOf(h) - 1];
1850    if (typeof w > "u" && r.cssMode) {
1851      let S;
1852      n.forEach((c, f) => {
1853        h >= c && (S = f);
1854      }),
1855        typeof S < "u" && (w = n[S > 0 ? S - 1 : S]);
1856    }
1857    let b = 0;
1858    if (
1859      (typeof w < "u" &&
1860        ((b = o.indexOf(w)),
1861        b < 0 && (b = i.activeIndex - 1),
1862        r.slidesPerView === "auto" &&
1863          r.slidesPerGroup === 1 &&
1864          r.slidesPerGroupAuto &&
1865          ((b = b - i.slidesPerViewDynamic("previous", !0) + 1),
1866          (b = Math.max(b, 0)))),
1867      r.rewind && i.isBeginning)
1868    ) {
1869      const S =
1870        i.params.virtual && i.params.virtual.enabled && i.virtual
1871          ? i.virtual.slides.length - 1
1872          : i.slides.length - 1;
1873      return i.slideTo(S, s, e, t);
1874    } else if (r.loop && i.activeIndex === 0 && r.cssMode)
1875      return (
1876        requestAnimationFrame(() => {
1877          i.slideTo(b, s, e, t);
1878        }),
1879        !0
1880      );
1881    return i.slideTo(b, s, e, t);
1882  }
1883  function zs(s, e, t) {
1884    e === void 0 && (e = !0);
1885    const i = this;
1886    if (!i.destroyed)
1887      return (
1888        typeof s > "u" && (s = i.params.speed),
1889        i.slideTo(i.activeIndex, s, e, t)
1890      );
1891  }
1892  function Ds(s, e, t, i) {
1893    e === void 0 && (e = !0), i === void 0 && (i = 0.5);
1894    const r = this;
1895    if (r.destroyed) return;
1896    typeof s > "u" && (s = r.params.speed);
1897    let n = r.activeIndex;
1898    const o = Math.min(r.params.slidesPerGroupSkip, n),
1899      a = o + Math.floor((n - o) / r.params.slidesPerGroup),
1900      l = r.rtlTranslate ? r.translate : -r.translate;
1901    if (l >= r.snapGrid[a]) {
1902      const u = r.snapGrid[a],
1903        d = r.snapGrid[a + 1];
1904      l - u > (d - u) * i && (n += r.params.slidesPerGroup);
1905    } else {
1906      const u = r.snapGrid[a - 1],
1907        d = r.snapGrid[a];
1908      l - u <= (d - u) * i && (n -= r.params.slidesPerGroup);
1909    }
1910    return (
1911      (n = Math.max(n, 0)),
1912      (n = Math.min(n, r.slidesGrid.length - 1)),
1913      r.slideTo(n, s, e, t)
1914    );
1915  }
1916  function qs() {
1917    const s = this;
1918    if (s.destroyed) return;
1919    const { params: e, slidesEl: t } = s,
1920      i =
1921        e.slidesPerView === "auto" ? s.slidesPerViewDynamic() : e.slidesPerView;
1922    let r = s.clickedIndex,
1923      n;
1924    const o = s.isElement ? "swiper-slide" : `.${e.slideClass}`;
1925    if (e.loop) {
1926      if (s.animating) return;
1927      (n = parseInt(
1928        s.clickedSlide.getAttribute("data-swiper-slide-index"),
1929        10
1930      )),
1931        e.centeredSlides
1932          ? r < s.loopedSlides - i / 2 ||
1933            r > s.slides.length - s.loopedSlides + i / 2
1934            ? (s.loopFix(),
1935              (r = s.getSlideIndex(
1936                Q(t, `${o}[data-swiper-slide-index="${n}"]`)[0]
1937              )),
1938              Ae(() => {
1939                s.slideTo(r);
1940              }))
1941            : s.slideTo(r)
1942          : r > s.slides.length - i
1943          ? (s.loopFix(),
1944            (r = s.getSlideIndex(
1945              Q(t, `${o}[data-swiper-slide-index="${n}"]`)[0]
1946            )),
1947            Ae(() => {
1948              s.slideTo(r);
1949            }))
1950          : s.slideTo(r);
1951    } else s.slideTo(r);
1952  }
1953  var Hs = {
1954    slideTo: Is,
1955    slideToLoop: ks,
1956    slideNext: Os,
1957    slidePrev: $s,
1958    slideReset: zs,
1959    slideToClosest: Ds,
1960    slideToClickedSlide: qs,
1961  };
1962  function Bs(s) {
1963    const e = this,
1964      { params: t, slidesEl: i } = e;
1965    if (!t.loop || (e.virtual && e.params.virtual.enabled)) return;
1966    const r = () => {
1967        Q(i, `.${t.slideClass}, swiper-slide`).forEach((p, m) => {
1968          p.setAttribute("data-swiper-slide-index", m);
1969        });
1970      },
1971      n = e.grid && t.grid && t.grid.rows > 1,
1972      o = t.slidesPerGroup * (n ? t.grid.rows : 1),
1973      a = e.slides.length % o !== 0,
1974      l = n && e.slides.length % t.grid.rows !== 0,
1975      u = (d) => {
1976        for (let p = 0; p < d; p += 1) {
1977          const m = e.isElement
1978            ? we("swiper-slide", [t.slideBlankClass])
1979            : we("div", [t.slideClass, t.slideBlankClass]);
1980          e.slidesEl.append(m);
1981        }
1982      };
1983    if (a) {
1984      if (t.loopAddBlankSlides) {
1985        const d = o - (e.slides.length % o);
1986        u(d), e.recalcSlides(), e.updateSlides();
1987      } else
1988        ye(
1989          "Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may 
1989not function properly. You need to add more slides (or make duplicates, or empty slides)"
1990        );
1991      r();
1992    } else if (l) {
1993      if (t.loopAddBlankSlides) {
1994        const d = t.grid.rows - (e.slides.length % t.grid.rows);
1995        u(d), e.recalcSlides(), e.updateSlides();
1996      } else
1997        ye(
1998          "Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)"
1999        );
2000      r();
2001    } else r();
2002    e.loopFix({
2003      slideRealIndex: s,
2004      direction: t.centeredSlides ? void 0 : "next",
2005    });
2006  }
2007  function _s(s) {
2008    let {
2009      slideRealIndex: e,
2010      slideTo: t = !0,
2011      direction: i,
2012      setTranslate: r,
2013      activeSlideIndex: n,
2014      byController: o,
2015      byMousewheel: a,
2016    } = s === void 0 ? {} : s;
2017    const l = this;
2018    if (!l.params.loop) return;
2019    l.emit("beforeLoopFix");
2020    const {
2021        slides: u,
2022        allowSlidePrev: d,
2023        allowSlideNext: p,
2024        slidesEl: m,
2025        params: h,
2026      } = l,
2027      { centeredSlides: g } = h;
2028    if (
2029      ((l.allowSlidePrev = !0),
2030      (l.allowSlideNext = !0),
2031      l.virtual && h.virtual.enabled)
2032    ) {
2033      t &&
2034        (!h.centeredSlides && l.snapIndex === 0
2035          ? l.slideTo(l.virtual.slides.length, 0, !1, !0)
2036          : h.centeredSlides && l.snapIndex < h.slidesPerView
2037          ? l.slideTo(l.virtual.slides.length + l.snapIndex, 0, !1, !0)
2038          : l.snapIndex === l.snapGrid.length - 1 &&
2039            l.slideTo(l.virtual.slidesBefore, 0, !1, !0)),
2040        (l.allowSlidePrev = d),
2041        (l.allowSlideNext = p),
2042        l.emit("loopFix");
2043      return;
2044    }
2045    let w = h.slidesPerView;
2046    w === "auto"
2047      ? (w = l.slidesPerViewDynamic())
2048      : ((w = Math.ceil(parseFloat(h.slidesPerView, 10))),
2049        g && w % 2 === 0 && (w = w + 1));
2050    const b = h.slidesPerGroupAuto ? w : h.slidesPerGroup;
2051    let S = b;
2052    S % b !== 0 && (S += b - (S % b)),
2053      (S += h.loopAdditionalSlides),
2054      (l.loopedSlides = S);
2055    const c = l.grid && h.grid && h.grid.rows > 1;
2056    u.length < w + S
2057      ? ye(
2058          "Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters"
2059        )
2060      : c &&
2061        h.grid.fill === "row" &&
2062        ye(
2063          "Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`"
2064        );
2065    const f = [],
2066      v = [];
2067    let y = l.activeIndex;
2068    typeof n > "u"
2069      ? (n = l.getSlideIndex(
2070          u.filter((C) => C.classList.contains(h.slideActiveClass))[0]
2071        ))
2072      : (y = n);
2073    const E = i === "next" || !i,
2074      H = i === "prev" || !i;
2075    let I = 0,
2076      D = 0;
2077    const T = c ? Math.ceil(u.length / h.grid.rows) : u.length,
2078      k = (c ? u[n].column : n) + (g && typeof r > "u" ? -w / 2 + 0.5 : 0);
2079    if (k < S) {
2080      I = Math.max(S - k, b);
2081      for (let C = 0; C < S - k; C += 1) {
2082        const $ = C - Math.floor(C / T) * T;
2083        if (c) {
2084          const B = T - $ - 1;
2085          for (let R = u.length - 1; R >= 0; R -= 1)
2086            u[R].column === B && f.push(R);
2087        } else f.push(T - $ - 1);
2088      }
2089    } else if (k + w > T - S) {
2090      D = Math.max(k - (T - S * 2), b);
2091      for (let C = 0; C < D; C += 1) {
2092        const $ = C - Math.floor(C / T) * T;
2093        c
2094          ? u.forEach((B, R) => {
2095              B.column === $ && v.push(R);
2096            })
2097          : v.push($);
2098      }
2099    }
2100    if (
2101      ((l.__preventObserver__ = !0),
2102      requestAnimationFrame(() => {
2103        l.__preventObserver__ = !1;
2104      }),
2105      H &&
2106        f.forEach((C) => {
2107          (u[C].swiperLoopMoveDOM = !0),
2108            m.prepend(u[C]),
2109            (u[C].swiperLoopMoveDOM = !1);
2110        }),
2111      E &&
2112        v.forEach((C) => {
2113          (u[C].swiperLoopMoveDOM = !0),
2114            m.append(u[C]),
2115            (u[C].swiperLoopMoveDOM = !1);
2116        }),
2117      l.recalcSlides(),
2118      h.slidesPerView === "auto"
2119        ? l.updateSlides()
2120        : c &&
2121          ((f.length > 0 && H) || (v.length > 0 && E)) &&
2122          l.slides.forEach((C, $) => {
2123            l.grid.updateSlide($, C, l.slides);
2124          }),
2125      h.watchSlidesProgress && l.updateSlidesOffset(),
2126      t)
2127    ) {
2128      if (f.length > 0 && H) {
2129        if (typeof e > "u") {
2130          const C = l.slidesGrid[y],
2131            B = l.slidesGrid[y + I] - C;
2132          a
2133            ? l.setTranslate(l.translate - B)
2134            : (l.slideTo(y + Math.ceil(I), 0, !1, !0),
2135              r &&
2136                ((l.touchEventsData.startTranslate =
2137                  l.touchEventsData.startTranslate - B),
2138                (l.touchEventsData.currentTranslate =
2139                  l.touchEventsData.currentTranslate - B)));
2140        } else if (r) {
2141          const C = c ? f.length / h.grid.rows : f.length;
2142          l.slideTo(l.activeIndex + C, 0, !1, !0),
2143            (l.touchEventsData.currentTranslate = l.translate);
2144        }
2145      } else if (v.length > 0 && E)
2146        if (typeof e > "u") {
2147          const C = l.slidesGrid[y],
2148            B = l.slidesGrid[y - D] - C;
2149          a
2150            ? l.setTranslate(l.translate - B)
2151            : (l.slideTo(y - D, 0, !1, !0),
2152              r &&
2153                ((l.touchEventsData.startTranslate =
2154                  l.touchEventsData.startTranslate - B),
2155                (l.touchEventsData.currentTranslate =
2156                  l.touchEventsData.currentTranslate - B)));
2157        } else {
2158          const C = c ? v.length / h.grid.rows : v.length;
2159          l.slideTo(l.activeIndex - C, 0, !1, !0);
2160        }
2161    }
2162    if (
2163      ((l.allowSlidePrev = d),
2164      (l.allowSlideNext = p),
2165      l.controller && l.controller.control && !o)
2166    ) {
2167      const C = {
2168        slideRealIndex: e,
2169        direction: i,
2170        setTranslate: r,
2171        activeSlideIndex: n,
2172        byController: !0,
2173      };
2174      Array.isArray(l.controller.control)
2175        ? l.controller.control.forEach(($) => {
2176            !$.destroyed &&
2177              $.params.loop &&
2178              $.loopFix({
2179                ...C,
2180                slideTo: $.params.slidesPerView === h.slidesPerView ? t : !1,
2181              });
2182          })
2183        : l.controller.control instanceof l.constructor &&
2184          l.controller.control.params.loop &&
2185          l.controller.control.loopFix({
2186            ...C,
2187            slideTo:
2188              l.controller.control.params.slidesPerView === h.slidesPerView
2189                ? t
2190                : !1,
2191          });
2192    }
2193    l.emit("loopFix");
2194  }
2195  function Vs() {
2196    const s = this,
2197      { params: e, slidesEl: t } = s;
2198    if (!e.loop || (s.virtual && s.params.virtual.enabled)) return;
2199    s.recalcSlides();
2200    const i = [];
2201    s.slides.forEach((r) => {
2202      const n =
2203        typeof r.swiperSlideIndex > "u"
2204          ? r.getAttribute("data-swiper-slide-index") * 1
2205          : r.swiperSlideIndex;
2206      i[n] = r;
2207    }),
2208      s.slides.forEach((r) => {
2209        r.removeAttribute("data-swiper-slide-index");
2210      }),
2211      i.forEach((r) => {
2212        t.append(r);
2213      }),
2214      s.recalcSlides(),
2215      s.slideTo(s.realIndex, 0);
2216  }
2217  var Ns = { loopCreate: Bs, loopFix: _s, loopDestroy: Vs };
2218  function Gs(s) {
2219    const e = this;
2220    if (
2221      !e.params.simulateTouch ||
2222      (e.params.watchOverflow && e.isLocked) ||
2223      e.params.cssMode
2224    )
2225      return;
2226    const t = e.params.touchEventsTarget === "container" ? e.el : e.wrapperEl;
2227    e.isElement && (e.__preventObserver__ = !0),
2228      (t.style.cursor = "move"),
2229      (t.style.cursor = s ? "grabbing" : "grab"),
2230      e.isElement &&
2231        requestAnimationFrame(() => {
2232          e.__preventObserver__ = !1;
2233        });
2234  }
2235  function Fs() {
2236    const s = this;
2237    (s.params.watchOverflow && s.isLocked) ||
2238      s.params.cssMode ||
2239      (s.isElement && (s.__preventObserver__ = !0),
2240      (s[
2241        s.params.touchEventsTarget === "container" ? "el" : "wrapperEl"
2242      ].style.cursor = ""),
2243      s.isElement &&
2244        requestAnimationFrame(() => {
2245          s.__preventObserver__ = !1;
2246        }));
2247  }
2248  var Rs = { setGrabCursor: Gs, unsetGrabCursor: Fs };
2249  function js(s, e) {
2250    e === void 0 && (e = this);
2251    function t(i) {
2252      if (!i || i === ee() || i === X()) return null;
2253      i.assignedSlot && (i = i.assignedSlot);
2254      const r = i.closest(s);
2255      return !r && !i.getRootNode ? null : r || t(i.getRootNode().host);
2256    }
2257    return t(e);
2258  }
2259  function lt(s, e, t) {
2260    const i = X(),
2261      { params: r } = s,
2262      n = r.edgeSwipeDetection,
2263      o = r.edgeSwipeThreshold;
2264    return n && (t <= o || t >= i.innerWidth - o)
2265      ? n === "prevent"
2266        ? (e.preventDefault(), !0)
2267        : !1
2268      : !0;
2269  }
2270  function Ws(s) {
2271    const e = this,
2272      t = ee();
2273    let i = s;
2274    i.originalEvent && (i = i.originalEvent);
2275    const r = e.touchEventsData;
2276    if (i.type === "pointerdown") {
2277      if (r.pointerId !== null && r.pointerId !== i.pointerId) return;
2278      r.pointerId = i.pointerId;
2279    } else
2280      i.type === "touchstart" &&
2281        i.targetTouches.length === 1 &&
2282        (r.touchId = i.targetTouches[0].identifier);
2283    if (i.type === "touchstart") {
2284      lt(e, i, i.targetTouches[0].pageX);
2285      return;
2286    }
2287    const { params: n, touches: o, enabled: a } = e;
2288    if (
2289      !a ||
2290      (!n.simulateTouch && i.pointerType === "mouse") ||
2291      (e.animating && n.preventInteractionOnTransition)
2292    )
2293      return;
2294    !e.animating && n.cssMode && n.loop && e.loopFix();
2295    let l = i.target;
2296    if (
2297      (n.touchEventsTarget === "wrapper" && !Jt(l, e.wrapperEl)) ||
2298      ("which" in i && i.which === 3) ||
2299      ("button" in i && i.button > 0) ||
2300      (r.isTouched && r.isMoved)
2301    )
2302      return;
2303    const u = !!n.noSwipingClass && n.noSwipingClass !== "",
2304      d = i.composedPath ? i.composedPath() : i.path;
2305    u && i.target && i.target.shadowRoot && d && (l = d[0]);
2306    const p = n.noSwipingSelector
2307        ? n.noSwipingSelector
2308        : `.${n.noSwipingClass}`,
2309      m = !!(i.target && i.target.shadowRoot);
2310    if (n.noSwiping && (m ? js(p, l) : l.closest(p))) {
2311      e.allowClick = !0;
2312      return;
2313    }
2314    if (n.swipeHandler && !l.closest(n.swipeHandler)) return;
2315    (o.currentX = i.pageX), (o.currentY = i.pageY);
2316    const h = o.currentX,
2317      g = o.currentY;
2318    if (!lt(e, i, h)) return;
2319    Object.assign(r, {
2320      isTouched: !0,
2321      isMoved: !1,
2322      allowTouchCallbacks: !0,
2323      isScrolling: void 0,
2324      startMoving: void 0,
2325    }),
2326      (o.startX = h),
2327      (o.startY = g),
2328      (r.touchStartTime = ge()),
2329      (e.allowClick = !0),
2330      e.updateSize(),
2331      (e.swipeDirection = void 0),
2332      n.threshold > 0 && (r.allowThresholdMove = !1);
2333    let w = !0;
2334    l.matches(r.focusableElements) &&
2335      ((w = !1), l.nodeName === "SELECT" && (r.isTouched = !1)),
2336      t.activeElement &&
2337        t.activeElement.matches(r.focusableElements) &&
2338        t.activeElement !== l &&
2339        (i.pointerType === "mouse" ||
2340          (i.pointerType !== "mouse" && !l.matches(r.focusableElements))) &&
2341        t.activeElement.blur();
2342    const b = w && e.allowTouchMove && n.touchStartPreventDefault;
2343    (n.touchStartForcePreventDefault || b) &&
2344      !l.isContentEditable &&
2345      i.preventDefault(),
2346      n.freeMode &&
2347        n.freeMode.enabled &&
2348        e.freeMode &&
2349        e.animating &&
2350        !n.cssMode &&
2351        e.freeMode.onTouchStart(),
2352      e.emit("touchStart", i);
2353  }
2354  function Us(s) {
2355    const e = ee(),
2356      t = this,
2357      i = t.touchEventsData,
2358      { params: r, touches: n, rtlTranslate: o, enabled: a } = t;
2359    if (!a || (!r.simulateTouch && s.pointerType === "mouse")) return;
2360    let l = s;
2361    if (
2362      (l.originalEvent && (l = l.originalEvent),
2363      l.type === "pointermove" &&
2364        (i.touchId !== null || l.pointerId !== i.pointerId))
2365    )
2366      return;
2367    let u;
2368    if (l.type === "touchmove") {
2369      if (
2370        ((u = [...l.changedTouches].filter(
2371          (E) => E.identifier === i.touchId
2372        )[0]),
2373        !u || u.identifier !== i.touchId)
2374      )
2375        return;
2376    } else u = l;
2377    if (!i.isTouched) {
2378      i.startMoving && i.isScrolling && t.emit("touchMoveOpposite", l);
2379      return;
2380    }
2381    const d = u.pageX,
2382      p = u.pageY;
2383    if (l.preventedByNestedSwiper) {
2384      (n.startX = d), (n.startY = p);
2385      return;
2386    }
2387    if (!t.allowTouchMove) {
2388      l.target.matches(i.focusableElements) || (t.allowClick = !1),
2389        i.isTouched &&
2390          (Object.assign(n, { startX: d, startY: p, currentX: d, currentY: p }),
2391          (i.touchStartTime = ge()));
2392      return;
2393    }
2394    if (r.touchReleaseOnEdges && !r.loop) {
2395      if (t.isVertical()) {
2396        if (
2397          (p < n.startY && t.translate <= t.maxTranslate()) ||
2398          (p > n.startY && t.translate >= t.minTranslate())
2399        ) {
2400          (i.isTouched = !1), (i.isMoved = !1);
2401          return;
2402        }
2403      } else if (
2404        (d < n.startX && t.translate <= t.maxTranslate()) ||
2405        (d > n.startX && t.translate >= t.minTranslate())
2406      )
2407        return;
2408    }
2409    if (
2410      (e.activeElement &&
2411        e.activeElement.matches(i.focusableElements) &&
2412        e.activeElement !== l.target &&
2413        l.pointerType !== "mouse" &&
2414        e.activeElement.blur(),
2415      e.activeElement &&
2416        l.target === e.activeElement &&
2417        l.target.matches(i.focusableElements))
2418    ) {
2419      (i.isMoved = !0), (t.allowClick = !1);
2420      return;
2421    }
2422    i.allowTouchCallbacks && t.emit("touchMove", l),
2423      (n.previousX = n.currentX),
2424      (n.previousY = n.currentY),
2425      (n.currentX = d),
2426      (n.currentY = p);
2427    const m = n.currentX - n.startX,
2428      h = n.currentY - n.startY;
2429    if (t.params.threshold && Math.sqrt(m ** 2 + h ** 2) < t.params.threshold)
2430      return;
2431    if (typeof i.isScrolling > "u") {
2432      let E;
2433      (t.isHorizontal() && n.currentY === n.startY) ||
2434      (t.isVertical() && n.currentX === n.startX)
2435        ? (i.isScrolling = !1)
2436        : m * m + h * h >= 25 &&
2437          ((E = (Math.atan2(Math.abs(h), Math.abs(m)) * 180) / Math.PI),
2438          (i.isScrolling = t.isHorizontal()
2439            ? E > r.touchAngle
2440            : 90 - E > r.touchAngle));
2441    }
2442    if (
2443      (i.isScrolling && t.emit("touchMoveOpposite", l),
2444      typeof i.startMoving > "u" &&
2445        (n.currentX !== n.startX || n.currentY !== n.startY) &&
2446        (i.startMoving = !0),
2447      i.isScrolling ||
2448        (l.type === "touchmove" && i.preventTouchMoveFromPointerMove))
2449    ) {
2450      i.isTouched = !1;
2451      return;
2452    }
2453    if (!i.startMoving) return;
2454    (t.allowClick = !1),
2455      !r.cssMode && l.cancelable && l.preventDefault(),
2456      r.touchMoveStopPropagation && !r.nested && l.stopPropagation();
2457    let g = t.isHorizontal() ? m : h,
2458      w = t.isHorizontal()
2459        ? n.currentX - n.previousX
2460        : n.currentY - n.previousY;
2461    r.oneWayMovement &&
2462      ((g = Math.abs(g) * (o ? 1 : -1)), (w = Math.abs(w) * (o ? 1 : -1))),
2463      (n.diff = g),
2464      (g *= r.touchRatio),
2465      o && ((g = -g), (w = -w));
2466    const b = t.touchesDirection;
2467    (t.swipeDirection = g > 0 ? "prev" : "next"),
2468      (t.touchesDirection = w > 0 ? "prev" : "next");
2469    const S = t.params.loop && !r.cssMode,
2470      c =
2471        (t.touchesDirection === "next" && t.allowSlideNext) ||
2472        (t.touchesDirection === "prev" && t.allowSlidePrev);
2473    if (!i.isMoved) {
2474      if (
2475        (S && c && t.loopFix({ direction: t.swipeDirection }),
2476        (i.startTranslate = t.getTranslate()),
2477        t.setTransition(0),
2478        t.animating)
2479      ) {
2480        const E = new window.CustomEvent("transitionend", {
2481          bubbles: !0,
2482          cancelable: !0,
2483          detail: { bySwiperTouchMove: !0 },
2484        });
2485        t.wrapperEl.dispatchEvent(E);
2486      }
2487      (i.allowMomentumBounce = !1),
2488        r.grabCursor &&
2489          (t.allowSlideNext === !0 || t.allowSlidePrev === !0) &&
2490          t.setGrabCursor(!0),
2491        t.emit("sliderFirstMove", l);
2492    }
2493    let f;
2494    if (
2495      (new Date().getTime(),
2496      i.isMoved &&
2497        i.allowThresholdMove &&
2498        b !== t.touchesDirection &&
2499        S &&
2500        c &&
2501        Math.abs(g) >= 1)
2502    ) {
2503      Object.assign(n, {
2504        startX: d,
2505        startY: p,
2506        currentX: d,
2507        currentY: p,
2508        startTranslate: i.currentTranslate,
2509      }),
2510        (i.loopSwapReset = !0),
2511        (i.startTranslate = i.currentTranslate);
2512      return;
2513    }
2514    t.emit("sliderMove", l),
2515      (i.isMoved = !0),
2516      (i.currentTranslate = g + i.startTranslate);
2517    let v = !0,
2518      y = r.resistanceRatio;
2519    if (
2520      (r.touchReleaseOnEdges && (y = 0),
2521      g > 0
2522        ? (S &&
2523            c &&
2524            !f &&
2525            i.allowThresholdMove &&
2526            i.currentTranslate >
2527              (r.centeredSlides
2528                ? t.minTranslate() -
2529                  t.slidesSizesGrid[t.activeIndex + 1] -
2530                  (r.slidesPerView !== "auto" &&
2531                  t.slides.length - r.slidesPerView >= 2
2532                    ? t.slidesSizesGrid[t.activeIndex + 1] +
2533                      t.params.spaceBetween
2534                    : 0) -
2535                  t.params.spaceBetween
2536                : t.minTranslate()) &&
2537            t.loopFix({
2538              direction: "prev",
2539              setTranslate: !0,
2540              activeSlideIndex: 0,
2541            }),
2542          i.currentTranslate > t.minTranslate() &&
2543            ((v = !1),
2544            r.resistance &&
2545              (i.currentTranslate =
2546                t.minTranslate() -
2547                1 +
2548                (-t.minTranslate() + i.startTranslate + g) ** y)))
2549        : g < 0 &&
2550          (S &&
2551            c &&
2552            !f &&
2553            i.allowThresholdMove &&
2554            i.currentTranslate <
2555              (r.centeredSlides
2556                ? t.maxTranslate() +
2557                  t.slidesSizesGrid[t.slidesSizesGrid.length - 1] +
2558                  t.params.spaceBetween +
2559                  (r.slidesPerView !== "auto" &&
2560                  t.slides.length - r.slidesPerView >= 2
2561                    ? t.slidesSizesGrid[t.slidesSizesGrid.length - 1] +
2562                      t.params.spaceBetween
2563                    : 0)
2564                : t.maxTranslate()) &&
2565            t.loopFix({
2566              direction: "next",
2567              setTranslate: !0,
2568              activeSlideIndex:
2569                t.slides.length -
2570                (r.slidesPerView === "auto"
2571                  ? t.slidesPerViewDynamic()
2572                  : Math.ceil(parseFloat(r.slidesPerView, 10))),
2573            }),
2574          i.currentTranslate < t.maxTranslate() &&
2575            ((v = !1),
2576            r.resistance &&
2577              (i.currentTranslate =
2578                t.maxTranslate() +
2579                1 -
2580                (t.maxTranslate() - i.startTranslate - g) ** y))),
2581      v && (l.preventedByNestedSwiper = !0),
2582      !t.allowSlideNext &&
2583        t.swipeDirection === "next" &&
2584        i.currentTranslate < i.startTranslate &&
2585        (i.currentTranslate = i.startTranslate),
2586      !t.allowSlidePrev &&
2587        t.swipeDirection === "prev" &&
2588        i.currentTranslate > i.startTranslate &&
2589        (i.currentTranslate = i.startTranslate),
2590      !t.allowSlidePrev &&
2591        !t.allowSlideNext &&
2592        (i.currentTranslate = i.startTranslate),
2593      r.threshold > 0)
2594    )
2595      if (Math.abs(g) > r.threshold || i.allowThresholdMove) {
2596        if (!i.allowThresholdMove) {
2597          (i.allowThresholdMove = !0),
2598            (n.startX = n.currentX),
2599            (n.startY = n.currentY),
2600            (i.currentTranslate = i.startTranslate),
2601            (n.diff = t.isHorizontal()
2602              ? n.currentX - n.startX
2603              : n.currentY - n.startY);
2604          return;
2605        }
2606      } else {
2607        i.currentTranslate = i.startTranslate;
2608        return;
2609      }
2610    !r.followFinger ||
2611      r.cssMode ||
2612      (((r.freeMode && r.freeMode.enabled && t.freeMode) ||
2613        r.watchSlidesProgress) &&
2614        (t.updateActiveIndex(), t.updateSlidesClasses()),
2615      r.freeMode &&
2616        r.freeMode.enabled &&
2617        t.freeMode &&
2618        t.freeMode.onTouchMove(),
2619      t.updateProgress(i.currentTranslate),
2620      t.setTranslate(i.currentTranslate));
2621  }
2622  function Ys(s) {
2623    const e = this,
2624      t = e.touchEventsData;
2625    let i = s;
2626    i.originalEvent && (i = i.originalEvent);
2627    let r;
2628    if (i.type === "touchend" || i.type === "touchcancel") {
2629      if (
2630        ((r = [...i.changedTouches].filter(
2631          (y) => y.identifier === t.touchId
2632        )[0]),
2633        !r || r.identifier !== t.touchId)
2634      )
2635        return;
2636    } else {
2637      if (t.touchId !== null || i.pointerId !== t.pointerId) return;
2638      r = i;
2639    }
2640    if (
2641      ["pointercancel", "pointerout", "pointerleave", "contextmenu"].includes(
2642        i.type
2643      ) &&
2644      !(
2645        ["pointercancel", "contextmenu"].includes(i.type) &&
2646        (e.browser.isSafari || e.browser.isWebView)
2647      )
2648    )
2649      return;
2650    (t.pointerId = null), (t.touchId = null);
2651    const {
2652      params: o,
2653      touches: a,
2654      rtlTranslate: l,
2655      slidesGrid: u,
2656      enabled: d,
2657    } = e;
2658    if (!d || (!o.simulateTouch && i.pointerType === "mouse")) return;
2659    if (
2660      (t.allowTouchCallbacks && e.emit("touchEnd", i),
2661      (t.allowTouchCallbacks = !1),
2662      !t.isTouched)
2663    ) {
2664      t.isMoved && o.grabCursor && e.setGrabCursor(!1),
2665        (t.isMoved = !1),
2666        (t.startMoving = !1);
2667      return;
2668    }
2669    o.grabCursor &&
2670      t.isMoved &&
2671      t.isTouched &&
2672      (e.allowSlideNext === !0 || e.allowSlidePrev === !0) &&
2673      e.setGrabCursor(!1);
2674    const p = ge(),
2675      m = p - t.touchStartTime;
2676    if (e.allowClick) {
2677      const y = i.path || (i.composedPath && i.composedPath());
2678      e.updateClickedSlide((y && y[0]) || i.target, y),
2679        e.emit("tap click", i),
2680        m < 300 &&
2681          p - t.lastClickTime < 300 &&
2682          e.emit("doubleTap doubleClick", i);
2683    }
2684    if (
2685      ((t.lastClickTime = ge()),
2686      Ae(() => {
2687        e.destroyed || (e.allowClick = !0);
2688      }),
2689      !t.isTouched ||
2690        !t.isMoved ||
2691        !e.swipeDirection ||
2692        (a.diff === 0 && !t.loopSwapReset) ||
2693        (t.currentTranslate === t.startTranslate && !t.loopSwapReset))
2694    ) {
2695      (t.isTouched = !1), (t.isMoved = !1), (t.startMoving = !1);
2696      return;
2697    }
2698    (t.isTouched = !1), (t.isMoved = !1), (t.startMoving = !1);
2699    let h;
2700    if (
2701      (o.followFinger
2702        ? (h = l ? e.translate : -e.translate)
2703        : (h = -t.currentTranslate),
2704      o.cssMode)
2705    )
2706      return;
2707    if (o.freeMode && o.freeMode.enabled) {
2708      e.freeMode.onTouchEnd({ currentPos: h });
2709      return;
2710    }
2711    const g = h >= -e.maxTranslate() && !e.params.loop;
2712    let w = 0,
2713      b = e.slidesSizesGrid[0];
2714    for (
2715      let y = 0;
2716      y < u.length;
2717      y += y < o.slidesPerGroupSkip ? 1 : o.slidesPerGroup
2718    ) {
2719      const E = y < o.slidesPerGroupSkip - 1 ? 1 : o.slidesPerGroup;
2720      typeof u[y + E] < "u"
2721        ? (g || (h >= u[y] && h < u[y + E])) && ((w = y), (b = u[y + E] - u[y]))
2722        : (g || h >= u[y]) &&
2723          ((w = y), (b = u[u.length - 1] - u[u.length - 2]));
2724    }
2725    let S = null,
2726      c = null;
2727    o.rewind &&
2728      (e.isBeginning
2729        ? (c =
2730            o.virtual && o.virtual.enabled && e.virtual
2731              ? e.virtual.slides.length - 1
2732              : e.slides.length - 1)
2733        : e.isEnd && (S = 0));
2734    const f = (h - u[w]) / b,
2735      v = w < o.slidesPerGroupSkip - 1 ? 1 : o.slidesPerGroup;
2736    if (m > o.longSwipesMs) {
2737      if (!o.longSwipes) {
2738        e.slideTo(e.activeIndex);
2739        return;
2740      }
2741      e.swipeDirection === "next" &&
2742        (f >= o.longSwipesRatio
2743          ? e.slideTo(o.rewind && e.isEnd ? S : w + v)
2744          : e.slideTo(w)),
2745        e.swipeDirection === "prev" &&
2746          (f > 1 - o.longSwipesRatio
2747            ? e.slideTo(w + v)
2748            : c !== null && f < 0 && Math.abs(f) > o.longSwipesRatio
2749            ? e.slideTo(c)
2750            : e.slideTo(w));
2751    } else {
2752      if (!o.shortSwipes) {
2753        e.slideTo(e.activeIndex);
2754        return;
2755      }
2756      e.navigation &&
2757      (i.target === e.navigation.nextEl || i.target === e.navigation.prevEl)
2758        ? i.target === e.navigation.nextEl
2759          ? e.slideTo(w + v)
2760          : e.slideTo(w)
2761        : (e.swipeDirection === "next" && e.slideTo(S !== null ? S : w + v),
2762          e.swipeDirection === "prev" && e.slideTo(c !== null ? c : w));
2763    }
2764  }
2765  function dt() {
2766    const s = this,
2767      { params: e, el: t } = s;
2768    if (t && t.offsetWidth === 0) return;
2769    e.breakpoints && s.setBreakpoint();
2770    const { allowSlideNext: i, allowSlidePrev: r, snapGrid: n } = s,
2771      o = s.virtual && s.params.virtual.enabled;
2772    (s.allowSlideNext = !0),
2773      (s.allowSlidePrev = !0),
2774      s.updateSize(),
2775      s.updateSlides(),
2776      s.updateSlidesClasses();
2777    const a = o && e.loop;
2778    (e.slidesPerView === "auto" || e.slidesPerView > 1) &&
2779    s.isEnd &&
2780    !s.isBeginning &&
2781    !s.params.centeredSlides &&
2782    !a
2783      ? s.slideTo(s.slides.length - 1, 0, !1, !0)
2784      : s.params.loop && !o
2785      ? s.slideToLoop(s.realIndex, 0, !1, !0)
2786      : s.slideTo(s.activeIndex, 0, !1, !0),
2787      s.autoplay &&
2788        s.autoplay.running &&
2789        s.autoplay.paused &&
2790        (clearTimeout(s.autoplay.resizeTimeout),
2791        (s.autoplay.resizeTimeout = setTimeout(() => {
2792          s.autoplay &&
2793            s.autoplay.running &&
2794            s.autoplay.paused &&
2795            s.autoplay.resume();
2796        }, 500))),
2797      (s.allowSlidePrev = r),
2798      (s.allowSlideNext = i),
2799      s.params.watchOverflow && n !== s.snapGrid && s.checkOverflow();
2800  }
2801  function Xs(s) {
2802    const e = this;
2803    e.enabled &&
2804      (e.allowClick ||
2805        (e.params.preventClicks && s.preventDefault(),
2806        e.params.preventClicksPropagation &&
2807          e.animating &&
2808          (s.stopPropagation(), s.stopImmediatePropagation())));
2809  }
2810  function Ks() {
2811    const s = this,
2812      { wrapperEl: e, rtlTranslate: t, enabled: i } = s;
2813    if (!i) return;
2814    (s.previousTranslate = s.translate),
2815      s.isHorizontal()
2816        ? (s.translate = -e.scrollLeft)
2817        : (s.translate = -e.scrollTop),
2818      s.translate === 0 && (s.translate = 0),
2819      s.updateActiveIndex(),
2820      s.updateSlidesClasses();
2821    let r;
2822    const n = s.maxTranslate() - s.minTranslate();
2823    n === 0 ? (r = 0) : (r = (s.translate - s.minTranslate()) / n),
2824      r !== s.progress && s.updateProgress(t ? -s.translate : s.translate),
2825      s.emit("setTranslate", s.translate, !1);
2826  }
2827  function Qs(s) {
2828    const e = this;
2829    be(e, s.target),
2830      !(
2831        e.params.cssMode ||
2832        (e.params.slidesPerView !== "auto" && !e.params.autoHeight)
2833      ) && e.update();
2834  }
2835  function Js() {
2836    const s = this;
2837    s.documentTouchHandlerProceeded ||
2838      ((s.documentTouchHandlerProceeded = !0),
2839      s.params.touchReleaseOnEdges && (s.el.style.touchAction = "auto"));
2840  }
2841  const ct = (s, e) => {
2842    const t = ee(),
2843      { params: i, el: r, wrapperEl: n, device: o } = s,
2844      a = !!i.nested,
2845      l = e === "on" ? "addEventListener" : "removeEventListener",
2846      u = e;
2847    !r ||
2848      typeof r == "string" ||
2849      (t[l]("touchstart", s.onDocumentTouchStart, { passive: !1, capture: a }),
2850      r[l]("touchstart", s.onTouchStart, { passive: !1 }),
2851      r[l]("pointerdown", s.onTouchStart, { passive: !1 }),
2852      t[l]("touchmove", s.onTouchMove, { passive: !1, capture: a }),
2853      t[l]("pointermove", s.onTouchMove, { passive: !1, capture: a }),
2854      t[l]("touchend", s.onTouchEnd, { passive: !0 }),
2855      t[l]("pointerup", s.onTouchEnd, { passive: !0 }),
2856      t[l]("pointercancel", s.onTouchEnd, { passive: !0 }),
2857      t[l]("touchcancel", s.onTouchEnd, { passive: !0 }),
2858      t[l]("pointerout", s.onTouchEnd, { passive: !0 }),
2859      t[l]("pointerleave", s.onTouchEnd, { passive: !0 }),
2860      t[l]("contextmenu", s.onTouchEnd, { passive: !0 }),
2861      (i.preventClicks || i.preventClicksPropagation) &&
2862        r[l]("click", s.onClick, !0),
2863      i.cssMode && n[l]("scroll", s.onScroll),
2864      i.updateOnWindowResize
2865        ? s[u](
2866            o.ios || o.android
2867              ? "resize orientationchange observerUpdate"
2868              : "resize observerUpdate",
2869            dt,
2870            !0
2871          )
2872        : s[u]("observerUpdate", dt, !0),
2873      r[l]("load", s.onLoad, { capture: !0 }));
2874  };
2875  function Zs() {
2876    const s = this,
2877      { params: e } = s;
2878    (s.onTouchStart = Ws.bind(s)),
2879      (s.onTouchMove = Us.bind(s)),
2880      (s.onTouchEnd = Ys.bind(s)),
2881      (s.onDocumentTouchStart = Js.bind(s)),
2882      e.cssMode && (s.onScroll = Ks.bind(s)),
2883      (s.onClick = Xs.bind(s)),
2884      (s.onLoad = Qs.bind(s)),
2885      ct(s, "on");
2886  }
2887  function ei() {
2888    ct(this, "off");
2889  }
2890  var ti = { attachEvents: Zs, detachEvents: ei };
2891  const ut = (s, e) => s.grid && e.grid && e.grid.rows > 1;
2892  function si() {
2893    const s = this,
2894      { realIndex: e, initialized: t, params: i, el: r } = s,
2895      n = i.breakpoints;
2896    if (!n || (n && Object.keys(n).length === 0)) return;
2897    const o = s.getBreakpoint(n, s.params.breakpointsBase, s.el);
2898    if (!o || s.currentBreakpoint === o) return;
2899    const l = (o in n ? n[o] : void 0) || s.originalParams,
2900      u = ut(s, i),
2901      d = ut(s, l),
2902      p = s.params.grabCursor,
2903      m = l.grabCursor,
2904      h = i.enabled;
2905    u && !d
2906      ? (r.classList.remove(
2907          `${i.containerModifierClass}grid`,
2908          `${i.containerModifierClass}grid-column`
2909        ),
2910        s.emitContainerClasses())
2911      : !u &&
2912        d &&
2913        (r.classList.add(`${i.containerModifierClass}grid`),
2914        ((l.grid.fill && l.grid.fill === "column") ||
2915          (!l.grid.fill && i.grid.fill === "column")) &&
2916          r.classList.add(`${i.containerModifierClass}grid-column`),
2917        s.emitContainerClasses()),
2918      p && !m ? s.unsetGrabCursor() : !p && m && s.setGrabCursor(),
2919      ["navigation", "pagination", "scrollbar"].forEach((f) => {
2920        if (typeof l[f] > "u") return;
2921        const v = i[f] && i[f].enabled,
2922          y = l[f] && l[f].enabled;
2923        v && !y && s[f].disable(), !v && y && s[f].enable();
2924      });
2925    const g = l.direction && l.direction !== i.direction,
2926      w = i.loop && (l.slidesPerView !== i.slidesPerView || g),
2927      b = i.loop;
2928    g && t && s.changeDirection(), K(s.params, l);
2929    const S = s.params.enabled,
2930      c = s.params.loop;
2931    Object.assign(s, {
2932      allowTouchMove: s.params.allowTouchMove,
2933      allowSlideNext: s.params.allowSlideNext,
2934      allowSlidePrev: s.params.allowSlidePrev,
2935    }),
2936      h && !S ? s.disable() : !h && S && s.enable(),
2937      (s.currentBreakpoint = o),
2938      s.emit("_beforeBreakpoint", l),
2939      t &&
2940        (w
2941          ? (s.loopDestroy(), s.loopCreate(e), s.updateSlides())
2942          : !b && c
2943          ? (s.loopCreate(e), s.updateSlides())
2944          : b && !c && s.loopDestroy()),
2945      s.emit("breakpoint", l);
2946  }
2947  function ii(s, e, t) {
2948    if ((e === void 0 && (e = "window"), !s || (e === "container" && !t)))
2949      return;
2950    let i = !1;
2951    const r = X(),
vendor: 2,214 bytes, lines 2952-3022
2952      n = e === "window" ? r.innerHeight : t.clientHeight,
2953      o = Object.keys(s).map((a) => {
2954        if (typeof a == "string" && a.indexOf("@") === 0) {
2955          const l = parseFloat(a.substr(1));
2956          return { value: n * l, point: a };
2957        }
2958        return { value: a, point: a };
2959      });
2960    o.sort((a, l) => parseInt(a.value, 10) - parseInt(l.value, 10));
2961    for (let a = 0; a < o.length; a += 1) {
2962      const { point: l, value: u } = o[a];
2963      e === "window"
2964        ? r.matchMedia(`(min-width: ${u}px)`).matches && (i = l)
2965        : u <= t.clientWidth && (i = l);
2966    }
2967    return i || "max";
2968  }
2969  var ni = { setBreakpoint: si, getBreakpoint: ii };
2970  function ri(s, e) {
2971    const t = [];
2972    return (
2973      s.forEach((i) => {
2974        typeof i == "object"
2975          ? Object.keys(i).forEach((r) => {
2976              i[r] && t.push(e + r);
2977            })
2978          : typeof i == "string" && t.push(e + i);
2979      }),
2980      t
2981    );
2982  }
2983  function ai() {
2984    const s = this,
2985      { classNames: e, params: t, rtl: i, el: r, device: n } = s,
2986      o = ri(
2987        [
2988          "initialized",
2989          t.direction,
2990          { "free-mode": s.params.freeMode && t.freeMode.enabled },
2991          { autoheight: t.autoHeight },
2992          { rtl: i },
2993          { grid: t.grid && t.grid.rows > 1 },
2994          {
2995            "grid-column":
2996              t.grid && t.grid.rows > 1 && t.grid.fill === "column",
2997          },
2998          { android: n.android },
2999          { ios: n.ios },
3000          { "css-mode": t.cssMode },
3001          { centered: t.cssMode && t.centeredSlides },
3002          { "watch-progress": t.watchSlidesProgress },
3003        ],
3004        t.containerModifierClass
3005      );
3006    e.push(...o), r.classList.add(...e), s.emitContainerClasses();
3007  }
3008  function oi() {
3009    const s = this,
3010      { el: e, classNames: t } = s;
3011    !e ||
3012      typeof e == "string" ||
3013      (e.classList.remove(...t), s.emitContainerClasses());
3014  }
3015  var li = { addClasses: ai, removeClasses: oi };
3016  function di() {
3017    const s = this,
3018      { isLocked: e, params: t } = s,
3019      { slidesOffsetBefore: i } = t;
3020    if (i) {
3021      const r = s.slides.length - 1,
3022        n = s.slidesGrid[r] + s.slidesSizesGrid[r] + i * 2;
3023      s.isLocked = s.size > n;
3024    } else s.isLocked = s.snapGrid.length === 1;
3025    t.allowSlideNext === !0 && (s.allowSlideNext = !s.isLocked),
3026      t.allowSlidePrev === !0 && (s.allowSlidePrev = !s.isLocked),
3027      e && e !== s.isLocked && (s.isEnd = !1),
3028      e !== s.isLocked && s.emit(s.isLocked ? "lock" : "unlock");
3029  }
3030  var ci = { checkOverflow: di },
3031    ft = {
3032      init: !0,
3033      direction: "horizontal",
3034      oneWayMovement: !1,
3035      swiperElementNodeName: "SWIPER-CONTAINER",
3036      touchEventsTarget: "wrapper",
3037      initialSlide: 0,
3038      speed: 300,
3039      cssMode: !1,
3040      updateOnWindowResize: !0,
3041      resizeObserver: !0,
3042      nested: !1,
3043      createElements: !1,
3044      eventsPrefix: "swiper",
3045      enabled: !0,
3046      focusableElements:
3047        "input, select, option, textarea, button, video, label",
3048      width: null,
3049      height: null,
3050      preventInteractionOnTransition: !1,
3051      userAgent: null,
3052      url: null,
3053      edgeSwipeDetection: !1,
3054      edgeSwipeThreshold: 20,
3055      autoHeight: !1,
3056      setWrapperSize: !1,
3057      virtualTranslate: !1,
3058      effect: "slide",
3059      breakpoints: void 0,
3060      breakpointsBase: "window",
3061      spaceBetween: 0,
3062      slidesPerView: 1,
3063      slidesPerGroup: 1,
3064      slidesPerGroupSkip: 0,
3065      slidesPerGroupAuto: !1,
3066      centeredSlides: !1,
3067      centeredSlidesBounds: !1,
3068      slidesOffsetBefore: 0,
3069      slidesOffsetAfter: 0,
3070      normalizeSlideIndex: !0,
3071      centerInsufficientSlides: !1,
3072      watchOverflow: !0,
3073      roundLengths: !1,
3074      touchRatio: 1,
3075      touchAngle: 45,
3076      simulateTouch: !0,
3077      shortSwipes: !0,
3078      longSwipes: !0,
3079      longSwipesRatio: 0.5,
3080      longSwipesMs: 300,
3081      followFinger: !0,
3082      allowTouchMove: !0,
3083      threshold: 5,
3084      touchMoveStopPropagation: !1,
3085      touchStartPreventDefault: !0,
3086      touchStartForcePreventDefault: !1,
3087      touchReleaseOnEdges: !1,
3088      uniqueNavElements: !0,
3089      resistance: !0,
3090      resistanceRatio: 0.85,
3091      watchSlidesProgress: !1,
3092      grabCursor: !1,
3093      preventClicks: !0,
3094      preventClicksPropagation: !0,
3095      slideToClickedSlide: !1,
3096      loop: !1,
3097      loopAddBlankSlides: !0,
3098      loopAdditionalSlides: 0,
3099      loopPreventsSliding: !0,
3100      rewind: !1,
3101      allowSlidePrev: !0,
3102      allowSlideNext: !0,
3103      swipeHandler: null,
3104      noSwiping: !0,
3105      noSwipingClass: "swiper-no-swiping",
3106      noSwipingSelector: null,
3107      passiveListeners: !0,
3108      maxBackfaceHiddenSlides: 10,
3109      containerModifierClass: "swiper-",
3110      slideClass: "swiper-slide",
3111      slideBlankClass: "swiper-slide-blank",
3112      slideActiveClass: "swiper-slide-active",
3113      slideVisibleClass: "swiper-slide-visible",
3114      slideFullyVisibleClass: "swiper-slide-fully-visible",
3115      slideNextClass: "swiper-slide-next",
3116      slidePrevClass: "swiper-slide-prev",
3117      wrapperClass: "swiper-wrapper",
3118      lazyPreloaderClass: "swiper-lazy-preloader",
3119      lazyPreloadPrevNext: 0,
3120      runCallbacksOnInit: !0,
3121      _emitClasses: !1,
3122    };
3123  function ui(s, e) {
3124    return function (i) {
3125      i === void 0 && (i = {});
3126      const r = Object.keys(i)[0],
3127        n = i[r];
3128      if (typeof n != "object" || n === null) {
3129        K(e, i);
3130        return;
3131      }
3132      if (
3133        (s[r] === !0 && (s[r] = { enabled: !0 }),
3134        r === "navigation" &&
3135          s[r] &&
3136          s[r].enabled &&
3137          !s[r].prevEl &&
3138          !s[r].nextEl &&
3139          (s[r].auto = !0),
3140        ["pagination", "scrollbar"].indexOf(r) >= 0 &&
3141          s[r] &&
3142          s[r].enabled &&
3143          !s[r].el &&
3144          (s[r].auto = !0),
3145        !(r in s && "enabled" in n))
3146      ) {
3147        K(e, i);
3148        return;
3149      }
3150      typeof s[r] == "object" && !("enabled" in s[r]) && (s[r].enabled = !0),
3151        s[r] || (s[r] = { enabled: !1 }),
3152        K(e, i);
3153    };
3154  }
3155  const He = {
3156      eventsEmitter: ls,
3157      update: ws,
3158      translate: Ls,
3159      transition: As,
3160      slide: Hs,
3161      loop: Ns,
3162      grabCursor: Rs,
3163      events: ti,
3164      breakpoints: ni,
3165      checkOverflow: ci,
3166      classes: li,
3167    },
3168    Be = {};
3169  class Y {
3170    constructor() {
3171      let e, t;
3172      for (var i = arguments.length, r = new Array(i), n = 0; n < i; n++)
3173        r[n] = arguments[n];
3174      r.length === 1 &&
3175      r[0].constructor &&
3176      Object.prototype.toString.call(r[0]).slice(8, -1) === "Object"
3177        ? (t = r[0])
3178        : ([e, t] = r),
3179        t || (t = {}),
3180        (t = K({}, t)),
3181        e && !t.el && (t.el = e);
3182      const o = ee();
3183      if (
3184        t.el &&
3185        typeof t.el == "string" &&
3186        o.querySelectorAll(t.el).length > 1
3187      ) {
3188        const d = [];
3189        return (
3190          o.querySelectorAll(t.el).forEach((p) => {
3191            const m = K({}, t, { el: p });
3192            d.push(new Y(m));
3193          }),
3194          d
3195        );
3196      }
3197      const a = this;
3198      (a.__swiper__ = !0),
3199        (a.support = nt()),
3200        (a.device = rt({ userAgent: t.userAgent })),
3201        (a.browser = rs()),
3202        (a.eventsListeners = {}),
3203        (a.eventsAnyListeners = []),
3204        (a.modules = [...a.__modules__]),
3205        t.modules && Array.isArray(t.modules) && a.modules.push(...t.modules);
3206      const l = {};
3207      a.modules.forEach((d) => {
3208        d({
3209          params: t,
3210          swiper: a,
3211          extendParams: ui(t, l),
3212          on: a.on.bind(a),
3213          once: a.once.bind(a),
3214          off: a.off.bind(a),
3215          emit: a.emit.bind(a),
3216        });
3217      });
3218      const u = K({}, ft, l);
3219      return (
3220        (a.params = K({}, u, Be, t)),
3221        (a.originalParams = K({}, a.params)),
3222        (a.passedParams = K({}, t)),
3223        a.params &&
3224          a.params.on &&
3225          Object.keys(a.params.on).forEach((d) => {
3226            a.on(d, a.params.on[d]);
3227          }),
3228        a.params && a.params.onAny && a.onAny(a.params.onAny),
3229        Object.assign(a, {
3230          enabled: a.params.enabled,
3231          el: e,
3232          classNames: [],
3233          slides: [],
3234          slidesGrid: [],
3235          snapGrid: [],
3236          slidesSizesGrid: [],
3237          isHorizontal() {
3238            return a.params.direction === "horizontal";
3239          },
3240          isVertical() {
3241            return a.params.direction === "vertical";
3242          },
3243          activeIndex: 0,
3244          realIndex: 0,
3245          isBeginning: !0,
3246          isEnd: !1,
3247          translate: 0,
3248          previousTranslate: 0,
3249          progress: 0,
3250          velocity: 0,
3251          animating: !1,
3252          cssOverflowAdjustment() {
3253            return Math.trunc(this.translate / 8388608) * 8388608;
3254          },
3255          allowSlideNext: a.params.allowSlideNext,
3256          allowSlidePrev: a.params.allowSlidePrev,
3257          touchEventsData: {
3258            isTouched: void 0,
3259            isMoved: void 0,
3260            allowTouchCallbacks: void 0,
3261            touchStartTime: void 0,
3262            isScrolling: void 0,
3263            currentTranslate: void 0,
3264            startTranslate: void 0,
3265            allowThresholdMove: void 0,
3266            focusableElements: a.params.focusableElements,
3267            lastClickTime: 0,
3268            clickTimeout: void 0,
3269            velocities: [],
3270            allowMomentumBounce: void 0,
3271            startMoving: void 0,
3272            pointerId: null,
3273            touchId: null,
3274          },
3275          allowClick: !0,
3276          allowTouchMove: a.params.allowTouchMove,
3277          touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
3278          imagesToLoad: [],
3279          imagesLoaded: 0,
3280        }),
3281        a.emit("_swiper"),
3282        a.params.init && a.init(),
3283        a
3284      );
3285    }
3286    getDirectionLabel(e) {
3287      return this.isHorizontal()
3288        ? e
3289        : {
3290            width: "height",
3291            "margin-top": "margin-left",
3292            "margin-bottom ": "margin-right",
3293            "margin-left": "margin-top",
3294            "margin-right": "margin-bottom",
3295            "padding-left": "padding-top",
3296            "padding-right": "padding-bottom",
3297            marginRight: "marginBottom",
3298          }[e];
3299    }
3300    getSlideIndex(e) {
3301      const { slidesEl: t, params: i } = this,
3302        r = Q(t, `.${i.slideClass}, swiper-slide`),
3303        n = Se(r[0]);
3304      return Se(e) - n;
3305    }
3306    getSlideIndexByData(e) {
3307      return this.getSlideIndex(
3308        this.slides.filter(
3309          (t) => t.getAttribute("data-swiper-slide-index") * 1 === e
3310        )[0]
3311      );
3312    }
3313    recalcSlides() {
3314      const e = this,
3315        { slidesEl: t, params: i } = e;
3316      e.slides = Q(t, `.${i.slideClass}, swiper-slide`);
3317    }
3318    enable() {
3319      const e = this;
3320      e.enabled ||
3321        ((e.enabled = !0),
3322        e.params.grabCursor && e.setGrabCursor(),
3323        e.emit("enable"));
3324    }
3325    disable() {
3326      const e = this;
3327      e.enabled &&
3328        ((e.enabled = !1),
3329        e.params.grabCursor && e.unsetGrabCursor(),
3330        e.emit("disable"));
3331    }
3332    setProgress(e, t) {
3333      const i = this;
3334      e = Math.min(Math.max(e, 0), 1);
3335      const r = i.minTranslate(),
3336        o = (i.maxTranslate() - r) * e + r;
3337      i.translateTo(o, typeof t > "u" ? 0 : t),
3338        i.updateActiveIndex(),
3339        i.updateSlidesClasses();
3340    }
3341    emitContainerClasses() {
3342      const e = this;
3343      if (!e.params._emitClasses || !e.el) return;
3344      const t = e.el.className
3345        .split(" ")
3346        .filter(
3347          (i) =>
3348            i.indexOf("swiper") === 0 ||
3349            i.indexOf(e.params.containerModifierClass) === 0
3350        );
3351      e.emit("_containerClasses", t.join(" "));
3352    }
3353    getSlideClasses(e) {
3354      const t = this;
3355      return t.destroyed
3356        ? ""
3357        : e.className
3358            .split(" ")
3359            .filter(
3360              (i) =>
3361                i.indexOf("swiper-slide") === 0 ||
3362                i.indexOf(t.params.slideClass) === 0
3363            )
3364            .join(" ");
3365    }
3366    emitSlidesClasses() {
3367      const e = this;
3368      if (!e.params._emitClasses || !e.el) return;
3369      const t = [];
3370      e.slides.forEach((i) => {
3371        const r = e.getSlideClasses(i);
3372        t.push({ slideEl: i, classNames: r }), e.emit("_slideClass", i, r);
3373      }),
3374        e.emit("_slideClasses", t);
3375    }
3376    slidesPerViewDynamic(e, t) {
3377      e === void 0 && (e = "current"), t === void 0 && (t = !1);
3378      const i = this,
3379        {
3380          params: r,
3381          slides: n,
3382          slidesGrid: o,
3383          slidesSizesGrid: a,
3384          size: l,
3385          activeIndex: u,
3386        } = i;
3387      let d = 1;
3388      if (typeof r.slidesPerView == "number") return r.slidesPerView;
3389      if (r.centeredSlides) {
3390        let p = n[u] ? Math.ceil(n[u].swiperSlideSize) : 0,
3391          m;
3392        for (let h = u + 1; h < n.length; h += 1)
3393          n[h] &&
3394            !m &&
3395            ((p += Math.ceil(n[h].swiperSlideSize)),
3396            (d += 1),
3397            p > l && (m = !0));
3398        for (let h = u - 1; h >= 0; h -= 1)
3399          n[h] &&
3400            !m &&
3401            ((p += n[h].swiperSlideSize), (d += 1), p > l && (m = !0));
3402      } else if (e === "current")
3403        for (let p = u + 1; p < n.length; p += 1)
3404          (t ? o[p] + a[p] - o[u] < l : o[p] - o[u] < l) && (d += 1);
3405      else for (let p = u - 1; p >= 0; p -= 1) o[u] - o[p] < l && (d += 1);
3406      return d;
3407    }
3408    update() {
3409      const e = this;
3410      if (!e || e.destroyed) return;
3411      const { snapGrid: t, params: i } = e;
3412      i.breakpoints && e.setBreakpoint(),
3413        [...e.el.querySelectorAll('[loading="lazy"]')].forEach((o) => {
3414          o.complete && be(e, o);
3415        }),
3416        e.updateSize(),
3417        e.updateSlides(),
3418        e.updateProgress(),
3419        e.updateSlidesClasses();
3420      function r() {
3421        const o = e.rtlTranslate ? e.translate * -1 : e.translate,
3422          a = Math.min(Math.max(o, e.maxTranslate()), e.minTranslate());
3423        e.setTranslate(a), e.updateActiveIndex(), e.updateSlidesClasses();
3424      }
3425      let n;
3426      if (i.freeMode && i.freeMode.enabled && !i.cssMode)
3427        r(), i.autoHeight && e.updateAutoHeight();
3428      else {
3429        if (
3430          (i.slidesPerView === "auto" || i.slidesPerView > 1) &&
3431          e.isEnd &&
3432          !i.centeredSlides
3433        ) {
3434          const o =
3435            e.virtual && i.virtual.enabled ? e.virtual.slides : e.slides;
3436          n = e.slideTo(o.length - 1, 0, !1, !0);
3437        } else n = e.slideTo(e.activeIndex, 0, !1, !0);
3438        n || r();
3439      }
3440      i.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
3441        e.emit("update");
3442    }
3443    changeDirection(e, t) {
3444      t === void 0 && (t = !0);
3445      const i = this,
3446        r = i.params.direction;
3447      return (
3448        e || (e = r === "horizontal" ? "vertical" : "horizontal"),
3449        e === r ||
3450          (e !== "horizontal" && e !== "vertical") ||
3451          (i.el.classList.remove(`${i.params.containerModifierClass}${r}`),
3452          i.el.classList.add(`${i.params.containerModifierClass}${e}`),
3453          i.emitContainerClasses(),
3454          (i.params.direction = e),
3455          i.slides.forEach((n) => {
3456            e === "vertical" ? (n.style.width = "") : (n.style.height = "");
3457          }),
3458          i.emit("changeDirection"),
3459          t && i.update()),
3460        i
3461      );
3462    }
3463    changeLanguageDirection(e) {
3464      const t = this;
3465      (t.rtl && e === "rtl") ||
3466        (!t.rtl && e === "ltr") ||
3467        ((t.rtl = e === "rtl"),
3468        (t.rtlTranslate = t.params.direction === "horizontal" && t.rtl),
3469        t.rtl
3470          ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`),
3471            (t.el.dir = "rtl"))
3472          : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`),
3473            (t.el.dir = "ltr")),
3474        t.update());
3475    }
3476    mount(e) {
3477      const t = this;
3478      if (t.mounted) return !0;
3479      let i = e || t.params.el;
3480      if ((typeof i == "string" && (i = document.querySelector(i)), !i))
3481        return !1;
3482      (i.swiper = t),
3483        i.parentNode &&
3484          i.parentNode.host &&
3485          i.parentNode.host.nodeName ===
3486            t.params.swiperElementNodeName.toUpperCase() &&
3487          (t.isElement = !0);
3488      const r = () =>
3489        `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`;
3490      let o =
3491        i && i.shadowRoot && i.shadowRoot.querySelector
3492          ? i.shadowRoot.querySelector(r())
3493          : Q(i, r())[0];
3494      return (
3495        !o &&
3496          t.params.createElements &&
3497          ((o = we("div", t.params.wrapperClass)),
3498          i.append(o),
3499          Q(i, `.${t.params.slideClass}`).forEach((a) => {
3500            o.append(a);
3501          })),
3502        Object.assign(t, {
3503          el: i,
3504          wrapperEl: o,
3505          slidesEl:
3506            t.isElement && !i.parentNode.host.slideSlots
3507              ? i.parentNode.host
3508              : o,
3509          hostEl: t.isElement ? i.parentNode.host : i,
3510          mounted: !0,
3511          rtl: i.dir.toLowerCase() === "rtl" || re(i, "direction") === "rtl",
3512          rtlTranslate:
3513            t.params.direction === "horizontal" &&
3514            (i.dir.toLowerCase() === "rtl" || re(i, "direction") === "rtl"),
3515          wrongRTL: re(o, "display") === "-webkit-box",
3516        }),
3517        !0
3518      );
3519    }
3520    init(e) {
3521      const t = this;
3522      if (t.initialized || t.mount(e) === !1) return t;
3523      t.emit("beforeInit"),
3524        t.params.breakpoints && t.setBreakpoint(),
3525        t.addClasses(),
3526        t.updateSize(),
3527        t.updateSlides(),
3528        t.params.watchOverflow && t.checkOverflow(),
3529        t.params.grabCursor && t.enabled && t.setGrabCursor(),
3530        t.params.loop && t.virtual && t.params.virtual.enabled
3531          ? t.slideTo(
3532              t.params.initialSlide + t.virtual.slidesBefore,
3533              0,
3534              t.params.runCallbacksOnInit,
3535              !1,
3536              !0
3537            )
3538          : t.slideTo(
3539              t.params.initialSlide,
3540              0,
3541              t.params.runCallbacksOnInit,
3542              !1,
3543              !0
3544            ),
3545        t.params.loop && t.loopCreate(),
3546        t.attachEvents();
3547      const r = [...t.el.querySelectorAll('[loading="lazy"]')];
3548      return (
3549        t.isElement && r.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),
3550        r.forEach((n) => {
3551          n.complete
3552            ? be(t, n)
3553            : n.addEventListener("load", (o) => {
3554                be(t, o.target);
3555              });
3556        }),
3557        qe(t),
3558        (t.initialized = !0),
3559        qe(t),
3560        t.emit("init"),
3561        t.emit("afterInit"),
3562        t
3563      );
3564    }
3565    destroy(e, t) {
3566      e === void 0 && (e = !0), t === void 0 && (t = !0);
3567      const i = this,
3568        { params: r, el: n, wrapperEl: o, slides: a } = i;
3569      return (
3570        typeof i.params > "u" ||
3571          i.destroyed ||
3572          (i.emit("beforeDestroy"),
3573          (i.initialized = !1),
3574          i.detachEvents(),
3575          r.loop && i.loopDestroy(),
3576          t &&
3577            (i.removeClasses(),
3578            n && typeof n != "string" && n.removeAttribute("style"),
3579            o && o.removeAttribute("style"),
3580            a &&
3581              a.length &&
3582              a.forEach((l) => {
3583                l.classList.remove(
3584                  r.slideVisibleClass,
3585                  r.slideFullyVisibleClass,
3586                  r.slideActiveClass,
3587                  r.slideNextClass,
3588                  r.slidePrevClass
3589                ),
3590                  l.removeAttribute("style"),
3591                  l.removeAttribute("data-swiper-slide-index");
3592              })),
3593          i.emit("destroy"),
3594          Object.keys(i.eventsListeners).forEach((l) => {
3595            i.off(l);
3596          }),
3597          e !== !1 &&
3598            (i.el && typeof i.el != "string" && (i.el.swiper = null), Yt(i)),
3599          (i.destroyed = !0)),
3600        null
3601      );
3602    }
3603    static extendDefaults(e) {
3604      K(Be, e);
3605    }
3606    static get extendedDefaults() {
3607      return Be;
3608    }
3609    static get defaults() {
3610      return ft;
3611    }
3612    static installModule(e) {
3613      Y.prototype.__modules__ || (Y.prototype.__modules__ = []);
3614      const t = Y.prototype.__modules__;
3615      typeof e == "function" && t.indexOf(e) < 0 && t.push(e);
3616    }
3617    static use(e) {
3618      return Array.isArray(e)
3619        ? (e.forEach((t) => Y.installModule(t)), Y)
3620        : (Y.installModule(e), Y);
3621    }
3622  }
3623  Object.keys(He).forEach((s) => {
3624    Object.keys(He[s]).forEach((e) => {
3625      Y.prototype[e] = He[s][e];
3626    });
3627  }),
3628    Y.use([as, os]);
3629  function pt(s, e, t, i) {
3630    return (
3631      s.params.createElements &&
3632        Object.keys(i).forEach((r) => {
3633          if (!t[r] && t.auto === !0) {
3634            let n = Q(s.el, `.${i[r]}`)[0];
3635            n || ((n = we("div", i[r])), (n.className = i[r]), s.el.append(n)),
3636              (t[r] = n),
3637              (e[r] = n);
3638          }
3639        }),
3640      t
3641    );
3642  }
3643  function mt(s) {
3644    let { swiper: e, extendParams: t, on: i, emit: r } = s;
3645    t({
3646      navigation: {
3647        nextEl: null,
3648        prevEl: null,
3649        hideOnClick: !1,
3650        disabledClass: "swiper-button-disabled",
3651        hiddenClass: "swiper-button-hidden",
3652        lockClass: "swiper-button-lock",
3653        navigationDisabledClass: "swiper-navigation-disabled",
3654      },
3655    }),
3656      (e.navigation = { nextEl: null, prevEl: null });
3657    function n(g) {
3658      let w;
3659      return g &&
3660        typeof g == "string" &&
3661        e.isElement &&
3662        ((w = e.el.querySelector(g) || e.hostEl.querySelector(g)), w)
3663        ? w
3664        : (g &&
3665            (typeof g == "string" && (w = [...document.querySelectorAll(g)]),
3666            e.params.uniqueNavElements &&
3667            typeof g == "string" &&
3668            w &&
3669            w.length > 1 &&
3670            e.el.querySelectorAll(g).length === 1
3671              ? (w = e.el.querySelector(g))
3672              : w && w.length === 1 && (w = w[0])),
3673          g && !w ? g : w);
3674    }
3675    function o(g, w) {
3676      const b = e.params.navigation;
3677      (g = j(g)),
3678        g.forEach((S) => {
3679          S &&
3680            (S.classList[w ? "add" : "remove"](...b.disabledClass.split(" ")),
3681            S.tagName === "BUTTON" && (S.disabled = w),
3682            e.params.watchOverflow &&
3683              e.enabled &&
3684              S.classList[e.isLocked ? "add" : "remove"](b.lockClass));
3685        });
3686    }
3687    function a() {
3688      const { nextEl: g, prevEl: w } = e.navigation;
3689      if (e.params.loop) {
3690        o(w, !1), o(g, !1);
3691        return;
3692      }
3693      o(w, e.isBeginning && !e.params.rewind),
3694        o(g, e.isEnd && !e.params.rewind);
3695    }
3696    function l(g) {
3697      g.preventDefault(),
3698        !(e.isBeginning && !e.params.loop && !e.params.rewind) &&
3699          (e.slidePrev(), r("navigationPrev"));
3700    }
3701    function u(g) {
3702      g.preventDefault(),
3703        !(e.isEnd && !e.params.loop && !e.params.rewind) &&
3704          (e.slideNext(), r("navigationNext"));
3705    }
3706    function d() {
3707      const g = e.params.navigation;
3708      if (
3709        ((e.params.navigation = pt(
3710          e,
3711          e.originalParams.navigation,
3712          e.params.navigation,
3713          { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" }
3714        )),
3715        !(g.nextEl || g.prevEl))
3716      )
3717        return;
3718      let w = n(g.nextEl),
3719        b = n(g.prevEl);
3720      Object.assign(e.navigation, { nextEl: w, prevEl: b }),
3721        (w = j(w)),
3722        (b = j(b));
3723      const S = (c, f) => {
3724        c && c.addEventListener("click", f === "next" ? u : l),
3725          !e.enabled && c && c.classList.add(...g.lockClass.split(" "));
3726      };
3727      w.forEach((c) => S(c, "next")), b.forEach((c) => S(c, "prev"));
3728    }
3729    function p() {
3730      let { nextEl: g, prevEl: w } = e.navigation;
3731      (g = j(g)), (w = j(w));
3732      const b = (S, c) => {
3733        S.removeEventListener("click", c === "next" ? u : l),
3734          S.classList.remove(...e.params.navigation.disabledClass.split(" "));
3735      };
3736      g.forEach((S) => b(S, "next")), w.forEach((S) => b(S, "prev"));
3737    }
3738    i("init", () => {
3739      e.params.navigation.enabled === !1 ? h() : (d(), a());
3740    }),
3741      i("toEdge fromEdge lock unlock", () => {
3742        a();
3743      }),
3744      i("destroy", () => {
3745        p();
3746      }),
3747      i("enable disable", () => {
3748        let { nextEl: g, prevEl: w } = e.navigation;
3749        if (((g = j(g)), (w = j(w)), e.enabled)) {
3750          a();
3751          return;
3752        }
3753        [...g, ...w]
3754          .filter((b) => !!b)
3755          .forEach((b) => b.classList.add(e.params.navigation.lockClass));
3756      }),
3757      i("click", (g, w) => {
3758        let { nextEl: b, prevEl: S } = e.navigation;
3759        (b = j(b)), (S = j(S));
3760        const c = w.target;
3761        let f = S.includes(c) || b.includes(c);
3762        if (e.isElement && !f) {
3763          const v = w.path || (w.composedPath && w.composedPath());
3764          v && (f = v.find((y) => b.includes(y) || S.includes(y)));
3765        }
3766        if (e.params.navigation.hideOnClick && !f) {
3767          if (
3768            e.pagination &&
3769            e.params.pagination &&
3770            e.params.pagination.clickable &&
3771            (e.pagination.el === c || e.pagination.el.contains(c))
3772          )
3773            return;
3774          let v;
3775          b.length
3776            ? (v = b[0].classList.contains(e.params.navigation.hiddenClass))
3777            : S.length &&
3778              (v = S[0].classList.contains(e.params.navigation.hiddenClass)),
3779            r(v === !0 ? "navigationShow" : "navigationHide"),
3780            [...b, ...S]
3781              .filter((y) => !!y)
3782              .forEach((y) =>
3783                y.classList.toggle(e.params.navigation.hiddenClass)
3784              );
3785        }
3786      });
3787    const m = () => {
3788        e.el.classList.remove(
3789          ...e.params.navigation.navigationDisabledClass.split(" ")
3790        ),
3791          d(),
3792          a();
3793      },
3794      h = () => {
3795        e.el.classList.add(
3796          ...e.params.navigation.navigationDisabledClass.split(" ")
3797        ),
3798          p();
3799      };
3800    Object.assign(e.navigation, {
3801      enable: m,
3802      disable: h,
3803      update: a,
3804      init: d,
3805      destroy: p,
3806    });
3807  }
3808  function me(s) {
3809    return (
3810      s === void 0 && (s = ""),
3811      `.${s
3812        .trim()
3813        .replace(/([\.:!+\/])/g, "\\$1")
3814        .replace(/ /g, ".")}`
3815    );
3816  }
3817  function fi(s) {
3818    let { swiper: e, extendParams: t, on: i, emit: r } = s;
3819    const n = "swiper-pagination";
3820    t({
3821      pagination: {
3822        el: null,
3823        bulletElement: "span",
3824        clickable: !1,
3825        hideOnClick: !1,
3826        renderBullet: null,
3827        renderProgressbar: null,
3828        renderFraction: null,
3829        renderCustom: null,
3830        progressbarOpposite: !1,
3831        type: "bullets",
3832        dynamicBullets: !1,
3833        dynamicMainBullets: 1,
3834        formatFractionCurrent: (c) => c,
3835        formatFractionTotal: (c) => c,
3836        bulletClass: `${n}-bullet`,
3837        bulletActiveClass: `${n}-bullet-active`,
3838        modifierClass: `${n}-`,
3839        currentClass: `${n}-current`,
3840        totalClass: `${n}-total`,
3841        hiddenClass: `${n}-hidden`,
3842        progressbarFillClass: `${n}-progressbar-fill`,
3843        progressbarOppositeClass: `${n}-progressbar-opposite`,
3844        clickableClass: `${n}-clickable`,
3845        lockClass: `${n}-lock`,
3846        horizontalClass: `${n}-horizontal`,
3847        verticalClass: `${n}-vertical`,
3848        paginationDisabledClass: `${n}-disabled`,
3849      },
3850    }),
3851      (e.pagination = { el: null, bullets: [] });
3852    let o,
3853      a = 0;
3854    function l() {
3855      return (
3856        !e.params.pagination.el ||
3857        !e.pagination.el ||
3858        (Array.isArray(e.pagination.el) && e.pagination.el.length === 0)
3859      );
3860    }
3861    function u(c, f) {
3862      const { bulletActiveClass: v } = e.params.pagination;
3863      c &&
3864        ((c = c[`${f === "prev" ? "previous" : "next"}ElementSibling`]),
3865        c &&
3866          (c.classList.add(`${v}-${f}`),
3867          (c = c[`${f === "prev" ? "previous" : "next"}ElementSibling`]),
3868          c && c.classList.add(`${v}-${f}-${f}`)));
3869    }
3870    function d(c, f, v) {
3871      if (((c = c % v), (f = f % v), f === c + 1)) return "next";
3872      if (f === c - 1) return "previous";
3873    }
3874    function p(c) {
3875      const f = c.target.closest(me(e.params.pagination.bulletClass));
3876      if (!f) return;
3877      c.preventDefault();
3878      const v = Se(f) * e.params.slidesPerGroup;
3879      if (e.params.loop) {
3880        if (e.realIndex === v) return;
3881        const y = d(e.realIndex, v, e.slides.length);
3882        y === "next"
3883          ? e.slideNext()
3884          : y === "previous"
3885          ? e.slidePrev()
3886          : e.slideToLoop(v);
3887      } else e.slideTo(v);
3888    }
3889    function m() {
3890      const c = e.rtl,
3891        f = e.params.pagination;
3892      if (l()) return;
3893      let v = e.pagination.el;
3894      v = j(v);
3895      let y, E;
3896      const H =
3897          e.virtual && e.params.virtual.enabled
3898            ? e.virtual.slides.length
3899            : e.slides.length,
3900        I = e.params.loop
3901          ? Math.ceil(H / e.params.slidesPerGroup)
3902          : e.snapGrid.length;
3903      if (
3904        (e.params.loop
3905          ? ((E = e.previousRealIndex || 0),
3906            (y =
3907              e.params.slidesPerGroup > 1
3908                ? Math.floor(e.realIndex / e.params.slidesPerGroup)
3909                : e.realIndex))
3910          : typeof e.snapIndex < "u"
3911          ? ((y = e.snapIndex), (E = e.previousSnapIndex))
3912          : ((E = e.previousIndex || 0), (y = e.activeIndex || 0)),
3913        f.type === "bullets" &&
3914          e.pagination.bullets &&
3915          e.pagination.bullets.length > 0)
3916      ) {
3917        const D = e.pagination.bullets;
3918        let T, L, k;
3919        if (
3920          (f.dynamicBullets &&
3921            ((o = Ie(D[0], e.isHorizontal() ? "width" : "height")),
3922            v.forEach((C) => {
3923              C.style[e.isHorizontal() ? "width" : "height"] = `${
3924                o * (f.dynamicMainBullets + 4)
3925              }px`;
3926            }),
3927            f.dynamicMainBullets > 1 &&
3928              E !== void 0 &&
3929              ((a += y - (E || 0)),
3930              a > f.dynamicMainBullets - 1
3931                ? (a = f.dynamicMainBullets - 1)
3932                : a < 0 && (a = 0)),
3933            (T = Math.max(y - a, 0)),
3934            (L = T + (Math.min(D.length, f.dynamicMainBullets) - 1)),
3935            (k = (L + T) / 2)),
3936          D.forEach((C) => {
3937            const $ = [
3938              ...[
3939                "",
3940                "-next",
3941                "-next-next",
3942                "-prev",
3943                "-prev-prev",
3944                "-main",
3945              ].map((B) => `${f.bulletActiveClass}${B}`),
3946            ]
3947              .map((B) =>
3948                typeof B == "string" && B.includes(" ") ? B.split(" ") : B
3949              )
3950              .flat();
3951            C.classList.remove(...$);
3952          }),
3953          v.length > 1)
3954        )
3955          D.forEach((C) => {
3956            const $ = Se(C);
3957            $ === y
3958              ? C.classList.add(...f.bulletActiveClass.split(" "))
3959              : e.isElement && C.setAttribute("part", "bullet"),
3960              f.dynamicBullets &&
3961                ($ >= T &&
3962                  $ <= L &&
3963                  C.classList.add(...`${f.bulletActiveClass}-main`.split(" ")),
3964                $ === T && u(C, "prev"),
3965                $ === L && u(C, "next"));
3966          });
3967        else {
3968          const C = D[y];
3969          if (
3970            (C && C.classList.add(...f.bulletActiveClass.split(" ")),
3971            e.isElement &&
3972              D.forEach(($, B) => {
3973                $.setAttribute("part", B === y ? "bullet-active" : "bullet");
3974              }),
3975            f.dynamicBullets)
3976          ) {
3977            const $ = D[T],
3978              B = D[L];
3979            for (let R = T; R <= L; R += 1)
3980              D[R] &&
3981                D[R].classList.add(...`${f.bulletActiveClass}-main`.split(" "));
3982            u($, "prev"), u(B, "next");
3983          }
3984        }
3985        if (f.dynamicBullets) {
3986          const C = Math.min(D.length, f.dynamicMainBullets + 4),
3987            $ = (o * C - o) / 2 - k * o,
3988            B = c ? "right" : "left";
3989          D.forEach((R) => {
3990            R.style[e.isHorizontal() ? B : "top"] = `${$}px`;
3991          });
3992        }
3993      }
3994      v.forEach((D, T) => {
3995        if (
3996          (f.type === "fraction" &&
3997            (D.querySelectorAll(me(f.currentClass)).forEach((L) => {
3998              L.textContent = f.formatFractionCurrent(y + 1);
3999            }),
4000            D.querySelectorAll(me(f.totalClass)).forEach((L) => {
4001              L.textContent = f.formatFractionTotal(I);
4002            })),
4003          f.type === "progressbar")
4004        ) {
4005          let L;
4006          f.progressbarOpposite
4007            ? (L = e.isHorizontal() ? "vertical" : "horizontal")
4008            : (L = e.isHorizontal() ? "horizontal" : "vertical");
4009          const k = (y + 1) / I;
4010          let C = 1,
4011            $ = 1;
4012          L === "horizontal" ? (C = k) : ($ = k),
4013            D.querySelectorAll(me(f.progressbarFillClass)).forEach((B) => {
4014              (B.style.transform = `translate3d(0,0,0) scaleX(${C}) scaleY(${$})`),
4015                (B.style.transitionDuration = `${e.params.speed}ms`);
4016            });
4017        }
4018        f.type === "custom" && f.renderCustom
4019          ? ((D.innerHTML = f.renderCustom(e, y + 1, I)),
4020            T === 0 && r("paginationRender", D))
4021          : (T === 0 && r("paginationRender", D), r("paginationUpdate", D)),
4022          e.params.watchOverflow &&
4023            e.enabled &&
4024            D.classList[e.isLocked ? "add" : "remove"](f.lockClass);
4025      });
4026    }
4027    function h() {
4028      const c = e.params.pagination;
4029      if (l()) return;
4030      const f =
4031        e.virtual && e.params.virtual.enabled
4032          ? e.virtual.slides.length
4033          : e.grid && e.params.grid.rows > 1
4034          ? e.slides.length / Math.ceil(e.params.grid.rows)
4035          : e.slides.length;
4036      let v = e.pagination.el;
4037      v = j(v);
4038      let y = "";
4039      if (c.type === "bullets") {
4040        let E = e.params.loop
4041          ? Math.ceil(f / e.params.slidesPerGroup)
4042          : e.snapGrid.length;
4043        e.params.freeMode && e.params.freeMode.enabled && E > f && (E = f);
4044        for (let H = 0; H < E; H += 1)
4045          c.renderBullet
4046            ? (y += c.renderBullet.call(e, H, c.bulletClass))
4047            : (y += `<${c.bulletElement} ${
4048                e.isElement ? 'part="bullet"' : ""
4049              } class="${c.bulletClass}"></${c.bulletElement}>`);
4050      }
4051      c.type === "fraction" &&
4052        (c.renderFraction
4053          ? (y = c.renderFraction.call(e, c.currentClass, c.totalClass))
4054          : (y = `<span class="${c.currentClass}"></span> / <span class="${c.totalClass}"></span>`)),
4055        c.type === "progressbar" &&
4056          (c.renderProgressbar
4057            ? (y = c.renderProgressbar.call(e, c.progressbarFillClass))
4058            : (y = `<span class="${c.progressbarFillClass}"></span>`)),
4059        (e.pagination.bullets = []),
4060        v.forEach((E) => {
4061          c.type !== "custom" && (E.innerHTML = y || ""),
4062            c.type === "bullets" &&
4063              e.pagination.bullets.push(
4064                ...E.querySelectorAll(me(c.bulletClass))
4065              );
4066        }),
4067        c.type !== "custom" && r("paginationRender", v[0]);
4068    }
4069    function g() {
4070      e.params.pagination = pt(
4071        e,
4072        e.originalParams.pagination,
4073        e.params.pagination,
4074        { el: "swiper-pagination" }
4075      );
4076      const c = e.params.pagination;
4077      if (!c.el) return;
4078      let f;
4079      typeof c.el == "string" && e.isElement && (f = e.el.querySelector(c.el)),
4080        !f &&
4081          typeof c.el == "string" &&
4082          (f = [...document.querySelectorAll(c.el)]),
4083        f || (f = c.el),
4084        !(!f || f.length === 0) &&
4085          (e.params.uniqueNavElements &&
4086            typeof c.el == "string" &&
4087            Array.isArray(f) &&
4088            f.length > 1 &&
4089            ((f = [...e.el.querySelectorAll(c.el)]),
4090            f.length > 1 &&
4091              (f = f.filter((v) => it(v, ".swiper")[0] === e.el)[0])),
4092          Array.isArray(f) && f.length === 1 && (f = f[0]),
4093          Object.assign(e.pagination, { el: f }),
4094          (f = j(f)),
4095          f.forEach((v) => {
4096            c.type === "bullets" &&
4097              c.clickable &&
4098              v.classList.add(...(c.clickableClass || "").split(" ")),
4099              v.classList.add(c.modifierClass + c.type),
4100              v.classList.add(
4101                e.isHorizontal() ? c.horizontalClass : c.verticalClass
4102              ),
4103              c.type === "bullets" &&
4104                c.dynamicBullets &&
4105                (v.classList.add(`${c.modifierClass}${c.type}-dynamic`),
4106                (a = 0),
4107                c.dynamicMainBullets < 1 && (c.dynamicMainBullets = 1)),
4108              c.type === "progressbar" &&
4109                c.progressbarOpposite &&
4110                v.classList.add(c.progressbarOppositeClass),
4111              c.clickable && v.addEventListener("click", p),
4112              e.enabled || v.classList.add(c.lockClass);
4113          }));
4114    }
4115    function w() {
4116      const c = e.params.pagination;
4117      if (l()) return;
4118      let f = e.pagination.el;
4119      f &&
4120        ((f = j(f)),
4121        f.forEach((v) => {
4122          v.classList.remove(c.hiddenClass),
4123            v.classList.remove(c.modifierClass + c.type),
4124            v.classList.remove(
4125              e.isHorizontal() ? c.horizontalClass : c.verticalClass
4126            ),
4127            c.clickable &&
4128              (v.classList.remove(...(c.clickableClass || "").split(" ")),
4129              v.removeEventListener("click", p));
4130        })),
4131        e.pagination.bullets &&
4132          e.pagination.bullets.forEach((v) =>
4133            v.classList.remove(...c.bulletActiveClass.split(" "))
4134          );
4135    }
4136    i("changeDirection", () => {
4137      if (!e.pagination || !e.pagination.el) return;
4138      const c = e.params.pagination;
4139      let { el: f } = e.pagination;
4140      (f = j(f)),
4141        f.forEach((v) => {
4142          v.classList.remove(c.horizontalClass, c.verticalClass),
4143            v.classList.add(
4144              e.isHorizontal() ? c.horizontalClass : c.verticalClass
4145            );
4146        });
4147    }),
4148      i("init", () => {
4149        e.params.pagination.enabled === !1 ? S() : (g(), h(), m());
4150      }),
4151      i("activeIndexChange", () => {
4152        typeof e.snapIndex > "u" && m();
4153      }),
4154      i("snapIndexChange", () => {
4155        m();
4156      }),
4157      i("snapGridLengthChange", () => {
4158        h(), m();
4159      }),
4160      i("destroy", () => {
4161        w();
4162      }),
4163      i("enable disable", () => {
4164        let { el: c } = e.pagination;
4165        c &&
4166          ((c = j(c)),
4167          c.forEach((f) =>
4168            f.classList[e.enabled ? "remove" : "add"](
4169              e.params.pagination.lockClass
4170            )
4171          ));
4172      }),
4173      i("lock unlock", () => {
4174        m();
4175      }),
4176      i("click", (c, f) => {
4177        const v = f.target,
4178          y = j(e.pagination.el);
4179        if (
4180          e.params.pagination.el &&
4181          e.params.pagination.hideOnClick &&
4182          y &&
4183          y.length > 0 &&
4184          !v.classList.contains(e.params.pagination.bulletClass)
4185        ) {
4186          if (
4187            e.navigation &&
4188            ((e.navigation.nextEl && v === e.navigation.nextEl) ||
4189              (e.navigation.prevEl && v === e.navigation.prevEl))
4190          )
4191            return;
4192          const E = y[0].classList.contains(e.params.pagination.hiddenClass);
4193          r(E === !0 ? "paginationShow" : "paginationHide"),
4194            y.forEach((H) =>
4195              H.classList.toggle(e.params.pagination.hiddenClass)
4196            );
4197        }
4198      });
4199    const b = () => {
4200        e.el.classList.remove(e.params.pagination.paginationDisabledClass);
4201        let { el: c } = e.pagination;
4202        c &&
4203          ((c = j(c)),
4204          c.forEach((f) =>
4205            f.classList.remove(e.params.pagination.paginationDisabledClass)
4206          )),
4207          g(),
4208          h(),
4209          m();
4210      },
4211      S = () => {
4212        e.el.classList.add(e.params.pagination.paginationDisabledClass);
4213        let { el: c } = e.pagination;
4214        c &&
4215          ((c = j(c)),
4216          c.forEach((f) =>
4217            f.classList.add(e.params.pagination.paginationDisabledClass)
4218          )),
4219          w();
4220      };
4221    Object.assign(e.pagination, {
4222      enable: b,
4223      disable: S,
4224      render: h,
4225      update: m,
4226      init: g,
4227      destroy: w,
4228    });
4229  }
4230  function pi(s) {
4231    let { swiper: e, extendParams: t, on: i, emit: r, params: n } = s;
4232    (e.autoplay = { running: !1, paused: !1, timeLeft: 0 }),
4233      t({
4234        autoplay: {
4235          enabled: !1,
4236          delay: 3e3,
4237          waitForTransition: !0,
4238          disableOnInteraction: !1,
4239          stopOnLastSlide: !1,
4240          reverseDirection: !1,
4241          pauseOnMouseEnter: !1,
4242        },
4243      });
4244    let o,
4245      a,
4246      l = n && n.autoplay ? n.autoplay.delay : 3e3,
4247      u = n && n.autoplay ? n.autoplay.delay : 3e3,
4248      d,
4249      p = new Date().getTime(),
4250      m,
4251      h,
4252      g,
4253      w,
4254      b,
4255      S,
4256      c;
4257    function f(V) {
4258      !e ||
4259        e.destroyed ||
4260        !e.wrapperEl ||
4261        (V.target === e.wrapperEl &&
4262          (e.wrapperEl.removeEventListener("transitionend", f),
4263          !(c || (V.detail && V.detail.bySwiperTouchMove)) && T()));
4264    }
4265    const v = () => {
4266        if (e.destroyed || !e.autoplay.running) return;
4267        e.autoplay.paused ? (m = !0) : m && ((u = d), (m = !1));
4268        const V = e.autoplay.paused ? d : p + u - new Date().getTime();
4269        (e.autoplay.timeLeft = V),
4270          r("autoplayTimeLeft", V, V / l),
4271          (a = requestAnimationFrame(() => {
4272            v();
4273          }));
4274      },
4275      y = () => {
4276        let V;
4277        return (
4278          e.virtual && e.params.virtual.enabled
4279            ? (V = e.slides.filter((O) =>
4280                O.classList.contains("swiper-slide-active")
4281              )[0])
4282            : (V = e.slides[e.activeIndex]),
4283          V ? parseInt(V.getAttribute("data-swiper-autoplay"), 10) : void 0
4284        );
4285      },
4286      E = (V) => {
4287        if (e.destroyed || !e.autoplay.running) return;
4288        cancelAnimationFrame(a), v();
4289        let U = typeof V > "u" ? e.params.autoplay.delay : V;
4290        (l = e.params.autoplay.delay), (u = e.params.autoplay.delay);
4291        const O = y();
4292        !Number.isNaN(O) &&
4293          O > 0 &&
4294          typeof V > "u" &&
4295          ((U = O), (l = O), (u = O)),
4296          (d = U);
4297        const se = e.params.speed,
4298          ne = () => {
4299            !e ||
4300              e.destroyed ||
4301              (e.params.autoplay.reverseDirection
4302                ? !e.isBeginning || e.params.loop || e.params.rewind
4303                  ? (e.slidePrev(se, !0, !0), r("autoplay"))
4304                  : e.params.autoplay.stopOnLastSlide ||
4305                    (e.slideTo(e.slides.length - 1, se, !0, !0), r("autoplay"))
4306                : !e.isEnd || e.params.loop || e.params.rewind
4307                ? (e.slideNext(se, !0, !0), r("autoplay"))
4308                : e.params.autoplay.stopOnLastSlide ||
4309                  (e.slideTo(0, se, !0, !0), r("autoplay")),
4310              e.params.cssMode &&
4311                ((p = new Date().getTime()),
4312                requestAnimationFrame(() => {
4313                  E();
4314                })));
4315          };
4316        return (
4317          U > 0
4318            ? (clearTimeout(o),
4319              (o = setTimeout(() => {
4320                ne();
4321              }, U)))
4322            : requestAnimationFrame(() => {
4323                ne();
4324              }),
4325          U
4326        );
4327      },
4328      H = () => {
4329        (p = new Date().getTime()),
4330          (e.autoplay.running = !0),
4331          E(),
4332          r("autoplayStart");
4333      },
4334      I = () => {
4335        (e.autoplay.running = !1),
4336          clearTimeout(o),
4337          cancelAnimationFrame(a),
4338          r("autoplayStop");
4339      },
4340      D = (V, U) => {
4341        if (e.destroyed || !e.autoplay.running) return;
4342        clearTimeout(o), V || (S = !0);
4343        const O = () => {
4344          r("autoplayPause"),
4345            e.params.autoplay.waitForTransition
4346              ? e.wrapperEl.addEventListener("transitionend", f)
4347              : T();
4348        };
4349        if (((e.autoplay.paused = !0), U)) {
4350          b && (d = e.params.autoplay.delay), (b = !1), O();
4351          return;
4352        }
4353        (d = (d || e.params.autoplay.delay) - (new Date().getTime() - p)),
4354          !(e.isEnd && d < 0 && !e.params.loop) && (d < 0 && (d = 0), O());
4355      },
4356      T = () => {
4357        (e.isEnd && d < 0 && !e.params.loop) ||
4358          e.destroyed ||
4359          !e.autoplay.running ||
4360          ((p = new Date().getTime()),
4361          S ? ((S = !1), E(d)) : E(),
4362          (e.autoplay.paused = !1),
4363          r("autoplayResume"));
4364      },
4365      L = () => {
4366        if (e.destroyed || !e.autoplay.running) return;
4367        const V = ee();
4368        V.visibilityState === "hidden" && ((S = !0), D(!0)),
4369          V.visibilityState === "visible" && T();
4370      },
4371      k = (V) => {
4372        V.pointerType === "mouse" &&
4373          ((S = !0), (c = !0), !(e.animating || e.autoplay.paused) && D(!0));
4374      },
4375      C = (V) => {
4376        V.pointerType === "mouse" && ((c = !1), e.autoplay.paused && T());
4377      },
4378      $ = () => {
4379        e.params.autoplay.pauseOnMouseEnter &&
4380          (e.el.addEventListener("pointerenter", k),
4381          e.el.addEventListener("pointerleave", C));
4382      },
4383      B = () => {
4384        e.el &&
4385          typeof e.el != "string" &&
4386          (e.el.removeEventListener("pointerenter", k),
4387          e.el.removeEventListener("pointerleave", C));
4388      },
4389      R = () => {
4390        ee().addEventListener("visibilitychange", L);
4391      },
4392      te = () => {
4393        ee().removeEventListener("visibilitychange", L);
4394      };
4395    i("init", () => {
4396      e.params.autoplay.enabled && ($(), R(), H());
4397    }),
4398      i("destroy", () => {
4399        B(), te(), e.autoplay.running && I();
4400      }),
4401      i("_freeModeStaticRelease", () => {
4402        (g || S) && T();
4403      }),
4404      i("_freeModeNoMomentumRelease", () => {
4405        e.params.autoplay.disableOnInteraction ? I() : D(!0, !0);
4406      }),
4407      i("beforeTransitionStart", (V, U, O) => {
4408        e.destroyed ||
4409          !e.autoplay.running ||
4410          (O || !e.params.autoplay.disableOnInteraction ? D(!0, !0) : I());
4411      }),
4412      i("sliderFirstMove", () => {
4413        if (!(e.destroyed || !e.autoplay.running)) {
4414          if (e.params.autoplay.disableOnInteraction) {
4415            I();
4416            return;
4417          }
4418          (h = !0),
4419            (g = !1),
4420            (S = !1),
4421            (w = setTimeout(() => {
4422              (S = !0), (g = !0), D(!0);
4423            }, 200));
4424        }
4425      }),
4426      i("touchEnd", () => {
4427        if (!(e.destroyed || !e.autoplay.running || !h)) {
4428          if (
4429            (clearTimeout(w),
4430            clearTimeout(o),
4431            e.params.autoplay.disableOnInteraction)
4432          ) {
4433            (g = !1), (h = !1);
4434            return;
4435          }
4436          g && e.params.cssMode && T(), (g = !1), (h = !1);
4437        }
4438      }),
4439      i("slideChange", () => {
4440        e.destroyed || !e.autoplay.running || (b = !0);
4441      }),
4442      Object.assign(e.autoplay, { start: H, stop: I, pause: D, resume: T });
4443  }
4444  function mi(s) {
4445    let { swiper: e, extendParams: t, on: i } = s;
4446    t({
4447      thumbs: {
4448        swiper: null,
4449        multipleActiveThumbs: !0,
4450        autoScrollOffset: 0,
4451        slideThumbActiveClass: "swiper-slide-thumb-active",
4452        thumbsContainerClass: "swiper-thumbs",
4453      },
4454    });
4455    let r = !1,
4456      n = !1;
4457    e.thumbs = { swiper: null };
4458    function o() {
4459      const u = e.thumbs.swiper;
4460      if (!u || u.destroyed) return;
4461      const d = u.clickedIndex,
4462        p = u.clickedSlide;
4463      if (
4464        (p && p.classList.contains(e.params.thumbs.slideThumbActiveClass)) ||
4465        typeof d > "u" ||
4466        d === null
4467      )
4468        return;
4469      let m;
4470      u.params.loop
4471        ? (m = parseInt(
4472            u.clickedSlide.getAttribute("data-swiper-slide-index"),
4473            10
4474          ))
4475        : (m = d),
4476        e.params.loop ? e.slideToLoop(m) : e.slideTo(m);
4477    }
4478    function a() {
4479      const { thumbs: u } = e.params;
4480      if (r) return !1;
4481      r = !0;
4482      const d = e.constructor;
4483      if (u.swiper instanceof d)
4484        (e.thumbs.swiper = u.swiper),
4485          Object.assign(e.thumbs.swiper.originalParams, {
4486            watchSlidesProgress: !0,
4487            slideToClickedSlide: !1,
4488          }),
4489          Object.assign(e.thumbs.swiper.params, {
4490            watchSlidesProgress: !0,
4491            slideToClickedSlide: !1,
4492          }),
4493          e.thumbs.swiper.update();
4494      else if (pe(u.swiper)) {
4495        const p = Object.assign({}, u.swiper);
4496        Object.assign(p, { watchSlidesProgress: !0, slideToClickedSlide: !1 }),
4497          (e.thumbs.swiper = new d(p)),
4498          (n = !0);
4499      }
4500      return (
4501        e.thumbs.swiper.el.classList.add(e.params.thumbs.thumbsContainerClass),
4502        e.thumbs.swiper.on("tap", o),
4503        !0
4504      );
4505    }
4506    function l(u) {
4507      const d = e.thumbs.swiper;
4508      if (!d || d.destroyed) return;
4509      const p =
4510        d.params.slidesPerView === "auto"
4511          ? d.slidesPerViewDynamic()
4512          : d.params.slidesPerView;
4513      let m = 1;
4514      const h = e.params.thumbs.slideThumbActiveClass;
4515      if (
4516        (e.params.slidesPerView > 1 &&
4517          !e.params.centeredSlides &&
4518          (m = e.params.slidesPerView),
4519        e.params.thumbs.multipleActiveThumbs || (m = 1),
4520        (m = Math.floor(m)),
4521        d.slides.forEach((b) => b.classList.remove(h)),
4522        d.params.loop || (d.params.virtual && d.params.virtual.enabled))
4523      )
4524        for (let b = 0; b < m; b += 1)
4525          Q(
4526            d.slidesEl,
4527            `[data-swiper-slide-index="${e.realIndex + b}"]`
4528          ).forEach((S) => {
4529            S.classList.add(h);
4530          });
4531      else
4532        for (let b = 0; b < m; b += 1)
4533          d.slides[e.realIndex + b] &&
4534            d.slides[e.realIndex + b].classList.add(h);
4535      const g = e.params.thumbs.autoScrollOffset,
4536        w = g && !d.params.loop;
4537      if (e.realIndex !== d.realIndex || w) {
4538        const b = d.activeIndex;
4539        let S, c;
4540        if (d.params.loop) {
4541          const f = d.slides.filter(
4542            (v) =>
4543              v.getAttribute("data-swiper-slide-index") === `${e.realIndex}`
4544          )[0];
4545          (S = d.slides.indexOf(f)),
4546            (c = e.activeIndex > e.previousIndex ? "next" : "prev");
4547        } else (S = e.realIndex), (c = S > e.previousIndex ? "next" : "prev");
4548        w && (S += c === "next" ? g : -1 * g),
4549          d.visibleSlidesIndexes &&
4550            d.visibleSlidesIndexes.indexOf(S) < 0 &&
4551            (d.params.centeredSlides
4552              ? S > b
4553                ? (S = S - Math.floor(p / 2) + 1)
4554                : (S = S + Math.floor(p / 2) - 1)
4555              : S > b && d.params.slidesPerGroup,
4556            d.slideTo(S, u ? 0 : void 0));
4557      }
4558    }
4559    i("beforeInit", () => {
4560      const { thumbs: u } = e.params;
4561      if (!(!u || !u.swiper))
4562        if (typeof u.swiper == "string" || u.swiper instanceof HTMLElement) {
4563          const d = ee(),
4564            p = () => {
4565              const h =
4566                typeof u.swiper == "string"
4567                  ? d.querySelector(u.swiper)
4568                  : u.swiper;
4569              if (h && h.swiper) (u.swiper = h.swiper), a(), l(!0);
4570              else if (h) {
4571                const g = `${e.params.eventsPrefix}init`,
4572                  w = (b) => {
4573                    (u.swiper = b.detail[0]),
4574                      h.removeEventListener(g, w),
4575                      a(),
4576                      l(!0),
4577                      u.swiper.update(),
4578                      e.update();
4579                  };
4580                h.addEventListener(g, w);
4581              }
4582              return h;
4583            },
4584            m = () => {
4585              if (e.destroyed) return;
4586              p() || requestAnimationFrame(m);
4587            };
4588          requestAnimationFrame(m);
4589        } else a(), l(!0);
4590    }),
4591      i("slideChange update resize observerUpdate", () => {
4592        l();
4593      }),
4594      i("setTransition", (u, d) => {
4595        const p = e.thumbs.swiper;
4596        !p || p.destroyed || p.setTransition(d);
4597      }),
4598      i("beforeDestroy", () => {
4599        const u = e.thumbs.swiper;
4600        !u || u.destroyed || (n && u.destroy());
4601      }),
4602      Object.assign(e.thumbs, { init: a, update: l });
4603  }
4604  function hi(s) {
4605    const {
4606      effect: e,
4607      swiper: t,
4608      on: i,
4609      setTranslate: r,
4610      setTransition: n,
4611      overwriteParams: o,
4612      perspective: a,
4613      recreateShadows: l,
4614      getEffectParams: u,
4615    } = s;
4616    i("beforeInit", () => {
4617      if (t.params.effect !== e) return;
4618      t.classNames.push(`${t.params.containerModifierClass}${e}`),
4619        a && a() && t.classNames.push(`${t.params.containerModifierClass}3d`);
4620      const p = o ? o() : {};
4621      Object.assign(t.params, p), Object.assign(t.originalParams, p);
4622    }),
4623      i("setTranslate", () => {
4624        t.params.effect === e && r();
4625      }),
4626      i("setTransition", (p, m) => {
4627        t.params.effect === e && n(m);
4628      }),
4629      i("transitionEnd", () => {
4630        if (t.params.effect === e && l) {
4631          if (!u || !u().slideShadows) return;
4632          t.slides.forEach((p) => {
4633            p.querySelectorAll(
4634              ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
4635            ).forEach((m) => m.remove());
4636          }),
4637            l();
4638        }
4639      });
4640    let d;
4641    i("virtualUpdate", () => {
4642      t.params.effect === e &&
4643        (t.slides.length || (d = !0),
4644        requestAnimationFrame(() => {
4645          d && t.slides && t.slides.length && (r(), (d = !1));
4646        }));
4647    });
4648  }
4649  function gi(s, e) {
4650    const t = st(e);
4651    return (
4652      t !== e &&
4653        ((t.style.backfaceVisibility = "hidden"),
4654        (t.style["-webkit-backface-visibility"] = "hidden")),
4655      t
4656    );
4657  }
4658  function vi(s) {
4659    let { swiper: e, duration: t, transformElements: i, allSlides: r } = s;
4660    const { activeIndex: n } = e,
4661      o = (a) =>
4662        a.parentElement
4663          ? a.parentElement
4664          : e.slides.filter(
4665              (u) => u.shadowRoot && u.shadowRoot === a.parentNode
4666            )[0];
4667    if (e.params.virtualTranslate && t !== 0) {
4668      let a = !1,
4669        l;
4670      r
4671        ? (l = i)
4672        : (l = i.filter((u) => {
4673            const d = u.classList.contains("swiper-slide-transform") ? o(u) : u;
4674            return e.getSlideIndex(d) === n;
4675          })),
4676        l.forEach((u) => {
4677          ts(u, () => {
4678            if (a || !e || e.destroyed) return;
4679            (a = !0), (e.animating = !1);
4680            const d = new window.CustomEvent("transitionend", {
4681              bubbles: !0,
4682              cancelable: !0,
4683            });
4684            e.wrapperEl.dispatchEvent(d);
4685          });
4686        });
4687    }
4688  }
4689  function yi(s) {
4690    let { swiper: e, extendParams: t, on: i } = s;
4691    t({ fadeEffect: { crossFade: !1 } }),
4692      hi({
4693        effect: "fade",
4694        swiper: e,
4695        on: i,
4696        setTranslate: () => {
4697          const { slides: o } = e,
4698            a = e.params.fadeEffect;
4699          for (let l = 0; l < o.length; l += 1) {
4700            const u = e.slides[l];
4701            let p = -u.swiperSlideOffset;
4702            e.params.virtualTranslate || (p -= e.translate);
4703            let m = 0;
4704            e.isHorizontal() || ((m = p), (p = 0));
4705            const h = e.params.fadeEffect.crossFade
4706                ? Math.max(1 - Math.abs(u.progress), 0)
4707                : 1 + Math.min(Math.max(u.progress, -1), 0),
4708              g = gi(a, u);
4709            (g.style.opacity = h),
4710              (g.style.transform = `translate3d(${p}px, ${m}px, 0px)`);
4711          }
4712        },
4713        setTransition: (o) => {
4714          const a = e.slides.map((l) => st(l));
4715          a.forEach((l) => {
4716            l.style.transitionDuration = `${o}ms`;
4717          }),
4718            vi({ swiper: e, duration: o, transformElements: a, allSlides: !0 });
4719        },
4720        overwriteParams: () => ({
4721          slidesPerView: 1,
4722          slidesPerGroup: 1,
4723          watchSlidesProgress: !0,
4724          spaceBetween: 0,
4725          virtualTranslate: !e.params.cssMode,
4726        }),
4727      });
4728  }
4729  function ht(s = document) {
4730    const e = s.querySelectorAll(".elty-slider");
4731    e.length != 0 &&
4732      [...e].forEach((t) => {
4733        if (t) {
4734          const i = t.querySelector(".elty-slider-pagination"),
4735            r = t.parentNode.querySelector(".elty-slider-navigation"),
4736            n = { autoplay: { delay: 5e3 }, modules: [pi] };
4737          if (
4738            (i &&
4739              (n.modules.push(fi), (n.pagination = { el: i, clickable: !0 })),
4740            r &&
4741              (n.modules.push(mt),
4742              (n.navigation = {
4743                nextEl: r.querySelector(".elty-slider-next"),
4744                prevEl: r.querySelector(".elty-slider-prev"),
4745              })),
4746            t.classList.contains("elty-slider-section-2") &&
4747              ((n.slidesPerView = 2),
4748              (n.spaceBetween = 16),
4749              (n.breakpoints = {
4750                576: { slidesPerView: 3 },
4751                1024: { slidesPerView: 4 },
4752              })),
4753            t.classList.contains("elty-hero-slider"))
4754          ) {
4755            (n.effect = "fade"),
4756              (n.fadeEffect = { crossFade: !0 }),
4757              (n.speed = 1e3),
4758              n.modules.push(yi);
4759            const o = t.parentNode.querySelector(".elty-hero-thumbs");
4760            if (o) {
4761              const a = new Y(o, {
4762                direction: "vertical",
4763                speed: 1e3,
4764                slidesPerView: "auto",
4765                centeredSlides: !1,
4766                spaceBetween: 10,
4767                watchSlidesVisibility: !0,
4768                watchSlidesProgress: !0,
4769              });
4770              n.modules.push(mi), (n.thumbs = { swiper: a });
4771            }
4772          }
4773          if (
4774            (t.classList.contains("elty-slider-section-5") &&
4775              ((n.slidesPerView = 2),
4776              (n.spaceBetween = 16),
4777              (n.breakpoints = {
4778                576: { slidesPerView: 3 },
4779                1024: { slidesPerView: 3 },
4780              })),
4781            t.classList.contains("elty-slider-section-6") &&
4782              (delete n.autoplay,
4783              (n.loop = !1),
4784              (n.slidesPerView = 1.75),
4785              (n.spaceBetween = 16),
4786              (n.breakpoints = {
4787                480: { slidesPerView: 2.5 },
4788                1024: { slidesPerView: 4.5 },
4789              })),
4790            t.classList.contains("nxradio-multiradio-slider"))
4791          ) {
4792            const o = t.classList.contains("is-auto-columns");
4793            (n.slidesPerView = o ? t.dataset.xs : 2),
4794              (n.spaceBetween = 24),
4795              (n.breakpoints = {
4796                768: { slidesPerView: o ? t.dataset.md : 3 },
4797                1024: { slidesPerView: o ? t.dataset.lg : 5 },
4798              });
4799          }
4800          t.classList.contains("nxradio-locutor-slider") &&
4801            ((n.slidesPerView = t.dataset.xs ? t.dataset.xs : 2),
4802            (n.spaceBetween = 24),
4803            (n.breakpoints = {
4804              768: { slidesPerView: t.dataset.md ? t.dataset.md : 3 },
4805              1024: { slidesPerView: t.dataset.lg ? t.dataset.lg : 5 },
4806            })),
4807            new Y(t, n);
4808        }
4809      });
4810  }
4811  function gt() {
4812    const s = document.querySelector(".post-share"),
4813      e = document.querySelector(".post");
4814    if (!s || !e) return;
4815    const t = s.querySelectorAll("a"),
4816      i = s.offsetTop,
4817      r = 600,
4818      n = 400,
4819      o = window.innerWidth / 2 - r / 2,
4820      a = window.innerHeight / 2 - n / 2;
4821    [...t].forEach((u) => {
4822      u.addEventListener("click", function (d) {
4823        d.preventDefault(),
4824          window.open(
4825            u.href,
4826            "Compartir entrada",
4827            `width=${r},height=${n},top=${a},left=${o},scrollbars=yes`
4828          );
4829      });
4830    });
4831    function l() {
4832      const u = e.getBoundingClientRect().top,
4833        d = window.scrollY || window.pageYOffset;
4834      u <= 0
4835        ? (s.style.top = d - e.offsetTop + i + 84 + "px")
4836        : (s.style.top = i + "px");
4837    }
4838    l(),
4839      window.addEventListener("scroll", () => {
4840        l();
4841      });
4842  }
4843  function wi(s) {
4844    const e = document.createElement("video");
4845    return (
4846      e.setAttribute("controls", ""),
4847      e.setAttribute("disablePictureInPicture", ""),
4848      e.setAttribute("controlsList", "nodownload noplaybackrate nofullscreen"),
4849      e.setAttribute("src", s),
4850      e
4851    );
4852  }
4853  function vt() {
4854    const s = document.querySelectorAll(".reels-item");
4855    if (s.length == 0) return;
4856    const e = document.querySelector(".reels-modal"),
4857      t = document.querySelector(".reels-modal .swiper"),
4858      i = e.querySelectorAll(".reels-video"),
4859      r = e.querySelector(".reels-modal__action .nav"),
4860      n = e.querySelector(".close");
4861    function o(u) {
4862      const d = u.getAttribute("data-url-video"),
4863        p = u.querySelector("video");
4864      if (!p) {
4865        const m = wi(d);
4866        u.appendChild(m), m.play();
4867      }
4868      p && p.play();
4869    }
4870    function a() {
4871      const u = this.activeIndex,
4872        d = this.slides[u];
4873      if (!d) return;
4874      const p = d.querySelector(".reels-video");
4875      this.slides.forEach((m) => {
4876        const h = m.querySelector("video");
4877        h && (h.pause(), (h.currentTime = 0));
4878      }),
4879        o(p);
4880    }
4881    const l = new Y(t, {
4882      modules: [mt],
4883      direction: "vertical",
4884      spaceBetween: 32,
4885      on: { slideChange: a },
4886      navigation: {
4887        prevEl: r.querySelector(".prev"),
4888        nextEl: r.querySelector(".next"),
4889      },
4890    });
4891    [...s].forEach((u, d) => {
4892      u.addEventListener("click", function () {
4893        const p = d;
4894        e.classList.add("open"), l.slideTo(p);
4895        const m = i[p];
4896        o(m);
4897      });
4898    }),
4899      n.addEventListener("click", function () {
4900        e.classList.remove("open"),
4901          [...i].forEach((u) => {
4902            const d = u.querySelector("video");
4903            d && (d.pause(), (d.currentTime = 0));
4904          });
4905      });
4906  }
4907  function yt(s) {
4908    const e = document.createElement("iframe");
4909
4910    e.src = `https://www.youtube.com/embed/${s}?enablejsapi=1&origin=${encodeURIComponent(window.location.origin)}`;
4911    e.setAttribute("allowfullscreen", "1");
4912    e.setAttribute("referrerpolicy", "strict-origin-when-cross-origin");
4913    e.className = "ytube-embed";
4914    e.allow = "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture";
4915
4916    return e;
4917  }
4918  function wt() {
4919    const s = document.querySelectorAll("#ytlistmini");
4920    s.length != 0 &&
4921      [...s].forEach((e) => {
4922        e.addEventListener("click", function (t) {
4923          const i = t.target;
4924          if (i.matches("button")) {
4925            const r = i.closest(".ytlistmini-item");
4926            if (r.classList.contains("is-active")) return;
4927            const n = r.parentNode.querySelectorAll(".ytlistmini-item"),
4928              o = r.querySelector(".ytlistmini-iframe"),
4929              a = r.getAttribute("data-youtube-id");
4930            [...n].forEach((l) => l.classList.remove("is-active")),
4931              r.classList.add("is-active"),
4932              (o.innerHTML = ""),
4933              o.appendChild(yt(a));
4934          }
4935        });
4936      });
4937  }
4938  function St() {
4939    const s = document.querySelectorAll("#ytlistlarge");
4940    s &&
4941      [...s].forEach((e) => {
4942        e.addEventListener("click", function (t) {
4943          const i = t.target;
4944          if (i.matches("button")) {
4945            const r = i.closest(".ytlistlarge-item");
4946            if (r.classList.contains("is-active")) return;
4947            const n = r.parentNode.querySelectorAll(".ytlistlarge-item"),
4948              o = r.querySelector(".ytlistlarge-iframe"),
4949              a = r.getAttribute("data-youtube-id");
4950            [...n].forEach((l) => l.classList.remove("is-active")),
4951              r.classList.add("is-active"),
4952              (o.innerHTML = ""),
4953              o.appendChild(yt(a));
4954          }
4955        });
4956      });
4957  }
4958  function bt() {
4959    const s = document.querySelector(".schedule");
4960    if (!s) return;
4961    const e = document.querySelectorAll(".schedule-header button");
4962    if (e.length == 0) return;
4963    const t = s.querySelector(".schedule-list__wrapper"),
4964      i = s.querySelector(".schedule-list"),
4965      r = s.querySelector(".schedule-item-template"),
4966      n = s.querySelector(".schedule-info-template");
4967    [...e].forEach((o) => {
4968      o.addEventListener("click", async function () {
4969        const a = s.getAttribute("data-endpoint"),
4970          l = o.getAttribute("data-day"),
4971          u = s.getAttribute("data-current-day");
4972        [...e].forEach((p) => p.classList.remove("is-active")),
4973          o.classList.add("is-active");
4974        let d = await fetch(`${a}/${l}`);
4975        (d = await d.json()),
4976          d.items.length > 0
4977            ? ((t.innerHTML = ""),
4978              i.querySelector(".schedule-info") &&
4979                i.querySelector(".schedule-info").remove(),
4980              d.items.forEach((p) => {
4981                let m = r.innerHTML;
4982                (m = m.replace(/{title}/g, p.title)),
4983                  (m = m.replace(/{description}/g, p.description)),
4984                  (m = m.replace(/{image}/g, p.image)),
4985                  (m = m.replace(/{inicio}/g, p.inicio)),
4986                  (m = m.replace(/{url}/g, p.url)),
4987                  (m = m.replace(
4988                    /{onAir}/g,
4989                    p.onAir && d.day == u ? "is-current" : ""
4990                  )),
4991                  t.insertAdjacentHTML("beforeend", m);
4992              }))
4993            : ((t.innerHTML = ""),
4994              i.querySelector(".schedule-info") &&
4995                i.querySelector(".schedule-info").remove(),
4996              i.insertAdjacentHTML("beforeend", n.innerHTML));
4997      });
4998    });
4999  }
5000  function Tt() {
5001    const s = document.querySelectorAll(".nexo-tops-item .nexo-tops-votes");
5002    s.length != 0 &&
5003      [...s].forEach((e) => {
5004        [...e.querySelectorAll("button")].forEach((i) => {
5005          i.addEventListener("click", async (r) => {
5006            r.stopPropagation();
5007            const n = i.getAttribute("data-pid"),
5008              o = i.getAttribute("data-type"),
5009              a = i.querySelector("i"),
5010              l = i.parentNode.querySelector(".total-votes"),
5011              u = `${nxradioApiSettings.root}nexoradio/v1/vote/${n}/${o}`,
5012              d = a.className;
5013            a.className = "fas fa-spinner fa-spin-pulse";
5014            let p = await fetch(u);
5015            (p = await p.json()),
5016              (a.classList = d),
5017              p.status == !0 &&
5018                (i.parentNode.classList.add("disabled"),
5019                (l.innerHTML = p.votes));
5020          });
5021        });
5022      });
5023  }
5024  function Si() {
5025    const s = new jt("#ajaxify", {
5026      documentHeadRefresh: !0,
5027      refreshElementorScripts: !0,
5028      keepPosition: ["comment-reply-link"],
5029    });
5030    s.start();
5031    function e() {
5032      const t = document.querySelector(".offcanvas");
5033      if (t) {
5034        const i = document.querySelector(".offcanvas-overlay");
5035        t.classList.remove("on"),
5036          i.classList.remove("on"),
5037          (document.body.style.overflow = null);
5038      }
5039    }
5040    s.onChangePage(function (t, i) {
5041      (i.isPostPage || i.isTemplatePage) && gt(),
5042        (i.isHomePage || i.isTemplatePage) && (ht(), vt(), bt(), Tt()),
5043        wt(),
5044        St(),
5045        e(),
5046        i.isPostPage &&
5047          window.setTimeout(() => {
5048            typeof window.instgrm < "u" && window.instgrm.Embeds.process(),
5049              window.twttr && window.twttr.widgets.load();
5050          }, 1200);
5051    }),
5052      s.hotChange([".hder", ".hder-top", "#ajaxify-offcanvas"]),
5053      s.onChangePageSearch(function () {
5054        const t = document.querySelector(".elty-search-box");
5055        t && (t.remove(), (document.body.style.overflow = null));
5056      });
5057  }
5058  function bi() {
5059    const s = document.querySelector(".newsletter");
5060    if (!s) return;
5061    const e = Array.from(s.querySelectorAll("li"));
5062    let t = 0,
5063      i;
5064    function r() {
5065      i = setInterval(function () {
5066        (t = t + 1),
5067          t >= e.length && (t = 0),
5068          e.forEach((o) => o.classList.remove("is-active")),
5069          e[t].classList.add("is-active");
5070      }, 3e3);
5071    }
5072    function n() {
5073      clearInterval(i);
5074    }
5075    r(),
5076      s.addEventListener("mouseenter", n),
5077      s.addEventListener("mouseleave", r);
5078  }
5079  function Ti(s) {
5080    const e = document.createElement("div"),
5081      t = document.createElement("form"),
5082      i = document.createElement("input"),
5083      r = document.createElement("i");
5084    return (
5085      e.classList.add("elty-search-box"),
5086      t.classList.add("elty-search-box__form"),
5087      (t.action = s),
5088      (t.method = "GET"),
5089      (i.type = "text"),
5090      (i.placeholder = "Busque noticias aquí"),
5091      (i.name = "s"),
5092      (r.className = "fa-solid fa-magnifying-glass"),
5093      t.appendChild(r),
5094      t.appendChild(i),
5095      e.appendChild(t),
5096      e.addEventListener("click", function (n) {
5097        n.target.matches(".elty-search-box") &&
5098          (e.remove(), (document.body.style.overflow = null));
5099      }),
5100      document.addEventListener("keydown", function (n) {
5101        (n.key == "Escape" || n.key === "Esc") &&
5102          (e.remove(), (document.body.style.overflow = null));
5103      }),
5104      e
5105    );
5106  }
5107  function xi() {
5108    const s = document.querySelector(".btn-search");
5109    if (!s) return;
5110    const e = document.body,
5111      t = Ti(s.getAttribute("data-home")),
5112      i = t.querySelector("input");
5113    s.addEventListener("click", function () {
5114      e.appendChild(t), (e.style.overflow = "hidden"), i.focus();
5115    });
5116  }
5117  function Ei() {
5118    const s = document.querySelector(".btn-menu");
5119    if (!s) return;
5120    const e = document.body,
5121      t = document.querySelector(".offcanvas"),
5122      i = document.querySelector(".offcanvas-overlay"),
5123      r = document.querySelector(".offcanvas-close");
5124    s.addEventListener("click", function (n) {
5125      n.stopPropagation(),
5126        t.classList.add("on"),
5127        i.classList.add("on"),
5128        (e.style.overflow = "hidden");
5129    }),
5130      i.addEventListener("click", function () {
5131        t.classList.remove("on"),
5132          i.classList.remove("on"),
5133          (e.style.overflow = null);
5134      }),
5135      r.addEventListener("click", function () {
5136        t.classList.remove("on"),
5137          i.classList.remove("on"),
5138          (e.style.overflow = null);
5139      }),
5140      document.addEventListener("keydown", function (n) {
5141        (n.key == "Escape" || n.key === "Esc") &&
5142          (t.classList.remove("on"),
5143          i.classList.remove("on"),
5144          (e.style.overflow = null));
5145      });
5146  }
5147  function Li() {
5148    const s = document.querySelectorAll(".menu");
5149    s &&
5150      [...s].forEach((e) => {
5151        [...e.querySelectorAll("ul li")].map((i) => {
5152          const r = i.querySelector("a");
5153          if (r.parentNode.querySelector(".sub-menu")) {
5154            const a = document.createElement("span");
5155            a.classList.add("has-child-ico"),
5156              (a.innerHTML = '<i class="fas fa-angle-down"></i>'),
5157              r.classList.add("has-child"),
5158              r.appendChild(a);
5159          }
5160        });
5161      });
5162  }
5163  function Ci(s) {
5164    const e = window.getComputedStyle(s);
5165    if (e.height === "0px") {
5166      s.style.height = "auto";
5167      const t = s.offsetHeight + "px";
5168      (s.style.height = "0px"),
5169        setTimeout(() => {
5170          s.style.height = t;
5171        }, 10);
5172    } else
5173      (s.style.height = e.height),
5174        setTimeout(() => {
5175          s.style.height = "0px";
5176        }, 10);
5177    s.addEventListener(
5178      "transitionend",
5179      () => {
5180        s.style.height !== "0px" && (s.style.height = "auto");
5181      },
5182      { once: !0 }
5183    );
5184  }
5185  function Pi() {
5186    const s = document.querySelectorAll(".offcanvas-menu a");
5187    s.length !== 0 &&
5188      [...s].forEach((e) => {
5189        e.addEventListener("click", function (t) {
5190          const i = t.target,
5191            r = i.closest("li").querySelector(".sub-menu");
5192          i.matches("span") && (t.preventDefault(), r && Ci(r));
5193        });
5194      });
5195  }
5196  function Mi(s, e) {
5197    if (!s) return;
5198    const t = document.getElementById(s.dataset.outside);
5199    if (!t) return;
5200    function i() {
5201      if (
5202        (s.classList.toggle(e), t.classList.toggle(e), s.classList.contains(e))
5203      ) {
5204        document.addEventListener("click", r);
5205        return;
5206      }
5207      document.removeEventListener("click", r);
5208    }
5209    s.addEventListener("click", i);
5210    function r(o) {
5211      !t.contains(o.target) &&
5212        !s.contains(o.target) &&
5213        (i(), document.removeEventListener("click", r));
5214    }
5215    const n = t.querySelector("[data-close]");
5216    n &&
5217      n.addEventListener("click", () => {
5218        s.classList.remove(e),
5219          t.classList.remove(e),
5220          document.removeEventListener("click", r);
5221      });
5222  }
5223  function Ai(s, e) {
5224    s.forEach((t) => {
5225      Mi(t, e);
5226    });
5227  }
5228  function xt(s, e) {
5229    const t = document.querySelector("html"),
5230      i = document.querySelector("meta[name=theme-color]");
5231    s.complete
5232      ? (t.setAttribute("style", `--accent: rgb(${e.getColor(s)})`),
5233        i.setAttribute("content", `rgb(${e.getColor(s)})`))
5234      : s.addEventListener("load", function () {
5235          t.setAttribute("style", `--accent: rgb(${e.getColor(s)})`),
5236            i.setAttribute("content", `rgb(${e.getColor(s)})`);
5237        });
5238  }
5239  function Et(s) {
5240    return new Promise((e, t) => {
5241      const i = document.createElement("img");
5242      (i.crossOrigin = "Anonymous"),
5243        (i.src = `https://images.weserv.nl/?url=${s}`),
5244        (i.onload = () => e(i)),
5245        (i.onerror = t);
5246    });
5247  }
5248  function _e(s, e) {
5249    if (!s || !e) return;
5250    const t = s.querySelector(".player-picture img:first-child"),
5251      i = s.querySelector(".player-bg"),
5252      r = s.querySelector(".station-name"),
5253      n = s.querySelector(".stream-name"),
5254      o = s.querySelector(".stream-description"),
5255      a = s.querySelector(".station-tv"),
5256      l = s.querySelector(".station-picture img");
5257    if (t) {
5258      const u = new ColorThief();
5259      Et(e.picture).then((d) => {
5260        xt(d, u);
5261      }),
5262        (t.src = e.picture);
5263    }
5264    i && (i.src = e.background),
5265      r && (r.textContent = e.name),
5266      n && (n.textContent = e.name),
5267      o && (o.textContent = e.description),
5268      a && a.classList.remove("none"),
5269      l && (l.src = e.picture);
5270  }
5271  function Ii(s) {
5272    const e = document.createElement("canvas");
5273    return (
5274      e.setAttribute("id", "visualizerCanvas"),
5275      e.setAttribute("class", "visualizer-item"),
5276      s.appendChild(e),
5277      (e.width = s.clientWidth),
5278      (e.height = s.clientHeight),
5279      e
5280    );
5281  }
5282  function Lt(s, e) {
5283    (s.width = e.clientWidth), (s.height = e.clientHeight);
5284  }
5285  function ki(s, e) {
5286    if (!s || !e) return;
5287    const t = {
5288        fftSize: e.dataset.fftSize || 2048,
5289        numBars: e.dataset.bars || 40,
5290        maxHeight: 80,
5291      },
5292      i = new AudioContext(),
5293      r = i.createMediaElementSource(s),
5294      n = i.createAnalyser();
5295    r.connect(n), r.connect(i.destination);
5296    const o = new Uint8Array(n.frequencyBinCount),
5297      a = Ii(e),
5298      l = a.getContext("2d"),
5299      u = () => {
5300        Lt(a, e),
5301          n.getByteFrequencyData(o),
5302          t.fftSize && (n.fftSize = t.fftSize),
5303          l.clearRect(0, 0, a.width, a.height);
5304        for (let d = 0; d < t.numBars; d++) {
5305          const p = Math.floor((d + 10) * (d < t.numBars / 2 ? 2 : 1)),
5306            m = o[p],
5307            h = Math.max(4, (m / 255) * t.maxHeight),
5308            g = a.width / t.numBars,
5309            w = d * g,
5310            b = a.height - h;
5311          (l.fillStyle = "white"), l.fillRect(w, b, g - 2, h);
5312        }
5313        requestAnimationFrame(u);
5314      };
5315    u(),
5316      window.addEventListener("resize", () => {
5317        Lt(a, e);
5318      });
5319  }
5320  function Oi(s) {
5321    return new Date(s * 1e3);
5322  }
5323  function $i(s) {
5324    const e = (o) => (Date.now() - o) / 1e3,
5325      t = { day: 86400, hour: 3600, minute: 60, second: 1 },
5326      i = (o) => {
5327        for (const [a, l] of Object.entries(t))
5328          if (o >= l || a === "second")
5329            return { value: Math.floor(o / l) * -1, unit: a };
5330      },
5331      r = (o) => {
5332        const a = new Intl.RelativeTimeFormat(),
5333          l = e(o),
5334          { value: u, unit: d } = i(l);
5335        return a.format(u, d);
5336      },
5337      n = new Date(s);
5338    return r(n);
5339  }
5340  function zi(s, e) {
5341    return (s * 100) / e;
5342  }
5343  function Ct(s) {
5344    const e = Math.floor(s / 60),
5345      t = s % 60;
5346    return `${e}:${t.toFixed(0) < 10 ? "0" : ""}${t.toFixed(0)}`;
5347  }
5348  function Di() {
5349    const s = document.querySelectorAll("[data-outside]"),
5350      e = "is-active",
5351      t = "1637b78dc3b129e6843ed674489a92d0",
5352      i = {},
5353      r = {
5354        play: '<svg width="24"  height="24" viewBox="0 0 24 24"  fill="currentColor"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z" /></svg>',
5355        pause:
5356          '<svg width="24"  height="24" viewBox="0 0 24 24"  fill="currentColor"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M9 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z" /><path d="M17 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z" /></svg>',
5357        stop: '<svg width="24"  height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M6 5H18C18.5523 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5Z"/></svg>',
5358      },
5359      n =
5360        "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdj+P//PxcACQYDCF0ysWYAAAAASUVORK5CYII=",
5361      o = async (c) => {
5362        const v = await (
5363        //await fetch(`https://api.nexoradio.pro/search?query=${c}`)
5364            await fetch(`/wp-content/themes/nexoradio/nexoapi/search.php?query=${c}`)
5365        ).json();
5366        return v.results.length === 0
5367          ? (
5368              await (
5369                await fetch(
5370                  `https://itunes.apple.com/search?term=${c}&entity=song&limit=1`
5371                )
5372              ).json()
5373            ).results[0]
5374          : v.results;
5375      },
5376      a = async (c) => {
5377        const f = `${c.artist} ${c.title}`,
5378          v = `${f}`;
5379        if (i[v]) return i[v];
5380        const y = await o(encodeURIComponent(f)),
5381          E = { ...c, ...y };
5382        if (y.artworkUrl100) {
5383          const H = (I) => y.artworkUrl100.replace("100x100bb", `${I}x${I}bb`);
5384          (E.artworkUrl100 = H("100")),
5385            (E.artworkUrl500 = H("500")),
5386            (E.artworkUrl1000 = H("1000")),
5387            (E.artworkUrl2000 = H("2000"));
5388        } else
5389          (E.artworkUrl100 = y.artwork || n),
5390            (E.artworkUrl500 = y.artwork || n),
5391            (E.artworkUrl1000 = y.artwork || n),
5392            (E.artworkUrl2000 = y.artwork || n);
5393        return (i[v] = E), E;
5394      };
5395    function l(c, f) {
5396      return {
5397        artist: c.artist,
5398        title: c.title,
5399        playedAt: c.playedAt,
5400        duration: c.duration,
5401        elapsed: c.elapsed,
5402        remaining: c.remaining,
5403        artwork: f.picture || n,
5404        artworkUrl100: f.picture || n,
5405        artworkUrl500: f.picture || n,
5406        artworkUrl1000: f.picture || n,
5407        artworkUrl2000: f.picture || n,
5408      };
5409    }
5410
5411
5412
5413     const u = async (c, f) => {
5414    try {
5415        //  Primer intento: lyrics.ovh API
5416        const response = await fetch(
5417            `https://api.lyrics.ovh/v1/${encodeURIComponent(c)}/${encodeURIComponent(f)}`
5418        );
5419
5420        const data = await response.json();
5421
5422        if (data && data.lyrics) {
5423            return data.lyrics;
5424        } else {
5425            console.log("lyrics.ovh no encontró la letra. Intentando con L
5425RCLIB...");
5426        }
5427    } catch (error) {
5428        console.error("Error en lyrics.ovh API:", error);
5429    }
5430
5431    // Segundo intento: LRCLIB
5432    try {
5433        const response = await fetch(
5434            `https://lrclib.net/api/get?artist_name=${encodeURIComponent(
5435                c
5436            )}&track_name=${encodeURIComponent(f)}`
5437        );
5438
5439        if (!response.ok) throw new Error("LRCLIB API no respondió");
5440
5441        const data = await response.json();
5442
5443        return data.plainLyrics || data.syncedLyrics || "Letra no disponible";
5444    } catch (error) {
5445        console.error("Error en LRCLIB API:", error);
5446        return "Letra no disponible";
5447    }
5448};
5449
5450
5451
5452    
5453    function d(c) {
5454      const f = document.createElement("div");
5455      return (f.innerHTML = c.trim()), f.firstChild;
5456    }
5457    function p(c) {
5458      return c.replace(/^\d+\.\)\s/, "").replace(/<br>$/, "");
5459    }
5460    function m(c) {
5461      let f,
5462        v,
5463        y = !1,
5464        E = !1,
5465        H = !1,
5466        I = !1;
5467      return (c.song_history || c.history || c.songHistory || []).map(
5468        (L) => (
5469          c.song_history
5470            ? ((f = L.song.artist),
5471              (v = L.song.title),
5472              (y = L.played_at),
5473              (E = L.duration),
5474              (H = L.elapsed),
5475              (I = L.remaining))
5476            : c.history
5477            ? ((f = p(L.split(" - ")[0] || L)), (v = p(L.split(" - ")[1] || L)))
5478            : c.songHistory && ((f = L.artist), (v = L.title || L.song)),
5479          {
5480            artist: f,
5481            title: v,
5482            playedAt: y,
5483            duration: E,
5484            elapsed: H,
5485            remaining: I,
5486          }
5487        )
5488      );
5489    }
5490    function h(c) {
5491      let f,
5492        v,
5493        y = !1,
5494        E = !1,
5495        H = !1,
5496        I = !1;
5497      return (
5498        c.songtitle
5499          ? ((f = c.songtitle.split(" - ")[1]),
5500            (v = c.songtitle.split(" - ")[0]))
5501          : c.now_playing
5502          ? ((f = c.now_playing.song.title),
5503            (v = c.now_playing.song.artist),
5504            (y = c.now_playing.played_at),
5505            (E = c.now_playing.duration),
5506            (H = c.now_playing.elapsed),
5507            (I = c.now_playing.remaining))
5508          : c.artist && c.title
5509          ? ((f = c.title), (v = c.artist))
5510          : c.currenttrack_title
5511          ? ((f = c.currenttrack_title), (v = c.currenttrack_artist))
5512          : c.title && c.djusername
5513          ? ((f = c.title.split(" - ")[1]), (v = c.title.split(" - ")[0]))
5514          : ((f = c.currentSong), (v = c.currentArtist)),
5515        {
5516          title: f,
5517          artist: v,
5518          playedAt: y,
5519          duration: E,
5520          elapsed: H,
5521          remaining: I,
5522        }
5523      );
5524    }
5525    function g(c) {
5526      return new Promise((f, v) => {
5527        const y = new Image();
5528        (y.onload = () => f(y)), (y.onerror = v), (y.src = c);
5529      });
5530    }
5531    function w(c, f) {
5532      const v = document.createElement("img"),
5533        y = c.clientHeight;
5534      (v.src = f), (v.width = y), (v.height = y), c.appendChild(v);
5535      const E = c.querySelector("img:first-child");
5536      (E.style.marginLeft = `-${y}px`),
5537        E.addEventListener(
5538          "transitionend",
5539          () => {
5540            c.querySelectorAll("img:not(:last-child)").forEach((I) =>
5541              I.remove()
5542            );
5543          },
5544          { once: !0 }
5545        );
5546    }
5547    function b(c, f) {
5548      (c.style.opacity = 0),
5549        c.addEventListener("transitionend", () => {
5550          (c.src = f),
5551            (c.style.opacity = 1),
5552            c.addEventListener(
5553              "transitionend",
5554              () => {
5555                c.removeAttribute("style");
5556              },
5557              { once: !0 }
5558            );
5559        });
5560    }
5561    function S() {
5562      if (window.stream_active) return;
5563      (window.stream_active = !0), Ai(s, e);
5564      function c(x, P = null) {
5565        P && (x.src = P),
5566          U || (ki(x, V), (U = !0)),
5567          x.load(),
5568          x.play(),
5569          (te.innerHTML = r.pause),
5570          te.classList.add("is-active");
5571      }
5572      function f(x) {
5573        x.pause(), (te.innerHTML = r.play), te.classList.remove("is-active");
5574      }
5575      const v = document.querySelector(".player-volume"),
5576        y = document.querySelector(".player-range-fill"),
5577        E = document.querySelector(".player-range-wrapper"),
5578        H = document.querySelector(".player-range-thumb");
5579      let I;
5580      try {
5581        I = localStorage.getItem("volume") || 100;
5582      } catch (x) {
5583        (I = 100),
5584          console.log("Error al obtener el volumen del localStorage:", x);
5585      }
5586      let D,
5587        T,
5588        L = {},
5589        k = !1,
5590        C;
5591      function $(x) {
5592        y.style.height = `${x}%`;
5593      }
5594      function B(x) {
5595        const P = E.offsetHeight - H.offsetHeight,
5596          M = (x / 100) * P;
5597        H.style.bottom = `${M}px`;
5598      }
5599      function R(x, P) {
5600        (v.value = P),
5601          $(P),
5602          B(P),
5603          (x.volume = P / 100),
5604          localStorage?.setItem("volume", P);
5605      }
5606      const te = document.querySelector(".player-button-play"),
5607        V = document.querySelector(".visualizer");
5608      let U = !1;
5609      const O = new Audio();
5610      (O.crossOrigin = "anonymous"),
5611        te !== null &&
5612          te.addEventListener("click", async () => {
5613            O.paused ? c(O) : f(O);
5614          }),
5615        v !== null &&
5616          (R(O, I),
5617          v.addEventListener("input", (x) => {
5618            R(O, x.target.value);
5619          }),
5620          H.addEventListener("mousedown", () => {
5621            document.addEventListener("mousemove", se);
5622          }));
5623      function se(x) {
5624        const P = v.getBoundingClientRect();
5625        let A = ((x.clientY - P.top) / v.offsetWidth) * 100;
5626        (A = 100 - A), (A = Math.max(0, Math.min(100, A)));
5627        const q = Math.round((v.max - v.min) * (A / 100)) + parseInt(v.min);
5628        R(O, q);
5629      }
5630      document.addEventListener("mouseup", () => {
5631        document.removeEventListener("mousemove", se);
5632      }),
5633        window.addEventListener("resize", () => {
5634          const x = v.value;
5635          $(x), B(x);
5636        });
5637      const ne = document.getElementById("app-super"),
5638        Re = document.getElementById("super-player"),
5639        Te = document.getElementById("player-expand"),
5640        Pt = document.getElementById("player-down-up"),
5641        ae = document.querySelector(".player-button-tv");
5642      Pt &&
5643        Pt.addEventListener("click", () => {
5644          Re.classList.contains("is-hidden")
5645            ? Re.classList.remove("is-hidden")
5646            : Re.classList.toggle("is-hidden");
5647        }),
5648        Te &&
5649          Te.addEventListener("click", () => {
5650            ne.classList.contains("is-expanded")
5651              ? ((document.body.style.overflow = "auto"),
5652                Te.classList.remove("is-open"),
5653                ne.classList.remove("is-expanded"))
5654              : ((document.body.style.overflow = "hidden"),
5655                Te.classList.add("is-open"),
5656                ne.classList.add("is-expanded"));
5657          });
5658      const Vi = document.querySelector(".song-now"),
5659        je = document.getElementById("lyrics"),
5660        xe = document.getElementById("historyp"),
5661        Mt = `<div class="historyp-item flex items-center g-0.75">
5662  <div class="historyp-image flex-none">
5663    <img src="{{art}}" width="80" height="80">
5664  </div>
5665  <div class="historyp-body truncate-line">
5666    <span class="historyp-name color-title fw-500">{{song}}</span>
5667    <span class="historyp-time color-text" data-time-ago="{{timeAgo}}">{{artist}}</span>
5668  </div>
5669</div>`;
5670      let he,
5671        We = "",
5672        Ee;
5673      const Ni = window?.streams?.timeRefresh || 1e4;
5674      function At(x, P) {
5675        const M = zi(P, x);
5676        ne.style.setProperty("--song-progress", `${2 + M}%`);
5677        const A = document.querySelector(".song-elapsed"),
5678          q = document.querySelector(".song-duration");
5679        A && (A.textContent = Ct(P)), q && (q.textContent = Ct(x));
5680      }
5681      function Ue(x) {
5682        const {
5683          title: P,
5684          artist: M,
5685          album: A,
5686          artworkUrl100: q,
5687          artworkUrl500: _,
5688        } = x;
5689        "mediaSession" in navigator &&
5690          ((navigator.mediaSession.metadata = new MediaMetadata({
5691            title: P,
5692            artist: M,
5693            album: A,
5694            artwork: [
5695              { src: q, sizes: "128x128", type: "image/png" },
5696              { src: _, sizes: "256x256", type: "image/png" },
5697              { src: _, sizes: "512x512", type: "image/png" },
5698            ],
5699          })),
5700          navigator.mediaSession.setActionHandler("play", () => {
5701            c(O);
5702          }),
5703          navigator.mediaSession.setActionHandler("pause", () => {
5704            f(O);
5705          }));
5706      }
5707      const It = document.getElementById("modal-body-video");
5708      function Gi(x) {
5709        const P = document.createElement("video");
5710        (P.id = "player"),
5711          P.classList.add("video-js", "video-js-stream"),
5712          (It.innerHTML = ""),
5713          It.appendChild(P),
5714          (he = videojs(P, {
5715            sources: [{ src: x.tv_url, type: "application/x-mpegURL" }],
5716            controls: !0,
5717            autoplay: !0,
5718          }));
5719      }
5720      function Ye(x, P) {
5721        const M = document.getElementById("modal-tv"),
5722          A = M.querySelector("[data-close]");
5723        x &&
5724          (x.onclick = () => {
5725            if (x.classList.contains("is-active")) {
5726              c(O),
5727                M.classList.remove("is-active"),
5728                x.classList.remove("is-active"),
5729                he && he.dispose();
5730              return;
5731            }
5732            f(O),
5733              M.classList.add("is-active"),
5734              x.classList.add("is-active"),
5735              Gi(P);
5736          }),
5737          A &&
5738            (A.onclick = () => {
5739              he && (he.dispose(), c(O)),
5740                M.classList.remove("is-active"),
5741                x.classList.remove("is-active");
5742            });
5743      }
5744      function Fi() {
5745        const x = document.querySelector(".player-custom-play");
5746        x &&
5747          x.addEventListener("click", (P) => {
5748            P.preventDefault(), O.paused && c(O);
5749          });
5750      }
5751      function kt(x) {
5752        const P = x.querySelector(".song-title");
5753        if (P.scrollWidth > x.offsetWidth) {
5754          P.classList.add("is-scrolling");
5755          const M = P.scrollWidth - x.offsetWidth,
5756            A = 5e3 + M * 100;
5757          P.setAttribute(
5758            "style",
5759            `--text-scroll-duration: ${A}ms; --text-scroll: -${M}px`
5760          );
5761          return;
5762        }
5763        P.classList.remove("is-scrolling"), P.removeAttribute("style");
5764      }
5765      function Ri(x, P) {
5766        const { pod_titulo: M, pod_desc: A, pod_url: q, pod_imagen: _ } = x;
5767        return {
5768          mp3: q,
5769          title: M,
5770          artist: A,
5771          artworkUrl100: `${P}${_}`,
5772          artworkUrl500: `${P}${_}`,
5773          artworkUrl1000: `${P}${_}`,
5774        };
5775      }
5776      function Ot() {
5777        At(O.duration, O.currentTime);
5778      }
5779      function ji(x, P) {
5780        if (k && C === x) {
5781          (x.innerHTML = r.play),
5782            (O.src = D.stream_url),
5783            Xe(L),
5784            Ue(L),
5785            c(O),
5786            (k = !1),
5787            O.removeEventListener("timeupdate", Ot),
5788            x.parentNode.classList.remove("is-playing");
5789          return;
5790        }
5791        document.querySelectorAll(".nexo-tops-button").forEach((A) => {
5792          (A.innerHTML = r.play), C?.parentNode.classList.remove("is-playing");
5793        }),
5794          (x.innerHTML = r.stop),
5795          (C = x),
5796          x.parentNode.classList.add("is-playing"),
5797          Xe(P),
5798          Ue(P),
5799          (O.src = P.mp3),
5800          O.addEventListener("timeupdate", Ot),
5801          c(O),
5802          (k = !0);
5803      }
5804      function Xe(x) {
5805        const {
5806            title: P,
5807            artist: M,
5808            artworkUrl100: A,
5809            artworkUrl500: q,
5810            artworkUrl1000: _,
5811          } = x,
5812          z = Vi,
5813          N = document.querySelectorAll(".song-name"),
5814          F = document.querySelectorAll(".song-artist"),
5815          W = document.querySelector(".social-facebook"),
5816          J = document.querySelector(".social-twitter"),
5817          G = document.querySelector(".social-whatsapp"),
5818          Z = window.location.origin;
5819        (W.href = `https://www.facebook.com/sharer/sharer.php?u=${Z}`),
5820          (J.href = `https://twitter.com/intent/tweet?text=${We}`),
5821          (G.href = `https://api.whatsapp.com/send?text=${We}`),
5822          N.forEach((ce) => {
5823            ce.textContent = P;
5824          }),
5825          F.forEach((ce) => {
5826            ce.textContent = M;
5827          });
5828        const ie = z.querySelector(".player-title-fix");
5829        kt(ie),
5830          Ee && Ee.disconnect(),
5831          (Ee = new ResizeObserver(() => {
5832            kt(ie);
5833          })),
5834          Ee.observe(ie);
5835        const ue = z.querySelector(".player-artwork"),
5836          fe = _ || q || A,
5837          Pe = document.querySelector(".player-modal-image"),
5838          Gt = document.querySelector(".player-left");
5839        Gt.style.removeProperty("--artwork"),
5840          Gt.style.setProperty("--artwork", `url(${fe})`),
5841          Pe && (Pe.src = fe),
5842          ue &&
5843            g(fe)
5844              .then(() => w(ue, fe))
5845              .catch(() => {
5846                console.error("Error al cargar arte de la canci\xF3n");
5847              });
5848        const Ft = document.querySelector(".player-bg");
5849        if (Ft) {
5850          const ce = _ || q || A,
5851            Rt = document.createElement("img");
5852          Rt.src = ce;
5853          const dn = new ColorThief();
5854          Et(Rt.src).then((cn) => {
5855            xt(cn, dn);
5856          }),
5857            g(ce)
5858              .then(() => b(Ft, ce))
5859              .catch(() => {
5860                console.error("Error al cargar la portada de la canci\xF3n");
5861              });
5862        }
5863      }
5864      function Wi(x) {
5865        x.paused && c(x);
5866      }
5867      function Ui(x, P) {
5868        if (
5869          !xe ||
5870          ((xe.innerHTML = Mt.replace("{{art}}", n)
5871            .replace("{{song}}", "Cargando historial...")
5872            .replace("{{artist}}", "Artista")
5873            .replace("{{timeAgo}}", "time-none")),
5874          !x)
5875        )
5876          return;
5877        const M = x.map(async (A) => {
5878          const { artist: q, title: _, playedAt: z, elapsed: N } = A,
5879            F = await a({ title: _, artist: q }),
5880            W = Mt.replace("{{art}}", F.artworkUrl100 ?? (P.artwork || n))
5881              .replace("{{song}}", F.title)
5882              .replace("{{artist}}", F.artist)
5883              .replace("{{timeAgo}}", "time-none");
5884          return N
5885            ? W.replace("time-none", "Ahora")
5886            : z
5887            ? W.replace("time-none", $i(Oi(z)))
5888            : W;
5889        });
5890        Promise.all(M)
5891          .then((A) => {
5892            const q = document.createDocumentFragment();
5893            A.forEach((_) => {
5894              q.appendChild(d(_));
5895            }),
5896              (xe.innerHTML = ""),
5897              xe.appendChild(q);
5898          })
5899          .catch((A) => {
5900            console.error("Error:", A);
5901          });
5902      }
5903      function Yi(x, P) {
5904        je &&
5905          u(x, P)
5906            .then((M) => {
5907              const A = document.createElement("p");
5908              (A.innerHTML = M.replace(/\n/g, "<br>")),
5909                (je.innerHTML = ""),
5910                je.appendChild(A);
5911            })
5912            .catch((M) => {
5913              console.error("Error:", M);
5914            });
5915      }
5916      function Xi(x, P = !1) {
5917        const M = x,
5918          A = { attributes: !1, childList: !0, subtree: !1 },
5919          q = (z) => {
5920            for (const N of z)
5921              if (P && typeof P == "function") {
5922                P(N);
5923                break;
5924              }
5925          };
5926        new MutationObserver(q).observe(M, A);
5927      }
5928      function Ke(x) {
5929        window.mixxFunctions.dataTops = x;
5930        const P = document.getElementById("player-tops");
5931        P &&
5932          P.addEventListener("click", function (M) {
5933            const A = M.target,
5934              q = A.closest(".nexo-tops-item"),
5935              _ = A.closest(".nexo-tops-head"),
5936              z = A.closest(".nexo-tops-button");
5937            if ((_ && _.classList.toggle("is-active"), z)) {
5938              const N = Ri(JSON.parse(q.getAttribute("data-item")), le);
5939              ji(z, N);
5940            }
5941          });
5942      }
5943
5944        const P2 = document.getElementById("player-podcast");
5945        if (P2) {
5946            P2.addEventListener("click", function (M) {
5947                const A = M.target,
5948                    q = A.closest(".nexo-tops-item2"),
5949                    _ = A.closest(".nexo-tops-head"),
5950                    z = A.closest(".nexo-tops-button2");
5951                if (_ && _.classList.toggle("is-active"), z) {
5952                    const N = Ri(JSON.parse(q.getAttribute("data-item")), le);
5953                    ji(z, N);
5954                }
5955            });
5956        }
5957
5958
5959        const PL = document.getElementById("player-playlist");
5960        if (PL) {
5961            PL.addEventListener("click", function (M) {
5962                const A = M.target,
5963                    q = A.closest(".nexo-tops-item3"),
5964                    _ = A.closest(".nexo-tops-head"),
5965                    z = A.closest(".nexo-tops-button3");
5966
5967                if (_ && _.classList.toggle("is-active"), z) {
5968                    const N = Ri(JSON.parse(q.getAttribute("data-item")), le);
5969                    ji(z, N);
5970                }
5971            });
5972        }
5973
5974
5975
5976
5977
5978      function Qe(x) {
5979        window.mixxFunctions.dataTops = x;
5980        const P = document.getElementById("player-video-tops");
5981        if (!P) return;
5982        const M = P.querySelector(".nexo-vid-tops-list"),
5983          A = P.querySelector(".nexo-vid-tops-video");
5984        if (!P) return;
5985        let q, _;
5986        function z(N, F, W = !1) {
5987          const J = document.createElement("video");
5988          _ && W && (_.pause(), _.dispose()),
5989            (J.id = "player"),
5990            (J.poster = F),
5991            J.classList.add("video-js", "video-js-stream"),
5992            (A.innerHTML = ""),
5993            A.appendChild(J);
5994          const G = videojs(J, { sources: [{ src: N }], controls: !0 });
5995          (_ = G),
5996            G.ready(() => {
5997              W &&
5998                setTimeout(() => {
5999                  G.play()
6000                    ?.then(() => {
6001                      console.log("Reproduciendo video"), de && f(O);
6002                    })
6003                    .catch(() => {
6004                      console.error("Error al reproducir video");
6005                    });
6006                }, 500),
6007                G.on("play", () => {
6008                  de && f(O);
6009                }),
6010                G.on("pause", () => {
6011                  de && Wi(O);
6012                });
6013            });
6014        }
6015        fetch(x)
6016          .then((N) => N.json())
6017          .then((N) => {
6018            const F = `<div class="nexo-vid-tops-item">
6019          <button class="nexo-vid-tops">
6020            <div class="nexo-vid-tops-image-container">
6021              <span>{{number}}</span>
6022              <img src="{{img}}" alt="imagen" class="nexo-vid-tops-image" width="140">
6023            </div>
6024            <div class="nexo-vid-tops-data">
6025              <div class="nexo-vid-tops-title">{{title}}</div>
6026              <span class="nexo-vid-tops-artist">{{description}}</span>
6027            </div>
6028          </button>
6029        </div>`,
6030              W = document.createDocumentFragment();
6031            N.forEach((G, Z) => {
6032              const ie = `${le}${G.photo}`,
6033                ue = `${le}${G.video}`;
6034              Z === 0 && z(ue, ie);
6035              const fe = F.replace("{{number}}", Z + 1)
6036                  .replace("{{img}}", ie)
6037                  .replace(/{{title}}/g, G.nombre)
6038                  .replace(/{{description}}/g, G.descripcion),
6039                Pe = d(fe);
6040              W.appendChild(Pe);
6041            }),
6042              (M.innerHTML = ""),
6043              M.appendChild(W),
6044              document.querySelectorAll(".nexo-vid-tops").forEach((G, Z) => {
6045                Z === 0 && (G.classList.add("is-active"), (q = G)),
6046                  G.addEventListener("click", () => {
6047                    if (q === G) return;
6048                    q && q.classList.remove("is-active"),
6049                      G.classList.add("is-active"),
6050                      (q = G);
6051                    const ie = `${le}${N[Z].video}`,
6052                      ue = `${le}${N[Z].photo}`;
6053                    z(ie, ue, !0);
6054                  });
6055              });
6056          })
6057          .catch((N) => {
6058            console.error("Error:", N);
6059          });
6060      }
6061      window.mixxFunctions = { loadTops: Ke, loadVideoTops: Qe };
6062      let $t,
6063        Je,
6064        Le = [];
6065      const oe = window.streams || {},
6066        de = document.getElementById("app-player"),
6067        Ki = document.querySelector(".player-wrapper"),
6068        zt = oe.lyrics || !1,
6069        Qi = oe.program || !1,
6070        Ji = oe.expand || !1,
6071        Zi = oe.share_buttons || !1,
6072        le = oe.base_url || "",
6073        Dt = oe.url_server || "api/",
6074        qt = oe.id_user || "",
6075        Ce = oe.isMultiradio || !1,
6076        en = "nexoradio",
6077        tn = Ce ? "multiradio" : "radio",
6078        sn = `${nxradioApiSettings.root}${en}/${tn}`,
6079        Ht = `${le}${Dt}podcast-app/${qt}`,
6080        Bt = `${le}${Dt}top-app/videos/${qt}`,
6081        nn = document.querySelector(".player-button-lyrics"),
6082        rn = document.querySelector(".player-button-program"),
6083        an = document.querySelector(".player-button-expand"),
6084        _t = document.querySelector(".player-button-prev"),
6085        Vt = document.querySelector(".player-button-next"),
6086        on = document.querySelector(".player-button-share");
6087      function ln() {
6088        zt && nn.classList.add("is-loaded"),
6089          Qi && rn.classList.add("is-loaded"),
6090          Ji && an.classList.add("is-loaded"),
6091          Ce && (_t.classList.add("is-loaded"), Vt.classList.add("is-loaded")),
6092          Zi && on.classList.add("is-loaded"),
6093          Ki.addEventListener(
6094            "touchmove",
6095            function (x) {
6096              x.preventDefault();
6097            },
6098            { passive: !1 }
6099          );
6100      }
6101      if (
6102        (window.addEventListener("DOMContentLoaded", () => {
6103          Qe(Bt);
6104        }),
6105        !de)
6106      )
6107        return;
6108      ln(),
6109        fetch(sn)
6110          .then((x) => x.json())
6111          .then((x) => {
6112            if (Ce) {
6113              const M = x.map((A) => ({
6114                name: A.multiradio_nombre,
6115                description: A.multiradio_descripcion,
6116                stream_url: A.multiradio_url,
6117                api: A.multiradio_api,
6118                picture: `${le}${A.multiradio_imagen}`,
6119                background: n,
6120                tv_url: A.multiradio_tvstream,
6121                id: A.id,
6122              }));
6123              (Le = M),
6124                _e(de, M[0]),
6125                (O.src = M[0].stream_url),
6126                M[0].tv_url && M[0].tv_url.includes("m3u8")
6127                  ? Ye(ae, M[0])
6128                  : ae.classList.remove("is-loaded");
6129            } else {
6130              const M = {
6131                name: x.radio_nombre,
6132                stream_url: x.radio_url,
6133                tv_url: x.radio_video,
6134                picture: `${x.radio_fondo}`,
6135                background: `${x.radio_splash}`,
6136                api: x.radio_menu_nicio,
6137              };
6138              (D = M),
6139                _e(de, M),
6140                (O.src = M.stream_url),
6141                M.tv_url && M.tv_url.includes("m3u8")
6142                  ? (ae.classList.add("is-loaded"), Ye(ae, M))
6143                  : ae.classList.remove("is-loaded");
6144            }
6145            function P(M, A = !1) {
6146              (D = M),
6147                Je && clearTimeout(Je),
6148                M.api != "null" &&
6149                  fetch(M.api)
6150                    .then((q) => q.json())
6151                    .then(async (q) => {
6152                      if (k) return;
6153                      q.now_playing &&
6154                        !k &&
6155                        At(q.now_playing.duration, q.now_playing.elapsed);
6156                      const _ = h(q);
6157                      if ($t !== _.title) {
6158                        $t = _.title;
6159                        const z = l(_, M),
6160                          N = m(q),
6161                          F = await a(z);
6162                        L = F;
6163                        const W = [{ ...F }, ...N];
6164                        (We = `Estoy escuchando ${F.title} de ${F.artist} en ${window.location.origin}`),
6165                          Xe(F),
6166                          Ue(F),
6167                          Ui(q.now_playing ? W : N, z),
6168                          zt && Yi(F.artist, F.title);
6169                      }
6170                    })
6171                    .catch((q) => console.log(q)),
6172                (Je = setTimeout(() => {
6173                  P(M);
6174                }, Ni));
6175            }
6176            if ((Ce ? P(Le[0], !0) : P(D), Le.length > 1)) {
6177              document
6178                .querySelector(".player-stations")
6179                .classList.add("is-loaded");
6180              const A = document.getElementById("stations");
6181              if (!A) return;
6182              A.classList.add("is-visible"),
6183                Le.forEach((z, N) => {
6184                  const F = document.createElement("button");
6185                  F.dataset.id = z.id;
6186                  const W = document.createElement("img"),
6187                    J = document.createElement("span");
6188                  (W.src = z.picture),
6189                    (W.alt = z.name),
6190                    W.classList.add("station-image", "flex-none"),
6191                    (J.textContent = z.name),
6192                    F.classList.add(
6193                      "station-button",
6194                      "flex",
6195                      "items-center",
6196                      "g-0.5"
6197                    ),
6198                    F.appendChild(W),
6199                    F.appendChild(J),
6200                    N === 0 && (F.classList.add("is-current"), (T = F)),
6201                    F.addEventListener("click", () => {
6202                      D !== z &&
6203                        (T &&
6204                          (T.classList.remove("is-current"),
6205                          [
6206                            ...document.querySelectorAll(".mtradio-item"),
6207                          ].forEach((G) => {
6208                            G.classList.remove("is-playing");
6209                          }),
6210                          [
6211                            ...document.querySelectorAll(".mtradio-item"),
6212                          ].forEach((G) => {
6213                            z.id == G.getAttribute("data-id") &&
6214                              G.classList.add("is-playing");
6215                          }),
6216                          fetch(
6217                            `${nxradioApiSettings.root}nexoradio/v1/count_click/${z.id}`
6218                          )
6219                            .then((G) => G.json())
6220                            .then((G) => {
6221                              const Z = document.querySelectorAll(
6222                                '.played span[data-id="' + z.id + '"]'
6223                              );
6224                              Z.length > 0 &&
6225                                G.status &&
6226                                [...Z].forEach((ie) => {
6227                                  ie.innerHTML = G.total_played;
6228                                });
6229                            })),
6230                        (T = F),
6231                        T.classList.add("is-current"),
6232                        P(z, !0),
6233                        _e(de, z),
6234                        (D = z),
6235                        z.tv_url && z.tv_url.includes("m3u8")
6236                          ? (ae.classList.add("is-loaded"), Ye(ae, z))
6237                          : ae.classList.remove("is-loaded"),
6238                        (O.src = z.stream_url),
6239                        c(O));
6240                    }),
6241                    A.appendChild(F);
6242                });
6243              const q = Vt,
6244                _ = _t;
6245              q.addEventListener("click", () => {
6246                const z = T.nextElementSibling;
6247                if ((z && z.click(), !z && T)) {
6248                  const N = document.querySelector(".station-button");
6249                  N && N.click();
6250                }
6251              }),
6252                _.addEventListener("click", () => {
6253                  const z = T.previousElementSibling;
6254                  if ((z && z.click(), !z && T)) {
6255                    const N = document.querySelector(
6256                      ".station-button:last-child"
6257                    );
6258                    N && N.click();
6259                  }
6260                });
6261            }
6262          })
6263          .catch((x) => {
6264            console.error("Error:", x);
6265          });
6266      function Nt(x, P, M) {
6267        const A = document.querySelectorAll(".mtradio-item"),
6268          q = document.querySelector("#stations");
6269        A.length != 0 &&
6270          [...A].forEach((_) => {
6271            _.addEventListener("click", function () {
6272              _.classList.contains("is-playing")
6273                ? (M(x), _.classList.remove("is-playing"))
6274                : (_.classList.add("is-playing"), P(x)),
6275                [...q.children].forEach((z) => {
6276                  const N = _.dataset;
6277                  z.dataset.id == N.id && z.click();
6278                });
6279            });
6280          });
6281      }
6282      window.addEventListener("DOMContentLoaded", () => {
6283        Fi(),
6284          Ke(Ht),
6285          Nt(O, c, f),
6286          Xi(document.querySelector("#ajaxify"), function (x) {
6287            Ke(Ht), Qe(Bt), Nt(O, c, f);
6288          });
6289      });
6290    }
6291    S(),
6292      typeof jQuery < "u" &&
6293        jQuery(document).on("ajaxComplete", function () {
6294          window.mixxFunctions.loadTops(window.mixxFunctions.dataTops),
6295            window.mixxFunctions.loadVideoTops(
6296              window.mixxFunctions.dataTopsVid
6297            );
6298        });
6299  }
6300  function Ve() {
6301    let s;
6302    const e = nxradioApiSettings;
6303    if (e.server_time) s = new Date(e.server_time.replace(" ", "T"));
6304    else if (e.timezone.startsWith("UTC")) {
6305      const r = new Date(e.utc_time.replace(" ", "T") + "Z"),
6306        n = parseFloat(e.timezone_offset);
6307      s = new Date(r.getTime() + n * 60 * 60 * 1e3);
6308    } else
6309      s = new Date(
6310        new Date().toLocaleString(e.locale, { timeZone: e.timezone })
6311      );
6312    const t = s.getHours().toString().padStart(2, "0"),
6313      i = s.getMinutes().toString().padStart(2, "0");
6314    return `${t}:${i}`;
6315  }
6316  function Ne() {
6317    const s = [
6318        "sunday",
6319        "monday",
6320        "tuesday",
6321        "wednesday",
6322        "thursday",
6323        "friday",
6324        "saturday",
6325      ],
6326      e = new Date().getDay();
6327    return s[e];
6328  }
6329  function Ge(s, e) {
6330    return parseInt(s) * 3600 + parseInt(e) * 60;
6331  }
6332  function Fe(s, e) {
6333    const [t, i] = e.split(":").map(Number),
6334      r = Ge(t, i),
6335      n = s.find((o) => {
6336        const [a, l] = o.inicio.split(":").map(Number),
6337          [u, d] = o.final.split(":").map(Number),
6338          p = Ge(a, l),
6339          m = Ge(u, d);
6340        return p <= m ? r >= p && r <= m : r >= p || r <= m;
6341      });
6342    return typeof n > "u" ? !1 : n;
6343  }
6344  async function qi() {
6345    const s = document.querySelector("#show-banner");
6346    if (!s) return;
6347    const e = s.querySelector(".show-title");
6348    e.innerHTML;
6349    const t = s.querySelector(".profile-pic"),
6350      i = s.querySelector(".show-description"),
6351      r = s.querySelector(".show-time"),
6352      n = s.getAttribute("data-namespace"),
6353      o = `${nxradioApiSettings.root}${n}/schedule/${Ne()}`;
6354    let a = await fetch(o);
6355    a = await a.json();
6356    let l = "",
6357      u = Ne();
6358    if (a.items.length == 0) return;
6359    let d = Fe(a.items, Ve());
6360    d &&
6361      ((l = d.title),
6362      (t.innerHTML = `<img src="${d.image}" alt="Host">`),
6363      (e.innerHTML = d.title),
6364      i && (i.innerHTML = d.description),
6365      (r.innerHTML = "HORA: " + d.inicio)),
6366      setInterval(async function () {
6367        const p = Ne();
6368        if (p !== u) {
6369          u = p;
6370          let m = await fetch(`${nxradioApiSettings.root}${n}/schedule/${u}`);
6371          if (((m = await m.json()), m.items.length == 0)) return;
6372          (d = Fe(m.items, Ve())),
6373            d
6374              ? ((l = d.title),
6375                (t.innerHTML = `<img src="${d.image}" alt="Host">`),
6376                (e.innerHTML = d.title),
6377                i && (i.innerHTML = d.description),
6378                (r.innerHTML = "HORA: " + d.inicio))
6379              : ((t.innerHTML = `<img src="${t.getAttribute(
6380                  "data-src"
6381                )}" alt="Host">`),
6382                i && (i.innerHTML = "PROGRAMA NO DISPONIBLE"),
6383                (r.innerHTML = "HORA: 00:00"));
6384        } else (d = Fe(a.items, Ve())), d == !1 ? ((l = ""), (t.innerHTML = `<img src="${t.getAttribute("data-src")}" alt="Host">`), i && (i.innerHTML = "PROGRAMA NO DISPONIBLE"), (r.innerHTML = "HORA: 00:00")) : d.title != l && ((l = d.title ?? ""), (t.innerHTML = `<img src="${d.image}" alt="Host">`), (e.innerHTML = d.title), i && (i.innerHTML = d.description), (r.innerHTML = "HORA: " + d.inicio));
6385      }, 1e3);
6386  }
6387  function Hi() {
6388    document.body.classList.contains("elementor-editor-active");
6389  }
6390  function Bi() {
6391    const s = document.querySelector(".hder-type2");
6392    if (!s) return;
6393    const e = s.querySelector(".hder"),
6394      t = s.querySelector(".hder-top"),
6395      i = s.querySelector(".hder-shadow");
6396    function r() {
6397      const n = window.scrollY,
6398        o = e.getBoundingClientRect(),
6399        a = t.getBoundingClientRect(),
6400        l = o.height,
6401        u = a.bottom;
6402      n > u + 0
6403        ? (s.classList.add("on-sticky"),
6404          e.classList.add("is-sticky"),
6405          (i.style.height = l + "px"))
6406        : (s.classList.remove("on-sticky"),
6407          e.classList.remove("is-sticky"),
6408          (i.style.height = null));
6409    }
6410    window.addEventListener("scroll", r), r();
6411  }
6412  var _i = (() => {
6413    document.addEventListener("DOMContentLoaded", function () {
6414      bi(),
6415        Si(),
6416        gt(),
6417        xi(),
6418        Ei(),
6419        Li(),
6420        Pi(),
6421        ht(),
6422        vt(),
6423        wt(),
6424        St(),
6425        bt(),
6426        Di(),
6427        qi(),
6428        Tt(),
6429        Hi(),
6430        Bi();
6431    });
6432  })();
6433  return _i;
6434})();
6435
6436var nxExtends = (function () {
6437    function setFakeEqualizer() {
6438        const equalizer = document.getElementById("nexo-equalizer")
6439        const barsCount = 50
6440
6441        if (!equalizer) return
6442
6443        for (let i = 0; i < barsCount; i++) {
6444            const bar = document.createElement("div")
6445            bar.classList.add("equalizer-bar")
6446            equalizer.appendChild(bar)
6447
6448            const animationDuration = Math.floor(Math.random() * 1000) + 800
6449            const animationDelay = Math.floor(Math.random() * 500) + 100
6450            const animationName = `equalizer${Math.floor(Math.random() * 3) + 1}`
6451
6452            bar.style.setProperty("--pqa", animationName)
6453            bar.style.setProperty("--pqd", `${animationDuration}ms`)
6454            bar.style.setProperty("--pql", `${animationDelay}ms`)
6455        }
6456    }
6457    setFakeEqualizer();
6458})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.