PageSourceSearch

https://www.strath.ac.uk/media/1newwebsite/webteam/javascript/boot…ap.bundle.min.js.pagespeed.ce.lo9xG5y_49.js

js strath.ac.uk collected 2026-09-24 08:34:47 UTC 129,775 bytes, 4,219 lines download raw bytes

1/*!
2 * Bootstrap v5.3.2 (https://getbootstrap.com/)
3 * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5 */
6!(function (t, e) {
7  "object" == typeof exports && "undefined" != typeof module
8    ? (module.exports = e())
9    : "function" == typeof define && define.amd
10    ? define(e)
11    : ((t =
12        "undefined" != typeof globalThis ? globalThis : t || self).bootstrap =
13        e());
14})(this, function () {
15  "use strict";
16  const t = new Map(),
17    e = {
18      set(e, i, n) {
19        t.has(e) || t.set(e, new Map());
20        const s = t.get(e);
21        s.has(i) || 0 === s.size
22          ? s.set(i, n)
23          : console.error(
24              `Bootstrap doesn't allow more than one instance per element. Bound instance: ${
25                Array.from(s.keys())[0]
26              }.`
27            );
28      },
29      get: (e, i) => (t.has(e) && t.get(e).get(i)) || null,
30      remove(e, i) {
31        if (!t.has(e)) return;
32        const n = t.get(e);
33        n.delete(i), 0 === n.size && t.delete(e);
34      },
35    },
36    i = "transitionend",
37    n = (t) => (
38      t &&
39        window.CSS &&
40        window.CSS.escape &&
41        (t = t.replace(/#([^\s"#']+)/g, (t, e) => `#${CSS.escape(e)}`)),
42      t
43    ),
44    s = (t) => {
45      t.dispatchEvent(new Event(i));
46    },
47    o = (t) =>
48      !(!t || "object" != typeof t) &&
49      (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType),
50    r = (t) =>
51      o(t)
52        ? t.jquery
53          ? t[0]
54          : t
55        : "string" == typeof t && t.length > 0
56        ? document.querySelector(n(t))
57        : null,
58    a = (t) => {
59      if (!o(t) || 0 === t.getClientRects().length) return !1;
60      const e =
61          "visible" === getComputedStyle(t).getPropertyValue("visibility"),
62        i = t.closest("details:not([open])");
63      if (!i) return e;
64      if (i !== t) {
65        const e = t.closest("summary");
66        if (e && e.parentNode !== i) return !1;
67        if (null === e) return !1;
68      }
69      return e;
70    },
71    l = (t) =>
72      !t ||
73      t.nodeType !== Node.ELEMENT_NODE ||
74      !!t.classList.contains("disabled") ||
75      (void 0 !== t.disabled
76        ? t.disabled
77        : t.hasAttribute("disabled") && "false" !== t.getAttribute("disabled")),
78    c = (t) => {
79      if (!document.documentElement.attachShadow) return null;
80      if ("function" == typeof t.getRootNode) {
81        const e = t.getRootNode();
82        return e instanceof ShadowRoot ? e : null;
83      }
84      return t instanceof ShadowRoot
85        ? t
86        : t.parentNode
87        ? c(t.parentNode)
88        : null;
89    },
90    h = () => {},
91    d = (t) => {
92      t.offsetHeight;
93    },
94    u = () =>
95      window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")
96        ? window.jQuery
97        : null,
98    f = [],
99    p = () => "rtl" === document.documentElement.dir,
100    m = (t) => {
101      var e;
102      (e = () => {
103        const e = u();
104        if (e) {
105          const i = t.NAME,
106            n = e.fn[i];
107          (e.fn[i] = t.jQueryInterface),
108            (e.fn[i].Constructor = t),
109            (e.fn[i].noConflict = () => ((e.fn[i] = n), t.jQueryInterface));
110        }
111      }),
112        "loading" === document.readyState
113          ? (f.length ||
114              document.addEventListener("DOMContentLoaded", () => {
115                for (const t of f) t();
116              }),
117            f.push(e))
118          : e();
119    },
120    g = (t, e = [], i = t) => ("function" == typeof t ? t(...e) : i),
121    _ = (t, e, n = !0) => {
122      if (!n) return void g(t);
123      const o =
124        ((t) => {
125          if (!t) return 0;
126          let { transitionDuration: e, transitionDelay: i } =
127            window.getComputedStyle(t);
128          const n = Number.parseFloat(e),
129            s = Number.parseFloat(i);
130          return n || s
131            ? ((e = e.split(",")[0]),
132              (i = i.split(",")[0]),
133              1e3 * (Number.parseFloat(e) + Number.parseFloat(i)))
134            : 0;
135        })(e) + 5;
136      let r = !1;
137      const a = ({ target: n }) => {
138        n === e && ((r = !0), e.removeEventListener(i, a), g(t));
139      };
140      e.addEventListener(i, a),
141        setTimeout(() => {
142          r || s(e);
143        }, o);
144    },
145    b = (t, e, i, n) => {
146      const s = t.length;
147      let o = t.indexOf(e);
148      return -1 === o
149        ? !i && n
150          ? t[s - 1]
151          : t[0]
152        : ((o += i ? 1 : -1),
153          n && (o = (o + s) % s),
154          t[Math.max(0, Math.min(o, s - 1))]);
155    },
156    v = /[^.]*(?=\..*)\.|.*/,
157    y = /\..*/,
158    w = /::\d+$/,
159    A = {};
160  let E = 1;
161  const T = { mouseenter: "mouseover", mouseleave: "mouseout" },
162    C = new Set([
163      "click",
164      "dblclick",
165      "mouseup",
166      "mousedown",
167      "contextmenu",
168      "mousewheel",
169      "DOMMouseScroll",
170      "mouseover",
171      "mouseout",
172      "mousemove",
173      "selectstart",
174      "selectend",
175      "keydown",
176      "keypress",
177      "keyup",
178      "orientationchange",
179      "touchstart",
180      "touchmove",
181      "touchend",
182      "touchcancel",
183      "pointerdown",
184      "pointermove",
185      "pointerup",
186      "pointerleave",
187      "pointercancel",
188      "gesturestart",
189      "gesturechange",
190      "gestureend",
191      "focus",
192      "blur",
193      "change",
194      "reset",
195      "select",
196      "submit",
197      "focusin",
198      "focusout",
199      "load",
200      "unload",
201      "beforeunload",
202      "resize",
203      "move",
204      "DOMContentLoaded",
205      "readystatechange",
206      "error",
207      "abort",
208      "scroll",
209    ]);
210  function O(t, e) {
211    return (e && `${e}::${E++}`) || t.uidEvent || E++;
212  }
213  function x(t) {
214    const e = O(t);
215    return (t.uidEvent = e), (A[e] = A[e] || {}), A[e];
216  }
217  function k(t, e, i = null) {
218    return Object.values(t).find(
219      (t) => t.callable === e && t.delegationSelector === i
220    );
221  }
222  function L(t, e, i) {
223    const n = "string" == typeof e,
224      s = n ? i : e || i;
225    let o = I(t);
226    return C.has(o) || (o = t), [n, s, o];
227  }
228  function S(t, e, i, n, s) {
229    if ("string" != typeof e || !t) return;
230    let [o, r, a] = L(e, i, n);
231    if (e in T) {
232      const t = (t) =>
233        function (e) {
234          if (
235            !e.relatedTarget ||
236            (e.relatedTarget !== e.delegateTarget &&
237              !e.delegateTarget.contains(e.relatedTarget))
238          )
239            return t.call(this, e);
240        };
241      r = t(r);
242    }
243    const l = x(t),
244      c = l[a] || (l[a] = {}),
245      h = k(c, r, o ? i : null);
246    if (h) return void (h.oneOff = h.oneOff && s);
247    const d = O(r, e.replace(v, "")),
248      u = o
249        ? (function (t, e, i) {
250            return function n(s) {
251              const o = t.querySelectorAll(e);
252              for (let { target: r } = s; r && r !== this; r = r.parentNode)
253                for (const a of o)
254                  if (a === r)
255                    return (
256                      P(s, { delegateTarget: r }),
257                      n.oneOff && N.off(t, s.type, e, i),
258                      i.apply(r, [s])
259                    );
260            };
261          })(t, i, r)
262        : (function (t, e) {
263            return function i(n) {
264              return (
265                P(n, { delegateTarget: t }),
266                i.oneOff && N.off(t, n.type, e),
267                e.apply(t, [n])
268              );
269            };
270          })(t, r);
271    (u.delegationSelector = o ? i : null),
272      (u.callable = r),
273      (u.oneOff = s),
274      (u.uidEvent = d),
275      (c[d] = u),
276      t.addEventListener(a, u, o);
277  }
278  function D(t, e, i, n, s) {
279    const o = k(e[i], n, s);
280    o && (t.removeEventListener(i, o, Boolean(s)), delete e[i][o.uidEvent]);
281  }
282  function $(t, e, i, n) {
283    const s = e[i] || {};
284    for (const [o, r] of Object.entries(s))
285      o.includes(n) && D(t, e, i, r.callable, r.delegationSelector);
286  }
287  function I(t) {
288    return (t = t.replace(y, "")), T[t] || t;
289  }
290  const N = {
291    on(t, e, i, n) {
292      S(t, e, i, n, !1);
293    },
294    one(t, e, i, n) {
295      S(t, e, i, n, !0);
296    },
297    off(t, e, i, n) {
298      if ("string" != typeof e || !t) return;
299      const [s, o, r] = L(e, i, n),
300        a = r !== e,
301        l = x(t),
302        c = l[r] || {},
303        h = e.startsWith(".");
304      if (void 0 === o) {
305        if (h) for (const i of Object.keys(l)) $(t, l, i, e.slice(1));
306        for (const [i, n] of Object.entries(c)) {
307          const s = i.replace(w, "");
308          (a && !e.includes(s)) || D(t, l, r, n.callable, n.delegationSelector);
309        }
310      } else {
311        if (!Object.keys(c).length) return;
312        D(t, l, r, o, s ? i : null);
313      }
314    },
315    trigger(t, e, i) {
316      if ("string" != typeof e || !t) return null;
317      const n = u();
318      let s = null,
319        o = !0,
320        r = !0,
321        a = !1;
322      e !== I(e) &&
323        n &&
324        ((s = n.Event(e, i)),
325        n(t).trigger(s),
326        (o = !s.isPropagationStopped()),
327        (r = !s.isImmediatePropagationStopped()),
328        (a = s.isDefaultPrevented()));
329      const l = P(new Event(e, { bubbles: o, cancelable: !0 }), i);
330      return (
331        a && l.preventDefault(),
332        r && t.dispatchEvent(l),
333        l.defaultPrevented && s && s.preventDefault(),
334        l
335      );
336    },
337  };
338  function P(t, e = {}) {
339    for (const [i, n] of Object.entries(e))
340      try {
341        t[i] = n;
342      } catch (e) {
343        Object.defineProperty(t, i, { configurable: !0, get: () => n });
344      }
345    return t;
346  }
347  function M(t) {
348    if ("true" === t) return !0;
349    if ("false" === t) return !1;
350    if (t === Number(t).toString()) return Number(t);
351    if ("" === t || "null" === t) return null;
352    if ("string" != typeof t) return t;
353    try {
354      return JSON.parse(decodeURIComponent(t));
355    } catch (e) {
356      return t;
357    }
358  }
359  function j(t) {
360    return t.replace(/[A-Z]/g, (t) => `-${t.toLowerCase()}`);
361  }
362  const F = {
363    setDataAttribute(t, e, i) {
364      t.setAttribute(`data-bs-${j(e)}`, i);
365    },
366    removeDataAttribute(t, e) {
367      t.removeAttribute(`data-bs-${j(e)}`);
368    },
369    getDataAttributes(t) {
370      if (!t) return {};
371      const e = {},
372        i = Object.keys(t.dataset).filter(
373          (t) => t.startsWith("bs") && !t.startsWith("bsConfig")
374        );
375      for (const n of i) {
376        let i = n.replace(/^bs/, "");
377        (i = i.charAt(0).toLowerCase() + i.slice(1, i.length)),
378          (e[i] = M(t.dataset[n]));
379      }
380      return e;
381    },
382    getDataAttribute: (t, e) => M(t.getAttribute(`data-bs-${j(e)}`)),
383  };
384  class H {
385    static get Default() {
386      return {};
387    }
388    static get DefaultType() {
389      return {};
390    }
391    static get NAME() {
392      throw new Error(
393        'You have to implement the static method "NAME", for each component!'
394      );
395    }
396    _getConfig(t) {
397      return (
398        (t = this._mergeConfigObj(t)),
399        (t = this._configAfterMerge(t)),
400        this._typeCheckConfig(t),
401        t
402      );
403    }
404    _configAfterMerge(t) {
405      return t;
406    }
407    _mergeConfigObj(t, e) {
408      const i = o(e) ? F.getDataAttribute(e, "config") : {};
409      return {
410        ...this.constructor.Default,
411        ...("object" == typeof i ? i : {}),
412        ...(o(e) ? F.getDataAttributes(e) : {}),
413        ...("object" == typeof t ? t : {}),
414      };
415    }
416    _typeCheckConfig(t, e = this.constructor.DefaultType) {
417      for (const [n, s] of Object.entries(e)) {
418        const e = t[n],
419          r = o(e)
420            ? "element"
421            : null == (i = e)
422            ? `${i}`
423            : Object.prototype.toString
424                .call(i)
425                .match(/\s([a-z]+)/i)[1]
426                .toLowerCase();
427        if (!new RegExp(s).test(r))
428          throw new TypeError(
429            `${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`
430          );
431      }
432      var i;
433    }
434  }
435  class W extends H {
436    constructor(t, i) {
437      super(),
438        (t = r(t)) &&
439          ((this._element = t),
440          (this._config = this._getConfig(i)),
441          e.set(this._element, this.constructor.DATA_KEY, this));
442    }
443    dispose() {
444      e.remove(this._element, this.constructor.DATA_KEY),
445        N.off(this._element, this.constructor.EVENT_KEY);
446      for (const t of Object.getOwnPropertyNames(this)) this[t] = null;
447    }
448    _queueCallback(t, e, i = !0) {
449      _(t, e, i);
450    }
451    _getConfig(t) {
452      return (
453        (t = this._mergeConfigObj(t, this._element)),
454        (t = this._configAfterMerge(t)),
455        this._typeCheckConfig(t),
456        t
457      );
458    }
459    static getInstance(t) {
460      return e.get(r(t), this.DATA_KEY);
461    }
462    static getOrCreateInstance(t, e = {}) {
463      return (
464        this.getInstance(t) || new this(t, "object" == typeof e ? e : null)
465      );
466    }
467    static get VERSION() {
468      return "5.3.2";
469    }
470    static get DATA_KEY() {
471      return `bs.${this.NAME}`;
472    }
473    static get EVENT_KEY() {
474      return `.${this.DATA_KEY}`;
475    }
476    static eventName(t) {
477      return `${t}${this.EVENT_KEY}`;
478    }
479  }
480  const B = (t) => {
481      let e = t.getAttribute("data-bs-target");
482      if (!e || "#" === e) {
483        let i = t.getAttribute("href");
484        if (!i || (!i.includes("#") && !i.startsWith("."))) return null;
485        i.includes("#") && !i.startsWith("#") && (i = `#${i.split("#")[1]}`),
486          (e = i && "#" !== i ? n(i.trim()) : null);
487      }
488      return e;
489    },
490    z = {
491      find: (t, e = document.documentElement) =>
492        [].concat(...Element.prototype.querySelectorAll.call(e, t)),
493      findOne: (t, e = document.documentElement) =>
494        Element.prototype.querySelector.call(e, t),
495      children: (t, e) => [].concat(...t.children).filter((t) => t.matches(e)),
496      parents(t, e) {
497        const i = [];
498        let n = t.parentNode.closest(e);
499        for (; n; ) i.push(n), (n = n.parentNode.closest(e));
500        return i;
501      },
502      prev(t, e) {
503        let i = t.previousElementSibling;
504        for (; i; ) {
505          if (i.matches(e)) return [i];
506          i = i.previousElementSibling;
507        }
508        return [];
509      },
510      next(t, e) {
511        let i = t.nextElementSibling;
512        for (; i; ) {
513          if (i.matches(e)) return [i];
514          i = i.nextElementSibling;
515        }
516        return [];
517      },
518      focusableChildren(t) {
519        const e = [
520          "a",
521          "button",
522          "input",
523          "textarea",
524          "select",
525          "details",
526          "[tabindex]",
527          '[contenteditable="true"]',
528        ]
529          .map((t) => `${t}:not([tabindex^="-"])`)
530          .join(",");
531        return this.find(e, t).filter((t) => !l(t) && a(t));
532      },
533      getSelectorFromElement(t) {
534        const e = B(t);
535        return e && z.findOne(e) ? e : null;
536      },
537      getElementFromSelector(t) {
538        const e = B(t);
539        return e ? z.findOne(e) : null;
540      },
541      getMultipleElementsFromSelector(t) {
542        const e = B(t);
543        return e ? z.find(e) : [];
544      },
545    },
546    R = (t, e = "hide") => {
547      const i = `click.dismiss${t.EVENT_KEY}`,
548        n = t.NAME;
549      N.on(document, i, `[data-bs-dismiss="${n}"]`, function (i) {
550        if (
551          (["A", "AREA"].includes(this.tagName) && i.preventDefault(), l(this))
552        )
553          return;
554        const s = z.getElementFromSelector(this) || this.closest(`.${n}`);
555        t.getOrCreateInstance(s)[e]();
556      });
557    },
558    q = ".bs.alert",
559    V = `close${q}`,
560    K = `closed${q}`;
561  class Q extends W {
562    static get NAME() {
563      return "alert";
564    }
565    close() {
566      if (N.trigger(this._element, V).defaultPrevented) return;
567      this._element.classList.remove("show");
568      const t = this._element.classList.contains("fade");
569      this._queueCallback(() => this._destroyElement(), this._element, t);
570    }
571    _destroyElement() {
572      this._element.remove(), N.trigger(this._element, K), this.dispose();
573    }
574    static jQueryInterface(t) {
575      return this.each(function () {
576        const e = Q.getOrCreateInstance(this);
577        if ("string" == typeof t) {
578          if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
579            throw new TypeError(`No method named "${t}"`);
580          e[t](this);
581        }
582      });
583    }
584  }
585  R(Q, "close"), m(Q);
586  const X = '[data-bs-toggle="button"]';
587  class Y extends W {
588    static get NAME() {
589      return "button";
590    }
591    toggle() {
592      this._element.setAttribute(
593        "aria-pressed",
594        this._element.classList.toggle("active")
595      );
596    }
597    static jQueryInterface(t) {
598      return this.each(function () {
599        const e = Y.getOrCreateInstance(this);
600        "toggle" === t && e[t]();
601      });
602    }
603  }
604  N.on(document, "click.bs.button.data-api", X, (t) => {
605    t.preventDefault();
606    const e = t.target.closest(X);
607    Y.getOrCreateInstance(e).toggle();
608  }),
609    m(Y);
610  const U = ".bs.swipe",
611    G = `touchstart${U}`,
612    J = `touchmove${U}`,
613    Z = `touchend${U}`,
614    tt = `pointerdown${U}`,
615    et = `pointerup${U}`,
616    it = { endCallback: null, leftCallback: null, rightCallback: null },
617    nt = {
618      endCallback: "(function|null)",
619      leftCallback: "(function|null)",
620      rightCallback: "(function|null)",
621    };
622  class st extends H {
623    constructor(t, e) {
624      super(),
625        (this._element = t),
626        t &&
627          st.isSupported() &&
628          ((this._config = this._getConfig(e)),
629          (this._deltaX = 0),
630          (this._supportPointerEvents = Boolean(window.PointerEvent)),
631          this._initEvents());
632    }
633    static get Default() {
634      return it;
635    }
636    static get DefaultType() {
637      return nt;
638    }
639    static get NAME() {
640      return "swipe";
641    }
642    dispose() {
643      N.off(this._element, U);
644    }
645    _start(t) {
646      this._supportPointerEvents
647        ? this._eventIsPointerPenTouch(t) && (this._deltaX = t.clientX)
648        : (this._deltaX = t.touches[0].clientX);
649    }
650    _end(t) {
651      this._eventIsPointerPenTouch(t) &&
652        (this._deltaX = t.clientX - this._deltaX),
653        this._handleSwipe(),
654        g(this._config.endCallback);
655    }
656    _move(t) {
657      this._deltaX =
658        t.touches && t.touches.length > 1
659          ? 0
660          : t.touches[0].clientX - this._deltaX;
661    }
662    _handleSwipe() {
663      const t = Math.abs(this._deltaX);
664      if (t <= 40) return;
665      const e = t / this._deltaX;
666      (this._deltaX = 0),
667        e && g(e > 0 ? this._config.rightCallback : this._config.leftCallback);
668    }
669    _initEvents() {
670      this._supportPointerEvents
671        ? (N.on(this._element, tt, (t) => this._start(t)),
672          N.on(this._element, et, (t) => this._end(t)),
673          this._element.classList.add("pointer-event"))
674        : (N.on(this._element, G, (t) => this._start(t)),
675          N.on(this._element, J, (t) => this._move(t)),
676          N.on(this._element, Z, (t) => this._end(t)));
677    }
678    _eventIsPointerPenTouch(t) {
679      return (
680        this._supportPointerEvents &&
681        ("pen" === t.pointerType || "touch" === t.pointerType)
682      );
683    }
684    static isSupported() {
685      return (
686        "ontouchstart" in document.documentElement ||
687        navigator.maxTouchPoints > 0
688      );
689    }
690  }
691  const ot = ".bs.carousel",
692    rt = ".data-api",
693    at = "next",
694    lt = "prev",
695    ct = "left",
696    ht = "right",
697    dt = `slide${ot}`,
698    ut = `slid${ot}`,
699    ft = `keydown${ot}`,
700    pt = `mouseenter${ot}`,
701    mt = `mouseleave${ot}`,
702    gt = `dragstart${ot}`,
703    _t = `load${ot}${rt}`,
704    bt = `click${ot}${rt}`,
705    vt = "carousel",
706    yt = "active",
707    wt = ".active",
708    At = ".carousel-item",
709    Et = wt + At,
710    Tt = { ArrowLeft: ht, ArrowRight: ct },
711    Ct = {
712      interval: 5e3,
713      keyboard: !0,
714      pause: "hover",
715      ride: !1,
716      touch: !0,
717      wrap: !0,
718    },
719    Ot = {
720      interval: "(number|boolean)",
721      keyboard: "boolean",
722      pause: "(string|boolean)",
723      ride: "(boolean|string)",
724      touch: "boolean",
725      wrap: "boolean",
726    };
727  class xt extends W {
728    constructor(t, e) {
729      super(t, e),
730        (this._interval = null),
731        (this._activeElement = null),
732        (this._isSliding = !1),
733        (this.touchTimeout = null),
734        (this._swipeHelper = null),
735        (this._indicatorsElement = z.findOne(
736          ".carousel-indicators",
737          this._element
738        )),
739        this._addEventListeners(),
740        this._config.ride === vt && this.cycle();
741    }
742    static get Default() {
743      return Ct;
744    }
745    static get DefaultType() {
746      return Ot;
747    }
748    static get NAME() {
749      return "carousel";
750    }
751    next() {
752      this._slide(at);
753    }
754    nextWhenVisible() {
755      !document.hidden && a(this._element) && this.next();
756    }
757    prev() {
758      this._slide(lt);
759    }
760    pause() {
761      this._isSliding && s(this._element), this._clearInterval();
762    }
763    cycle() {
764      this._clearInterval(),
765        this._updateInterval(),
766        (this._interval = setInterval(
767          () => this.nextWhenVisible(),
768          this._config.interval
769        ));
770    }
771    _maybeEnableCycle() {
772      this._config.ride &&
773        (this._isSliding
774          ? N.one(this._element, ut, () => this.cycle())
775          : this.cycle());
776    }
777    to(t) {
778      const e = this._getItems();
779      if (t > e.length - 1 || t < 0) return;
780      if (this._isSliding)
781        return void N.one(this._element, ut, () => this.to(t));
782      const i = this._getItemIndex(this._getActive());
783      if (i === t) return;
784      const n = t > i ? at : lt;
785      this._slide(n, e[t]);
786    }
787    dispose() {
788      this._swipeHelper && this._swipeHelper.dispose(), super.dispose();
789    }
790    _configAfterMerge(t) {
791      return (t.defaultInterval = t.interval), t;
792    }
793    _addEventListeners() {
794      this._config.keyboard && N.on(this._element, ft, (t) => this._keydown(t)),
795        "hover" === this._config.pause &&
796          (N.on(this._element, pt, () => this.pause()),
797          N.on(this._element, mt, () => this._maybeEnableCycle())),
798        this._config.touch &&
799          st.isSupported() &&
800          this._addTouchEventListeners();
801    }
802    _addTouchEventListeners() {
803      for (const t of z.find(".carousel-item img", this._element))
804        N.on(t, gt, (t) => t.preventDefault());
805      const t = {
806        leftCallback: () => this._slide(this._directionToOrder(ct)),
807        rightCallback: () => this._slide(this._directionToOrder(ht)),
808        endCallback: () => {
809          "hover" === this._config.pause &&
810            (this.pause(),
811            this.touchTimeout && clearTimeout(this.touchTimeout),
812            (this.touchTimeout = setTimeout(
813              () => this._maybeEnableCycle(),
814              500 + this._config.interval
815            )));
816        },
817      };
818      this._swipeHelper = new st(this._element, t);
819    }
820    _keydown(t) {
821      if (/input|textarea/i.test(t.target.tagName)) return;
822      const e = Tt[t.key];
823      e && (t.preventDefault(), this._slide(this._directionToOrder(e)));
824    }
825    _getItemIndex(t) {
826      return this._getItems().indexOf(t);
827    }
828    _setActiveIndicatorElement(t) {
829      if (!this._indicatorsElement) return;
830      const e = z.findOne(wt, this._indicatorsElement);
831      e.classList.remove(yt), e.removeAttribute("aria-current");
832      const i = z.findOne(`[data-bs-slide-to="${t}"]`, this._indicatorsElement);
833      i && (i.classList.add(yt), i.setAttribute("aria-current", "true"));
834    }
835    _updateInterval() {
836      const t = this._activeElement || this._getActive();
837      if (!t) return;
838      const e = Number.parseInt(t.getAttribute("data-bs-interval"), 10);
839      this._config.interval = e || this._config.defaultInterval;
840    }
841    _slide(t, e = null) {
842      if (this._isSliding) return;
843      const i = this._getActive(),
844        n = t === at,
845        s = e || b(this._getItems(), i, n, this._config.wrap);
846      if (s === i) return;
847      const o = this._getItemIndex(s),
848        r = (e) =>
849          N.trigger(this._element, e, {
850            relatedTarget: s,
851            direction: this._orderToDirection(t),
852            from: this._getItemIndex(i),
853            to: o,
854          });
855      if (r(dt).defaultPrevented) return;
856      if (!i || !s) return;
857      const a = Boolean(this._interval);
858      this.pause(),
859        (this._isSliding = !0),
860        this._setActiveIndicatorElement(o),
861        (this._activeElement = s);
862      const l = n ? "carousel-item-start" : "carousel-item-end",
863        c = n ? "carousel-item-next" : "carousel-item-prev";
864      s.classList.add(c),
865        d(s),
866        i.classList.add(l),
867        s.classList.add(l),
868        this._queueCallback(
869          () => {
870            s.classList.remove(l, c),
871              s.classList.add(yt),
872              i.classList.remove(yt, c, l),
873              (this._isSliding = !1),
874              r(ut);
875          },
876          i,
877          this._isAnimated()
878        ),
879        a && this.cycle();
880    }
881    _isAnimated() {
882      return this._element.classList.contains("slide");
883    }
884    _getActive() {
885      return z.findOne(Et, this._element);
886    }
887    _getItems() {
888      return z.find(At, this._element);
889    }
890    _clearInterval() {
891      this._interval &&
892        (clearInterval(this._interval), (this._interval = null));
893    }
894    _directionToOrder(t) {
895      return p() ? (t === ct ? lt : at) : t === ct ? at : lt;
896    }
897    _orderToDirection(t) {
898      return p() ? (t === lt ? ct : ht) : t === lt ? ht : ct;
899    }
900    static jQueryInterface(t) {
901      return this.each(function () {
902        const e = xt.getOrCreateInstance(this, t);
903        if ("number" != typeof t) {
904          if ("string" == typeof t) {
905            if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
906              throw new TypeError(`No method named "${t}"`);
907            e[t]();
908          }
909        } else e.to(t);
910      });
911    }
912  }
913  N.on(document, bt, "[data-bs-slide], [data-bs-slide-to]", function (t) {
914    const e = z.getElementFromSelector(this);
915    if (!e || !e.classList.contains(vt)) return;
916    t.preventDefault();
917    const i = xt.getOrCreateInstance(e),
918      n = this.getAttribute("data-bs-slide-to");
919    return n
920      ? (i.to(n), void i._maybeEnableCycle())
921      : "next" === F.getDataAttribute(this, "slide")
922      ? (i.next(), void i._maybeEnableCycle())
923      : (i.prev(), void i._maybeEnableCycle());
924  }),
925    N.on(window, _t, () => {
926      const t = z.find('[data-bs-ride="carousel"]');
927      for (const e of t) xt.getOrCreateInstance(e);
928    }),
929    m(xt);
930  const kt = ".bs.collapse",
931    Lt = `show${kt}`,
932    St = `shown${kt}`,
933    Dt = `hide${kt}`,
934    $t = `hidden${kt}`,
935    It = `click${kt}.data-api`,
936    Nt = "show",
937    Pt = "collapse",
938    Mt = "collapsing",
939    jt = `:scope .${Pt} .${Pt}`,
940    Ft = '[data-bs-toggle="collapse"]',
941    Ht = { parent: null, toggle: !0 },
942    Wt = { parent: "(null|element)", toggle: "boolean" };
943  class Bt extends W {
944    constructor(t, e) {
945      super(t, e), (this._isTransitioning = !1), (this._triggerArray = []);
946      const i = z.find(Ft);
947      for (const t of i) {
948        const e = z.getSelectorFromElement(t),
949          i = z.find(e).filter((t) => t === this._element);
950        null !== e && i.length && this._triggerArray.push(t);
951      }
952      this._initializeChildren(),
953        this._config.parent ||
954          this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()),
955        this._config.toggle && this.toggle();
956    }
957    static get Default() {
958      return Ht;
959    }
960    static get DefaultType() {
961      return Wt;
962    }
963    static get NAME() {
964      return "collapse";
965    }
966    toggle() {
967      this._isShown() ? this.hide() : this.show();
968    }
969    show() {
970      if (this._isTransitioning || this._isShown()) return;
971      let t = [];
972      if (
973        (this._config.parent &&
974          (t = this._getFirstLevelChildren(
975            ".collapse.show, .collapse.collapsing"
976          )
977            .filter((t) => t !== this._element)
978            .map((t) => Bt.getOrCreateInstance(t, { toggle: !1 }))),
979        t.length && t[0]._isTransitioning)
980      )
981        return;
982      if (N.trigger(this._element, Lt).defaultPrevented) return;
983      for (const e of t) e.hide();
984      const e = this._getDimension();
985      this._element.classList.remove(Pt),
986        this._element.classList.add(Mt),
987        (this._element.style[e] = 0),
988        this._addAriaAndCollapsedClass(this._triggerArray, !0),
989        (this._isTransitioning = !0);
990      const i = `scroll${e[0].toUpperCase() + e.slice(1)}`;
991      this._queueCallback(
992        () => {
993          (this._isTransitioning = !1),
994            this._element.classList.remove(Mt),
995            this._element.classList.add(Pt, Nt),
996            (this._element.style[e] = ""),
997            N.trigger(this._element, St);
998        },
999        this._element,
1000        !0
1001      ),
1002        (this._element.style[e] = `${this._element[i]}px`);
1003    }
1004    hide() {
1005      if (this._isTransitioning || !this._isShown()) return;
1006      if (N.trigger(this._element, Dt).defaultPrevented) return;
1007      const t = this._getDimension();
1008      (this._element.style[t] = `${
1009        this._element.getBoundingClientRect()[t]
1010      }px`),
1011        d(this._element),
1012        this._element.classList.add(Mt),
1013        this._element.classList.remove(Pt, Nt);
1014      for (const t of this._triggerArray) {
1015        const e = z.getElementFromSelector(t);
1016        e && !this._isShown(e) && this._addAriaAndCollapsedClass([t], !1);
1017      }
1018      (this._isTransitioning = !0),
1019        (this._element.style[t] = ""),
1020        this._queueCallback(
1021          () => {
1022            (this._isTransitioning = !1),
1023              this._element.classList.remove(Mt),
1024              this._element.classList.add(Pt),
1025              N.trigger(this._element, $t);
1026          },
1027          this._element,
1028          !0
1029        );
1030    }
1031    _isShown(t = this._element) {
1032      return t.classList.contains(Nt);
1033    }
1034    _configAfterMerge(t) {
1035      return (t.toggle = Boolean(t.toggle)), (t.parent = r(t.parent)), t;
1036    }
1037    _getDimension() {
1038      return this._element.classList.contains("collapse-horizontal")
1039        ? "width"
1040        : "height";
1041    }
1042    _initializeChildren() {
1043      if (!this._config.parent) return;
1044      const t = this._getFirstLevelChildren(Ft);
1045      for (const e of t) {
1046        const t = z.getElementFromSelector(e);
1047        t && this._addAriaAndCollapsedClass([e], this._isShown(t));
1048      }
1049    }
1050    _getFirstLevelChildren(t) {
1051      const e = z.find(jt, this._config.parent);
1052      return z.find(t, this._config.parent).filter((t) => !e.includes(t));
1053    }
1054    _addAriaAndCollapsedClass(t, e) {
1055      if (t.length)
1056        for (const i of t)
1057          i.classList.toggle("collapsed", !e),
1058            i.setAttribute("aria-expanded", e);
1059    }
1060    static jQueryInterface(t) {
1061      const e = {};
1062      return (
1063        "string" == typeof t && /show|hide/.test(t) && (e.toggle = !1),
1064        this.each(function () {
1065          const i = Bt.getOrCreateInstance(this, e);
1066          if ("string" == typeof t) {
1067            if (void 0 === i[t]) throw new TypeError(`No method n
1067amed "${t}"`);
1068            i[t]();
1069          }
1070        })
1071      );
1072    }
1073  }
1074  N.on(document, It, Ft, function (t) {
1075    ("A" === t.target.tagName ||
1076      (t.delegateTarget && "A" === t.delegateTarget.tagName)) &&
1077      t.preventDefault();
1078    for (const t of z.getMultipleElementsFromSelector(this))
1079      Bt.getOrCreateInstance(t, { toggle: !1 }).toggle();
1080  }),
1081    m(Bt);
1082  var zt = "top",
1083    Rt = "bottom",
1084    qt = "right",
1085    Vt = "left",
1086    Kt = "auto",
1087    Qt = [zt, Rt, qt, Vt],
1088    Xt = "start",
1089    Yt = "end",
1090    Ut = "clippingParents",
1091    Gt = "viewport",
1092    Jt = "popper",
1093    Zt = "reference",
1094    te = Qt.reduce(function (t, e) {
1095      return t.concat([e + "-" + Xt, e + "-" + Yt]);
1096    }, []),
1097    ee = [].concat(Qt, [Kt]).reduce(function (t, e) {
1098      return t.concat([e, e + "-" + Xt, e + "-" + Yt]);
1099    }, []),
1100    ie = "beforeRead",
1101    ne = "read",
1102    se = "afterRead",
1103    oe = "beforeMain",
1104    re = "main",
1105    ae = "afterMain",
1106    le = "beforeWrite",
1107    ce = "write",
1108    he = "afterWrite",
1109    de = [ie, ne, se, oe, re, ae, le, ce, he];
1110  function ue(t) {
1111    return t ? (t.nodeName || "").toLowerCase() : null;
1112  }
1113  function fe(t) {
1114    if (null == t) return window;
1115    if ("[object Window]" !== t.toString()) {
1116      var e = t.ownerDocument;
1117      return (e && e.defaultView) || window;
1118    }
1119    return t;
1120  }
1121  function pe(t) {
1122    return t instanceof fe(t).Element || t instanceof Element;
1123  }
1124  function me(t) {
1125    return t instanceof fe(t).HTMLElement || t instanceof HTMLElement;
1126  }
1127  function ge(t) {
1128    return (
1129      "undefined" != typeof ShadowRoot &&
1130      (t instanceof fe(t).ShadowRoot || t instanceof ShadowRoot)
1131    );
1132  }
1133  const _e = {
1134    name: "applyStyles",
1135    enabled: !0,
1136    phase: "write",
1137    fn: function (t) {
1138      var e = t.state;
1139      Object.keys(e.elements).forEach(function (t) {
1140        var i = e.styles[t] || {},
1141          n = e.attributes[t] || {},
1142          s = e.elements[t];
1143        me(s) &&
1144          ue(s) &&
1145          (Object.assign(s.style, i),
1146          Object.keys(n).forEach(function (t) {
1147            var e = n[t];
1148            !1 === e
1149              ? s.removeAttribute(t)
1150              : s.setAttribute(t, !0 === e ? "" : e);
1151          }));
1152      });
1153    },
1154    effect: function (t) {
1155      var e = t.state,
1156        i = {
1157          popper: {
1158            position: e.options.strategy,
1159            left: "0",
1160            top: "0",
1161            margin: "0",
1162          },
1163          arrow: { position: "absolute" },
1164          reference: {},
1165        };
1166      return (
1167        Object.assign(e.elements.popper.style, i.popper),
1168        (e.styles = i),
1169        e.elements.arrow && Object.assign(e.elements.arrow.style, i.arrow),
1170        function () {
1171          Object.keys(e.elements).forEach(function (t) {
1172            var n = e.elements[t],
1173              s = e.attributes[t] || {},
1174              o = Object.keys(
1175                e.styles.hasOwnProperty(t) ? e.styles[t] : i[t]
1176              ).reduce(function (t, e) {
1177                return (t[e] = ""), t;
1178              }, {});
1179            me(n) &&
1180              ue(n) &&
1181              (Object.assign(n.style, o),
1182              Object.keys(s).forEach(function (t) {
1183                n.removeAttribute(t);
1184              }));
1185          });
1186        }
1187      );
1188    },
1189    requires: ["computeStyles"],
1190  };
1191  function be(t) {
1192    return t.split("-")[0];
1193  }
1194  var ve = Math.max,
1195    ye = Math.min,
1196    we = Math.round;
1197  function Ae() {
1198    var t = navigator.userAgentData;
1199    return null != t && t.brands && Array.isArray(t.brands)
1200      ? t.brands
1201          .map(function (t) {
1202            return t.brand + "/" + t.version;
1203          })
1204          .join(" ")
1205      : navigator.userAgent;
1206  }
1207  function Ee() {
1208    return !/^((?!chrome|android).)*safari/i.test(Ae());
1209  }
1210  function Te(t, e, i) {
1211    void 0 === e && (e = !1), void 0 === i && (i = !1);
1212    var n = t.getBoundingClientRect(),
1213      s = 1,
1214      o = 1;
1215    e &&
1216      me(t) &&
1217      ((s = (t.offsetWidth > 0 && we(n.width) / t.offsetWidth) || 1),
1218      (o = (t.offsetHeight > 0 && we(n.height) / t.offsetHeight) || 1));
1219    var r = (pe(t) ? fe(t) : window).visualViewport,
1220      a = !Ee() && i,
1221      l = (n.left + (a && r ? r.offsetLeft : 0)) / s,
1222      c = (n.top + (a && r ? r.offsetTop : 0)) / o,
1223      h = n.width / s,
1224      d = n.height / o;
1225    return {
1226      width: h,
1227      height: d,
1228      top: c,
1229      right: l + h,
1230      bottom: c + d,
1231      left: l,
1232      x: l,
1233      y: c,
1234    };
1235  }
1236  function Ce(t) {
1237    var e = Te(t),
1238      i = t.offsetWidth,
1239      n = t.offsetHeight;
1240    return (
1241      Math.abs(e.width - i) <= 1 && (i = e.width),
1242      Math.abs(e.height - n) <= 1 && (n = e.height),
1243      { x: t.offsetLeft, y: t.offsetTop, width: i, height: n }
1244    );
1245  }
1246  function Oe(t, e) {
1247    var i = e.getRootNode && e.getRootNode();
1248    if (t.contains(e)) return !0;
1249    if (i && ge(i)) {
1250      var n = e;
1251      do {
1252        if (n && t.isSameNode(n)) return !0;
1253        n = n.parentNode || n.host;
1254      } while (n);
1255    }
1256    return !1;
1257  }
1258  function xe(t) {
1259    return fe(t).getComputedStyle(t);
1260  }
1261  function ke(t) {
1262    return ["table", "td", "th"].indexOf(ue(t)) >= 0;
1263  }
1264  function Le(t) {
1265    return (
1266      (pe(t) ? t.ownerDocument : t.document) || window.document
1267    ).documentElement;
1268  }
1269  function Se(t) {
1270    return "html" === ue(t)
1271      ? t
1272      : t.assignedSlot || t.parentNode || (ge(t) ? t.host : null) || Le(t);
1273  }
1274  function De(t) {
1275    return me(t) && "fixed" !== xe(t).position ? t.offsetParent : null;
1276  }
1277  function $e(t) {
1278    for (var e = fe(t), i = De(t); i && ke(i) && "static" === xe(i).position; )
1279      i = De(i);
1280    return i &&
1281      ("html" === ue(i) || ("body" === ue(i) && "static" === xe(i).position))
1282      ? e
1283      : i ||
1284          (function (t) {
1285            var e = /firefox/i.test(Ae());
1286            if (/Trident/i.test(Ae()) && me(t) && "fixed" === xe(t).position)
1287              return null;
1288            var i = Se(t);
1289            for (
1290              ge(i) && (i = i.host);
1291              me(i) && ["html", "body"].indexOf(ue(i)) < 0;
1292
1293            ) {
1294              var n = xe(i);
1295              if (
1296                "none" !== n.transform ||
1297                "none" !== n.perspective ||
1298                "paint" === n.contain ||
1299                -1 !== ["transform", "perspective"].indexOf(n.willChange) ||
1300                (e && "filter" === n.willChange) ||
1301                (e && n.filter && "none" !== n.filter)
1302              )
1303                return i;
1304              i = i.parentNode;
1305            }
1306            return null;
1307          })(t) ||
1308          e;
1309  }
1310  function Ie(t) {
1311    return ["top", "bottom"].indexOf(t) >= 0 ? "x" : "y";
1312  }
1313  function Ne(t, e, i) {
1314    return ve(t, ye(e, i));
1315  }
1316  function Pe(t) {
1317    return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, t);
1318  }
1319  function Me(t, e) {
1320    return e.reduce(function (e, i) {
1321      return (e[i] = t), e;
1322    }, {});
1323  }
1324  const je = {
1325    name: "arrow",
1326    enabled: !0,
1327    phase: "main",
1328    fn: function (t) {
1329      var e,
1330        i = t.state,
1331        n = t.name,
1332        s = t.options,
1333        o = i.elements.arrow,
1334        r = i.modifiersData.popperOffsets,
1335        a = be(i.placement),
1336        l = Ie(a),
1337        c = [Vt, qt].indexOf(a) >= 0 ? "height" : "width";
1338      if (o && r) {
1339        var h = (function (t, e) {
1340            return Pe(
1341              "number" !=
1342                typeof (t =
1343                  "function" == typeof t
1344                    ? t(Object.assign({}, e.rects, { placement: e.placement }))
1345                    : t)
1346                ? t
1347                : Me(t, Qt)
1348            );
1349          })(s.padding, i),
1350          d = Ce(o),
1351          u = "y" === l ? zt : Vt,
1352          f = "y" === l ? Rt : qt,
1353          p =
1354            i.rects.reference[c] +
1355            i.rects.reference[l] -
1356            r[l] -
1357            i.rects.popper[c],
1358          m = r[l] - i.rects.reference[l],
1359          g = $e(o),
1360          _ = g ? ("y" === l ? g.clientHeight || 0 : g.clientWidth || 0) : 0,
1361          b = p / 2 - m / 2,
1362          v = h[u],
1363          y = _ - d[c] - h[f],
1364          w = _ / 2 - d[c] / 2 + b,
1365          A = Ne(v, w, y),
1366          E = l;
1367        i.modifiersData[n] = (((e = {})[E] = A), (e.centerOffset = A - w), e);
1368      }
1369    },
1370    effect: function (t) {
1371      var e = t.state,
1372        i = t.options.element,
1373        n = void 0 === i ? "[data-popper-arrow]" : i;
1374      null != n &&
1375        ("string" != typeof n || (n = e.elements.popper.querySelector(n))) &&
1376        Oe(e.elements.popper, n) &&
1377        (e.elements.arrow = n);
1378    },
1379    requires: ["popperOffsets"],
1380    requiresIfExists: ["preventOverflow"],
1381  };
1382  function Fe(t) {
1383    return t.split("-")[1];
1384  }
1385  var He = { top: "auto", right: "auto", bottom: "auto", left: "auto" };
1386  function We(t) {
1387    var e,
1388      i = t.popper,
1389      n = t.popperRect,
1390      s = t.placement,
1391      o = t.variation,
1392      r = t.offsets,
1393      a = t.position,
1394      l = t.gpuAcceleration,
1395      c = t.adaptive,
1396      h = t.roundOffsets,
1397      d = t.isFixed,
1398      u = r.x,
1399      f = void 0 === u ? 0 : u,
1400      p = r.y,
1401      m = void 0 === p ? 0 : p,
1402      g = "function" == typeof h ? h({ x: f, y: m }) : { x: f, y: m };
1403    (f = g.x), (m = g.y);
1404    var _ = r.hasOwnProperty("x"),
1405      b = r.hasOwnProperty("y"),
1406      v = Vt,
1407      y = zt,
1408      w = window;
1409    if (c) {
1410      var A = $e(i),
1411        E = "clientHeight",
1412        T = "clientWidth";
1413      A === fe(i) &&
1414        "static" !== xe((A = Le(i))).position &&
1415        "absolute" === a &&
1416        ((E = "scrollHeight"), (T = "scrollWidth")),
1417        (s === zt || ((s === Vt || s === qt) && o === Yt)) &&
1418          ((y = Rt),
1419          (m -=
1420            (d && A === w && w.visualViewport
1421              ? w.visualViewport.height
1422              : A[E]) - n.height),
1423          (m *= l ? 1 : -1)),
1424        (s !== Vt && ((s !== zt && s !== Rt) || o !== Yt)) ||
1425          ((v = qt),
1426          (f -=
1427            (d && A === w && w.visualViewport ? w.visualViewport.width : A[T]) -
1428            n.width),
1429          (f *= l ? 1 : -1));
1430    }
1431    var C,
1432      O = Object.assign({ position: a }, c && He),
1433      x =
1434        !0 === h
1435          ? (function (t, e) {
1436              var i = t.x,
1437                n = t.y,
1438                s = e.devicePixelRatio || 1;
1439              return { x: we(i * s) / s || 0, y: we(n * s) / s || 0 };
1440            })({ x: f, y: m }, fe(i))
1441          : { x: f, y: m };
1442    return (
1443      (f = x.x),
1444      (m = x.y),
1445      l
1446        ? Object.assign(
1447            {},
1448            O,
1449            (((C = {})[y] = b ? "0" : ""),
1450            (C[v] = _ ? "0" : ""),
1451            (C.transform =
1452              (w.devicePixelRatio || 1) <= 1
1453                ? "translate(" + f + "px, " + m + "px)"
1454                : "translate3d(" + f + "px, " + m + "px, 0)"),
1455            C)
1456          )
1457        : Object.assign(
1458            {},
1459            O,
1460            (((e = {})[y] = b ? m + "px" : ""),
1461            (e[v] = _ ? f + "px" : ""),
1462            (e.transform = ""),
1463            e)
1464          )
1465    );
1466  }
1467  const Be = {
1468    name: "computeStyles",
1469    enabled: !0,
1470    phase: "beforeWrite",
1471    fn: function (t) {
1472      var e = t.state,
1473        i = t.options,
1474        n = i.gpuAcceleration,
1475        s = void 0 === n || n,
1476        o = i.adaptive,
1477        r = void 0 === o || o,
1478        a = i.roundOffsets,
1479        l = void 0 === a || a,
1480        c = {
1481          placement: be(e.placement),
1482          variation: Fe(e.placement),
1483          popper: e.elements.popper,
1484          popperRect: e.rects.popper,
1485          gpuAcceleration: s,
1486          isFixed: "fixed" === e.options.strategy,
1487        };
1488      null != e.modifiersData.popperOffsets &&
1489        (e.styles.popper = Object.assign(
1490          {},
1491          e.styles.popper,
1492          We(
1493            Object.assign({}, c, {
1494              offsets: e.modifiersData.popperOffsets,
1495              position: e.options.strategy,
1496              adaptive: r,
1497              roundOffsets: l,
1498            })
1499          )
1500        )),
1501        null != e.modifiersData.arrow &&
1502          (e.styles.arrow = Object.assign(
1503            {},
1504            e.styles.arrow,
1505            We(
1506              Object.assign({}, c, {
1507                offsets: e.modifiersData.arrow,
1508                position: "absolute",
1509                adaptive: !1,
1510                roundOffsets: l,
1511              })
1512            )
1513          )),
1514        (e.attributes.popper = Object.assign({}, e.attributes.popper, {
1515          "data-popper-placement": e.placement,
1516        }));
1517    },
1518    data: {},
1519  };
1520  var ze = { passive: !0 };
1521  const Re = {
1522    name: "eventListeners",
1523    enabled: !0,
1524    phase: "write",
1525    fn: function () {},
1526    effect: function (t) {
1527      var e = t.state,
1528        i = t.instance,
1529        n = t.options,
1530        s = n.scroll,
1531        o = void 0 === s || s,
1532        r = n.resize,
1533        a = void 0 === r || r,
1534        l = fe(e.elements.popper),
1535        c = [].concat(e.scrollParents.reference, e.scrollParents.popper);
1536      return (
1537        o &&
1538          c.forEach(function (t) {
1539            t.addEventListener("scroll", i.update, ze);
1540          }),
1541        a && l.addEventListener("resize", i.update, ze),
1542        function () {
1543          o &&
1544            c.forEach(function (t) {
1545              t.removeEventListener("scroll", i.update, ze);
1546            }),
1547            a && l.removeEventListener("resize", i.update, ze);
1548        }
1549      );
1550    },
1551    data: {},
1552  };
1553  var qe = { left: "right", right: "left", bottom: "top", top: "bottom" };
1554  function Ve(t) {
1555    return t.replace(/left|right|bottom|top/g, function (t) {
1556      return qe[t];
1557    });
1558  }
1559  var Ke = { start: "end", end: "start" };
1560  function Qe(t) {
1561    return t.replace(/start|end/g, function (t) {
1562      return Ke[t];
1563    });
1564  }
1565  function Xe(t) {
1566    var e = fe(t);
1567    return { scrollLeft: e.pageXOffset, scrollTop: e.pageYOffset };
1568  }
1569  function Ye(t) {
1570    return Te(Le(t)).left + Xe(t).scrollLeft;
1571  }
1572  function Ue(t) {
1573    var e = xe(t),
1574      i = e.overflow,
1575      n = e.overflowX,
1576      s = e.overflowY;
1577    return /auto|scroll|overlay|hidden/.test(i + s + n);
1578  }
1579  function Ge(t) {
1580    return ["html", "body", "#document"].indexOf(ue(t)) >= 0
1581      ? t.ownerDocument.body
1582      : me(t) && Ue(t)
1583      ? t
1584      : Ge(Se(t));
1585  }
1586  function Je(t, e) {
1587    var i;
1588    void 0 === e && (e = []);
1589    var n = Ge(t),
1590      s = n === (null == (i = t.ownerDocument) ? void 0 : i.body),
1591      o = fe(n),
1592      r = s ? [o].concat(o.visualViewport || [], Ue(n) ? n : []) : n,
1593      a = e.concat(r);
1594    return s ? a : a.concat(Je(Se(r)));
1595  }
1596  function Ze(t) {
1597    return Object.assign({}, t, {
1598      left: t.x,
1599      top: t.y,
1600      right: t.x + t.width,
1601      bottom: t.y + t.height,
1602    });
1603  }
1604  function ti(t, e, i) {
1605    return e === Gt
1606      ? Ze(
1607          (function (t, e) {
1608            var i = fe(t),
1609              n = Le(t),
1610              s = i.visualViewport,
1611              o = n.clientWidth,
1612              r = n.clientHeight,
1613              a = 0,
1614              l = 0;
1615            if (s) {
1616              (o = s.width), (r = s.height);
1617              var c = Ee();
1618              (c || (!c && "fixed" === e)) &&
1619                ((a = s.offsetLeft), (l = s.offsetTop));
1620            }
1621            return { width: o, height: r, x: a + Ye(t), y: l };
1622          })(t, i)
1623        )
1624      : pe(e)
1625      ? (function (t, e) {
1626          var i = Te(t, !1, "fixed" === e);
1627          return (
1628            (i.top = i.top + t.clientTop),
1629            (i.left = i.left + t.clientLeft),
1630            (i.bottom = i.top + t.clientHeight),
1631            (i.right = i.left + t.clientWidth),
1632            (i.width = t.clientWidth),
1633            (i.height = t.clientHeight),
1634            (i.x = i.left),
1635            (i.y = i.top),
1636            i
1637          );
1638        })(e, i)
1639      : Ze(
1640          (function (t) {
1641            var e,
1642              i = Le(t),
1643              n = Xe(t),
1644              s = null == (e = t.ownerDocument) ? void 0 : e.body,
1645              o = ve(
1646                i.scrollWidth,
1647                i.clientWidth,
1648                s ? s.scrollWidth : 0,
1649                s ? s.clientWidth : 0
1650              ),
1651              r = ve(
1652                i.scrollHeight,
1653                i.clientHeight,
1654                s ? s.scrollHeight : 0,
1655                s ? s.clientHeight : 0
1656              ),
1657              a = -n.scrollLeft + Ye(t),
1658              l = -n.scrollTop;
1659            return (
1660              "rtl" === xe(s || i).direction &&
1661                (a += ve(i.clientWidth, s ? s.clientWidth : 0) - o),
1662              { width: o, height: r, x: a, y: l }
1663            );
1664          })(Le(t))
1665        );
1666  }
1667  function ei(t) {
1668    var e,
1669      i = t.reference,
1670      n = t.element,
1671      s = t.placement,
1672      o = s ? be(s) : null,
1673      r = s ? Fe(s) : null,
1674      a = i.x + i.width / 2 - n.width / 2,
1675      l = i.y + i.height / 2 - n.height / 2;
1676    switch (o) {
1677      case zt:
1678        e = { x: a, y: i.y - n.height };
1679        break;
1680      case Rt:
1681        e = { x: a, y: i.y + i.height };
1682        break;
1683      case qt:
1684        e = { x: i.x + i.width, y: l };
1685        break;
1686      case Vt:
1687        e = { x: i.x - n.width, y: l };
1688        break;
1689      default:
1690        e = { x: i.x, y: i.y };
1691    }
1692    var c = o ? Ie(o) : null;
1693    if (null != c) {
1694      var h = "y" === c ? "height" : "width";
1695      switch (r) {
1696        case Xt:
1697          e[c] = e[c] - (i[h] / 2 - n[h] / 2);
1698          break;
1699        case Yt:
1700          e[c] = e[c] + (i[h] / 2 - n[h] / 2);
1701      }
1702    }
1703    return e;
1704  }
1705  function ii(t, e) {
1706    void 0 === e && (e = {});
1707    var i = e,
1708      n = i.placement,
1709      s = void 0 === n ? t.placement : n,
1710      o = i.strategy,
1711      r = void 0 === o ? t.strategy : o,
1712      a = i.boundary,
1713      l = void 0 === a ? Ut : a,
1714      c = i.rootBoundary,
1715      h = void 0 === c ? Gt : c,
1716      d = i.elementContext,
1717      u = void 0 === d ? Jt : d,
1718      f = i.altBoundary,
1719      p = void 0 !== f && f,
1720      m = i.padding,
1721      g = void 0 === m ? 0 : m,
1722      _ = Pe("number" != typeof g ? g : Me(g, Qt)),
1723      b = u === Jt ? Zt : Jt,
1724      v = t.rects.popper,
1725      y = t.elements[p ? b : u],
1726      w = (function (t, e, i, n) {
1727        var s =
1728            "clippingParents" === e
1729              ? (function (t) {
1730                  var e = Je(Se(t)),
1731                    i =
1732                      ["absolute", "fixed"].indexOf(xe(t).position) >= 0 &&
1733                      me(t)
1734                        ? $e(t)
1735                        : t;
1736                  return pe(i)
1737                    ? e.filter(function (t) {
1738                        return pe(t) && Oe(t, i) && "body" !== ue(t);
1739                      })
1740                    : [];
1741                })(t)
1742              : [].concat(e),
1743          o = [].concat(s, [i]),
1744          r = o[0],
1745          a = o.reduce(function (e, i) {
1746            var s = ti(t, i, n);
1747            return (
1748              (e.top = ve(s.top, e.top)),
1749              (e.right = ye(s.right, e.right)),
1750              (e.bottom = ye(s.bottom, e.bottom)),
1751              (e.left = ve(s.left, e.left)),
1752              e
1753            );
1754          }, ti(t, r, n));
1755        return (
1756          (a.width = a.right - a.left),
1757          (a.height = a.bottom - a.top),
1758          (a.x = a.left),
1759          (a.y = a.top),
1760          a
1761        );
1762      })(pe(y) ? y : y.contextElement || Le(t.elements.popper), l, h, r),
1763      A = Te(t.elements.reference),
1764      E = ei({ reference: A, element: v, strategy: "absolute", placement: s }),
1765      T = Ze(Object.assign({}, v, E)),
1766      C = u === Jt ? T : A,
1767      O = {
1768        top: w.top - C.top + _.top,
1769        bottom: C.bottom - w.bottom + _.bottom,
1770        left: w.left - C.left + _.left,
1771        right: C.right - w.right + _.right,
1772      },
1773      x = t.modifiersData.offset;
1774    if (u === Jt && x) {
1775      var k = x[s];
1776      Object.keys(O).forEach(function (t) {
1777        var e = [qt, Rt].indexOf(t) >= 0 ? 1 : -1,
1778          i = [zt, Rt].indexOf(t) >= 0 ? "y" : "x";
1779        O[t] += k[i] * e;
1780      });
1781    }
1782    return O;
1783  }
1784  function ni(t, e) {
1785    void 0 === e && (e = {});
1786    var i = e,
1787      n = i.placement,
1788      s = i.boundary,
1789      o = i.rootBoundary,
1790      r = i.padding,
1791      a = i.flipVariations,
1792      l = i.allowedAutoPlacements,
1793      c = void 0 === l ? ee : l,
1794      h = Fe(n),
1795      d = h
1796        ? a
1797          ? te
1798          : te.filter(function (t) {
1799              return Fe(t) === h;
1800            })
1801        : Qt,
1802      u = d.filter(function (t) {
1803        return c.indexOf(t) >= 0;
1804      });
1805    0 === u.length && (u = d);
1806    var f = u.reduce(function (e, i) {
1807      return (
1808        (e[i] = ii(t, {
1809          placement: i,
1810          boundary: s,
1811          rootBoundary: o,
1812          padding: r,
1813        })[be(i)]),
1814        e
1815      );
1816    }, {});
1817    return Object.keys(f).sort(function (t, e) {
1818      return f[t] - f[e];
1819    });
1820  }
1821  const si = {
1822    name: "flip",
1823    enabled: !0,
1824    phase: "main",
1825    fn: function (t) {
1826      var e = t.state,
1827        i = t.options,
1828        n = t.name;
1829      if (!e.modifiersData[n]._skip) {
1830        for (
1831          var s = i.mainAxis,
1832            o = void 0 === s || s,
1833            r = i.altAxis,
1834            a = void 0 === r || r,
1835            l = i.fallbackPlacements,
1836            c = i.padding,
1837            h = i.boundary,
1838            d = i.rootBoundary,
1839            u = i.altBoundary,
1840            f = i.flipVariations,
1841            p = void 0 === f || f,
1842            m = i.allowedAutoPlacements,
1843            g = e.options.placement,
1844            _ = be(g),
1845            b =
1846              l ||
1847              (_ !== g && p
1848                ? (function (t) {
1849                    if (be(t) === Kt) return [];
1850                    var e = Ve(t);
1851                    return [Qe(t), e, Qe(e)];
1852                  })(g)
1853                : [Ve(g)]),
1854            v = [g].concat(b).reduce(function (t, i) {
1855              return t.concat(
1856                be(i) === Kt
1857                  ? ni(e, {
1858                      placement: i,
1859                      boundary: h,
1860                      rootBoundary: d,
1861                      padding: c,
1862                      flipVariations: p,
1863                      allowedAutoPlacements: m,
1864                    })
1865                  : i
1866              );
1867            }, []),
1868            y = e.rects.reference,
1869            w = e.rects.popper,
1870            A = new Map(),
1871            E = !0,
1872            T = v[0],
1873            C = 0;
1874          C < v.length;
1875          C++
1876        ) {
1877          var O = v[C],
1878            x = be(O),
1879            k = Fe(O) === Xt,
1880            L = [zt, Rt].indexOf(x) >= 0,
1881            S = L ? "width" : "height",
1882            D = ii(e, {
1883              placement: O,
1884              boundary: h,
1885              rootBoundary: d,
1886              altBoundary: u,
1887              padding: c,
1888            }),
1889            $ = L ? (k ? qt : Vt) : k ? Rt : zt;
1890          y[S] > w[S] && ($ = Ve($));
1891          var I = Ve($),
1892            N = [];
1893          if (
1894            (o && N.push(D[x] <= 0),
1895            a && N.push(D[$] <= 0, D[I] <= 0),
1896            N.every(function (t) {
1897              return t;
1898            }))
1899          ) {
1900            (T = O), (E = !1);
1901            break;
1902          }
1903          A.set(O, N);
1904        }
1905        if (E)
1906          for (
1907            var P = function (t) {
1908                var e = v.find(function (e) {
1909                  var i = A.get(e);
1910                  if (i)
1911                    return i.slice(0, t).every(function (t) {
1912                      return t;
1913                    });
1914                });
1915                if (e) return (T = e), "break";
1916              },
1917              M = p ? 3 : 1;
1918            M > 0 && "break" !== P(M);
1919            M--
1920          );
1921        e.placement !== T &&
1922          ((e.modifiersData[n]._skip = !0), (e.placement = T), (e.reset = !0));
1923      }
1924    },
1925    requiresIfExists: ["offset"],
1926    data: { _skip: !1 },
1927  };
1928  function oi(t, e, i) {
1929    return (
1930      void 0 === i && (i = { x: 0, y: 0 }),
1931      {
1932        top: t.top - e.height - i.y,
1933        right: t.right - e.width + i.x,
1934        bottom: t.bottom - e.height + i.y,
1935        left: t.left - e.width - i.x,
1936      }
1937    );
1938  }
1939  function ri(t) {
1940    return [zt, qt, Rt, Vt].some(function (e) {
1941      return t[e] >= 0;
1942    });
1943  }
1944  const ai = {
1945      name: "hide",
1946      enabled: !0,
1947      phase: "main",
1948      requiresIfExists: ["preventOverflow"],
1949      fn: function (t) {
1950        var e = t.state,
1951          i = t.name,
1952          n = e.rects.reference,
1953          s = e.rects.popper,
1954          o = e.modifiersData.preventOverflow,
1955          r = ii(e, { elementContext: "reference" }),
1956          a = ii(e, { altBoundary: !0 }),
1957          l = oi(r, n),
1958          c = oi(a, s, o),
1959          h = ri(l),
1960          d = ri(c);
1961        (e.modifiersData[i] = {
1962          referenceClippingOffsets: l,
1963          popperEscapeOffsets: c,
1964          isReferenceHidden: h,
1965          hasPopperEscaped: d,
1966        }),
1967          (e.attributes.popper = Object.assign({}, e.attributes.popper, {
1968            "data-popper-reference-hidden": h,
1969            "data-popper-escaped": d,
1970          }));
1971      },
1972    },
1973    li = {
1974      name: "offset",
1975      enabled: !0,
1976      phase: "main",
1977      requires: ["popperOffsets"],
1978      fn: function (t) {
1979        var e = t.state,
1980          i = t.options,
1981          n = t.name,
1982          s = i.offset,
1983          o = void 0 === s ? [0, 0] : s,
1984          r = ee.reduce(function (t, i) {
1985            return (
1986              (t[i] = (function (t, e, i) {
1987                var n = be(t),
1988                  s = [Vt, zt].indexOf(n) >= 0 ? -1 : 1,
1989                  o =
1990                    "function" == typeof i
1991                      ? i(Object.assign({}, e, { placement: t }))
1992                      : i,
1993                  r = o[0],
1994                  a = o[1];
1995                return (
1996                  (r = r || 0),
1997                  (a = (a || 0) * s),
1998                  [Vt, qt].indexOf(n) >= 0 ? { x: a, y: r } : { x: r, y: a }
1999                );
2000              })(i, e.rects, o)),
2001              t
2002            );
2003          }, {}),
2004          a = r[e.placement],
2005          l = a.x,
2006          c = a.y;
2007        null != e.modifiersData.popperOffsets &&
2008          ((e.modifiersData.popperOffsets.x += l),
vendor: 6,053 bytes, lines 2009-2201
2009          (e.modifiersData.popperOffsets.y += c)),
2010          (e.modifiersData[n] = r);
2011      },
2012    },
2013    ci = {
2014      name: "popperOffsets",
2015      enabled: !0,
2016      phase: "read",
2017      fn: function (t) {
2018        var e = t.state,
2019          i = t.name;
2020        e.modifiersData[i] = ei({
2021          reference: e.rects.reference,
2022          element: e.rects.popper,
2023          strategy: "absolute",
2024          placement: e.placement,
2025        });
2026      },
2027      data: {},
2028    },
2029    hi = {
2030      name: "preventOverflow",
2031      enabled: !0,
2032      phase: "main",
2033      fn: function (t) {
2034        var e = t.state,
2035          i = t.options,
2036          n = t.name,
2037          s = i.mainAxis,
2038          o = void 0 === s || s,
2039          r = i.altAxis,
2040          a = void 0 !== r && r,
2041          l = i.boundary,
2042          c = i.rootBoundary,
2043          h = i.altBoundary,
2044          d = i.padding,
2045          u = i.tether,
2046          f = void 0 === u || u,
2047          p = i.tetherOffset,
2048          m = void 0 === p ? 0 : p,
2049          g = ii(e, {
2050            boundary: l,
2051            rootBoundary: c,
2052            padding: d,
2053            altBoundary: h,
2054          }),
2055          _ = be(e.placement),
2056          b = Fe(e.placement),
2057          v = !b,
2058          y = Ie(_),
2059          w = "x" === y ? "y" : "x",
2060          A = e.modifiersData.popperOffsets,
2061          E = e.rects.reference,
2062          T = e.rects.popper,
2063          C =
2064            "function" == typeof m
2065              ? m(Object.assign({}, e.rects, { placement: e.placement }))
2066              : m,
2067          O =
2068            "number" == typeof C
2069              ? { mainAxis: C, altAxis: C }
2070              : Object.assign({ mainAxis: 0, altAxis: 0 }, C),
2071          x = e.modifiersData.offset
2072            ? e.modifiersData.offset[e.placement]
2073            : null,
2074          k = { x: 0, y: 0 };
2075        if (A) {
2076          if (o) {
2077            var L,
2078              S = "y" === y ? zt : Vt,
2079              D = "y" === y ? Rt : qt,
2080              $ = "y" === y ? "height" : "width",
2081              I = A[y],
2082              N = I + g[S],
2083              P = I - g[D],
2084              M = f ? -T[$] / 2 : 0,
2085              j = b === Xt ? E[$] : T[$],
2086              F = b === Xt ? -T[$] : -E[$],
2087              H = e.elements.arrow,
2088              W = f && H ? Ce(H) : { width: 0, height: 0 },
2089              B = e.modifiersData["arrow#persistent"]
2090                ? e.modifiersData["arrow#persistent"].padding
2091                : { top: 0, right: 0, bottom: 0, left: 0 },
2092              z = B[S],
2093              R = B[D],
2094              q = Ne(0, E[$], W[$]),
2095              V = v
2096                ? E[$] / 2 - M - q - z - O.mainAxis
2097                : j - q - z - O.mainAxis,
2098              K = v
2099                ? -E[$] / 2 + M + q + R + O.mainAxis
2100                : F + q + R + O.mainAxis,
2101              Q = e.elements.arrow && $e(e.elements.arrow),
2102              X = Q ? ("y" === y ? Q.clientTop || 0 : Q.clientLeft || 0) : 0,
2103              Y = null != (L = null == x ? void 0 : x[y]) ? L : 0,
2104              U = I + K - Y,
2105              G = Ne(f ? ye(N, I + V - Y - X) : N, I, f ? ve(P, U) : P);
2106            (A[y] = G), (k[y] = G - I);
2107          }
2108          if (a) {
2109            var J,
2110              Z = "x" === y ? zt : Vt,
2111              tt = "x" === y ? Rt : qt,
2112              et = A[w],
2113              it = "y" === w ? "height" : "width",
2114              nt = et + g[Z],
2115              st = et - g[tt],
2116              ot = -1 !== [zt, Vt].indexOf(_),
2117              rt = null != (J = null == x ? void 0 : x[w]) ? J : 0,
2118              at = ot ? nt : et - E[it] - T[it] - rt + O.altAxis,
2119              lt = ot ? et + E[it] + T[it] - rt - O.altAxis : st,
2120              ct =
2121                f && ot
2122                  ? (function (t, e, i) {
2123                      var n = Ne(t, e, i);
2124                      return n > i ? i : n;
2125                    })(at, et, lt)
2126                  : Ne(f ? at : nt, et, f ? lt : st);
2127            (A[w] = ct), (k[w] = ct - et);
2128          }
2129          e.modifiersData[n] = k;
2130        }
2131      },
2132      requiresIfExists: ["offset"],
2133    };
2134  function di(t, e, i) {
2135    void 0 === i && (i = !1);
2136    var n,
2137      s,
2138      o = me(e),
2139      r =
2140        me(e) &&
2141        (function (t) {
2142          var e = t.getBoundingClientRect(),
2143            i = we(e.width) / t.offsetWidth || 1,
2144            n = we(e.height) / t.offsetHeight || 1;
2145          return 1 !== i || 1 !== n;
2146        })(e),
2147      a = Le(e),
2148      l = Te(t, r, i),
2149      c = { scrollLeft: 0, scrollTop: 0 },
2150      h = { x: 0, y: 0 };
2151    return (
2152      (o || (!o && !i)) &&
2153        (("body" !== ue(e) || Ue(a)) &&
2154          (c =
2155            (n = e) !== fe(n) && me(n)
2156              ? { scrollLeft: (s = n).scrollLeft, scrollTop: s.scrollTop }
2157              : Xe(n)),
2158        me(e)
2159          ? (((h = Te(e, !0)).x += e.clientLeft), (h.y += e.clientTop))
2160          : a && (h.x = Ye(a))),
2161      {
2162        x: l.left + c.scrollLeft - h.x,
2163        y: l.top + c.scrollTop - h.y,
2164        width: l.width,
2165        height: l.height,
2166      }
2167    );
2168  }
2169  function ui(t) {
2170    var e = new Map(),
2171      i = new Set(),
2172      n = [];
2173    function s(t) {
2174      i.add(t.name),
2175        []
2176          .concat(t.requires || [], t.requiresIfExists || [])
2177          .forEach(function (t) {
2178            if (!i.has(t)) {
2179              var n = e.get(t);
2180              n && s(n);
2181            }
2182          }),
2183        n.push(t);
2184    }
2185    return (
2186      t.forEach(function (t) {
2187        e.set(t.name, t);
2188      }),
2189      t.forEach(function (t) {
2190        i.has(t.name) || s(t);
2191      }),
2192      n
2193    );
2194  }
2195  var fi = { placement: "bottom", modifiers: [], strategy: "absolute" };
2196  function pi() {
2197    for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++)
2198      e[i] = arguments[i];
2199    return !e.some(function (t) {
2200      return !(t && "function" == typeof t.getBoundingClientRect);
2201    });
2202  }
2203  function mi(t) {
2204    void 0 === t && (t = {});
2205    var e = t,
2206      i = e.defaultModifiers,
2207      n = void 0 === i ? [] : i,
2208      s = e.defaultOptions,
2209      o = void 0 === s ? fi : s;
2210    return function (t, e, i) {
2211      void 0 === i && (i = o);
2212      var s,
2213        r,
2214        a = {
2215          placement: "bottom",
2216          orderedModifiers: [],
2217          options: Object.assign({}, fi, o),
2218          modifiersData: {},
2219          elements: { reference: t, popper: e },
2220          attributes: {},
2221          styles: {},
2222        },
2223        l = [],
2224        c = !1,
2225        h = {
2226          state: a,
2227          setOptions: function (i) {
2228            var s = "function" == typeof i ? i(a.options) : i;
2229            d(),
2230              (a.options = Object.assign({}, o, a.options, s)),
2231              (a.scrollParents = {
2232                reference: pe(t)
2233                  ? Je(t)
2234                  : t.contextElement
2235                  ? Je(t.contextElement)
2236                  : [],
2237                popper: Je(e),
2238              });
2239            var r,
2240              c,
2241              u = (function (t) {
2242                var e = ui(t);
2243                return de.reduce(function (t, i) {
2244                  return t.concat(
2245                    e.filter(function (t) {
2246                      return t.phase === i;
2247                    })
2248                  );
2249                }, []);
2250              })(
2251                ((r = [].concat(n, a.options.modifiers)),
2252                (c = r.reduce(function (t, e) {
2253                  var i = t[e.name];
2254                  return (
2255                    (t[e.name] = i
2256                      ? Object.assign({}, i, e, {
2257                          options: Object.assign({}, i.options, e.options),
2258                          data: Object.assign({}, i.data, e.data),
2259                        })
2260                      : e),
2261                    t
2262                  );
2263                }, {})),
2264                Object.keys(c).map(function (t) {
2265                  return c[t];
2266                }))
2267              );
2268            return (
2269              (a.orderedModifiers = u.filter(function (t) {
2270                return t.enabled;
2271              })),
2272              a.orderedModifiers.forEach(function (t) {
2273                var e = t.name,
2274                  i = t.options,
2275                  n = void 0 === i ? {} : i,
2276                  s = t.effect;
2277                if ("function" == typeof s) {
2278                  var o = s({ state: a, name: e, instance: h, options: n });
2279                  l.push(o || function () {});
2280                }
2281              }),
2282              h.update()
2283            );
2284          },
2285          forceUpdate: function () {
2286            if (!c) {
2287              var t = a.elements,
2288                e = t.reference,
2289                i = t.popper;
2290              if (pi(e, i)) {
2291                (a.rects = {
2292                  reference: di(e, $e(i), "fixed" === a.options.strategy),
2293                  popper: Ce(i),
2294                }),
2295                  (a.reset = !1),
2296                  (a.placement = a.options.placement),
2297                  a.orderedModifiers.forEach(function (t) {
2298                    return (a.modifiersData[t.name] = Object.assign(
2299                      {},
2300                      t.data
2301                    ));
2302                  });
2303                for (var n = 0; n < a.orderedModifiers.length; n++)
2304                  if (!0 !== a.reset) {
2305                    var s = a.orderedModifiers[n],
2306                      o = s.fn,
2307                      r = s.options,
2308                      l = void 0 === r ? {} : r,
2309                      d = s.name;
2310                    "function" == typeof o &&
2311                      (a =
2312                        o({ state: a, options: l, name: d, instance: h }) || a);
2313                  } else (a.reset = !1), (n = -1);
2314              }
2315            }
2316          },
2317          update:
2318            ((s = function () {
2319              return new Promise(function (t) {
2320                h.forceUpdate(), t(a);
2321              });
2322            }),
2323            function () {
2324              return (
2325                r ||
2326                  (r = new Promise(function (t) {
2327                    Promise.resolve().then(function () {
2328                      (r = void 0), t(s());
2329                    });
2330                  })),
2331                r
2332              );
2333            }),
2334          destroy: function () {
2335            d(), (c = !0);
2336          },
2337        };
2338      if (!pi(t, e)) return h;
2339      function d() {
2340        l.forEach(function (t) {
2341          return t();
2342        }),
2343          (l = []);
2344      }
2345      return (
2346        h.setOptions(i).then(function (t) {
2347          !c && i.onFirstUpdate && i.onFirstUpdate(t);
2348        }),
2349        h
2350      );
2351    };
2352  }
2353  var gi = mi(),
2354    _i = mi({ defaultModifiers: [Re, ci, Be, _e] }),
2355    bi = mi({ defaultModifiers: [Re, ci, Be, _e, li, si, hi, je, ai] });
2356  const vi = Object.freeze(
2357      Object.defineProperty(
2358        {
2359          __proto__: null,
2360          afterMain: ae,
2361          afterRead: se,
2362          afterWrite: he,
2363          applyStyles: _e,
2364          arrow: je,
2365          auto: Kt,
2366          basePlacements: Qt,
2367          beforeMain: oe,
2368          beforeRead: ie,
2369          beforeWrite: le,
2370          bottom: Rt,
2371          clippingParents: Ut,
2372          computeStyles: Be,
2373          createPopper: bi,
2374          createPopperBase: gi,
2375          createPopperLite: _i,
2376          detectOverflow: ii,
2377          end: Yt,
2378          eventListeners: Re,
2379          flip: si,
2380          hide: ai,
2381          left: Vt,
2382          main: re,
2383          modifierPhases: de,
2384          offset: li,
2385          placements: ee,
2386          popper: Jt,
2387          popperGenerator: mi,
2388          popperOffsets: ci,
2389          preventOverflow: hi,
2390          read: ne,
2391          reference: Zt,
2392          right: qt,
2393          start: Xt,
2394          top: zt,
2395          variationPlacements: te,
2396          viewport: Gt,
2397          write: ce,
2398        },
2399        Symbol.toStringTag,
2400        { value: "Module" }
2401      )
2402    ),
2403    yi = "dropdown",
2404    wi = ".bs.dropdown",
2405    Ai = ".data-api",
2406    Ei = "ArrowUp",
2407    Ti = "ArrowDown",
2408    Ci = `hide${wi}`,
2409    Oi = `hidden${wi}`,
2410    xi = `show${wi}`,
2411    ki = `shown${wi}`,
2412    Li = `click${wi}${Ai}`,
2413    Si = `keydown${wi}${Ai}`,
2414    Di = `keyup${wi}${Ai}`,
2415    $i = "show",
2416    Ii = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',
2417    Ni = `${Ii}.${$i}`,
2418    Pi = ".dropdown-menu",
2419    Mi = p() ? "top-end" : "top-start",
2420    ji = p() ? "top-start" : "top-end",
2421    Fi = p() ? "bottom-end" : "bottom-start",
2422    Hi = p() ? "bottom-start" : "bottom-end",
2423    Wi = p() ? "left-start" : "right-start",
2424    Bi = p() ? "right-start" : "left-start",
2425    zi = {
2426      autoClose: !0,
2427      boundary: "clippingParents",
2428      display: "dynamic",
2429      offset: [0, 2],
2430      popperConfig: null,
2431      reference: "toggle",
2432    },
2433    Ri = {
2434      autoClose: "(boolean|string)",
2435      boundary: "(string|element)",
2436      display: "string",
2437      offset: "(array|string|function)",
2438      popperConfig: "(null|object|function)",
2439      reference: "(string|element|object)",
2440    };
2441  class qi extends W {
2442    constructor(t, e) {
2443      super(t, e),
2444        (this._popper = null),
2445        (this._parent = this._element.parentNode),
2446        (this._menu =
2447          z.next(this._element, Pi)[0] ||
2448          z.prev(this._element, Pi)[0] ||
2449          z.findOne(Pi, this._parent)),
2450        (this._inNavbar = this._detectNavbar());
2451    }
2452    static get Default() {
2453      return zi;
2454    }
2455    static get DefaultType() {
2456      return Ri;
2457    }
2458    static get NAME() {
2459      return yi;
2460    }
2461    toggle() {
2462      return this._isShown() ? this.hide() : this.show();
2463    }
2464    show() {
2465      if (l(this._element) || this._isShown()) return;
2466      const t = { relatedTarget: this._element };
2467      if (!N.trigger(this._element, xi, t).defaultPrevented) {
2468        if (
2469          (this._createPopper(),
2470          "ontouchstart" in document.documentElement &&
2471            !this._parent.closest(".navbar-nav"))
2472        )
2473          for (const t of [].concat(...document.body.children))
2474            N.on(t, "mouseover", h);
2475        this._element.focus(),
2476          this._element.setAttribute("aria-expanded", !0),
2477          this._menu.classList.add($i),
2478          this._element.classList.add($i),
2479          N.trigger(this._element, ki, t);
2480      }
2481    }
2482    hide() {
2483      if (l(this._element) || !this._isShown()) return;
2484      const t = { relatedTarget: this._element };
2485      this._completeHide(t);
2486    }
2487    dispose() {
2488      this._popper && this._popper.destroy(), super.dispose();
2489    }
2490    update() {
2491      (this._inNavbar = this._detectNavbar()),
2492        this._popper && this._popper.update();
2493    }
2494    _completeHide(t) {
2495      if (!N.trigger(this._element, Ci, t).defaultPrevented) {
2496        if ("ontouchstart" in document.documentElement)
2497          for (const t of [].concat(...document.body.children))
2498            N.off(t, "mouseover", h);
2499        this._popper && this._popper.destroy(),
2500          this._menu.classList.remove($i),
2501          this._element.classList.remove($i),
2502          this._element.setAttribute("aria-expanded", "false"),
2503          F.removeDataAttribute(this._menu, "popper"),
2504          N.trigger(this._element, Oi, t);
2505      }
2506    }
2507    _getConfig(t) {
2508      if (
2509        "object" == typeof (t = super._getConfig(t)).reference &&
2510        !o(t.reference) &&
2511        "function" != typeof t.reference.getBoundingClientRect
2512      )
2513        throw new TypeError(
2514          `${yi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`
2515        );
2516      return t;
2517    }
2518    _createPopper() {
2519      if (void 0 === vi)
2520        throw new TypeError(
2521          "Bootstrap's dropdowns require Popper (https://popper.js.org)"
2522        );
2523      let t = this._element;
2524      "parent" === this._config.reference
2525        ? (t = this._parent)
2526        : o(this._config.reference)
2527        ? (t = r(this._config.reference))
2528        : "object" == typeof this._config.reference &&
2529          (t = this._config.reference);
2530      const e = this._getPopperConfig();
2531      this._popper = bi(t, this._menu, e);
2532    }
2533    _isShown() {
2534      return this._menu.classList.contains($i);
2535    }
2536    _getPlacement() {
2537      const t = this._parent;
2538      if (t.classList.contains("dropend")) return Wi;
2539      if (t.classList.contains("dropstart")) return Bi;
2540      if (t.classList.contains("dropup-center")) return "top";
2541      if (t.classList.contains("dropdown-center")) return "bottom";
2542      const e =
2543        "end" ===
2544        getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
2545      return t.classList.contains("dropup") ? (e ? ji : Mi) : e ? Hi : Fi;
2546    }
2547    _detectNavbar() {
2548      return null !== this._element.closest(".navbar");
2549    }
2550    _getOffset() {
2551      const { offset: t } = this._config;
2552      return "string" == typeof t
2553        ? t.split(",").map((t) => Number.parseInt(t, 10))
2554        : "function" == typeof t
2555        ? (e) => t(e, this._element)
2556        : t;
2557    }
2558    _getPopperConfig() {
2559      const t = {
2560        placement: this._getPlacement(),
2561        modifiers: [
2562          {
2563            name: "preventOverflow",
2564            options: { boundary: this._config.boundary },
2565          },
2566          { name: "offset", options: { offset: this._getOffset() } },
2567        ],
2568      };
2569      return (
2570        (this._inNavbar || "static" === this._config.display) &&
2571          (F.setDataAttribute(this._menu, "popper", "static"),
2572          (t.modifiers = [{ name: "applyStyles", enabled: !1 }])),
2573        { ...t, ...g(this._config.popperConfig, [t]) }
2574      );
2575    }
2576    _selectMenuItem({ key: t, target: e }) {
2577      const i = z
2578        .find(
2579          ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",
2580          this._menu
2581        )
2582        .filter((t) => a(t));
2583      i.length && b(i, e, t === Ti, !i.includes(e)).focus();
2584    }
2585    static jQueryInterface(t) {
2586      return this.each(function () {
2587        const e = qi.getOrCreateInstance(this, t);
2588        if ("string" == typeof t) {
2589          if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
2590          e[t]();
2591        }
2592      });
2593    }
2594    static clearMenus(t) {
2595      if (2 === t.button || ("keyup" === t.type && "Tab" !== t.key)) return;
2596      const e = z.find(Ni);
2597      for (const i of e) {
2598        const e = qi.getInstance(i);
2599        if (!e || !1 === e._config.autoClose) continue;
2600        const n = t.composedPath(),
2601          s = n.includes(e._menu);
2602        if (
2603          n.includes(e._element) ||
2604          ("inside" === e._config.autoClose && !s) ||
2605          ("outside" === e._config.autoClose && s)
2606        )
2607          continue;
2608        if (
2609          e._menu.contains(t.target) &&
2610          (("keyup" === t.type && "Tab" === t.key) ||
2611            /input|select|option|textarea|form/i.test(t.target.tagName))
2612        )
2613          continue;
2614        const o = { relatedTarget: e._element };
2615        "click" === t.type && (o.clickEvent = t), e._completeHide(o);
2616      }
2617    }
2618    static dataApiKeydownHandler(t) {
2619      const e = /input|textarea/i.test(t.target.tagName),
2620        i = "Escape" === t.key,
2621        n = [Ei, Ti].includes(t.key);
2622      if (!n && !i) return;
2623      if (e && !i) return;
2624      t.preventDefault();
2625      const s = this.matches(Ii)
2626          ? this
2627          : z.prev(this, Ii)[0] ||
2628            z.next(this, Ii)[0] ||
2629            z.findOne(Ii, t.delegateTarget.parentNode),
2630        o = qi.getOrCreateInstance(s);
2631      if (n) return t.stopPropagation(), o.show(), void o._selectMenuItem(t);
2632      o._isShown() && (t.stopPropagation(), o.hide(), s.focus());
2633    }
2634  }
2635  N.on(document, Si, Ii, qi.dataApiKeydownHandler),
2636    N.on(document, Si, Pi, qi.dataApiKeydownHandler),
2637    N.on(document, Li, qi.clearMenus),
2638    N.on(document, Di, qi.clearMenus),
2639    N.on(document, Li, Ii, function (t) {
2640      t.preventDefault(), qi.getOrCreateInstance(this).toggle();
2641    }),
2642    m(qi);
2643  const Vi = "backdrop",
2644    Ki = "show",
2645    Qi = `mousedown.bs.${Vi}`,
2646    Xi = {
2647      className: "modal-backdrop",
2648      clickCallback: null,
2649      isAnimated: !1,
2650      isVisible: !0,
2651      rootElement: "body",
2652    },
2653    Yi = {
2654      className: "string",
2655      clickCallback: "(function|null)",
2656      isAnimated: "boolean",
2657      isVisible: "boolean",
2658      rootElement: "(element|string)",
2659    };
2660  class Ui extends H {
2661    constructor(t) {
2662      super(),
2663        (this._config = this._getConfig(t)),
2664        (this._isAppended = !1),
2665        (this._element = null);
2666    }
2667    static get Default() {
2668      return Xi;
2669    }
2670    static get DefaultType() {
2671      return Yi;
2672    }
2673    static get NAME() {
2674      return Vi;
2675    }
2676    show(t) {
2677      if (!this._config.isVisible) return void g(t);
2678      this._append();
2679      const e = this._getElement();
2680      this._config.isAnimated && d(e),
2681        e.classList.add(Ki),
2682        this._emulateAnimation(() => {
2683          g(t);
2684        });
2685    }
2686    hide(t) {
2687      this._config.isVisible
2688        ? (this._getElement().classList.remove(Ki),
2689          this._emulateAnimation(() => {
2690            this.dispose(), g(t);
2691          }))
2692        : g(t);
2693    }
2694    dispose() {
2695      this._isAppended &&
2696        (N.off(this._element, Qi),
2697        this._element.remove(),
2698        (this._isAppended = !1));
2699    }
2700    _getElement() {
2701      if (!this._element) {
2702        const t = document.createElement("div");
2703        (t.className = this._config.className),
2704          this._config.isAnimated && t.classList.add("fade"),
2705          (this._element = t);
2706      }
2707      return this._element;
2708    }
2709    _configAfterMerge(t) {
2710      return (t.rootElement = r(t.rootElement)), t;
2711    }
2712    _append() {
2713      if (this._isAppended) return;
2714      const t = this._getElement();
2715      this._config.rootElement.append(t),
2716        N.on(t, Qi, () => {
2717          g(this._config.clickCallback);
2718        }),
2719        (this._isAppended = !0);
2720    }
2721    _emulateAnimation(t) {
2722      _(t, this._getElement(), this._config.isAnimated);
2723    }
2724  }
2725  const Gi = ".bs.focustrap",
2726    Ji = `focusin${Gi}`,
2727    Zi = `keydown.tab${Gi}`,
2728    tn = "backward",
2729    en = { autofocus: !0, trapElement: null },
2730    nn = { autofocus: "boolean", trapElement: "element" };
2731  class sn extends H {
2732    constructor(t) {
2733      super(),
2734        (this._config = this._getConfig(t)),
2735        (this._isActive = !1),
2736        (this._lastTabNavDirection = null);
2737    }
2738    static get Default() {
2739      return en;
2740    }
2741    static get DefaultType() {
2742      return nn;
2743    }
2744    static get NAME() {
2745      return "focustrap";
2746    }
2747    activate() {
2748      this._isActive ||
2749        (this._config.autofocus && this._config.trapElement.focus(),
2750        N.off(document, Gi),
2751        N.on(document, Ji, (t) => this._handleFocusin(t)),
2752        N.on(document, Zi, (t) => this._handleKeydown(t)),
2753        (this._isActive = !0));
2754    }
2755    deactivate() {
2756      this._isActive && ((this._isActive = !1), N.off(document, Gi));
2757    }
2758    _handleFocusin(t) {
2759      const { trapElement: e } = this._config;
2760      if (t.target === document || t.target === e || e.contains(t.target))
2761        return;
2762      const i = z.focusableChildren(e);
2763      0 === i.length
2764        ? e.focus()
2765        : this._lastTabNavDirection === tn
2766        ? i[i.length - 1].focus()
2767        : i[0].focus();
2768    }
2769    _handleKeydown(t) {
2770      "Tab" === t.key &&
2771        (this._lastTabNavDirection = t.shiftKey ? tn : "forward");
2772    }
2773  }
2774  const on = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
2775    rn = ".sticky-top",
2776    an = "padding-right",
2777    ln = "margin-right";
2778  class cn {
2779    constructor() {
2780      this._element = document.body;
2781    }
2782    getWidth() {
2783      const t = document.documentElement.clientWidth;
2784      return Math.abs(window.innerWidth - t);
2785    }
2786    hide() {
2787      const t = this.getWidth();
2788      this._disableOverFlow(),
2789        this._setElementAttributes(this._element, an, (e) => e + t),
2790        this._setElementAttributes(on, an, (e) => e + t),
2791        this._setElementAttributes(rn, ln, (e) => e - t);
2792    }
2793    reset() {
2794      this._resetElementAttributes(this._element, "overflow"),
2795        this._resetElementAttributes(this._element, an),
2796        this._resetElementAttributes(on, an),
2797        this._resetElementAttributes(rn, ln);
2798    }
2799    isOverflowing() {
2800      return this.getWidth() > 0;
2801    }
2802    _disableOverFlow() {
2803      this._saveInitialAttribute(this._element, "overflow"),
2804        (this._element.style.overflow = "hidden");
2805    }
2806    _setElementAttributes(t, e, i) {
2807      const n = this.getWidth();
2808      this._applyManipulationCallback(t, (t) => {
2809        if (t !== this._element && window.innerWidth > t.clientWidth + n)
2810          return;
2811        this._saveInitialAttribute(t, e);
2812        const s = window.getComputedStyle(t).getPropertyValue(e);
2813        t.style.setProperty(e, `${i(Number.parseFloat(s))}px`);
2814      });
2815    }
2816    _saveInitialAttribute(t, e) {
2817      const i = t.style.getPropertyValue(e);
2818      i && F.setDataAttribute(t, e, i);
2819    }
2820    _resetElementAttributes(t, e) {
2821      this._applyManipulationCallback(t, (t) => {
2822        const i = F.getDataAttribute(t, e);
2823        null !== i
2824          ? (F.removeDataAttribute(t, e), t.style.setProperty(e, i))
2825          : t.style.removeProperty(e);
2826      });
2827    }
2828    _applyManipulationCallback(t, e) {
2829      if (o(t)) e(t);
2830      else for (const i of z.find(t, this._element)) e(i);
2831    }
2832  }
2833  const hn = ".bs.modal",
2834    dn = `hide${hn}`,
2835    un = `hidePrevented${hn}`,
2836    fn = `hidden${hn}`,
2837    pn = `show${hn}`,
2838    mn = `shown${hn}`,
2839    gn = `resize${hn}`,
2840    _n = `click.dismiss${hn}`,
2841    bn = `mousedown.dismiss${hn}`,
2842    vn = `keydown.dismiss${hn}`,
2843    yn = `click${hn}.data-api`,
2844    wn = "modal-open",
2845    An = "show",
2846    En = "modal-static",
2847    Tn = { backdrop: !0, focus: !0, keyboard: !0 },
2848    Cn = {
2849      backdrop: "(boolean|string)",
2850      focus: "boolean",
2851      keyboard: "boolean",
2852    };
2853  class On extends W {
2854    constructor(t, e) {
2855      super(t, e),
2856        (this._dialog = z.findOne(".modal-dialog", this._element)),
2857        (this._backdrop = this._initializeBackDrop()),
2858        (this._focustrap = this._initializeFocusTrap()),
2859        (this._isShown = !1),
2860        (this._isTransitioning = !1),
2861        (this._scrollBar = new cn()),
2862        this._addEventListeners();
2863    }
2864    static get Default() {
2865      return Tn;
2866    }
2867    static get DefaultType() {
2868      return Cn;
2869    }
2870    static get NAME() {
2871      return "modal";
2872    }
2873    toggle(t) {
2874      return this._isShown ? this.hide() : this.show(t);
2875    }
2876    show(t) {
2877      this._isShown ||
2878        this._isTransitioning ||
2879        N.trigger(this._element, pn, { relatedTarget: t }).defaultPrevented ||
2880        ((this._isShown = !0),
2881        (this._isTransitioning = !0),
2882        this._scrollBar.hide(),
2883        document.body.classList.add(wn),
2884        this._adjustDialog(),
2885        this._backdrop.show(() => this._showElement(t)));
2886    }
2887    hide() {
2888      this._isShown &&
2889        !this._isTransitioning &&
2890        (N.trigger(this._element, dn).defaultPrevented ||
2891          ((this._isShown = !1),
2892          (this._isTransitioning = !0),
2893          this._focustrap.deactivate(),
2894          this._element.classList.remove(An),
2895          this._queueCallback(
2896            () => this._hideModal(),
2897            this._element,
2898            this._isAnimated()
2899          )));
2900    }
2901    dispose() {
2902      N.off(window, hn),
2903        N.off(this._dialog, hn),
2904        this._backdrop.dispose(),
2905        this._focustrap.deactivate(),
2906        super.dispose();
2907    }
2908    handleUpdate() {
2909      this._adjustDialog();
2910    }
2911    _initializeBackDrop() {
2912      return new Ui({
2913        isVisible: Boolean(this._config.backdrop),
2914        isAnimated: this._isAnimated(),
2915      });
2916    }
2917    _initializeFocusTrap() {
2918      return new sn({ trapElement: this._element });
2919    }
2920    _showElement(t) {
2921      document.body.contains(this._element) ||
2922        document.body.append(this._element),
2923        (this._element.style.display = "block"),
2924        this._element.removeAttribute("aria-hidden"),
2925        this._element.setAttribute("aria-modal", !0),
2926        this._element.setAttribute("role", "dialog"),
2927        (this._element.scrollTop = 0);
2928      const e = z.findOne(".modal-body", this._dialog);
2929      e && (e.scrollTop = 0),
2930        d(this._element),
2931        this._element.classList.add(An),
2932        this._queueCallback(
2933          () => {
2934            this._config.focus && this._focustrap.activate(),
2935              (this._isTransitioning = !1),
2936              N.trigger(this._element, mn, { relatedTarget: t });
2937          },
2938          this._dialog,
2939          this._isAnimated()
2940        );
2941    }
2942    _addEventListeners() {
2943      N.on(this._element, vn, (t) => {
2944        "Escape" === t.key &&
2945          (this._config.keyboard
2946            ? this.hide()
2947            : this._triggerBackdropTransition());
2948      }),
2949        N.on(window, gn, () => {
2950          this._isShown && !this._isTransitioning && this._adjustDialog();
2951        }),
2952        N.on(this._element, bn, (t) => {
2953          N.one(this._element, _n, (e) => {
2954            this._element === t.target &&
2955              this._element === e.target &&
2956              ("static" !== this._config.backdrop
2957                ? this._config.backdrop && this.hide()
2958                : this._triggerBackdropTransition());
2959          });
2960        });
2961    }
2962    _hideModal() {
2963      (this._element.style.display = "none"),
2964        this._element.setAttribute("aria-hidden", !0),
2965        this._element.removeAttribute("aria-modal"),
2966        this._element.removeAttribute("role"),
2967        (this._isTransitioning = !1),
2968        this._backdrop.hide(() => {
2969          document.body.classList.remove(wn),
2970            this._resetAdjustments(),
2971            this._scrollBar.reset(),
2972            N.trigger(this._element, fn);
2973        });
2974    }
2975    _isAnimated() {
2976      return this._element.classList.contains("fade");
2977    }
2978    _triggerBackdropTransition() {
2979      if (N.trigger(this._element, un).defaultPrevented) return;
2980      const t =
2981          this._element.scrollHeight > document.documentElement.clientHeight,
2982        e = this._element.style.overflowY;
2983      "hidden" === e ||
2984        this._element.classList.contains(En) ||
2985        (t || (this._element.style.overflowY = "hidden"),
2986        this._element.classList.add(En),
2987        this._queueCallback(() => {
2988          this._element.classList.remove(En),
2989            this._queueCallback(() => {
2990              this._element.style.overflowY = e;
2991            }, this._dialog);
2992        }, this._dialog),
2993        this._element.focus());
2994    }
2995    _adjustDialog() {
2996      const t =
2997          this._element.scrollHeight > document.documentElement.clientHeight,
2998        e = this._scrollBar.getWidth(),
2999        i = e > 0;
3000      if (i && !t) {
3001        const t = p() ? "paddingLeft" : "paddingRight";
3002        this._element.style[t] = `${e}px`;
3003      }
3004      if (!i && t) {
3005        const t = p() ? "paddingRight" : "paddingLeft";
3006        this._element.style[t] = `${e}px`;
3007      }
3008    }
3009    _resetAdjustments() {
3010      (this._element.style.paddingLeft = ""),
3011        (this._element.style.paddingRight = "");
3012    }
3013    static jQueryInterface(t, e) {
3014      return this.each(function () {
3015        const i = On.getOrCreateInstance(this, t);
3016        if ("string" == typeof t) {
3017          if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`);
3018          i[t](e);
3019        }
3020      });
3021    }
3022  }
3023  N.on(document, yn, '[data-bs-toggle="modal"]', function (t) {
3024    const e = z.getElementFromSelector(this);
3025    ["A", "AREA"].includes(this.tagName) && t.preventDefault(),
3026      N.one(e, pn, (t) => {
3027        t.defaultPrevented ||
3028          N.one(e, fn, () => {
3029            a(this) && this.focus();
3030          });
3031      });
3032    const i = z.findOne(".modal.show");
3033    i && On.getInstance(i).hide(), On.getOrCreateInstance(e).toggle(this);
3034  }),
3035    R(On),
3036    m(On);
3037  const xn = ".bs.offcanvas",
3038    kn = ".data-api",
3039    Ln = `load${xn}${kn}`,
3040    Sn = "show",
3041    Dn = "showing",
3042    $n = "hiding",
3043    In = ".offcanvas.show",
3044    Nn = `show${xn}`,
3045    Pn = `shown${xn}`,
3046    Mn = `hide${xn}`,
3047    jn = `hidePrevented${xn}`,
3048    Fn = `hidden${xn}`,
3049    Hn = `resize${xn}`,
3050    Wn = `click${xn}${kn}`,
3051    Bn = `keydown.dismiss${xn}`,
3052    zn = { backdrop: !0, keyboard: !0, scroll: !1 },
3053    Rn = {
3054      backdrop: "(boolean|string)",
3055      keyboard: "boolean",
3056      scroll: "boolean",
3057    };
3058  class qn extends W {
3059    constructor(t, e) {
3060      super(t, e),
3061        (this._isShown = !1),
3062        (this._backdrop = this._initializeBackDrop()),
3063        (this._focustrap = this._initializeFocusTrap()),
3064        this._addEventListeners();
3065    }
3066    static get Default() {
3067      return zn;
3068    }
3069    static get DefaultType() {
3070      return Rn;
3071    }
3072    static get NAME() {
3073      return "offcanvas";
3074    }
3075    toggle(t) {
3076      return this._isShown ? this.hide() : this.show(t);
3077    }
3078    show(t) {
3079      this._isShown ||
3080        N.trigger(this._element, Nn, { relatedTarget: t }).defaultPrevented ||
3081        ((this._isShown = !0),
3082        this._backdrop.show(),
3083        this._config.scroll || new cn().hide(),
3084        this._element.setAttribute("aria-modal", !0),
3085        this._element.setAttribute("role", "dialog"),
3086        this._element.classList.add(Dn),
3087        this._queueCallback(
3088          () => {
3089            (this._config.scroll && !this._config.backdrop) ||
3090              this._focustrap.activate(),
3091              this._element.classList.add(Sn),
3092              this._element.classList.remove(Dn),
3093              N.trigger(this._element, Pn, { relatedTarget: t });
3094          },
3095          this._element,
3096          !0
3097        ));
3098    }
3099    hide() {
3100      this._isShown &&
3101        (N.trigger(this._element, Mn).defaultPrevented ||
3102          (this._focustrap.deactivate(),
3103          this._element.blur(),
3104          (this._isShown = !1),
3105          this._element.classList.add($n),
3106          this._backdrop.hide(),
3107          this._queueCallback(
3108            () => {
3109              this._element.classList.remove(Sn, $n),
3110                this._element.removeAttribute("aria-modal"),
3111                this._element.removeAttribute("role"),
3112                this._config.scroll || new cn().reset(),
3113                N.trigger(this._element, Fn);
3114            },
3115            this._element,
3116            !0
3117          )));
3118    }
3119    dispose() {
3120      this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();
3121    }
3122    _initializeBackDrop() {
3123      const t = Boolean(this._config.backdrop);
3124      return new Ui({
3125        className: "offcanvas-backdrop",
3126        isVisible: t,
3127        isAnimated: !0,
3128        rootElement: this._element.parentNode,
3129        clickCallback: t
3130          ? () => {
3131              "static" !== this._config.backdrop
3132                ? this.hide()
3133                : N.trigger(this._element, jn);
3134            }
3135          : null,
3136      });
3137    }
3138    _initializeFocusTrap() {
3139      return new sn({ trapElement: this._element });
3140    }
3141    _addEventListeners() {
3142      N.on(this._element, Bn, (t) => {
3143        "Escape" === t.key &&
3144          (this._config.keyboard ? this.hide() : N.trigger(this._element, jn));
3145      });
3146    }
3147    static jQueryInterface(t) {
3148      return this.each(function () {
3149        const e = qn.getOrCreateInstance(this, t);
3150        if ("string" == typeof t) {
3151          if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
3152            throw new TypeError(`No method named "${t}"`);
3153          e[t](this);
3154        }
3155      });
3156    }
3157  }
3158  N.on(document, Wn, '[data-bs-toggle="offcanvas"]', function (t) {
3159    const e = z.getElementFromSelector(this);
3160    if ((["A", "AREA"].includes(this.tagName) && t.preventDefault(), l(this)))
3161      return;
3162    N.one(e, Fn, () => {
3163      a(this) && this.focus();
3164    });
3165    const i = z.findOne(In);
3166    i && i !== e && qn.getInstance(i).hide(),
3167      qn.getOrCreateInstance(e).toggle(this);
3168  }),
3169    N.on(window, Ln, () => {
3170      for (const t of z.find(In)) qn.getOrCreateInstance(t).show();
3171    }),
3172    N.on(window, Hn, () => {
3173      for (const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))
3174        "fixed" !== getComputedStyle(t).position &&
3175          qn.getOrCreateInstance(t).hide();
3176    }),
3177    R(qn),
3178    m(qn);
3179  const Vn = {
3180      "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
3181      a: ["target", "href", "title", "rel"],
3182      area: [],
3183      b: [],
3184      br: [],
3185      col: [],
3186      code: [],
3187      div: [],
3188      em: [],
3189      hr: [],
3190      h1: [],
3191      h2: [],
3192      h3: [],
3193      h4: [],
3194      h5: [],
3195      h6: [],
3196      i: [],
3197      img: ["src", "srcset", "alt", "title", "width", "height"],
3198      li: [],
3199      ol: [],
3200      p: [],
3201      pre: [],
3202      s: [],
3203      small: [],
3204      span: [],
3205      sub: [],
3206      sup: [],
3207      strong: [],
3208      u: [],
3209      ul: [],
3210    },
3211    Kn = new Set([
3212      "background",
3213      "cite",
3214      "href",
3215      "itemtype",
3216      "longdesc",
3217      "poster",
3218      "src",
3219      "xlink:href",
3220    ]),
3221    Qn = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,
3222    Xn = (t, e) => {
3223      const i = t.nodeName.toLowerCase();
3224      return e.includes(i)
3225        ? !Kn.has(i) || Boolean(Qn.test(t.nodeValue))
3226        : e.filter((t) => t instanceof RegExp).some((t) => t.test(i));
3227    },
3228    Yn = {
3229      allowList: Vn,
3230      content: {},
3231      extraClass: "",
3232      html: !1,
3233      sanitize: !0,
3234      sanitizeFn: null,
3235      template: "<div></div>",
3236    },
3237    Un = {
3238      allowList: "object",
3239      content: "object",
3240      extraClass: "(string|function)",
3241      html: "boolean",
3242      sanitize: "boolean",
3243      sanitizeFn: "(null|function)",
3244      template: "string",
3245    },
3246    Gn = {
3247      entry: "(string|element|function|null)",
3248      selector: "(string|element)",
3249    };
3250  class Jn extends H {
3251    constructor(t) {
3252      super(), (this._config = this._getConfig(t));
3253    }
3254    static get Default() {
3255      return Yn;
3256    }
3257    static get DefaultType() {
3258      return Un;
3259    }
3260    static get NAME() {
3261      return "TemplateFactory";
3262    }
3263    getContent() {
3264      return Object.values(this._config.content)
3265        .map((t) => this._resolvePossibleFunction(t))
3266        .filter(Boolean);
3267    }
3268    hasContent() {
3269      return this.getContent().length > 0;
3270    }
3271    changeContent(t) {
3272      return (
3273        this._checkContent(t),
3274        (this._config.content = { ...this._config.content, ...t }),
3275        this
3276      );
3277    }
3278    toHtml() {
3279      const t = document.createElement("div");
3280      t.innerHTML = this._maybeSanitize(this._config.template);
3281      for (const [e, i] of Object.entries(this._config.content))
3282        this._setContent(t, i, e);
3283      const e = t.children[0],
3284        i = this._resolvePossibleFunction(this._config.extraClass);
3285      return i && e.classList.add(...i.split(" ")), e;
3286    }
3287    _typeCheckConfig(t) {
3288      super._typeCheckConfig(t), this._checkContent(t.content);
3289    }
3290    _checkContent(t) {
3291      for (const [e, i] of Object.entries(t))
3292        super._typeCheckConfig({ selector: e, entry: i }, Gn);
3293    }
3294    _setContent(t, e, i) {
3295      const n = z.findOne(i, t);
3296      n &&
3297        ((e = this._resolvePossibleFunction(e))
3298          ? o(e)
3299            ? this._putElementInTemplate(r(e), n)
3300            : this._config.html
3301            ? (n.innerHTML = this._maybeSanitize(e))
3302            : (n.textContent = e)
3303          : n.remove());
3304    }
3305    _maybeSanitize(t) {
3306      return this._config.sanitize
3307        ? (function (t, e, i) {
3308            if (!t.length) return t;
3309            if (i && "function" == typeof i) return i(t);
3310            const n = new window.DOMParser().parseFromString(t, "text/html"),
3311              s = [].concat(...n.body.querySelectorAll("*"));
3312            for (const t of s) {
3313              const i = t.nodeName.toLowerCase();
3314              if (!Object.keys(e).includes(i)) {
3315                t.remove();
3316                continue;
3317              }
3318              const n = [].concat(...t.attributes),
3319                s = [].concat(e["*"] || [], e[i] || []);
3320              for (const e of n) Xn(e, s) || t.removeAttribute(e.nodeName);
3321            }
3322            return n.body.innerHTML;
3323          })(t, this._config.allowList, this._config.sanitizeFn)
3324        : t;
3325    }
3326    _resolvePossibleFunction(t) {
3327      return g(t, [this]);
3328    }
3329    _putElementInTemplate(t, e) {
3330      if (this._config.html) return (e.innerHTML = ""), void e.append(t);
3331      e.textContent = t.textContent;
3332    }
3333  }
3334  const Zn = new Set(["sanitize", "allowList", "sanitizeFn"]),
3335    ts = "fade",
3336    es = "show",
3337    is = ".modal",
3338    ns = "hide.bs.modal",
3339    ss = "hover",
3340    os = "focus",
3341    rs = {
3342      AUTO: "auto",
3343      TOP: "top",
3344      RIGHT: p() ? "left" : "right",
3345      BOTTOM: "bottom",
3346      LEFT: p() ? "right" : "left",
3347    },
3348    as = {
3349      allowList: Vn,
3350      animation: !0,
3351      boundary: "clippingParents",
3352      container: !1,
3353      customClass: "",
3354      delay: 0,
3355      fallbackPlacements: ["top", "right", "bottom", "left"],
3356      html: !1,
3357      offset: [0, 6],
3358      placement: "top",
3359      popperConfig: null,
3360      sanitize: !0,
3361      sanitizeFn: null,
3362      selector: !1,
3363      template:
3364        '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
3365      title: "",
3366      trigger: "hover focus",
3367    },
3368    ls = {
3369      allowList: "object",
3370      animation: "boolean",
3371      boundary: "(string|element)",
3372      container: "(string|element|boolean)",
3373      customClass: "(string|function)",
3374      delay: "(number|object)",
3375      fallbackPlacements: "array",
3376      html: "boolean",
3377      offset: "(array|string|function)",
3378      placement: "(string|function)",
3379      popperConfig: "(null|object|function)",
3380      sanitize: "boolean",
3381      sanitizeFn: "(null|function)",
3382      selector: "(string|boolean)",
3383      template: "string",
3384      title: "(string|element|function)",
3385      trigger: "string",
3386    };
3387  class cs extends W {
3388    constructor(t, e) {
3389      if (void 0 === vi)
3390        throw new TypeError(
3391          "Bootstrap's tooltips require Popper (https://popper.js.org)"
3392        );
3393      super(t, e),
3394        (this._isEnabled = !0),
3395        (this._timeout = 0),
3396        (this._isHovered = null),
3397        (this._activeTrigger = {}),
3398        (this._popper = null),
3399        (this._templateFactory = null),
3400        (this._newContent = null),
3401        (this.tip = null),
3402        this._setListeners(),
3403        this._config.selector || this._fixTitle();
3404    }
3405    static get Default() {
3406      return as;
3407    }
3408    static get DefaultType() {
3409      return ls;
3410    }
3411    static get NAME() {
3412      return "tooltip";
3413    }
3414    enable() {
3415      this._isEnabled = !0;
3416    }
3417    disable() {
3418      this._isEnabled = !1;
3419    }
3420    toggleEnabled() {
3421      this._isEnabled = !this._isEnabled;
3422    }
3423    toggle() {
3424      this._isEnabled &&
3425        ((this._activeTrigger.click = !this._activeTrigger.click),
3426        this._isShown() ? this._leave() : this._enter());
3427    }
3428    dispose() {
3429      clearTimeout(this._timeout),
3430        N.off(this._element.closest(is), ns, this._hideModalHandler),
3431        this._element.getAttribute("data-bs-original-title") &&
3432          this._element.setAttribute(
3433            "title",
3434            this._element.getAttribute("data-bs-original-title")
3435          ),
3436        this._disposePopper(),
3437        super.dispose();
3438    }
3439    show() {
3440      if ("none" === this._element.style.display)
3441        throw new Error("Please use show on visible elements");
3442      if (!this._isWithContent() || !this._isEnabled) return;
3443      const t = N.trigger(this._element, this.constructor.eventName("show")),
3444        e = (
3445          c(this._element) || this._element.ownerDocument.documentElement
3446        ).contains(this._element);
3447      if (t.defaultPrevented || !e) return;
3448      this._disposePopper();
3449      const i = this._getTipElement();
3450      this._element.setAttribute("aria-describedby", i.getAttribute("id"));
3451      const { container: n } = this._config;
3452      if (
3453        (this._element.ownerDocument.documentElement.contains(this.tip) ||
3454          (n.append(i),
3455          N.trigger(this._element, this.constructor.eventName("inserted"))),
3456        (this._popper = this._createPopper(i)),
3457        i.classList.add(es),
3458        "ontouchstart" in document.documentElement)
3459      )
3460        for (const t of [].concat(...document.body.children))
3461          N.on(t, "mouseover", h);
3462      this._queueCallback(
3463        () => {
3464          N.trigger(this._element, this.constructor.eventName("shown")),
3465            !1 === this._isHovered && this._leave(),
3466            (this._isHovered = !1);
3467        },
3468        this.tip,
3469        this._isAnimated()
3470      );
3471    }
3472    hide() {
3473      if (
3474        this._isShown() &&
3475        !N.trigger(this._element, this.constructor.eventName("hide"))
3476          .defaultPrevented
3477      ) {
3478        if (
3479          (this._getTipElement().classList.remove(es),
3480          "ontouchstart" in document.documentElement)
3481        )
3482          for (const t of [].concat(...document.body.children))
3483            N.off(t, "mouseover", h);
3484        (this._activeTrigger.click = !1),
3485          (this._activeTrigger[os] = !1),
3486          (this._activeTrigger[ss] = !1),
3487          (this._isHovered = null),
3488          this._queueCallback(
3489            () => {
3490              this._isWithActiveTrigger() ||
3491                (this._isHovered || this._disposePopper(),
3492                this._element.removeAttribute("aria-describedby"),
3493                N.trigger(this._element, this.constructor.eventName("hidden")));
3494            },
3495            this.tip,
3496            this._isAnimated()
3497          );
3498      }
3499    }
3500    update() {
3501      this._popper && this._popper.update();
3502    }
3503    _isWithContent() {
3504      return Boolean(this._getTitle());
3505    }
3506    _getTipElement() {
3507      return (
3508        this.tip ||
3509          (this.tip = this._createTipElement(
3510            this._newContent || this._getContentForTemplate()
3511          )),
3512        this.tip
3513      );
3514    }
3515    _createTipElement(t) {
3516      const e = this._getTemplateFactory(t).toHtml();
3517      if (!e) return null;
3518      e.classList.remove(ts, es),
3519        e.classList.add(`bs-${this.constructor.NAME}-auto`);
3520      const i = ((t) => {
3521        do {
3522          t += Math.floor(1e6 * Math.random());
3523        } while (document.getElementById(t));
3524        return t;
3525      })(this.constructor.NAME).toString();
3526      return (
3527        e.setAttribute("id", i), this._isAnimated() && e.classList.add(ts), e
3528      );
3529    }
3530    setContent(t) {
3531      (this._newContent = t),
3532        this._isShown() && (this._disposePopper(), this.show());
3533    }
3534    _getTemplateFactory(t) {
3535      return (
3536        this._templateFactory
3537          ? this._templateFactory.changeContent(t)
3538          : (this._templateFactory = new Jn({
3539              ...this._config,
3540              content: t,
3541              extraClass: this._resolvePossibleFunction(
3542                this._config.customClass
3543              ),
3544            })),
3545        this._templateFactory
3546      );
3547    }
3548    _getContentForTemplate() {
3549      return { ".tooltip-inner": this._getTitle() };
3550    }
3551    _getTitle() {
3552      return (
3553        this._resolvePossibleFunction(this._config.title) ||
3554        this._element.getAttribute("data-bs-original-title")
3555      );
3556    }
3557    _initializeOnDelegatedTarget(t) {
3558      return this.constructor.getOrCreateInstance(
3559        t.delegateTarget,
3560        this._getDelegateConfig()
3561      );
3562    }
3563    _isAnimated() {
3564      return (
3565        this._config.animation || (this.tip && this.tip.classList.contains(ts))
3566      );
3567    }
3568    _isShown() {
3569      return this.tip && this.tip.classList.contains(es);
3570    }
3571    _createPopper(t) {
3572      const e = g(this._config.placement, [this, t, this._element]),
3573        i = rs[e.toUpperCase()];
3574      return bi(this._element, t, this._getPopperConfig(i));
3575    }
3576    _getOffset() {
3577      const { offset: t } = this._config;
3578      return "string" == typeof t
3579        ? t.split(",").map((t) => Number.parseInt(t, 10))
3580        : "function" == typeof t
3581        ? (e) => t(e, this._element)
3582        : t;
3583    }
3584    _resolvePossibleFunction(t) {
3585      return g(t, [this._element]);
3586    }
3587    _getPopperConfig(t) {
3588      const e = {
3589        placement: t,
3590        modifiers: [
3591          {
3592            name: "flip",
3593            options: { fallbackPlacements: this._config.fallbackPlacements },
3594          },
3595          { name: "offset", options: { offset: this._getOffset() } },
3596          {
3597            name: "preventOverflow",
3598            options: { boundary: this._config.boundary },
3599          },
3600          {
3601            name: "arrow",
3602            options: { element: `.${this.constructor.NAME}-arrow` },
3603          },
3604          {
3605            name: "preSetPlacement",
3606            enabled: !0,
3607            phase: "beforeMain",
3608            fn: (t) => {
3609              this._getTipElement().setAttribute(
3610                "data-popper-placement",
3611                t.state.placement
3612              );
3613            },
3614          },
3615        ],
3616      };
3617      return { ...e, ...g(this._config.popperConfig, [e]) };
3618    }
3619    _setListeners() {
3620      const t = this._config.trigger.split(" ");
3621      for (const e of t)
3622        if ("click" === e)
3623          N.on(
3624            this._element,
3625            this.constructor.eventName("click"),
3626            this._config.selector,
3627            (t) => {
3628              this._initializeOnDelegatedTarget(t).toggle();
3629            }
3630          );
3631        else if ("manual" !== e) {
3632          const t =
3633              e === ss
3634                ? this.constructor.eventName("mouseenter")
3635                : this.constructor.eventName("focusin"),
3636            i =
3637              e === ss
3638                ? this.constructor.eventName("mouseleave")
3639                : this.constructor.eventName("focusout");
3640          N.on(this._element, t, this._config.selector, (t) => {
3641            const e = this._initializeOnDelegatedTarget(t);
3642            (e._activeTrigger["focusin" === t.type ? os : ss] = !0), e._enter();
3643          }),
3644            N.on(this._element, i, this._config.selector, (t) => {
3645              const e = this._initializeOnDelegatedTarget(t);
3646              (e._activeTrigger["focusout" === t.type ? os : ss] =
3647                e._element.contains(t.relatedTarget)),
3648                e._leave();
3649            });
3650        }
3651      (this._hideModalHandler = () => {
3652        this._element && this.hide();
3653      }),
3654        N.on(this._element.closest(is), ns, this._hideModalHandler);
3655    }
3656    _fixTitle() {
3657      const t = this._element.getAttribute("title");
3658      t &&
3659        (this._element.getAttribute("aria-label") ||
3660          this._element.textContent.trim() ||
3661          this._element.setAttribute("aria-label", t),
3662        this._element.setAttribute("data-bs-original-title", t),
3663        this._element.removeAttribute("title"));
3664    }
3665    _enter() {
3666      this._isShown() || this._isHovered
3667        ? (this._isHovered = !0)
3668        : ((this._isHovered = !0),
3669          this._setTimeout(() => {
3670            this._isHovered && this.show();
3671          }, this._config.delay.show));
3672    }
3673    _leave() {
3674      this._isWithActiveTrigger() ||
3675        ((this._isHovered = !1),
3676        this._setTimeout(() => {
3677          this._isHovered || this.hide();
3678        }, this._config.delay.hide));
3679    }
3680    _setTimeout(t, e) {
3681      clearTimeout(this._timeout), (this._timeout = setTimeout(t, e));
3682    }
3683    _isWithActiveTrigger() {
3684      return Object.values(this._activeTrigger).includes(!0);
3685    }
3686    _getConfig(t) {
3687      const e = F.getDataAttributes(this._element);
3688      for (const t of Object.keys(e)) Zn.has(t) && delete e[t];
3689      return (
3690        (t = { ...e, ...("object" == typeof t && t ? t : {}) }),
3691        (t = this._mergeConfigObj(t)),
3692        (t = this._configAfterMerge(t)),
3693        this._typeCheckConfig(t),
3694        t
3695      );
3696    }
3697    _configAfterMerge(t) {
3698      return (
3699        (t.container = !1 === t.container ? document.body : r(t.container)),
3700        "number" == typeof t.delay &&
3701          (t.delay = { show: t.delay, hide: t.delay }),
3702        "number" == typeof t.title && (t.title = t.title.toString()),
3703        "number" == typeof t.content && (t.content = t.content.toString()),
3704        t
3705      );
3706    }
3707    _getDelegateConfig() {
3708      const t = {};
3709      for (const [e, i] of Object.entries(this._config))
3710        this.constructor.Default[e] !== i && (t[e] = i);
3711      return (t.selector = !1), (t.trigger = "manual"), t;
3712    }
3713    _disposePopper() {
3714      this._popper && (this._popper.destroy(), (this._popper = null)),
3715        this.tip && (this.tip.remove(), (this.tip = null));
3716    }
3717    static jQueryInterface(t) {
3718      return this.each(function () {
3719        const e = cs.getOrCreateInstance(this, t);
3720        if ("string" == typeof t) {
3721          if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
3722          e[t]();
3723        }
3724      });
3725    }
3726  }
3727  m(cs);
3728  const hs = {
3729      ...cs.Default,
3730      content: "",
3731      offset: [0, 8],
3732      placement: "right",
3733      template:
3734        '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
3735      trigger: "click",
3736    },
3737    ds = { ...cs.DefaultType, content: "(null|string|element|function)" };
3738  class us extends cs {
3739    static get Default() {
3740      return hs;
3741    }
3742    static get DefaultType() {
3743      return ds;
3744    }
3745    static get NAME() {
3746      return "popover";
3747    }
3748    _isWithContent() {
3749      return this._getTitle() || this._getContent();
3750    }
3751    _getContentForTemplate() {
3752      return {
3753        ".popover-header": this._getTitle(),
3754        ".popover-body": this._getContent(),
3755      };
3756    }
3757    _getContent() {
3758      return this._resolvePossibleFunction(this._config.content);
3759    }
3760    static jQueryInterface(t) {
3761      return this.each(function () {
3762        const e = us.getOrCreateInstance(this, t);
3763        if ("string" == typeof t) {
3764          if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
3765          e[t]();
3766        }
3767      });
3768    }
3769  }
3770  m(us);
3771  const fs = ".bs.scrollspy",
3772    ps = `activate${fs}`,
3773    ms = `click${fs}`,
3774    gs = `load${fs}.data-api`,
3775    _s = "active",
3776    bs = "[href]",
3777    vs = ".nav-link",
3778    ys = `${vs}, .nav-item > ${vs}, .list-group-item`,
3779    ws = {
3780      offset: null,
3781      rootMargin: "0px 0px -25%",
3782      smoothScroll: !1,
3783      target: null,
3784      threshold: [0.1, 0.5, 1],
3785    },
3786    As = {
3787      offset: "(number|null)",
3788      rootMargin: "string",
3789      smoothScroll: "boolean",
3790      target: "element",
3791      threshold: "array",
3792    };
3793  class Es extends W {
3794    constructor(t, e) {
3795      super(t, e),
3796        (this._targetLinks = new Map()),
3797        (this._observableSections = new Map()),
3798        (this._rootElement =
3799          "visible" === getComputedStyle(this._element).overflowY
3800            ? null
3801            : this._element),
3802        (this._activeTarget = null),
3803        (this._observer = null),
3804        (this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }),
3805        this.refresh();
3806    }
3807    static get Default() {
3808      return ws;
3809    }
3810    static get DefaultType() {
3811      return As;
3812    }
3813    static get NAME() {
3814      return "scrollspy";
3815    }
3816    refresh() {
3817      this._initializeTargetsAndObservables(),
3818        this._maybeEnableSmoothScroll(),
3819        this._observer
3820          ? this._observer.disconnect()
3821          : (this._observer = this._getNewObserver());
3822      for (const t of this._observableSections.values())
3823        this._observer.observe(t);
3824    }
3825    dispose() {
3826      this._observer.disconnect(), super.dispose();
3827    }
3828    _configAfterMerge(t) {
3829      return (
3830        (t.target = r(t.target) || document.body),
3831        (t.rootMargin = t.offset ? `${t.offset}px 0px -30%` : t.rootMargin),
3832        "string" == typeof t.threshold &&
3833          (t.threshold = t.threshold
3834            .split(",")
3835            .map((t) => Number.parseFloat(t))),
3836        t
3837      );
3838    }
3839    _maybeEnableSmoothScroll() {
3840      this._config.smoothScroll &&
3841        (N.off(this._config.target, ms),
3842        N.on(this._config.target, ms, bs, (t) => {
3843          const e = this._observableSections.get(t.target.hash);
3844          if (e) {
3845            t.preventDefault();
3846            const i = this._rootElement || window,
3847              n = e.offsetTop - this._element.offsetTop;
3848            if (i.scrollTo)
3849              return void i.scrollTo({ top: n, behavior: "smooth" });
3850            i.scrollTop = n;
3851          }
3852        }));
3853    }
3854    _getNewObserver() {
3855      const t = {
3856        root: this._rootElement,
3857        threshold: this._config.threshold,
3858        rootMargin: this._config.rootMargin,
3859      };
3860      return new IntersectionObserver((t) => this._observerCallback(t), t);
3861    }
3862    _observerCallback(t) {
3863      const e = (t) => this._targetLinks.get(`#${t.target.id}`),
3864        i = (t) => {
3865          (this._previousScrollData.visibleEntryTop = t.target.offsetTop),
3866            this._process(e(t));
3867        },
3868        n = (this._rootElement || document.documentElement).scrollTop,
3869        s = n >= this._previousScrollData.parentScrollTop;
3870      this._previousScrollData.parentScrollTop = n;
3871      for (const o of t) {
3872        if (!o.isIntersecting) {
3873          (this._activeTarget = null), this._clearActiveClass(e(o));
3874          continue;
3875        }
3876        const t =
3877          o.target.offsetTop >= this._previousScrollData.visibleEntryTop;
3878        if (s && t) {
3879          if ((i(o), !n)) return;
3880        } else s || t || i(o);
3881      }
3882    }
3883    _initializeTargetsAndObservables() {
3884      (this._targetLinks = new Map()), (this._observableSections = new Map());
3885      const t = z.find(bs, this._config.target);
3886      for (const e of t) {
3887        if (!e.hash || l(e)) continue;
3888        const t = z.findOne(decodeURI(e.hash), this._element);
3889        a(t) &&
3890          (this._targetLinks.set(decodeURI(e.hash), e),
3891          this._observableSections.set(e.hash, t));
3892      }
3893    }
3894    _process(t) {
3895      this._activeTarget !== t &&
3896        (this._clearActiveClass(this._config.target),
3897        (this._activeTarget = t),
3898        t.classList.add(_s),
3899        this._activateParents(t),
3900        N.trigger(this._element, ps, { relatedTarget: t }));
3901    }
3902    _activateParents(t) {
3903      if (t.classList.contains("dropdown-item"))
3904        z.findOne(".dropdown-toggle", t.closest(".dropdown")).classList.add(_s);
3905      else
3906        for (const e of z.parents(t, ".nav, .list-group"))
3907          for (const t of z.prev(e, ys)) t.classList.add(_s);
3908    }
3909    _clearActiveClass(t) {
3910      t.classList.remove(_s);
3911      const e = z.find(`${bs}.${_s}`, t);
3912      for (const t of e) t.classList.remove(_s);
3913    }
3914    static jQueryInterface(t) {
3915      return this.each(function () {
3916        const e = Es.getOrCreateInstance(this, t);
3917        if ("string" == typeof t) {
3918          if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
3919            throw new TypeError(`No method named "${t}"`);
3920          e[t]();
3921        }
3922      });
3923    }
3924  }
3925  N.on(window, gs, () => {
3926    for (const t of z.find('[data-bs-spy="scroll"]')) Es.getOrCreateInstance(t);
3927  }),
3928    m(Es);
3929  const Ts = ".bs.tab",
3930    Cs = `hide${Ts}`,
3931    Os = `hidden${Ts}`,
3932    xs = `show${Ts}`,
3933    ks = `shown${Ts}`,
3934    Ls = `click${Ts}`,
3935    Ss = `keydown${Ts}`,
3936    Ds = `load${Ts}`,
3937    $s = "ArrowLeft",
3938    Is = "ArrowRight",
3939    Ns = "ArrowUp",
3940    Ps = "ArrowDown",
3941    Ms = "Home",
3942    js = "End",
3943    Fs = "active",
3944    Hs = "fade",
3945    Ws = "show",
3946    Bs = ".dropdown-toggle",
3947    zs = `:not(${Bs})`,
3948    Rs =
3949      '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',
3950    qs = `.nav-link${zs}, .list-group-item${zs}, [role="tab"]${zs}, ${Rs}`,
3951    Vs = `.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;
3952  class Ks extends W {
3953    constructor(t) {
3954      super(t),
3955        (this._parent = this._element.closest(
3956          '.list-group, .nav, [role="tablist"]'
3957        )),
3958        this._parent &&
3959          (this._setInitialAttributes(this._parent, this._getChildren()),
3960          N.on(this._element, Ss, (t) => this._keydown(t)));
3961    }
3962    static get NAME() {
3963      return "tab";
3964    }
3965    show() {
3966      const t = this._element;
3967      if (this._elemIsActive(t)) return;
3968      const e = this._getActiveElem(),
3969        i = e ? N.trigger(e, Cs, { relatedTarget: t }) : null;
3970      N.trigger(t, xs, { relatedTarget: e }).defaultPrevented ||
3971        (i && i.defaultPrevented) ||
3972        (this._deactivate(e, t), this._activate(t, e));
3973    }
3974    _activate(t, e) {
3975      t &&
3976        (t.classList.add(Fs),
3977        this._activate(z.getElementFromSelector(t)),
3978        this._queueCallback(
3979          () => {
3980            "tab" === t.getAttribute("role")
3981              ? (t.removeAttribute("tabindex"),
3982                t.setAttribute("aria-selected", !0),
3983                this._toggleDropDown(t, !0),
3984                N.trigger(t, ks, { relatedTarget: e }))
3985              : t.classList.add(Ws);
3986          },
3987          t,
3988          t.classList.contains(Hs)
3989        ));
3990    }
3991    _deactivate(t, e) {
3992      t &&
3993        (t.classList.remove(Fs),
3994        t.blur(),
3995        this._deactivate(z.getElementFromSelector(t)),
3996        this._queueCallback(
3997          () => {
3998            "tab" === t.getAttribute("role")
3999              ? (t.setAttribute("aria-selected", !1),
4000                t.setAttribute("tabindex", "-1"),
4001                this._toggleDropDown(t, !1),
4002                N.trigger(t, Os, { relatedTarget: e }))
4003              : t.classList.remove(Ws);
4004          },
4005          t,
4006          t.classList.contains(Hs)
4007        ));
4008    }
4009    _keydown(t) {
4010      if (![$s, Is, Ns, Ps, Ms, js].includes(t.key)) return;
4011      t.stopPropagation(), t.preventDefault();
4012      const e = this._getChildren().filter((t) => !l(t));
4013      let i;
4014      if ([Ms, js].includes(t.key)) i = e[t.key === Ms ? 0 : e.length - 1];
4015      else {
4016        const n = [Is, Ps].includes(t.key);
4017        i = b(e, t.target, n, !0);
4018      }
4019      i && (i.focus({ preventScroll: !0 }), Ks.getOrCreateInstance(i).show());
4020    }
4021    _getChildren() {
4022      return z.find(qs, this._parent);
4023    }
4024    _getActiveElem() {
4025      return this._getChildren().find((t) => this._elemIsActive(t)) || null;
4026    }
4027    _setInitialAttributes(t, e) {
4028      this._setAttributeIfNotExists(t, "role", "tablist");
4029      for (const t of e) this._setInitialAttributesOnChild(t);
4030    }
4031    _setInitialAttributesOnChild(t) {
4032      t = this._getInnerElement(t);
4033      const e = this._elemIsActive(t),
4034        i = this._getOuterElement(t);
4035      t.setAttribute("aria-selected", e),
4036        i !== t && this._setAttributeIfNotExists(i, "role", "presentation"),
4037        e || t.setAttribute("tabindex", "-1"),
4038        this._setAttributeIfNotExists(t, "role", "tab"),
4039        this._setInitialAttributesOnTargetPanel(t);
4040    }
4041    _setInitialAttributesOnTargetPanel(t) {
4042      const e = z.getElementFromSelector(t);
4043      e &&
4044        (this._setAttributeIfNotExists(e, "role", "tabpanel"),
4045        t.id && this._setAttributeIfNotExists(e, "aria-labelledby", `${t.id}`));
4046    }
4047    _toggleDropDown(t, e) {
4048      const i = this._getOuterElement(t);
4049      if (!i.classList.contains("dropdown")) return;
4050      const n = (t, n) => {
4051        const s = z.findOne(t, i);
4052        s && s.classList.toggle(n, e);
4053      };
4054      n(Bs, Fs), n(".dropdown-menu", Ws), i.setAttribute("aria-expanded", e);
4055    }
4056    _setAttributeIfNotExists(t, e, i) {
4057      t.hasAttribute(e) || t.setAttribute(e, i);
4058    }
4059    _elemIsActive(t) {
4060      return t.classList.contains(Fs);
4061    }
4062    _getInnerElement(t) {
4063      return t.matches(qs) ? t : z.findOne(qs, t);
4064    }
4065    _getOuterElement(t) {
4066      return t.closest(".nav-item, .list-group-item") || t;
4067    }
4068    static jQueryInterface(t) {
4069      return this.each(function () {
4070        const e = Ks.getOrCreateInstance(this);
4071        if ("string" == typeof t) {
4072          if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
4073            throw new TypeError(`No method named "${t}"`);
4074          e[t]();
4075        }
4076      });
4077    }
4078  }
4079  N.on(document, Ls, Rs, function (t) {
4080    ["A", "AREA"].includes(this.tagName) && t.preventDefault(),
4081      l(this) || Ks.getOrCreateInstance(this).show();
4082  }),
4083    N.on(window, Ds, () => {
4084      for (const t of z.find(Vs)) Ks.getOrCreateInstance(t);
4085    }),
4086    m(Ks);
4087  const Qs = ".bs.toast",
4088    Xs = `mouseover${Qs}`,
4089    Ys = `mouseout${Qs}`,
4090    Us = `focusin${Qs}`,
4091    Gs = `focusout${Qs}`,
4092    Js = `hide${Qs}`,
4093    Zs = `hidden${Qs}`,
4094    to = `show${Qs}`,
4095    eo = `shown${Qs}`,
4096    io = "hide",
4097    no = "show",
4098    so = "showing",
4099    oo = { animation: "boolean", autohide: "boolean", delay: "number" },
4100    ro = { animation: !0, autohide: !0, delay: 5e3 };
4101  class ao extends W {
4102    constructor(t, e) {
4103      super(t, e),
4104        (this._timeout = null),
4105        (this._hasMouseInteraction = !1),
4106        (this._hasKeyboardInteraction = !1),
4107        this._setListeners();
4108    }
4109    static get Default() {
4110      return ro;
4111    }
4112    static get DefaultType() {
4113      return oo;
4114    }
4115    static get NAME() {
4116      return "toast";
4117    }
4118    show() {
4119      N.trigger(this._element, to).defaultPrevented ||
4120        (this._clearTimeout(),
4121        this._config.animation && this._element.classList.add("fade"),
4122        this._element.classList.remove(io),
4123        d(this._element),
4124        this._element.classList.add(no, so),
4125        this._queueCallback(
4126          () => {
4127            this._element.classList.remove(so),
4128              N.trigger(this._element, eo),
4129              this._maybeScheduleHide();
4130          },
4131          this._element,
4132          this._config.animation
4133        ));
4134    }
4135    hide() {
4136      this.isShown() &&
4137        (N.trigger(this._element, Js).defaultPrevented ||
4138          (this._element.classList.add(so),
4139          this._queueCallback(
4140            () => {
4141              this._element.classList.add(io),
4142                this._element.classList.remove(so, no),
4143                N.trigger(this._element, Zs);
4144            },
4145            this._element,
4146            this._config.animation
4147          )));
4148    }
4149    dispose() {
4150      this._clearTimeout(),
4151        this.isShown() && this._element.classList.remove(no),
4152        super.dispose();
4153    }
4154    isShown() {
4155      return this._element.classList.contains(no);
4156    }
4157    _maybeScheduleHide() {
4158      this._config.autohide &&
4159        (this._hasMouseInteraction ||
4160          this._hasKeyboardInteraction ||
4161          (this._timeout = setTimeout(() => {
4162            this.hide();
4163          }, this._config.delay)));
4164    }
4165    _onInteraction(t, e) {
4166      switch (t.type) {
4167        case "mouseover":
4168        case "mouseout":
4169          this._hasMouseInteraction = e;
4170          break;
4171        case "focusin":
4172        case "focusout":
4173          this._hasKeyboardInteraction = e;
4174      }
4175      if (e) return void this._clearTimeout();
4176      const i = t.relatedTarget;
4177      this._element === i ||
4178        this._element.contains(i) ||
4179        this._maybeScheduleHide();
4180    }
4181    _setListeners() {
4182      N.on(this._element, Xs, (t) => this._onInteraction(t, !0)),
4183        N.on(this._element, Ys, (t) => this._onInteraction(t, !1)),
4184        N.on(this._element, Us, (t) => this._onInteraction(t, !0)),
4185        N.on(this._element, Gs, (t) => this._onInteraction(t, !1));
4186    }
4187    _clearTimeout() {
4188      clearTimeout(this._timeout), (this._timeout = null);
4189    }
4190    static jQueryInterface(t) {
4191      return this.each(function () {
4192        const e = ao.getOrCreateInstance(this, t);
4193        if ("string" == typeof t) {
4194          if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
4195          e[t](this);
4196        }
4197      });
4198    }
4199  }
4200  return (
4201    R(ao),
4202    m(ao),
4203    {
4204      Alert: Q,
4205      Button: Y,
4206      Carousel: xt,
4207      Collapse: Bt,
4208      Dropdown: qi,
4209      Modal: On,
4210      Offcanvas: qn,
4211      Popover: us,
4212      ScrollSpy: Es,
4213      Tab: Ks,
4214      Toast: ao,
4215      Tooltip: cs,
4216    }
4217  );
4218});
4219//# sourceMappingURL=bootstrap.bundle.min.js.map

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.