var QN = Object.defineProperty;
var e4 = (rv, tv, ev) => tv in rv ? QN(rv, tv, { enumerable: !0, configurable: !0, writable: !0, value: ev }) : rv[tv] = ev;
var T$ = (rv, tv, ev) => (e4(rv, typeof tv != "symbol" ? tv + "" : tv, ev), ev);
function _mergeNamespaces(rv, tv) {
  for (var ev = 0; ev < tv.length; ev++) {
    const iv = tv[ev];
    if (typeof iv != "string" && !Array.isArray(iv)) {
      for (const ov in iv)
        if (ov !== "default" && !(ov in rv)) {
          const av = Object.getOwnPropertyDescriptor(iv, ov);
          av && Object.defineProperty(rv, ov, av.get ? av : {
            enumerable: !0,
            get: () => iv[ov]
          });
        }
    }
  }
  return Object.freeze(Object.defineProperty(rv, Symbol.toStringTag, { value: "Module" }));
}
var commonjsGlobal = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function getDefaultExportFromCjs(rv) {
  return rv && rv.__esModule && Object.prototype.hasOwnProperty.call(rv, "default") ? rv.default : rv;
}
function getAugmentedNamespace(rv) {
  if (rv.__esModule)
    return rv;
  var tv = rv.default;
  if (typeof tv == "function") {
    var ev = function iv() {
      return this instanceof iv ? Reflect.construct(tv, arguments, this.constructor) : tv.apply(this, arguments);
    };
    ev.prototype = tv.prototype;
  } else
    ev = {};
  return Object.defineProperty(ev, "__esModule", { value: !0 }), Object.keys(rv).forEach(function(iv) {
    var ov = Object.getOwnPropertyDescriptor(rv, iv);
    Object.defineProperty(ev, iv, ov.get ? ov : {
      enumerable: !0,
      get: function() {
        return rv[iv];
      }
    });
  }), ev;
}
var react = { exports: {} }, react_production_min = {};
/**
 * @license React
 * react.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var l$4 = Symbol.for("react.element"), n$7 = Symbol.for("react.portal"), p$5 = Symbol.for("react.fragment"), q$2 = Symbol.for("react.strict_mode"), r$8 = Symbol.for("react.profiler"), t$5 = Symbol.for("react.provider"), u$3 = Symbol.for("react.context"), v$3 = Symbol.for("react.forward_ref"), w$1 = Symbol.for("react.suspense"), x$3 = Symbol.for("react.memo"), y$3 = Symbol.for("react.lazy"), z$4 = Symbol.iterator;
function A$3(rv) {
  return rv === null || typeof rv != "object" ? null : (rv = z$4 && rv[z$4] || rv["@@iterator"], typeof rv == "function" ? rv : null);
}
var B$3 = { isMounted: function() {
  return !1;
}, enqueueForceUpdate: function() {
}, enqueueReplaceState: function() {
}, enqueueSetState: function() {
} }, C$4 = Object.assign, D$4 = {};
function E$4(rv, tv, ev) {
  this.props = rv, this.context = tv, this.refs = D$4, this.updater = ev || B$3;
}
E$4.prototype.isReactComponent = {};
E$4.prototype.setState = function(rv, tv) {
  if (typeof rv != "object" && typeof rv != "function" && rv != null)
    throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");
  this.updater.enqueueSetState(this, rv, tv, "setState");
};
E$4.prototype.forceUpdate = function(rv) {
  this.updater.enqueueForceUpdate(this, rv, "forceUpdate");
};
function F$2() {
}
F$2.prototype = E$4.prototype;
function G$3(rv, tv, ev) {
  this.props = rv, this.context = tv, this.refs = D$4, this.updater = ev || B$3;
}
var H$4 = G$3.prototype = new F$2();
H$4.constructor = G$3;
C$4(H$4, E$4.prototype);
H$4.isPureReactComponent = !0;
var I$4 = Array.isArray, J$3 = Object.prototype.hasOwnProperty, K$4 = { current: null }, L$4 = { key: !0, ref: !0, __self: !0, __source: !0 };
function M$2(rv, tv, ev) {
  var iv, ov = {}, av = null, sv = null;
  if (tv != null)
    for (iv in tv.ref !== void 0 && (sv = tv.ref), tv.key !== void 0 && (av = "" + tv.key), tv)
      J$3.call(tv, iv) && !L$4.hasOwnProperty(iv) && (ov[iv] = tv[iv]);
  var lv = arguments.length - 2;
  if (lv === 1)
    ov.children = ev;
  else if (1 < lv) {
    for (var uv = Array(lv), cv = 0; cv < lv; cv++)
      uv[cv] = arguments[cv + 2];
    ov.children = uv;
  }
  if (rv && rv.defaultProps)
    for (iv in lv = rv.defaultProps, lv)
      ov[iv] === void 0 && (ov[iv] = lv[iv]);
  return { $$typeof: l$4, type: rv, key: av, ref: sv, props: ov, _owner: K$4.current };
}
function N$4(rv, tv) {
  return { $$typeof: l$4, type: rv.type, key: tv, ref: rv.ref, props: rv.props, _owner: rv._owner };
}
function O$2(rv) {
  return typeof rv == "object" && rv !== null && rv.$$typeof === l$4;
}
function escape$2(rv) {
  var tv = { "=": "=0", ":": "=2" };
  return "$" + rv.replace(/[=:]/g, function(ev) {
    return tv[ev];
  });
}
var P$4 = /\/+/g;
function Q$4(rv, tv) {
  return typeof rv == "object" && rv !== null && rv.key != null ? escape$2("" + rv.key) : tv.toString(36);
}
function R$3(rv, tv, ev, iv, ov) {
  var av = typeof rv;
  (av === "undefined" || av === "boolean") && (rv = null);
  var sv = !1;
  if (rv === null)
    sv = !0;
  else
    switch (av) {
      case "string":
      case "number":
        sv = !0;
        break;
      case "object":
        switch (rv.$$typeof) {
          case l$4:
          case n$7:
            sv = !0;
        }
    }
  if (sv)
    return sv = rv, ov = ov(sv), rv = iv === "" ? "." + Q$4(sv, 0) : iv, I$4(ov) ? (ev = "", rv != null && (ev = rv.replace(P$4, "$&/") + "/"), R$3(ov, tv, ev, "", function(cv) {
      return cv;
    })) : ov != null && (O$2(ov) && (ov = N$4(ov, ev + (!ov.key || sv && sv.key === ov.key ? "" : ("" + ov.key).replace(P$4, "$&/") + "/") + rv)), tv.push(ov)), 1;
  if (sv = 0, iv = iv === "" ? "." : iv + ":", I$4(rv))
    for (var lv = 0; lv < rv.length; lv++) {
      av = rv[lv];
      var uv = iv + Q$4(av, lv);
      sv += R$3(av, tv, ev, uv, ov);
    }
  else if (uv = A$3(rv), typeof uv == "function")
    for (rv = uv.call(rv), lv = 0; !(av = rv.next()).done; )
      av = av.value, uv = iv + Q$4(av, lv++), sv += R$3(av, tv, ev, uv, ov);
  else if (av === "object")
    throw tv = String(rv), Error("Objects are not valid as a React child (found: " + (tv === "[object Object]" ? "object with keys {" + Object.keys(rv).join(", ") + "}" : tv) + "). If you meant to render a collection of children, use an array instead.");
  return sv;
}
function S$3(rv, tv, ev) {
  if (rv == null)
    return rv;
  var iv = [], ov = 0;
  return R$3(rv, iv, "", "", function(av) {
    return tv.call(ev, av, ov++);
  }), iv;
}
function T$4(rv) {
  if (rv._status === -1) {
    var tv = rv._result;
    tv = tv(), tv.then(function(ev) {
      (rv._status === 0 || rv._status === -1) && (rv._status = 1, rv._result = ev);
    }, function(ev) {
      (rv._status === 0 || rv._status === -1) && (rv._status = 2, rv._result = ev);
    }), rv._status === -1 && (rv._status = 0, rv._result = tv);
  }
  if (rv._status === 1)
    return rv._result.default;
  throw rv._result;
}
var U$4 = { current: null }, V$4 = { transition: null }, W$4 = { ReactCurrentDispatcher: U$4, ReactCurrentBatchConfig: V$4, ReactCurrentOwner: K$4 };
function X$4() {
  throw Error("act(...) is not supported in production builds of React.");
}
react_production_min.Children = { map: S$3, forEach: function(rv, tv, ev) {
  S$3(rv, function() {
    tv.apply(this, arguments);
  }, ev);
}, count: function(rv) {
  var tv = 0;
  return S$3(rv, function() {
    tv++;
  }), tv;
}, toArray: function(rv) {
  return S$3(rv, function(tv) {
    return tv;
  }) || [];
}, only: function(rv) {
  if (!O$2(rv))
    throw Error("React.Children.only expected to receive a single React element child.");
  return rv;
} };
react_production_min.Component = E$4;
react_production_min.Fragment = p$5;
react_production_min.Profiler = r$8;
react_production_min.PureComponent = G$3;
react_production_min.StrictMode = q$2;
react_production_min.Suspense = w$1;
react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = W$4;
react_production_min.act = X$4;
react_production_min.cloneElement = function(rv, tv, ev) {
  if (rv == null)
    throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + rv + ".");
  var iv = C$4({}, rv.props), ov = rv.key, av = rv.ref, sv = rv._owner;
  if (tv != null) {
    if (tv.ref !== void 0 && (av = tv.ref, sv = K$4.current), tv.key !== void 0 && (ov = "" + tv.key), rv.type && rv.type.defaultProps)
      var lv = rv.type.defaultProps;
    for (uv in tv)
      J$3.call(tv, uv) && !L$4.hasOwnProperty(uv) && (iv[uv] = tv[uv] === void 0 && lv !== void 0 ? lv[uv] : tv[uv]);
  }
  var uv = arguments.length - 2;
  if (uv === 1)
    iv.children = ev;
  else if (1 < uv) {
    lv = Array(uv);
    for (var cv = 0; cv < uv; cv++)
      lv[cv] = arguments[cv + 2];
    iv.children = lv;
  }
  return { $$typeof: l$4, type: rv.type, key: ov, ref: av, props: iv, _owner: sv };
};
react_production_min.createContext = function(rv) {
  return rv = { $$typeof: u$3, _currentValue: rv, _currentValue2: rv, _threadCount: 0, Provider: null, Consumer: null, _defaultValue: null, _globalName: null }, rv.Provider = { $$typeof: t$5, _context: rv }, rv.Consumer = rv;
};
react_production_min.createElement = M$2;
react_production_min.createFactory = function(rv) {
  var tv = M$2.bind(null, rv);
  return tv.type = rv, tv;
};
react_production_min.createRef = function() {
  return { current: null };
};
react_production_min.forwardRef = function(rv) {
  return { $$typeof: v$3, render: rv };
};
react_production_min.isValidElement = O$2;
react_production_min.lazy = function(rv) {
  return { $$typeof: y$3, _payload: { _status: -1, _result: rv }, _init: T$4 };
};
react_production_min.memo = function(rv, tv) {
  return { $$typeof: x$3, type: rv, compare: tv === void 0 ? null : tv };
};
react_production_min.startTransition = function(rv) {
  var tv = V$4.transition;
  V$4.transition = {};
  try {
    rv();
  } finally {
    V$4.transition = tv;
  }
};
react_production_min.unstable_act = X$4;
react_production_min.useCallback = function(rv, tv) {
  return U$4.current.useCallback(rv, tv);
};
react_production_min.useContext = function(rv) {
  return U$4.current.useContext(rv);
};
react_production_min.useDebugValue = function() {
};
react_production_min.useDeferredValue = function(rv) {
  return U$4.current.useDeferredValue(rv);
};
react_production_min.useEffect = function(rv, tv) {
  return U$4.current.useEffect(rv, tv);
};
react_production_min.useId = function() {
  return U$4.current.useId();
};
react_production_min.useImperativeHandle = function(rv, tv, ev) {
  return U$4.current.useImperativeHandle(rv, tv, ev);
};
react_production_min.useInsertionEffect = function(rv, tv) {
  return U$4.current.useInsertionEffect(rv, tv);
};
react_production_min.useLayoutEffect = function(rv, tv) {
  return U$4.current.useLayoutEffect(rv, tv);
};
react_production_min.useMemo = function(rv, tv) {
  return U$4.current.useMemo(rv, tv);
};
react_production_min.useReducer = function(rv, tv, ev) {
  return U$4.current.useReducer(rv, tv, ev);
};
react_production_min.useRef = function(rv) {
  return U$4.current.useRef(rv);
};
react_production_min.useState = function(rv) {
  return U$4.current.useState(rv);
};
react_production_min.useSyncExternalStore = function(rv, tv, ev) {
  return U$4.current.useSyncExternalStore(rv, tv, ev);
};
react_production_min.useTransition = function() {
  return U$4.current.useTransition();
};
react_production_min.version = "18.3.1";
react.exports = react_production_min;
var reactExports = react.exports;
const React = /* @__PURE__ */ getDefaultExportFromCjs(reactExports), React$1 = /* @__PURE__ */ _mergeNamespaces({
  __proto__: null,
  default: React
}, [reactExports]);
var jsxRuntime = { exports: {} }, reactJsxRuntime_production_min = {};
/**
 * @license React
 * react-jsx-runtime.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var f$4 = reactExports, k$3 = Symbol.for("react.element"), l$3 = Symbol.for("react.fragment"), m$5 = Object.prototype.hasOwnProperty, n$6 = f$4.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, p$4 = { key: !0, ref: !0, __self: !0, __source: !0 };
function q$1(rv, tv, ev) {
  var iv, ov = {}, av = null, sv = null;
  ev !== void 0 && (av = "" + ev), tv.key !== void 0 && (av = "" + tv.key), tv.ref !== void 0 && (sv = tv.ref);
  for (iv in tv)
    m$5.call(tv, iv) && !p$4.hasOwnProperty(iv) && (ov[iv] = tv[iv]);
  if (rv && rv.defaultProps)
    for (iv in tv = rv.defaultProps, tv)
      ov[iv] === void 0 && (ov[iv] = tv[iv]);
  return { $$typeof: k$3, type: rv, key: av, ref: sv, props: ov, _owner: n$6.current };
}
reactJsxRuntime_production_min.Fragment = l$3;
reactJsxRuntime_production_min.jsx = q$1;
reactJsxRuntime_production_min.jsxs = q$1;
jsxRuntime.exports = reactJsxRuntime_production_min;
var jsxRuntimeExports = jsxRuntime.exports;
class Subscribable {
  constructor() {
    this.listeners = /* @__PURE__ */ new Set(), this.subscribe = this.subscribe.bind(this);
  }
  subscribe(tv) {
    const ev = {
      listener: tv
    };
    return this.listeners.add(ev), this.onSubscribe(), () => {
      this.listeners.delete(ev), this.onUnsubscribe();
    };
  }
  hasListeners() {
    return this.listeners.size > 0;
  }
  onSubscribe() {
  }
  onUnsubscribe() {
  }
}
const isServer = typeof window > "u" || "Deno" in window;
function noop$4() {
}
function functionalUpdate(rv, tv) {
  return typeof rv == "function" ? rv(tv) : rv;
}
function isValidTimeout(rv) {
  return typeof rv == "number" && rv >= 0 && rv !== 1 / 0;
}
function timeUntilStale(rv, tv) {
  return Math.max(rv + (tv || 0) - Date.now(), 0);
}
function parseQueryArgs(rv, tv, ev) {
  return isQueryKey(rv) ? typeof tv == "function" ? {
    ...ev,
    queryKey: rv,
    queryFn: tv
  } : {
    ...tv,
    queryKey: rv
  } : rv;
}
function parseMutationArgs(rv, tv, ev) {
  return isQueryKey(rv) ? {
    ...tv,
    mutationKey: rv
  } : typeof rv == "function" ? {
    ...tv,
    mutationFn: rv
  } : {
    ...rv
  };
}
function parseFilterArgs(rv, tv, ev) {
  return isQueryKey(rv) ? [{
    ...tv,
    queryKey: rv
  }, ev] : [rv || {}, tv];
}
function matchQuery(rv, tv) {
  const {
    type: ev = "all",
    exact: iv,
    fetchStatus: ov,
    predicate: av,
    queryKey: sv,
    stale: lv
  } = rv;
  if (isQueryKey(sv)) {
    if (iv) {
      if (tv.queryHash !== hashQueryKeyByOptions(sv, tv.options))
        return !1;
    } else if (!partialMatchKey(tv.queryKey, sv))
      return !1;
  }
  if (ev !== "all") {
    const uv = tv.isActive();
    if (ev === "active" && !uv || ev === "inactive" && uv)
      return !1;
  }
  return !(typeof lv == "boolean" && tv.isStale() !== lv || typeof ov < "u" && ov !== tv.state.fetchStatus || av && !av(tv));
}
function matchMutation(rv, tv) {
  const {
    exact: ev,
    fetching: iv,
    predicate: ov,
    mutationKey: av
  } = rv;
  if (isQueryKey(av)) {
    if (!tv.options.mutationKey)
      return !1;
    if (ev) {
      if (hashQueryKey(tv.options.mutationKey) !== hashQueryKey(av))
        return !1;
    } else if (!partialMatchKey(tv.options.mutationKey, av))
      return !1;
  }
  return !(typeof iv == "boolean" && tv.state.status === "loading" !== iv || ov && !ov(tv));
}
function hashQueryKeyByOptions(rv, tv) {
  return ((tv == null ? void 0 : tv.queryKeyHashFn) || hashQueryKey)(rv);
}
function hashQueryKey(rv) {
  return JSON.stringify(rv, (tv, ev) => isPlainObject$3(ev) ? Object.keys(ev).sort().reduce((iv, ov) => (iv[ov] = ev[ov], iv), {}) : ev);
}
function partialMatchKey(rv, tv) {
  return partialDeepEqual(rv, tv);
}
function partialDeepEqual(rv, tv) {
  return rv === tv ? !0 : typeof rv != typeof tv ? !1 : rv && tv && typeof rv == "object" && typeof tv == "object" ? !Object.keys(tv).some((ev) => !partialDeepEqual(rv[ev], tv[ev])) : !1;
}
function replaceEqualDeep(rv, tv) {
  if (rv === tv)
    return rv;
  const ev = isPlainArray(rv) && isPlainArray(tv);
  if (ev || isPlainObject$3(rv) && isPlainObject$3(tv)) {
    const iv = ev ? rv.length : Object.keys(rv).length, ov = ev ? tv : Object.keys(tv), av = ov.length, sv = ev ? [] : {};
    let lv = 0;
    for (let uv = 0; uv < av; uv++) {
      const cv = ev ? uv : ov[uv];
      sv[cv] = replaceEqualDeep(rv[cv], tv[cv]), sv[cv] === rv[cv] && lv++;
    }
    return iv === av && lv === iv ? rv : sv;
  }
  return tv;
}
function shallowEqualObjects(rv, tv) {
  if (rv && !tv || tv && !rv)
    return !1;
  for (const ev in rv)
    if (rv[ev] !== tv[ev])
      return !1;
  return !0;
}
function isPlainArray(rv) {
  return Array.isArray(rv) && rv.length === Object.keys(rv).length;
}
function isPlainObject$3(rv) {
  if (!hasObjectPrototype(rv))
    return !1;
  const tv = rv.constructor;
  if (typeof tv > "u")
    return !0;
  const ev = tv.prototype;
  return !(!hasObjectPrototype(ev) || !ev.hasOwnProperty("isPrototypeOf"));
}
function hasObjectPrototype(rv) {
  return Object.prototype.toString.call(rv) === "[object Object]";
}
function isQueryKey(rv) {
  return Array.isArray(rv);
}
function sleep(rv) {
  return new Promise((tv) => {
    setTimeout(tv, rv);
  });
}
function scheduleMicrotask(rv) {
  sleep(0).then(rv);
}
function getAbortController() {
  if (typeof AbortController == "function")
    return new AbortController();
}
function replaceData(rv, tv, ev) {
  return ev.isDataEqual != null && ev.isDataEqual(rv, tv) ? rv : typeof ev.structuralSharing == "function" ? ev.structuralSharing(rv, tv) : ev.structuralSharing !== !1 ? replaceEqualDeep(rv, tv) : tv;
}
class FocusManager extends Subscribable {
  constructor() {
    super(), this.setup = (tv) => {
      if (!isServer && window.addEventListener) {
        const ev = () => tv();
        return window.addEventListener("visibilitychange", ev, !1), window.addEventListener("focus", ev, !1), () => {
          window.removeEventListener("visibilitychange", ev), window.removeEventListener("focus", ev);
        };
      }
    };
  }
  onSubscribe() {
    this.cleanup || this.setEventListener(this.setup);
  }
  onUnsubscribe() {
    if (!this.hasListeners()) {
      var tv;
      (tv = this.cleanup) == null || tv.call(this), this.cleanup = void 0;
    }
  }
  setEventListener(tv) {
    var ev;
    this.setup = tv, (ev = this.cleanup) == null || ev.call(this), this.cleanup = tv((iv) => {
      typeof iv == "boolean" ? this.setFocused(iv) : this.onFocus();
    });
  }
  setFocused(tv) {
    this.focused !== tv && (this.focused = tv, this.onFocus());
  }
  onFocus() {
    this.listeners.forEach(({
      listener: tv
    }) => {
      tv();
    });
  }
  isFocused() {
    return typeof this.focused == "boolean" ? this.focused : typeof document > "u" ? !0 : [void 0, "visible", "prerender"].includes(document.visibilityState);
  }
}
const focusManager = new FocusManager(), onlineEvents = ["online", "offline"];
class OnlineManager extends Subscribable {
  constructor() {
    super(), this.setup = (tv) => {
      if (!isServer && window.addEventListener) {
        const ev = () => tv();
        return onlineEvents.forEach((iv) => {
          window.addEventListener(iv, ev, !1);
        }), () => {
          onlineEvents.forEach((iv) => {
            window.removeEventListener(iv, ev);
          });
        };
      }
    };
  }
  onSubscribe() {
    this.cleanup || this.setEventListener(this.setup);
  }
  onUnsubscribe() {
    if (!this.hasListeners()) {
      var tv;
      (tv = this.cleanup) == null || tv.call(this), this.cleanup = void 0;
    }
  }
  setEventListener(tv) {
    var ev;
    this.setup = tv, (ev = this.cleanup) == null || ev.call(this), this.cleanup = tv((iv) => {
      typeof iv == "boolean" ? this.setOnline(iv) : this.onOnline();
    });
  }
  setOnline(tv) {
    this.online !== tv && (this.online = tv, this.onOnline());
  }
  onOnline() {
    this.listeners.forEach(({
      listener: tv
    }) => {
      tv();
    });
  }
  isOnline() {
    return typeof this.online == "boolean" ? this.online : typeof navigator > "u" || typeof navigator.onLine > "u" ? !0 : navigator.onLine;
  }
}
const onlineManager = new OnlineManager();
function defaultRetryDelay(rv) {
  return Math.min(1e3 * 2 ** rv, 3e4);
}
function canFetch(rv) {
  return (rv ?? "online") === "online" ? onlineManager.isOnline() : !0;
}
class CancelledError {
  constructor(tv) {
    this.revert = tv == null ? void 0 : tv.revert, this.silent = tv == null ? void 0 : tv.silent;
  }
}
function isCancelledError(rv) {
  return rv instanceof CancelledError;
}
function createRetryer(rv) {
  let tv = !1, ev = 0, iv = !1, ov, av, sv;
  const lv = new Promise((Ev, wv) => {
    av = Ev, sv = wv;
  }), uv = (Ev) => {
    iv || (yv(new CancelledError(Ev)), rv.abort == null || rv.abort());
  }, cv = () => {
    tv = !0;
  }, dv = () => {
    tv = !1;
  }, hv = () => !focusManager.isFocused() || rv.networkMode !== "always" && !onlineManager.isOnline(), pv = (Ev) => {
    iv || (iv = !0, rv.onSuccess == null || rv.onSuccess(Ev), ov == null || ov(), av(Ev));
  }, yv = (Ev) => {
    iv || (iv = !0, rv.onError == null || rv.onError(Ev), ov == null || ov(), sv(Ev));
  }, Sv = () => new Promise((Ev) => {
    ov = (wv) => {
      const xv = iv || !hv();
      return xv && Ev(wv), xv;
    }, rv.onPause == null || rv.onPause();
  }).then(() => {
    ov = void 0, iv || rv.onContinue == null || rv.onContinue();
  }), _v = () => {
    if (iv)
      return;
    let Ev;
    try {
      Ev = rv.fn();
    } catch (wv) {
      Ev = Promise.reject(wv);
    }
    Promise.resolve(Ev).then(pv).catch((wv) => {
      var xv, Cv;
      if (iv)
        return;
      const Av = (xv = rv.retry) != null ? xv : 3, Ov = (Cv = rv.retryDelay) != null ? Cv : defaultRetryDelay, Lv = typeof Ov == "function" ? Ov(ev, wv) : Ov, jv = Av === !0 || typeof Av == "number" && ev < Av || typeof Av == "function" && Av(ev, wv);
      if (tv || !jv) {
        yv(wv);
        return;
      }
      ev++, rv.onFail == null || rv.onFail(ev, wv), sleep(Lv).then(() => {
        if (hv())
          return Sv();
      }).then(() => {
        tv ? yv(wv) : _v();
      });
    });
  };
  return canFetch(rv.networkMode) ? _v() : Sv().then(_v), {
    promise: lv,
    cancel: uv,
    continue: () => (ov == null ? void 0 : ov()) ? lv : Promise.resolve(),
    cancelRetry: cv,
    continueRetry: dv
  };
}
const defaultLogger = console;
function createNotifyManager() {
  let rv = [], tv = 0, ev = (dv) => {
    dv();
  }, iv = (dv) => {
    dv();
  };
  const ov = (dv) => {
    let hv;
    tv++;
    try {
      hv = dv();
    } finally {
      tv--, tv || lv();
    }
    return hv;
  }, av = (dv) => {
    tv ? rv.push(dv) : scheduleMicrotask(() => {
      ev(dv);
    });
  }, sv = (dv) => (...hv) => {
    av(() => {
      dv(...hv);
    });
  }, lv = () => {
    const dv = rv;
    rv = [], dv.length && scheduleMicrotask(() => {
      iv(() => {
        dv.forEach((hv) => {
          ev(hv);
        });
      });
    });
  };
  return {
    batch: ov,
    batchCalls: sv,
    schedule: av,
    setNotifyFunction: (dv) => {
      ev = dv;
    },
    setBatchNotifyFunction: (dv) => {
      iv = dv;
    }
  };
}
const notifyManager = createNotifyManager();
class Removable {
  destroy() {
    this.clearGcTimeout();
  }
  scheduleGc() {
    this.clearGcTimeout(), isValidTimeout(this.cacheTime) && (this.gcTimeout = setTimeout(() => {
      this.optionalRemove();
    }, this.cacheTime));
  }
  updateCacheTime(tv) {
    this.cacheTime = Math.max(this.cacheTime || 0, tv ?? (isServer ? 1 / 0 : 5 * 60 * 1e3));
  }
  clearGcTimeout() {
    this.gcTimeout && (clearTimeout(this.gcTimeout), this.gcTimeout = void 0);
  }
}
class Query extends Removable {
  constructor(tv) {
    super(), this.abortSignalConsumed = !1, this.defaultOptions = tv.defaultOptions, this.setOptions(tv.options), this.observers = [], this.cache = tv.cache, this.logger = tv.logger || defaultLogger, this.queryKey = tv.queryKey, this.queryHash = tv.queryHash, this.initialState = tv.state || getDefaultState$1(this.options), this.state = this.initialState, this.scheduleGc();
  }
  get meta() {
    return this.options.meta;
  }
  setOptions(tv) {
    this.options = {
      ...this.defaultOptions,
      ...tv
    }, this.updateCacheTime(this.options.cacheTime);
  }
  optionalRemove() {
    !this.observers.length && this.state.fetchStatus === "idle" && this.cache.remove(this);
  }
  setData(tv, ev) {
    const iv = replaceData(this.state.data, tv, this.options);
    return this.dispatch({
      data: iv,
      type: "success",
      dataUpdatedAt: ev == null ? void 0 : ev.updatedAt,
      manual: ev == null ? void 0 : ev.manual
    }), iv;
  }
  setState(tv, ev) {
    this.dispatch({
      type: "setState",
      state: tv,
      setStateOptions: ev
    });
  }
  cancel(tv) {
    var ev;
    const iv = this.promise;
    return (ev = this.retryer) == null || ev.cancel(tv), iv ? iv.then(noop$4).catch(noop$4) : Promise.resolve();
  }
  destroy() {
    super.destroy(), this.cancel({
      silent: !0
    });
  }
  reset() {
    this.destroy(), this.setState(this.initialState);
  }
  isActive() {
    return this.observers.some((tv) => tv.options.enabled !== !1);
  }
  isDisabled() {
    return this.getObserversCount() > 0 && !this.isActive();
  }
  isStale() {
    return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some((tv) => tv.getCurrentResult().isStale);
  }
  isStaleByTime(tv = 0) {
    return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, tv);
  }
  onFocus() {
    var tv;
    const ev = this.observers.find((iv) => iv.shouldFetchOnWindowFocus());
    ev && ev.refetch({
      cancelRefetch: !1
    }), (tv = this.retryer) == null || tv.continue();
  }
  onOnline() {
    var tv;
    const ev = this.observers.find((iv) => iv.shouldFetchOnReconnect());
    ev && ev.refetch({
      cancelRefetch: !1
    }), (tv = this.retryer) == null || tv.continue();
  }
  addObserver(tv) {
    this.observers.includes(tv) || (this.observers.push(tv), this.clearGcTimeout(), this.cache.notify({
      type: "observerAdded",
      query: this,
      observer: tv
    }));
  }
  removeObserver(tv) {
    this.observers.includes(tv) && (this.observers = this.observers.filter((ev) => ev !== tv), this.observers.length || (this.retryer && (this.abortSignalConsumed ? this.retryer.cancel({
      revert: !0
    }) : this.retryer.cancelRetry()), this.scheduleGc()), this.cache.notify({
      type: "observerRemoved",
      query: this,
      observer: tv
    }));
  }
  getObserversCount() {
    return this.observers.length;
  }
  invalidate() {
    this.state.isInvalidated || this.dispatch({
      type: "invalidate"
    });
  }
  fetch(tv, ev) {
    var iv, ov;
    if (this.state.fetchStatus !== "idle") {
      if (this.state.dataUpdatedAt && ev != null && ev.cancelRefetch)
        this.cancel({
          silent: !0
        });
      else if (this.promise) {
        var av;
        return (av = this.retryer) == null || av.continueRetry(), this.promise;
      }
    }
    if (tv && this.setOptions(tv), !this.options.queryFn) {
      const yv = this.observers.find((Sv) => Sv.options.queryFn);
      yv && this.setOptions(yv.options);
    }
    const sv = getAbortController(), lv = {
      queryKey: this.queryKey,
      pageParam: void 0,
      meta: this.meta
    }, uv = (yv) => {
      Object.defineProperty(yv, "signal", {
        enumerable: !0,
        get: () => {
          if (sv)
            return this.abortSignalConsumed = !0, sv.signal;
        }
      });
    };
    uv(lv);
    const cv = () => this.options.queryFn ? (this.abortSignalConsumed = !1, this.options.queryFn(lv)) : Promise.reject("Missing queryFn for queryKey '" + this.options.queryHash + "'"), dv = {
      fetchOptions: ev,
      options: this.options,
      queryKey: this.queryKey,
      state: this.state,
      fetchFn: cv
    };
    if (uv(dv), (iv = this.options.behavior) == null || iv.onFetch(dv), this.revertState = this.state, this.state.fetchStatus === "idle" || this.state.fetchMeta !== ((ov = dv.fetchOptions) == null ? void 0 : ov.meta)) {
      var hv;
      this.dispatch({
        type: "fetch",
        meta: (hv = dv.fetchOptions) == null ? void 0 : hv.meta
      });
    }
    const pv = (yv) => {
      if (isCancelledError(yv) && yv.silent || this.dispatch({
        type: "error",
        error: yv
      }), !isCancelledError(yv)) {
        var Sv, _v, Ev, wv;
        (Sv = (_v = this.cache.config).onError) == null || Sv.call(_v, yv, this), (Ev = (wv = this.cache.config).onSettled) == null || Ev.call(wv, this.state.data, yv, this);
      }
      this.isFetchingOptimistic || this.scheduleGc(), this.isFetchingOptimistic = !1;
    };
    return this.retryer = createRetryer({
      fn: dv.fetchFn,
      abort: sv == null ? void 0 : sv.abort.bind(sv),
      onSuccess: (yv) => {
        var Sv, _v, Ev, wv;
        if (typeof yv > "u") {
          pv(new Error(this.queryHash + " data is undefined"));
          return;
        }
        this.setData(yv), (Sv = (_v = this.cache.config).onSuccess) == null || Sv.call(_v, yv, this), (Ev = (wv = this.cache.config).onSettled) == null || Ev.call(wv, yv, this.state.error, this), this.isFetchingOptimistic || this.scheduleGc(), this.isFetchingOptimistic = !1;
      },
      onError: pv,
      onFail: (yv, Sv) => {
        this.dispatch({
          type: "failed",
          failureCount: yv,
          error: Sv
        });
      },
      onPause: () => {
        this.dispatch({
          type: "pause"
        });
      },
      onContinue: () => {
        this.dispatch({
          type: "continue"
        });
      },
      retry: dv.options.retry,
      retryDelay: dv.options.retryDelay,
      networkMode: dv.options.networkMode
    }), this.promise = this.retryer.promise, this.promise;
  }
  dispatch(tv) {
    const ev = (iv) => {
      var ov, av;
      switch (tv.type) {
        case "failed":
          return {
            ...iv,
            fetchFailureCount: tv.failureCount,
            fetchFailureReason: tv.error
          };
        case "pause":
          return {
            ...iv,
            fetchStatus: "paused"
          };
        case "continue":
          return {
            ...iv,
            fetchStatus: "fetching"
          };
        case "fetch":
          return {
            ...iv,
            fetchFailureCount: 0,
            fetchFailureReason: null,
            fetchMeta: (ov = tv.meta) != null ? ov : null,
            fetchStatus: canFetch(this.options.networkMode) ? "fetching" : "paused",
            ...!iv.dataUpdatedAt && {
              error: null,
              status: "loading"
            }
          };
        case "success":
          return {
            ...iv,
            data: tv.data,
            dataUpdateCount: iv.dataUpdateCount + 1,
            dataUpdatedAt: (av = tv.dataUpdatedAt) != null ? av : Date.now(),
            error: null,
            isInvalidated: !1,
            status: "success",
            ...!tv.manual && {
              fetchStatus: "idle",
              fetchFailureCount: 0,
              fetchFailureReason: null
            }
          };
        case "error":
          const sv = tv.error;
          return isCancelledError(sv) && sv.revert && this.revertState ? {
            ...this.revertState,
            fetchStatus: "idle"
          } : {
            ...iv,
            error: sv,
            errorUpdateCount: iv.errorUpdateCount + 1,
            errorUpdatedAt: Date.now(),
            fetchFailureCount: iv.fetchFailureCount + 1,
            fetchFailureReason: sv,
            fetchStatus: "idle",
            status: "error"
          };
        case "invalidate":
          return {
            ...iv,
            isInvalidated: !0
          };
        case "setState":
          return {
            ...iv,
            ...tv.state
          };
      }
    };
    this.state = ev(this.state), notifyManager.batch(() => {
      this.observers.forEach((iv) => {
        iv.onQueryUpdate(tv);
      }), this.cache.notify({
        query: this,
        type: "updated",
        action: tv
      });
    });
  }
}
function getDefaultState$1(rv) {
  const tv = typeof rv.initialData == "function" ? rv.initialData() : rv.initialData, ev = typeof tv < "u", iv = ev ? typeof rv.initialDataUpdatedAt == "function" ? rv.initialDataUpdatedAt() : rv.initialDataUpdatedAt : 0;
  return {
    data: tv,
    dataUpdateCount: 0,
    dataUpdatedAt: ev ? iv ?? Date.now() : 0,
    error: null,
    errorUpdateCount: 0,
    errorUpdatedAt: 0,
    fetchFailureCount: 0,
    fetchFailureReason: null,
    fetchMeta: null,
    isInvalidated: !1,
    status: ev ? "success" : "loading",
    fetchStatus: "idle"
  };
}
class QueryCache extends Subscribable {
  constructor(tv) {
    super(), this.config = tv || {}, this.queries = [], this.queriesMap = {};
  }
  build(tv, ev, iv) {
    var ov;
    const av = ev.queryKey, sv = (ov = ev.queryHash) != null ? ov : hashQueryKeyByOptions(av, ev);
    let lv = this.get(sv);
    return lv || (lv = new Query({
      cache: this,
      logger: tv.getLogger(),
      queryKey: av,
      queryHash: sv,
      options: tv.defaultQueryOptions(ev),
      state: iv,
      defaultOptions: tv.getQueryDefaults(av)
    }), this.add(lv)), lv;
  }
  add(tv) {
    this.queriesMap[tv.queryHash] || (this.queriesMap[tv.queryHash] = tv, this.queries.push(tv), this.notify({
      type: "added",
      query: tv
    }));
  }
  remove(tv) {
    const ev = this.queriesMap[tv.queryHash];
    ev && (tv.destroy(), this.queries = this.queries.filter((iv) => iv !== tv), ev === tv && delete this.queriesMap[tv.queryHash], this.notify({
      type: "removed",
      query: tv
    }));
  }
  clear() {
    notifyManager.batch(() => {
      this.queries.forEach((tv) => {
        this.remove(tv);
      });
    });
  }
  get(tv) {
    return this.queriesMap[tv];
  }
  getAll() {
    return this.queries;
  }
  find(tv, ev) {
    const [iv] = parseFilterArgs(tv, ev);
    return typeof iv.exact > "u" && (iv.exact = !0), this.queries.find((ov) => matchQuery(iv, ov));
  }
  findAll(tv, ev) {
    const [iv] = parseFilterArgs(tv, ev);
    return Object.keys(iv).length > 0 ? this.queries.filter((ov) => matchQuery(iv, ov)) : this.queries;
  }
  notify(tv) {
    notifyManager.batch(() => {
      this.listeners.forEach(({
        listener: ev
      }) => {
        ev(tv);
      });
    });
  }
  onFocus() {
    notifyManager.batch(() => {
      this.queries.forEach((tv) => {
        tv.onFocus();
      });
    });
  }
  onOnline() {
    notifyManager.batch(() => {
      this.queries.forEach((tv) => {
        tv.onOnline();
      });
    });
  }
}
class Mutation extends Removable {
  constructor(tv) {
    super(), this.defaultOptions = tv.defaultOptions, this.mutationId = tv.mutationId, this.mutationCache = tv.mutationCache, this.logger = tv.logger || defaultLogger, this.observers = [], this.state = tv.state || getDefaultState(), this.setOptions(tv.options), this.scheduleGc();
  }
  setOptions(tv) {
    this.options = {
      ...this.defaultOptions,
      ...tv
    }, this.updateCacheTime(this.options.cacheTime);
  }
  get meta() {
    return this.options.meta;
  }
  setState(tv) {
    this.dispatch({
      type: "setState",
      state: tv
    });
  }
  addObserver(tv) {
    this.observers.includes(tv) || (this.observers.push(tv), this.clearGcTimeout(), this.mutationCache.notify({
      type: "observerAdded",
      mutation: this,
      observer: tv
    }));
  }
  removeObserver(tv) {
    this.observers = this.observers.filter((ev) => ev !== tv), this.scheduleGc(), this.mutationCache.notify({
      type: "observerRemoved",
      mutation: this,
      observer: tv
    });
  }
  optionalRemove() {
    this.observers.length || (this.state.status === "loading" ? this.scheduleGc() : this.mutationCache.remove(this));
  }
  continue() {
    var tv, ev;
    return (tv = (ev = this.retryer) == null ? void 0 : ev.continue()) != null ? tv : this.execute();
  }
  async execute() {
    const tv = () => {
      var jv;
      return this.retryer = createRetryer({
        fn: () => this.options.mutationFn ? this.options.mutationFn(this.state.variables) : Promise.reject("No mutationFn found"),
        onFail: (Dv, Vv) => {
          this.dispatch({
            type: "failed",
            failureCount: Dv,
            error: Vv
          });
        },
        onPause: () => {
          this.dispatch({
            type: "pause"
          });
        },
        onContinue: () => {
          this.dispatch({
            type: "continue"
          });
        },
        retry: (jv = this.options.retry) != null ? jv : 0,
        retryDelay: this.options.retryDelay,
        networkMode: this.options.networkMode
      }), this.retryer.promise;
    }, ev = this.state.status === "loading";
    try {
      var iv, ov, av, sv, lv, uv, cv, dv;
      if (!ev) {
        var hv, pv, yv, Sv;
        this.dispatch({
          type: "loading",
          variables: this.options.variables
        }), await ((hv = (pv = this.mutationCache.config).onMutate) == null ? void 0 : hv.call(pv, this.state.variables, this));
        const Dv = await ((yv = (Sv = this.options).onMutate) == null ? void 0 : yv.call(Sv, this.state.variables));
        Dv !== this.state.context && this.dispatch({
          type: "loading",
          context: Dv,
          variables: this.state.variables
        });
      }
      const jv = await tv();
      return await ((iv = (ov = this.mutationCache.config).onSuccess) == null ? void 0 : iv.call(ov, jv, this.state.variables, this.state.context, this)), await ((av = (sv = this.options).onSuccess) == null ? void 0 : av.call(sv, jv, this.state.variables, this.state.context)), await ((lv = (uv = this.mutationCache.config).onSettled) == null ? void 0 : lv.call(uv, jv, null, this.state.variables, this.state.context, this)), await ((cv = (dv = this.options).onSettled) == null ? void 0 : cv.call(dv, jv, null, this.state.variables, this.state.context)), this.dispatch({
        type: "success",
        data: jv
      }), jv;
    } catch (jv) {
      try {
        var _v, Ev, wv, xv, Cv, Av, Ov, Lv;
        throw await ((_v = (Ev = this.mutationCache.config).onError) == null ? void 0 : _v.call(Ev, jv, this.state.variables, this.state.context, this)), await ((wv = (xv = this.options).onError) == null ? void 0 : wv.call(xv, jv, this.state.variables, this.state.context)), await ((Cv = (Av = this.mutationCache.config).onSettled) == null ? void 0 : Cv.call(Av, void 0, jv, this.state.variables, this.state.context, this)), await ((Ov = (Lv = this.options).onSettled) == null ? void 0 : Ov.call(Lv, void 0, jv, this.state.variables, this.state.context)), jv;
      } finally {
        this.dispatch({
          type: "error",
          error: jv
        });
      }
    }
  }
  dispatch(tv) {
    const ev = (iv) => {
      switch (tv.type) {
        case "failed":
          return {
            ...iv,
            failureCount: tv.failureCount,
            failureReason: tv.error
          };
        case "pause":
          return {
            ...iv,
            isPaused: !0
          };
        case "continue":
          return {
            ...iv,
            isPaused: !1
          };
        case "loading":
          return {
            ...iv,
            context: tv.context,
            data: void 0,
            failureCount: 0,
            failureReason: null,
            error: null,
            isPaused: !canFetch(this.options.networkMode),
            status: "loading",
            variables: tv.variables
          };
        case "success":
          return {
            ...iv,
            data: tv.data,
            failureCount: 0,
            failureReason: null,
            error: null,
            status: "success",
            isPaused: !1
          };
        case "error":
          return {
            ...iv,
            data: void 0,
            error: tv.error,
            failureCount: iv.failureCount + 1,
            failureReason: tv.error,
            isPaused: !1,
            status: "error"
          };
        case "setState":
          return {
            ...iv,
            ...tv.state
          };
      }
    };
    this.state = ev(this.state), notifyManager.batch(() => {
      this.observers.forEach((iv) => {
        iv.onMutationUpdate(tv);
      }), this.mutationCache.notify({
        mutation: this,
        type: "updated",
        action: tv
      });
    });
  }
}
function getDefaultState() {
  return {
    context: void 0,
    data: void 0,
    error: null,
    failureCount: 0,
    failureReason: null,
    isPaused: !1,
    status: "idle",
    variables: void 0
  };
}
class MutationCache extends Subscribable {
  constructor(tv) {
    super(), this.config = tv || {}, this.mutations = [], this.mutationId = 0;
  }
  build(tv, ev, iv) {
    const ov = new Mutation({
      mutationCache: this,
      logger: tv.getLogger(),
      mutationId: ++this.mutationId,
      options: tv.defaultMutationOptions(ev),
      state: iv,
      defaultOptions: ev.mutationKey ? tv.getMutationDefaults(ev.mutationKey) : void 0
    });
    return this.add(ov), ov;
  }
  add(tv) {
    this.mutations.push(tv), this.notify({
      type: "added",
      mutation: tv
    });
  }
  remove(tv) {
    this.mutations = this.mutations.filter((ev) => ev !== tv), this.notify({
      type: "removed",
      mutation: tv
    });
  }
  clear() {
    notifyManager.batch(() => {
      this.mutations.forEach((tv) => {
        this.remove(tv);
      });
    });
  }
  getAll() {
    return this.mutations;
  }
  find(tv) {
    return typeof tv.exact > "u" && (tv.exact = !0), this.mutations.find((ev) => matchMutation(tv, ev));
  }
  findAll(tv) {
    return this.mutations.filter((ev) => matchMutation(tv, ev));
  }
  notify(tv) {
    notifyManager.batch(() => {
      this.listeners.forEach(({
        listener: ev
      }) => {
        ev(tv);
      });
    });
  }
  resumePausedMutations() {
    var tv;
    return this.resuming = ((tv = this.resuming) != null ? tv : Promise.resolve()).then(() => {
      const ev = this.mutations.filter((iv) => iv.state.isPaused);
      return notifyManager.batch(() => ev.reduce((iv, ov) => iv.then(() => ov.continue().catch(noop$4)), Promise.resolve()));
    }).then(() => {
      this.resuming = void 0;
    }), this.resuming;
  }
}
function infiniteQueryBehavior() {
  return {
    onFetch: (rv) => {
      rv.fetchFn = () => {
        var tv, ev, iv, ov, av, sv;
        const lv = (tv = rv.fetchOptions) == null || (ev = tv.meta) == null ? void 0 : ev.refetchPage, uv = (iv = rv.fetchOptions) == null || (ov = iv.meta) == null ? void 0 : ov.fetchMore, cv = uv == null ? void 0 : uv.pageParam, dv = (uv == null ? void 0 : uv.direction) === "forward", hv = (uv == null ? void 0 : uv.direction) === "backward", pv = ((av = rv.state.data) == null ? void 0 : av.pages) || [], yv = ((sv = rv.state.data) == null ? void 0 : sv.pageParams) || [];
        let Sv = yv, _v = !1;
        const Ev = (Lv) => {
          Object.defineProperty(Lv, "signal", {
            enumerable: !0,
            get: () => {
              var jv;
              if ((jv = rv.signal) != null && jv.aborted)
                _v = !0;
              else {
                var Dv;
                (Dv = rv.signal) == null || Dv.addEventListener("abort", () => {
                  _v = !0;
                });
              }
              return rv.signal;
            }
          });
        }, wv = rv.options.queryFn || (() => Promise.reject("Missing queryFn for queryKey '" + rv.options.queryHash + "'")), xv = (Lv, jv, Dv, Vv) => (Sv = Vv ? [jv, ...Sv] : [...Sv, jv], Vv ? [Dv, ...Lv] : [...Lv, Dv]), Cv = (Lv, jv, Dv, Vv) => {
          if (_v)
            return Promise.reject("Cancelled");
          if (typeof Dv > "u" && !jv && Lv.length)
            return Promise.resolve(Lv);
          const Gv = {
            queryKey: rv.queryKey,
            pageParam: Dv,
            meta: rv.options.meta
          };
          Ev(Gv);
          const Yv = wv(Gv);
          return Promise.resolve(Yv).then((L1) => xv(Lv, Dv, L1, Vv));
        };
        let Av;
        if (!pv.length)
          Av = Cv([]);
        else if (dv) {
          const Lv = typeof cv < "u", jv = Lv ? cv : getNextPageParam(rv.options, pv);
          Av = Cv(pv, Lv, jv);
        } else if (hv) {
          const Lv = typeof cv < "u", jv = Lv ? cv : getPreviousPageParam(rv.options, pv);
          Av = Cv(pv, Lv, jv, !0);
        } else {
          Sv = [];
          const Lv = typeof rv.options.getNextPageParam > "u";
          Av = (lv && pv[0] ? lv(pv[0], 0, pv) : !0) ? Cv([], Lv, yv[0]) : Promise.resolve(xv([], yv[0], pv[0]));
          for (let Dv = 1; Dv < pv.length; Dv++)
            Av = Av.then((Vv) => {
              if (lv && pv[Dv] ? lv(pv[Dv], Dv, pv) : !0) {
                const Yv = Lv ? yv[Dv] : getNextPageParam(rv.options, Vv);
                return Cv(Vv, Lv, Yv);
              }
              return Promise.resolve(xv(Vv, yv[Dv], pv[Dv]));
            });
        }
        return Av.then((Lv) => ({
          pages: Lv,
          pageParams: Sv
        }));
      };
    }
  };
}
function getNextPageParam(rv, tv) {
  return rv.getNextPageParam == null ? void 0 : rv.getNextPageParam(tv[tv.length - 1], tv);
}
function getPreviousPageParam(rv, tv) {
  return rv.getPreviousPageParam == null ? void 0 : rv.getPreviousPageParam(tv[0], tv);
}
class QueryClient {
  constructor(tv = {}) {
    this.queryCache = tv.queryCache || new QueryCache(), this.mutationCache = tv.mutationCache || new MutationCache(), this.logger = tv.logger || defaultLogger, this.defaultOptions = tv.defaultOptions || {}, this.queryDefaults = [], this.mutationDefaults = [], this.mountCount = 0;
  }
  mount() {
    this.mountCount++, this.mountCount === 1 && (this.unsubscribeFocus = focusManager.subscribe(() => {
      focusManager.isFocused() && (this.resumePausedMutations(), this.queryCache.onFocus());
    }), this.unsubscribeOnline = onlineManager.subscribe(() => {
      onlineManager.isOnline() && (this.resumePausedMutations(), this.queryCache.onOnline());
    }));
  }
  unmount() {
    var tv, ev;
    this.mountCount--, this.mountCount === 0 && ((tv = this.unsubscribeFocus) == null || tv.call(this), this.unsubscribeFocus = void 0, (ev = this.unsubscribeOnline) == null || ev.call(this), this.unsubscribeOnline = void 0);
  }
  isFetching(tv, ev) {
    const [iv] = parseFilterArgs(tv, ev);
    return iv.fetchStatus = "fetching", this.queryCache.findAll(iv).length;
  }
  isMutating(tv) {
    return this.mutationCache.findAll({
      ...tv,
      fetching: !0
    }).length;
  }
  getQueryData(tv, ev) {
    var iv;
    return (iv = this.queryCache.find(tv, ev)) == null ? void 0 : iv.state.data;
  }
  ensureQueryData(tv, ev, iv) {
    const ov = parseQueryArgs(tv, ev, iv), av = this.getQueryData(ov.queryKey);
    return av ? Promise.resolve(av) : this.fetchQuery(ov);
  }
  getQueriesData(tv) {
    return this.getQueryCache().findAll(tv).map(({
      queryKey: ev,
      state: iv
    }) => {
      const ov = iv.data;
      return [ev, ov];
    });
  }
  setQueryData(tv, ev, iv) {
    const ov = this.queryCache.find(tv), av = ov == null ? void 0 : ov.state.data, sv = functionalUpdate(ev, av);
    if (typeof sv > "u")
      return;
    const lv = parseQueryArgs(tv), uv = this.defaultQueryOptions(lv);
    return this.queryCache.build(this, uv).setData(sv, {
      ...iv,
      manual: !0
    });
  }
  setQueriesData(tv, ev, iv) {
    return notifyManager.batch(() => this.getQueryCache().findAll(tv).map(({
      queryKey: ov
    }) => [ov, this.setQueryData(ov, ev, iv)]));
  }
  getQueryState(tv, ev) {
    var iv;
    return (iv = this.queryCache.find(tv, ev)) == null ? void 0 : iv.state;
  }
  removeQueries(tv, ev) {
    const [iv] = parseFilterArgs(tv, ev), ov = this.queryCache;
    notifyManager.batch(() => {
      ov.findAll(iv).forEach((av) => {
        ov.remove(av);
      });
    });
  }
  resetQueries(tv, ev, iv) {
    const [ov, av] = parseFilterArgs(tv, ev, iv), sv = this.queryCache, lv = {
      type: "active",
      ...ov
    };
    return notifyManager.batch(() => (sv.findAll(ov).forEach((uv) => {
      uv.reset();
    }), this.refetchQueries(lv, av)));
  }
  cancelQueries(tv, ev, iv) {
    const [ov, av = {}] = parseFilterArgs(tv, ev, iv);
    typeof av.revert > "u" && (av.revert = !0);
    const sv = notifyManager.batch(() => this.queryCache.findAll(ov).map((lv) => lv.cancel(av)));
    return Promise.all(sv).then(noop$4).catch(noop$4);
  }
  invalidateQueries(tv, ev, iv) {
    const [ov, av] = parseFilterArgs(tv, ev, iv);
    return notifyManager.batch(() => {
      var sv, lv;
      if (this.queryCache.findAll(ov).forEach((cv) => {
        cv.invalidate();
      }), ov.refetchType === "none")
        return Promise.resolve();
      const uv = {
        ...ov,
        type: (sv = (lv = ov.refetchType) != null ? lv : ov.type) != null ? sv : "active"
      };
      return this.refetchQueries(uv, av);
    });
  }
  refetchQueries(tv, ev, iv) {
    const [ov, av] = parseFilterArgs(tv, ev, iv), sv = notifyManager.batch(() => this.queryCache.findAll(ov).filter((uv) => !uv.isDisabled()).map((uv) => {
      var cv;
      return uv.fetch(void 0, {
        ...av,
        cancelRefetch: (cv = av == null ? void 0 : av.cancelRefetch) != null ? cv : !0,
        meta: {
          refetchPage: ov.refetchPage
        }
      });
    }));
    let lv = Promise.all(sv).then(noop$4);
    return av != null && av.throwOnError || (lv = lv.catch(noop$4)), lv;
  }
  fetchQuery(tv, ev, iv) {
    const ov = parseQueryArgs(tv, ev, iv), av = this.defaultQueryOptions(ov);
    typeof av.retry > "u" && (av.retry = !1);
    const sv = this.queryCache.build(this, av);
    return sv.isStaleByTime(av.staleTime) ? sv.fetch(av) : Promise.resolve(sv.state.data);
  }
  prefetchQuery(tv, ev, iv) {
    return this.fetchQuery(tv, ev, iv).then(noop$4).catch(noop$4);
  }
  fetchInfiniteQuery(tv, ev, iv) {
    const ov = parseQueryArgs(tv, ev, iv);
    return ov.behavior = infiniteQueryBehavior(), this.fetchQuery(ov);
  }
  prefetchInfiniteQuery(tv, ev, iv) {
    return this.fetchInfiniteQuery(tv, ev, iv).then(noop$4).catch(noop$4);
  }
  resumePausedMutations() {
    return this.mutationCache.resumePausedMutations();
  }
  getQueryCache() {
    return this.queryCache;
  }
  getMutationCache() {
    return this.mutationCache;
  }
  getLogger() {
    return this.logger;
  }
  getDefaultOptions() {
    return this.defaultOptions;
  }
  setDefaultOptions(tv) {
    this.defaultOptions = tv;
  }
  setQueryDefaults(tv, ev) {
    const iv = this.queryDefaults.find((ov) => hashQueryKey(tv) === hashQueryKey(ov.queryKey));
    iv ? iv.defaultOptions = ev : this.queryDefaults.push({
      queryKey: tv,
      defaultOptions: ev
    });
  }
  getQueryDefaults(tv) {
    if (!tv)
      return;
    const ev = this.queryDefaults.find((iv) => partialMatchKey(tv, iv.queryKey));
    return ev == null ? void 0 : ev.defaultOptions;
  }
  setMutationDefaults(tv, ev) {
    const iv = this.mutationDefaults.find((ov) => hashQueryKey(tv) === hashQueryKey(ov.mutationKey));
    iv ? iv.defaultOptions = ev : this.mutationDefaults.push({
      mutationKey: tv,
      defaultOptions: ev
    });
  }
  getMutationDefaults(tv) {
    if (!tv)
      return;
    const ev = this.mutationDefaults.find((iv) => partialMatchKey(tv, iv.mutationKey));
    return ev == null ? void 0 : ev.defaultOptions;
  }
  defaultQueryOptions(tv) {
    if (tv != null && tv._defaulted)
      return tv;
    const ev = {
      ...this.defaultOptions.queries,
      ...this.getQueryDefaults(tv == null ? void 0 : tv.queryKey),
      ...tv,
      _defaulted: !0
    };
    return !ev.queryHash && ev.queryKey && (ev.queryHash = hashQueryKeyByOptions(ev.queryKey, ev)), typeof ev.refetchOnReconnect > "u" && (ev.refetchOnReconnect = ev.networkMode !== "always"), typeof ev.useErrorBoundary > "u" && (ev.useErrorBoundary = !!ev.suspense), ev;
  }
  defaultMutationOptions(tv) {
    return tv != null && tv._defaulted ? tv : {
      ...this.defaultOptions.mutations,
      ...this.getMutationDefaults(tv == null ? void 0 : tv.mutationKey),
      ...tv,
      _defaulted: !0
    };
  }
  clear() {
    this.queryCache.clear(), this.mutationCache.clear();
  }
}
class QueryObserver extends Subscribable {
  constructor(tv, ev) {
    super(), this.client = tv, this.options = ev, this.trackedProps = /* @__PURE__ */ new Set(), this.selectError = null, this.bindMethods(), this.setOptions(ev);
  }
  bindMethods() {
    this.remove = this.remove.bind(this), this.refetch = this.refetch.bind(this);
  }
  onSubscribe() {
    this.listeners.size === 1 && (this.currentQuery.addObserver(this), shouldFetchOnMount(this.currentQuery, this.options) && this.executeFetch(), this.updateTimers());
  }
  onUnsubscribe() {
    this.hasListeners() || this.destroy();
  }
  shouldFetchOnReconnect() {
    return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);
  }
  shouldFetchOnWindowFocus() {
    return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);
  }
  destroy() {
    this.listeners = /* @__PURE__ */ new Set(), this.clearStaleTimeout(), this.clearRefetchInterval(), this.currentQuery.removeObserver(this);
  }
  setOptions(tv, ev) {
    const iv = this.options, ov = this.currentQuery;
    if (this.options = this.client.defaultQueryOptions(tv), shallowEqualObjects(iv, this.options) || this.client.getQueryCache().notify({
      type: "observerOptionsUpdated",
      query: this.currentQuery,
      observer: this
    }), typeof this.options.enabled < "u" && typeof this.options.enabled != "boolean")
      throw new Error("Expected enabled to be a boolean");
    this.options.queryKey || (this.options.queryKey = iv.queryKey), this.updateQuery();
    const av = this.hasListeners();
    av && shouldFetchOptionally(this.currentQuery, ov, this.options, iv) && this.executeFetch(), this.updateResult(ev), av && (this.currentQuery !== ov || this.options.enabled !== iv.enabled || this.options.staleTime !== iv.staleTime) && this.updateStaleTimeout();
    const sv = this.computeRefetchInterval();
    av && (this.currentQuery !== ov || this.options.enabled !== iv.enabled || sv !== this.currentRefetchInterval) && this.updateRefetchInterval(sv);
  }
  getOptimisticResult(tv) {
    const ev = this.client.getQueryCache().build(this.client, tv), iv = this.createResult(ev, tv);
    return shouldAssignObserverCurrentProperties(this, iv, tv) && (this.currentResult = iv, this.currentResultOptions = this.options, this.currentResultState = this.currentQuery.state), iv;
  }
  getCurrentResult() {
    return this.currentResult;
  }
  trackResult(tv) {
    const ev = {};
    return Object.keys(tv).forEach((iv) => {
      Object.defineProperty(ev, iv, {
        configurable: !1,
        enumerable: !0,
        get: () => (this.trackedProps.add(iv), tv[iv])
      });
    }), ev;
  }
  getCurrentQuery() {
    return this.currentQuery;
  }
  remove() {
    this.client.getQueryCache().remove(this.currentQuery);
  }
  refetch({
    refetchPage: tv,
    ...ev
  } = {}) {
    return this.fetch({
      ...ev,
      meta: {
        refetchPage: tv
      }
    });
  }
  fetchOptimistic(tv) {
    const ev = this.client.defaultQueryOptions(tv), iv = this.client.getQueryCache().build(this.client, ev);
    return iv.isFetchingOptimistic = !0, iv.fetch().then(() => this.createResult(iv, ev));
  }
  fetch(tv) {
    var ev;
    return this.executeFetch({
      ...tv,
      cancelRefetch: (ev = tv.cancelRefetch) != null ? ev : !0
    }).then(() => (this.updateResult(), this.currentResult));
  }
  executeFetch(tv) {
    this.updateQuery();
    let ev = this.currentQuery.fetch(this.options, tv);
    return tv != null && tv.throwOnError || (ev = ev.catch(noop$4)), ev;
  }
  updateStaleTimeout() {
    if (this.clearStaleTimeout(), isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime))
      return;
    const ev = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime) + 1;
    this.staleTimeoutId = setTimeout(() => {
      this.currentResult.isStale || this.updateResult();
    }, ev);
  }
  computeRefetchInterval() {
    var tv;
    return typeof this.options.refetchInterval == "function" ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (tv = this.options.refetchInterval) != null ? tv : !1;
  }
  updateRefetchInterval(tv) {
    this.clearRefetchInterval(), this.currentRefetchInterval = tv, !(isServer || this.options.enabled === !1 || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) && (this.refetchIntervalId = setInterval(() => {
      (this.options.refetchIntervalInBackground || focusManager.isFocused()) && this.executeFetch();
    }, this.currentRefetchInterval));
  }
  updateTimers() {
    this.updateStaleTimeout(), this.updateRefetchInterval(this.computeRefetchInterval());
  }
  clearStaleTimeout() {
    this.staleTimeoutId && (clearTimeout(this.staleTimeoutId), this.staleTimeoutId = void 0);
  }
  clearRefetchInterval() {
    this.refetchIntervalId && (clearInterval(this.refetchIntervalId), this.refetchIntervalId = void 0);
  }
  createResult(tv, ev) {
    const iv = this.currentQuery, ov = this.options, av = this.currentResult, sv = this.currentResultState, lv = this.currentResultOptions, uv = tv !== iv, cv = uv ? tv.state : this.currentQueryInitialState, dv = uv ? this.currentResult : this.previousQueryResult, {
      state: hv
    } = tv;
    let {
      dataUpdatedAt: pv,
      error: yv,
      errorUpdatedAt: Sv,
      fetchStatus: _v,
      status: Ev
    } = hv, wv = !1, xv = !1, Cv;
    if (ev._optimisticResults) {
      const Dv = this.hasListeners(), Vv = !Dv && shouldFetchOnMount(tv, ev), Gv = Dv && shouldFetchOptionally(tv, iv, ev, ov);
      (Vv || Gv) && (_v = canFetch(tv.options.networkMode) ? "fetching" : "paused", pv || (Ev = "loading")), ev._optimisticResults === "isRestoring" && (_v = "idle");
    }
    if (ev.keepPreviousData && !hv.dataUpdatedAt && dv != null && dv.isSuccess && Ev !== "error")
      Cv = dv.data, pv = dv.dataUpdatedAt, Ev = dv.status, wv = !0;
    else if (ev.select && typeof hv.data < "u")
      if (av && hv.data === (sv == null ? void 0 : sv.data) && ev.select === this.selectFn)
        Cv = this.selectResult;
      else
        try {
          this.selectFn = ev.select, Cv = ev.select(hv.data), Cv = replaceData(av == null ? void 0 : av.data, Cv, ev), this.selectResult = Cv, this.selectError = null;
        } catch (Dv) {
          this.selectError = Dv;
        }
    else
      Cv = hv.data;
    if (typeof ev.placeholderData < "u" && typeof Cv > "u" && Ev === "loading") {
      let Dv;
      if (av != null && av.isPlaceholderData && ev.placeholderData === (lv == null ? void 0 : lv.placeholderData))
        Dv = av.data;
      else if (Dv = typeof ev.placeholderData == "function" ? ev.placeholderData() : ev.placeholderData, ev.select && typeof Dv < "u")
        try {
          Dv = ev.select(Dv), this.selectError = null;
        } catch (Vv) {
          this.selectError = Vv;
        }
      typeof Dv < "u" && (Ev = "success", Cv = replaceData(av == null ? void 0 : av.data, Dv, ev), xv = !0);
    }
    this.selectError && (yv = this.selectError, Cv = this.selectResult, Sv = Date.now(), Ev = "error");
    const Av = _v === "fetching", Ov = Ev === "loading", Lv = Ev === "error";
    return {
      status: Ev,
      fetchStatus: _v,
      isLoading: Ov,
      isSuccess: Ev === "success",
      isError: Lv,
      isInitialLoading: Ov && Av,
      data: Cv,
      dataUpdatedAt: pv,
      error: yv,
      errorUpdatedAt: Sv,
      failureCount: hv.fetchFailureCount,
      failureReason: hv.fetchFailureReason,
      errorUpdateCount: hv.errorUpdateCount,
      isFetched: hv.dataUpdateCount > 0 || hv.errorUpdateCount > 0,
      isFetchedAfterMount: hv.dataUpdateCount > cv.dataUpdateCount || hv.errorUpdateCount > cv.errorUpdateCount,
      isFetching: Av,
      isRefetching: Av && !Ov,
      isLoadingError: Lv && hv.dataUpdatedAt === 0,
      isPaused: _v === "paused",
      isPlaceholderData: xv,
      isPreviousData: wv,
      isRefetchError: Lv && hv.dataUpdatedAt !== 0,
      isStale: isStale(tv, ev),
      refetch: this.refetch,
      remove: this.remove
    };
  }
  updateResult(tv) {
    const ev = this.currentResult, iv = this.createResult(this.currentQuery, this.options);
    if (this.currentResultState = this.currentQuery.state, this.currentResultOptions = this.options, shallowEqualObjects(iv, ev))
      return;
    this.currentResult = iv;
    const ov = {
      cache: !0
    }, av = () => {
      if (!ev)
        return !0;
      const {
        notifyOnChangeProps: sv
      } = this.options, lv = typeof sv == "function" ? sv() : sv;
      if (lv === "all" || !lv && !this.trackedProps.size)
        return !0;
      const uv = new Set(lv ?? this.trackedProps);
      return this.options.useErrorBoundary && uv.add("error"), Object.keys(this.currentResult).some((cv) => {
        const dv = cv;
        return this.currentResult[dv] !== ev[dv] && uv.has(dv);
      });
    };
    (tv == null ? void 0 : tv.listeners) !== !1 && av() && (ov.listeners = !0), this.notify({
      ...ov,
      ...tv
    });
  }
  updateQuery() {
    const tv = this.client.getQueryCache().build(this.client, this.options);
    if (tv === this.currentQuery)
      return;
    const ev = this.currentQuery;
    this.currentQuery = tv, this.currentQueryInitialState = tv.state, this.previousQueryResult = this.currentResult, this.hasListeners() && (ev == null || ev.removeObserver(this), tv.addObserver(this));
  }
  onQueryUpdate(tv) {
    const ev = {};
    tv.type === "success" ? ev.onSuccess = !tv.manual : tv.type === "error" && !isCancelledError(tv.error) && (ev.onError = !0), this.updateResult(ev), this.hasListeners() && this.updateTimers();
  }
  notify(tv) {
    notifyManager.batch(() => {
      if (tv.onSuccess) {
        var ev, iv, ov, av;
        (ev = (iv = this.options).onSuccess) == null || ev.call(iv, this.currentResult.data), (ov = (av = this.options).onSettled) == null || ov.call(av, this.currentResult.data, null);
      } else if (tv.onError) {
        var sv, lv, uv, cv;
        (sv = (lv = this.options).onError) == null || sv.call(lv, this.currentResult.error), (uv = (cv = this.options).onSettled) == null || uv.call(cv, void 0, this.currentResult.error);
      }
      tv.listeners && this.listeners.forEach(({
        listener: dv
      }) => {
        dv(this.currentResult);
      }), tv.cache && this.client.getQueryCache().notify({
        query: this.currentQuery,
        type: "observerResultsUpdated"
      });
    });
  }
}
function shouldLoadOnMount(rv, tv) {
  return tv.enabled !== !1 && !rv.state.dataUpdatedAt && !(rv.state.status === "error" && tv.retryOnMount === !1);
}
function shouldFetchOnMount(rv, tv) {
  return shouldLoadOnMount(rv, tv) || rv.state.dataUpdatedAt > 0 && shouldFetchOn(rv, tv, tv.refetchOnMount);
}
function shouldFetchOn(rv, tv, ev) {
  if (tv.enabled !== !1) {
    const iv = typeof ev == "function" ? ev(rv) : ev;
    return iv === "always" || iv !== !1 && isStale(rv, tv);
  }
  return !1;
}
function shouldFetchOptionally(rv, tv, ev, iv) {
  return ev.enabled !== !1 && (rv !== tv || iv.enabled === !1) && (!ev.suspense || rv.state.status !== "error") && isStale(rv, ev);
}
function isStale(rv, tv) {
  return rv.isStaleByTime(tv.staleTime);
}
function shouldAssignObserverCurrentProperties(rv, tv, ev) {
  return ev.keepPreviousData ? !1 : ev.placeholderData !== void 0 ? tv.isPlaceholderData : !shallowEqualObjects(rv.getCurrentResult(), tv);
}
let MutationObserver$1 = class extends Subscribable {
  constructor(tv, ev) {
    super(), this.client = tv, this.setOptions(ev), this.bindMethods(), this.updateResult();
  }
  bindMethods() {
    this.mutate = this.mutate.bind(this), this.reset = this.reset.bind(this);
  }
  setOptions(tv) {
    var ev;
    const iv = this.options;
    this.options = this.client.defaultMutationOptions(tv), shallowEqualObjects(iv, this.options) || this.client.getMutationCache().notify({
      type: "observerOptionsUpdated",
      mutation: this.currentMutation,
      observer: this
    }), (ev = this.currentMutation) == null || ev.setOptions(this.options);
  }
  onUnsubscribe() {
    if (!this.hasListeners()) {
      var tv;
      (tv = this.currentMutation) == null || tv.removeObserver(this);
    }
  }
  onMutationUpdate(tv) {
    this.updateResult();
    const ev = {
      listeners: !0
    };
    tv.type === "success" ? ev.onSuccess = !0 : tv.type === "error" && (ev.onError = !0), this.notify(ev);
  }
  getCurrentResult() {
    return this.currentResult;
  }
  reset() {
    this.currentMutation = void 0, this.updateResult(), this.notify({
      listeners: !0
    });
  }
  mutate(tv, ev) {
    return this.mutateOptions = ev, this.currentMutation && this.currentMutation.removeObserver(this), this.currentMutation = this.client.getMutationCache().build(this.client, {
      ...this.options,
      variables: typeof tv < "u" ? tv : this.options.variables
    }), this.currentMutation.addObserver(this), this.currentMutation.execute();
  }
  updateResult() {
    const tv = this.currentMutation ? this.currentMutation.state : getDefaultState(), ev = {
      ...tv,
      isLoading: tv.status === "loading",
      isSuccess: tv.status === "success",
      isError: tv.status === "error",
      isIdle: tv.status === "idle",
      mutate: this.mutate,
      reset: this.reset
    };
    this.currentResult = ev;
  }
  notify(tv) {
    notifyManager.batch(() => {
      if (this.mutateOptions && this.hasListeners()) {
        if (tv.onSuccess) {
          var ev, iv, ov, av;
          (ev = (iv = this.mutateOptions).onSuccess) == null || ev.call(iv, this.currentResult.data, this.currentResult.variables, this.currentResult.context), (ov = (av = this.mutateOptions).onSettled) == null || ov.call(av, this.currentResult.data, null, this.currentResult.variables, this.currentResult.context);
        } else if (tv.onError) {
          var sv, lv, uv, cv;
          (sv = (lv = this.mutateOptions).onError) == null || sv.call(lv, this.currentResult.error, this.currentResult.variables, this.currentResult.context), (uv = (cv = this.mutateOptions).onSettled) == null || uv.call(cv, void 0, this.currentResult.error, this.currentResult.variables, this.currentResult.context);
        }
      }
      tv.listeners && this.listeners.forEach(({
        listener: dv
      }) => {
        dv(this.currentResult);
      });
    });
  }
};
var reactDom = { exports: {} }, reactDom_production_min = {}, scheduler$1 = { exports: {} }, scheduler_production_min = {};
/**
 * @license React
 * scheduler.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
(function(rv) {
  function tv(j1, P1) {
    var D1 = j1.length;
    j1.push(P1);
    e:
      for (; 0 < D1; ) {
        var I1 = D1 - 1 >>> 1, F1 = j1[I1];
        if (0 < ov(F1, P1))
          j1[I1] = P1, j1[D1] = F1, D1 = I1;
        else
          break e;
      }
  }
  function ev(j1) {
    return j1.length === 0 ? null : j1[0];
  }
  function iv(j1) {
    if (j1.length === 0)
      return null;
    var P1 = j1[0], D1 = j1.pop();
    if (D1 !== P1) {
      j1[0] = D1;
      e:
        for (var I1 = 0, F1 = j1.length, M1 = F1 >>> 1; I1 < M1; ) {
          var U1 = 2 * (I1 + 1) - 1, H1 = j1[U1], k1 = U1 + 1, Q1 = j1[k1];
          if (0 > ov(H1, D1))
            k1 < F1 && 0 > ov(Q1, H1) ? (j1[I1] = Q1, j1[k1] = D1, I1 = k1) : (j1[I1] = H1, j1[U1] = D1, I1 = U1);
          else if (k1 < F1 && 0 > ov(Q1, D1))
            j1[I1] = Q1, j1[k1] = D1, I1 = k1;
          else
            break e;
        }
    }
    return P1;
  }
  function ov(j1, P1) {
    var D1 = j1.sortIndex - P1.sortIndex;
    return D1 !== 0 ? D1 : j1.id - P1.id;
  }
  if (typeof performance == "object" && typeof performance.now == "function") {
    var av = performance;
    rv.unstable_now = function() {
      return av.now();
    };
  } else {
    var sv = Date, lv = sv.now();
    rv.unstable_now = function() {
      return sv.now() - lv;
    };
  }
  var uv = [], cv = [], dv = 1, hv = null, pv = 3, yv = !1, Sv = !1, _v = !1, Ev = typeof setTimeout == "function" ? setTimeout : null, wv = typeof clearTimeout == "function" ? clearTimeout : null, xv = typeof setImmediate < "u" ? setImmediate : null;
  typeof navigator < "u" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 && navigator.scheduling.isInputPending.bind(navigator.scheduling);
  function Cv(j1) {
    for (var P1 = ev(cv); P1 !== null; ) {
      if (P1.callback === null)
        iv(cv);
      else if (P1.startTime <= j1)
        iv(cv), P1.sortIndex = P1.expirationTime, tv(uv, P1);
      else
        break;
      P1 = ev(cv);
    }
  }
  function Av(j1) {
    if (_v = !1, Cv(j1), !Sv)
      if (ev(uv) !== null)
        Sv = !0, B1(Ov);
      else {
        var P1 = ev(cv);
        P1 !== null && K1(Av, P1.startTime - j1);
      }
  }
  function Ov(j1, P1) {
    Sv = !1, _v && (_v = !1, wv(Dv), Dv = -1), yv = !0;
    var D1 = pv;
    try {
      for (Cv(P1), hv = ev(uv); hv !== null && (!(hv.expirationTime > P1) || j1 && !Yv()); ) {
        var I1 = hv.callback;
        if (typeof I1 == "function") {
          hv.callback = null, pv = hv.priorityLevel;
          var F1 = I1(hv.expirationTime <= P1);
          P1 = rv.unstable_now(), typeof F1 == "function" ? hv.callback = F1 : hv === ev(uv) && iv(uv), Cv(P1);
        } else
          iv(uv);
        hv = ev(uv);
      }
      if (hv !== null)
        var M1 = !0;
      else {
        var U1 = ev(cv);
        U1 !== null && K1(Av, U1.startTime - P1), M1 = !1;
      }
      return M1;
    } finally {
      hv = null, pv = D1, yv = !1;
    }
  }
  var Lv = !1, jv = null, Dv = -1, Vv = 5, Gv = -1;
  function Yv() {
    return !(rv.unstable_now() - Gv < Vv);
  }
  function Xv() {
    if (jv !== null) {
      var j1 = rv.unstable_now();
      Gv = j1;
      var P1 = !0;
      try {
        P1 = jv(!0, j1);
      } finally {
        P1 ? L1() : (Lv = !1, jv = null);
      }
    } else
      Lv = !1;
  }
  var L1;
  if (typeof xv == "function")
    L1 = function() {
      xv(Xv);
    };
  else if (typeof MessageChannel < "u") {
    var Bv = new MessageChannel(), Qv = Bv.port2;
    Bv.port1.onmessage = Xv, L1 = function() {
      Qv.postMessage(null);
    };
  } else
    L1 = function() {
      Ev(Xv, 0);
    };
  function B1(j1) {
    jv = j1, Lv || (Lv = !0, L1());
  }
  function K1(j1, P1) {
    Dv = Ev(function() {
      j1(rv.unstable_now());
    }, P1);
  }
  rv.unstable_IdlePriority = 5, rv.unstable_ImmediatePriority = 1, rv.unstable_LowPriority = 4, rv.unstable_NormalPriority = 3, rv.unstable_Profiling = null, rv.unstable_UserBlockingPriority = 2, rv.unstable_cancelCallback = function(j1) {
    j1.callback = null;
  }, rv.unstable_continueExecution = function() {
    Sv || yv || (Sv = !0, B1(Ov));
  }, rv.unstable_forceFrameRate = function(j1) {
    0 > j1 || 125 < j1 ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : Vv = 0 < j1 ? Math.floor(1e3 / j1) : 5;
  }, rv.unstable_getCurrentPriorityLevel = function() {
    return pv;
  }, rv.unstable_getFirstCallbackNode = function() {
    return ev(uv);
  }, rv.unstable_next = function(j1) {
    switch (pv) {
      case 1:
      case 2:
      case 3:
        var P1 = 3;
        break;
      default:
        P1 = pv;
    }
    var D1 = pv;
    pv = P1;
    try {
      return j1();
    } finally {
      pv = D1;
    }
  }, rv.unstable_pauseExecution = function() {
  }, rv.unstable_requestPaint = function() {
  }, rv.unstable_runWithPriority = function(j1, P1) {
    switch (j1) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
        break;
      default:
        j1 = 3;
    }
    var D1 = pv;
    pv = j1;
    try {
      return P1();
    } finally {
      pv = D1;
    }
  }, rv.unstable_scheduleCallback = function(j1, P1, D1) {
    var I1 = rv.unstable_now();
    switch (typeof D1 == "object" && D1 !== null ? (D1 = D1.delay, D1 = typeof D1 == "number" && 0 < D1 ? I1 + D1 : I1) : D1 = I1, j1) {
      case 1:
        var F1 = -1;
        break;
      case 2:
        F1 = 250;
        break;
      case 5:
        F1 = 1073741823;
        break;
      case 4:
        F1 = 1e4;
        break;
      default:
        F1 = 5e3;
    }
    return F1 = D1 + F1, j1 = { id: dv++, callback: P1, priorityLevel: j1, startTime: D1, expirationTime: F1, sortIndex: -1 }, D1 > I1 ? (j1.sortIndex = D1, tv(cv, j1), ev(uv) === null && j1 === ev(cv) && (_v ? (wv(Dv), Dv = -1) : _v = !0, K1(Av, D1 - I1))) : (j1.sortIndex = F1, tv(uv, j1), Sv || yv || (Sv = !0, B1(Ov))), j1;
  }, rv.unstable_shouldYield = Yv, rv.unstable_wrapCallback = function(j1) {
    var P1 = pv;
    return function() {
      var D1 = pv;
      pv = P1;
      try {
        return j1.apply(this, arguments);
      } finally {
        pv = D1;
      }
    };
  };
})(scheduler_production_min);
scheduler$1.exports = scheduler_production_min;
var schedulerExports = scheduler$1.exports;
/**
 * @license React
 * react-dom.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var aa$4 = reactExports, ca$4 = schedulerExports;
function p$3(rv) {
  for (var tv = "https://reactjs.org/docs/error-decoder.html?invariant=" + rv, ev = 1; ev < arguments.length; ev++)
    tv += "&args[]=" + encodeURIComponent(arguments[ev]);
  return "Minified React error #" + rv + "; visit " + tv + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
}
var da$4 = /* @__PURE__ */ new Set(), ea$4 = {};
function fa$3(rv, tv) {
  ha$4(rv, tv), ha$4(rv + "Capture", tv);
}
function ha$4(rv, tv) {
  for (ea$4[rv] = tv, rv = 0; rv < tv.length; rv++)
    da$4.add(tv[rv]);
}
var ia$4 = !(typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u"), ja$3 = Object.prototype.hasOwnProperty, ka$4 = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, la$4 = {}, ma$3 = {};
function oa$3(rv) {
  return ja$3.call(ma$3, rv) ? !0 : ja$3.call(la$4, rv) ? !1 : ka$4.test(rv) ? ma$3[rv] = !0 : (la$4[rv] = !0, !1);
}
function pa$3(rv, tv, ev, iv) {
  if (ev !== null && ev.type === 0)
    return !1;
  switch (typeof tv) {
    case "function":
    case "symbol":
      return !0;
    case "boolean":
      return iv ? !1 : ev !== null ? !ev.acceptsBooleans : (rv = rv.toLowerCase().slice(0, 5), rv !== "data-" && rv !== "aria-");
    default:
      return !1;
  }
}
function qa$4(rv, tv, ev, iv) {
  if (tv === null || typeof tv > "u" || pa$3(rv, tv, ev, iv))
    return !0;
  if (iv)
    return !1;
  if (ev !== null)
    switch (ev.type) {
      case 3:
        return !tv;
      case 4:
        return tv === !1;
      case 5:
        return isNaN(tv);
      case 6:
        return isNaN(tv) || 1 > tv;
    }
  return !1;
}
function v$2(rv, tv, ev, iv, ov, av, sv) {
  this.acceptsBooleans = tv === 2 || tv === 3 || tv === 4, this.attributeName = iv, this.attributeNamespace = ov, this.mustUseProperty = ev, this.propertyName = rv, this.type = tv, this.sanitizeURL = av, this.removeEmptyString = sv;
}
var z$3 = {};
"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(rv) {
  z$3[rv] = new v$2(rv, 0, !1, rv, null, !1, !1);
});
[["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(rv) {
  var tv = rv[0];
  z$3[tv] = new v$2(tv, 1, !1, rv[1], null, !1, !1);
});
["contentEditable", "draggable", "spellCheck", "value"].forEach(function(rv) {
  z$3[rv] = new v$2(rv, 2, !1, rv.toLowerCase(), null, !1, !1);
});
["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(rv) {
  z$3[rv] = new v$2(rv, 2, !1, rv, null, !1, !1);
});
"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(rv) {
  z$3[rv] = new v$2(rv, 3, !1, rv.toLowerCase(), null, !1, !1);
});
["checked", "multiple", "muted", "selected"].forEach(function(rv) {
  z$3[rv] = new v$2(rv, 3, !0, rv, null, !1, !1);
});
["capture", "download"].forEach(function(rv) {
  z$3[rv] = new v$2(rv, 4, !1, rv, null, !1, !1);
});
["cols", "rows", "size", "span"].forEach(function(rv) {
  z$3[rv] = new v$2(rv, 6, !1, rv, null, !1, !1);
});
["rowSpan", "start"].forEach(function(rv) {
  z$3[rv] = new v$2(rv, 5, !1, rv.toLowerCase(), null, !1, !1);
});
var ra$4 = /[\-:]([a-z])/g;
function sa$4(rv) {
  return rv[1].toUpperCase();
}
"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(rv) {
  var tv = rv.replace(
    ra$4,
    sa$4
  );
  z$3[tv] = new v$2(tv, 1, !1, rv, null, !1, !1);
});
"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(rv) {
  var tv = rv.replace(ra$4, sa$4);
  z$3[tv] = new v$2(tv, 1, !1, rv, "http://www.w3.org/1999/xlink", !1, !1);
});
["xml:base", "xml:lang", "xml:space"].forEach(function(rv) {
  var tv = rv.replace(ra$4, sa$4);
  z$3[tv] = new v$2(tv, 1, !1, rv, "http://www.w3.org/XML/1998/namespace", !1, !1);
});
["tabIndex", "crossOrigin"].forEach(function(rv) {
  z$3[rv] = new v$2(rv, 1, !1, rv.toLowerCase(), null, !1, !1);
});
z$3.xlinkHref = new v$2("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1);
["src", "href", "action", "formAction"].forEach(function(rv) {
  z$3[rv] = new v$2(rv, 1, !1, rv.toLowerCase(), null, !0, !0);
});
function ta$4(rv, tv, ev, iv) {
  var ov = z$3.hasOwnProperty(tv) ? z$3[tv] : null;
  (ov !== null ? ov.type !== 0 : iv || !(2 < tv.length) || tv[0] !== "o" && tv[0] !== "O" || tv[1] !== "n" && tv[1] !== "N") && (qa$4(tv, ev, ov, iv) && (ev = null), iv || ov === null ? oa$3(tv) && (ev === null ? rv.removeAttribute(tv) : rv.setAttribute(tv, "" + ev)) : ov.mustUseProperty ? rv[ov.propertyName] = ev === null ? ov.type === 3 ? !1 : "" : ev : (tv = ov.attributeName, iv = ov.attributeNamespace, ev === null ? rv.removeAttribute(tv) : (ov = ov.type, ev = ov === 3 || ov === 4 && ev === !0 ? "" : "" + ev, iv ? rv.setAttributeNS(iv, tv, ev) : rv.setAttribute(tv, ev))));
}
var ua$4 = aa$4.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, va$4 = Symbol.for("react.element"), wa$3 = Symbol.for("react.portal"), ya$3 = Symbol.for("react.fragment"), za$3 = Symbol.for("react.strict_mode"), Aa$3 = Symbol.for("react.profiler"), Ba$4 = Symbol.for("react.provider"), Ca$3 = Symbol.for("react.context"), Da$4 = Symbol.for("react.forward_ref"), Ea$4 = Symbol.for("react.suspense"), Fa$3 = Symbol.for("react.suspense_list"), Ga$3 = Symbol.for("react.memo"), Ha$2 = Symbol.for("react.lazy"), Ia$4 = Symbol.for("react.offscreen"), Ja$4 = Symbol.iterator;
function Ka$3(rv) {
  return rv === null || typeof rv != "object" ? null : (rv = Ja$4 && rv[Ja$4] || rv["@@iterator"], typeof rv == "function" ? rv : null);
}
var A$2 = Object.assign, La$4;
function Ma$4(rv) {
  if (La$4 === void 0)
    try {
      throw Error();
    } catch (ev) {
      var tv = ev.stack.trim().match(/\n( *(at )?)/);
      La$4 = tv && tv[1] || "";
    }
  return `
` + La$4 + rv;
}
var Na$4 = !1;
function Oa$3(rv, tv) {
  if (!rv || Na$4)
    return "";
  Na$4 = !0;
  var ev = Error.prepareStackTrace;
  Error.prepareStackTrace = void 0;
  try {
    if (tv)
      if (tv = function() {
        throw Error();
      }, Object.defineProperty(tv.prototype, "props", { set: function() {
        throw Error();
      } }), typeof Reflect == "object" && Reflect.construct) {
        try {
          Reflect.construct(tv, []);
        } catch (cv) {
          var iv = cv;
        }
        Reflect.construct(rv, [], tv);
      } else {
        try {
          tv.call();
        } catch (cv) {
          iv = cv;
        }
        rv.call(tv.prototype);
      }
    else {
      try {
        throw Error();
      } catch (cv) {
        iv = cv;
      }
      rv();
    }
  } catch (cv) {
    if (cv && iv && typeof cv.stack == "string") {
      for (var ov = cv.stack.split(`
`), av = iv.stack.split(`
`), sv = ov.length - 1, lv = av.length - 1; 1 <= sv && 0 <= lv && ov[sv] !== av[lv]; )
        lv--;
      for (; 1 <= sv && 0 <= lv; sv--, lv--)
        if (ov[sv] !== av[lv]) {
          if (sv !== 1 || lv !== 1)
            do
              if (sv--, lv--, 0 > lv || ov[sv] !== av[lv]) {
                var uv = `
` + ov[sv].replace(" at new ", " at ");
                return rv.displayName && uv.includes("<anonymous>") && (uv = uv.replace("<anonymous>", rv.displayName)), uv;
              }
            while (1 <= sv && 0 <= lv);
          break;
        }
    }
  } finally {
    Na$4 = !1, Error.prepareStackTrace = ev;
  }
  return (rv = rv ? rv.displayName || rv.name : "") ? Ma$4(rv) : "";
}
function Pa$4(rv) {
  switch (rv.tag) {
    case 5:
      return Ma$4(rv.type);
    case 16:
      return Ma$4("Lazy");
    case 13:
      return Ma$4("Suspense");
    case 19:
      return Ma$4("SuspenseList");
    case 0:
    case 2:
    case 15:
      return rv = Oa$3(rv.type, !1), rv;
    case 11:
      return rv = Oa$3(rv.type.render, !1), rv;
    case 1:
      return rv = Oa$3(rv.type, !0), rv;
    default:
      return "";
  }
}
function Qa$4(rv) {
  if (rv == null)
    return null;
  if (typeof rv == "function")
    return rv.displayName || rv.name || null;
  if (typeof rv == "string")
    return rv;
  switch (rv) {
    case ya$3:
      return "Fragment";
    case wa$3:
      return "Portal";
    case Aa$3:
      return "Profiler";
    case za$3:
      return "StrictMode";
    case Ea$4:
      return "Suspense";
    case Fa$3:
      return "SuspenseList";
  }
  if (typeof rv == "object")
    switch (rv.$$typeof) {
      case Ca$3:
        return (rv.displayName || "Context") + ".Consumer";
      case Ba$4:
        return (rv._context.displayName || "Context") + ".Provider";
      case Da$4:
        var tv = rv.render;
        return rv = rv.displayName, rv || (rv = tv.displayName || tv.name || "", rv = rv !== "" ? "ForwardRef(" + rv + ")" : "ForwardRef"), rv;
      case Ga$3:
        return tv = rv.displayName || null, tv !== null ? tv : Qa$4(rv.type) || "Memo";
      case Ha$2:
        tv = rv._payload, rv = rv._init;
        try {
          return Qa$4(rv(tv));
        } catch {
        }
    }
  return null;
}
function Ra$4(rv) {
  var tv = rv.type;
  switch (rv.tag) {
    case 24:
      return "Cache";
    case 9:
      return (tv.displayName || "Context") + ".Consumer";
    case 10:
      return (tv._context.displayName || "Context") + ".Provider";
    case 18:
      return "DehydratedFragment";
    case 11:
      return rv = tv.render, rv = rv.displayName || rv.name || "", tv.displayName || (rv !== "" ? "ForwardRef(" + rv + ")" : "ForwardRef");
    case 7:
      return "Fragment";
    case 5:
      return tv;
    case 4:
      return "Portal";
    case 3:
      return "Root";
    case 6:
      return "Text";
    case 16:
      return Qa$4(tv);
    case 8:
      return tv === za$3 ? "StrictMode" : "Mode";
    case 22:
      return "Offscreen";
    case 12:
      return "Profiler";
    case 21:
      return "Scope";
    case 13:
      return "Suspense";
    case 19:
      return "SuspenseList";
    case 25:
      return "TracingMarker";
    case 1:
    case 0:
    case 17:
    case 2:
    case 14:
    case 15:
      if (typeof tv == "function")
        return tv.displayName || tv.name || null;
      if (typeof tv == "string")
        return tv;
  }
  return null;
}
function Sa$4(rv) {
  switch (typeof rv) {
    case "boolean":
    case "number":
    case "string":
    case "undefined":
      return rv;
    case "object":
      return rv;
    default:
      return "";
  }
}
function Ta$3(rv) {
  var tv = rv.type;
  return (rv = rv.nodeName) && rv.toLowerCase() === "input" && (tv === "checkbox" || tv === "radio");
}
function Ua$4(rv) {
  var tv = Ta$3(rv) ? "checked" : "value", ev = Object.getOwnPropertyDescriptor(rv.constructor.prototype, tv), iv = "" + rv[tv];
  if (!rv.hasOwnProperty(tv) && typeof ev < "u" && typeof ev.get == "function" && typeof ev.set == "function") {
    var ov = ev.get, av = ev.set;
    return Object.defineProperty(rv, tv, { configurable: !0, get: function() {
      return ov.call(this);
    }, set: function(sv) {
      iv = "" + sv, av.call(this, sv);
    } }), Object.defineProperty(rv, tv, { enumerable: ev.enumerable }), { getValue: function() {
      return iv;
    }, setValue: function(sv) {
      iv = "" + sv;
    }, stopTracking: function() {
      rv._valueTracker = null, delete rv[tv];
    } };
  }
}
function Va$3(rv) {
  rv._valueTracker || (rv._valueTracker = Ua$4(rv));
}
function Wa$3(rv) {
  if (!rv)
    return !1;
  var tv = rv._valueTracker;
  if (!tv)
    return !0;
  var ev = tv.getValue(), iv = "";
  return rv && (iv = Ta$3(rv) ? rv.checked ? "true" : "false" : rv.value), rv = iv, rv !== ev ? (tv.setValue(rv), !0) : !1;
}
function Xa$4(rv) {
  if (rv = rv || (typeof document < "u" ? document : void 0), typeof rv > "u")
    return null;
  try {
    return rv.activeElement || rv.body;
  } catch {
    return rv.body;
  }
}
function Ya$3(rv, tv) {
  var ev = tv.checked;
  return A$2({}, tv, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: ev ?? rv._wrapperState.initialChecked });
}
function Za$4(rv, tv) {
  var ev = tv.defaultValue == null ? "" : tv.defaultValue, iv = tv.checked != null ? tv.checked : tv.defaultChecked;
  ev = Sa$4(tv.value != null ? tv.value : ev), rv._wrapperState = { initialChecked: iv, initialValue: ev, controlled: tv.type === "checkbox" || tv.type === "radio" ? tv.checked != null : tv.value != null };
}
function ab(rv, tv) {
  tv = tv.checked, tv != null && ta$4(rv, "checked", tv, !1);
}
function bb(rv, tv) {
  ab(rv, tv);
  var ev = Sa$4(tv.value), iv = tv.type;
  if (ev != null)
    iv === "number" ? (ev === 0 && rv.value === "" || rv.value != ev) && (rv.value = "" + ev) : rv.value !== "" + ev && (rv.value = "" + ev);
  else if (iv === "submit" || iv === "reset") {
    rv.removeAttribute("value");
    return;
  }
  tv.hasOwnProperty("value") ? cb(rv, tv.type, ev) : tv.hasOwnProperty("defaultValue") && cb(rv, tv.type, Sa$4(tv.defaultValue)), tv.checked == null && tv.defaultChecked != null && (rv.defaultChecked = !!tv.defaultChecked);
}
function db(rv, tv, ev) {
  if (tv.hasOwnProperty("value") || tv.hasOwnProperty("defaultValue")) {
    var iv = tv.type;
    if (!(iv !== "submit" && iv !== "reset" || tv.value !== void 0 && tv.value !== null))
      return;
    tv = "" + rv._wrapperState.initialValue, ev || tv === rv.value || (rv.value = tv), rv.defaultValue = tv;
  }
  ev = rv.name, ev !== "" && (rv.name = ""), rv.defaultChecked = !!rv._wrapperState.initialChecked, ev !== "" && (rv.name = ev);
}
function cb(rv, tv, ev) {
  (tv !== "number" || Xa$4(rv.ownerDocument) !== rv) && (ev == null ? rv.defaultValue = "" + rv._wrapperState.initialValue : rv.defaultValue !== "" + ev && (rv.defaultValue = "" + ev));
}
var eb = Array.isArray;
function fb(rv, tv, ev, iv) {
  if (rv = rv.options, tv) {
    tv = {};
    for (var ov = 0; ov < ev.length; ov++)
      tv["$" + ev[ov]] = !0;
    for (ev = 0; ev < rv.length; ev++)
      ov = tv.hasOwnProperty("$" + rv[ev].value), rv[ev].selected !== ov && (rv[ev].selected = ov), ov && iv && (rv[ev].defaultSelected = !0);
  } else {
    for (ev = "" + Sa$4(ev), tv = null, ov = 0; ov < rv.length; ov++) {
      if (rv[ov].value === ev) {
        rv[ov].selected = !0, iv && (rv[ov].defaultSelected = !0);
        return;
      }
      tv !== null || rv[ov].disabled || (tv = rv[ov]);
    }
    tv !== null && (tv.selected = !0);
  }
}
function gb(rv, tv) {
  if (tv.dangerouslySetInnerHTML != null)
    throw Error(p$3(91));
  return A$2({}, tv, { value: void 0, defaultValue: void 0, children: "" + rv._wrapperState.initialValue });
}
function hb(rv, tv) {
  var ev = tv.value;
  if (ev == null) {
    if (ev = tv.children, tv = tv.defaultValue, ev != null) {
      if (tv != null)
        throw Error(p$3(92));
      if (eb(ev)) {
        if (1 < ev.length)
          throw Error(p$3(93));
        ev = ev[0];
      }
      tv = ev;
    }
    tv == null && (tv = ""), ev = tv;
  }
  rv._wrapperState = { initialValue: Sa$4(ev) };
}
function ib(rv, tv) {
  var ev = Sa$4(tv.value), iv = Sa$4(tv.defaultValue);
  ev != null && (ev = "" + ev, ev !== rv.value && (rv.value = ev), tv.defaultValue == null && rv.defaultValue !== ev && (rv.defaultValue = ev)), iv != null && (rv.defaultValue = "" + iv);
}
function jb$1(rv) {
  var tv = rv.textContent;
  tv === rv._wrapperState.initialValue && tv !== "" && tv !== null && (rv.value = tv);
}
function kb(rv) {
  switch (rv) {
    case "svg":
      return "http://www.w3.org/2000/svg";
    case "math":
      return "http://www.w3.org/1998/Math/MathML";
    default:
      return "http://www.w3.org/1999/xhtml";
  }
}
function lb(rv, tv) {
  return rv == null || rv === "http://www.w3.org/1999/xhtml" ? kb(tv) : rv === "http://www.w3.org/2000/svg" && tv === "foreignObject" ? "http://www.w3.org/1999/xhtml" : rv;
}
var mb, nb = function(rv) {
  return typeof MSApp < "u" && MSApp.execUnsafeLocalFunction ? function(tv, ev, iv, ov) {
    MSApp.execUnsafeLocalFunction(function() {
      return rv(tv, ev, iv, ov);
    });
  } : rv;
}(function(rv, tv) {
  if (rv.namespaceURI !== "http://www.w3.org/2000/svg" || "innerHTML" in rv)
    rv.innerHTML = tv;
  else {
    for (mb = mb || document.createElement("div"), mb.innerHTML = "<svg>" + tv.valueOf().toString() + "</svg>", tv = mb.firstChild; rv.firstChild; )
      rv.removeChild(rv.firstChild);
    for (; tv.firstChild; )
      rv.appendChild(tv.firstChild);
  }
});
function ob(rv, tv) {
  if (tv) {
    var ev = rv.firstChild;
    if (ev && ev === rv.lastChild && ev.nodeType === 3) {
      ev.nodeValue = tv;
      return;
    }
  }
  rv.textContent = tv;
}
var pb = {
  animationIterationCount: !0,
  aspectRatio: !0,
  borderImageOutset: !0,
  borderImageSlice: !0,
  borderImageWidth: !0,
  boxFlex: !0,
  boxFlexGroup: !0,
  boxOrdinalGroup: !0,
  columnCount: !0,
  columns: !0,
  flex: !0,
  flexGrow: !0,
  flexPositive: !0,
  flexShrink: !0,
  flexNegative: !0,
  flexOrder: !0,
  gridArea: !0,
  gridRow: !0,
  gridRowEnd: !0,
  gridRowSpan: !0,
  gridRowStart: !0,
  gridColumn: !0,
  gridColumnEnd: !0,
  gridColumnSpan: !0,
  gridColumnStart: !0,
  fontWeight: !0,
  lineClamp: !0,
  lineHeight: !0,
  opacity: !0,
  order: !0,
  orphans: !0,
  tabSize: !0,
  widows: !0,
  zIndex: !0,
  zoom: !0,
  fillOpacity: !0,
  floodOpacity: !0,
  stopOpacity: !0,
  strokeDasharray: !0,
  strokeDashoffset: !0,
  strokeMiterlimit: !0,
  strokeOpacity: !0,
  strokeWidth: !0
}, qb$1 = ["Webkit", "ms", "Moz", "O"];
Object.keys(pb).forEach(function(rv) {
  qb$1.forEach(function(tv) {
    tv = tv + rv.charAt(0).toUpperCase() + rv.substring(1), pb[tv] = pb[rv];
  });
});
function rb(rv, tv, ev) {
  return tv == null || typeof tv == "boolean" || tv === "" ? "" : ev || typeof tv != "number" || tv === 0 || pb.hasOwnProperty(rv) && pb[rv] ? ("" + tv).trim() : tv + "px";
}
function sb(rv, tv) {
  rv = rv.style;
  for (var ev in tv)
    if (tv.hasOwnProperty(ev)) {
      var iv = ev.indexOf("--") === 0, ov = rb(ev, tv[ev], iv);
      ev === "float" && (ev = "cssFloat"), iv ? rv.setProperty(ev, ov) : rv[ev] = ov;
    }
}
var tb = A$2({ menuitem: !0 }, { area: !0, base: !0, br: !0, col: !0, embed: !0, hr: !0, img: !0, input: !0, keygen: !0, link: !0, meta: !0, param: !0, source: !0, track: !0, wbr: !0 });
function ub(rv, tv) {
  if (tv) {
    if (tb[rv] && (tv.children != null || tv.dangerouslySetInnerHTML != null))
      throw Error(p$3(137, rv));
    if (tv.dangerouslySetInnerHTML != null) {
      if (tv.children != null)
        throw Error(p$3(60));
      if (typeof tv.dangerouslySetInnerHTML != "object" || !("__html" in tv.dangerouslySetInnerHTML))
        throw Error(p$3(61));
    }
    if (tv.style != null && typeof tv.style != "object")
      throw Error(p$3(62));
  }
}
function vb(rv, tv) {
  if (rv.indexOf("-") === -1)
    return typeof tv.is == "string";
  switch (rv) {
    case "annotation-xml":
    case "color-profile":
    case "font-face":
    case "font-face-src":
    case "font-face-uri":
    case "font-face-format":
    case "font-face-name":
    case "missing-glyph":
      return !1;
    default:
      return !0;
  }
}
var wb = null;
function xb(rv) {
  return rv = rv.target || rv.srcElement || window, rv.correspondingUseElement && (rv = rv.correspondingUseElement), rv.nodeType === 3 ? rv.parentNode : rv;
}
var yb = null, zb$1 = null, Ab = null;
function Bb$1(rv) {
  if (rv = Cb(rv)) {
    if (typeof yb != "function")
      throw Error(p$3(280));
    var tv = rv.stateNode;
    tv && (tv = Db(tv), yb(rv.stateNode, rv.type, tv));
  }
}
function Eb(rv) {
  zb$1 ? Ab ? Ab.push(rv) : Ab = [rv] : zb$1 = rv;
}
function Fb$1() {
  if (zb$1) {
    var rv = zb$1, tv = Ab;
    if (Ab = zb$1 = null, Bb$1(rv), tv)
      for (rv = 0; rv < tv.length; rv++)
        Bb$1(tv[rv]);
  }
}
function Gb$1(rv, tv) {
  return rv(tv);
}
function Hb$1() {
}
var Ib = !1;
function Jb$1(rv, tv, ev) {
  if (Ib)
    return rv(tv, ev);
  Ib = !0;
  try {
    return Gb$1(rv, tv, ev);
  } finally {
    Ib = !1, (zb$1 !== null || Ab !== null) && (Hb$1(), Fb$1());
  }
}
function Kb$1(rv, tv) {
  var ev = rv.stateNode;
  if (ev === null)
    return null;
  var iv = Db(ev);
  if (iv === null)
    return null;
  ev = iv[tv];
  e:
    switch (tv) {
      case "onClick":
      case "onClickCapture":
      case "onDoubleClick":
      case "onDoubleClickCapture":
      case "onMouseDown":
      case "onMouseDownCapture":
      case "onMouseMove":
      case "onMouseMoveCapture":
      case "onMouseUp":
      case "onMouseUpCapture":
      case "onMouseEnter":
        (iv = !iv.disabled) || (rv = rv.type, iv = !(rv === "button" || rv === "input" || rv === "select" || rv === "textarea")), rv = !iv;
        break e;
      default:
        rv = !1;
    }
  if (rv)
    return null;
  if (ev && typeof ev != "function")
    throw Error(p$3(231, tv, typeof ev));
  return ev;
}
var Lb = !1;
if (ia$4)
  try {
    var Mb$1 = {};
    Object.defineProperty(Mb$1, "passive", { get: function() {
      Lb = !0;
    } }), window.addEventListener("test", Mb$1, Mb$1), window.removeEventListener("test", Mb$1, Mb$1);
  } catch {
    Lb = !1;
  }
function Nb(rv, tv, ev, iv, ov, av, sv, lv, uv) {
  var cv = Array.prototype.slice.call(arguments, 3);
  try {
    tv.apply(ev, cv);
  } catch (dv) {
    this.onError(dv);
  }
}
var Ob = !1, Pb = null, Qb$1 = !1, Rb = null, Sb = { onError: function(rv) {
  Ob = !0, Pb = rv;
} };
function Tb(rv, tv, ev, iv, ov, av, sv, lv, uv) {
  Ob = !1, Pb = null, Nb.apply(Sb, arguments);
}
function Ub$1(rv, tv, ev, iv, ov, av, sv, lv, uv) {
  if (Tb.apply(this, arguments), Ob) {
    if (Ob) {
      var cv = Pb;
      Ob = !1, Pb = null;
    } else
      throw Error(p$3(198));
    Qb$1 || (Qb$1 = !0, Rb = cv);
  }
}
function Vb$1(rv) {
  var tv = rv, ev = rv;
  if (rv.alternate)
    for (; tv.return; )
      tv = tv.return;
  else {
    rv = tv;
    do
      tv = rv, tv.flags & 4098 && (ev = tv.return), rv = tv.return;
    while (rv);
  }
  return tv.tag === 3 ? ev : null;
}
function Wb$1(rv) {
  if (rv.tag === 13) {
    var tv = rv.memoizedState;
    if (tv === null && (rv = rv.alternate, rv !== null && (tv = rv.memoizedState)), tv !== null)
      return tv.dehydrated;
  }
  return null;
}
function Xb$1(rv) {
  if (Vb$1(rv) !== rv)
    throw Error(p$3(188));
}
function Yb$1(rv) {
  var tv = rv.alternate;
  if (!tv) {
    if (tv = Vb$1(rv), tv === null)
      throw Error(p$3(188));
    return tv !== rv ? null : rv;
  }
  for (var ev = rv, iv = tv; ; ) {
    var ov = ev.return;
    if (ov === null)
      break;
    var av = ov.alternate;
    if (av === null) {
      if (iv = ov.return, iv !== null) {
        ev = iv;
        continue;
      }
      break;
    }
    if (ov.child === av.child) {
      for (av = ov.child; av; ) {
        if (av === ev)
          return Xb$1(ov), rv;
        if (av === iv)
          return Xb$1(ov), tv;
        av = av.sibling;
      }
      throw Error(p$3(188));
    }
    if (ev.return !== iv.return)
      ev = ov, iv = av;
    else {
      for (var sv = !1, lv = ov.child; lv; ) {
        if (lv === ev) {
          sv = !0, ev = ov, iv = av;
          break;
        }
        if (lv === iv) {
          sv = !0, iv = ov, ev = av;
          break;
        }
        lv = lv.sibling;
      }
      if (!sv) {
        for (lv = av.child; lv; ) {
          if (lv === ev) {
            sv = !0, ev = av, iv = ov;
            break;
          }
          if (lv === iv) {
            sv = !0, iv = av, ev = ov;
            break;
          }
          lv = lv.sibling;
        }
        if (!sv)
          throw Error(p$3(189));
      }
    }
    if (ev.alternate !== iv)
      throw Error(p$3(190));
  }
  if (ev.tag !== 3)
    throw Error(p$3(188));
  return ev.stateNode.current === ev ? rv : tv;
}
function Zb$1(rv) {
  return rv = Yb$1(rv), rv !== null ? $b$1(rv) : null;
}
function $b$1(rv) {
  if (rv.tag === 5 || rv.tag === 6)
    return rv;
  for (rv = rv.child; rv !== null; ) {
    var tv = $b$1(rv);
    if (tv !== null)
      return tv;
    rv = rv.sibling;
  }
  return null;
}
var ac$3 = ca$4.unstable_scheduleCallback, bc$3 = ca$4.unstable_cancelCallback, cc$2 = ca$4.unstable_shouldYield, dc$3 = ca$4.unstable_requestPaint, B$2 = ca$4.unstable_now, ec$4 = ca$4.unstable_getCurrentPriorityLevel, fc$2 = ca$4.unstable_ImmediatePriority, gc$2 = ca$4.unstable_UserBlockingPriority, hc$2 = ca$4.unstable_NormalPriority, ic$4 = ca$4.unstable_LowPriority, jc$3 = ca$4.unstable_IdlePriority, kc$1 = null, lc$3 = null;
function mc$2(rv) {
  if (lc$3 && typeof lc$3.onCommitFiberRoot == "function")
    try {
      lc$3.onCommitFiberRoot(kc$1, rv, void 0, (rv.current.flags & 128) === 128);
    } catch {
    }
}
var oc$3 = Math.clz32 ? Math.clz32 : nc$4, pc$2 = Math.log, qc$1 = Math.LN2;
function nc$4(rv) {
  return rv >>>= 0, rv === 0 ? 32 : 31 - (pc$2(rv) / qc$1 | 0) | 0;
}
var rc$3 = 64, sc$3 = 4194304;
function tc$3(rv) {
  switch (rv & -rv) {
    case 1:
      return 1;
    case 2:
      return 2;
    case 4:
      return 4;
    case 8:
      return 8;
    case 16:
      return 16;
    case 32:
      return 32;
    case 64:
    case 128:
    case 256:
    case 512:
    case 1024:
    case 2048:
    case 4096:
    case 8192:
    case 16384:
    case 32768:
    case 65536:
    case 131072:
    case 262144:
    case 524288:
    case 1048576:
    case 2097152:
      return rv & 4194240;
    case 4194304:
    case 8388608:
    case 16777216:
    case 33554432:
    case 67108864:
      return rv & 130023424;
    case 134217728:
      return 134217728;
    case 268435456:
      return 268435456;
    case 536870912:
      return 536870912;
    case 1073741824:
      return 1073741824;
    default:
      return rv;
  }
}
function uc$2(rv, tv) {
  var ev = rv.pendingLanes;
  if (ev === 0)
    return 0;
  var iv = 0, ov = rv.suspendedLanes, av = rv.pingedLanes, sv = ev & 268435455;
  if (sv !== 0) {
    var lv = sv & ~ov;
    lv !== 0 ? iv = tc$3(lv) : (av &= sv, av !== 0 && (iv = tc$3(av)));
  } else
    sv = ev & ~ov, sv !== 0 ? iv = tc$3(sv) : av !== 0 && (iv = tc$3(av));
  if (iv === 0)
    return 0;
  if (tv !== 0 && tv !== iv && !(tv & ov) && (ov = iv & -iv, av = tv & -tv, ov >= av || ov === 16 && (av & 4194240) !== 0))
    return tv;
  if (iv & 4 && (iv |= ev & 16), tv = rv.entangledLanes, tv !== 0)
    for (rv = rv.entanglements, tv &= iv; 0 < tv; )
      ev = 31 - oc$3(tv), ov = 1 << ev, iv |= rv[ev], tv &= ~ov;
  return iv;
}
function vc$2(rv, tv) {
  switch (rv) {
    case 1:
    case 2:
    case 4:
      return tv + 250;
    case 8:
    case 16:
    case 32:
    case 64:
    case 128:
    case 256:
    case 512:
    case 1024:
    case 2048:
    case 4096:
    case 8192:
    case 16384:
    case 32768:
    case 65536:
    case 131072:
    case 262144:
    case 524288:
    case 1048576:
    case 2097152:
      return tv + 5e3;
    case 4194304:
    case 8388608:
    case 16777216:
    case 33554432:
    case 67108864:
      return -1;
    case 134217728:
    case 268435456:
    case 536870912:
    case 1073741824:
      return -1;
    default:
      return -1;
  }
}
function wc$2(rv, tv) {
  for (var ev = rv.suspendedLanes, iv = rv.pingedLanes, ov = rv.expirationTimes, av = rv.pendingLanes; 0 < av; ) {
    var sv = 31 - oc$3(av), lv = 1 << sv, uv = ov[sv];
    uv === -1 ? (!(lv & ev) || lv & iv) && (ov[sv] = vc$2(lv, tv)) : uv <= tv && (rv.expiredLanes |= lv), av &= ~lv;
  }
}
function xc$2(rv) {
  return rv = rv.pendingLanes & -1073741825, rv !== 0 ? rv : rv & 1073741824 ? 1073741824 : 0;
}
function yc$3() {
  var rv = rc$3;
  return rc$3 <<= 1, !(rc$3 & 4194240) && (rc$3 = 64), rv;
}
function zc$2(rv) {
  for (var tv = [], ev = 0; 31 > ev; ev++)
    tv.push(rv);
  return tv;
}
function Ac$2(rv, tv, ev) {
  rv.pendingLanes |= tv, tv !== 536870912 && (rv.suspendedLanes = 0, rv.pingedLanes = 0), rv = rv.eventTimes, tv = 31 - oc$3(tv), rv[tv] = ev;
}
function Bc$2(rv, tv) {
  var ev = rv.pendingLanes & ~tv;
  rv.pendingLanes = tv, rv.suspendedLanes = 0, rv.pingedLanes = 0, rv.expiredLanes &= tv, rv.mutableReadLanes &= tv, rv.entangledLanes &= tv, tv = rv.entanglements;
  var iv = rv.eventTimes;
  for (rv = rv.expirationTimes; 0 < ev; ) {
    var ov = 31 - oc$3(ev), av = 1 << ov;
    tv[ov] = 0, iv[ov] = -1, rv[ov] = -1, ev &= ~av;
  }
}
function Cc$3(rv, tv) {
  var ev = rv.entangledLanes |= tv;
  for (rv = rv.entanglements; ev; ) {
    var iv = 31 - oc$3(ev), ov = 1 << iv;
    ov & tv | rv[iv] & tv && (rv[iv] |= tv), ev &= ~ov;
  }
}
var C$3 = 0;
function Dc$2(rv) {
  return rv &= -rv, 1 < rv ? 4 < rv ? rv & 268435455 ? 16 : 536870912 : 4 : 1;
}
var Ec$1, Fc$2, Gc$2, Hc$2, Ic$2, Jc$1 = !1, Kc$2 = [], Lc$2 = null, Mc$3 = null, Nc$2 = null, Oc$2 = /* @__PURE__ */ new Map(), Pc$2 = /* @__PURE__ */ new Map(), Qc$1 = [], Rc$2 = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");
function Sc$3(rv, tv) {
  switch (rv) {
    case "focusin":
    case "focusout":
      Lc$2 = null;
      break;
    case "dragenter":
    case "dragleave":
      Mc$3 = null;
      break;
    case "mouseover":
    case "mouseout":
      Nc$2 = null;
      break;
    case "pointerover":
    case "pointerout":
      Oc$2.delete(tv.pointerId);
      break;
    case "gotpointercapture":
    case "lostpointercapture":
      Pc$2.delete(tv.pointerId);
  }
}
function Tc$2(rv, tv, ev, iv, ov, av) {
  return rv === null || rv.nativeEvent !== av ? (rv = { blockedOn: tv, domEventName: ev, eventSystemFlags: iv, nativeEvent: av, targetContainers: [ov] }, tv !== null && (tv = Cb(tv), tv !== null && Fc$2(tv)), rv) : (rv.eventSystemFlags |= iv, tv = rv.targetContainers, ov !== null && tv.indexOf(ov) === -1 && tv.push(ov), rv);
}
function Uc$2(rv, tv, ev, iv, ov) {
  switch (tv) {
    case "focusin":
      return Lc$2 = Tc$2(Lc$2, rv, tv, ev, iv, ov), !0;
    case "dragenter":
      return Mc$3 = Tc$2(Mc$3, rv, tv, ev, iv, ov), !0;
    case "mouseover":
      return Nc$2 = Tc$2(Nc$2, rv, tv, ev, iv, ov), !0;
    case "pointerover":
      var av = ov.pointerId;
      return Oc$2.set(av, Tc$2(Oc$2.get(av) || null, rv, tv, ev, iv, ov)), !0;
    case "gotpointercapture":
      return av = ov.pointerId, Pc$2.set(av, Tc$2(Pc$2.get(av) || null, rv, tv, ev, iv, ov)), !0;
  }
  return !1;
}
function Vc$2(rv) {
  var tv = Wc$2(rv.target);
  if (tv !== null) {
    var ev = Vb$1(tv);
    if (ev !== null) {
      if (tv = ev.tag, tv === 13) {
        if (tv = Wb$1(ev), tv !== null) {
          rv.blockedOn = tv, Ic$2(rv.priority, function() {
            Gc$2(ev);
          });
          return;
        }
      } else if (tv === 3 && ev.stateNode.current.memoizedState.isDehydrated) {
        rv.blockedOn = ev.tag === 3 ? ev.stateNode.containerInfo : null;
        return;
      }
    }
  }
  rv.blockedOn = null;
}
function Xc$2(rv) {
  if (rv.blockedOn !== null)
    return !1;
  for (var tv = rv.targetContainers; 0 < tv.length; ) {
    var ev = Yc$2(rv.domEventName, rv.eventSystemFlags, tv[0], rv.nativeEvent);
    if (ev === null) {
      ev = rv.nativeEvent;
      var iv = new ev.constructor(ev.type, ev);
      wb = iv, ev.target.dispatchEvent(iv), wb = null;
    } else
      return tv = Cb(ev), tv !== null && Fc$2(tv), rv.blockedOn = ev, !1;
    tv.shift();
  }
  return !0;
}
function Zc(rv, tv, ev) {
  Xc$2(rv) && ev.delete(tv);
}
function $c$3() {
  Jc$1 = !1, Lc$2 !== null && Xc$2(Lc$2) && (Lc$2 = null), Mc$3 !== null && Xc$2(Mc$3) && (Mc$3 = null), Nc$2 !== null && Xc$2(Nc$2) && (Nc$2 = null), Oc$2.forEach(Zc), Pc$2.forEach(Zc);
}
function ad$1(rv, tv) {
  rv.blockedOn === tv && (rv.blockedOn = null, Jc$1 || (Jc$1 = !0, ca$4.unstable_scheduleCallback(ca$4.unstable_NormalPriority, $c$3)));
}
function bd$2(rv) {
  function tv(ov) {
    return ad$1(ov, rv);
  }
  if (0 < Kc$2.length) {
    ad$1(Kc$2[0], rv);
    for (var ev = 1; ev < Kc$2.length; ev++) {
      var iv = Kc$2[ev];
      iv.blockedOn === rv && (iv.blockedOn = null);
    }
  }
  for (Lc$2 !== null && ad$1(Lc$2, rv), Mc$3 !== null && ad$1(Mc$3, rv), Nc$2 !== null && ad$1(Nc$2, rv), Oc$2.forEach(tv), Pc$2.forEach(tv), ev = 0; ev < Qc$1.length; ev++)
    iv = Qc$1[ev], iv.blockedOn === rv && (iv.blockedOn = null);
  for (; 0 < Qc$1.length && (ev = Qc$1[0], ev.blockedOn === null); )
    Vc$2(ev), ev.blockedOn === null && Qc$1.shift();
}
var cd$1 = ua$4.ReactCurrentBatchConfig, dd$2 = !0;
function ed$1(rv, tv, ev, iv) {
  var ov = C$3, av = cd$1.transition;
  cd$1.transition = null;
  try {
    C$3 = 1, fd$1(rv, tv, ev, iv);
  } finally {
    C$3 = ov, cd$1.transition = av;
  }
}
function gd$1(rv, tv, ev, iv) {
  var ov = C$3, av = cd$1.transition;
  cd$1.transition = null;
  try {
    C$3 = 4, fd$1(rv, tv, ev, iv);
  } finally {
    C$3 = ov, cd$1.transition = av;
  }
}
function fd$1(rv, tv, ev, iv) {
  if (dd$2) {
    var ov = Yc$2(rv, tv, ev, iv);
    if (ov === null)
      hd$1(rv, tv, iv, id$2, ev), Sc$3(rv, iv);
    else if (Uc$2(ov, rv, tv, ev, iv))
      iv.stopPropagation();
    else if (Sc$3(rv, iv), tv & 4 && -1 < Rc$2.indexOf(rv)) {
      for (; ov !== null; ) {
        var av = Cb(ov);
        if (av !== null && Ec$1(av), av = Yc$2(rv, tv, ev, iv), av === null && hd$1(rv, tv, iv, id$2, ev), av === ov)
          break;
        ov = av;
      }
      ov !== null && iv.stopPropagation();
    } else
      hd$1(rv, tv, iv, null, ev);
  }
}
var id$2 = null;
function Yc$2(rv, tv, ev, iv) {
  if (id$2 = null, rv = xb(iv), rv = Wc$2(rv), rv !== null)
    if (tv = Vb$1(rv), tv === null)
      rv = null;
    else if (ev = tv.tag, ev === 13) {
      if (rv = Wb$1(tv), rv !== null)
        return rv;
      rv = null;
    } else if (ev === 3) {
      if (tv.stateNode.current.memoizedState.isDehydrated)
        return tv.tag === 3 ? tv.stateNode.containerInfo : null;
      rv = null;
    } else
      tv !== rv && (rv = null);
  return id$2 = rv, null;
}
function jd$2(rv) {
  switch (rv) {
    case "cancel":
    case "click":
    case "close":
    case "contextmenu":
    case "copy":
    case "cut":
    case "auxclick":
    case "dblclick":
    case "dragend":
    case "dragstart":
    case "drop":
    case "focusin":
    case "focusout":
    case "input":
    case "invalid":
    case "keydown":
    case "keypress":
    case "keyup":
    case "mousedown":
    case "mouseup":
    case "paste":
    case "pause":
    case "play":
    case "pointercancel":
    case "pointerdown":
    case "pointerup":
    case "ratechange":
    case "reset":
    case "resize":
    case "seeked":
    case "submit":
    case "touchcancel":
    case "touchend":
    case "touchstart":
    case "volumechange":
    case "change":
    case "selectionchange":
    case "textInput":
    case "compositionstart":
    case "compositionend":
    case "compositionupdate":
    case "beforeblur":
    case "afterblur":
    case "beforeinput":
    case "blur":
    case "fullscreenchange":
    case "focus":
    case "hashchange":
    case "popstate":
    case "select":
    case "selectstart":
      return 1;
    case "drag":
    case "dragenter":
    case "dragexit":
    case "dragleave":
    case "dragover":
    case "mousemove":
    case "mouseout":
    case "mouseover":
    case "pointermove":
    case "pointerout":
    case "pointerover":
    case "scroll":
    case "toggle":
    case "touchmove":
    case "wheel":
    case "mouseenter":
    case "mouseleave":
    case "pointerenter":
    case "pointerleave":
      return 4;
    case "message":
      switch (ec$4()) {
        case fc$2:
          return 1;
        case gc$2:
          return 4;
        case hc$2:
        case ic$4:
          return 16;
        case jc$3:
          return 536870912;
        default:
          return 16;
      }
    default:
      return 16;
  }
}
var kd$1 = null, ld$2 = null, md$1 = null;
function nd$2() {
  if (md$1)
    return md$1;
  var rv, tv = ld$2, ev = tv.length, iv, ov = "value" in kd$1 ? kd$1.value : kd$1.textContent, av = ov.length;
  for (rv = 0; rv < ev && tv[rv] === ov[rv]; rv++)
    ;
  var sv = ev - rv;
  for (iv = 1; iv <= sv && tv[ev - iv] === ov[av - iv]; iv++)
    ;
  return md$1 = ov.slice(rv, 1 < iv ? 1 - iv : void 0);
}
function od$1(rv) {
  var tv = rv.keyCode;
  return "charCode" in rv ? (rv = rv.charCode, rv === 0 && tv === 13 && (rv = 13)) : rv = tv, rv === 10 && (rv = 13), 32 <= rv || rv === 13 ? rv : 0;
}
function pd$1() {
  return !0;
}
function qd$2() {
  return !1;
}
function rd$2(rv) {
  function tv(ev, iv, ov, av, sv) {
    this._reactName = ev, this._targetInst = ov, this.type = iv, this.nativeEvent = av, this.target = sv, this.currentTarget = null;
    for (var lv in rv)
      rv.hasOwnProperty(lv) && (ev = rv[lv], this[lv] = ev ? ev(av) : av[lv]);
    return this.isDefaultPrevented = (av.defaultPrevented != null ? av.defaultPrevented : av.returnValue === !1) ? pd$1 : qd$2, this.isPropagationStopped = qd$2, this;
  }
  return A$2(tv.prototype, { preventDefault: function() {
    this.defaultPrevented = !0;
    var ev = this.nativeEvent;
    ev && (ev.preventDefault ? ev.preventDefault() : typeof ev.returnValue != "unknown" && (ev.returnValue = !1), this.isDefaultPrevented = pd$1);
  }, stopPropagation: function() {
    var ev = this.nativeEvent;
    ev && (ev.stopPropagation ? ev.stopPropagation() : typeof ev.cancelBubble != "unknown" && (ev.cancelBubble = !0), this.isPropagationStopped = pd$1);
  }, persist: function() {
  }, isPersistent: pd$1 }), tv;
}
var sd$2 = { eventPhase: 0, bubbles: 0, cancelable: 0, timeStamp: function(rv) {
  return rv.timeStamp || Date.now();
}, defaultPrevented: 0, isTrusted: 0 }, td$2 = rd$2(sd$2), ud$2 = A$2({}, sd$2, { view: 0, detail: 0 }), vd$1 = rd$2(ud$2), wd$2, xd$2, yd$2, Ad$2 = A$2({}, ud$2, { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, getModifierState: zd$2, button: 0, buttons: 0, relatedTarget: function(rv) {
  return rv.relatedTarget === void 0 ? rv.fromElement === rv.srcElement ? rv.toElement : rv.fromElement : rv.relatedTarget;
}, movementX: function(rv) {
  return "movementX" in rv ? rv.movementX : (rv !== yd$2 && (yd$2 && rv.type === "mousemove" ? (wd$2 = rv.screenX - yd$2.screenX, xd$2 = rv.screenY - yd$2.screenY) : xd$2 = wd$2 = 0, yd$2 = rv), wd$2);
}, movementY: function(rv) {
  return "movementY" in rv ? rv.movementY : xd$2;
} }), Bd$2 = rd$2(Ad$2), Cd$2 = A$2({}, Ad$2, { dataTransfer: 0 }), Dd$2 = rd$2(Cd$2), Ed$2 = A$2({}, ud$2, { relatedTarget: 0 }), Fd$1 = rd$2(Ed$2), Gd$2 = A$2({}, sd$2, { animationName: 0, elapsedTime: 0, pseudoElement: 0 }), Hd$2 = rd$2(Gd$2), Id$1 = A$2({}, sd$2, { clipboardData: function(rv) {
  return "clipboardData" in rv ? rv.clipboardData : window.clipboardData;
} }), Jd$2 = rd$2(Id$1), Kd$2 = A$2({}, sd$2, { data: 0 }), Ld$1 = rd$2(Kd$2), Md$2 = {
  Esc: "Escape",
  Spacebar: " ",
  Left: "ArrowLeft",
  Up: "ArrowUp",
  Right: "ArrowRight",
  Down: "ArrowDown",
  Del: "Delete",
  Win: "OS",
  Menu: "ContextMenu",
  Apps: "ContextMenu",
  Scroll: "ScrollLock",
  MozPrintableKey: "Unidentified"
}, Nd$2 = {
  8: "Backspace",
  9: "Tab",
  12: "Clear",
  13: "Enter",
  16: "Shift",
  17: "Control",
  18: "Alt",
  19: "Pause",
  20: "CapsLock",
  27: "Escape",
  32: " ",
  33: "PageUp",
  34: "PageDown",
  35: "End",
  36: "Home",
  37: "ArrowLeft",
  38: "ArrowUp",
  39: "ArrowRight",
  40: "ArrowDown",
  45: "Insert",
  46: "Delete",
  112: "F1",
  113: "F2",
  114: "F3",
  115: "F4",
  116: "F5",
  117: "F6",
  118: "F7",
  119: "F8",
  120: "F9",
  121: "F10",
  122: "F11",
  123: "F12",
  144: "NumLock",
  145: "ScrollLock",
  224: "Meta"
}, Od$2 = { Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey" };
function Pd$2(rv) {
  var tv = this.nativeEvent;
  return tv.getModifierState ? tv.getModifierState(rv) : (rv = Od$2[rv]) ? !!tv[rv] : !1;
}
function zd$2() {
  return Pd$2;
}
var Qd$2 = A$2({}, ud$2, { key: function(rv) {
  if (rv.key) {
    var tv = Md$2[rv.key] || rv.key;
    if (tv !== "Unidentified")
      return tv;
  }
  return rv.type === "keypress" ? (rv = od$1(rv), rv === 13 ? "Enter" : String.fromCharCode(rv)) : rv.type === "keydown" || rv.type === "keyup" ? Nd$2[rv.keyCode] || "Unidentified" : "";
}, code: 0, location: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, repeat: 0, locale: 0, getModifierState: zd$2, charCode: function(rv) {
  return rv.type === "keypress" ? od$1(rv) : 0;
}, keyCode: function(rv) {
  return rv.type === "keydown" || rv.type === "keyup" ? rv.keyCode : 0;
}, which: function(rv) {
  return rv.type === "keypress" ? od$1(rv) : rv.type === "keydown" || rv.type === "keyup" ? rv.keyCode : 0;
} }), Rd$2 = rd$2(Qd$2), Sd$2 = A$2({}, Ad$2, { pointerId: 0, width: 0, height: 0, pressure: 0, tangentialPressure: 0, tiltX: 0, tiltY: 0, twist: 0, pointerType: 0, isPrimary: 0 }), Td$2 = rd$2(Sd$2), Ud$1 = A$2({}, ud$2, { touches: 0, targetTouches: 0, changedTouches: 0, altKey: 0, metaKey: 0, ctrlKey: 0, shiftKey: 0, getModifierState: zd$2 }), Vd$2 = rd$2(Ud$1), Wd$2 = A$2({}, sd$2, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 }), Xd$2 = rd$2(Wd$2), Yd$2 = A$2({}, Ad$2, {
  deltaX: function(rv) {
    return "deltaX" in rv ? rv.deltaX : "wheelDeltaX" in rv ? -rv.wheelDeltaX : 0;
  },
  deltaY: function(rv) {
    return "deltaY" in rv ? rv.deltaY : "wheelDeltaY" in rv ? -rv.wheelDeltaY : "wheelDelta" in rv ? -rv.wheelDelta : 0;
  },
  deltaZ: 0,
  deltaMode: 0
}), Zd$2 = rd$2(Yd$2), $d$1 = [9, 13, 27, 32], ae$2 = ia$4 && "CompositionEvent" in window, be$3 = null;
ia$4 && "documentMode" in document && (be$3 = document.documentMode);
var ce$3 = ia$4 && "TextEvent" in window && !be$3, de$2 = ia$4 && (!ae$2 || be$3 && 8 < be$3 && 11 >= be$3), ee$2 = " ", fe$3 = !1;
function ge$2(rv, tv) {
  switch (rv) {
    case "keyup":
      return $d$1.indexOf(tv.keyCode) !== -1;
    case "keydown":
      return tv.keyCode !== 229;
    case "keypress":
    case "mousedown":
    case "focusout":
      return !0;
    default:
      return !1;
  }
}
function he$3(rv) {
  return rv = rv.detail, typeof rv == "object" && "data" in rv ? rv.data : null;
}
var ie$2 = !1;
function je$3(rv, tv) {
  switch (rv) {
    case "compositionend":
      return he$3(tv);
    case "keypress":
      return tv.which !== 32 ? null : (fe$3 = !0, ee$2);
    case "textInput":
      return rv = tv.data, rv === ee$2 && fe$3 ? null : rv;
    default:
      return null;
  }
}
function ke$3(rv, tv) {
  if (ie$2)
    return rv === "compositionend" || !ae$2 && ge$2(rv, tv) ? (rv = nd$2(), md$1 = ld$2 = kd$1 = null, ie$2 = !1, rv) : null;
  switch (rv) {
    case "paste":
      return null;
    case "keypress":
      if (!(tv.ctrlKey || tv.altKey || tv.metaKey) || tv.ctrlKey && tv.altKey) {
        if (tv.char && 1 < tv.char.length)
          return tv.char;
        if (tv.which)
          return String.fromCharCode(tv.which);
      }
      return null;
    case "compositionend":
      return de$2 && tv.locale !== "ko" ? null : tv.data;
    default:
      return null;
  }
}
var le$3 = { color: !0, date: !0, datetime: !0, "datetime-local": !0, email: !0, month: !0, number: !0, password: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0 };
function me$2(rv) {
  var tv = rv && rv.nodeName && rv.nodeName.toLowerCase();
  return tv === "input" ? !!le$3[rv.type] : tv === "textarea";
}
function ne$3(rv, tv, ev, iv) {
  Eb(iv), tv = oe$4(tv, "onChange"), 0 < tv.length && (ev = new td$2("onChange", "change", null, ev, iv), rv.push({ event: ev, listeners: tv }));
}
var pe$2 = null, qe$2 = null;
function re$3(rv) {
  se$3(rv, 0);
}
function te$3(rv) {
  var tv = ue$3(rv);
  if (Wa$3(tv))
    return rv;
}
function ve$4(rv, tv) {
  if (rv === "change")
    return tv;
}
var we$3 = !1;
if (ia$4) {
  var xe$3;
  if (ia$4) {
    var ye$2 = "oninput" in document;
    if (!ye$2) {
      var ze$3 = document.createElement("div");
      ze$3.setAttribute("oninput", "return;"), ye$2 = typeof ze$3.oninput == "function";
    }
    xe$3 = ye$2;
  } else
    xe$3 = !1;
  we$3 = xe$3 && (!document.documentMode || 9 < document.documentMode);
}
function Ae$3() {
  pe$2 && (pe$2.detachEvent("onpropertychange", Be$3), qe$2 = pe$2 = null);
}
function Be$3(rv) {
  if (rv.propertyName === "value" && te$3(qe$2)) {
    var tv = [];
    ne$3(tv, qe$2, rv, xb(rv)), Jb$1(re$3, tv);
  }
}
function Ce$2(rv, tv, ev) {
  rv === "focusin" ? (Ae$3(), pe$2 = tv, qe$2 = ev, pe$2.attachEvent("onpropertychange", Be$3)) : rv === "focusout" && Ae$3();
}
function De$2(rv) {
  if (rv === "selectionchange" || rv === "keyup" || rv === "keydown")
    return te$3(qe$2);
}
function Ee$3(rv, tv) {
  if (rv === "click")
    return te$3(tv);
}
function Fe$2(rv, tv) {
  if (rv === "input" || rv === "change")
    return te$3(tv);
}
function Ge$4(rv, tv) {
  return rv === tv && (rv !== 0 || 1 / rv === 1 / tv) || rv !== rv && tv !== tv;
}
var He$2 = typeof Object.is == "function" ? Object.is : Ge$4;
function Ie$2(rv, tv) {
  if (He$2(rv, tv))
    return !0;
  if (typeof rv != "object" || rv === null || typeof tv != "object" || tv === null)
    return !1;
  var ev = Object.keys(rv), iv = Object.keys(tv);
  if (ev.length !== iv.length)
    return !1;
  for (iv = 0; iv < ev.length; iv++) {
    var ov = ev[iv];
    if (!ja$3.call(tv, ov) || !He$2(rv[ov], tv[ov]))
      return !1;
  }
  return !0;
}
function Je$2(rv) {
  for (; rv && rv.firstChild; )
    rv = rv.firstChild;
  return rv;
}
function Ke$2(rv, tv) {
  var ev = Je$2(rv);
  rv = 0;
  for (var iv; ev; ) {
    if (ev.nodeType === 3) {
      if (iv = rv + ev.textContent.length, rv <= tv && iv >= tv)
        return { node: ev, offset: tv - rv };
      rv = iv;
    }
    e: {
      for (; ev; ) {
        if (ev.nextSibling) {
          ev = ev.nextSibling;
          break e;
        }
        ev = ev.parentNode;
      }
      ev = void 0;
    }
    ev = Je$2(ev);
  }
}
function Le$4(rv, tv) {
  return rv && tv ? rv === tv ? !0 : rv && rv.nodeType === 3 ? !1 : tv && tv.nodeType === 3 ? Le$4(rv, tv.parentNode) : "contains" in rv ? rv.contains(tv) : rv.compareDocumentPosition ? !!(rv.compareDocumentPosition(tv) & 16) : !1 : !1;
}
function Me$3() {
  for (var rv = window, tv = Xa$4(); tv instanceof rv.HTMLIFrameElement; ) {
    try {
      var ev = typeof tv.contentWindow.location.href == "string";
    } catch {
      ev = !1;
    }
    if (ev)
      rv = tv.contentWindow;
    else
      break;
    tv = Xa$4(rv.document);
  }
  return tv;
}
function Ne$2(rv) {
  var tv = rv && rv.nodeName && rv.nodeName.toLowerCase();
  return tv && (tv === "input" && (rv.type === "text" || rv.type === "search" || rv.type === "tel" || rv.type === "url" || rv.type === "password") || tv === "textarea" || rv.contentEditable === "true");
}
function Oe$3(rv) {
  var tv = Me$3(), ev = rv.focusedElem, iv = rv.selectionRange;
  if (tv !== ev && ev && ev.ownerDocument && Le$4(ev.ownerDocument.documentElement, ev)) {
    if (iv !== null && Ne$2(ev)) {
      if (tv = iv.start, rv = iv.end, rv === void 0 && (rv = tv), "selectionStart" in ev)
        ev.selectionStart = tv, ev.selectionEnd = Math.min(rv, ev.value.length);
      else if (rv = (tv = ev.ownerDocument || document) && tv.defaultView || window, rv.getSelection) {
        rv = rv.getSelection();
        var ov = ev.textContent.length, av = Math.min(iv.start, ov);
        iv = iv.end === void 0 ? av : Math.min(iv.end, ov), !rv.extend && av > iv && (ov = iv, iv = av, av = ov), ov = Ke$2(ev, av);
        var sv = Ke$2(
          ev,
          iv
        );
        ov && sv && (rv.rangeCount !== 1 || rv.anchorNode !== ov.node || rv.anchorOffset !== ov.offset || rv.focusNode !== sv.node || rv.focusOffset !== sv.offset) && (tv = tv.createRange(), tv.setStart(ov.node, ov.offset), rv.removeAllRanges(), av > iv ? (rv.addRange(tv), rv.extend(sv.node, sv.offset)) : (tv.setEnd(sv.node, sv.offset), rv.addRange(tv)));
      }
    }
    for (tv = [], rv = ev; rv = rv.parentNode; )
      rv.nodeType === 1 && tv.push({ element: rv, left: rv.scrollLeft, top: rv.scrollTop });
    for (typeof ev.focus == "function" && ev.focus(), ev = 0; ev < tv.length; ev++)
      rv = tv[ev], rv.element.scrollLeft = rv.left, rv.element.scrollTop = rv.top;
  }
}
var Pe$3 = ia$4 && "documentMode" in document && 11 >= document.documentMode, Qe$3 = null, Re$3 = null, Se$2 = null, Te$2 = !1;
function Ue$3(rv, tv, ev) {
  var iv = ev.window === ev ? ev.document : ev.nodeType === 9 ? ev : ev.ownerDocument;
  Te$2 || Qe$3 == null || Qe$3 !== Xa$4(iv) || (iv = Qe$3, "selectionStart" in iv && Ne$2(iv) ? iv = { start: iv.selectionStart, end: iv.selectionEnd } : (iv = (iv.ownerDocument && iv.ownerDocument.defaultView || window).getSelection(), iv = { anchorNode: iv.anchorNode, anchorOffset: iv.anchorOffset, focusNode: iv.focusNode, focusOffset: iv.focusOffset }), Se$2 && Ie$2(Se$2, iv) || (Se$2 = iv, iv = oe$4(Re$3, "onSelect"), 0 < iv.length && (tv = new td$2("onSelect", "select", null, tv, ev), rv.push({ event: tv, listeners: iv }), tv.target = Qe$3)));
}
function Ve$3(rv, tv) {
  var ev = {};
  return ev[rv.toLowerCase()] = tv.toLowerCase(), ev["Webkit" + rv] = "webkit" + tv, ev["Moz" + rv] = "moz" + tv, ev;
}
var We$3 = { animationend: Ve$3("Animation", "AnimationEnd"), animationiteration: Ve$3("Animation", "AnimationIteration"), animationstart: Ve$3("Animation", "AnimationStart"), transitionend: Ve$3("Transition", "TransitionEnd") }, Xe$3 = {}, Ye$4 = {};
ia$4 && (Ye$4 = document.createElement("div").style, "AnimationEvent" in window || (delete We$3.animationend.animation, delete We$3.animationiteration.animation, delete We$3.animationstart.animation), "TransitionEvent" in window || delete We$3.transitionend.transition);
function Ze$4(rv) {
  if (Xe$3[rv])
    return Xe$3[rv];
  if (!We$3[rv])
    return rv;
  var tv = We$3[rv], ev;
  for (ev in tv)
    if (tv.hasOwnProperty(ev) && ev in Ye$4)
      return Xe$3[rv] = tv[ev];
  return rv;
}
var $e$3 = Ze$4("animationend"), af$2 = Ze$4("animationiteration"), bf$1 = Ze$4("animationstart"), cf$2 = Ze$4("transitionend"), df$2 = /* @__PURE__ */ new Map(), ef$2 = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");
function ff$2(rv, tv) {
  df$2.set(rv, tv), fa$3(tv, [rv]);
}
for (var gf$2 = 0; gf$2 < ef$2.length; gf$2++) {
  var hf$2 = ef$2[gf$2], jf$2 = hf$2.toLowerCase(), kf$2 = hf$2[0].toUpperCase() + hf$2.slice(1);
  ff$2(jf$2, "on" + kf$2);
}
ff$2($e$3, "onAnimationEnd");
ff$2(af$2, "onAnimationIteration");
ff$2(bf$1, "onAnimationStart");
ff$2("dblclick", "onDoubleClick");
ff$2("focusin", "onFocus");
ff$2("focusout", "onBlur");
ff$2(cf$2, "onTransitionEnd");
ha$4("onMouseEnter", ["mouseout", "mouseover"]);
ha$4("onMouseLeave", ["mouseout", "mouseover"]);
ha$4("onPointerEnter", ["pointerout", "pointerover"]);
ha$4("onPointerLeave", ["pointerout", "pointerover"]);
fa$3("onChange", "change click focusin focusout input keydown keyup selectionchange".split(" "));
fa$3("onSelect", "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));
fa$3("onBeforeInput", ["compositionend", "keypress", "textInput", "paste"]);
fa$3("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown".split(" "));
fa$3("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" "));
fa$3("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" "));
var lf$2 = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "), mf$2 = new Set("cancel close invalid load scroll toggle".split(" ").concat(lf$2));
function nf$2(rv, tv, ev) {
  var iv = rv.type || "unknown-event";
  rv.currentTarget = ev, Ub$1(iv, tv, void 0, rv), rv.currentTarget = null;
}
function se$3(rv, tv) {
  tv = (tv & 4) !== 0;
  for (var ev = 0; ev < rv.length; ev++) {
    var iv = rv[ev], ov = iv.event;
    iv = iv.listeners;
    e: {
      var av = void 0;
      if (tv)
        for (var sv = iv.length - 1; 0 <= sv; sv--) {
          var lv = iv[sv], uv = lv.instance, cv = lv.currentTarget;
          if (lv = lv.listener, uv !== av && ov.isPropagationStopped())
            break e;
          nf$2(ov, lv, cv), av = uv;
        }
      else
        for (sv = 0; sv < iv.length; sv++) {
          if (lv = iv[sv], uv = lv.instance, cv = lv.currentTarget, lv = lv.listener, uv !== av && ov.isPropagationStopped())
            break e;
          nf$2(ov, lv, cv), av = uv;
        }
    }
  }
  if (Qb$1)
    throw rv = Rb, Qb$1 = !1, Rb = null, rv;
}
function D$3(rv, tv) {
  var ev = tv[of$2];
  ev === void 0 && (ev = tv[of$2] = /* @__PURE__ */ new Set());
  var iv = rv + "__bubble";
  ev.has(iv) || (pf$2(tv, rv, 2, !1), ev.add(iv));
}
function qf$2(rv, tv, ev) {
  var iv = 0;
  tv && (iv |= 4), pf$2(ev, rv, iv, tv);
}
var rf$2 = "_reactListening" + Math.random().toString(36).slice(2);
function sf$2(rv) {
  if (!rv[rf$2]) {
    rv[rf$2] = !0, da$4.forEach(function(ev) {
      ev !== "selectionchange" && (mf$2.has(ev) || qf$2(ev, !1, rv), qf$2(ev, !0, rv));
    });
    var tv = rv.nodeType === 9 ? rv : rv.ownerDocument;
    tv === null || tv[rf$2] || (tv[rf$2] = !0, qf$2("selectionchange", !1, tv));
  }
}
function pf$2(rv, tv, ev, iv) {
  switch (jd$2(tv)) {
    case 1:
      var ov = ed$1;
      break;
    case 4:
      ov = gd$1;
      break;
    default:
      ov = fd$1;
  }
  ev = ov.bind(null, tv, ev, rv), ov = void 0, !Lb || tv !== "touchstart" && tv !== "touchmove" && tv !== "wheel" || (ov = !0), iv ? ov !== void 0 ? rv.addEventListener(tv, ev, { capture: !0, passive: ov }) : rv.addEventListener(tv, ev, !0) : ov !== void 0 ? rv.addEventListener(tv, ev, { passive: ov }) : rv.addEventListener(tv, ev, !1);
}
function hd$1(rv, tv, ev, iv, ov) {
  var av = iv;
  if (!(tv & 1) && !(tv & 2) && iv !== null)
    e:
      for (; ; ) {
        if (iv === null)
          return;
        var sv = iv.tag;
        if (sv === 3 || sv === 4) {
          var lv = iv.stateNode.containerInfo;
          if (lv === ov || lv.nodeType === 8 && lv.parentNode === ov)
            break;
          if (sv === 4)
            for (sv = iv.return; sv !== null; ) {
              var uv = sv.tag;
              if ((uv === 3 || uv === 4) && (uv = sv.stateNode.containerInfo, uv === ov || uv.nodeType === 8 && uv.parentNode === ov))
                return;
              sv = sv.return;
            }
          for (; lv !== null; ) {
            if (sv = Wc$2(lv), sv === null)
              return;
            if (uv = sv.tag, uv === 5 || uv === 6) {
              iv = av = sv;
              continue e;
            }
            lv = lv.parentNode;
          }
        }
        iv = iv.return;
      }
  Jb$1(function() {
    var cv = av, dv = xb(ev), hv = [];
    e: {
      var pv = df$2.get(rv);
      if (pv !== void 0) {
        var yv = td$2, Sv = rv;
        switch (rv) {
          case "keypress":
            if (od$1(ev) === 0)
              break e;
          case "keydown":
          case "keyup":
            yv = Rd$2;
            break;
          case "focusin":
            Sv = "focus", yv = Fd$1;
            break;
          case "focusout":
            Sv = "blur", yv = Fd$1;
            break;
          case "beforeblur":
          case "afterblur":
            yv = Fd$1;
            break;
          case "click":
            if (ev.button === 2)
              break e;
          case "auxclick":
          case "dblclick":
          case "mousedown":
          case "mousemove":
          case "mouseup":
          case "mouseout":
          case "mouseover":
          case "contextmenu":
            yv = Bd$2;
            break;
          case "drag":
          case "dragend":
          case "dragenter":
          case "dragexit":
          case "dragleave":
          case "dragover":
          case "dragstart":
          case "drop":
            yv = Dd$2;
            break;
          case "touchcancel":
          case "touchend":
          case "touchmove":
          case "touchstart":
            yv = Vd$2;
            break;
          case $e$3:
          case af$2:
          case bf$1:
            yv = Hd$2;
            break;
          case cf$2:
            yv = Xd$2;
            break;
          case "scroll":
            yv = vd$1;
            break;
          case "wheel":
            yv = Zd$2;
            break;
          case "copy":
          case "cut":
          case "paste":
            yv = Jd$2;
            break;
          case "gotpointercapture":
          case "lostpointercapture":
          case "pointercancel":
          case "pointerdown":
          case "pointermove":
          case "pointerout":
          case "pointerover":
          case "pointerup":
            yv = Td$2;
        }
        var _v = (tv & 4) !== 0, Ev = !_v && rv === "scroll", wv = _v ? pv !== null ? pv + "Capture" : null : pv;
        _v = [];
        for (var xv = cv, Cv; xv !== null; ) {
          Cv = xv;
          var Av = Cv.stateNode;
          if (Cv.tag === 5 && Av !== null && (Cv = Av, wv !== null && (Av = Kb$1(xv, wv), Av != null && _v.push(tf$2(xv, Av, Cv)))), Ev)
            break;
          xv = xv.return;
        }
        0 < _v.length && (pv = new yv(pv, Sv, null, ev, dv), hv.push({ event: pv, listeners: _v }));
      }
    }
    if (!(tv & 7)) {
      e: {
        if (pv = rv === "mouseover" || rv === "pointerover", yv = rv === "mouseout" || rv === "pointerout", pv && ev !== wb && (Sv = ev.relatedTarget || ev.fromElement) && (Wc$2(Sv) || Sv[uf$2]))
          break e;
        if ((yv || pv) && (pv = dv.window === dv ? dv : (pv = dv.ownerDocument) ? pv.defaultView || pv.parentWindow : window, yv ? (Sv = ev.relatedTarget || ev.toElement, yv = cv, Sv = Sv ? Wc$2(Sv) : null, Sv !== null && (Ev = Vb$1(Sv), Sv !== Ev || Sv.tag !== 5 && Sv.tag !== 6) && (Sv = null)) : (yv = null, Sv = cv), yv !== Sv)) {
          if (_v = Bd$2, Av = "onMouseLeave", wv = "onMouseEnter", xv = "mouse", (rv === "pointerout" || rv === "pointerover") && (_v = Td$2, Av = "onPointerLeave", wv = "onPointerEnter", xv = "pointer"), Ev = yv == null ? pv : ue$3(yv), Cv = Sv == null ? pv : ue$3(Sv), pv = new _v(Av, xv + "leave", yv, ev, dv), pv.target = Ev, pv.relatedTarget = Cv, Av = null, Wc$2(dv) === cv && (_v = new _v(wv, xv + "enter", Sv, ev, dv), _v.target = Cv, _v.relatedTarget = Ev, Av = _v), Ev = Av, yv && Sv)
            t: {
              for (_v = yv, wv = Sv, xv = 0, Cv = _v; Cv; Cv = vf$2(Cv))
                xv++;
              for (Cv = 0, Av = wv; Av; Av = vf$2(Av))
                Cv++;
              for (; 0 < xv - Cv; )
                _v = vf$2(_v), xv--;
              for (; 0 < Cv - xv; )
                wv = vf$2(wv), Cv--;
              for (; xv--; ) {
                if (_v === wv || wv !== null && _v === wv.alternate)
                  break t;
                _v = vf$2(_v), wv = vf$2(wv);
              }
              _v = null;
            }
          else
            _v = null;
          yv !== null && wf$2(hv, pv, yv, _v, !1), Sv !== null && Ev !== null && wf$2(hv, Ev, Sv, _v, !0);
        }
      }
      e: {
        if (pv = cv ? ue$3(cv) : window, yv = pv.nodeName && pv.nodeName.toLowerCase(), yv === "select" || yv === "input" && pv.type === "file")
          var Ov = ve$4;
        else if (me$2(pv))
          if (we$3)
            Ov = Fe$2;
          else {
            Ov = De$2;
            var Lv = Ce$2;
          }
        else
          (yv = pv.nodeName) && yv.toLowerCase() === "input" && (pv.type === "checkbox" || pv.type === "radio") && (Ov = Ee$3);
        if (Ov && (Ov = Ov(rv, cv))) {
          ne$3(hv, Ov, ev, dv);
          break e;
        }
        Lv && Lv(rv, pv, cv), rv === "focusout" && (Lv = pv._wrapperState) && Lv.controlled && pv.type === "number" && cb(pv, "number", pv.value);
      }
      switch (Lv = cv ? ue$3(cv) : window, rv) {
        case "focusin":
          (me$2(Lv) || Lv.contentEditable === "true") && (Qe$3 = Lv, Re$3 = cv, Se$2 = null);
          break;
        case "focusout":
          Se$2 = Re$3 = Qe$3 = null;
          break;
        case "mousedown":
          Te$2 = !0;
          break;
        case "contextmenu":
        case "mouseup":
        case "dragend":
          Te$2 = !1, Ue$3(hv, ev, dv);
          break;
        case "selectionchange":
          if (Pe$3)
            break;
        case "keydown":
        case "keyup":
          Ue$3(hv, ev, dv);
      }
      var jv;
      if (ae$2)
        e: {
          switch (rv) {
            case "compositionstart":
              var Dv = "onCompositionStart";
              break e;
            case "compositionend":
              Dv = "onCompositionEnd";
              break e;
            case "compositionupdate":
              Dv = "onCompositionUpdate";
              break e;
          }
          Dv = void 0;
        }
      else
        ie$2 ? ge$2(rv, ev) && (Dv = "onCompositionEnd") : rv === "keydown" && ev.keyCode === 229 && (Dv = "onCompositionStart");
      Dv && (de$2 && ev.locale !== "ko" && (ie$2 || Dv !== "onCompositionStart" ? Dv === "onCompositionEnd" && ie$2 && (jv = nd$2()) : (kd$1 = dv, ld$2 = "value" in kd$1 ? kd$1.value : kd$1.textContent, ie$2 = !0)), Lv = oe$4(cv, Dv), 0 < Lv.length && (Dv = new Ld$1(Dv, rv, null, ev, dv), hv.push({ event: Dv, listeners: Lv }), jv ? Dv.data = jv : (jv = he$3(ev), jv !== null && (Dv.data = jv)))), (jv = ce$3 ? je$3(rv, ev) : ke$3(rv, ev)) && (cv = oe$4(cv, "onBeforeInput"), 0 < cv.length && (dv = new Ld$1("onBeforeInput", "beforeinput", null, ev, dv), hv.push({ event: dv, listeners: cv }), dv.data = jv));
    }
    se$3(hv, tv);
  });
}
function tf$2(rv, tv, ev) {
  return { instance: rv, listener: tv, currentTarget: ev };
}
function oe$4(rv, tv) {
  for (var ev = tv + "Capture", iv = []; rv !== null; ) {
    var ov = rv, av = ov.stateNode;
    ov.tag === 5 && av !== null && (ov = av, av = Kb$1(rv, ev), av != null && iv.unshift(tf$2(rv, av, ov)), av = Kb$1(rv, tv), av != null && iv.push(tf$2(rv, av, ov))), rv = rv.return;
  }
  return iv;
}
function vf$2(rv) {
  if (rv === null)
    return null;
  do
    rv = rv.return;
  while (rv && rv.tag !== 5);
  return rv || null;
}
function wf$2(rv, tv, ev, iv, ov) {
  for (var av = tv._reactName, sv = []; ev !== null && ev !== iv; ) {
    var lv = ev, uv = lv.alternate, cv = lv.stateNode;
    if (uv !== null && uv === iv)
      break;
    lv.tag === 5 && cv !== null && (lv = cv, ov ? (uv = Kb$1(ev, av), uv != null && sv.unshift(tf$2(ev, uv, lv))) : ov || (uv = Kb$1(ev, av), uv != null && sv.push(tf$2(ev, uv, lv)))), ev = ev.return;
  }
  sv.length !== 0 && rv.push({ event: tv, listeners: sv });
}
var xf$2 = /\r\n?/g, yf$2 = /\u0000|\uFFFD/g;
function zf$2(rv) {
  return (typeof rv == "string" ? rv : "" + rv).replace(xf$2, `
`).replace(yf$2, "");
}
function Af$2(rv, tv, ev) {
  if (tv = zf$2(tv), zf$2(rv) !== tv && ev)
    throw Error(p$3(425));
}
function Bf$2() {
}
var Cf$2 = null, Df$2 = null;
function Ef$2(rv, tv) {
  return rv === "textarea" || rv === "noscript" || typeof tv.children == "string" || typeof tv.children == "number" || typeof tv.dangerouslySetInnerHTML == "object" && tv.dangerouslySetInnerHTML !== null && tv.dangerouslySetInnerHTML.__html != null;
}
var Ff$2 = typeof setTimeout == "function" ? setTimeout : void 0, Gf$2 = typeof clearTimeout == "function" ? clearTimeout : void 0, Hf$2 = typeof Promise == "function" ? Promise : void 0, Jf$2 = typeof queueMicrotask == "function" ? queueMicrotask : typeof Hf$2 < "u" ? function(rv) {
  return Hf$2.resolve(null).then(rv).catch(If$2);
} : Ff$2;
function If$2(rv) {
  setTimeout(function() {
    throw rv;
  });
}
function Kf$2(rv, tv) {
  var ev = tv, iv = 0;
  do {
    var ov = ev.nextSibling;
    if (rv.removeChild(ev), ov && ov.nodeType === 8)
      if (ev = ov.data, ev === "/$") {
        if (iv === 0) {
          rv.removeChild(ov), bd$2(tv);
          return;
        }
        iv--;
      } else
        ev !== "$" && ev !== "$?" && ev !== "$!" || iv++;
    ev = ov;
  } while (ev);
  bd$2(tv);
}
function Lf$2(rv) {
  for (; rv != null; rv = rv.nextSibling) {
    var tv = rv.nodeType;
    if (tv === 1 || tv === 3)
      break;
    if (tv === 8) {
      if (tv = rv.data, tv === "$" || tv === "$!" || tv === "$?")
        break;
      if (tv === "/$")
        return null;
    }
  }
  return rv;
}
function Mf$2(rv) {
  rv = rv.previousSibling;
  for (var tv = 0; rv; ) {
    if (rv.nodeType === 8) {
      var ev = rv.data;
      if (ev === "$" || ev === "$!" || ev === "$?") {
        if (tv === 0)
          return rv;
        tv--;
      } else
        ev === "/$" && tv++;
    }
    rv = rv.previousSibling;
  }
  return null;
}
var Nf$1 = Math.random().toString(36).slice(2), Of$2 = "__reactFiber$" + Nf$1, Pf$2 = "__reactProps$" + Nf$1, uf$2 = "__reactContainer$" + Nf$1, of$2 = "__reactEvents$" + Nf$1, Qf$2 = "__reactListeners$" + Nf$1, Rf$2 = "__reactHandles$" + Nf$1;
function Wc$2(rv) {
  var tv = rv[Of$2];
  if (tv)
    return tv;
  for (var ev = rv.parentNode; ev; ) {
    if (tv = ev[uf$2] || ev[Of$2]) {
      if (ev = tv.alternate, tv.child !== null || ev !== null && ev.child !== null)
        for (rv = Mf$2(rv); rv !== null; ) {
          if (ev = rv[Of$2])
            return ev;
          rv = Mf$2(rv);
        }
      return tv;
    }
    rv = ev, ev = rv.parentNode;
  }
  return null;
}
function Cb(rv) {
  return rv = rv[Of$2] || rv[uf$2], !rv || rv.tag !== 5 && rv.tag !== 6 && rv.tag !== 13 && rv.tag !== 3 ? null : rv;
}
function ue$3(rv) {
  if (rv.tag === 5 || rv.tag === 6)
    return rv.stateNode;
  throw Error(p$3(33));
}
function Db(rv) {
  return rv[Pf$2] || null;
}
var Sf$2 = [], Tf$2 = -1;
function Uf$2(rv) {
  return { current: rv };
}
function E$3(rv) {
  0 > Tf$2 || (rv.current = Sf$2[Tf$2], Sf$2[Tf$2] = null, Tf$2--);
}
function G$2(rv, tv) {
  Tf$2++, Sf$2[Tf$2] = rv.current, rv.current = tv;
}
var Vf$2 = {}, H$3 = Uf$2(Vf$2), Wf$2 = Uf$2(!1), Xf$2 = Vf$2;
function Yf$2(rv, tv) {
  var ev = rv.type.contextTypes;
  if (!ev)
    return Vf$2;
  var iv = rv.stateNode;
  if (iv && iv.__reactInternalMemoizedUnmaskedChildContext === tv)
    return iv.__reactInternalMemoizedMaskedChildContext;
  var ov = {}, av;
  for (av in ev)
    ov[av] = tv[av];
  return iv && (rv = rv.stateNode, rv.__reactInternalMemoizedUnmaskedChildContext = tv, rv.__reactInternalMemoizedMaskedChildContext = ov), ov;
}
function Zf$2(rv) {
  return rv = rv.childContextTypes, rv != null;
}
function $f$2() {
  E$3(Wf$2), E$3(H$3);
}
function ag$1(rv, tv, ev) {
  if (H$3.current !== Vf$2)
    throw Error(p$3(168));
  G$2(H$3, tv), G$2(Wf$2, ev);
}
function bg$2(rv, tv, ev) {
  var iv = rv.stateNode;
  if (tv = tv.childContextTypes, typeof iv.getChildContext != "function")
    return ev;
  iv = iv.getChildContext();
  for (var ov in iv)
    if (!(ov in tv))
      throw Error(p$3(108, Ra$4(rv) || "Unknown", ov));
  return A$2({}, ev, iv);
}
function cg$1(rv) {
  return rv = (rv = rv.stateNode) && rv.__reactInternalMemoizedMergedChildContext || Vf$2, Xf$2 = H$3.current, G$2(H$3, rv), G$2(Wf$2, Wf$2.current), !0;
}
function dg$2(rv, tv, ev) {
  var iv = rv.stateNode;
  if (!iv)
    throw Error(p$3(169));
  ev ? (rv = bg$2(rv, tv, Xf$2), iv.__reactInternalMemoizedMergedChildContext = rv, E$3(Wf$2), E$3(H$3), G$2(H$3, rv)) : E$3(Wf$2), G$2(Wf$2, ev);
}
var eg$1 = null, fg$2 = !1, gg$2 = !1;
function hg$2(rv) {
  eg$1 === null ? eg$1 = [rv] : eg$1.push(rv);
}
function ig$1(rv) {
  fg$2 = !0, hg$2(rv);
}
function jg$2() {
  if (!gg$2 && eg$1 !== null) {
    gg$2 = !0;
    var rv = 0, tv = C$3;
    try {
      var ev = eg$1;
      for (C$3 = 1; rv < ev.length; rv++) {
        var iv = ev[rv];
        do
          iv = iv(!0);
        while (iv !== null);
      }
      eg$1 = null, fg$2 = !1;
    } catch (ov) {
      throw eg$1 !== null && (eg$1 = eg$1.slice(rv + 1)), ac$3(fc$2, jg$2), ov;
    } finally {
      C$3 = tv, gg$2 = !1;
    }
  }
  return null;
}
var kg$2 = [], lg$1 = 0, mg$2 = null, ng$1 = 0, og$1 = [], pg$2 = 0, qg$1 = null, rg$2 = 1, sg$1 = "";
function tg$1(rv, tv) {
  kg$2[lg$1++] = ng$1, kg$2[lg$1++] = mg$2, mg$2 = rv, ng$1 = tv;
}
function ug$1(rv, tv, ev) {
  og$1[pg$2++] = rg$2, og$1[pg$2++] = sg$1, og$1[pg$2++] = qg$1, qg$1 = rv;
  var iv = rg$2;
  rv = sg$1;
  var ov = 32 - oc$3(iv) - 1;
  iv &= ~(1 << ov), ev += 1;
  var av = 32 - oc$3(tv) + ov;
  if (30 < av) {
    var sv = ov - ov % 5;
    av = (iv & (1 << sv) - 1).toString(32), iv >>= sv, ov -= sv, rg$2 = 1 << 32 - oc$3(tv) + ov | ev << ov | iv, sg$1 = av + rv;
  } else
    rg$2 = 1 << av | ev << ov | iv, sg$1 = rv;
}
function vg$2(rv) {
  rv.return !== null && (tg$1(rv, 1), ug$1(rv, 1, 0));
}
function wg$2(rv) {
  for (; rv === mg$2; )
    mg$2 = kg$2[--lg$1], kg$2[lg$1] = null, ng$1 = kg$2[--lg$1], kg$2[lg$1] = null;
  for (; rv === qg$1; )
    qg$1 = og$1[--pg$2], og$1[pg$2] = null, sg$1 = og$1[--pg$2], og$1[pg$2] = null, rg$2 = og$1[--pg$2], og$1[pg$2] = null;
}
var xg$2 = null, yg$2 = null, I$3 = !1, zg$2 = null;
function Ag$2(rv, tv) {
  var ev = Bg$2(5, null, null, 0);
  ev.elementType = "DELETED", ev.stateNode = tv, ev.return = rv, tv = rv.deletions, tv === null ? (rv.deletions = [ev], rv.flags |= 16) : tv.push(ev);
}
function Cg$2(rv, tv) {
  switch (rv.tag) {
    case 5:
      var ev = rv.type;
      return tv = tv.nodeType !== 1 || ev.toLowerCase() !== tv.nodeName.toLowerCase() ? null : tv, tv !== null ? (rv.stateNode = tv, xg$2 = rv, yg$2 = Lf$2(tv.firstChild), !0) : !1;
    case 6:
      return tv = rv.pendingProps === "" || tv.nodeType !== 3 ? null : tv, tv !== null ? (rv.stateNode = tv, xg$2 = rv, yg$2 = null, !0) : !1;
    case 13:
      return tv = tv.nodeType !== 8 ? null : tv, tv !== null ? (ev = qg$1 !== null ? { id: rg$2, overflow: sg$1 } : null, rv.memoizedState = { dehydrated: tv, treeContext: ev, retryLane: 1073741824 }, ev = Bg$2(18, null, null, 0), ev.stateNode = tv, ev.return = rv, rv.child = ev, xg$2 = rv, yg$2 = null, !0) : !1;
    default:
      return !1;
  }
}
function Dg$2(rv) {
  return (rv.mode & 1) !== 0 && (rv.flags & 128) === 0;
}
function Eg$2(rv) {
  if (I$3) {
    var tv = yg$2;
    if (tv) {
      var ev = tv;
      if (!Cg$2(rv, tv)) {
        if (Dg$2(rv))
          throw Error(p$3(418));
        tv = Lf$2(ev.nextSibling);
        var iv = xg$2;
        tv && Cg$2(rv, tv) ? Ag$2(iv, ev) : (rv.flags = rv.flags & -4097 | 2, I$3 = !1, xg$2 = rv);
      }
    } else {
      if (Dg$2(rv))
        throw Error(p$3(418));
      rv.flags = rv.flags & -4097 | 2, I$3 = !1, xg$2 = rv;
    }
  }
}
function Fg$2(rv) {
  for (rv = rv.return; rv !== null && rv.tag !== 5 && rv.tag !== 3 && rv.tag !== 13; )
    rv = rv.return;
  xg$2 = rv;
}
function Gg$2(rv) {
  if (rv !== xg$2)
    return !1;
  if (!I$3)
    return Fg$2(rv), I$3 = !0, !1;
  var tv;
  if ((tv = rv.tag !== 3) && !(tv = rv.tag !== 5) && (tv = rv.type, tv = tv !== "head" && tv !== "body" && !Ef$2(rv.type, rv.memoizedProps)), tv && (tv = yg$2)) {
    if (Dg$2(rv))
      throw Hg$2(), Error(p$3(418));
    for (; tv; )
      Ag$2(rv, tv), tv = Lf$2(tv.nextSibling);
  }
  if (Fg$2(rv), rv.tag === 13) {
    if (rv = rv.memoizedState, rv = rv !== null ? rv.dehydrated : null, !rv)
      throw Error(p$3(317));
    e: {
      for (rv = rv.nextSibling, tv = 0; rv; ) {
        if (rv.nodeType === 8) {
          var ev = rv.data;
          if (ev === "/$") {
            if (tv === 0) {
              yg$2 = Lf$2(rv.nextSibling);
              break e;
            }
            tv--;
          } else
            ev !== "$" && ev !== "$!" && ev !== "$?" || tv++;
        }
        rv = rv.nextSibling;
      }
      yg$2 = null;
    }
  } else
    yg$2 = xg$2 ? Lf$2(rv.stateNode.nextSibling) : null;
  return !0;
}
function Hg$2() {
  for (var rv = yg$2; rv; )
    rv = Lf$2(rv.nextSibling);
}
function Ig$2() {
  yg$2 = xg$2 = null, I$3 = !1;
}
function Jg(rv) {
  zg$2 === null ? zg$2 = [rv] : zg$2.push(rv);
}
var Kg = ua$4.ReactCurrentBatchConfig;
function Lg$2(rv, tv, ev) {
  if (rv = ev.ref, rv !== null && typeof rv != "function" && typeof rv != "object") {
    if (ev._owner) {
      if (ev = ev._owner, ev) {
        if (ev.tag !== 1)
          throw Error(p$3(309));
        var iv = ev.stateNode;
      }
      if (!iv)
        throw Error(p$3(147, rv));
      var ov = iv, av = "" + rv;
      return tv !== null && tv.ref !== null && typeof tv.ref == "function" && tv.ref._stringRef === av ? tv.ref : (tv = function(sv) {
        var lv = ov.refs;
        sv === null ? delete lv[av] : lv[av] = sv;
      }, tv._stringRef = av, tv);
    }
    if (typeof rv != "string")
      throw Error(p$3(284));
    if (!ev._owner)
      throw Error(p$3(290, rv));
  }
  return rv;
}
function Mg$2(rv, tv) {
  throw rv = Object.prototype.toString.call(tv), Error(p$3(31, rv === "[object Object]" ? "object with keys {" + Object.keys(tv).join(", ") + "}" : rv));
}
function Ng$2(rv) {
  var tv = rv._init;
  return tv(rv._payload);
}
function Og$2(rv) {
  function tv(wv, xv) {
    if (rv) {
      var Cv = wv.deletions;
      Cv === null ? (wv.deletions = [xv], wv.flags |= 16) : Cv.push(xv);
    }
  }
  function ev(wv, xv) {
    if (!rv)
      return null;
    for (; xv !== null; )
      tv(wv, xv), xv = xv.sibling;
    return null;
  }
  function iv(wv, xv) {
    for (wv = /* @__PURE__ */ new Map(); xv !== null; )
      xv.key !== null ? wv.set(xv.key, xv) : wv.set(xv.index, xv), xv = xv.sibling;
    return wv;
  }
  function ov(wv, xv) {
    return wv = Pg$2(wv, xv), wv.index = 0, wv.sibling = null, wv;
  }
  function av(wv, xv, Cv) {
    return wv.index = Cv, rv ? (Cv = wv.alternate, Cv !== null ? (Cv = Cv.index, Cv < xv ? (wv.flags |= 2, xv) : Cv) : (wv.flags |= 2, xv)) : (wv.flags |= 1048576, xv);
  }
  function sv(wv) {
    return rv && wv.alternate === null && (wv.flags |= 2), wv;
  }
  function lv(wv, xv, Cv, Av) {
    return xv === null || xv.tag !== 6 ? (xv = Qg(Cv, wv.mode, Av), xv.return = wv, xv) : (xv = ov(xv, Cv), xv.return = wv, xv);
  }
  function uv(wv, xv, Cv, Av) {
    var Ov = Cv.type;
    return Ov === ya$3 ? dv(wv, xv, Cv.props.children, Av, Cv.key) : xv !== null && (xv.elementType === Ov || typeof Ov == "object" && Ov !== null && Ov.$$typeof === Ha$2 && Ng$2(Ov) === xv.type) ? (Av = ov(xv, Cv.props), Av.ref = Lg$2(wv, xv, Cv), Av.return = wv, Av) : (Av = Rg$2(Cv.type, Cv.key, Cv.props, null, wv.mode, Av), Av.ref = Lg$2(wv, xv, Cv), Av.return = wv, Av);
  }
  function cv(wv, xv, Cv, Av) {
    return xv === null || xv.tag !== 4 || xv.stateNode.containerInfo !== Cv.containerInfo || xv.stateNode.implementation !== Cv.implementation ? (xv = Sg$2(Cv, wv.mode, Av), xv.return = wv, xv) : (xv = ov(xv, Cv.children || []), xv.return = wv, xv);
  }
  function dv(wv, xv, Cv, Av, Ov) {
    return xv === null || xv.tag !== 7 ? (xv = Tg$2(Cv, wv.mode, Av, Ov), xv.return = wv, xv) : (xv = ov(xv, Cv), xv.return = wv, xv);
  }
  function hv(wv, xv, Cv) {
    if (typeof xv == "string" && xv !== "" || typeof xv == "number")
      return xv = Qg("" + xv, wv.mode, Cv), xv.return = wv, xv;
    if (typeof xv == "object" && xv !== null) {
      switch (xv.$$typeof) {
        case va$4:
          return Cv = Rg$2(xv.type, xv.key, xv.props, null, wv.mode, Cv), Cv.ref = Lg$2(wv, null, xv), Cv.return = wv, Cv;
        case wa$3:
          return xv = Sg$2(xv, wv.mode, Cv), xv.return = wv, xv;
        case Ha$2:
          var Av = xv._init;
          return hv(wv, Av(xv._payload), Cv);
      }
      if (eb(xv) || Ka$3(xv))
        return xv = Tg$2(xv, wv.mode, Cv, null), xv.return = wv, xv;
      Mg$2(wv, xv);
    }
    return null;
  }
  function pv(wv, xv, Cv, Av) {
    var Ov = xv !== null ? xv.key : null;
    if (typeof Cv == "string" && Cv !== "" || typeof Cv == "number")
      return Ov !== null ? null : lv(wv, xv, "" + Cv, Av);
    if (typeof Cv == "object" && Cv !== null) {
      switch (Cv.$$typeof) {
        case va$4:
          return Cv.key === Ov ? uv(wv, xv, Cv, Av) : null;
        case wa$3:
          return Cv.key === Ov ? cv(wv, xv, Cv, Av) : null;
        case Ha$2:
          return Ov = Cv._init, pv(
            wv,
            xv,
            Ov(Cv._payload),
            Av
          );
      }
      if (eb(Cv) || Ka$3(Cv))
        return Ov !== null ? null : dv(wv, xv, Cv, Av, null);
      Mg$2(wv, Cv);
    }
    return null;
  }
  function yv(wv, xv, Cv, Av, Ov) {
    if (typeof Av == "string" && Av !== "" || typeof Av == "number")
      return wv = wv.get(Cv) || null, lv(xv, wv, "" + Av, Ov);
    if (typeof Av == "object" && Av !== null) {
      switch (Av.$$typeof) {
        case va$4:
          return wv = wv.get(Av.key === null ? Cv : Av.key) || null, uv(xv, wv, Av, Ov);
        case wa$3:
          return wv = wv.get(Av.key === null ? Cv : Av.key) || null, cv(xv, wv, Av, Ov);
        case Ha$2:
          var Lv = Av._init;
          return yv(wv, xv, Cv, Lv(Av._payload), Ov);
      }
      if (eb(Av) || Ka$3(Av))
        return wv = wv.get(Cv) || null, dv(xv, wv, Av, Ov, null);
      Mg$2(xv, Av);
    }
    return null;
  }
  function Sv(wv, xv, Cv, Av) {
    for (var Ov = null, Lv = null, jv = xv, Dv = xv = 0, Vv = null; jv !== null && Dv < Cv.length; Dv++) {
      jv.index > Dv ? (Vv = jv, jv = null) : Vv = jv.sibling;
      var Gv = pv(wv, jv, Cv[Dv], Av);
      if (Gv === null) {
        jv === null && (jv = Vv);
        break;
      }
      rv && jv && Gv.alternate === null && tv(wv, jv), xv = av(Gv, xv, Dv), Lv === null ? Ov = Gv : Lv.sibling = Gv, Lv = Gv, jv = Vv;
    }
    if (Dv === Cv.length)
      return ev(wv, jv), I$3 && tg$1(wv, Dv), Ov;
    if (jv === null) {
      for (; Dv < Cv.length; Dv++)
        jv = hv(wv, Cv[Dv], Av), jv !== null && (xv = av(jv, xv, Dv), Lv === null ? Ov = jv : Lv.sibling = jv, Lv = jv);
      return I$3 && tg$1(wv, Dv), Ov;
    }
    for (jv = iv(wv, jv); Dv < Cv.length; Dv++)
      Vv = yv(jv, wv, Dv, Cv[Dv], Av), Vv !== null && (rv && Vv.alternate !== null && jv.delete(Vv.key === null ? Dv : Vv.key), xv = av(Vv, xv, Dv), Lv === null ? Ov = Vv : Lv.sibling = Vv, Lv = Vv);
    return rv && jv.forEach(function(Yv) {
      return tv(wv, Yv);
    }), I$3 && tg$1(wv, Dv), Ov;
  }
  function _v(wv, xv, Cv, Av) {
    var Ov = Ka$3(Cv);
    if (typeof Ov != "function")
      throw Error(p$3(150));
    if (Cv = Ov.call(Cv), Cv == null)
      throw Error(p$3(151));
    for (var Lv = Ov = null, jv = xv, Dv = xv = 0, Vv = null, Gv = Cv.next(); jv !== null && !Gv.done; Dv++, Gv = Cv.next()) {
      jv.index > Dv ? (Vv = jv, jv = null) : Vv = jv.sibling;
      var Yv = pv(wv, jv, Gv.value, Av);
      if (Yv === null) {
        jv === null && (jv = Vv);
        break;
      }
      rv && jv && Yv.alternate === null && tv(wv, jv), xv = av(Yv, xv, Dv), Lv === null ? Ov = Yv : Lv.sibling = Yv, Lv = Yv, jv = Vv;
    }
    if (Gv.done)
      return ev(
        wv,
        jv
      ), I$3 && tg$1(wv, Dv), Ov;
    if (jv === null) {
      for (; !Gv.done; Dv++, Gv = Cv.next())
        Gv = hv(wv, Gv.value, Av), Gv !== null && (xv = av(Gv, xv, Dv), Lv === null ? Ov = Gv : Lv.sibling = Gv, Lv = Gv);
      return I$3 && tg$1(wv, Dv), Ov;
    }
    for (jv = iv(wv, jv); !Gv.done; Dv++, Gv = Cv.next())
      Gv = yv(jv, wv, Dv, Gv.value, Av), Gv !== null && (rv && Gv.alternate !== null && jv.delete(Gv.key === null ? Dv : Gv.key), xv = av(Gv, xv, Dv), Lv === null ? Ov = Gv : Lv.sibling = Gv, Lv = Gv);
    return rv && jv.forEach(function(Xv) {
      return tv(wv, Xv);
    }), I$3 && tg$1(wv, Dv), Ov;
  }
  function Ev(wv, xv, Cv, Av) {
    if (typeof Cv == "object" && Cv !== null && Cv.type === ya$3 && Cv.key === null && (Cv = Cv.props.children), typeof Cv == "object" && Cv !== null) {
      switch (Cv.$$typeof) {
        case va$4:
          e: {
            for (var Ov = Cv.key, Lv = xv; Lv !== null; ) {
              if (Lv.key === Ov) {
                if (Ov = Cv.type, Ov === ya$3) {
                  if (Lv.tag === 7) {
                    ev(wv, Lv.sibling), xv = ov(Lv, Cv.props.children), xv.return = wv, wv = xv;
                    break e;
                  }
                } else if (Lv.elementType === Ov || typeof Ov == "object" && Ov !== null && Ov.$$typeof === Ha$2 && Ng$2(Ov) === Lv.type) {
                  ev(wv, Lv.sibling), xv = ov(Lv, Cv.props), xv.ref = Lg$2(wv, Lv, Cv), xv.return = wv, wv = xv;
                  break e;
                }
                ev(wv, Lv);
                break;
              } else
                tv(wv, Lv);
              Lv = Lv.sibling;
            }
            Cv.type === ya$3 ? (xv = Tg$2(Cv.props.children, wv.mode, Av, Cv.key), xv.return = wv, wv = xv) : (Av = Rg$2(Cv.type, Cv.key, Cv.props, null, wv.mode, Av), Av.ref = Lg$2(wv, xv, Cv), Av.return = wv, wv = Av);
          }
          return sv(wv);
        case wa$3:
          e: {
            for (Lv = Cv.key; xv !== null; ) {
              if (xv.key === Lv)
                if (xv.tag === 4 && xv.stateNode.containerInfo === Cv.containerInfo && xv.stateNode.implementation === Cv.implementation) {
                  ev(wv, xv.sibling), xv = ov(xv, Cv.children || []), xv.return = wv, wv = xv;
                  break e;
                } else {
                  ev(wv, xv);
                  break;
                }
              else
                tv(wv, xv);
              xv = xv.sibling;
            }
            xv = Sg$2(Cv, wv.mode, Av), xv.return = wv, wv = xv;
          }
          return sv(wv);
        case Ha$2:
          return Lv = Cv._init, Ev(wv, xv, Lv(Cv._payload), Av);
      }
      if (eb(Cv))
        return Sv(wv, xv, Cv, Av);
      if (Ka$3(Cv))
        return _v(wv, xv, Cv, Av);
      Mg$2(wv, Cv);
    }
    return typeof Cv == "string" && Cv !== "" || typeof Cv == "number" ? (Cv = "" + Cv, xv !== null && xv.tag === 6 ? (ev(wv, xv.sibling), xv = ov(xv, Cv), xv.return = wv, wv = xv) : (ev(wv, xv), xv = Qg(Cv, wv.mode, Av), xv.return = wv, wv = xv), sv(wv)) : ev(wv, xv);
  }
  return Ev;
}
var Ug$2 = Og$2(!0), Vg$2 = Og$2(!1), Wg = Uf$2(null), Xg$1 = null, Yg = null, Zg = null;
function $g$2() {
  Zg = Yg = Xg$1 = null;
}
function ah$2(rv) {
  var tv = Wg.current;
  E$3(Wg), rv._currentValue = tv;
}
function bh$2(rv, tv, ev) {
  for (; rv !== null; ) {
    var iv = rv.alternate;
    if ((rv.childLanes & tv) !== tv ? (rv.childLanes |= tv, iv !== null && (iv.childLanes |= tv)) : iv !== null && (iv.childLanes & tv) !== tv && (iv.childLanes |= tv), rv === ev)
      break;
    rv = rv.return;
  }
}
function ch$1(rv, tv) {
  Xg$1 = rv, Zg = Yg = null, rv = rv.dependencies, rv !== null && rv.firstContext !== null && (rv.lanes & tv && (dh$1 = !0), rv.firstContext = null);
}
function eh$2(rv) {
  var tv = rv._currentValue;
  if (Zg !== rv)
    if (rv = { context: rv, memoizedValue: tv, next: null }, Yg === null) {
      if (Xg$1 === null)
        throw Error(p$3(308));
      Yg = rv, Xg$1.dependencies = { lanes: 0, firstContext: rv };
    } else
      Yg = Yg.next = rv;
  return tv;
}
var fh$2 = null;
function gh$2(rv) {
  fh$2 === null ? fh$2 = [rv] : fh$2.push(rv);
}
function hh$2(rv, tv, ev, iv) {
  var ov = tv.interleaved;
  return ov === null ? (ev.next = ev, gh$2(tv)) : (ev.next = ov.next, ov.next = ev), tv.interleaved = ev, ih$2(rv, iv);
}
function ih$2(rv, tv) {
  rv.lanes |= tv;
  var ev = rv.alternate;
  for (ev !== null && (ev.lanes |= tv), ev = rv, rv = rv.return; rv !== null; )
    rv.childLanes |= tv, ev = rv.alternate, ev !== null && (ev.childLanes |= tv), ev = rv, rv = rv.return;
  return ev.tag === 3 ? ev.stateNode : null;
}
var jh$2 = !1;
function kh$1(rv) {
  rv.updateQueue = { baseState: rv.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, interleaved: null, lanes: 0 }, effects: null };
}
function lh$2(rv, tv) {
  rv = rv.updateQueue, tv.updateQueue === rv && (tv.updateQueue = { baseState: rv.baseState, firstBaseUpdate: rv.firstBaseUpdate, lastBaseUpdate: rv.lastBaseUpdate, shared: rv.shared, effects: rv.effects });
}
function mh$2(rv, tv) {
  return { eventTime: rv, lane: tv, tag: 0, payload: null, callback: null, next: null };
}
function nh$2(rv, tv, ev) {
  var iv = rv.updateQueue;
  if (iv === null)
    return null;
  if (iv = iv.shared, K$3 & 2) {
    var ov = iv.pending;
    return ov === null ? tv.next = tv : (tv.next = ov.next, ov.next = tv), iv.pending = tv, ih$2(rv, ev);
  }
  return ov = iv.interleaved, ov === null ? (tv.next = tv, gh$2(iv)) : (tv.next = ov.next, ov.next = tv), iv.interleaved = tv, ih$2(rv, ev);
}
function oh$2(rv, tv, ev) {
  if (tv = tv.updateQueue, tv !== null && (tv = tv.shared, (ev & 4194240) !== 0)) {
    var iv = tv.lanes;
    iv &= rv.pendingLanes, ev |= iv, tv.lanes = ev, Cc$3(rv, ev);
  }
}
function ph$2(rv, tv) {
  var ev = rv.updateQueue, iv = rv.alternate;
  if (iv !== null && (iv = iv.updateQueue, ev === iv)) {
    var ov = null, av = null;
    if (ev = ev.firstBaseUpdate, ev !== null) {
      do {
        var sv = { eventTime: ev.eventTime, lane: ev.lane, tag: ev.tag, payload: ev.payload, callback: ev.callback, next: null };
        av === null ? ov = av = sv : av = av.next = sv, ev = ev.next;
      } while (ev !== null);
      av === null ? ov = av = tv : av = av.next = tv;
    } else
      ov = av = tv;
    ev = { baseState: iv.baseState, firstBaseUpdate: ov, lastBaseUpdate: av, shared: iv.shared, effects: iv.effects }, rv.updateQueue = ev;
    return;
  }
  rv = ev.lastBaseUpdate, rv === null ? ev.firstBaseUpdate = tv : rv.next = tv, ev.lastBaseUpdate = tv;
}
function qh$2(rv, tv, ev, iv) {
  var ov = rv.updateQueue;
  jh$2 = !1;
  var av = ov.firstBaseUpdate, sv = ov.lastBaseUpdate, lv = ov.shared.pending;
  if (lv !== null) {
    ov.shared.pending = null;
    var uv = lv, cv = uv.next;
    uv.next = null, sv === null ? av = cv : sv.next = cv, sv = uv;
    var dv = rv.alternate;
    dv !== null && (dv = dv.updateQueue, lv = dv.lastBaseUpdate, lv !== sv && (lv === null ? dv.firstBaseUpdate = cv : lv.next = cv, dv.lastBaseUpdate = uv));
  }
  if (av !== null) {
    var hv = ov.baseState;
    sv = 0, dv = cv = uv = null, lv = av;
    do {
      var pv = lv.lane, yv = lv.eventTime;
      if ((iv & pv) === pv) {
        dv !== null && (dv = dv.next = {
          eventTime: yv,
          lane: 0,
          tag: lv.tag,
          payload: lv.payload,
          callback: lv.callback,
          next: null
        });
        e: {
          var Sv = rv, _v = lv;
          switch (pv = tv, yv = ev, _v.tag) {
            case 1:
              if (Sv = _v.payload, typeof Sv == "function") {
                hv = Sv.call(yv, hv, pv);
                break e;
              }
              hv = Sv;
              break e;
            case 3:
              Sv.flags = Sv.flags & -65537 | 128;
            case 0:
              if (Sv = _v.payload, pv = typeof Sv == "function" ? Sv.call(yv, hv, pv) : Sv, pv == null)
                break e;
              hv = A$2({}, hv, pv);
              break e;
            case 2:
              jh$2 = !0;
          }
        }
        lv.callback !== null && lv.lane !== 0 && (rv.flags |= 64, pv = ov.effects, pv === null ? ov.effects = [lv] : pv.push(lv));
      } else
        yv = { eventTime: yv, lane: pv, tag: lv.tag, payload: lv.payload, callback: lv.callback, next: null }, dv === null ? (cv = dv = yv, uv = hv) : dv = dv.next = yv, sv |= pv;
      if (lv = lv.next, lv === null) {
        if (lv = ov.shared.pending, lv === null)
          break;
        pv = lv, lv = pv.next, pv.next = null, ov.lastBaseUpdate = pv, ov.shared.pending = null;
      }
    } while (!0);
    if (dv === null && (uv = hv), ov.baseState = uv, ov.firstBaseUpdate = cv, ov.lastBaseUpdate = dv, tv = ov.shared.interleaved, tv !== null) {
      ov = tv;
      do
        sv |= ov.lane, ov = ov.next;
      while (ov !== tv);
    } else
      av === null && (ov.shared.lanes = 0);
    rh$2 |= sv, rv.lanes = sv, rv.memoizedState = hv;
  }
}
function sh$2(rv, tv, ev) {
  if (rv = tv.effects, tv.effects = null, rv !== null)
    for (tv = 0; tv < rv.length; tv++) {
      var iv = rv[tv], ov = iv.callback;
      if (ov !== null) {
        if (iv.callback = null, iv = ev, typeof ov != "function")
          throw Error(p$3(191, ov));
        ov.call(iv);
      }
    }
}
var th$2 = {}, uh$2 = Uf$2(th$2), vh$2 = Uf$2(th$2), wh$2 = Uf$2(th$2);
function xh$2(rv) {
  if (rv === th$2)
    throw Error(p$3(174));
  return rv;
}
function yh$2(rv, tv) {
  switch (G$2(wh$2, tv), G$2(vh$2, rv), G$2(uh$2, th$2), rv = tv.nodeType, rv) {
    case 9:
    case 11:
      tv = (tv = tv.documentElement) ? tv.namespaceURI : lb(null, "");
      break;
    default:
      rv = rv === 8 ? tv.parentNode : tv, tv = rv.namespaceURI || null, rv = rv.tagName, tv = lb(tv, rv);
  }
  E$3(uh$2), G$2(uh$2, tv);
}
function zh$2() {
  E$3(uh$2), E$3(vh$2), E$3(wh$2);
}
function Ah$2(rv) {
  xh$2(wh$2.current);
  var tv = xh$2(uh$2.current), ev = lb(tv, rv.type);
  tv !== ev && (G$2(vh$2, rv), G$2(uh$2, ev));
}
function Bh$2(rv) {
  vh$2.current === rv && (E$3(uh$2), E$3(vh$2));
}
var L$3 = Uf$2(0);
function Ch$2(rv) {
  for (var tv = rv; tv !== null; ) {
    if (tv.tag === 13) {
      var ev = tv.memoizedState;
      if (ev !== null && (ev = ev.dehydrated, ev === null || ev.data === "$?" || ev.data === "$!"))
        return tv;
    } else if (tv.tag === 19 && tv.memoizedProps.revealOrder !== void 0) {
      if (tv.flags & 128)
        return tv;
    } else if (tv.child !== null) {
      tv.child.return = tv, tv = tv.child;
      continue;
    }
    if (tv === rv)
      break;
    for (; tv.sibling === null; ) {
      if (tv.return === null || tv.return === rv)
        return null;
      tv = tv.return;
    }
    tv.sibling.return = tv.return, tv = tv.sibling;
  }
  return null;
}
var Dh$1 = [];
function Eh$2() {
  for (var rv = 0; rv < Dh$1.length; rv++)
    Dh$1[rv]._workInProgressVersionPrimary = null;
  Dh$1.length = 0;
}
var Fh$2 = ua$4.ReactCurrentDispatcher, Gh$2 = ua$4.ReactCurrentBatchConfig, Hh$2 = 0, M$1 = null, N$3 = null, O$1 = null, Ih$1 = !1, Jh$2 = !1, Kh$2 = 0, Lh$1 = 0;
function P$3() {
  throw Error(p$3(321));
}
function Mh$2(rv, tv) {
  if (tv === null)
    return !1;
  for (var ev = 0; ev < tv.length && ev < rv.length; ev++)
    if (!He$2(rv[ev], tv[ev]))
      return !1;
  return !0;
}
function Nh$1(rv, tv, ev, iv, ov, av) {
  if (Hh$2 = av, M$1 = tv, tv.memoizedState = null, tv.updateQueue = null, tv.lanes = 0, Fh$2.current = rv === null || rv.memoizedState === null ? Oh$1 : Ph$1, rv = ev(iv, ov), Jh$2) {
    av = 0;
    do {
      if (Jh$2 = !1, Kh$2 = 0, 25 <= av)
        throw Error(p$3(301));
      av += 1, O$1 = N$3 = null, tv.updateQueue = null, Fh$2.current = Qh$2, rv = ev(iv, ov);
    } while (Jh$2);
  }
  if (Fh$2.current = Rh$2, tv = N$3 !== null && N$3.next !== null, Hh$2 = 0, O$1 = N$3 = M$1 = null, Ih$1 = !1, tv)
    throw Error(p$3(300));
  return rv;
}
function Sh$2() {
  var rv = Kh$2 !== 0;
  return Kh$2 = 0, rv;
}
function Th$2() {
  var rv = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null };
  return O$1 === null ? M$1.memoizedState = O$1 = rv : O$1 = O$1.next = rv, O$1;
}
function Uh$2() {
  if (N$3 === null) {
    var rv = M$1.alternate;
    rv = rv !== null ? rv.memoizedState : null;
  } else
    rv = N$3.next;
  var tv = O$1 === null ? M$1.memoizedState : O$1.next;
  if (tv !== null)
    O$1 = tv, N$3 = rv;
  else {
    if (rv === null)
      throw Error(p$3(310));
    N$3 = rv, rv = { memoizedState: N$3.memoizedState, baseState: N$3.baseState, baseQueue: N$3.baseQueue, queue: N$3.queue, next: null }, O$1 === null ? M$1.memoizedState = O$1 = rv : O$1 = O$1.next = rv;
  }
  return O$1;
}
function Vh$2(rv, tv) {
  return typeof tv == "function" ? tv(rv) : tv;
}
function Wh$2(rv) {
  var tv = Uh$2(), ev = tv.queue;
  if (ev === null)
    throw Error(p$3(311));
  ev.lastRenderedReducer = rv;
  var iv = N$3, ov = iv.baseQueue, av = ev.pending;
  if (av !== null) {
    if (ov !== null) {
      var sv = ov.next;
      ov.next = av.next, av.next = sv;
    }
    iv.baseQueue = ov = av, ev.pending = null;
  }
  if (ov !== null) {
    av = ov.next, iv = iv.baseState;
    var lv = sv = null, uv = null, cv = av;
    do {
      var dv = cv.lane;
      if ((Hh$2 & dv) === dv)
        uv !== null && (uv = uv.next = { lane: 0, action: cv.action, hasEagerState: cv.hasEagerState, eagerState: cv.eagerState, next: null }), iv = cv.hasEagerState ? cv.eagerState : rv(iv, cv.action);
      else {
        var hv = {
          lane: dv,
          action: cv.action,
          hasEagerState: cv.hasEagerState,
          eagerState: cv.eagerState,
          next: null
        };
        uv === null ? (lv = uv = hv, sv = iv) : uv = uv.next = hv, M$1.lanes |= dv, rh$2 |= dv;
      }
      cv = cv.next;
    } while (cv !== null && cv !== av);
    uv === null ? sv = iv : uv.next = lv, He$2(iv, tv.memoizedState) || (dh$1 = !0), tv.memoizedState = iv, tv.baseState = sv, tv.baseQueue = uv, ev.lastRenderedState = iv;
  }
  if (rv = ev.interleaved, rv !== null) {
    ov = rv;
    do
      av = ov.lane, M$1.lanes |= av, rh$2 |= av, ov = ov.next;
    while (ov !== rv);
  } else
    ov === null && (ev.lanes = 0);
  return [tv.memoizedState, ev.dispatch];
}
function Xh$2(rv) {
  var tv = Uh$2(), ev = tv.queue;
  if (ev === null)
    throw Error(p$3(311));
  ev.lastRenderedReducer = rv;
  var iv = ev.dispatch, ov = ev.pending, av = tv.memoizedState;
  if (ov !== null) {
    ev.pending = null;
    var sv = ov = ov.next;
    do
      av = rv(av, sv.action), sv = sv.next;
    while (sv !== ov);
    He$2(av, tv.memoizedState) || (dh$1 = !0), tv.memoizedState = av, tv.baseQueue === null && (tv.baseState = av), ev.lastRenderedState = av;
  }
  return [av, iv];
}
function Yh$2() {
}
function Zh$2(rv, tv) {
  var ev = M$1, iv = Uh$2(), ov = tv(), av = !He$2(iv.memoizedState, ov);
  if (av && (iv.memoizedState = ov, dh$1 = !0), iv = iv.queue, $h$2(ai$3.bind(null, ev, iv, rv), [rv]), iv.getSnapshot !== tv || av || O$1 !== null && O$1.memoizedState.tag & 1) {
    if (ev.flags |= 2048, bi$3(9, ci$4.bind(null, ev, iv, ov, tv), void 0, null), Q$3 === null)
      throw Error(p$3(349));
    Hh$2 & 30 || di$4(ev, tv, ov);
  }
  return ov;
}
function di$4(rv, tv, ev) {
  rv.flags |= 16384, rv = { getSnapshot: tv, value: ev }, tv = M$1.updateQueue, tv === null ? (tv = { lastEffect: null, stores: null }, M$1.updateQueue = tv, tv.stores = [rv]) : (ev = tv.stores, ev === null ? tv.stores = [rv] : ev.push(rv));
}
function ci$4(rv, tv, ev, iv) {
  tv.value = ev, tv.getSnapshot = iv, ei$4(tv) && fi$4(rv);
}
function ai$3(rv, tv, ev) {
  return ev(function() {
    ei$4(tv) && fi$4(rv);
  });
}
function ei$4(rv) {
  var tv = rv.getSnapshot;
  rv = rv.value;
  try {
    var ev = tv();
    return !He$2(rv, ev);
  } catch {
    return !0;
  }
}
function fi$4(rv) {
  var tv = ih$2(rv, 1);
  tv !== null && gi$4(tv, rv, 1, -1);
}
function hi$4(rv) {
  var tv = Th$2();
  return typeof rv == "function" && (rv = rv()), tv.memoizedState = tv.baseState = rv, rv = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: Vh$2, lastRenderedState: rv }, tv.queue = rv, rv = rv.dispatch = ii$3.bind(null, M$1, rv), [tv.memoizedState, rv];
}
function bi$3(rv, tv, ev, iv) {
  return rv = { tag: rv, create: tv, destroy: ev, deps: iv, next: null }, tv = M$1.updateQueue, tv === null ? (tv = { lastEffect: null, stores: null }, M$1.updateQueue = tv, tv.lastEffect = rv.next = rv) : (ev = tv.lastEffect, ev === null ? tv.lastEffect = rv.next = rv : (iv = ev.next, ev.next = rv, rv.next = iv, tv.lastEffect = rv)), rv;
}
function ji$2() {
  return Uh$2().memoizedState;
}
function ki$3(rv, tv, ev, iv) {
  var ov = Th$2();
  M$1.flags |= rv, ov.memoizedState = bi$3(1 | tv, ev, void 0, iv === void 0 ? null : iv);
}
function li$4(rv, tv, ev, iv) {
  var ov = Uh$2();
  iv = iv === void 0 ? null : iv;
  var av = void 0;
  if (N$3 !== null) {
    var sv = N$3.memoizedState;
    if (av = sv.destroy, iv !== null && Mh$2(iv, sv.deps)) {
      ov.memoizedState = bi$3(tv, ev, av, iv);
      return;
    }
  }
  M$1.flags |= rv, ov.memoizedState = bi$3(1 | tv, ev, av, iv);
}
function mi$4(rv, tv) {
  return ki$3(8390656, 8, rv, tv);
}
function $h$2(rv, tv) {
  return li$4(2048, 8, rv, tv);
}
function ni$3(rv, tv) {
  return li$4(4, 2, rv, tv);
}
function oi$3(rv, tv) {
  return li$4(4, 4, rv, tv);
}
function pi$4(rv, tv) {
  if (typeof tv == "function")
    return rv = rv(), tv(rv), function() {
      tv(null);
    };
  if (tv != null)
    return rv = rv(), tv.current = rv, function() {
      tv.current = null;
    };
}
function qi$4(rv, tv, ev) {
  return ev = ev != null ? ev.concat([rv]) : null, li$4(4, 4, pi$4.bind(null, tv, rv), ev);
}
function ri$3() {
}
function si$3(rv, tv) {
  var ev = Uh$2();
  tv = tv === void 0 ? null : tv;
  var iv = ev.memoizedState;
  return iv !== null && tv !== null && Mh$2(tv, iv[1]) ? iv[0] : (ev.memoizedState = [rv, tv], rv);
}
function ti$4(rv, tv) {
  var ev = Uh$2();
  tv = tv === void 0 ? null : tv;
  var iv = ev.memoizedState;
  return iv !== null && tv !== null && Mh$2(tv, iv[1]) ? iv[0] : (rv = rv(), ev.memoizedState = [rv, tv], rv);
}
function ui$4(rv, tv, ev) {
  return Hh$2 & 21 ? (He$2(ev, tv) || (ev = yc$3(), M$1.lanes |= ev, rh$2 |= ev, rv.baseState = !0), tv) : (rv.baseState && (rv.baseState = !1, dh$1 = !0), rv.memoizedState = ev);
}
function vi$4(rv, tv) {
  var ev = C$3;
  C$3 = ev !== 0 && 4 > ev ? ev : 4, rv(!0);
  var iv = Gh$2.transition;
  Gh$2.transition = {};
  try {
    rv(!1), tv();
  } finally {
    C$3 = ev, Gh$2.transition = iv;
  }
}
function wi$4() {
  return Uh$2().memoizedState;
}
function xi$3(rv, tv, ev) {
  var iv = yi$4(rv);
  if (ev = { lane: iv, action: ev, hasEagerState: !1, eagerState: null, next: null }, zi$3(rv))
    Ai$3(tv, ev);
  else if (ev = hh$2(rv, tv, ev, iv), ev !== null) {
    var ov = R$2();
    gi$4(ev, rv, iv, ov), Bi$3(ev, tv, iv);
  }
}
function ii$3(rv, tv, ev) {
  var iv = yi$4(rv), ov = { lane: iv, action: ev, hasEagerState: !1, eagerState: null, next: null };
  if (zi$3(rv))
    Ai$3(tv, ov);
  else {
    var av = rv.alternate;
    if (rv.lanes === 0 && (av === null || av.lanes === 0) && (av = tv.lastRenderedReducer, av !== null))
      try {
        var sv = tv.lastRenderedState, lv = av(sv, ev);
        if (ov.hasEagerState = !0, ov.eagerState = lv, He$2(lv, sv)) {
          var uv = tv.interleaved;
          uv === null ? (ov.next = ov, gh$2(tv)) : (ov.next = uv.next, uv.next = ov), tv.interleaved = ov;
          return;
        }
      } catch {
      } finally {
      }
    ev = hh$2(rv, tv, ov, iv), ev !== null && (ov = R$2(), gi$4(ev, rv, iv, ov), Bi$3(ev, tv, iv));
  }
}
function zi$3(rv) {
  var tv = rv.alternate;
  return rv === M$1 || tv !== null && tv === M$1;
}
function Ai$3(rv, tv) {
  Jh$2 = Ih$1 = !0;
  var ev = rv.pending;
  ev === null ? tv.next = tv : (tv.next = ev.next, ev.next = tv), rv.pending = tv;
}
function Bi$3(rv, tv, ev) {
  if (ev & 4194240) {
    var iv = tv.lanes;
    iv &= rv.pendingLanes, ev |= iv, tv.lanes = ev, Cc$3(rv, ev);
  }
}
var Rh$2 = { readContext: eh$2, useCallback: P$3, useContext: P$3, useEffect: P$3, useImperativeHandle: P$3, useInsertionEffect: P$3, useLayoutEffect: P$3, useMemo: P$3, useReducer: P$3, useRef: P$3, useState: P$3, useDebugValue: P$3, useDeferredValue: P$3, useTransition: P$3, useMutableSource: P$3, useSyncExternalStore: P$3, useId: P$3, unstable_isNewReconciler: !1 }, Oh$1 = { readContext: eh$2, useCallback: function(rv, tv) {
  return Th$2().memoizedState = [rv, tv === void 0 ? null : tv], rv;
}, useContext: eh$2, useEffect: mi$4, useImperativeHandle: function(rv, tv, ev) {
  return ev = ev != null ? ev.concat([rv]) : null, ki$3(
    4194308,
    4,
    pi$4.bind(null, tv, rv),
    ev
  );
}, useLayoutEffect: function(rv, tv) {
  return ki$3(4194308, 4, rv, tv);
}, useInsertionEffect: function(rv, tv) {
  return ki$3(4, 2, rv, tv);
}, useMemo: function(rv, tv) {
  var ev = Th$2();
  return tv = tv === void 0 ? null : tv, rv = rv(), ev.memoizedState = [rv, tv], rv;
}, useReducer: function(rv, tv, ev) {
  var iv = Th$2();
  return tv = ev !== void 0 ? ev(tv) : tv, iv.memoizedState = iv.baseState = tv, rv = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: rv, lastRenderedState: tv }, iv.queue = rv, rv = rv.dispatch = xi$3.bind(null, M$1, rv), [iv.memoizedState, rv];
}, useRef: function(rv) {
  var tv = Th$2();
  return rv = { current: rv }, tv.memoizedState = rv;
}, useState: hi$4, useDebugValue: ri$3, useDeferredValue: function(rv) {
  return Th$2().memoizedState = rv;
}, useTransition: function() {
  var rv = hi$4(!1), tv = rv[0];
  return rv = vi$4.bind(null, rv[1]), Th$2().memoizedState = rv, [tv, rv];
}, useMutableSource: function() {
}, useSyncExternalStore: function(rv, tv, ev) {
  var iv = M$1, ov = Th$2();
  if (I$3) {
    if (ev === void 0)
      throw Error(p$3(407));
    ev = ev();
  } else {
    if (ev = tv(), Q$3 === null)
      throw Error(p$3(349));
    Hh$2 & 30 || di$4(iv, tv, ev);
  }
  ov.memoizedState = ev;
  var av = { value: ev, getSnapshot: tv };
  return ov.queue = av, mi$4(ai$3.bind(
    null,
    iv,
    av,
    rv
  ), [rv]), iv.flags |= 2048, bi$3(9, ci$4.bind(null, iv, av, ev, tv), void 0, null), ev;
}, useId: function() {
  var rv = Th$2(), tv = Q$3.identifierPrefix;
  if (I$3) {
    var ev = sg$1, iv = rg$2;
    ev = (iv & ~(1 << 32 - oc$3(iv) - 1)).toString(32) + ev, tv = ":" + tv + "R" + ev, ev = Kh$2++, 0 < ev && (tv += "H" + ev.toString(32)), tv += ":";
  } else
    ev = Lh$1++, tv = ":" + tv + "r" + ev.toString(32) + ":";
  return rv.memoizedState = tv;
}, unstable_isNewReconciler: !1 }, Ph$1 = {
  readContext: eh$2,
  useCallback: si$3,
  useContext: eh$2,
  useEffect: $h$2,
  useImperativeHandle: qi$4,
  useInsertionEffect: ni$3,
  useLayoutEffect: oi$3,
  useMemo: ti$4,
  useReducer: Wh$2,
  useRef: ji$2,
  useState: function() {
    return Wh$2(Vh$2);
  },
  useDebugValue: ri$3,
  useDeferredValue: function(rv) {
    var tv = Uh$2();
    return ui$4(tv, N$3.memoizedState, rv);
  },
  useTransition: function() {
    var rv = Wh$2(Vh$2)[0], tv = Uh$2().memoizedState;
    return [rv, tv];
  },
  useMutableSource: Yh$2,
  useSyncExternalStore: Zh$2,
  useId: wi$4,
  unstable_isNewReconciler: !1
}, Qh$2 = { readContext: eh$2, useCallback: si$3, useContext: eh$2, useEffect: $h$2, useImperativeHandle: qi$4, useInsertionEffect: ni$3, useLayoutEffect: oi$3, useMemo: ti$4, useReducer: Xh$2, useRef: ji$2, useState: function() {
  return Xh$2(Vh$2);
}, useDebugValue: ri$3, useDeferredValue: function(rv) {
  var tv = Uh$2();
  return N$3 === null ? tv.memoizedState = rv : ui$4(tv, N$3.memoizedState, rv);
}, useTransition: function() {
  var rv = Xh$2(Vh$2)[0], tv = Uh$2().memoizedState;
  return [rv, tv];
}, useMutableSource: Yh$2, useSyncExternalStore: Zh$2, useId: wi$4, unstable_isNewReconciler: !1 };
function Ci$4(rv, tv) {
  if (rv && rv.defaultProps) {
    tv = A$2({}, tv), rv = rv.defaultProps;
    for (var ev in rv)
      tv[ev] === void 0 && (tv[ev] = rv[ev]);
    return tv;
  }
  return tv;
}
function Di$3(rv, tv, ev, iv) {
  tv = rv.memoizedState, ev = ev(iv, tv), ev = ev == null ? tv : A$2({}, tv, ev), rv.memoizedState = ev, rv.lanes === 0 && (rv.updateQueue.baseState = ev);
}
var Ei$3 = { isMounted: function(rv) {
  return (rv = rv._reactInternals) ? Vb$1(rv) === rv : !1;
}, enqueueSetState: function(rv, tv, ev) {
  rv = rv._reactInternals;
  var iv = R$2(), ov = yi$4(rv), av = mh$2(iv, ov);
  av.payload = tv, ev != null && (av.callback = ev), tv = nh$2(rv, av, ov), tv !== null && (gi$4(tv, rv, ov, iv), oh$2(tv, rv, ov));
}, enqueueReplaceState: function(rv, tv, ev) {
  rv = rv._reactInternals;
  var iv = R$2(), ov = yi$4(rv), av = mh$2(iv, ov);
  av.tag = 1, av.payload = tv, ev != null && (av.callback = ev), tv = nh$2(rv, av, ov), tv !== null && (gi$4(tv, rv, ov, iv), oh$2(tv, rv, ov));
}, enqueueForceUpdate: function(rv, tv) {
  rv = rv._reactInternals;
  var ev = R$2(), iv = yi$4(rv), ov = mh$2(ev, iv);
  ov.tag = 2, tv != null && (ov.callback = tv), tv = nh$2(rv, ov, iv), tv !== null && (gi$4(tv, rv, iv, ev), oh$2(tv, rv, iv));
} };
function Fi$4(rv, tv, ev, iv, ov, av, sv) {
  return rv = rv.stateNode, typeof rv.shouldComponentUpdate == "function" ? rv.shouldComponentUpdate(iv, av, sv) : tv.prototype && tv.prototype.isPureReactComponent ? !Ie$2(ev, iv) || !Ie$2(ov, av) : !0;
}
function Gi$2(rv, tv, ev) {
  var iv = !1, ov = Vf$2, av = tv.contextType;
  return typeof av == "object" && av !== null ? av = eh$2(av) : (ov = Zf$2(tv) ? Xf$2 : H$3.current, iv = tv.contextTypes, av = (iv = iv != null) ? Yf$2(rv, ov) : Vf$2), tv = new tv(ev, av), rv.memoizedState = tv.state !== null && tv.state !== void 0 ? tv.state : null, tv.updater = Ei$3, rv.stateNode = tv, tv._reactInternals = rv, iv && (rv = rv.stateNode, rv.__reactInternalMemoizedUnmaskedChildContext = ov, rv.__reactInternalMemoizedMaskedChildContext = av), tv;
}
function Hi$3(rv, tv, ev, iv) {
  rv = tv.state, typeof tv.componentWillReceiveProps == "function" && tv.componentWillReceiveProps(ev, iv), typeof tv.UNSAFE_componentWillReceiveProps == "function" && tv.UNSAFE_componentWillReceiveProps(ev, iv), tv.state !== rv && Ei$3.enqueueReplaceState(tv, tv.state, null);
}
function Ii$4(rv, tv, ev, iv) {
  var ov = rv.stateNode;
  ov.props = ev, ov.state = rv.memoizedState, ov.refs = {}, kh$1(rv);
  var av = tv.contextType;
  typeof av == "object" && av !== null ? ov.context = eh$2(av) : (av = Zf$2(tv) ? Xf$2 : H$3.current, ov.context = Yf$2(rv, av)), ov.state = rv.memoizedState, av = tv.getDerivedStateFromProps, typeof av == "function" && (Di$3(rv, tv, av, ev), ov.state = rv.memoizedState), typeof tv.getDerivedStateFromProps == "function" || typeof ov.getSnapshotBeforeUpdate == "function" || typeof ov.UNSAFE_componentWillMount != "function" && typeof ov.componentWillMount != "function" || (tv = ov.state, typeof ov.componentWillMount == "function" && ov.componentWillMount(), typeof ov.UNSAFE_componentWillMount == "function" && ov.UNSAFE_componentWillMount(), tv !== ov.state && Ei$3.enqueueReplaceState(ov, ov.state, null), qh$2(rv, ev, ov, iv), ov.state = rv.memoizedState), typeof ov.componentDidMount == "function" && (rv.flags |= 4194308);
}
function Ji$3(rv, tv) {
  try {
    var ev = "", iv = tv;
    do
      ev += Pa$4(iv), iv = iv.return;
    while (iv);
    var ov = ev;
  } catch (av) {
    ov = `
Error generating stack: ` + av.message + `
` + av.stack;
  }
  return { value: rv, source: tv, stack: ov, digest: null };
}
function Ki$2(rv, tv, ev) {
  return { value: rv, source: null, stack: ev ?? null, digest: tv ?? null };
}
function Li$4(rv, tv) {
  try {
    console.error(tv.value);
  } catch (ev) {
    setTimeout(function() {
      throw ev;
    });
  }
}
var Mi$3 = typeof WeakMap == "function" ? WeakMap : Map;
function Ni$3(rv, tv, ev) {
  ev = mh$2(-1, ev), ev.tag = 3, ev.payload = { element: null };
  var iv = tv.value;
  return ev.callback = function() {
    Oi$4 || (Oi$4 = !0, Pi$4 = iv), Li$4(rv, tv);
  }, ev;
}
function Qi$3(rv, tv, ev) {
  ev = mh$2(-1, ev), ev.tag = 3;
  var iv = rv.type.getDerivedStateFromError;
  if (typeof iv == "function") {
    var ov = tv.value;
    ev.payload = function() {
      return iv(ov);
    }, ev.callback = function() {
      Li$4(rv, tv);
    };
  }
  var av = rv.stateNode;
  return av !== null && typeof av.componentDidCatch == "function" && (ev.callback = function() {
    Li$4(rv, tv), typeof iv != "function" && (Ri$4 === null ? Ri$4 = /* @__PURE__ */ new Set([this]) : Ri$4.add(this));
    var sv = tv.stack;
    this.componentDidCatch(tv.value, { componentStack: sv !== null ? sv : "" });
  }), ev;
}
function Si$3(rv, tv, ev) {
  var iv = rv.pingCache;
  if (iv === null) {
    iv = rv.pingCache = new Mi$3();
    var ov = /* @__PURE__ */ new Set();
    iv.set(tv, ov);
  } else
    ov = iv.get(tv), ov === void 0 && (ov = /* @__PURE__ */ new Set(), iv.set(tv, ov));
  ov.has(ev) || (ov.add(ev), rv = Ti$4.bind(null, rv, tv, ev), tv.then(rv, rv));
}
function Ui$1(rv) {
  do {
    var tv;
    if ((tv = rv.tag === 13) && (tv = rv.memoizedState, tv = tv !== null ? tv.dehydrated !== null : !0), tv)
      return rv;
    rv = rv.return;
  } while (rv !== null);
  return null;
}
function Vi$3(rv, tv, ev, iv, ov) {
  return rv.mode & 1 ? (rv.flags |= 65536, rv.lanes = ov, rv) : (rv === tv ? rv.flags |= 65536 : (rv.flags |= 128, ev.flags |= 131072, ev.flags &= -52805, ev.tag === 1 && (ev.alternate === null ? ev.tag = 17 : (tv = mh$2(-1, 1), tv.tag = 2, nh$2(ev, tv, 1))), ev.lanes |= 1), rv);
}
var Wi$3 = ua$4.ReactCurrentOwner, dh$1 = !1;
function Xi$3(rv, tv, ev, iv) {
  tv.child = rv === null ? Vg$2(tv, null, ev, iv) : Ug$2(tv, rv.child, ev, iv);
}
function Yi$3(rv, tv, ev, iv, ov) {
  ev = ev.render;
  var av = tv.ref;
  return ch$1(tv, ov), iv = Nh$1(rv, tv, ev, iv, av, ov), ev = Sh$2(), rv !== null && !dh$1 ? (tv.updateQueue = rv.updateQueue, tv.flags &= -2053, rv.lanes &= ~ov, Zi$3(rv, tv, ov)) : (I$3 && ev && vg$2(tv), tv.flags |= 1, Xi$3(rv, tv, iv, ov), tv.child);
}
function $i$2(rv, tv, ev, iv, ov) {
  if (rv === null) {
    var av = ev.type;
    return typeof av == "function" && !aj(av) && av.defaultProps === void 0 && ev.compare === null && ev.defaultProps === void 0 ? (tv.tag = 15, tv.type = av, bj(rv, tv, av, iv, ov)) : (rv = Rg$2(ev.type, null, iv, tv, tv.mode, ov), rv.ref = tv.ref, rv.return = tv, tv.child = rv);
  }
  if (av = rv.child, !(rv.lanes & ov)) {
    var sv = av.memoizedProps;
    if (ev = ev.compare, ev = ev !== null ? ev : Ie$2, ev(sv, iv) && rv.ref === tv.ref)
      return Zi$3(rv, tv, ov);
  }
  return tv.flags |= 1, rv = Pg$2(av, iv), rv.ref = tv.ref, rv.return = tv, tv.child = rv;
}
function bj(rv, tv, ev, iv, ov) {
  if (rv !== null) {
    var av = rv.memoizedProps;
    if (Ie$2(av, iv) && rv.ref === tv.ref)
      if (dh$1 = !1, tv.pendingProps = iv = av, (rv.lanes & ov) !== 0)
        rv.flags & 131072 && (dh$1 = !0);
      else
        return tv.lanes = rv.lanes, Zi$3(rv, tv, ov);
  }
  return cj(rv, tv, ev, iv, ov);
}
function dj(rv, tv, ev) {
  var iv = tv.pendingProps, ov = iv.children, av = rv !== null ? rv.memoizedState : null;
  if (iv.mode === "hidden")
    if (!(tv.mode & 1))
      tv.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, G$2(ej, fj), fj |= ev;
    else {
      if (!(ev & 1073741824))
        return rv = av !== null ? av.baseLanes | ev : ev, tv.lanes = tv.childLanes = 1073741824, tv.memoizedState = { baseLanes: rv, cachePool: null, transitions: null }, tv.updateQueue = null, G$2(ej, fj), fj |= rv, null;
      tv.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, iv = av !== null ? av.baseLanes : ev, G$2(ej, fj), fj |= iv;
    }
  else
    av !== null ? (iv = av.baseLanes | ev, tv.memoizedState = null) : iv = ev, G$2(ej, fj), fj |= iv;
  return Xi$3(rv, tv, ov, ev), tv.child;
}
function gj(rv, tv) {
  var ev = tv.ref;
  (rv === null && ev !== null || rv !== null && rv.ref !== ev) && (tv.flags |= 512, tv.flags |= 2097152);
}
function cj(rv, tv, ev, iv, ov) {
  var av = Zf$2(ev) ? Xf$2 : H$3.current;
  return av = Yf$2(tv, av), ch$1(tv, ov), ev = Nh$1(rv, tv, ev, iv, av, ov), iv = Sh$2(), rv !== null && !dh$1 ? (tv.updateQueue = rv.updateQueue, tv.flags &= -2053, rv.lanes &= ~ov, Zi$3(rv, tv, ov)) : (I$3 && iv && vg$2(tv), tv.flags |= 1, Xi$3(rv, tv, ev, ov), tv.child);
}
function hj(rv, tv, ev, iv, ov) {
  if (Zf$2(ev)) {
    var av = !0;
    cg$1(tv);
  } else
    av = !1;
  if (ch$1(tv, ov), tv.stateNode === null)
    ij(rv, tv), Gi$2(tv, ev, iv), Ii$4(tv, ev, iv, ov), iv = !0;
  else if (rv === null) {
    var sv = tv.stateNode, lv = tv.memoizedProps;
    sv.props = lv;
    var uv = sv.context, cv = ev.contextType;
    typeof cv == "object" && cv !== null ? cv = eh$2(cv) : (cv = Zf$2(ev) ? Xf$2 : H$3.current, cv = Yf$2(tv, cv));
    var dv = ev.getDerivedStateFromProps, hv = typeof dv == "function" || typeof sv.getSnapshotBeforeUpdate == "function";
    hv || typeof sv.UNSAFE_componentWillReceiveProps != "function" && typeof sv.componentWillReceiveProps != "function" || (lv !== iv || uv !== cv) && Hi$3(tv, sv, iv, cv), jh$2 = !1;
    var pv = tv.memoizedState;
    sv.state = pv, qh$2(tv, iv, sv, ov), uv = tv.memoizedState, lv !== iv || pv !== uv || Wf$2.current || jh$2 ? (typeof dv == "function" && (Di$3(tv, ev, dv, iv), uv = tv.memoizedState), (lv = jh$2 || Fi$4(tv, ev, lv, iv, pv, uv, cv)) ? (hv || typeof sv.UNSAFE_componentWillMount != "function" && typeof sv.componentWillMount != "function" || (typeof sv.componentWillMount == "function" && sv.componentWillMount(), typeof sv.UNSAFE_componentWillMount == "function" && sv.UNSAFE_componentWillMount()), typeof sv.componentDidMount == "function" && (tv.flags |= 4194308)) : (typeof sv.componentDidMount == "function" && (tv.flags |= 4194308), tv.memoizedProps = iv, tv.memoizedState = uv), sv.props = iv, sv.state = uv, sv.context = cv, iv = lv) : (typeof sv.componentDidMount == "function" && (tv.flags |= 4194308), iv = !1);
  } else {
    sv = tv.stateNode, lh$2(rv, tv), lv = tv.memoizedProps, cv = tv.type === tv.elementType ? lv : Ci$4(tv.type, lv), sv.props = cv, hv = tv.pendingProps, pv = sv.context, uv = ev.contextType, typeof uv == "object" && uv !== null ? uv = eh$2(uv) : (uv = Zf$2(ev) ? Xf$2 : H$3.current, uv = Yf$2(tv, uv));
    var yv = ev.getDerivedStateFromProps;
    (dv = typeof yv == "function" || typeof sv.getSnapshotBeforeUpdate == "function") || typeof sv.UNSAFE_componentWillReceiveProps != "function" && typeof sv.componentWillReceiveProps != "function" || (lv !== hv || pv !== uv) && Hi$3(tv, sv, iv, uv), jh$2 = !1, pv = tv.memoizedState, sv.state = pv, qh$2(tv, iv, sv, ov);
    var Sv = tv.memoizedState;
    lv !== hv || pv !== Sv || Wf$2.current || jh$2 ? (typeof yv == "function" && (Di$3(tv, ev, yv, iv), Sv = tv.memoizedState), (cv = jh$2 || Fi$4(tv, ev, cv, iv, pv, Sv, uv) || !1) ? (dv || typeof sv.UNSAFE_componentWillUpdate != "function" && typeof sv.componentWillUpdate != "function" || (typeof sv.componentWillUpdate == "function" && sv.componentWillUpdate(iv, Sv, uv), typeof sv.UNSAFE_componentWillUpdate == "function" && sv.UNSAFE_componentWillUpdate(iv, Sv, uv)), typeof sv.componentDidUpdate == "function" && (tv.flags |= 4), typeof sv.getSnapshotBeforeUpdate == "function" && (tv.flags |= 1024)) : (typeof sv.componentDidUpdate != "function" || lv === rv.memoizedProps && pv === rv.memoizedState || (tv.flags |= 4), typeof sv.getSnapshotBeforeUpdate != "function" || lv === rv.memoizedProps && pv === rv.memoizedState || (tv.flags |= 1024), tv.memoizedProps = iv, tv.memoizedState = Sv), sv.props = iv, sv.state = Sv, sv.context = uv, iv = cv) : (typeof sv.componentDidUpdate != "function" || lv === rv.memoizedProps && pv === rv.memoizedState || (tv.flags |= 4), typeof sv.getSnapshotBeforeUpdate != "function" || lv === rv.memoizedProps && pv === rv.memoizedState || (tv.flags |= 1024), iv = !1);
  }
  return jj(rv, tv, ev, iv, av, ov);
}
function jj(rv, tv, ev, iv, ov, av) {
  gj(rv, tv);
  var sv = (tv.flags & 128) !== 0;
  if (!iv && !sv)
    return ov && dg$2(tv, ev, !1), Zi$3(rv, tv, av);
  iv = tv.stateNode, Wi$3.current = tv;
  var lv = sv && typeof ev.getDerivedStateFromError != "function" ? null : iv.render();
  return tv.flags |= 1, rv !== null && sv ? (tv.child = Ug$2(tv, rv.child, null, av), tv.child = Ug$2(tv, null, lv, av)) : Xi$3(rv, tv, lv, av), tv.memoizedState = iv.state, ov && dg$2(tv, ev, !0), tv.child;
}
function kj(rv) {
  var tv = rv.stateNode;
  tv.pendingContext ? ag$1(rv, tv.pendingContext, tv.pendingContext !== tv.context) : tv.context && ag$1(rv, tv.context, !1), yh$2(rv, tv.containerInfo);
}
function lj(rv, tv, ev, iv, ov) {
  return Ig$2(), Jg(ov), tv.flags |= 256, Xi$3(rv, tv, ev, iv), tv.child;
}
var mj = { dehydrated: null, treeContext: null, retryLane: 0 };
function nj(rv) {
  return { baseLanes: rv, cachePool: null, transitions: null };
}
function oj(rv, tv, ev) {
  var iv = tv.pendingProps, ov = L$3.current, av = !1, sv = (tv.flags & 128) !== 0, lv;
  if ((lv = sv) || (lv = rv !== null && rv.memoizedState === null ? !1 : (ov & 2) !== 0), lv ? (av = !0, tv.flags &= -129) : (rv === null || rv.memoizedState !== null) && (ov |= 1), G$2(L$3, ov & 1), rv === null)
    return Eg$2(tv), rv = tv.memoizedState, rv !== null && (rv = rv.dehydrated, rv !== null) ? (tv.mode & 1 ? rv.data === "$!" ? tv.lanes = 8 : tv.lanes = 1073741824 : tv.lanes = 1, null) : (sv = iv.children, rv = iv.fallback, av ? (iv = tv.mode, av = tv.child, sv = { mode: "hidden", children: sv }, !(iv & 1) && av !== null ? (av.childLanes = 0, av.pendingProps = sv) : av = pj(sv, iv, 0, null), rv = Tg$2(rv, iv, ev, null), av.return = tv, rv.return = tv, av.sibling = rv, tv.child = av, tv.child.memoizedState = nj(ev), tv.memoizedState = mj, rv) : qj(tv, sv));
  if (ov = rv.memoizedState, ov !== null && (lv = ov.dehydrated, lv !== null))
    return rj(rv, tv, sv, iv, lv, ov, ev);
  if (av) {
    av = iv.fallback, sv = tv.mode, ov = rv.child, lv = ov.sibling;
    var uv = { mode: "hidden", children: iv.children };
    return !(sv & 1) && tv.child !== ov ? (iv = tv.child, iv.childLanes = 0, iv.pendingProps = uv, tv.deletions = null) : (iv = Pg$2(ov, uv), iv.subtreeFlags = ov.subtreeFlags & 14680064), lv !== null ? av = Pg$2(lv, av) : (av = Tg$2(av, sv, ev, null), av.flags |= 2), av.return = tv, iv.return = tv, iv.sibling = av, tv.child = iv, iv = av, av = tv.child, sv = rv.child.memoizedState, sv = sv === null ? nj(ev) : { baseLanes: sv.baseLanes | ev, cachePool: null, transitions: sv.transitions }, av.memoizedState = sv, av.childLanes = rv.childLanes & ~ev, tv.memoizedState = mj, iv;
  }
  return av = rv.child, rv = av.sibling, iv = Pg$2(av, { mode: "visible", children: iv.children }), !(tv.mode & 1) && (iv.lanes = ev), iv.return = tv, iv.sibling = null, rv !== null && (ev = tv.deletions, ev === null ? (tv.deletions = [rv], tv.flags |= 16) : ev.push(rv)), tv.child = iv, tv.memoizedState = null, iv;
}
function qj(rv, tv) {
  return tv = pj({ mode: "visible", children: tv }, rv.mode, 0, null), tv.return = rv, rv.child = tv;
}
function sj(rv, tv, ev, iv) {
  return iv !== null && Jg(iv), Ug$2(tv, rv.child, null, ev), rv = qj(tv, tv.pendingProps.children), rv.flags |= 2, tv.memoizedState = null, rv;
}
function rj(rv, tv, ev, iv, ov, av, sv) {
  if (ev)
    return tv.flags & 256 ? (tv.flags &= -257, iv = Ki$2(Error(p$3(422))), sj(rv, tv, sv, iv)) : tv.memoizedState !== null ? (tv.child = rv.child, tv.flags |= 128, null) : (av = iv.fallback, ov = tv.mode, iv = pj({ mode: "visible", children: iv.children }, ov, 0, null), av = Tg$2(av, ov, sv, null), av.flags |= 2, iv.return = tv, av.return = tv, iv.sibling = av, tv.child = iv, tv.mode & 1 && Ug$2(tv, rv.child, null, sv), tv.child.memoizedState = nj(sv), tv.memoizedState = mj, av);
  if (!(tv.mode & 1))
    return sj(rv, tv, sv, null);
  if (ov.data === "$!") {
    if (iv = ov.nextSibling && ov.nextSibling.dataset, iv)
      var lv = iv.dgst;
    return iv = lv, av = Error(p$3(419)), iv = Ki$2(av, iv, void 0), sj(rv, tv, sv, iv);
  }
  if (lv = (sv & rv.childLanes) !== 0, dh$1 || lv) {
    if (iv = Q$3, iv !== null) {
      switch (sv & -sv) {
        case 4:
          ov = 2;
          break;
        case 16:
          ov = 8;
          break;
        case 64:
        case 128:
        case 256:
        case 512:
        case 1024:
        case 2048:
        case 4096:
        case 8192:
        case 16384:
        case 32768:
        case 65536:
        case 131072:
        case 262144:
        case 524288:
        case 1048576:
        case 2097152:
        case 4194304:
        case 8388608:
        case 16777216:
        case 33554432:
        case 67108864:
          ov = 32;
          break;
        case 536870912:
          ov = 268435456;
          break;
        default:
          ov = 0;
      }
      ov = ov & (iv.suspendedLanes | sv) ? 0 : ov, ov !== 0 && ov !== av.retryLane && (av.retryLane = ov, ih$2(rv, ov), gi$4(iv, rv, ov, -1));
    }
    return tj(), iv = Ki$2(Error(p$3(421))), sj(rv, tv, sv, iv);
  }
  return ov.data === "$?" ? (tv.flags |= 128, tv.child = rv.child, tv = uj.bind(null, rv), ov._reactRetry = tv, null) : (rv = av.treeContext, yg$2 = Lf$2(ov.nextSibling), xg$2 = tv, I$3 = !0, zg$2 = null, rv !== null && (og$1[pg$2++] = rg$2, og$1[pg$2++] = sg$1, og$1[pg$2++] = qg$1, rg$2 = rv.id, sg$1 = rv.overflow, qg$1 = tv), tv = qj(tv, iv.children), tv.flags |= 4096, tv);
}
function vj(rv, tv, ev) {
  rv.lanes |= tv;
  var iv = rv.alternate;
  iv !== null && (iv.lanes |= tv), bh$2(rv.return, tv, ev);
}
function wj(rv, tv, ev, iv, ov) {
  var av = rv.memoizedState;
  av === null ? rv.memoizedState = { isBackwards: tv, rendering: null, renderingStartTime: 0, last: iv, tail: ev, tailMode: ov } : (av.isBackwards = tv, av.rendering = null, av.renderingStartTime = 0, av.last = iv, av.tail = ev, av.tailMode = ov);
}
function xj(rv, tv, ev) {
  var iv = tv.pendingProps, ov = iv.revealOrder, av = iv.tail;
  if (Xi$3(rv, tv, iv.children, ev), iv = L$3.current, iv & 2)
    iv = iv & 1 | 2, tv.flags |= 128;
  else {
    if (rv !== null && rv.flags & 128)
      e:
        for (rv = tv.child; rv !== null; ) {
          if (rv.tag === 13)
            rv.memoizedState !== null && vj(rv, ev, tv);
          else if (rv.tag === 19)
            vj(rv, ev, tv);
          else if (rv.child !== null) {
            rv.child.return = rv, rv = rv.child;
            continue;
          }
          if (rv === tv)
            break e;
          for (; rv.sibling === null; ) {
            if (rv.return === null || rv.return === tv)
              break e;
            rv = rv.return;
          }
          rv.sibling.return = rv.return, rv = rv.sibling;
        }
    iv &= 1;
  }
  if (G$2(L$3, iv), !(tv.mode & 1))
    tv.memoizedState = null;
  else
    switch (ov) {
      case "forwards":
        for (ev = tv.child, ov = null; ev !== null; )
          rv = ev.alternate, rv !== null && Ch$2(rv) === null && (ov = ev), ev = ev.sibling;
        ev = ov, ev === null ? (ov = tv.child, tv.child = null) : (ov = ev.sibling, ev.sibling = null), wj(tv, !1, ov, ev, av);
        break;
      case "backwards":
        for (ev = null, ov = tv.child, tv.child = null; ov !== null; ) {
          if (rv = ov.alternate, rv !== null && Ch$2(rv) === null) {
            tv.child = ov;
            break;
          }
          rv = ov.sibling, ov.sibling = ev, ev = ov, ov = rv;
        }
        wj(tv, !0, ev, null, av);
        break;
      case "together":
        wj(tv, !1, null, null, void 0);
        break;
      default:
        tv.memoizedState = null;
    }
  return tv.child;
}
function ij(rv, tv) {
  !(tv.mode & 1) && rv !== null && (rv.alternate = null, tv.alternate = null, tv.flags |= 2);
}
function Zi$3(rv, tv, ev) {
  if (rv !== null && (tv.dependencies = rv.dependencies), rh$2 |= tv.lanes, !(ev & tv.childLanes))
    return null;
  if (rv !== null && tv.child !== rv.child)
    throw Error(p$3(153));
  if (tv.child !== null) {
    for (rv = tv.child, ev = Pg$2(rv, rv.pendingProps), tv.child = ev, ev.return = tv; rv.sibling !== null; )
      rv = rv.sibling, ev = ev.sibling = Pg$2(rv, rv.pendingProps), ev.return = tv;
    ev.sibling = null;
  }
  return tv.child;
}
function yj(rv, tv, ev) {
  switch (tv.tag) {
    case 3:
      kj(tv), Ig$2();
      break;
    case 5:
      Ah$2(tv);
      break;
    case 1:
      Zf$2(tv.type) && cg$1(tv);
      break;
    case 4:
      yh$2(tv, tv.stateNode.containerInfo);
      break;
    case 10:
      var iv = tv.type._context, ov = tv.memoizedProps.value;
      G$2(Wg, iv._currentValue), iv._currentValue = ov;
      break;
    case 13:
      if (iv = tv.memoizedState, iv !== null)
        return iv.dehydrated !== null ? (G$2(L$3, L$3.current & 1), tv.flags |= 128, null) : ev & tv.child.childLanes ? oj(rv, tv, ev) : (G$2(L$3, L$3.current & 1), rv = Zi$3(rv, tv, ev), rv !== null ? rv.sibling : null);
      G$2(L$3, L$3.current & 1);
      break;
    case 19:
      if (iv = (ev & tv.childLanes) !== 0, rv.flags & 128) {
        if (iv)
          return xj(rv, tv, ev);
        tv.flags |= 128;
      }
      if (ov = tv.memoizedState, ov !== null && (ov.rendering = null, ov.tail = null, ov.lastEffect = null), G$2(L$3, L$3.current), iv)
        break;
      return null;
    case 22:
    case 23:
      return tv.lanes = 0, dj(rv, tv, ev);
  }
  return Zi$3(rv, tv, ev);
}
var zj, Aj, Bj, Cj;
zj = function(rv, tv) {
  for (var ev = tv.child; ev !== null; ) {
    if (ev.tag === 5 || ev.tag === 6)
      rv.appendChild(ev.stateNode);
    else if (ev.tag !== 4 && ev.child !== null) {
      ev.child.return = ev, ev = ev.child;
      continue;
    }
    if (ev === tv)
      break;
    for (; ev.sibling === null; ) {
      if (ev.return === null || ev.return === tv)
        return;
      ev = ev.return;
    }
    ev.sibling.return = ev.return, ev = ev.sibling;
  }
};
Aj = function() {
};
Bj = function(rv, tv, ev, iv) {
  var ov = rv.memoizedProps;
  if (ov !== iv) {
    rv = tv.stateNode, xh$2(uh$2.current);
    var av = null;
    switch (ev) {
      case "input":
        ov = Ya$3(rv, ov), iv = Ya$3(rv, iv), av = [];
        break;
      case "select":
        ov = A$2({}, ov, { value: void 0 }), iv = A$2({}, iv, { value: void 0 }), av = [];
        break;
      case "textarea":
        ov = gb(rv, ov), iv = gb(rv, iv), av = [];
        break;
      default:
        typeof ov.onClick != "function" && typeof iv.onClick == "function" && (rv.onclick = Bf$2);
    }
    ub(ev, iv);
    var sv;
    ev = null;
    for (cv in ov)
      if (!iv.hasOwnProperty(cv) && ov.hasOwnProperty(cv) && ov[cv] != null)
        if (cv === "style") {
          var lv = ov[cv];
          for (sv in lv)
            lv.hasOwnProperty(sv) && (ev || (ev = {}), ev[sv] = "");
        } else
          cv !== "dangerouslySetInnerHTML" && cv !== "children" && cv !== "suppressContentEditableWarning" && cv !== "suppressHydrationWarning" && cv !== "autoFocus" && (ea$4.hasOwnProperty(cv) ? av || (av = []) : (av = av || []).push(cv, null));
    for (cv in iv) {
      var uv = iv[cv];
      if (lv = ov != null ? ov[cv] : void 0, iv.hasOwnProperty(cv) && uv !== lv && (uv != null || lv != null))
        if (cv === "style")
          if (lv) {
            for (sv in lv)
              !lv.hasOwnProperty(sv) || uv && uv.hasOwnProperty(sv) || (ev || (ev = {}), ev[sv] = "");
            for (sv in uv)
              uv.hasOwnProperty(sv) && lv[sv] !== uv[sv] && (ev || (ev = {}), ev[sv] = uv[sv]);
          } else
            ev || (av || (av = []), av.push(
              cv,
              ev
            )), ev = uv;
        else
          cv === "dangerouslySetInnerHTML" ? (uv = uv ? uv.__html : void 0, lv = lv ? lv.__html : void 0, uv != null && lv !== uv && (av = av || []).push(cv, uv)) : cv === "children" ? typeof uv != "string" && typeof uv != "number" || (av = av || []).push(cv, "" + uv) : cv !== "suppressContentEditableWarning" && cv !== "suppressHydrationWarning" && (ea$4.hasOwnProperty(cv) ? (uv != null && cv === "onScroll" && D$3("scroll", rv), av || lv === uv || (av = [])) : (av = av || []).push(cv, uv));
    }
    ev && (av = av || []).push("style", ev);
    var cv = av;
    (tv.updateQueue = cv) && (tv.flags |= 4);
  }
};
Cj = function(rv, tv, ev, iv) {
  ev !== iv && (tv.flags |= 4);
};
function Dj(rv, tv) {
  if (!I$3)
    switch (rv.tailMode) {
      case "hidden":
        tv = rv.tail;
        for (var ev = null; tv !== null; )
          tv.alternate !== null && (ev = tv), tv = tv.sibling;
        ev === null ? rv.tail = null : ev.sibling = null;
        break;
      case "collapsed":
        ev = rv.tail;
        for (var iv = null; ev !== null; )
          ev.alternate !== null && (iv = ev), ev = ev.sibling;
        iv === null ? tv || rv.tail === null ? rv.tail = null : rv.tail.sibling = null : iv.sibling = null;
    }
}
function S$2(rv) {
  var tv = rv.alternate !== null && rv.alternate.child === rv.child, ev = 0, iv = 0;
  if (tv)
    for (var ov = rv.child; ov !== null; )
      ev |= ov.lanes | ov.childLanes, iv |= ov.subtreeFlags & 14680064, iv |= ov.flags & 14680064, ov.return = rv, ov = ov.sibling;
  else
    for (ov = rv.child; ov !== null; )
      ev |= ov.lanes | ov.childLanes, iv |= ov.subtreeFlags, iv |= ov.flags, ov.return = rv, ov = ov.sibling;
  return rv.subtreeFlags |= iv, rv.childLanes = ev, tv;
}
function Ej(rv, tv, ev) {
  var iv = tv.pendingProps;
  switch (wg$2(tv), tv.tag) {
    case 2:
    case 16:
    case 15:
    case 0:
    case 11:
    case 7:
    case 8:
    case 12:
    case 9:
    case 14:
      return S$2(tv), null;
    case 1:
      return Zf$2(tv.type) && $f$2(), S$2(tv), null;
    case 3:
      return iv = tv.stateNode, zh$2(), E$3(Wf$2), E$3(H$3), Eh$2(), iv.pendingContext && (iv.context = iv.pendingContext, iv.pendingContext = null), (rv === null || rv.child === null) && (Gg$2(tv) ? tv.flags |= 4 : rv === null || rv.memoizedState.isDehydrated && !(tv.flags & 256) || (tv.flags |= 1024, zg$2 !== null && (Fj(zg$2), zg$2 = null))), Aj(rv, tv), S$2(tv), null;
    case 5:
      Bh$2(tv);
      var ov = xh$2(wh$2.current);
      if (ev = tv.type, rv !== null && tv.stateNode != null)
        Bj(rv, tv, ev, iv, ov), rv.ref !== tv.ref && (tv.flags |= 512, tv.flags |= 2097152);
      else {
        if (!iv) {
          if (tv.stateNode === null)
            throw Error(p$3(166));
          return S$2(tv), null;
        }
        if (rv = xh$2(uh$2.current), Gg$2(tv)) {
          iv = tv.stateNode, ev = tv.type;
          var av = tv.memoizedProps;
          switch (iv[Of$2] = tv, iv[Pf$2] = av, rv = (tv.mode & 1) !== 0, ev) {
            case "dialog":
              D$3("cancel", iv), D$3("close", iv);
              break;
            case "iframe":
            case "object":
            case "embed":
              D$3("load", iv);
              break;
            case "video":
            case "audio":
              for (ov = 0; ov < lf$2.length; ov++)
                D$3(lf$2[ov], iv);
              break;
            case "source":
              D$3("error", iv);
              break;
            case "img":
            case "image":
            case "link":
              D$3(
                "error",
                iv
              ), D$3("load", iv);
              break;
            case "details":
              D$3("toggle", iv);
              break;
            case "input":
              Za$4(iv, av), D$3("invalid", iv);
              break;
            case "select":
              iv._wrapperState = { wasMultiple: !!av.multiple }, D$3("invalid", iv);
              break;
            case "textarea":
              hb(iv, av), D$3("invalid", iv);
          }
          ub(ev, av), ov = null;
          for (var sv in av)
            if (av.hasOwnProperty(sv)) {
              var lv = av[sv];
              sv === "children" ? typeof lv == "string" ? iv.textContent !== lv && (av.suppressHydrationWarning !== !0 && Af$2(iv.textContent, lv, rv), ov = ["children", lv]) : typeof lv == "number" && iv.textContent !== "" + lv && (av.suppressHydrationWarning !== !0 && Af$2(
                iv.textContent,
                lv,
                rv
              ), ov = ["children", "" + lv]) : ea$4.hasOwnProperty(sv) && lv != null && sv === "onScroll" && D$3("scroll", iv);
            }
          switch (ev) {
            case "input":
              Va$3(iv), db(iv, av, !0);
              break;
            case "textarea":
              Va$3(iv), jb$1(iv);
              break;
            case "select":
            case "option":
              break;
            default:
              typeof av.onClick == "function" && (iv.onclick = Bf$2);
          }
          iv = ov, tv.updateQueue = iv, iv !== null && (tv.flags |= 4);
        } else {
          sv = ov.nodeType === 9 ? ov : ov.ownerDocument, rv === "http://www.w3.org/1999/xhtml" && (rv = kb(ev)), rv === "http://www.w3.org/1999/xhtml" ? ev === "script" ? (rv = sv.createElement("div"), rv.innerHTML = "<script><\/script>", rv = rv.removeChild(rv.firstChild)) : typeof iv.is == "string" ? rv = sv.createElement(ev, { is: iv.is }) : (rv = sv.createElement(ev), ev === "select" && (sv = rv, iv.multiple ? sv.multiple = !0 : iv.size && (sv.size = iv.size))) : rv = sv.createElementNS(rv, ev), rv[Of$2] = tv, rv[Pf$2] = iv, zj(rv, tv, !1, !1), tv.stateNode = rv;
          e: {
            switch (sv = vb(ev, iv), ev) {
              case "dialog":
                D$3("cancel", rv), D$3("close", rv), ov = iv;
                break;
              case "iframe":
              case "object":
              case "embed":
                D$3("load", rv), ov = iv;
                break;
              case "video":
              case "audio":
                for (ov = 0; ov < lf$2.length; ov++)
                  D$3(lf$2[ov], rv);
                ov = iv;
                break;
              case "source":
                D$3("error", rv), ov = iv;
                break;
              case "img":
              case "image":
              case "link":
                D$3(
                  "error",
                  rv
                ), D$3("load", rv), ov = iv;
                break;
              case "details":
                D$3("toggle", rv), ov = iv;
                break;
              case "input":
                Za$4(rv, iv), ov = Ya$3(rv, iv), D$3("invalid", rv);
                break;
              case "option":
                ov = iv;
                break;
              case "select":
                rv._wrapperState = { wasMultiple: !!iv.multiple }, ov = A$2({}, iv, { value: void 0 }), D$3("invalid", rv);
                break;
              case "textarea":
                hb(rv, iv), ov = gb(rv, iv), D$3("invalid", rv);
                break;
              default:
                ov = iv;
            }
            ub(ev, ov), lv = ov;
            for (av in lv)
              if (lv.hasOwnProperty(av)) {
                var uv = lv[av];
                av === "style" ? sb(rv, uv) : av === "dangerouslySetInnerHTML" ? (uv = uv ? uv.__html : void 0, uv != null && nb(rv, uv)) : av === "children" ? typeof uv == "string" ? (ev !== "textarea" || uv !== "") && ob(rv, uv) : typeof uv == "number" && ob(rv, "" + uv) : av !== "suppressContentEditableWarning" && av !== "suppressHydrationWarning" && av !== "autoFocus" && (ea$4.hasOwnProperty(av) ? uv != null && av === "onScroll" && D$3("scroll", rv) : uv != null && ta$4(rv, av, uv, sv));
              }
            switch (ev) {
              case "input":
                Va$3(rv), db(rv, iv, !1);
                break;
              case "textarea":
                Va$3(rv), jb$1(rv);
                break;
              case "option":
                iv.value != null && rv.setAttribute("value", "" + Sa$4(iv.value));
                break;
              case "select":
                rv.multiple = !!iv.multiple, av = iv.value, av != null ? fb(rv, !!iv.multiple, av, !1) : iv.defaultValue != null && fb(
                  rv,
                  !!iv.multiple,
                  iv.defaultValue,
                  !0
                );
                break;
              default:
                typeof ov.onClick == "function" && (rv.onclick = Bf$2);
            }
            switch (ev) {
              case "button":
              case "input":
              case "select":
              case "textarea":
                iv = !!iv.autoFocus;
                break e;
              case "img":
                iv = !0;
                break e;
              default:
                iv = !1;
            }
          }
          iv && (tv.flags |= 4);
        }
        tv.ref !== null && (tv.flags |= 512, tv.flags |= 2097152);
      }
      return S$2(tv), null;
    case 6:
      if (rv && tv.stateNode != null)
        Cj(rv, tv, rv.memoizedProps, iv);
      else {
        if (typeof iv != "string" && tv.stateNode === null)
          throw Error(p$3(166));
        if (ev = xh$2(wh$2.current), xh$2(uh$2.current), Gg$2(tv)) {
          if (iv = tv.stateNode, ev = tv.memoizedProps, iv[Of$2] = tv, (av = iv.nodeValue !== ev) && (rv = xg$2, rv !== null))
            switch (rv.tag) {
              case 3:
                Af$2(iv.nodeValue, ev, (rv.mode & 1) !== 0);
                break;
              case 5:
                rv.memoizedProps.suppressHydrationWarning !== !0 && Af$2(iv.nodeValue, ev, (rv.mode & 1) !== 0);
            }
          av && (tv.flags |= 4);
        } else
          iv = (ev.nodeType === 9 ? ev : ev.ownerDocument).createTextNode(iv), iv[Of$2] = tv, tv.stateNode = iv;
      }
      return S$2(tv), null;
    case 13:
      if (E$3(L$3), iv = tv.memoizedState, rv === null || rv.memoizedState !== null && rv.memoizedState.dehydrated !== null) {
        if (I$3 && yg$2 !== null && tv.mode & 1 && !(tv.flags & 128))
          Hg$2(), Ig$2(), tv.flags |= 98560, av = !1;
        else if (av = Gg$2(tv), iv !== null && iv.dehydrated !== null) {
          if (rv === null) {
            if (!av)
              throw Error(p$3(318));
            if (av = tv.memoizedState, av = av !== null ? av.dehydrated : null, !av)
              throw Error(p$3(317));
            av[Of$2] = tv;
          } else
            Ig$2(), !(tv.flags & 128) && (tv.memoizedState = null), tv.flags |= 4;
          S$2(tv), av = !1;
        } else
          zg$2 !== null && (Fj(zg$2), zg$2 = null), av = !0;
        if (!av)
          return tv.flags & 65536 ? tv : null;
      }
      return tv.flags & 128 ? (tv.lanes = ev, tv) : (iv = iv !== null, iv !== (rv !== null && rv.memoizedState !== null) && iv && (tv.child.flags |= 8192, tv.mode & 1 && (rv === null || L$3.current & 1 ? T$3 === 0 && (T$3 = 3) : tj())), tv.updateQueue !== null && (tv.flags |= 4), S$2(tv), null);
    case 4:
      return zh$2(), Aj(rv, tv), rv === null && sf$2(tv.stateNode.containerInfo), S$2(tv), null;
    case 10:
      return ah$2(tv.type._context), S$2(tv), null;
    case 17:
      return Zf$2(tv.type) && $f$2(), S$2(tv), null;
    case 19:
      if (E$3(L$3), av = tv.memoizedState, av === null)
        return S$2(tv), null;
      if (iv = (tv.flags & 128) !== 0, sv = av.rendering, sv === null)
        if (iv)
          Dj(av, !1);
        else {
          if (T$3 !== 0 || rv !== null && rv.flags & 128)
            for (rv = tv.child; rv !== null; ) {
              if (sv = Ch$2(rv), sv !== null) {
                for (tv.flags |= 128, Dj(av, !1), iv = sv.updateQueue, iv !== null && (tv.updateQueue = iv, tv.flags |= 4), tv.subtreeFlags = 0, iv = ev, ev = tv.child; ev !== null; )
                  av = ev, rv = iv, av.flags &= 14680066, sv = av.alternate, sv === null ? (av.childLanes = 0, av.lanes = rv, av.child = null, av.subtreeFlags = 0, av.memoizedProps = null, av.memoizedState = null, av.updateQueue = null, av.dependencies = null, av.stateNode = null) : (av.childLanes = sv.childLanes, av.lanes = sv.lanes, av.child = sv.child, av.subtreeFlags = 0, av.deletions = null, av.memoizedProps = sv.memoizedProps, av.memoizedState = sv.memoizedState, av.updateQueue = sv.updateQueue, av.type = sv.type, rv = sv.dependencies, av.dependencies = rv === null ? null : { lanes: rv.lanes, firstContext: rv.firstContext }), ev = ev.sibling;
                return G$2(L$3, L$3.current & 1 | 2), tv.child;
              }
              rv = rv.sibling;
            }
          av.tail !== null && B$2() > Gj && (tv.flags |= 128, iv = !0, Dj(av, !1), tv.lanes = 4194304);
        }
      else {
        if (!iv)
          if (rv = Ch$2(sv), rv !== null) {
            if (tv.flags |= 128, iv = !0, ev = rv.updateQueue, ev !== null && (tv.updateQueue = ev, tv.flags |= 4), Dj(av, !0), av.tail === null && av.tailMode === "hidden" && !sv.alternate && !I$3)
              return S$2(tv), null;
          } else
            2 * B$2() - av.renderingStartTime > Gj && ev !== 1073741824 && (tv.flags |= 128, iv = !0, Dj(av, !1), tv.lanes = 4194304);
        av.isBackwards ? (sv.sibling = tv.child, tv.child = sv) : (ev = av.last, ev !== null ? ev.sibling = sv : tv.child = sv, av.last = sv);
      }
      return av.tail !== null ? (tv = av.tail, av.rendering = tv, av.tail = tv.sibling, av.renderingStartTime = B$2(), tv.sibling = null, ev = L$3.current, G$2(L$3, iv ? ev & 1 | 2 : ev & 1), tv) : (S$2(tv), null);
    case 22:
    case 23:
      return Hj(), iv = tv.memoizedState !== null, rv !== null && rv.memoizedState !== null !== iv && (tv.flags |= 8192), iv && tv.mode & 1 ? fj & 1073741824 && (S$2(tv), tv.subtreeFlags & 6 && (tv.flags |= 8192)) : S$2(tv), null;
    case 24:
      return null;
    case 25:
      return null;
  }
  throw Error(p$3(156, tv.tag));
}
function Ij(rv, tv) {
  switch (wg$2(tv), tv.tag) {
    case 1:
      return Zf$2(tv.type) && $f$2(), rv = tv.flags, rv & 65536 ? (tv.flags = rv & -65537 | 128, tv) : null;
    case 3:
      return zh$2(), E$3(Wf$2), E$3(H$3), Eh$2(), rv = tv.flags, rv & 65536 && !(rv & 128) ? (tv.flags = rv & -65537 | 128, tv) : null;
    case 5:
      return Bh$2(tv), null;
    case 13:
      if (E$3(L$3), rv = tv.memoizedState, rv !== null && rv.dehydrated !== null) {
        if (tv.alternate === null)
          throw Error(p$3(340));
        Ig$2();
      }
      return rv = tv.flags, rv & 65536 ? (tv.flags = rv & -65537 | 128, tv) : null;
    case 19:
      return E$3(L$3), null;
    case 4:
      return zh$2(), null;
    case 10:
      return ah$2(tv.type._context), null;
    case 22:
    case 23:
      return Hj(), null;
    case 24:
      return null;
    default:
      return null;
  }
}
var Jj = !1, U$3 = !1, Kj = typeof WeakSet == "function" ? WeakSet : Set, V$3 = null;
function Lj(rv, tv) {
  var ev = rv.ref;
  if (ev !== null)
    if (typeof ev == "function")
      try {
        ev(null);
      } catch (iv) {
        W$3(rv, tv, iv);
      }
    else
      ev.current = null;
}
function Mj(rv, tv, ev) {
  try {
    ev();
  } catch (iv) {
    W$3(rv, tv, iv);
  }
}
var Nj = !1;
function Oj(rv, tv) {
  if (Cf$2 = dd$2, rv = Me$3(), Ne$2(rv)) {
    if ("selectionStart" in rv)
      var ev = { start: rv.selectionStart, end: rv.selectionEnd };
    else
      e: {
        ev = (ev = rv.ownerDocument) && ev.defaultView || window;
        var iv = ev.getSelection && ev.getSelection();
        if (iv && iv.rangeCount !== 0) {
          ev = iv.anchorNode;
          var ov = iv.anchorOffset, av = iv.focusNode;
          iv = iv.focusOffset;
          try {
            ev.nodeType, av.nodeType;
          } catch {
            ev = null;
            break e;
          }
          var sv = 0, lv = -1, uv = -1, cv = 0, dv = 0, hv = rv, pv = null;
          t:
            for (; ; ) {
              for (var yv; hv !== ev || ov !== 0 && hv.nodeType !== 3 || (lv = sv + ov), hv !== av || iv !== 0 && hv.nodeType !== 3 || (uv = sv + iv), hv.nodeType === 3 && (sv += hv.nodeValue.length), (yv = hv.firstChild) !== null; )
                pv = hv, hv = yv;
              for (; ; ) {
                if (hv === rv)
                  break t;
                if (pv === ev && ++cv === ov && (lv = sv), pv === av && ++dv === iv && (uv = sv), (yv = hv.nextSibling) !== null)
                  break;
                hv = pv, pv = hv.parentNode;
              }
              hv = yv;
            }
          ev = lv === -1 || uv === -1 ? null : { start: lv, end: uv };
        } else
          ev = null;
      }
    ev = ev || { start: 0, end: 0 };
  } else
    ev = null;
  for (Df$2 = { focusedElem: rv, selectionRange: ev }, dd$2 = !1, V$3 = tv; V$3 !== null; )
    if (tv = V$3, rv = tv.child, (tv.subtreeFlags & 1028) !== 0 && rv !== null)
      rv.return = tv, V$3 = rv;
    else
      for (; V$3 !== null; ) {
        tv = V$3;
        try {
          var Sv = tv.alternate;
          if (tv.flags & 1024)
            switch (tv.tag) {
              case 0:
              case 11:
              case 15:
                break;
              case 1:
                if (Sv !== null) {
                  var _v = Sv.memoizedProps, Ev = Sv.memoizedState, wv = tv.stateNode, xv = wv.getSnapshotBeforeUpdate(tv.elementType === tv.type ? _v : Ci$4(tv.type, _v), Ev);
                  wv.__reactInternalSnapshotBeforeUpdate = xv;
                }
                break;
              case 3:
                var Cv = tv.stateNode.containerInfo;
                Cv.nodeType === 1 ? Cv.textContent = "" : Cv.nodeType === 9 && Cv.documentElement && Cv.removeChild(Cv.documentElement);
                break;
              case 5:
              case 6:
              case 4:
              case 17:
                break;
              default:
                throw Error(p$3(163));
            }
        } catch (Av) {
          W$3(tv, tv.return, Av);
        }
        if (rv = tv.sibling, rv !== null) {
          rv.return = tv.return, V$3 = rv;
          break;
        }
        V$3 = tv.return;
      }
  return Sv = Nj, Nj = !1, Sv;
}
function Pj(rv, tv, ev) {
  var iv = tv.updateQueue;
  if (iv = iv !== null ? iv.lastEffect : null, iv !== null) {
    var ov = iv = iv.next;
    do {
      if ((ov.tag & rv) === rv) {
        var av = ov.destroy;
        ov.destroy = void 0, av !== void 0 && Mj(tv, ev, av);
      }
      ov = ov.next;
    } while (ov !== iv);
  }
}
function Qj(rv, tv) {
  if (tv = tv.updateQueue, tv = tv !== null ? tv.lastEffect : null, tv !== null) {
    var ev = tv = tv.next;
    do {
      if ((ev.tag & rv) === rv) {
        var iv = ev.create;
        ev.destroy = iv();
      }
      ev = ev.next;
    } while (ev !== tv);
  }
}
function Rj(rv) {
  var tv = rv.ref;
  if (tv !== null) {
    var ev = rv.stateNode;
    switch (rv.tag) {
      case 5:
        rv = ev;
        break;
      default:
        rv = ev;
    }
    typeof tv == "function" ? tv(rv) : tv.current = rv;
  }
}
function Sj(rv) {
  var tv = rv.alternate;
  tv !== null && (rv.alternate = null, Sj(tv)), rv.child = null, rv.deletions = null, rv.sibling = null, rv.tag === 5 && (tv = rv.stateNode, tv !== null && (delete tv[Of$2], delete tv[Pf$2], delete tv[of$2], delete tv[Qf$2], delete tv[Rf$2])), rv.stateNode = null, rv.return = null, rv.dependencies = null, rv.memoizedProps = null, rv.memoizedState = null, rv.pendingProps = null, rv.stateNode = null, rv.updateQueue = null;
}
function Tj(rv) {
  return rv.tag === 5 || rv.tag === 3 || rv.tag === 4;
}
function Uj(rv) {
  e:
    for (; ; ) {
      for (; rv.sibling === null; ) {
        if (rv.return === null || Tj(rv.return))
          return null;
        rv = rv.return;
      }
      for (rv.sibling.return = rv.return, rv = rv.sibling; rv.tag !== 5 && rv.tag !== 6 && rv.tag !== 18; ) {
        if (rv.flags & 2 || rv.child === null || rv.tag === 4)
          continue e;
        rv.child.return = rv, rv = rv.child;
      }
      if (!(rv.flags & 2))
        return rv.stateNode;
    }
}
function Vj(rv, tv, ev) {
  var iv = rv.tag;
  if (iv === 5 || iv === 6)
    rv = rv.stateNode, tv ? ev.nodeType === 8 ? ev.parentNode.insertBefore(rv, tv) : ev.insertBefore(rv, tv) : (ev.nodeType === 8 ? (tv = ev.parentNode, tv.insertBefore(rv, ev)) : (tv = ev, tv.appendChild(rv)), ev = ev._reactRootContainer, ev != null || tv.onclick !== null || (tv.onclick = Bf$2));
  else if (iv !== 4 && (rv = rv.child, rv !== null))
    for (Vj(rv, tv, ev), rv = rv.sibling; rv !== null; )
      Vj(rv, tv, ev), rv = rv.sibling;
}
function Wj(rv, tv, ev) {
  var iv = rv.tag;
  if (iv === 5 || iv === 6)
    rv = rv.stateNode, tv ? ev.insertBefore(rv, tv) : ev.appendChild(rv);
  else if (iv !== 4 && (rv = rv.child, rv !== null))
    for (Wj(rv, tv, ev), rv = rv.sibling; rv !== null; )
      Wj(rv, tv, ev), rv = rv.sibling;
}
var X$3 = null, Xj = !1;
function Yj(rv, tv, ev) {
  for (ev = ev.child; ev !== null; )
    Zj(rv, tv, ev), ev = ev.sibling;
}
function Zj(rv, tv, ev) {
  if (lc$3 && typeof lc$3.onCommitFiberUnmount == "function")
    try {
      lc$3.onCommitFiberUnmount(kc$1, ev);
    } catch {
    }
  switch (ev.tag) {
    case 5:
      U$3 || Lj(ev, tv);
    case 6:
      var iv = X$3, ov = Xj;
      X$3 = null, Yj(rv, tv, ev), X$3 = iv, Xj = ov, X$3 !== null && (Xj ? (rv = X$3, ev = ev.stateNode, rv.nodeType === 8 ? rv.parentNode.removeChild(ev) : rv.removeChild(ev)) : X$3.removeChild(ev.stateNode));
      break;
    case 18:
      X$3 !== null && (Xj ? (rv = X$3, ev = ev.stateNode, rv.nodeType === 8 ? Kf$2(rv.parentNode, ev) : rv.nodeType === 1 && Kf$2(rv, ev), bd$2(rv)) : Kf$2(X$3, ev.stateNode));
      break;
    case 4:
      iv = X$3, ov = Xj, X$3 = ev.stateNode.containerInfo, Xj = !0, Yj(rv, tv, ev), X$3 = iv, Xj = ov;
      break;
    case 0:
    case 11:
    case 14:
    case 15:
      if (!U$3 && (iv = ev.updateQueue, iv !== null && (iv = iv.lastEffect, iv !== null))) {
        ov = iv = iv.next;
        do {
          var av = ov, sv = av.destroy;
          av = av.tag, sv !== void 0 && (av & 2 || av & 4) && Mj(ev, tv, sv), ov = ov.next;
        } while (ov !== iv);
      }
      Yj(rv, tv, ev);
      break;
    case 1:
      if (!U$3 && (Lj(ev, tv), iv = ev.stateNode, typeof iv.componentWillUnmount == "function"))
        try {
          iv.props = ev.memoizedProps, iv.state = ev.memoizedState, iv.componentWillUnmount();
        } catch (lv) {
          W$3(ev, tv, lv);
        }
      Yj(rv, tv, ev);
      break;
    case 21:
      Yj(rv, tv, ev);
      break;
    case 22:
      ev.mode & 1 ? (U$3 = (iv = U$3) || ev.memoizedState !== null, Yj(rv, tv, ev), U$3 = iv) : Yj(rv, tv, ev);
      break;
    default:
      Yj(rv, tv, ev);
  }
}
function ak$1(rv) {
  var tv = rv.updateQueue;
  if (tv !== null) {
    rv.updateQueue = null;
    var ev = rv.stateNode;
    ev === null && (ev = rv.stateNode = new Kj()), tv.forEach(function(iv) {
      var ov = bk$1.bind(null, rv, iv);
      ev.has(iv) || (ev.add(iv), iv.then(ov, ov));
    });
  }
}
function ck$1(rv, tv) {
  var ev = tv.deletions;
  if (ev !== null)
    for (var iv = 0; iv < ev.length; iv++) {
      var ov = ev[iv];
      try {
        var av = rv, sv = tv, lv = sv;
        e:
          for (; lv !== null; ) {
            switch (lv.tag) {
              case 5:
                X$3 = lv.stateNode, Xj = !1;
                break e;
              case 3:
                X$3 = lv.stateNode.containerInfo, Xj = !0;
                break e;
              case 4:
                X$3 = lv.stateNode.containerInfo, Xj = !0;
                break e;
            }
            lv = lv.return;
          }
        if (X$3 === null)
          throw Error(p$3(160));
        Zj(av, sv, ov), X$3 = null, Xj = !1;
        var uv = ov.alternate;
        uv !== null && (uv.return = null), ov.return = null;
      } catch (cv) {
        W$3(ov, tv, cv);
      }
    }
  if (tv.subtreeFlags & 12854)
    for (tv = tv.child; tv !== null; )
      dk(tv, rv), tv = tv.sibling;
}
function dk(rv, tv) {
  var ev = rv.alternate, iv = rv.flags;
  switch (rv.tag) {
    case 0:
    case 11:
    case 14:
    case 15:
      if (ck$1(tv, rv), ek$1(rv), iv & 4) {
        try {
          Pj(3, rv, rv.return), Qj(3, rv);
        } catch (_v) {
          W$3(rv, rv.return, _v);
        }
        try {
          Pj(5, rv, rv.return);
        } catch (_v) {
          W$3(rv, rv.return, _v);
        }
      }
      break;
    case 1:
      ck$1(tv, rv), ek$1(rv), iv & 512 && ev !== null && Lj(ev, ev.return);
      break;
    case 5:
      if (ck$1(tv, rv), ek$1(rv), iv & 512 && ev !== null && Lj(ev, ev.return), rv.flags & 32) {
        var ov = rv.stateNode;
        try {
          ob(ov, "");
        } catch (_v) {
          W$3(rv, rv.return, _v);
        }
      }
      if (iv & 4 && (ov = rv.stateNode, ov != null)) {
        var av = rv.memoizedProps, sv = ev !== null ? ev.memoizedProps : av, lv = rv.type, uv = rv.updateQueue;
        if (rv.updateQueue = null, uv !== null)
          try {
            lv === "input" && av.type === "radio" && av.name != null && ab(ov, av), vb(lv, sv);
            var cv = vb(lv, av);
            for (sv = 0; sv < uv.length; sv += 2) {
              var dv = uv[sv], hv = uv[sv + 1];
              dv === "style" ? sb(ov, hv) : dv === "dangerouslySetInnerHTML" ? nb(ov, hv) : dv === "children" ? ob(ov, hv) : ta$4(ov, dv, hv, cv);
            }
            switch (lv) {
              case "input":
                bb(ov, av);
                break;
              case "textarea":
                ib(ov, av);
                break;
              case "select":
                var pv = ov._wrapperState.wasMultiple;
                ov._wrapperState.wasMultiple = !!av.multiple;
                var yv = av.value;
                yv != null ? fb(ov, !!av.multiple, yv, !1) : pv !== !!av.multiple && (av.defaultValue != null ? fb(
                  ov,
                  !!av.multiple,
                  av.defaultValue,
                  !0
                ) : fb(ov, !!av.multiple, av.multiple ? [] : "", !1));
            }
            ov[Pf$2] = av;
          } catch (_v) {
            W$3(rv, rv.return, _v);
          }
      }
      break;
    case 6:
      if (ck$1(tv, rv), ek$1(rv), iv & 4) {
        if (rv.stateNode === null)
          throw Error(p$3(162));
        ov = rv.stateNode, av = rv.memoizedProps;
        try {
          ov.nodeValue = av;
        } catch (_v) {
          W$3(rv, rv.return, _v);
        }
      }
      break;
    case 3:
      if (ck$1(tv, rv), ek$1(rv), iv & 4 && ev !== null && ev.memoizedState.isDehydrated)
        try {
          bd$2(tv.containerInfo);
        } catch (_v) {
          W$3(rv, rv.return, _v);
        }
      break;
    case 4:
      ck$1(tv, rv), ek$1(rv);
      break;
    case 13:
      ck$1(tv, rv), ek$1(rv), ov = rv.child, ov.flags & 8192 && (av = ov.memoizedState !== null, ov.stateNode.isHidden = av, !av || ov.alternate !== null && ov.alternate.memoizedState !== null || (fk$1 = B$2())), iv & 4 && ak$1(rv);
      break;
    case 22:
      if (dv = ev !== null && ev.memoizedState !== null, rv.mode & 1 ? (U$3 = (cv = U$3) || dv, ck$1(tv, rv), U$3 = cv) : ck$1(tv, rv), ek$1(rv), iv & 8192) {
        if (cv = rv.memoizedState !== null, (rv.stateNode.isHidden = cv) && !dv && rv.mode & 1)
          for (V$3 = rv, dv = rv.child; dv !== null; ) {
            for (hv = V$3 = dv; V$3 !== null; ) {
              switch (pv = V$3, yv = pv.child, pv.tag) {
                case 0:
                case 11:
                case 14:
                case 15:
                  Pj(4, pv, pv.return);
                  break;
                case 1:
                  Lj(pv, pv.return);
                  var Sv = pv.stateNode;
                  if (typeof Sv.componentWillUnmount == "function") {
                    iv = pv, ev = pv.return;
                    try {
                      tv = iv, Sv.props = tv.memoizedProps, Sv.state = tv.memoizedState, Sv.componentWillUnmount();
                    } catch (_v) {
                      W$3(iv, ev, _v);
                    }
                  }
                  break;
                case 5:
                  Lj(pv, pv.return);
                  break;
                case 22:
                  if (pv.memoizedState !== null) {
                    gk$1(hv);
                    continue;
                  }
              }
              yv !== null ? (yv.return = pv, V$3 = yv) : gk$1(hv);
            }
            dv = dv.sibling;
          }
        e:
          for (dv = null, hv = rv; ; ) {
            if (hv.tag === 5) {
              if (dv === null) {
                dv = hv;
                try {
                  ov = hv.stateNode, cv ? (av = ov.style, typeof av.setProperty == "function" ? av.setProperty("display", "none", "important") : av.display = "none") : (lv = hv.stateNode, uv = hv.memoizedProps.style, sv = uv != null && uv.hasOwnProperty("display") ? uv.display : null, lv.style.display = rb("display", sv));
                } catch (_v) {
                  W$3(rv, rv.return, _v);
                }
              }
            } else if (hv.tag === 6) {
              if (dv === null)
                try {
                  hv.stateNode.nodeValue = cv ? "" : hv.memoizedProps;
                } catch (_v) {
                  W$3(rv, rv.return, _v);
                }
            } else if ((hv.tag !== 22 && hv.tag !== 23 || hv.memoizedState === null || hv === rv) && hv.child !== null) {
              hv.child.return = hv, hv = hv.child;
              continue;
            }
            if (hv === rv)
              break e;
            for (; hv.sibling === null; ) {
              if (hv.return === null || hv.return === rv)
                break e;
              dv === hv && (dv = null), hv = hv.return;
            }
            dv === hv && (dv = null), hv.sibling.return = hv.return, hv = hv.sibling;
          }
      }
      break;
    case 19:
      ck$1(tv, rv), ek$1(rv), iv & 4 && ak$1(rv);
      break;
    case 21:
      break;
    default:
      ck$1(
        tv,
        rv
      ), ek$1(rv);
  }
}
function ek$1(rv) {
  var tv = rv.flags;
  if (tv & 2) {
    try {
      e: {
        for (var ev = rv.return; ev !== null; ) {
          if (Tj(ev)) {
            var iv = ev;
            break e;
          }
          ev = ev.return;
        }
        throw Error(p$3(160));
      }
      switch (iv.tag) {
        case 5:
          var ov = iv.stateNode;
          iv.flags & 32 && (ob(ov, ""), iv.flags &= -33);
          var av = Uj(rv);
          Wj(rv, av, ov);
          break;
        case 3:
        case 4:
          var sv = iv.stateNode.containerInfo, lv = Uj(rv);
          Vj(rv, lv, sv);
          break;
        default:
          throw Error(p$3(161));
      }
    } catch (uv) {
      W$3(rv, rv.return, uv);
    }
    rv.flags &= -3;
  }
  tv & 4096 && (rv.flags &= -4097);
}
function hk$1(rv, tv, ev) {
  V$3 = rv, ik$1(rv);
}
function ik$1(rv, tv, ev) {
  for (var iv = (rv.mode & 1) !== 0; V$3 !== null; ) {
    var ov = V$3, av = ov.child;
    if (ov.tag === 22 && iv) {
      var sv = ov.memoizedState !== null || Jj;
      if (!sv) {
        var lv = ov.alternate, uv = lv !== null && lv.memoizedState !== null || U$3;
        lv = Jj;
        var cv = U$3;
        if (Jj = sv, (U$3 = uv) && !cv)
          for (V$3 = ov; V$3 !== null; )
            sv = V$3, uv = sv.child, sv.tag === 22 && sv.memoizedState !== null ? jk$1(ov) : uv !== null ? (uv.return = sv, V$3 = uv) : jk$1(ov);
        for (; av !== null; )
          V$3 = av, ik$1(av), av = av.sibling;
        V$3 = ov, Jj = lv, U$3 = cv;
      }
      kk$1(rv);
    } else
      ov.subtreeFlags & 8772 && av !== null ? (av.return = ov, V$3 = av) : kk$1(rv);
  }
}
function kk$1(rv) {
  for (; V$3 !== null; ) {
    var tv = V$3;
    if (tv.flags & 8772) {
      var ev = tv.alternate;
      try {
        if (tv.flags & 8772)
          switch (tv.tag) {
            case 0:
            case 11:
            case 15:
              U$3 || Qj(5, tv);
              break;
            case 1:
              var iv = tv.stateNode;
              if (tv.flags & 4 && !U$3)
                if (ev === null)
                  iv.componentDidMount();
                else {
                  var ov = tv.elementType === tv.type ? ev.memoizedProps : Ci$4(tv.type, ev.memoizedProps);
                  iv.componentDidUpdate(ov, ev.memoizedState, iv.__reactInternalSnapshotBeforeUpdate);
                }
              var av = tv.updateQueue;
              av !== null && sh$2(tv, av, iv);
              break;
            case 3:
              var sv = tv.updateQueue;
              if (sv !== null) {
                if (ev = null, tv.child !== null)
                  switch (tv.child.tag) {
                    case 5:
                      ev = tv.child.stateNode;
                      break;
                    case 1:
                      ev = tv.child.stateNode;
                  }
                sh$2(tv, sv, ev);
              }
              break;
            case 5:
              var lv = tv.stateNode;
              if (ev === null && tv.flags & 4) {
                ev = lv;
                var uv = tv.memoizedProps;
                switch (tv.type) {
                  case "button":
                  case "input":
                  case "select":
                  case "textarea":
                    uv.autoFocus && ev.focus();
                    break;
                  case "img":
                    uv.src && (ev.src = uv.src);
                }
              }
              break;
            case 6:
              break;
            case 4:
              break;
            case 12:
              break;
            case 13:
              if (tv.memoizedState === null) {
                var cv = tv.alternate;
                if (cv !== null) {
                  var dv = cv.memoizedState;
                  if (dv !== null) {
                    var hv = dv.dehydrated;
                    hv !== null && bd$2(hv);
                  }
                }
              }
              break;
            case 19:
            case 17:
            case 21:
            case 22:
            case 23:
            case 25:
              break;
            default:
              throw Error(p$3(163));
          }
        U$3 || tv.flags & 512 && Rj(tv);
      } catch (pv) {
        W$3(tv, tv.return, pv);
      }
    }
    if (tv === rv) {
      V$3 = null;
      break;
    }
    if (ev = tv.sibling, ev !== null) {
      ev.return = tv.return, V$3 = ev;
      break;
    }
    V$3 = tv.return;
  }
}
function gk$1(rv) {
  for (; V$3 !== null; ) {
    var tv = V$3;
    if (tv === rv) {
      V$3 = null;
      break;
    }
    var ev = tv.sibling;
    if (ev !== null) {
      ev.return = tv.return, V$3 = ev;
      break;
    }
    V$3 = tv.return;
  }
}
function jk$1(rv) {
  for (; V$3 !== null; ) {
    var tv = V$3;
    try {
      switch (tv.tag) {
        case 0:
        case 11:
        case 15:
          var ev = tv.return;
          try {
            Qj(4, tv);
          } catch (uv) {
            W$3(tv, ev, uv);
          }
          break;
        case 1:
          var iv = tv.stateNode;
          if (typeof iv.componentDidMount == "function") {
            var ov = tv.return;
            try {
              iv.componentDidMount();
            } catch (uv) {
              W$3(tv, ov, uv);
            }
          }
          var av = tv.return;
          try {
            Rj(tv);
          } catch (uv) {
            W$3(tv, av, uv);
          }
          break;
        case 5:
          var sv = tv.return;
          try {
            Rj(tv);
          } catch (uv) {
            W$3(tv, sv, uv);
          }
      }
    } catch (uv) {
      W$3(tv, tv.return, uv);
    }
    if (tv === rv) {
      V$3 = null;
      break;
    }
    var lv = tv.sibling;
    if (lv !== null) {
      lv.return = tv.return, V$3 = lv;
      break;
    }
    V$3 = tv.return;
  }
}
var lk$1 = Math.ceil, mk$1 = ua$4.ReactCurrentDispatcher, nk$1 = ua$4.ReactCurrentOwner, ok$1 = ua$4.ReactCurrentBatchConfig, K$3 = 0, Q$3 = null, Y$2 = null, Z$3 = 0, fj = 0, ej = Uf$2(0), T$3 = 0, pk$1 = null, rh$2 = 0, qk$1 = 0, rk$1 = 0, sk$1 = null, tk$1 = null, fk$1 = 0, Gj = 1 / 0, uk$1 = null, Oi$4 = !1, Pi$4 = null, Ri$4 = null, vk$1 = !1, wk$1 = null, xk$1 = 0, yk$1 = 0, zk$1 = null, Ak$1 = -1, Bk$1 = 0;
function R$2() {
  return K$3 & 6 ? B$2() : Ak$1 !== -1 ? Ak$1 : Ak$1 = B$2();
}
function yi$4(rv) {
  return rv.mode & 1 ? K$3 & 2 && Z$3 !== 0 ? Z$3 & -Z$3 : Kg.transition !== null ? (Bk$1 === 0 && (Bk$1 = yc$3()), Bk$1) : (rv = C$3, rv !== 0 || (rv = window.event, rv = rv === void 0 ? 16 : jd$2(rv.type)), rv) : 1;
}
function gi$4(rv, tv, ev, iv) {
  if (50 < yk$1)
    throw yk$1 = 0, zk$1 = null, Error(p$3(185));
  Ac$2(rv, ev, iv), (!(K$3 & 2) || rv !== Q$3) && (rv === Q$3 && (!(K$3 & 2) && (qk$1 |= ev), T$3 === 4 && Ck$1(rv, Z$3)), Dk$1(rv, iv), ev === 1 && K$3 === 0 && !(tv.mode & 1) && (Gj = B$2() + 500, fg$2 && jg$2()));
}
function Dk$1(rv, tv) {
  var ev = rv.callbackNode;
  wc$2(rv, tv);
  var iv = uc$2(rv, rv === Q$3 ? Z$3 : 0);
  if (iv === 0)
    ev !== null && bc$3(ev), rv.callbackNode = null, rv.callbackPriority = 0;
  else if (tv = iv & -iv, rv.callbackPriority !== tv) {
    if (ev != null && bc$3(ev), tv === 1)
      rv.tag === 0 ? ig$1(Ek$1.bind(null, rv)) : hg$2(Ek$1.bind(null, rv)), Jf$2(function() {
        !(K$3 & 6) && jg$2();
      }), ev = null;
    else {
      switch (Dc$2(iv)) {
        case 1:
          ev = fc$2;
          break;
        case 4:
          ev = gc$2;
          break;
        case 16:
          ev = hc$2;
          break;
        case 536870912:
          ev = jc$3;
          break;
        default:
          ev = hc$2;
      }
      ev = Fk$1(ev, Gk$1.bind(null, rv));
    }
    rv.callbackPriority = tv, rv.callbackNode = ev;
  }
}
function Gk$1(rv, tv) {
  if (Ak$1 = -1, Bk$1 = 0, K$3 & 6)
    throw Error(p$3(327));
  var ev = rv.callbackNode;
  if (Hk$1() && rv.callbackNode !== ev)
    return null;
  var iv = uc$2(rv, rv === Q$3 ? Z$3 : 0);
  if (iv === 0)
    return null;
  if (iv & 30 || iv & rv.expiredLanes || tv)
    tv = Ik$1(rv, iv);
  else {
    tv = iv;
    var ov = K$3;
    K$3 |= 2;
    var av = Jk$1();
    (Q$3 !== rv || Z$3 !== tv) && (uk$1 = null, Gj = B$2() + 500, Kk$1(rv, tv));
    do
      try {
        Lk$1();
        break;
      } catch (lv) {
        Mk$1(rv, lv);
      }
    while (!0);
    $g$2(), mk$1.current = av, K$3 = ov, Y$2 !== null ? tv = 0 : (Q$3 = null, Z$3 = 0, tv = T$3);
  }
  if (tv !== 0) {
    if (tv === 2 && (ov = xc$2(rv), ov !== 0 && (iv = ov, tv = Nk$1(rv, ov))), tv === 1)
      throw ev = pk$1, Kk$1(rv, 0), Ck$1(rv, iv), Dk$1(rv, B$2()), ev;
    if (tv === 6)
      Ck$1(rv, iv);
    else {
      if (ov = rv.current.alternate, !(iv & 30) && !Ok$1(ov) && (tv = Ik$1(rv, iv), tv === 2 && (av = xc$2(rv), av !== 0 && (iv = av, tv = Nk$1(rv, av))), tv === 1))
        throw ev = pk$1, Kk$1(rv, 0), Ck$1(rv, iv), Dk$1(rv, B$2()), ev;
      switch (rv.finishedWork = ov, rv.finishedLanes = iv, tv) {
        case 0:
        case 1:
          throw Error(p$3(345));
        case 2:
          Pk$1(rv, tk$1, uk$1);
          break;
        case 3:
          if (Ck$1(rv, iv), (iv & 130023424) === iv && (tv = fk$1 + 500 - B$2(), 10 < tv)) {
            if (uc$2(rv, 0) !== 0)
              break;
            if (ov = rv.suspendedLanes, (ov & iv) !== iv) {
              R$2(), rv.pingedLanes |= rv.suspendedLanes & ov;
              break;
            }
            rv.timeoutHandle = Ff$2(Pk$1.bind(null, rv, tk$1, uk$1), tv);
            break;
          }
          Pk$1(rv, tk$1, uk$1);
          break;
        case 4:
          if (Ck$1(rv, iv), (iv & 4194240) === iv)
            break;
          for (tv = rv.eventTimes, ov = -1; 0 < iv; ) {
            var sv = 31 - oc$3(iv);
            av = 1 << sv, sv = tv[sv], sv > ov && (ov = sv), iv &= ~av;
          }
          if (iv = ov, iv = B$2() - iv, iv = (120 > iv ? 120 : 480 > iv ? 480 : 1080 > iv ? 1080 : 1920 > iv ? 1920 : 3e3 > iv ? 3e3 : 4320 > iv ? 4320 : 1960 * lk$1(iv / 1960)) - iv, 10 < iv) {
            rv.timeoutHandle = Ff$2(Pk$1.bind(null, rv, tk$1, uk$1), iv);
            break;
          }
          Pk$1(rv, tk$1, uk$1);
          break;
        case 5:
          Pk$1(rv, tk$1, uk$1);
          break;
        default:
          throw Error(p$3(329));
      }
    }
  }
  return Dk$1(rv, B$2()), rv.callbackNode === ev ? Gk$1.bind(null, rv) : null;
}
function Nk$1(rv, tv) {
  var ev = sk$1;
  return rv.current.memoizedState.isDehydrated && (Kk$1(rv, tv).flags |= 256), rv = Ik$1(rv, tv), rv !== 2 && (tv = tk$1, tk$1 = ev, tv !== null && Fj(tv)), rv;
}
function Fj(rv) {
  tk$1 === null ? tk$1 = rv : tk$1.push.apply(tk$1, rv);
}
function Ok$1(rv) {
  for (var tv = rv; ; ) {
    if (tv.flags & 16384) {
      var ev = tv.updateQueue;
      if (ev !== null && (ev = ev.stores, ev !== null))
        for (var iv = 0; iv < ev.length; iv++) {
          var ov = ev[iv], av = ov.getSnapshot;
          ov = ov.value;
          try {
            if (!He$2(av(), ov))
              return !1;
          } catch {
            return !1;
          }
        }
    }
    if (ev = tv.child, tv.subtreeFlags & 16384 && ev !== null)
      ev.return = tv, tv = ev;
    else {
      if (tv === rv)
        break;
      for (; tv.sibling === null; ) {
        if (tv.return === null || tv.return === rv)
          return !0;
        tv = tv.return;
      }
      tv.sibling.return = tv.return, tv = tv.sibling;
    }
  }
  return !0;
}
function Ck$1(rv, tv) {
  for (tv &= ~rk$1, tv &= ~qk$1, rv.suspendedLanes |= tv, rv.pingedLanes &= ~tv, rv = rv.expirationTimes; 0 < tv; ) {
    var ev = 31 - oc$3(tv), iv = 1 << ev;
    rv[ev] = -1, tv &= ~iv;
  }
}
function Ek$1(rv) {
  if (K$3 & 6)
    throw Error(p$3(327));
  Hk$1();
  var tv = uc$2(rv, 0);
  if (!(tv & 1))
    return Dk$1(rv, B$2()), null;
  var ev = Ik$1(rv, tv);
  if (rv.tag !== 0 && ev === 2) {
    var iv = xc$2(rv);
    iv !== 0 && (tv = iv, ev = Nk$1(rv, iv));
  }
  if (ev === 1)
    throw ev = pk$1, Kk$1(rv, 0), Ck$1(rv, tv), Dk$1(rv, B$2()), ev;
  if (ev === 6)
    throw Error(p$3(345));
  return rv.finishedWork = rv.current.alternate, rv.finishedLanes = tv, Pk$1(rv, tk$1, uk$1), Dk$1(rv, B$2()), null;
}
function Qk$1(rv, tv) {
  var ev = K$3;
  K$3 |= 1;
  try {
    return rv(tv);
  } finally {
    K$3 = ev, K$3 === 0 && (Gj = B$2() + 500, fg$2 && jg$2());
  }
}
function Rk$1(rv) {
  wk$1 !== null && wk$1.tag === 0 && !(K$3 & 6) && Hk$1();
  var tv = K$3;
  K$3 |= 1;
  var ev = ok$1.transition, iv = C$3;
  try {
    if (ok$1.transition = null, C$3 = 1, rv)
      return rv();
  } finally {
    C$3 = iv, ok$1.transition = ev, K$3 = tv, !(K$3 & 6) && jg$2();
  }
}
function Hj() {
  fj = ej.current, E$3(ej);
}
function Kk$1(rv, tv) {
  rv.finishedWork = null, rv.finishedLanes = 0;
  var ev = rv.timeoutHandle;
  if (ev !== -1 && (rv.timeoutHandle = -1, Gf$2(ev)), Y$2 !== null)
    for (ev = Y$2.return; ev !== null; ) {
      var iv = ev;
      switch (wg$2(iv), iv.tag) {
        case 1:
          iv = iv.type.childContextTypes, iv != null && $f$2();
          break;
        case 3:
          zh$2(), E$3(Wf$2), E$3(H$3), Eh$2();
          break;
        case 5:
          Bh$2(iv);
          break;
        case 4:
          zh$2();
          break;
        case 13:
          E$3(L$3);
          break;
        case 19:
          E$3(L$3);
          break;
        case 10:
          ah$2(iv.type._context);
          break;
        case 22:
        case 23:
          Hj();
      }
      ev = ev.return;
    }
  if (Q$3 = rv, Y$2 = rv = Pg$2(rv.current, null), Z$3 = fj = tv, T$3 = 0, pk$1 = null, rk$1 = qk$1 = rh$2 = 0, tk$1 = sk$1 = null, fh$2 !== null) {
    for (tv = 0; tv < fh$2.length; tv++)
      if (ev = fh$2[tv], iv = ev.interleaved, iv !== null) {
        ev.interleaved = null;
        var ov = iv.next, av = ev.pending;
        if (av !== null) {
          var sv = av.next;
          av.next = ov, iv.next = sv;
        }
        ev.pending = iv;
      }
    fh$2 = null;
  }
  return rv;
}
function Mk$1(rv, tv) {
  do {
    var ev = Y$2;
    try {
      if ($g$2(), Fh$2.current = Rh$2, Ih$1) {
        for (var iv = M$1.memoizedState; iv !== null; ) {
          var ov = iv.queue;
          ov !== null && (ov.pending = null), iv = iv.next;
        }
        Ih$1 = !1;
      }
      if (Hh$2 = 0, O$1 = N$3 = M$1 = null, Jh$2 = !1, Kh$2 = 0, nk$1.current = null, ev === null || ev.return === null) {
        T$3 = 1, pk$1 = tv, Y$2 = null;
        break;
      }
      e: {
        var av = rv, sv = ev.return, lv = ev, uv = tv;
        if (tv = Z$3, lv.flags |= 32768, uv !== null && typeof uv == "object" && typeof uv.then == "function") {
          var cv = uv, dv = lv, hv = dv.tag;
          if (!(dv.mode & 1) && (hv === 0 || hv === 11 || hv === 15)) {
            var pv = dv.alternate;
            pv ? (dv.updateQueue = pv.updateQueue, dv.memoizedState = pv.memoizedState, dv.lanes = pv.lanes) : (dv.updateQueue = null, dv.memoizedState = null);
          }
          var yv = Ui$1(sv);
          if (yv !== null) {
            yv.flags &= -257, Vi$3(yv, sv, lv, av, tv), yv.mode & 1 && Si$3(av, cv, tv), tv = yv, uv = cv;
            var Sv = tv.updateQueue;
            if (Sv === null) {
              var _v = /* @__PURE__ */ new Set();
              _v.add(uv), tv.updateQueue = _v;
            } else
              Sv.add(uv);
            break e;
          } else {
            if (!(tv & 1)) {
              Si$3(av, cv, tv), tj();
              break e;
            }
            uv = Error(p$3(426));
          }
        } else if (I$3 && lv.mode & 1) {
          var Ev = Ui$1(sv);
          if (Ev !== null) {
            !(Ev.flags & 65536) && (Ev.flags |= 256), Vi$3(Ev, sv, lv, av, tv), Jg(Ji$3(uv, lv));
            break e;
          }
        }
        av = uv = Ji$3(uv, lv), T$3 !== 4 && (T$3 = 2), sk$1 === null ? sk$1 = [av] : sk$1.push(av), av = sv;
        do {
          switch (av.tag) {
            case 3:
              av.flags |= 65536, tv &= -tv, av.lanes |= tv;
              var wv = Ni$3(av, uv, tv);
              ph$2(av, wv);
              break e;
            case 1:
              lv = uv;
              var xv = av.type, Cv = av.stateNode;
              if (!(av.flags & 128) && (typeof xv.getDerivedStateFromError == "function" || Cv !== null && typeof Cv.componentDidCatch == "function" && (Ri$4 === null || !Ri$4.has(Cv)))) {
                av.flags |= 65536, tv &= -tv, av.lanes |= tv;
                var Av = Qi$3(av, lv, tv);
                ph$2(av, Av);
                break e;
              }
          }
          av = av.return;
        } while (av !== null);
      }
      Sk$1(ev);
    } catch (Ov) {
      tv = Ov, Y$2 === ev && ev !== null && (Y$2 = ev = ev.return);
      continue;
    }
    break;
  } while (!0);
}
function Jk$1() {
  var rv = mk$1.current;
  return mk$1.current = Rh$2, rv === null ? Rh$2 : rv;
}
function tj() {
  (T$3 === 0 || T$3 === 3 || T$3 === 2) && (T$3 = 4), Q$3 === null || !(rh$2 & 268435455) && !(qk$1 & 268435455) || Ck$1(Q$3, Z$3);
}
function Ik$1(rv, tv) {
  var ev = K$3;
  K$3 |= 2;
  var iv = Jk$1();
  (Q$3 !== rv || Z$3 !== tv) && (uk$1 = null, Kk$1(rv, tv));
  do
    try {
      Tk$1();
      break;
    } catch (ov) {
      Mk$1(rv, ov);
    }
  while (!0);
  if ($g$2(), K$3 = ev, mk$1.current = iv, Y$2 !== null)
    throw Error(p$3(261));
  return Q$3 = null, Z$3 = 0, T$3;
}
function Tk$1() {
  for (; Y$2 !== null; )
    Uk$1(Y$2);
}
function Lk$1() {
  for (; Y$2 !== null && !cc$2(); )
    Uk$1(Y$2);
}
function Uk$1(rv) {
  var tv = Vk$1(rv.alternate, rv, fj);
  rv.memoizedProps = rv.pendingProps, tv === null ? Sk$1(rv) : Y$2 = tv, nk$1.current = null;
}
function Sk$1(rv) {
  var tv = rv;
  do {
    var ev = tv.alternate;
    if (rv = tv.return, tv.flags & 32768) {
      if (ev = Ij(ev, tv), ev !== null) {
        ev.flags &= 32767, Y$2 = ev;
        return;
      }
      if (rv !== null)
        rv.flags |= 32768, rv.subtreeFlags = 0, rv.deletions = null;
      else {
        T$3 = 6, Y$2 = null;
        return;
      }
    } else if (ev = Ej(ev, tv, fj), ev !== null) {
      Y$2 = ev;
      return;
    }
    if (tv = tv.sibling, tv !== null) {
      Y$2 = tv;
      return;
    }
    Y$2 = tv = rv;
  } while (tv !== null);
  T$3 === 0 && (T$3 = 5);
}
function Pk$1(rv, tv, ev) {
  var iv = C$3, ov = ok$1.transition;
  try {
    ok$1.transition = null, C$3 = 1, Wk$1(rv, tv, ev, iv);
  } finally {
    ok$1.transition = ov, C$3 = iv;
  }
  return null;
}
function Wk$1(rv, tv, ev, iv) {
  do
    Hk$1();
  while (wk$1 !== null);
  if (K$3 & 6)
    throw Error(p$3(327));
  ev = rv.finishedWork;
  var ov = rv.finishedLanes;
  if (ev === null)
    return null;
  if (rv.finishedWork = null, rv.finishedLanes = 0, ev === rv.current)
    throw Error(p$3(177));
  rv.callbackNode = null, rv.callbackPriority = 0;
  var av = ev.lanes | ev.childLanes;
  if (Bc$2(rv, av), rv === Q$3 && (Y$2 = Q$3 = null, Z$3 = 0), !(ev.subtreeFlags & 2064) && !(ev.flags & 2064) || vk$1 || (vk$1 = !0, Fk$1(hc$2, function() {
    return Hk$1(), null;
  })), av = (ev.flags & 15990) !== 0, ev.subtreeFlags & 15990 || av) {
    av = ok$1.transition, ok$1.transition = null;
    var sv = C$3;
    C$3 = 1;
    var lv = K$3;
    K$3 |= 4, nk$1.current = null, Oj(rv, ev), dk(ev, rv), Oe$3(Df$2), dd$2 = !!Cf$2, Df$2 = Cf$2 = null, rv.current = ev, hk$1(ev), dc$3(), K$3 = lv, C$3 = sv, ok$1.transition = av;
  } else
    rv.current = ev;
  if (vk$1 && (vk$1 = !1, wk$1 = rv, xk$1 = ov), av = rv.pendingLanes, av === 0 && (Ri$4 = null), mc$2(ev.stateNode), Dk$1(rv, B$2()), tv !== null)
    for (iv = rv.onRecoverableError, ev = 0; ev < tv.length; ev++)
      ov = tv[ev], iv(ov.value, { componentStack: ov.stack, digest: ov.digest });
  if (Oi$4)
    throw Oi$4 = !1, rv = Pi$4, Pi$4 = null, rv;
  return xk$1 & 1 && rv.tag !== 0 && Hk$1(), av = rv.pendingLanes, av & 1 ? rv === zk$1 ? yk$1++ : (yk$1 = 0, zk$1 = rv) : yk$1 = 0, jg$2(), null;
}
function Hk$1() {
  if (wk$1 !== null) {
    var rv = Dc$2(xk$1), tv = ok$1.transition, ev = C$3;
    try {
      if (ok$1.transition = null, C$3 = 16 > rv ? 16 : rv, wk$1 === null)
        var iv = !1;
      else {
        if (rv = wk$1, wk$1 = null, xk$1 = 0, K$3 & 6)
          throw Error(p$3(331));
        var ov = K$3;
        for (K$3 |= 4, V$3 = rv.current; V$3 !== null; ) {
          var av = V$3, sv = av.child;
          if (V$3.flags & 16) {
            var lv = av.deletions;
            if (lv !== null) {
              for (var uv = 0; uv < lv.length; uv++) {
                var cv = lv[uv];
                for (V$3 = cv; V$3 !== null; ) {
                  var dv = V$3;
                  switch (dv.tag) {
                    case 0:
                    case 11:
                    case 15:
                      Pj(8, dv, av);
                  }
                  var hv = dv.child;
                  if (hv !== null)
                    hv.return = dv, V$3 = hv;
                  else
                    for (; V$3 !== null; ) {
                      dv = V$3;
                      var pv = dv.sibling, yv = dv.return;
                      if (Sj(dv), dv === cv) {
                        V$3 = null;
                        break;
                      }
                      if (pv !== null) {
                        pv.return = yv, V$3 = pv;
                        break;
                      }
                      V$3 = yv;
                    }
                }
              }
              var Sv = av.alternate;
              if (Sv !== null) {
                var _v = Sv.child;
                if (_v !== null) {
                  Sv.child = null;
                  do {
                    var Ev = _v.sibling;
                    _v.sibling = null, _v = Ev;
                  } while (_v !== null);
                }
              }
              V$3 = av;
            }
          }
          if (av.subtreeFlags & 2064 && sv !== null)
            sv.return = av, V$3 = sv;
          else
            e:
              for (; V$3 !== null; ) {
                if (av = V$3, av.flags & 2048)
                  switch (av.tag) {
                    case 0:
                    case 11:
                    case 15:
                      Pj(9, av, av.return);
                  }
                var wv = av.sibling;
                if (wv !== null) {
                  wv.return = av.return, V$3 = wv;
                  break e;
                }
                V$3 = av.return;
              }
        }
        var xv = rv.current;
        for (V$3 = xv; V$3 !== null; ) {
          sv = V$3;
          var Cv = sv.child;
          if (sv.subtreeFlags & 2064 && Cv !== null)
            Cv.return = sv, V$3 = Cv;
          else
            e:
              for (sv = xv; V$3 !== null; ) {
                if (lv = V$3, lv.flags & 2048)
                  try {
                    switch (lv.tag) {
                      case 0:
                      case 11:
                      case 15:
                        Qj(9, lv);
                    }
                  } catch (Ov) {
                    W$3(lv, lv.return, Ov);
                  }
                if (lv === sv) {
                  V$3 = null;
                  break e;
                }
                var Av = lv.sibling;
                if (Av !== null) {
                  Av.return = lv.return, V$3 = Av;
                  break e;
                }
                V$3 = lv.return;
              }
        }
        if (K$3 = ov, jg$2(), lc$3 && typeof lc$3.onPostCommitFiberRoot == "function")
          try {
            lc$3.onPostCommitFiberRoot(kc$1, rv);
          } catch {
          }
        iv = !0;
      }
      return iv;
    } finally {
      C$3 = ev, ok$1.transition = tv;
    }
  }
  return !1;
}
function Xk$1(rv, tv, ev) {
  tv = Ji$3(ev, tv), tv = Ni$3(rv, tv, 1), rv = nh$2(rv, tv, 1), tv = R$2(), rv !== null && (Ac$2(rv, 1, tv), Dk$1(rv, tv));
}
function W$3(rv, tv, ev) {
  if (rv.tag === 3)
    Xk$1(rv, rv, ev);
  else
    for (; tv !== null; ) {
      if (tv.tag === 3) {
        Xk$1(tv, rv, ev);
        break;
      } else if (tv.tag === 1) {
        var iv = tv.stateNode;
        if (typeof tv.type.getDerivedStateFromError == "function" || typeof iv.componentDidCatch == "function" && (Ri$4 === null || !Ri$4.has(iv))) {
          rv = Ji$3(ev, rv), rv = Qi$3(tv, rv, 1), tv = nh$2(tv, rv, 1), rv = R$2(), tv !== null && (Ac$2(tv, 1, rv), Dk$1(tv, rv));
          break;
        }
      }
      tv = tv.return;
    }
}
function Ti$4(rv, tv, ev) {
  var iv = rv.pingCache;
  iv !== null && iv.delete(tv), tv = R$2(), rv.pingedLanes |= rv.suspendedLanes & ev, Q$3 === rv && (Z$3 & ev) === ev && (T$3 === 4 || T$3 === 3 && (Z$3 & 130023424) === Z$3 && 500 > B$2() - fk$1 ? Kk$1(rv, 0) : rk$1 |= ev), Dk$1(rv, tv);
}
function Yk$1(rv, tv) {
  tv === 0 && (rv.mode & 1 ? (tv = sc$3, sc$3 <<= 1, !(sc$3 & 130023424) && (sc$3 = 4194304)) : tv = 1);
  var ev = R$2();
  rv = ih$2(rv, tv), rv !== null && (Ac$2(rv, tv, ev), Dk$1(rv, ev));
}
function uj(rv) {
  var tv = rv.memoizedState, ev = 0;
  tv !== null && (ev = tv.retryLane), Yk$1(rv, ev);
}
function bk$1(rv, tv) {
  var ev = 0;
  switch (rv.tag) {
    case 13:
      var iv = rv.stateNode, ov = rv.memoizedState;
      ov !== null && (ev = ov.retryLane);
      break;
    case 19:
      iv = rv.stateNode;
      break;
    default:
      throw Error(p$3(314));
  }
  iv !== null && iv.delete(tv), Yk$1(rv, ev);
}
var Vk$1;
Vk$1 = function(rv, tv, ev) {
  if (rv !== null)
    if (rv.memoizedProps !== tv.pendingProps || Wf$2.current)
      dh$1 = !0;
    else {
      if (!(rv.lanes & ev) && !(tv.flags & 128))
        return dh$1 = !1, yj(rv, tv, ev);
      dh$1 = !!(rv.flags & 131072);
    }
  else
    dh$1 = !1, I$3 && tv.flags & 1048576 && ug$1(tv, ng$1, tv.index);
  switch (tv.lanes = 0, tv.tag) {
    case 2:
      var iv = tv.type;
      ij(rv, tv), rv = tv.pendingProps;
      var ov = Yf$2(tv, H$3.current);
      ch$1(tv, ev), ov = Nh$1(null, tv, iv, rv, ov, ev);
      var av = Sh$2();
      return tv.flags |= 1, typeof ov == "object" && ov !== null && typeof ov.render == "function" && ov.$$typeof === void 0 ? (tv.tag = 1, tv.memoizedState = null, tv.updateQueue = null, Zf$2(iv) ? (av = !0, cg$1(tv)) : av = !1, tv.memoizedState = ov.state !== null && ov.state !== void 0 ? ov.state : null, kh$1(tv), ov.updater = Ei$3, tv.stateNode = ov, ov._reactInternals = tv, Ii$4(tv, iv, rv, ev), tv = jj(null, tv, iv, !0, av, ev)) : (tv.tag = 0, I$3 && av && vg$2(tv), Xi$3(null, tv, ov, ev), tv = tv.child), tv;
    case 16:
      iv = tv.elementType;
      e: {
        switch (ij(rv, tv), rv = tv.pendingProps, ov = iv._init, iv = ov(iv._payload), tv.type = iv, ov = tv.tag = Zk$1(iv), rv = Ci$4(iv, rv), ov) {
          case 0:
            tv = cj(null, tv, iv, rv, ev);
            break e;
          case 1:
            tv = hj(null, tv, iv, rv, ev);
            break e;
          case 11:
            tv = Yi$3(null, tv, iv, rv, ev);
            break e;
          case 14:
            tv = $i$2(null, tv, iv, Ci$4(iv.type, rv), ev);
            break e;
        }
        throw Error(p$3(
          306,
          iv,
          ""
        ));
      }
      return tv;
    case 0:
      return iv = tv.type, ov = tv.pendingProps, ov = tv.elementType === iv ? ov : Ci$4(iv, ov), cj(rv, tv, iv, ov, ev);
    case 1:
      return iv = tv.type, ov = tv.pendingProps, ov = tv.elementType === iv ? ov : Ci$4(iv, ov), hj(rv, tv, iv, ov, ev);
    case 3:
      e: {
        if (kj(tv), rv === null)
          throw Error(p$3(387));
        iv = tv.pendingProps, av = tv.memoizedState, ov = av.element, lh$2(rv, tv), qh$2(tv, iv, null, ev);
        var sv = tv.memoizedState;
        if (iv = sv.element, av.isDehydrated)
          if (av = { element: iv, isDehydrated: !1, cache: sv.cache, pendingSuspenseBoundaries: sv.pendingSuspenseBoundaries, transitions: sv.transitions }, tv.updateQueue.baseState = av, tv.memoizedState = av, tv.flags & 256) {
            ov = Ji$3(Error(p$3(423)), tv), tv = lj(rv, tv, iv, ev, ov);
            break e;
          } else if (iv !== ov) {
            ov = Ji$3(Error(p$3(424)), tv), tv = lj(rv, tv, iv, ev, ov);
            break e;
          } else
            for (yg$2 = Lf$2(tv.stateNode.containerInfo.firstChild), xg$2 = tv, I$3 = !0, zg$2 = null, ev = Vg$2(tv, null, iv, ev), tv.child = ev; ev; )
              ev.flags = ev.flags & -3 | 4096, ev = ev.sibling;
        else {
          if (Ig$2(), iv === ov) {
            tv = Zi$3(rv, tv, ev);
            break e;
          }
          Xi$3(rv, tv, iv, ev);
        }
        tv = tv.child;
      }
      return tv;
    case 5:
      return Ah$2(tv), rv === null && Eg$2(tv), iv = tv.type, ov = tv.pendingProps, av = rv !== null ? rv.memoizedProps : null, sv = ov.children, Ef$2(iv, ov) ? sv = null : av !== null && Ef$2(iv, av) && (tv.flags |= 32), gj(rv, tv), Xi$3(rv, tv, sv, ev), tv.child;
    case 6:
      return rv === null && Eg$2(tv), null;
    case 13:
      return oj(rv, tv, ev);
    case 4:
      return yh$2(tv, tv.stateNode.containerInfo), iv = tv.pendingProps, rv === null ? tv.child = Ug$2(tv, null, iv, ev) : Xi$3(rv, tv, iv, ev), tv.child;
    case 11:
      return iv = tv.type, ov = tv.pendingProps, ov = tv.elementType === iv ? ov : Ci$4(iv, ov), Yi$3(rv, tv, iv, ov, ev);
    case 7:
      return Xi$3(rv, tv, tv.pendingProps, ev), tv.child;
    case 8:
      return Xi$3(rv, tv, tv.pendingProps.children, ev), tv.child;
    case 12:
      return Xi$3(rv, tv, tv.pendingProps.children, ev), tv.child;
    case 10:
      e: {
        if (iv = tv.type._context, ov = tv.pendingProps, av = tv.memoizedProps, sv = ov.value, G$2(Wg, iv._currentValue), iv._currentValue = sv, av !== null)
          if (He$2(av.value, sv)) {
            if (av.children === ov.children && !Wf$2.current) {
              tv = Zi$3(rv, tv, ev);
              break e;
            }
          } else
            for (av = tv.child, av !== null && (av.return = tv); av !== null; ) {
              var lv = av.dependencies;
              if (lv !== null) {
                sv = av.child;
                for (var uv = lv.firstContext; uv !== null; ) {
                  if (uv.context === iv) {
                    if (av.tag === 1) {
                      uv = mh$2(-1, ev & -ev), uv.tag = 2;
                      var cv = av.updateQueue;
                      if (cv !== null) {
                        cv = cv.shared;
                        var dv = cv.pending;
                        dv === null ? uv.next = uv : (uv.next = dv.next, dv.next = uv), cv.pending = uv;
                      }
                    }
                    av.lanes |= ev, uv = av.alternate, uv !== null && (uv.lanes |= ev), bh$2(
                      av.return,
                      ev,
                      tv
                    ), lv.lanes |= ev;
                    break;
                  }
                  uv = uv.next;
                }
              } else if (av.tag === 10)
                sv = av.type === tv.type ? null : av.child;
              else if (av.tag === 18) {
                if (sv = av.return, sv === null)
                  throw Error(p$3(341));
                sv.lanes |= ev, lv = sv.alternate, lv !== null && (lv.lanes |= ev), bh$2(sv, ev, tv), sv = av.sibling;
              } else
                sv = av.child;
              if (sv !== null)
                sv.return = av;
              else
                for (sv = av; sv !== null; ) {
                  if (sv === tv) {
                    sv = null;
                    break;
                  }
                  if (av = sv.sibling, av !== null) {
                    av.return = sv.return, sv = av;
                    break;
                  }
                  sv = sv.return;
                }
              av = sv;
            }
        Xi$3(rv, tv, ov.children, ev), tv = tv.child;
      }
      return tv;
    case 9:
      return ov = tv.type, iv = tv.pendingProps.children, ch$1(tv, ev), ov = eh$2(ov), iv = iv(ov), tv.flags |= 1, Xi$3(rv, tv, iv, ev), tv.child;
    case 14:
      return iv = tv.type, ov = Ci$4(iv, tv.pendingProps), ov = Ci$4(iv.type, ov), $i$2(rv, tv, iv, ov, ev);
    case 15:
      return bj(rv, tv, tv.type, tv.pendingProps, ev);
    case 17:
      return iv = tv.type, ov = tv.pendingProps, ov = tv.elementType === iv ? ov : Ci$4(iv, ov), ij(rv, tv), tv.tag = 1, Zf$2(iv) ? (rv = !0, cg$1(tv)) : rv = !1, ch$1(tv, ev), Gi$2(tv, iv, ov), Ii$4(tv, iv, ov, ev), jj(null, tv, iv, !0, rv, ev);
    case 19:
      return xj(rv, tv, ev);
    case 22:
      return dj(rv, tv, ev);
  }
  throw Error(p$3(156, tv.tag));
};
function Fk$1(rv, tv) {
  return ac$3(rv, tv);
}
function $k$1(rv, tv, ev, iv) {
  this.tag = rv, this.key = ev, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.ref = null, this.pendingProps = tv, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = iv, this.subtreeFlags = this.flags = 0, this.deletions = null, this.childLanes = this.lanes = 0, this.alternate = null;
}
function Bg$2(rv, tv, ev, iv) {
  return new $k$1(rv, tv, ev, iv);
}
function aj(rv) {
  return rv = rv.prototype, !(!rv || !rv.isReactComponent);
}
function Zk$1(rv) {
  if (typeof rv == "function")
    return aj(rv) ? 1 : 0;
  if (rv != null) {
    if (rv = rv.$$typeof, rv === Da$4)
      return 11;
    if (rv === Ga$3)
      return 14;
  }
  return 2;
}
function Pg$2(rv, tv) {
  var ev = rv.alternate;
  return ev === null ? (ev = Bg$2(rv.tag, tv, rv.key, rv.mode), ev.elementType = rv.elementType, ev.type = rv.type, ev.stateNode = rv.stateNode, ev.alternate = rv, rv.alternate = ev) : (ev.pendingProps = tv, ev.type = rv.type, ev.flags = 0, ev.subtreeFlags = 0, ev.deletions = null), ev.flags = rv.flags & 14680064, ev.childLanes = rv.childLanes, ev.lanes = rv.lanes, ev.child = rv.child, ev.memoizedProps = rv.memoizedProps, ev.memoizedState = rv.memoizedState, ev.updateQueue = rv.updateQueue, tv = rv.dependencies, ev.dependencies = tv === null ? null : { lanes: tv.lanes, firstContext: tv.firstContext }, ev.sibling = rv.sibling, ev.index = rv.index, ev.ref = rv.ref, ev;
}
function Rg$2(rv, tv, ev, iv, ov, av) {
  var sv = 2;
  if (iv = rv, typeof rv == "function")
    aj(rv) && (sv = 1);
  else if (typeof rv == "string")
    sv = 5;
  else
    e:
      switch (rv) {
        case ya$3:
          return Tg$2(ev.children, ov, av, tv);
        case za$3:
          sv = 8, ov |= 8;
          break;
        case Aa$3:
          return rv = Bg$2(12, ev, tv, ov | 2), rv.elementType = Aa$3, rv.lanes = av, rv;
        case Ea$4:
          return rv = Bg$2(13, ev, tv, ov), rv.elementType = Ea$4, rv.lanes = av, rv;
        case Fa$3:
          return rv = Bg$2(19, ev, tv, ov), rv.elementType = Fa$3, rv.lanes = av, rv;
        case Ia$4:
          return pj(ev, ov, av, tv);
        default:
          if (typeof rv == "object" && rv !== null)
            switch (rv.$$typeof) {
              case Ba$4:
                sv = 10;
                break e;
              case Ca$3:
                sv = 9;
                break e;
              case Da$4:
                sv = 11;
                break e;
              case Ga$3:
                sv = 14;
                break e;
              case Ha$2:
                sv = 16, iv = null;
                break e;
            }
          throw Error(p$3(130, rv == null ? rv : typeof rv, ""));
      }
  return tv = Bg$2(sv, ev, tv, ov), tv.elementType = rv, tv.type = iv, tv.lanes = av, tv;
}
function Tg$2(rv, tv, ev, iv) {
  return rv = Bg$2(7, rv, iv, tv), rv.lanes = ev, rv;
}
function pj(rv, tv, ev, iv) {
  return rv = Bg$2(22, rv, iv, tv), rv.elementType = Ia$4, rv.lanes = ev, rv.stateNode = { isHidden: !1 }, rv;
}
function Qg(rv, tv, ev) {
  return rv = Bg$2(6, rv, null, tv), rv.lanes = ev, rv;
}
function Sg$2(rv, tv, ev) {
  return tv = Bg$2(4, rv.children !== null ? rv.children : [], rv.key, tv), tv.lanes = ev, tv.stateNode = { containerInfo: rv.containerInfo, pendingChildren: null, implementation: rv.implementation }, tv;
}
function al$2(rv, tv, ev, iv, ov) {
  this.tag = tv, this.containerInfo = rv, this.finishedWork = this.pingCache = this.current = this.pendingChildren = null, this.timeoutHandle = -1, this.callbackNode = this.pendingContext = this.context = null, this.callbackPriority = 0, this.eventTimes = zc$2(0), this.expirationTimes = zc$2(-1), this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0, this.entanglements = zc$2(0), this.identifierPrefix = iv, this.onRecoverableError = ov, this.mutableSourceEagerHydrationData = null;
}
function bl$1(rv, tv, ev, iv, ov, av, sv, lv, uv) {
  return rv = new al$2(rv, tv, ev, lv, uv), tv === 1 ? (tv = 1, av === !0 && (tv |= 8)) : tv = 0, av = Bg$2(3, null, null, tv), rv.current = av, av.stateNode = rv, av.memoizedState = { element: iv, isDehydrated: ev, cache: null, transitions: null, pendingSuspenseBoundaries: null }, kh$1(av), rv;
}
function cl$2(rv, tv, ev) {
  var iv = 3 < arguments.length && arguments[3] !== void 0 ? arguments[3] : null;
  return { $$typeof: wa$3, key: iv == null ? null : "" + iv, children: rv, containerInfo: tv, implementation: ev };
}
function dl$1(rv) {
  if (!rv)
    return Vf$2;
  rv = rv._reactInternals;
  e: {
    if (Vb$1(rv) !== rv || rv.tag !== 1)
      throw Error(p$3(170));
    var tv = rv;
    do {
      switch (tv.tag) {
        case 3:
          tv = tv.stateNode.context;
          break e;
        case 1:
          if (Zf$2(tv.type)) {
            tv = tv.stateNode.__reactInternalMemoizedMergedChildContext;
            break e;
          }
      }
      tv = tv.return;
    } while (tv !== null);
    throw Error(p$3(171));
  }
  if (rv.tag === 1) {
    var ev = rv.type;
    if (Zf$2(ev))
      return bg$2(rv, ev, tv);
  }
  return tv;
}
function el$2(rv, tv, ev, iv, ov, av, sv, lv, uv) {
  return rv = bl$1(ev, iv, !0, rv, ov, av, sv, lv, uv), rv.context = dl$1(null), ev = rv.current, iv = R$2(), ov = yi$4(ev), av = mh$2(iv, ov), av.callback = tv ?? null, nh$2(ev, av, ov), rv.current.lanes = ov, Ac$2(rv, ov, iv), Dk$1(rv, iv), rv;
}
function fl$2(rv, tv, ev, iv) {
  var ov = tv.current, av = R$2(), sv = yi$4(ov);
  return ev = dl$1(ev), tv.context === null ? tv.context = ev : tv.pendingContext = ev, tv = mh$2(av, sv), tv.payload = { element: rv }, iv = iv === void 0 ? null : iv, iv !== null && (tv.callback = iv), rv = nh$2(ov, tv, sv), rv !== null && (gi$4(rv, ov, sv, av), oh$2(rv, ov, sv)), sv;
}
function gl$1(rv) {
  if (rv = rv.current, !rv.child)
    return null;
  switch (rv.child.tag) {
    case 5:
      return rv.child.stateNode;
    default:
      return rv.child.stateNode;
  }
}
function hl$2(rv, tv) {
  if (rv = rv.memoizedState, rv !== null && rv.dehydrated !== null) {
    var ev = rv.retryLane;
    rv.retryLane = ev !== 0 && ev < tv ? ev : tv;
  }
}
function il$2(rv, tv) {
  hl$2(rv, tv), (rv = rv.alternate) && hl$2(rv, tv);
}
function jl$1() {
  return null;
}
var kl$2 = typeof reportError == "function" ? reportError : function(rv) {
  console.error(rv);
};
function ll$2(rv) {
  this._internalRoot = rv;
}
ml$2.prototype.render = ll$2.prototype.render = function(rv) {
  var tv = this._internalRoot;
  if (tv === null)
    throw Error(p$3(409));
  fl$2(rv, tv, null, null);
};
ml$2.prototype.unmount = ll$2.prototype.unmount = function() {
  var rv = this._internalRoot;
  if (rv !== null) {
    this._internalRoot = null;
    var tv = rv.containerInfo;
    Rk$1(function() {
      fl$2(null, rv, null, null);
    }), tv[uf$2] = null;
  }
};
function ml$2(rv) {
  this._internalRoot = rv;
}
ml$2.prototype.unstable_scheduleHydration = function(rv) {
  if (rv) {
    var tv = Hc$2();
    rv = { blockedOn: null, target: rv, priority: tv };
    for (var ev = 0; ev < Qc$1.length && tv !== 0 && tv < Qc$1[ev].priority; ev++)
      ;
    Qc$1.splice(ev, 0, rv), ev === 0 && Vc$2(rv);
  }
};
function nl$2(rv) {
  return !(!rv || rv.nodeType !== 1 && rv.nodeType !== 9 && rv.nodeType !== 11);
}
function ol$2(rv) {
  return !(!rv || rv.nodeType !== 1 && rv.nodeType !== 9 && rv.nodeType !== 11 && (rv.nodeType !== 8 || rv.nodeValue !== " react-mount-point-unstable "));
}
function pl$2() {
}
function ql$1(rv, tv, ev, iv, ov) {
  if (ov) {
    if (typeof iv == "function") {
      var av = iv;
      iv = function() {
        var cv = gl$1(sv);
        av.call(cv);
      };
    }
    var sv = el$2(tv, iv, rv, 0, null, !1, !1, "", pl$2);
    return rv._reactRootContainer = sv, rv[uf$2] = sv.current, sf$2(rv.nodeType === 8 ? rv.parentNode : rv), Rk$1(), sv;
  }
  for (; ov = rv.lastChild; )
    rv.removeChild(ov);
  if (typeof iv == "function") {
    var lv = iv;
    iv = function() {
      var cv = gl$1(uv);
      lv.call(cv);
    };
  }
  var uv = bl$1(rv, 0, !1, null, null, !1, !1, "", pl$2);
  return rv._reactRootContainer = uv, rv[uf$2] = uv.current, sf$2(rv.nodeType === 8 ? rv.parentNode : rv), Rk$1(function() {
    fl$2(tv, uv, ev, iv);
  }), uv;
}
function rl$2(rv, tv, ev, iv, ov) {
  var av = ev._reactRootContainer;
  if (av) {
    var sv = av;
    if (typeof ov == "function") {
      var lv = ov;
      ov = function() {
        var uv = gl$1(sv);
        lv.call(uv);
      };
    }
    fl$2(tv, sv, rv, ov);
  } else
    sv = ql$1(ev, tv, rv, ov, iv);
  return gl$1(sv);
}
Ec$1 = function(rv) {
  switch (rv.tag) {
    case 3:
      var tv = rv.stateNode;
      if (tv.current.memoizedState.isDehydrated) {
        var ev = tc$3(tv.pendingLanes);
        ev !== 0 && (Cc$3(tv, ev | 1), Dk$1(tv, B$2()), !(K$3 & 6) && (Gj = B$2() + 500, jg$2()));
      }
      break;
    case 13:
      Rk$1(function() {
        var iv = ih$2(rv, 1);
        if (iv !== null) {
          var ov = R$2();
          gi$4(iv, rv, 1, ov);
        }
      }), il$2(rv, 1);
  }
};
Fc$2 = function(rv) {
  if (rv.tag === 13) {
    var tv = ih$2(rv, 134217728);
    if (tv !== null) {
      var ev = R$2();
      gi$4(tv, rv, 134217728, ev);
    }
    il$2(rv, 134217728);
  }
};
Gc$2 = function(rv) {
  if (rv.tag === 13) {
    var tv = yi$4(rv), ev = ih$2(rv, tv);
    if (ev !== null) {
      var iv = R$2();
      gi$4(ev, rv, tv, iv);
    }
    il$2(rv, tv);
  }
};
Hc$2 = function() {
  return C$3;
};
Ic$2 = function(rv, tv) {
  var ev = C$3;
  try {
    return C$3 = rv, tv();
  } finally {
    C$3 = ev;
  }
};
yb = function(rv, tv, ev) {
  switch (tv) {
    case "input":
      if (bb(rv, ev), tv = ev.name, ev.type === "radio" && tv != null) {
        for (ev = rv; ev.parentNode; )
          ev = ev.parentNode;
        for (ev = ev.querySelectorAll("input[name=" + JSON.stringify("" + tv) + '][type="radio"]'), tv = 0; tv < ev.length; tv++) {
          var iv = ev[tv];
          if (iv !== rv && iv.form === rv.form) {
            var ov = Db(iv);
            if (!ov)
              throw Error(p$3(90));
            Wa$3(iv), bb(iv, ov);
          }
        }
      }
      break;
    case "textarea":
      ib(rv, ev);
      break;
    case "select":
      tv = ev.value, tv != null && fb(rv, !!ev.multiple, tv, !1);
  }
};
Gb$1 = Qk$1;
Hb$1 = Rk$1;
var sl$2 = { usingClientEntryPoint: !1, Events: [Cb, ue$3, Db, Eb, Fb$1, Qk$1] }, tl$2 = { findFiberByHostInstance: Wc$2, bundleType: 0, version: "18.3.1", rendererPackageName: "react-dom" }, ul$2 = { bundleType: tl$2.bundleType, version: tl$2.version, rendererPackageName: tl$2.rendererPackageName, rendererConfig: tl$2.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, overrideProps: null, overridePropsDeletePath: null, overridePropsRenamePath: null, setErrorHandler: null, setSuspenseHandler: null, scheduleUpdate: null, currentDispatcherRef: ua$4.ReactCurrentDispatcher, findHostInstanceByFiber: function(rv) {
  return rv = Zb$1(rv), rv === null ? null : rv.stateNode;
}, findFiberByHostInstance: tl$2.findFiberByHostInstance || jl$1, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, reconcilerVersion: "18.3.1-next-f1338f8080-20240426" };
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u") {
  var vl$1 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
  if (!vl$1.isDisabled && vl$1.supportsFiber)
    try {
      kc$1 = vl$1.inject(ul$2), lc$3 = vl$1;
    } catch {
    }
}
reactDom_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sl$2;
reactDom_production_min.createPortal = function(rv, tv) {
  var ev = 2 < arguments.length && arguments[2] !== void 0 ? arguments[2] : null;
  if (!nl$2(tv))
    throw Error(p$3(200));
  return cl$2(rv, tv, null, ev);
};
reactDom_production_min.createRoot = function(rv, tv) {
  if (!nl$2(rv))
    throw Error(p$3(299));
  var ev = !1, iv = "", ov = kl$2;
  return tv != null && (tv.unstable_strictMode === !0 && (ev = !0), tv.identifierPrefix !== void 0 && (iv = tv.identifierPrefix), tv.onRecoverableError !== void 0 && (ov = tv.onRecoverableError)), tv = bl$1(rv, 1, !1, null, null, ev, !1, iv, ov), rv[uf$2] = tv.current, sf$2(rv.nodeType === 8 ? rv.parentNode : rv), new ll$2(tv);
};
reactDom_production_min.findDOMNode = function(rv) {
  if (rv == null)
    return null;
  if (rv.nodeType === 1)
    return rv;
  var tv = rv._reactInternals;
  if (tv === void 0)
    throw typeof rv.render == "function" ? Error(p$3(188)) : (rv = Object.keys(rv).join(","), Error(p$3(268, rv)));
  return rv = Zb$1(tv), rv = rv === null ? null : rv.stateNode, rv;
};
reactDom_production_min.flushSync = function(rv) {
  return Rk$1(rv);
};
reactDom_production_min.hydrate = function(rv, tv, ev) {
  if (!ol$2(tv))
    throw Error(p$3(200));
  return rl$2(null, rv, tv, !0, ev);
};
reactDom_production_min.hydrateRoot = function(rv, tv, ev) {
  if (!nl$2(rv))
    throw Error(p$3(405));
  var iv = ev != null && ev.hydratedSources || null, ov = !1, av = "", sv = kl$2;
  if (ev != null && (ev.unstable_strictMode === !0 && (ov = !0), ev.identifierPrefix !== void 0 && (av = ev.identifierPrefix), ev.onRecoverableError !== void 0 && (sv = ev.onRecoverableError)), tv = el$2(tv, null, rv, 1, ev ?? null, ov, !1, av, sv), rv[uf$2] = tv.current, sf$2(rv), iv)
    for (rv = 0; rv < iv.length; rv++)
      ev = iv[rv], ov = ev._getVersion, ov = ov(ev._source), tv.mutableSourceEagerHydrationData == null ? tv.mutableSourceEagerHydrationData = [ev, ov] : tv.mutableSourceEagerHydrationData.push(
        ev,
        ov
      );
  return new ml$2(tv);
};
reactDom_production_min.render = function(rv, tv, ev) {
  if (!ol$2(tv))
    throw Error(p$3(200));
  return rl$2(null, rv, tv, !1, ev);
};
reactDom_production_min.unmountComponentAtNode = function(rv) {
  if (!ol$2(rv))
    throw Error(p$3(40));
  return rv._reactRootContainer ? (Rk$1(function() {
    rl$2(null, null, rv, !1, function() {
      rv._reactRootContainer = null, rv[uf$2] = null;
    });
  }), !0) : !1;
};
reactDom_production_min.unstable_batchedUpdates = Qk$1;
reactDom_production_min.unstable_renderSubtreeIntoContainer = function(rv, tv, ev, iv) {
  if (!ol$2(ev))
    throw Error(p$3(200));
  if (rv == null || rv._reactInternals === void 0)
    throw Error(p$3(38));
  return rl$2(rv, tv, ev, !1, iv);
};
reactDom_production_min.version = "18.3.1-next-f1338f8080-20240426";
function checkDCE() {
  if (!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > "u" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE != "function"))
    try {
      __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
    } catch (rv) {
      console.error(rv);
    }
}
checkDCE(), reactDom.exports = reactDom_production_min;
var reactDomExports = reactDom.exports;
const ReactDOM = /* @__PURE__ */ getDefaultExportFromCjs(reactDomExports), ReactDOM$1 = /* @__PURE__ */ _mergeNamespaces({
  __proto__: null,
  default: ReactDOM
}, [reactDomExports]);
var shim = { exports: {} }, useSyncExternalStoreShim_production_min = {};
/**
 * @license React
 * use-sync-external-store-shim.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var e$5 = reactExports;
function h$4(rv, tv) {
  return rv === tv && (rv !== 0 || 1 / rv === 1 / tv) || rv !== rv && tv !== tv;
}
var k$2 = typeof Object.is == "function" ? Object.is : h$4, l$2 = e$5.useState, m$4 = e$5.useEffect, n$5 = e$5.useLayoutEffect, p$2 = e$5.useDebugValue;
function q(rv, tv) {
  var ev = tv(), iv = l$2({ inst: { value: ev, getSnapshot: tv } }), ov = iv[0].inst, av = iv[1];
  return n$5(function() {
    ov.value = ev, ov.getSnapshot = tv, r$7(ov) && av({ inst: ov });
  }, [rv, ev, tv]), m$4(function() {
    return r$7(ov) && av({ inst: ov }), rv(function() {
      r$7(ov) && av({ inst: ov });
    });
  }, [rv]), p$2(ev), ev;
}
function r$7(rv) {
  var tv = rv.getSnapshot;
  rv = rv.value;
  try {
    var ev = tv();
    return !k$2(rv, ev);
  } catch {
    return !0;
  }
}
function t$4(rv, tv) {
  return tv();
}
var u$2 = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? t$4 : q;
useSyncExternalStoreShim_production_min.useSyncExternalStore = e$5.useSyncExternalStore !== void 0 ? e$5.useSyncExternalStore : u$2;
shim.exports = useSyncExternalStoreShim_production_min;
var shimExports = shim.exports;
const useSyncExternalStore = shimExports.useSyncExternalStore, defaultContext = /* @__PURE__ */ reactExports.createContext(void 0), QueryClientSharingContext = /* @__PURE__ */ reactExports.createContext(!1);
function getQueryClientContext(rv, tv) {
  return rv || (tv && typeof window < "u" ? (window.ReactQueryClientContext || (window.ReactQueryClientContext = defaultContext), window.ReactQueryClientContext) : defaultContext);
}
const useQueryClient = ({
  context: rv
} = {}) => {
  const tv = reactExports.useContext(getQueryClientContext(rv, reactExports.useContext(QueryClientSharingContext)));
  if (!tv)
    throw new Error("No QueryClient set, use QueryClientProvider to set one");
  return tv;
}, QueryClientProvider = ({
  client: rv,
  children: tv,
  context: ev,
  contextSharing: iv = !1
}) => {
  reactExports.useEffect(() => (rv.mount(), () => {
    rv.unmount();
  }), [rv]);
  const ov = getQueryClientContext(ev, iv);
  return /* @__PURE__ */ reactExports.createElement(QueryClientSharingContext.Provider, {
    value: !ev && iv
  }, /* @__PURE__ */ reactExports.createElement(ov.Provider, {
    value: rv
  }, tv));
}, IsRestoringContext = /* @__PURE__ */ reactExports.createContext(!1), useIsRestoring = () => reactExports.useContext(IsRestoringContext);
IsRestoringContext.Provider;
function createValue() {
  let rv = !1;
  return {
    clearReset: () => {
      rv = !1;
    },
    reset: () => {
      rv = !0;
    },
    isReset: () => rv
  };
}
const QueryErrorResetBoundaryContext = /* @__PURE__ */ reactExports.createContext(createValue()), useQueryErrorResetBoundary = () => reactExports.useContext(QueryErrorResetBoundaryContext);
function shouldThrowError(rv, tv) {
  return typeof rv == "function" ? rv(...tv) : !!rv;
}
const ensurePreventErrorBoundaryRetry = (rv, tv) => {
  (rv.suspense || rv.useErrorBoundary) && (tv.isReset() || (rv.retryOnMount = !1));
}, useClearResetErrorBoundary = (rv) => {
  reactExports.useEffect(() => {
    rv.clearReset();
  }, [rv]);
}, getHasError = ({
  result: rv,
  errorResetBoundary: tv,
  useErrorBoundary: ev,
  query: iv
}) => rv.isError && !tv.isReset() && !rv.isFetching && shouldThrowError(ev, [rv.error, iv]), ensureStaleTime = (rv) => {
  rv.suspense && typeof rv.staleTime != "number" && (rv.staleTime = 1e3);
}, willFetch = (rv, tv) => rv.isLoading && rv.isFetching && !tv, shouldSuspend = (rv, tv, ev) => (rv == null ? void 0 : rv.suspense) && willFetch(tv, ev), fetchOptimistic = (rv, tv, ev) => tv.fetchOptimistic(rv).then(({
  data: iv
}) => {
  rv.onSuccess == null || rv.onSuccess(iv), rv.onSettled == null || rv.onSettled(iv, null);
}).catch((iv) => {
  ev.clearReset(), rv.onError == null || rv.onError(iv), rv.onSettled == null || rv.onSettled(void 0, iv);
});
function useBaseQuery(rv, tv) {
  const ev = useQueryClient({
    context: rv.context
  }), iv = useIsRestoring(), ov = useQueryErrorResetBoundary(), av = ev.defaultQueryOptions(rv);
  av._optimisticResults = iv ? "isRestoring" : "optimistic", av.onError && (av.onError = notifyManager.batchCalls(av.onError)), av.onSuccess && (av.onSuccess = notifyManager.batchCalls(av.onSuccess)), av.onSettled && (av.onSettled = notifyManager.batchCalls(av.onSettled)), ensureStaleTime(av), ensurePreventErrorBoundaryRetry(av, ov), useClearResetErrorBoundary(ov);
  const [sv] = reactExports.useState(() => new tv(ev, av)), lv = sv.getOptimisticResult(av);
  if (useSyncExternalStore(reactExports.useCallback((uv) => {
    const cv = iv ? () => {
    } : sv.subscribe(notifyManager.batchCalls(uv));
    return sv.updateResult(), cv;
  }, [sv, iv]), () => sv.getCurrentResult(), () => sv.getCurrentResult()), reactExports.useEffect(() => {
    sv.setOptions(av, {
      listeners: !1
    });
  }, [av, sv]), shouldSuspend(av, lv, iv))
    throw fetchOptimistic(av, sv, ov);
  if (getHasError({
    result: lv,
    errorResetBoundary: ov,
    useErrorBoundary: av.useErrorBoundary,
    query: sv.getCurrentQuery()
  }))
    throw lv.error;
  return av.notifyOnChangeProps ? lv : sv.trackResult(lv);
}
function useQuery(rv, tv, ev) {
  const iv = parseQueryArgs(rv, tv, ev);
  return useBaseQuery(iv, QueryObserver);
}
function useMutation(rv, tv, ev) {
  const iv = parseMutationArgs(rv, tv), ov = useQueryClient({
    context: iv.context
  }), [av] = reactExports.useState(() => new MutationObserver$1(ov, iv));
  reactExports.useEffect(() => {
    av.setOptions(iv);
  }, [av, iv]);
  const sv = useSyncExternalStore(reactExports.useCallback((uv) => av.subscribe(notifyManager.batchCalls(uv)), [av]), () => av.getCurrentResult(), () => av.getCurrentResult()), lv = reactExports.useCallback((uv, cv) => {
    av.mutate(uv, cv).catch(noop$3);
  }, [av]);
  if (sv.error && shouldThrowError(av.options.useErrorBoundary, [sv.error]))
    throw sv.error;
  return {
    ...sv,
    mutate: lv,
    mutateAsync: sv.mutate
  };
}
function noop$3() {
}
var bl = Object.defineProperty, Nl$1 = (rv, tv, ev) => tv in rv ? bl(rv, tv, { enumerable: !0, configurable: !0, writable: !0, value: ev }) : rv[tv] = ev, R$1 = (rv, tv, ev) => Nl$1(rv, typeof tv != "symbol" ? tv + "" : tv, ev);
function Cl$1(rv, tv) {
  for (var ev = 0; ev < tv.length; ev++) {
    const iv = tv[ev];
    if (typeof iv != "string" && !Array.isArray(iv)) {
      for (const ov in iv)
        if (ov !== "default" && !(ov in rv)) {
          const av = Object.getOwnPropertyDescriptor(iv, ov);
          av && Object.defineProperty(rv, ov, av.get ? av : {
            enumerable: !0,
            get: () => iv[ov]
          });
        }
    }
  }
  return Object.freeze(Object.defineProperty(rv, Symbol.toStringTag, { value: "Module" }));
}
reactExports.createContext(
  void 0
);
React.use;
const Kl$1 = { BASE_URL: "/", DEV: !1, MODE: "production", NZ_AWS_REGION: "us-east-1", PROD: !0, SSR: !1, STAGE: "prod" }, {
  NZ_AWS_REGION: Wl$1,
  NZ_BACKOFFICE_BACK_URL: Jl$1,
  NZ_CORE_SERVICES_GRAPHQL_URL: Yl$1,
  NZ_CORE_SERVICES_REST_URL: Ql$1
} = Kl$1, ln$3 = {
  AWS: {
    region: Wl$1,
    cognito: {
      userPoolId: "us-east-1_EZ7wuZ4ig",
      userPoolWebClientId: "2jok7cst8ebf6ppscrhji57gvr"
    }
  },
  //  Back services
  apiUrls: {
    restV1: Jl$1 || "https://b133h34s56.execute-api.us-east-1.amazonaws.com",
    restV2: Ql$1 || "https://core-services-prod.nizza.com/api",
    graphql: Yl$1 || "https://core-services-prod.nizza.com/graphql",
    corsProxy: "https://3hvqfl2xcg.execute-api.us-east-1.amazonaws.com"
  },
  publicUrls: {
    //  Public app url
    platformSite: "https://platform.nizza.com",
    // Nizza CDN
    nizzaCdn: "https://cdn.nizza.com",
    //  Bundle
    bundleSite: "https://bundle.nizza.com",
    // WSS IVS CHAT
    wssIVSChat: "wss://edge.ivschat.us-east-1.amazonaws.com",
    // Global Page
    globalPage: "https://live.nizza.com"
  }
};
function Xg(rv, tv) {
  let ev = null;
  const iv = () => {
    ev || (ev = tv().log.createLogger(rv));
  }, ov = (sv, lv) => typeof sv[lv] == "function", av = {
    get(sv, lv, uv) {
      iv();
      const cv = (dv) => (...hv) => {
        if (!ev)
          return;
        const pv = ev[dv];
        if (typeof pv == "function")
          return pv.apply(ev, hv);
      };
      return ev && ov(ev, lv) ? cv(lv) : ev ? ev[lv] : void 0;
    }
  };
  return new Proxy({}, av);
}
let Et$2 = class extends Error {
  /**
   * Creates a new instance of DomainError.
   * @param name - The name of the error.
   * @param message - A detailed message describing the error.
   * @param value - Optional value that provides additional context about the error.
   */
  constructor(tv, ev, iv) {
    super(ev), this.value = iv, this.name = tv, Error.captureStackTrace && Error.captureStackTrace(this, this.constructor);
  }
  /**
   * Converts the DomainError to a plain object for transfer or logging.
   * @returns An object representing the error in a more readable format.
   */
  toDTO() {
    return {
      name: this.name,
      message: this.message,
      ...this.value && { value: this.value },
      // Include a human-readable stack trace if available.
      ...this.stack && { stack: this.formatStack() }
    };
  }
  /**
   * Formats the error stack trace into a human-readable string.
   * @returns A formatted stack trace string.
   */
  formatStack() {
    return this.stack ? this.stack.split(`
`).map((tv) => tv.trim()).join(" | ") : "";
  }
}, as$2 = class extends Et$2 {
  constructor(tv) {
    super(
      "RESOURCE_NOT_FOUND_ERROR",
      `Resource with id '${tv}' not found.`,
      tv
    );
  }
}, xa$3 = class extends Et$2 {
  constructor(tv) {
    var ev;
    super(
      "APP_UNEXPECTED_ERROR",
      (ev = tv.message) != null ? ev : "An unexpected error occurred.",
      tv
    );
  }
}, su$2 = class extends Et$2 {
  constructor() {
    super("APP_ACCOUNT_INVALID_ERROR", "Account not defined");
  }
};
function j$2(rv) {
  for (var tv = arguments.length, ev = new Array(tv > 1 ? tv - 1 : 0), iv = 1; iv < tv; iv++)
    ev[iv - 1] = arguments[iv];
  throw new Error(typeof rv == "number" ? "[MobX] minified error nr: " + rv + (ev.length ? " " + ev.map(String).join(",") : "") + ". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts" : "[MobX] " + rv);
}
var ou$1 = {};
function Ra$3() {
  return typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : ou$1;
}
var Fa$2 = Object.assign, Dn$2 = Object.getOwnPropertyDescriptor, Ae$2 = Object.defineProperty, Qn$3 = Object.prototype, Wi$2 = [];
Object.freeze(Wi$2);
var Or$2 = {};
Object.freeze(Or$2);
var lu$1 = typeof Proxy < "u", uu$1 = /* @__PURE__ */ Object.toString();
function Da$3() {
  lu$1 || j$2("Proxy not available");
}
function Ia$3(rv) {
  var tv = !1;
  return function() {
    if (!tv)
      return tv = !0, rv.apply(this, arguments);
  };
}
var vt$2 = function() {
};
function ke$2(rv) {
  return typeof rv == "function";
}
function tt$2(rv) {
  var tv = typeof rv;
  switch (tv) {
    case "string":
    case "symbol":
    case "number":
      return !0;
  }
  return !1;
}
function Xn$3(rv) {
  return rv !== null && typeof rv == "object";
}
function je$2(rv) {
  if (!Xn$3(rv))
    return !1;
  var tv = Object.getPrototypeOf(rv);
  if (tv == null)
    return !0;
  var ev = Object.hasOwnProperty.call(tv, "constructor") && tv.constructor;
  return typeof ev == "function" && ev.toString() === uu$1;
}
function La$3(rv) {
  var tv = rv == null ? void 0 : rv.constructor;
  return tv ? tv.name === "GeneratorFunction" || tv.displayName === "GeneratorFunction" : !1;
}
function Zn$2(rv, tv, ev) {
  Ae$2(rv, tv, {
    enumerable: !1,
    writable: !0,
    configurable: !0,
    value: ev
  });
}
function Pa$3(rv, tv, ev) {
  Ae$2(rv, tv, {
    enumerable: !1,
    writable: !1,
    configurable: !0,
    value: ev
  });
}
function at$2(rv, tv) {
  var ev = "isMobX" + rv;
  return tv.prototype[ev] = !0, function(iv) {
    return Xn$3(iv) && iv[ev] === !0;
  };
}
function At$1(rv) {
  return rv != null && Object.prototype.toString.call(rv) === "[object Map]";
}
function cu$1(rv) {
  var tv = Object.getPrototypeOf(rv), ev = Object.getPrototypeOf(tv), iv = Object.getPrototypeOf(ev);
  return iv === null;
}
function Te$1(rv) {
  return rv != null && Object.prototype.toString.call(rv) === "[object Set]";
}
var $a$3 = typeof Object.getOwnPropertySymbols < "u";
function du$1(rv) {
  var tv = Object.keys(rv);
  if (!$a$3)
    return tv;
  var ev = Object.getOwnPropertySymbols(rv);
  return ev.length ? [].concat(tv, ev.filter(function(iv) {
    return Qn$3.propertyIsEnumerable.call(rv, iv);
  })) : tv;
}
var ei$3 = typeof Reflect < "u" && Reflect.ownKeys ? Reflect.ownKeys : $a$3 ? function(rv) {
  return Object.getOwnPropertyNames(rv).concat(Object.getOwnPropertySymbols(rv));
} : (
  /* istanbul ignore next */
  Object.getOwnPropertyNames
);
function Ua$3(rv) {
  return rv === null ? null : typeof rv == "object" ? "" + rv : rv;
}
function xe$2(rv, tv) {
  return Qn$3.hasOwnProperty.call(rv, tv);
}
var fu$1 = Object.getOwnPropertyDescriptors || function(rv) {
  var tv = {};
  return ei$3(rv).forEach(function(ev) {
    tv[ev] = Dn$2(rv, ev);
  }), tv;
};
function se$2(rv, tv) {
  return !!(rv & tv);
}
function ae$1(rv, tv, ev) {
  return ev ? rv |= tv : rv &= ~tv, rv;
}
function os$2(rv, tv) {
  (tv == null || tv > rv.length) && (tv = rv.length);
  for (var ev = 0, iv = Array(tv); ev < tv; ev++)
    iv[ev] = rv[ev];
  return iv;
}
function hu$1(rv, tv) {
  for (var ev = 0; ev < tv.length; ev++) {
    var iv = tv[ev];
    iv.enumerable = iv.enumerable || !1, iv.configurable = !0, "value" in iv && (iv.writable = !0), Object.defineProperty(rv, mu$1(iv.key), iv);
  }
}
function Ot$2(rv, tv, ev) {
  return tv && hu$1(rv.prototype, tv), Object.defineProperty(rv, "prototype", {
    writable: !1
  }), rv;
}
function kt$2(rv, tv) {
  var ev = typeof Symbol < "u" && rv[Symbol.iterator] || rv["@@iterator"];
  if (ev)
    return (ev = ev.call(rv)).next.bind(ev);
  if (Array.isArray(rv) || (ev = gu$1(rv)) || tv) {
    ev && (rv = ev);
    var iv = 0;
    return function() {
      return iv >= rv.length ? {
        done: !0
      } : {
        done: !1,
        value: rv[iv++]
      };
    };
  }
  throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function Be$2() {
  return Be$2 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        ({}).hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, Be$2.apply(null, arguments);
}
function Ma$3(rv, tv) {
  rv.prototype = Object.create(tv.prototype), rv.prototype.constructor = rv, Ji$2(rv, tv);
}
function Ji$2(rv, tv) {
  return Ji$2 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(ev, iv) {
    return ev.__proto__ = iv, ev;
  }, Ji$2(rv, tv);
}
function pu$1(rv, tv) {
  if (typeof rv != "object" || !rv)
    return rv;
  var ev = rv[Symbol.toPrimitive];
  if (ev !== void 0) {
    var iv = ev.call(rv, tv);
    if (typeof iv != "object")
      return iv;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return String(rv);
}
function mu$1(rv) {
  var tv = pu$1(rv, "string");
  return typeof tv == "symbol" ? tv : tv + "";
}
function gu$1(rv, tv) {
  if (rv) {
    if (typeof rv == "string")
      return os$2(rv, tv);
    var ev = {}.toString.call(rv).slice(8, -1);
    return ev === "Object" && rv.constructor && (ev = rv.constructor.name), ev === "Map" || ev === "Set" ? Array.from(rv) : ev === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ev) ? os$2(rv, tv) : void 0;
  }
}
var Se$1 = /* @__PURE__ */ Symbol("mobx-stored-annotations");
function Oe$2(rv) {
  function tv(ev, iv) {
    if (un$2(iv))
      return rv.decorate_20223_(ev, iv);
    wt$3(ev, iv, rv);
  }
  return Object.assign(tv, rv);
}
function wt$3(rv, tv, ev) {
  xe$2(rv, Se$1) || Zn$2(rv, Se$1, Be$2({}, rv[Se$1])), Au$1(ev) || (rv[Se$1][tv] = ev);
}
function vu(rv) {
  return xe$2(rv, Se$1) || Zn$2(rv, Se$1, Be$2({}, rv[Se$1])), rv[Se$1];
}
function un$2(rv) {
  return typeof rv == "object" && typeof rv.kind == "string";
}
var I$2 = /* @__PURE__ */ Symbol("mobx administration"), ze$2 = /* @__PURE__ */ function() {
  function rv(ev) {
    ev === void 0 && (ev = "Atom"), this.name_ = void 0, this.flags_ = 0, this.observers_ = /* @__PURE__ */ new Set(), this.lastAccessedBy_ = 0, this.lowestObserverState_ = V$2.NOT_TRACKING_, this.onBOL = void 0, this.onBUOL = void 0, this.name_ = ev;
  }
  var tv = rv.prototype;
  return tv.onBO = function() {
    this.onBOL && this.onBOL.forEach(function(ev) {
      return ev();
    });
  }, tv.onBUO = function() {
    this.onBUOL && this.onBUOL.forEach(function(ev) {
      return ev();
    });
  }, tv.reportObserved = function() {
    return to$2(this);
  }, tv.reportChanged = function() {
    fe$2(), no$2(this), he$2();
  }, tv.toString = function() {
    return this.name_;
  }, Ot$2(rv, [{
    key: "isBeingObserved",
    get: function() {
      return se$2(this.flags_, rv.isBeingObservedMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isBeingObservedMask_, ev);
    }
  }, {
    key: "isPendingUnobservation",
    get: function() {
      return se$2(this.flags_, rv.isPendingUnobservationMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isPendingUnobservationMask_, ev);
    }
  }, {
    key: "diffValue",
    get: function() {
      return se$2(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.diffValueMask_, ev === 1);
    }
  }]);
}();
ze$2.isBeingObservedMask_ = 1;
ze$2.isPendingUnobservationMask_ = 2;
ze$2.diffValueMask_ = 4;
var wr$2 = /* @__PURE__ */ at$2("Atom", ze$2);
function Va$2(rv, tv, ev) {
  tv === void 0 && (tv = vt$2), ev === void 0 && (ev = vt$2);
  var iv = new ze$2(rv);
  return tv !== vt$2 && Tc$1(iv, tv), ev !== vt$2 && lo$3(iv, ev), iv;
}
function ku$2(rv, tv) {
  return rv === tv;
}
function yu$1(rv, tv) {
  return Fr$2(rv, tv);
}
function _u$1(rv, tv) {
  return Fr$2(rv, tv, 1);
}
function bu$1(rv, tv) {
  return Object.is ? Object.is(rv, tv) : rv === tv ? rv !== 0 || 1 / rv === 1 / tv : rv !== rv && tv !== tv;
}
var _t$2 = {
  identity: ku$2,
  structural: yu$1,
  default: bu$1,
  shallow: _u$1
};
function nt$3(rv, tv, ev) {
  return fo$3(rv) ? rv : Array.isArray(rv) ? K$2.array(rv, {
    name: ev
  }) : je$2(rv) ? K$2.object(rv, void 0, {
    name: ev
  }) : At$1(rv) ? K$2.map(rv, {
    name: ev
  }) : Te$1(rv) ? K$2.set(rv, {
    name: ev
  }) : typeof rv == "function" && !ai$2(rv) && !Xt$3(rv) ? La$3(rv) ? bt$1(rv) : Qt$2(ev, rv) : rv;
}
function Nu$2(rv, tv, ev) {
  if (rv == null || ui$3(rv) || li$3(rv) || lt$1(rv) || Tt$3(rv))
    return rv;
  if (Array.isArray(rv))
    return K$2.array(rv, {
      name: ev,
      deep: !1
    });
  if (je$2(rv))
    return K$2.object(rv, void 0, {
      name: ev,
      deep: !1
    });
  if (At$1(rv))
    return K$2.map(rv, {
      name: ev,
      deep: !1
    });
  if (Te$1(rv))
    return K$2.set(rv, {
      name: ev,
      deep: !1
    });
}
function ti$3(rv) {
  return rv;
}
function Su$1(rv, tv) {
  return Fr$2(rv, tv) ? tv : rv;
}
var Eu$1 = "override";
function Au$1(rv) {
  return rv.annotationType_ === Eu$1;
}
function cn$2(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: Ou$1,
    extend_: wu$1,
    decorate_20223_: Tu$2
  };
}
function Ou$1(rv, tv, ev, iv) {
  var ov;
  if ((ov = this.options_) != null && ov.bound)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
  if (iv === rv.target_)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 2;
  if (ai$2(ev.value))
    return 1;
  var av = ja$2(rv, this, tv, ev, !1);
  return Ae$2(iv, tv, av), 2;
}
function wu$1(rv, tv, ev, iv) {
  var ov = ja$2(rv, this, tv, ev);
  return rv.defineProperty_(tv, ov, iv);
}
function Tu$2(rv, tv) {
  var ev = tv.kind, iv = tv.name, ov = tv.addInitializer, av = this, sv = function(uv) {
    var cv, dv, hv, pv;
    return He$1((cv = (dv = av.options_) == null ? void 0 : dv.name) != null ? cv : iv.toString(), uv, (hv = (pv = av.options_) == null ? void 0 : pv.autoAction) != null ? hv : !1);
  };
  if (ev == "field") {
    ov(function() {
      wt$3(this, iv, av);
    });
    return;
  }
  if (ev == "method") {
    var lv;
    return ai$2(rv) || (rv = sv(rv)), (lv = this.options_) != null && lv.bound && ov(function() {
      var uv = this, cv = uv[iv].bind(uv);
      cv.isMobxAction = !0, uv[iv] = cv;
    }), rv;
  }
  j$2("Cannot apply '" + av.annotationType_ + "' to '" + String(iv) + "' (kind: " + ev + "):" + (`
'` + av.annotationType_ + "' can only be used on properties with a function value."));
}
function Cu$1(rv, tv, ev, iv) {
  tv.annotationType_, iv.value;
}
function ja$2(rv, tv, ev, iv, ov) {
  var av, sv, lv, uv, cv, dv, hv;
  ov === void 0 && (ov = T$2.safeDescriptors), Cu$1(rv, tv, ev, iv);
  var pv = iv.value;
  if ((av = tv.options_) != null && av.bound) {
    var yv;
    pv = pv.bind((yv = rv.proxy_) != null ? yv : rv.target_);
  }
  return {
    value: He$1(
      (sv = (lv = tv.options_) == null ? void 0 : lv.name) != null ? sv : ev.toString(),
      pv,
      (uv = (cv = tv.options_) == null ? void 0 : cv.autoAction) != null ? uv : !1,
      // https://github.com/mobxjs/mobx/discussions/3140
      (dv = tv.options_) != null && dv.bound ? (hv = rv.proxy_) != null ? hv : rv.target_ : void 0
    ),
    // Non-configurable for classes
    // prevents accidental field redefinition in subclass
    configurable: ov ? rv.isPlainObject_ : !0,
    // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058
    enumerable: !1,
    // Non-obsevable, therefore non-writable
    // Also prevents rewriting in subclass constructor
    writable: !ov
  };
}
function Ba$3(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: xu$2,
    extend_: Ru$2,
    decorate_20223_: Fu$2
  };
}
function xu$2(rv, tv, ev, iv) {
  var ov;
  if (iv === rv.target_)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 2;
  if ((ov = this.options_) != null && ov.bound && (!xe$2(rv.target_, tv) || !Xt$3(rv.target_[tv])) && this.extend_(rv, tv, ev, !1) === null)
    return 0;
  if (Xt$3(ev.value))
    return 1;
  var av = Ha$1(rv, this, tv, ev, !1, !1);
  return Ae$2(iv, tv, av), 2;
}
function Ru$2(rv, tv, ev, iv) {
  var ov, av = Ha$1(rv, this, tv, ev, (ov = this.options_) == null ? void 0 : ov.bound);
  return rv.defineProperty_(tv, av, iv);
}
function Fu$2(rv, tv) {
  var ev, iv = tv.name, ov = tv.addInitializer;
  return Xt$3(rv) || (rv = bt$1(rv)), (ev = this.options_) != null && ev.bound && ov(function() {
    var av = this, sv = av[iv].bind(av);
    sv.isMobXFlow = !0, av[iv] = sv;
  }), rv;
}
function Du$2(rv, tv, ev, iv) {
  tv.annotationType_, iv.value;
}
function Ha$1(rv, tv, ev, iv, ov, av) {
  av === void 0 && (av = T$2.safeDescriptors), Du$2(rv, tv, ev, iv);
  var sv = iv.value;
  if (Xt$3(sv) || (sv = bt$1(sv)), ov) {
    var lv;
    sv = sv.bind((lv = rv.proxy_) != null ? lv : rv.target_), sv.isMobXFlow = !0;
  }
  return {
    value: sv,
    // Non-configurable for classes
    // prevents accidental field redefinition in subclass
    configurable: av ? rv.isPlainObject_ : !0,
    // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058
    enumerable: !1,
    // Non-obsevable, therefore non-writable
    // Also prevents rewriting in subclass constructor
    writable: !av
  };
}
function Tr$3(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: Iu$2,
    extend_: Lu$2,
    decorate_20223_: Pu$1
  };
}
function Iu$2(rv, tv, ev) {
  return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
}
function Lu$2(rv, tv, ev, iv) {
  return $u$1(rv, this, tv, ev), rv.defineComputedProperty_(tv, Be$2({}, this.options_, {
    get: ev.get,
    set: ev.set
  }), iv);
}
function Pu$1(rv, tv) {
  var ev = this, iv = tv.name, ov = tv.addInitializer;
  return ov(function() {
    var av = Ct$2(this)[I$2], sv = Be$2({}, ev.options_, {
      get: rv,
      context: this
    });
    sv.name || (sv.name = "ObservableObject." + iv.toString()), av.values_.set(iv, new ye$1(sv));
  }), function() {
    return this[I$2].getObservablePropValue_(iv);
  };
}
function $u$1(rv, tv, ev, iv) {
  tv.annotationType_, iv.get;
}
function ni$2(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: Uu$2,
    extend_: Mu$2,
    decorate_20223_: Vu$2
  };
}
function Uu$2(rv, tv, ev) {
  return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
}
function Mu$2(rv, tv, ev, iv) {
  var ov, av;
  return ju$2(rv, this), rv.defineObservableProperty_(tv, ev.value, (ov = (av = this.options_) == null ? void 0 : av.enhancer) != null ? ov : nt$3, iv);
}
function Vu$2(rv, tv) {
  var ev = this, iv = tv.kind, ov = tv.name, av = /* @__PURE__ */ new WeakSet();
  function sv(lv, uv) {
    var cv, dv, hv = Ct$2(lv)[I$2], pv = new Xe$2(uv, (cv = (dv = ev.options_) == null ? void 0 : dv.enhancer) != null ? cv : nt$3, "ObservableObject." + ov.toString(), !1);
    hv.values_.set(ov, pv), av.add(lv);
  }
  if (iv == "accessor")
    return {
      get: function() {
        return av.has(this) || sv(this, rv.get.call(this)), this[I$2].getObservablePropValue_(ov);
      },
      set: function(lv) {
        return av.has(this) || sv(this, lv), this[I$2].setObservablePropValue_(ov, lv);
      },
      init: function(lv) {
        return av.has(this) || sv(this, lv), lv;
      }
    };
}
function ju$2(rv, tv, ev, iv) {
  tv.annotationType_;
}
var Bu$2 = "true", Hu$2 = /* @__PURE__ */ qa$3();
function qa$3(rv) {
  return {
    annotationType_: Bu$2,
    options_: rv,
    make_: qu$2,
    extend_: zu$2,
    decorate_20223_: Gu$2
  };
}
function qu$2(rv, tv, ev, iv) {
  var ov, av;
  if (ev.get)
    return $e$2.make_(rv, tv, ev, iv);
  if (ev.set) {
    var sv = He$1(tv.toString(), ev.set);
    return iv === rv.target_ ? rv.defineProperty_(tv, {
      configurable: T$2.safeDescriptors ? rv.isPlainObject_ : !0,
      set: sv
    }) === null ? 0 : 2 : (Ae$2(iv, tv, {
      configurable: !0,
      set: sv
    }), 2);
  }
  if (iv !== rv.target_ && typeof ev.value == "function") {
    var lv;
    if (La$3(ev.value)) {
      var uv, cv = (uv = this.options_) != null && uv.autoBind ? bt$1.bound : bt$1;
      return cv.make_(rv, tv, ev, iv);
    }
    var dv = (lv = this.options_) != null && lv.autoBind ? Qt$2.bound : Qt$2;
    return dv.make_(rv, tv, ev, iv);
  }
  var hv = ((ov = this.options_) == null ? void 0 : ov.deep) === !1 ? K$2.ref : K$2;
  if (typeof ev.value == "function" && (av = this.options_) != null && av.autoBind) {
    var pv;
    ev.value = ev.value.bind((pv = rv.proxy_) != null ? pv : rv.target_);
  }
  return hv.make_(rv, tv, ev, iv);
}
function zu$2(rv, tv, ev, iv) {
  var ov, av;
  if (ev.get)
    return $e$2.extend_(rv, tv, ev, iv);
  if (ev.set)
    return rv.defineProperty_(tv, {
      configurable: T$2.safeDescriptors ? rv.isPlainObject_ : !0,
      set: He$1(tv.toString(), ev.set)
    }, iv);
  if (typeof ev.value == "function" && (ov = this.options_) != null && ov.autoBind) {
    var sv;
    ev.value = ev.value.bind((sv = rv.proxy_) != null ? sv : rv.target_);
  }
  var lv = ((av = this.options_) == null ? void 0 : av.deep) === !1 ? K$2.ref : K$2;
  return lv.extend_(rv, tv, ev, iv);
}
function Gu$2(rv, tv) {
  j$2("'" + this.annotationType_ + "' cannot be used as a decorator");
}
var Ku$2 = "observable", Wu$2 = "observable.ref", Ju$2 = "observable.shallow", Yu$2 = "observable.struct", za$2 = {
  deep: !0,
  name: void 0,
  defaultDecorator: void 0,
  proxy: !0
};
Object.freeze(za$2);
function kn$3(rv) {
  return rv || za$2;
}
var Yi$2 = /* @__PURE__ */ ni$2(Ku$2), Qu$2 = /* @__PURE__ */ ni$2(Wu$2, {
  enhancer: ti$3
}), Xu$2 = /* @__PURE__ */ ni$2(Ju$2, {
  enhancer: Nu$2
}), Zu$2 = /* @__PURE__ */ ni$2(Yu$2, {
  enhancer: Su$1
}), Ga$2 = /* @__PURE__ */ Oe$2(Yi$2);
function yn$2(rv) {
  return rv.deep === !0 ? nt$3 : rv.deep === !1 ? ti$3 : tc$2(rv.defaultDecorator);
}
function ec$3(rv) {
  var tv;
  return rv ? (tv = rv.defaultDecorator) != null ? tv : qa$3(rv) : void 0;
}
function tc$2(rv) {
  var tv, ev;
  return rv && (tv = (ev = rv.options_) == null ? void 0 : ev.enhancer) != null ? tv : nt$3;
}
function Ka$2(rv, tv, ev) {
  if (un$2(tv))
    return Yi$2.decorate_20223_(rv, tv);
  if (tt$2(tv)) {
    wt$3(rv, tv, Yi$2);
    return;
  }
  return fo$3(rv) ? rv : je$2(rv) ? K$2.object(rv, tv, ev) : Array.isArray(rv) ? K$2.array(rv, tv) : At$1(rv) ? K$2.map(rv, tv) : Te$1(rv) ? K$2.set(rv, tv) : typeof rv == "object" && rv !== null ? rv : K$2.box(rv, tv);
}
Fa$2(Ka$2, Ga$2);
var nc$3 = {
  box: function(rv, tv) {
    var ev = kn$3(tv);
    return new Xe$2(rv, yn$2(ev), ev.name, !0, ev.equals);
  },
  array: function(rv, tv) {
    var ev = kn$3(tv);
    return (T$2.useProxies === !1 || ev.proxy === !1 ? Yc$1 : Vc$1)(rv, yn$2(ev), ev.name);
  },
  map: function(rv, tv) {
    var ev = kn$3(tv);
    return new mo$3(rv, yn$2(ev), ev.name);
  },
  set: function(rv, tv) {
    var ev = kn$3(tv);
    return new go$2(rv, yn$2(ev), ev.name);
  },
  object: function(rv, tv, ev) {
    return ut$3(function() {
      return Cc$2(T$2.useProxies === !1 || (ev == null ? void 0 : ev.proxy) === !1 ? Ct$2({}, ev) : Pc$1({}, ev), rv, tv);
    });
  },
  ref: /* @__PURE__ */ Oe$2(Qu$2),
  shallow: /* @__PURE__ */ Oe$2(Xu$2),
  deep: Ga$2,
  struct: /* @__PURE__ */ Oe$2(Zu$2)
}, K$2 = /* @__PURE__ */ Fa$2(Ka$2, nc$3), Wa$2 = "computed", ic$3 = "computed.struct", Qi$2 = /* @__PURE__ */ Tr$3(Wa$2), rc$2 = /* @__PURE__ */ Tr$3(ic$3, {
  equals: _t$2.structural
}), $e$2 = function(rv, tv) {
  if (un$2(tv))
    return Qi$2.decorate_20223_(rv, tv);
  if (tt$2(tv))
    return wt$3(rv, tv, Qi$2);
  if (je$2(rv))
    return Oe$2(Tr$3(Wa$2, rv));
  var ev = je$2(tv) ? tv : {};
  return ev.get = rv, ev.name || (ev.name = rv.name || ""), new ye$1(ev);
};
Object.assign($e$2, Qi$2);
$e$2.struct = /* @__PURE__ */ Oe$2(rc$2);
var ls$2, us$2, In$2 = 0, sc$2 = 1, ac$2 = (ls$2 = (us$2 = /* @__PURE__ */ Dn$2(function() {
}, "name")) == null ? void 0 : us$2.configurable) != null ? ls$2 : !1, cs$2 = {
  value: "action",
  configurable: !0,
  writable: !1,
  enumerable: !1
};
function He$1(rv, tv, ev, iv) {
  ev === void 0 && (ev = !1);
  function ov() {
    return oc$2(rv, ev, tv, iv || this, arguments);
  }
  return ov.isMobxAction = !0, ov.toString = function() {
    return tv.toString();
  }, ac$2 && (cs$2.value = rv, Ae$2(ov, "name", cs$2)), ov;
}
function oc$2(rv, tv, ev, iv, ov) {
  var av = lc$2(rv, tv);
  try {
    return ev.apply(iv, ov);
  } catch (sv) {
    throw av.error_ = sv, sv;
  } finally {
    uc$1(av);
  }
}
function lc$2(rv, tv, ev, iv) {
  var ov = !1, av = 0, sv = T$2.trackingDerivation, lv = !tv || !sv;
  fe$2();
  var uv = T$2.allowStateChanges;
  lv && (ot$1(), uv = ii$2(!0));
  var cv = Cr$3(!0), dv = {
    runAsAction_: lv,
    prevDerivation_: sv,
    prevAllowStateChanges_: uv,
    prevAllowStateReads_: cv,
    notifySpy_: ov,
    startTime_: av,
    actionId_: sc$2++,
    parentActionId_: In$2
  };
  return In$2 = dv.actionId_, dv;
}
function uc$1(rv) {
  In$2 !== rv.actionId_ && j$2(30), In$2 = rv.parentActionId_, rv.error_ !== void 0 && (T$2.suppressReactionErrors = !0), ri$2(rv.prevAllowStateChanges_), Bt$3(rv.prevAllowStateReads_), he$2(), rv.runAsAction_ && Re$2(rv.prevDerivation_), T$2.suppressReactionErrors = !1;
}
function Ja$3(rv, tv) {
  var ev = ii$2(rv);
  try {
    return tv();
  } finally {
    ri$2(ev);
  }
}
function ii$2(rv) {
  var tv = T$2.allowStateChanges;
  return T$2.allowStateChanges = rv, tv;
}
function ri$2(rv) {
  T$2.allowStateChanges = rv;
}
var Xe$2 = /* @__PURE__ */ function(rv) {
  function tv(iv, ov, av, sv, lv) {
    var uv;
    return av === void 0 && (av = "ObservableValue"), lv === void 0 && (lv = _t$2.default), uv = rv.call(this, av) || this, uv.enhancer = void 0, uv.name_ = void 0, uv.equals = void 0, uv.hasUnreportedChange_ = !1, uv.interceptors_ = void 0, uv.changeListeners_ = void 0, uv.value_ = void 0, uv.dehancer = void 0, uv.enhancer = ov, uv.name_ = av, uv.equals = lv, uv.value_ = ov(iv, void 0, av), uv;
  }
  Ma$3(tv, rv);
  var ev = tv.prototype;
  return ev.dehanceValue = function(iv) {
    return this.dehancer !== void 0 ? this.dehancer(iv) : iv;
  }, ev.set = function(iv) {
    this.value_, iv = this.prepareNewValue_(iv), iv !== T$2.UNCHANGED && this.setNewValue_(iv);
  }, ev.prepareNewValue_ = function(iv) {
    if (ce$2(this)) {
      var ov = de$1(this, {
        object: this,
        type: we$2,
        newValue: iv
      });
      if (!ov)
        return T$2.UNCHANGED;
      iv = ov.newValue;
    }
    return iv = this.enhancer(iv, this.value_, this.name_), this.equals(this.value_, iv) ? T$2.UNCHANGED : iv;
  }, ev.setNewValue_ = function(iv) {
    var ov = this.value_;
    this.value_ = iv, this.reportChanged(), ge$1(this) && ve$3(this, {
      type: we$2,
      object: this,
      newValue: iv,
      oldValue: ov
    });
  }, ev.get = function() {
    return this.reportObserved(), this.dehanceValue(this.value_);
  }, ev.intercept_ = function(iv) {
    return dn$2(this, iv);
  }, ev.observe_ = function(iv, ov) {
    return ov && iv({
      observableKind: "value",
      debugObjectName: this.name_,
      object: this,
      type: we$2,
      newValue: this.value_,
      oldValue: void 0
    }), fn$2(this, iv);
  }, ev.raw = function() {
    return this.value_;
  }, ev.toJSON = function() {
    return this.get();
  }, ev.toString = function() {
    return this.name_ + "[" + this.value_ + "]";
  }, ev.valueOf = function() {
    return Ua$3(this.get());
  }, ev[Symbol.toPrimitive] = function() {
    return this.valueOf();
  }, tv;
}(ze$2), ye$1 = /* @__PURE__ */ function() {
  function rv(ev) {
    this.dependenciesState_ = V$2.NOT_TRACKING_, this.observing_ = [], this.newObserving_ = null, this.observers_ = /* @__PURE__ */ new Set(), this.runId_ = 0, this.lastAccessedBy_ = 0, this.lowestObserverState_ = V$2.UP_TO_DATE_, this.unboundDepsCount_ = 0, this.value_ = new Pn$3(null), this.name_ = void 0, this.triggeredBy_ = void 0, this.flags_ = 0, this.derivation = void 0, this.setter_ = void 0, this.isTracing_ = Ln$2.NONE, this.scope_ = void 0, this.equals_ = void 0, this.requiresReaction_ = void 0, this.keepAlive_ = void 0, this.onBOL = void 0, this.onBUOL = void 0, ev.get || j$2(31), this.derivation = ev.get, this.name_ = ev.name || "ComputedValue", ev.set && (this.setter_ = He$1("ComputedValue-setter", ev.set)), this.equals_ = ev.equals || (ev.compareStructural || ev.struct ? _t$2.structural : _t$2.default), this.scope_ = ev.context, this.requiresReaction_ = ev.requiresReaction, this.keepAlive_ = !!ev.keepAlive;
  }
  var tv = rv.prototype;
  return tv.onBecomeStale_ = function() {
    hc$1(this);
  }, tv.onBO = function() {
    this.onBOL && this.onBOL.forEach(function(ev) {
      return ev();
    });
  }, tv.onBUO = function() {
    this.onBUOL && this.onBUOL.forEach(function(ev) {
      return ev();
    });
  }, tv.get = function() {
    if (this.isComputing && j$2(32, this.name_, this.derivation), T$2.inBatch === 0 && // !globalState.trackingDerivatpion &&
    this.observers_.size === 0 && !this.keepAlive_)
      Xi$2(this) && (this.warnAboutUntrackedRead_(), fe$2(), this.value_ = this.computeValue_(!1), he$2());
    else if (to$2(this), Xi$2(this)) {
      var ev = T$2.trackingContext;
      this.keepAlive_ && !ev && (T$2.trackingContext = this), this.trackAndCompute() && fc$1(this), T$2.trackingContext = ev;
    }
    var iv = this.value_;
    if (On$3(iv))
      throw iv.cause;
    return iv;
  }, tv.set = function(ev) {
    if (this.setter_) {
      this.isRunningSetter && j$2(33, this.name_), this.isRunningSetter = !0;
      try {
        this.setter_.call(this.scope_, ev);
      } finally {
        this.isRunningSetter = !1;
      }
    } else
      j$2(34, this.name_);
  }, tv.trackAndCompute = function() {
    var ev = this.value_, iv = (
      /* see #1208 */
      this.dependenciesState_ === V$2.NOT_TRACKING_
    ), ov = this.computeValue_(!0), av = iv || On$3(ev) || On$3(ov) || !this.equals_(ev, ov);
    return av && (this.value_ = ov), av;
  }, tv.computeValue_ = function(ev) {
    this.isComputing = !0;
    var iv = ii$2(!1), ov;
    if (ev)
      ov = Ya$2(this, this.derivation, this.scope_);
    else if (T$2.disableErrorBoundaries === !0)
      ov = this.derivation.call(this.scope_);
    else
      try {
        ov = this.derivation.call(this.scope_);
      } catch (av) {
        ov = new Pn$3(av);
      }
    return ri$2(iv), this.isComputing = !1, ov;
  }, tv.suspend_ = function() {
    this.keepAlive_ || (Zi$2(this), this.value_ = void 0);
  }, tv.observe_ = function(ev, iv) {
    var ov = this, av = !0, sv = void 0;
    return oi$2(function() {
      var lv = ov.get();
      if (!av || iv) {
        var uv = ot$1();
        ev({
          observableKind: "computed",
          debugObjectName: ov.name_,
          type: we$2,
          object: ov,
          newValue: lv,
          oldValue: sv
        }), Re$2(uv);
      }
      av = !1, sv = lv;
    });
  }, tv.warnAboutUntrackedRead_ = function() {
  }, tv.toString = function() {
    return this.name_ + "[" + this.derivation.toString() + "]";
  }, tv.valueOf = function() {
    return Ua$3(this.get());
  }, tv[Symbol.toPrimitive] = function() {
    return this.valueOf();
  }, Ot$2(rv, [{
    key: "isComputing",
    get: function() {
      return se$2(this.flags_, rv.isComputingMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isComputingMask_, ev);
    }
  }, {
    key: "isRunningSetter",
    get: function() {
      return se$2(this.flags_, rv.isRunningSetterMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isRunningSetterMask_, ev);
    }
  }, {
    key: "isBeingObserved",
    get: function() {
      return se$2(this.flags_, rv.isBeingObservedMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isBeingObservedMask_, ev);
    }
  }, {
    key: "isPendingUnobservation",
    get: function() {
      return se$2(this.flags_, rv.isPendingUnobservationMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isPendingUnobservationMask_, ev);
    }
  }, {
    key: "diffValue",
    get: function() {
      return se$2(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.diffValueMask_, ev === 1);
    }
  }]);
}();
ye$1.isComputingMask_ = 1;
ye$1.isRunningSetterMask_ = 2;
ye$1.isBeingObservedMask_ = 4;
ye$1.isPendingUnobservationMask_ = 8;
ye$1.diffValueMask_ = 16;
var si$2 = /* @__PURE__ */ at$2("ComputedValue", ye$1), V$2;
(function(rv) {
  rv[rv.NOT_TRACKING_ = -1] = "NOT_TRACKING_", rv[rv.UP_TO_DATE_ = 0] = "UP_TO_DATE_", rv[rv.POSSIBLY_STALE_ = 1] = "POSSIBLY_STALE_", rv[rv.STALE_ = 2] = "STALE_";
})(V$2 || (V$2 = {}));
var Ln$2;
(function(rv) {
  rv[rv.NONE = 0] = "NONE", rv[rv.LOG = 1] = "LOG", rv[rv.BREAK = 2] = "BREAK";
})(Ln$2 || (Ln$2 = {}));
var Pn$3 = function(rv) {
  this.cause = void 0, this.cause = rv;
};
function On$3(rv) {
  return rv instanceof Pn$3;
}
function Xi$2(rv) {
  switch (rv.dependenciesState_) {
    case V$2.UP_TO_DATE_:
      return !1;
    case V$2.NOT_TRACKING_:
    case V$2.STALE_:
      return !0;
    case V$2.POSSIBLY_STALE_: {
      for (var tv = Cr$3(!0), ev = ot$1(), iv = rv.observing_, ov = iv.length, av = 0; av < ov; av++) {
        var sv = iv[av];
        if (si$2(sv)) {
          if (T$2.disableErrorBoundaries)
            sv.get();
          else
            try {
              sv.get();
            } catch {
              return Re$2(ev), Bt$3(tv), !0;
            }
          if (rv.dependenciesState_ === V$2.STALE_)
            return Re$2(ev), Bt$3(tv), !0;
        }
      }
      return Xa$3(rv), Re$2(ev), Bt$3(tv), !1;
    }
  }
}
function Ya$2(rv, tv, ev) {
  var iv = Cr$3(!0);
  Xa$3(rv), rv.newObserving_ = new Array(
    // Reserve constant space for initial dependencies, dynamic space otherwise.
    // See https://github.com/mobxjs/mobx/pull/3833
    rv.runId_ === 0 ? 100 : rv.observing_.length
  ), rv.unboundDepsCount_ = 0, rv.runId_ = ++T$2.runId;
  var ov = T$2.trackingDerivation;
  T$2.trackingDerivation = rv, T$2.inBatch++;
  var av;
  if (T$2.disableErrorBoundaries === !0)
    av = tv.call(ev);
  else
    try {
      av = tv.call(ev);
    } catch (sv) {
      av = new Pn$3(sv);
    }
  return T$2.inBatch--, T$2.trackingDerivation = ov, cc$1(rv), Bt$3(iv), av;
}
function cc$1(rv) {
  for (var tv = rv.observing_, ev = rv.observing_ = rv.newObserving_, iv = V$2.UP_TO_DATE_, ov = 0, av = rv.unboundDepsCount_, sv = 0; sv < av; sv++) {
    var lv = ev[sv];
    lv.diffValue === 0 && (lv.diffValue = 1, ov !== sv && (ev[ov] = lv), ov++), lv.dependenciesState_ > iv && (iv = lv.dependenciesState_);
  }
  for (ev.length = ov, rv.newObserving_ = null, av = tv.length; av--; ) {
    var uv = tv[av];
    uv.diffValue === 0 && Za$3(uv, rv), uv.diffValue = 0;
  }
  for (; ov--; ) {
    var cv = ev[ov];
    cv.diffValue === 1 && (cv.diffValue = 0, dc$2(cv, rv));
  }
  iv !== V$2.UP_TO_DATE_ && (rv.dependenciesState_ = iv, rv.onBecomeStale_());
}
function Zi$2(rv) {
  var tv = rv.observing_;
  rv.observing_ = [];
  for (var ev = tv.length; ev--; )
    Za$3(tv[ev], rv);
  rv.dependenciesState_ = V$2.NOT_TRACKING_;
}
function Qa$3(rv) {
  var tv = ot$1();
  try {
    return rv();
  } finally {
    Re$2(tv);
  }
}
function ot$1() {
  var rv = T$2.trackingDerivation;
  return T$2.trackingDerivation = null, rv;
}
function Re$2(rv) {
  T$2.trackingDerivation = rv;
}
function Cr$3(rv) {
  var tv = T$2.allowStateReads;
  return T$2.allowStateReads = rv, tv;
}
function Bt$3(rv) {
  T$2.allowStateReads = rv;
}
function Xa$3(rv) {
  if (rv.dependenciesState_ !== V$2.UP_TO_DATE_) {
    rv.dependenciesState_ = V$2.UP_TO_DATE_;
    for (var tv = rv.observing_, ev = tv.length; ev--; )
      tv[ev].lowestObserverState_ = V$2.UP_TO_DATE_;
  }
}
var Ai$2 = function() {
  this.version = 6, this.UNCHANGED = {}, this.trackingDerivation = null, this.trackingContext = null, this.runId = 0, this.mobxGuid = 0, this.inBatch = 0, this.pendingUnobservations = [], this.pendingReactions = [], this.isRunningReactions = !1, this.allowStateChanges = !1, this.allowStateReads = !0, this.enforceActions = !0, this.spyListeners = [], this.globalReactionErrorHandlers = [], this.computedRequiresReaction = !1, this.reactionRequiresObservable = !1, this.observableRequiresReaction = !1, this.disableErrorBoundaries = !1, this.suppressReactionErrors = !1, this.useProxies = !0, this.verifyProxies = !1, this.safeDescriptors = !0;
}, Oi$3 = !0, T$2 = /* @__PURE__ */ function() {
  var rv = /* @__PURE__ */ Ra$3();
  return rv.__mobxInstanceCount > 0 && !rv.__mobxGlobals && (Oi$3 = !1), rv.__mobxGlobals && rv.__mobxGlobals.version !== new Ai$2().version && (Oi$3 = !1), Oi$3 ? rv.__mobxGlobals ? (rv.__mobxInstanceCount += 1, rv.__mobxGlobals.UNCHANGED || (rv.__mobxGlobals.UNCHANGED = {}), rv.__mobxGlobals) : (rv.__mobxInstanceCount = 1, rv.__mobxGlobals = /* @__PURE__ */ new Ai$2()) : (setTimeout(function() {
    j$2(35);
  }, 1), new Ai$2());
}();
function dc$2(rv, tv) {
  rv.observers_.add(tv), rv.lowestObserverState_ > tv.dependenciesState_ && (rv.lowestObserverState_ = tv.dependenciesState_);
}
function Za$3(rv, tv) {
  rv.observers_.delete(tv), rv.observers_.size === 0 && eo$3(rv);
}
function eo$3(rv) {
  rv.isPendingUnobservation === !1 && (rv.isPendingUnobservation = !0, T$2.pendingUnobservations.push(rv));
}
function fe$2() {
  T$2.inBatch++;
}
function he$2() {
  if (--T$2.inBatch === 0) {
    io$3();
    for (var rv = T$2.pendingUnobservations, tv = 0; tv < rv.length; tv++) {
      var ev = rv[tv];
      ev.isPendingUnobservation = !1, ev.observers_.size === 0 && (ev.isBeingObserved && (ev.isBeingObserved = !1, ev.onBUO()), ev instanceof ye$1 && ev.suspend_());
    }
    T$2.pendingUnobservations = [];
  }
}
function to$2(rv) {
  var tv = T$2.trackingDerivation;
  return tv !== null ? (tv.runId_ !== rv.lastAccessedBy_ && (rv.lastAccessedBy_ = tv.runId_, tv.newObserving_[tv.unboundDepsCount_++] = rv, !rv.isBeingObserved && T$2.trackingContext && (rv.isBeingObserved = !0, rv.onBO())), rv.isBeingObserved) : (rv.observers_.size === 0 && T$2.inBatch > 0 && eo$3(rv), !1);
}
function no$2(rv) {
  rv.lowestObserverState_ !== V$2.STALE_ && (rv.lowestObserverState_ = V$2.STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === V$2.UP_TO_DATE_ && tv.onBecomeStale_(), tv.dependenciesState_ = V$2.STALE_;
  }));
}
function fc$1(rv) {
  rv.lowestObserverState_ !== V$2.STALE_ && (rv.lowestObserverState_ = V$2.STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === V$2.POSSIBLY_STALE_ ? tv.dependenciesState_ = V$2.STALE_ : tv.dependenciesState_ === V$2.UP_TO_DATE_ && (rv.lowestObserverState_ = V$2.UP_TO_DATE_);
  }));
}
function hc$1(rv) {
  rv.lowestObserverState_ === V$2.UP_TO_DATE_ && (rv.lowestObserverState_ = V$2.POSSIBLY_STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === V$2.UP_TO_DATE_ && (tv.dependenciesState_ = V$2.POSSIBLY_STALE_, tv.onBecomeStale_());
  }));
}
var Fe$1 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    ev === void 0 && (ev = "Reaction"), this.name_ = void 0, this.onInvalidate_ = void 0, this.errorHandler_ = void 0, this.requiresObservable_ = void 0, this.observing_ = [], this.newObserving_ = [], this.dependenciesState_ = V$2.NOT_TRACKING_, this.runId_ = 0, this.unboundDepsCount_ = 0, this.flags_ = 0, this.isTracing_ = Ln$2.NONE, this.name_ = ev, this.onInvalidate_ = iv, this.errorHandler_ = ov, this.requiresObservable_ = av;
  }
  var tv = rv.prototype;
  return tv.onBecomeStale_ = function() {
    this.schedule_();
  }, tv.schedule_ = function() {
    this.isScheduled || (this.isScheduled = !0, T$2.pendingReactions.push(this), io$3());
  }, tv.runReaction_ = function() {
    if (!this.isDisposed) {
      fe$2(), this.isScheduled = !1;
      var ev = T$2.trackingContext;
      if (T$2.trackingContext = this, Xi$2(this)) {
        this.isTrackPending = !0;
        try {
          this.onInvalidate_();
        } catch (iv) {
          this.reportExceptionInDerivation_(iv);
        }
      }
      T$2.trackingContext = ev, he$2();
    }
  }, tv.track = function(ev) {
    if (!this.isDisposed) {
      fe$2(), this.isRunning = !0;
      var iv = T$2.trackingContext;
      T$2.trackingContext = this;
      var ov = Ya$2(this, ev, void 0);
      T$2.trackingContext = iv, this.isRunning = !1, this.isTrackPending = !1, this.isDisposed && Zi$2(this), On$3(ov) && this.reportExceptionInDerivation_(ov.cause), he$2();
    }
  }, tv.reportExceptionInDerivation_ = function(ev) {
    var iv = this;
    if (this.errorHandler_) {
      this.errorHandler_(ev, this);
      return;
    }
    if (T$2.disableErrorBoundaries)
      throw ev;
    var ov = "[mobx] uncaught error in '" + this + "'";
    T$2.suppressReactionErrors || console.error(ov, ev), T$2.globalReactionErrorHandlers.forEach(function(av) {
      return av(ev, iv);
    });
  }, tv.dispose = function() {
    this.isDisposed || (this.isDisposed = !0, this.isRunning || (fe$2(), Zi$2(this), he$2()));
  }, tv.getDisposer_ = function(ev) {
    var iv = this, ov = function av() {
      iv.dispose(), ev == null || ev.removeEventListener == null || ev.removeEventListener("abort", av);
    };
    return ev == null || ev.addEventListener == null || ev.addEventListener("abort", ov), ov[I$2] = this, ov;
  }, tv.toString = function() {
    return "Reaction[" + this.name_ + "]";
  }, tv.trace = function(ev) {
  }, Ot$2(rv, [{
    key: "isDisposed",
    get: function() {
      return se$2(this.flags_, rv.isDisposedMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isDisposedMask_, ev);
    }
  }, {
    key: "isScheduled",
    get: function() {
      return se$2(this.flags_, rv.isScheduledMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isScheduledMask_, ev);
    }
  }, {
    key: "isTrackPending",
    get: function() {
      return se$2(this.flags_, rv.isTrackPendingMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isTrackPendingMask_, ev);
    }
  }, {
    key: "isRunning",
    get: function() {
      return se$2(this.flags_, rv.isRunningMask_);
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.isRunningMask_, ev);
    }
  }, {
    key: "diffValue",
    get: function() {
      return se$2(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(ev) {
      this.flags_ = ae$1(this.flags_, rv.diffValueMask_, ev === 1);
    }
  }]);
}();
Fe$1.isDisposedMask_ = 1;
Fe$1.isScheduledMask_ = 2;
Fe$1.isTrackPendingMask_ = 4;
Fe$1.isRunningMask_ = 8;
Fe$1.diffValueMask_ = 16;
var pc$1 = 100, mc$1 = function(rv) {
  return rv();
};
function io$3() {
  T$2.inBatch > 0 || T$2.isRunningReactions || mc$1(gc$1);
}
function gc$1() {
  T$2.isRunningReactions = !0;
  for (var rv = T$2.pendingReactions, tv = 0; rv.length > 0; ) {
    ++tv === pc$1 && (console.error("[mobx] cycle in reaction: " + rv[0]), rv.splice(0));
    for (var ev = rv.splice(0), iv = 0, ov = ev.length; iv < ov; iv++)
      ev[iv].runReaction_();
  }
  T$2.isRunningReactions = !1;
}
var $n$2 = /* @__PURE__ */ at$2("Reaction", Fe$1);
function Ht$3() {
  return !1;
}
function vc$1(rv) {
  return console.warn("[mobx.spy] Is a no-op in production builds"), function() {
  };
}
var ro$3 = "action", kc = "action.bound", so$3 = "autoAction", yc$2 = "autoAction.bound", _c$1 = "<unnamed action>", er$1 = /* @__PURE__ */ cn$2(ro$3), bc$2 = /* @__PURE__ */ cn$2(kc, {
  bound: !0
}), tr$1 = /* @__PURE__ */ cn$2(so$3, {
  autoAction: !0
}), Nc$1 = /* @__PURE__ */ cn$2(yc$2, {
  autoAction: !0,
  bound: !0
});
function ao$3(rv) {
  var tv = function(ev, iv) {
    if (ke$2(ev))
      return He$1(ev.name || _c$1, ev, rv);
    if (ke$2(iv))
      return He$1(ev, iv, rv);
    if (un$2(iv))
      return (rv ? tr$1 : er$1).decorate_20223_(ev, iv);
    if (tt$2(iv))
      return wt$3(ev, iv, rv ? tr$1 : er$1);
    if (tt$2(ev))
      return Oe$2(cn$2(rv ? so$3 : ro$3, {
        name: ev,
        autoAction: rv
      }));
  };
  return tv;
}
var re$2 = /* @__PURE__ */ ao$3(!1);
Object.assign(re$2, er$1);
var Qt$2 = /* @__PURE__ */ ao$3(!0);
Object.assign(Qt$2, tr$1);
re$2.bound = /* @__PURE__ */ Oe$2(bc$2);
Qt$2.bound = /* @__PURE__ */ Oe$2(Nc$1);
function ai$2(rv) {
  return ke$2(rv) && rv.isMobxAction === !0;
}
function oi$2(rv, tv) {
  var ev, iv, ov, av;
  tv === void 0 && (tv = Or$2);
  var sv = (ev = (iv = tv) == null ? void 0 : iv.name) != null ? ev : "Autorun", lv = !tv.scheduler && !tv.delay, uv;
  if (lv)
    uv = new Fe$1(sv, function() {
      this.track(hv);
    }, tv.onError, tv.requiresObservable);
  else {
    var cv = oo$3(tv), dv = !1;
    uv = new Fe$1(sv, function() {
      dv || (dv = !0, cv(function() {
        dv = !1, uv.isDisposed || uv.track(hv);
      }));
    }, tv.onError, tv.requiresObservable);
  }
  function hv() {
    rv(uv);
  }
  return (ov = tv) != null && (ov = ov.signal) != null && ov.aborted || uv.schedule_(), uv.getDisposer_((av = tv) == null ? void 0 : av.signal);
}
var Sc$2 = function(rv) {
  return rv();
};
function oo$3(rv) {
  return rv.scheduler ? rv.scheduler : rv.delay ? function(tv) {
    return setTimeout(tv, rv.delay);
  } : Sc$2;
}
var Oc$1 = "onBO", wc$1 = "onBUO";
function Tc$1(rv, tv, ev) {
  return uo$3(Oc$1, rv, tv, ev);
}
function lo$3(rv, tv, ev) {
  return uo$3(wc$1, rv, tv, ev);
}
function uo$3(rv, tv, ev, iv) {
  var ov = nr$2(tv), av = ke$2(iv) ? iv : ev, sv = rv + "L";
  return ov[sv] ? ov[sv].add(av) : ov[sv] = /* @__PURE__ */ new Set([av]), function() {
    var lv = ov[sv];
    lv && (lv.delete(av), lv.size === 0 && delete ov[sv]);
  };
}
function Cc$2(rv, tv, ev, iv) {
  var ov = fu$1(tv);
  return ut$3(function() {
    var av = Ct$2(rv, iv)[I$2];
    ei$3(ov).forEach(function(sv) {
      av.extend_(
        sv,
        ov[sv],
        // must pass "undefined" for { key: undefined }
        ev && sv in ev ? ev[sv] : !0
      );
    });
  }), rv;
}
var xc$1 = 0;
function co$3() {
  this.message = "FLOW_CANCELLED";
}
co$3.prototype = /* @__PURE__ */ Object.create(Error.prototype);
var wi$3 = /* @__PURE__ */ Ba$3("flow"), Rc$1 = /* @__PURE__ */ Ba$3("flow.bound", {
  bound: !0
}), bt$1 = /* @__PURE__ */ Object.assign(function(rv, tv) {
  if (un$2(tv))
    return wi$3.decorate_20223_(rv, tv);
  if (tt$2(tv))
    return wt$3(rv, tv, wi$3);
  var ev = rv, iv = ev.name || "<unnamed flow>", ov = function() {
    var av = this, sv = arguments, lv = ++xc$1, uv = re$2(iv + " - runid: " + lv + " - init", ev).apply(av, sv), cv, dv = void 0, hv = new Promise(function(pv, yv) {
      var Sv = 0;
      cv = yv;
      function _v(xv) {
        dv = void 0;
        var Cv;
        try {
          Cv = re$2(iv + " - runid: " + lv + " - yield " + Sv++, uv.next).call(uv, xv);
        } catch (Av) {
          return yv(Av);
        }
        wv(Cv);
      }
      function Ev(xv) {
        dv = void 0;
        var Cv;
        try {
          Cv = re$2(iv + " - runid: " + lv + " - yield " + Sv++, uv.throw).call(uv, xv);
        } catch (Av) {
          return yv(Av);
        }
        wv(Cv);
      }
      function wv(xv) {
        if (ke$2(xv == null ? void 0 : xv.then)) {
          xv.then(wv, yv);
          return;
        }
        return xv.done ? pv(xv.value) : (dv = Promise.resolve(xv.value), dv.then(_v, Ev));
      }
      _v(void 0);
    });
    return hv.cancel = re$2(iv + " - runid: " + lv + " - cancel", function() {
      try {
        dv && ds$2(dv);
        var pv = uv.return(void 0), yv = Promise.resolve(pv.value);
        yv.then(vt$2, vt$2), ds$2(yv), cv(new co$3());
      } catch (Sv) {
        cv(Sv);
      }
    }), hv;
  };
  return ov.isMobXFlow = !0, ov;
}, wi$3);
bt$1.bound = /* @__PURE__ */ Oe$2(Rc$1);
function ds$2(rv) {
  ke$2(rv.cancel) && rv.cancel();
}
function Xt$3(rv) {
  return (rv == null ? void 0 : rv.isMobXFlow) === !0;
}
function Fc$1(rv, tv) {
  return rv ? ui$3(rv) || !!rv[I$2] || wr$2(rv) || $n$2(rv) || si$2(rv) : !1;
}
function fo$3(rv) {
  return Fc$1(rv);
}
function Ce$1(rv, tv) {
  tv === void 0 && (tv = void 0), fe$2();
  try {
    return rv.apply(tv);
  } finally {
    he$2();
  }
}
function Dc$1(rv, tv, ev) {
  return arguments.length === 1 || tv && typeof tv == "object" ? Ic$1(rv, tv) : ho$3(rv, tv, {});
}
function ho$3(rv, tv, ev) {
  var iv;
  if (typeof ev.timeout == "number") {
    var ov = new Error("WHEN_TIMEOUT");
    iv = setTimeout(function() {
      if (!sv[I$2].isDisposed)
        if (sv(), ev.onError)
          ev.onError(ov);
        else
          throw ov;
    }, ev.timeout);
  }
  ev.name = "When";
  var av = He$1("When-effect", tv), sv = oi$2(function(lv) {
    var uv = Ja$3(!1, rv);
    uv && (lv.dispose(), iv && clearTimeout(iv), av());
  }, ev);
  return sv;
}
function Ic$1(rv, tv) {
  var ev;
  if (tv != null && (ev = tv.signal) != null && ev.aborted)
    return Object.assign(Promise.reject(new Error("WHEN_ABORTED")), {
      cancel: function() {
        return null;
      }
    });
  var iv, ov, av = new Promise(function(sv, lv) {
    var uv, cv = ho$3(rv, sv, Be$2({}, tv, {
      onError: lv
    }));
    iv = function() {
      cv(), lv(new Error("WHEN_CANCELLED"));
    }, ov = function() {
      cv(), lv(new Error("WHEN_ABORTED"));
    }, tv == null || (uv = tv.signal) == null || uv.addEventListener == null || uv.addEventListener("abort", ov);
  }).finally(function() {
    var sv;
    return tv == null || (sv = tv.signal) == null || sv.removeEventListener == null ? void 0 : sv.removeEventListener("abort", ov);
  });
  return av.cancel = iv, av;
}
function dt$2(rv) {
  return rv[I$2];
}
var Lc$1 = {
  has: function(rv, tv) {
    return dt$2(rv).has_(tv);
  },
  get: function(rv, tv) {
    return dt$2(rv).get_(tv);
  },
  set: function(rv, tv, ev) {
    var iv;
    return tt$2(tv) ? (iv = dt$2(rv).set_(tv, ev, !0)) != null ? iv : !0 : !1;
  },
  deleteProperty: function(rv, tv) {
    var ev;
    return tt$2(tv) ? (ev = dt$2(rv).delete_(tv, !0)) != null ? ev : !0 : !1;
  },
  defineProperty: function(rv, tv, ev) {
    var iv;
    return (iv = dt$2(rv).defineProperty_(tv, ev)) != null ? iv : !0;
  },
  ownKeys: function(rv) {
    return dt$2(rv).ownKeys_();
  },
  preventExtensions: function(rv) {
    j$2(13);
  }
};
function Pc$1(rv, tv) {
  var ev, iv;
  return Da$3(), rv = Ct$2(rv, tv), (iv = (ev = rv[I$2]).proxy_) != null ? iv : ev.proxy_ = new Proxy(rv, Lc$1);
}
function ce$2(rv) {
  return rv.interceptors_ !== void 0 && rv.interceptors_.length > 0;
}
function dn$2(rv, tv) {
  var ev = rv.interceptors_ || (rv.interceptors_ = []);
  return ev.push(tv), Ia$3(function() {
    var iv = ev.indexOf(tv);
    iv !== -1 && ev.splice(iv, 1);
  });
}
function de$1(rv, tv) {
  var ev = ot$1();
  try {
    for (var iv = [].concat(rv.interceptors_ || []), ov = 0, av = iv.length; ov < av && (tv = iv[ov](tv), tv && !tv.type && j$2(14), !!tv); ov++)
      ;
    return tv;
  } finally {
    Re$2(ev);
  }
}
function ge$1(rv) {
  return rv.changeListeners_ !== void 0 && rv.changeListeners_.length > 0;
}
function fn$2(rv, tv) {
  var ev = rv.changeListeners_ || (rv.changeListeners_ = []);
  return ev.push(tv), Ia$3(function() {
    var iv = ev.indexOf(tv);
    iv !== -1 && ev.splice(iv, 1);
  });
}
function ve$3(rv, tv) {
  var ev = ot$1(), iv = rv.changeListeners_;
  if (iv) {
    iv = iv.slice();
    for (var ov = 0, av = iv.length; ov < av; ov++)
      iv[ov](tv);
    Re$2(ev);
  }
}
function $c$2(rv, tv, ev) {
  return ut$3(function() {
    var iv, ov = Ct$2(rv, ev)[I$2];
    (iv = tv) != null || (tv = vu(rv)), ei$3(tv).forEach(function(av) {
      return ov.make_(av, tv[av]);
    });
  }), rv;
}
var fs$2 = "splice", we$2 = "update", Uc$1 = 1e4, Mc$2 = {
  get: function(rv, tv) {
    var ev = rv[I$2];
    return tv === I$2 ? ev : tv === "length" ? ev.getArrayLength_() : typeof tv == "string" && !isNaN(tv) ? ev.get_(parseInt(tv)) : xe$2(Un$1, tv) ? Un$1[tv] : rv[tv];
  },
  set: function(rv, tv, ev) {
    var iv = rv[I$2];
    return tv === "length" && iv.setArrayLength_(ev), typeof tv == "symbol" || isNaN(tv) ? rv[tv] = ev : iv.set_(parseInt(tv), ev), !0;
  },
  preventExtensions: function() {
    j$2(15);
  }
}, xr$2 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    ev === void 0 && (ev = "ObservableArray"), this.owned_ = void 0, this.legacyMode_ = void 0, this.atom_ = void 0, this.values_ = [], this.interceptors_ = void 0, this.changeListeners_ = void 0, this.enhancer_ = void 0, this.dehancer = void 0, this.proxy_ = void 0, this.lastKnownLength_ = 0, this.owned_ = ov, this.legacyMode_ = av, this.atom_ = new ze$2(ev), this.enhancer_ = function(sv, lv) {
      return iv(sv, lv, "ObservableArray[..]");
    };
  }
  var tv = rv.prototype;
  return tv.dehanceValue_ = function(ev) {
    return this.dehancer !== void 0 ? this.dehancer(ev) : ev;
  }, tv.dehanceValues_ = function(ev) {
    return this.dehancer !== void 0 && ev.length > 0 ? ev.map(this.dehancer) : ev;
  }, tv.intercept_ = function(ev) {
    return dn$2(this, ev);
  }, tv.observe_ = function(ev, iv) {
    return iv === void 0 && (iv = !1), iv && ev({
      observableKind: "array",
      object: this.proxy_,
      debugObjectName: this.atom_.name_,
      type: "splice",
      index: 0,
      added: this.values_.slice(),
      addedCount: this.values_.length,
      removed: [],
      removedCount: 0
    }), fn$2(this, ev);
  }, tv.getArrayLength_ = function() {
    return this.atom_.reportObserved(), this.values_.length;
  }, tv.setArrayLength_ = function(ev) {
    (typeof ev != "number" || isNaN(ev) || ev < 0) && j$2("Out of range: " + ev);
    var iv = this.values_.length;
    if (ev !== iv)
      if (ev > iv) {
        for (var ov = new Array(ev - iv), av = 0; av < ev - iv; av++)
          ov[av] = void 0;
        this.spliceWithArray_(iv, 0, ov);
      } else
        this.spliceWithArray_(ev, iv - ev);
  }, tv.updateArrayLength_ = function(ev, iv) {
    ev !== this.lastKnownLength_ && j$2(16), this.lastKnownLength_ += iv, this.legacyMode_ && iv > 0 && _o$3(ev + iv + 1);
  }, tv.spliceWithArray_ = function(ev, iv, ov) {
    var av = this;
    this.atom_;
    var sv = this.values_.length;
    if (ev === void 0 ? ev = 0 : ev > sv ? ev = sv : ev < 0 && (ev = Math.max(0, sv + ev)), arguments.length === 1 ? iv = sv - ev : iv == null ? iv = 0 : iv = Math.max(0, Math.min(iv, sv - ev)), ov === void 0 && (ov = Wi$2), ce$2(this)) {
      var lv = de$1(this, {
        object: this.proxy_,
        type: fs$2,
        index: ev,
        removedCount: iv,
        added: ov
      });
      if (!lv)
        return Wi$2;
      iv = lv.removedCount, ov = lv.added;
    }
    if (ov = ov.length === 0 ? ov : ov.map(function(dv) {
      return av.enhancer_(dv, void 0);
    }), this.legacyMode_) {
      var uv = ov.length - iv;
      this.updateArrayLength_(sv, uv);
    }
    var cv = this.spliceItemsIntoValues_(ev, iv, ov);
    return (iv !== 0 || ov.length !== 0) && this.notifyArraySplice_(ev, ov, cv), this.dehanceValues_(cv);
  }, tv.spliceItemsIntoValues_ = function(ev, iv, ov) {
    if (ov.length < Uc$1) {
      var av;
      return (av = this.values_).splice.apply(av, [ev, iv].concat(ov));
    } else {
      var sv = this.values_.slice(ev, ev + iv), lv = this.values_.slice(ev + iv);
      this.values_.length += ov.length - iv;
      for (var uv = 0; uv < ov.length; uv++)
        this.values_[ev + uv] = ov[uv];
      for (var cv = 0; cv < lv.length; cv++)
        this.values_[ev + ov.length + cv] = lv[cv];
      return sv;
    }
  }, tv.notifyArrayChildUpdate_ = function(ev, iv, ov) {
    var av = !this.owned_ && Ht$3(), sv = ge$1(this), lv = sv || av ? {
      observableKind: "array",
      object: this.proxy_,
      type: we$2,
      debugObjectName: this.atom_.name_,
      index: ev,
      newValue: iv,
      oldValue: ov
    } : null;
    this.atom_.reportChanged(), sv && ve$3(this, lv);
  }, tv.notifyArraySplice_ = function(ev, iv, ov) {
    var av = !this.owned_ && Ht$3(), sv = ge$1(this), lv = sv || av ? {
      observableKind: "array",
      object: this.proxy_,
      debugObjectName: this.atom_.name_,
      type: fs$2,
      index: ev,
      removed: ov,
      added: iv,
      removedCount: ov.length,
      addedCount: iv.length
    } : null;
    this.atom_.reportChanged(), sv && ve$3(this, lv);
  }, tv.get_ = function(ev) {
    if (this.legacyMode_ && ev >= this.values_.length) {
      console.warn("[mobx] Out of bounds read: " + ev);
      return;
    }
    return this.atom_.reportObserved(), this.dehanceValue_(this.values_[ev]);
  }, tv.set_ = function(ev, iv) {
    var ov = this.values_;
    if (this.legacyMode_ && ev > ov.length && j$2(17, ev, ov.length), ev < ov.length) {
      this.atom_;
      var av = ov[ev];
      if (ce$2(this)) {
        var sv = de$1(this, {
          type: we$2,
          object: this.proxy_,
          // since "this" is the real array we need to pass its proxy
          index: ev,
          newValue: iv
        });
        if (!sv)
          return;
        iv = sv.newValue;
      }
      iv = this.enhancer_(iv, av);
      var lv = iv !== av;
      lv && (ov[ev] = iv, this.notifyArrayChildUpdate_(ev, iv, av));
    } else {
      for (var uv = new Array(ev + 1 - ov.length), cv = 0; cv < uv.length - 1; cv++)
        uv[cv] = void 0;
      uv[uv.length - 1] = iv, this.spliceWithArray_(ov.length, 0, uv);
    }
  }, rv;
}();
function Vc$1(rv, tv, ev, iv) {
  return ev === void 0 && (ev = "ObservableArray"), iv === void 0 && (iv = !1), Da$3(), ut$3(function() {
    var ov = new xr$2(ev, tv, iv, !1);
    Pa$3(ov.values_, I$2, ov);
    var av = new Proxy(ov.values_, Mc$2);
    return ov.proxy_ = av, rv && rv.length && ov.spliceWithArray_(0, 0, rv), av;
  });
}
var Un$1 = {
  clear: function() {
    return this.splice(0);
  },
  replace: function(rv) {
    var tv = this[I$2];
    return tv.spliceWithArray_(0, tv.values_.length, rv);
  },
  // Used by JSON.stringify
  toJSON: function() {
    return this.slice();
  },
  /*
   * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)
   * since these functions alter the inner structure of the array, the have side effects.
   * Because the have side effects, they should not be used in computed function,
   * and for that reason the do not call dependencyState.notifyObserved
   */
  splice: function(rv, tv) {
    for (var ev = arguments.length, iv = new Array(ev > 2 ? ev - 2 : 0), ov = 2; ov < ev; ov++)
      iv[ov - 2] = arguments[ov];
    var av = this[I$2];
    switch (arguments.length) {
      case 0:
        return [];
      case 1:
        return av.spliceWithArray_(rv);
      case 2:
        return av.spliceWithArray_(rv, tv);
    }
    return av.spliceWithArray_(rv, tv, iv);
  },
  spliceWithArray: function(rv, tv, ev) {
    return this[I$2].spliceWithArray_(rv, tv, ev);
  },
  push: function() {
    for (var rv = this[I$2], tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return rv.spliceWithArray_(rv.values_.length, 0, ev), rv.values_.length;
  },
  pop: function() {
    return this.splice(Math.max(this[I$2].values_.length - 1, 0), 1)[0];
  },
  shift: function() {
    return this.splice(0, 1)[0];
  },
  unshift: function() {
    for (var rv = this[I$2], tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return rv.spliceWithArray_(0, 0, ev), rv.values_.length;
  },
  reverse: function() {
    return T$2.trackingDerivation && j$2(37, "reverse"), this.replace(this.slice().reverse()), this;
  },
  sort: function() {
    T$2.trackingDerivation && j$2(37, "sort");
    var rv = this.slice();
    return rv.sort.apply(rv, arguments), this.replace(rv), this;
  },
  remove: function(rv) {
    var tv = this[I$2], ev = tv.dehanceValues_(tv.values_).indexOf(rv);
    return ev > -1 ? (this.splice(ev, 1), !0) : !1;
  }
};
z$2("at", le$2);
z$2("concat", le$2);
z$2("flat", le$2);
z$2("includes", le$2);
z$2("indexOf", le$2);
z$2("join", le$2);
z$2("lastIndexOf", le$2);
z$2("slice", le$2);
z$2("toString", le$2);
z$2("toLocaleString", le$2);
z$2("toSorted", le$2);
z$2("toSpliced", le$2);
z$2("with", le$2);
z$2("every", _e$2);
z$2("filter", _e$2);
z$2("find", _e$2);
z$2("findIndex", _e$2);
z$2("findLast", _e$2);
z$2("findLastIndex", _e$2);
z$2("flatMap", _e$2);
z$2("forEach", _e$2);
z$2("map", _e$2);
z$2("some", _e$2);
z$2("toReversed", _e$2);
z$2("reduce", po$2);
z$2("reduceRight", po$2);
function z$2(rv, tv) {
  typeof Array.prototype[rv] == "function" && (Un$1[rv] = tv(rv));
}
function le$2(rv) {
  return function() {
    var tv = this[I$2];
    tv.atom_.reportObserved();
    var ev = tv.dehanceValues_(tv.values_);
    return ev[rv].apply(ev, arguments);
  };
}
function _e$2(rv) {
  return function(tv, ev) {
    var iv = this, ov = this[I$2];
    ov.atom_.reportObserved();
    var av = ov.dehanceValues_(ov.values_);
    return av[rv](function(sv, lv) {
      return tv.call(ev, sv, lv, iv);
    });
  };
}
function po$2(rv) {
  return function() {
    var tv = this, ev = this[I$2];
    ev.atom_.reportObserved();
    var iv = ev.dehanceValues_(ev.values_), ov = arguments[0];
    return arguments[0] = function(av, sv, lv) {
      return ov(av, sv, lv, tv);
    }, iv[rv].apply(iv, arguments);
  };
}
var jc$2 = /* @__PURE__ */ at$2("ObservableArrayAdministration", xr$2);
function li$3(rv) {
  return Xn$3(rv) && jc$2(rv[I$2]);
}
var Bc$1 = {}, Ue$2 = "add", Mn$2 = "delete", mo$3 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov) {
    var av = this;
    iv === void 0 && (iv = nt$3), ov === void 0 && (ov = "ObservableMap"), this.enhancer_ = void 0, this.name_ = void 0, this[I$2] = Bc$1, this.data_ = void 0, this.hasMap_ = void 0, this.keysAtom_ = void 0, this.interceptors_ = void 0, this.changeListeners_ = void 0, this.dehancer = void 0, this.enhancer_ = iv, this.name_ = ov, ke$2(Map) || j$2(18), ut$3(function() {
      av.keysAtom_ = Va$2("ObservableMap.keys()"), av.data_ = /* @__PURE__ */ new Map(), av.hasMap_ = /* @__PURE__ */ new Map(), ev && av.merge(ev);
    });
  }
  var tv = rv.prototype;
  return tv.has_ = function(ev) {
    return this.data_.has(ev);
  }, tv.has = function(ev) {
    var iv = this;
    if (!T$2.trackingDerivation)
      return this.has_(ev);
    var ov = this.hasMap_.get(ev);
    if (!ov) {
      var av = ov = new Xe$2(this.has_(ev), ti$3, "ObservableMap.key?", !1);
      this.hasMap_.set(ev, av), lo$3(av, function() {
        return iv.hasMap_.delete(ev);
      });
    }
    return ov.get();
  }, tv.set = function(ev, iv) {
    var ov = this.has_(ev);
    if (ce$2(this)) {
      var av = de$1(this, {
        type: ov ? we$2 : Ue$2,
        object: this,
        newValue: iv,
        name: ev
      });
      if (!av)
        return this;
      iv = av.newValue;
    }
    return ov ? this.updateValue_(ev, iv) : this.addValue_(ev, iv), this;
  }, tv.delete = function(ev) {
    var iv = this;
    if (this.keysAtom_, ce$2(this)) {
      var ov = de$1(this, {
        type: Mn$2,
        object: this,
        name: ev
      });
      if (!ov)
        return !1;
    }
    if (this.has_(ev)) {
      var av = Ht$3(), sv = ge$1(this), lv = sv || av ? {
        observableKind: "map",
        debugObjectName: this.name_,
        type: Mn$2,
        object: this,
        oldValue: this.data_.get(ev).value_,
        name: ev
      } : null;
      return Ce$1(function() {
        var uv;
        iv.keysAtom_.reportChanged(), (uv = iv.hasMap_.get(ev)) == null || uv.setNewValue_(!1);
        var cv = iv.data_.get(ev);
        cv.setNewValue_(void 0), iv.data_.delete(ev);
      }), sv && ve$3(this, lv), !0;
    }
    return !1;
  }, tv.updateValue_ = function(ev, iv) {
    var ov = this.data_.get(ev);
    if (iv = ov.prepareNewValue_(iv), iv !== T$2.UNCHANGED) {
      var av = Ht$3(), sv = ge$1(this), lv = sv || av ? {
        observableKind: "map",
        debugObjectName: this.name_,
        type: we$2,
        object: this,
        oldValue: ov.value_,
        name: ev,
        newValue: iv
      } : null;
      ov.setNewValue_(iv), sv && ve$3(this, lv);
    }
  }, tv.addValue_ = function(ev, iv) {
    var ov = this;
    this.keysAtom_, Ce$1(function() {
      var uv, cv = new Xe$2(iv, ov.enhancer_, "ObservableMap.key", !1);
      ov.data_.set(ev, cv), iv = cv.value_, (uv = ov.hasMap_.get(ev)) == null || uv.setNewValue_(!0), ov.keysAtom_.reportChanged();
    });
    var av = Ht$3(), sv = ge$1(this), lv = sv || av ? {
      observableKind: "map",
      debugObjectName: this.name_,
      type: Ue$2,
      object: this,
      name: ev,
      newValue: iv
    } : null;
    sv && ve$3(this, lv);
  }, tv.get = function(ev) {
    return this.has(ev) ? this.dehanceValue_(this.data_.get(ev).get()) : this.dehanceValue_(void 0);
  }, tv.dehanceValue_ = function(ev) {
    return this.dehancer !== void 0 ? this.dehancer(ev) : ev;
  }, tv.keys = function() {
    return this.keysAtom_.reportObserved(), this.data_.keys();
  }, tv.values = function() {
    var ev = this, iv = this.keys();
    return Zt$2({
      next: function() {
        var ov = iv.next(), av = ov.done, sv = ov.value;
        return {
          done: av,
          value: av ? void 0 : ev.get(sv)
        };
      }
    });
  }, tv.entries = function() {
    var ev = this, iv = this.keys();
    return Zt$2({
      next: function() {
        var ov = iv.next(), av = ov.done, sv = ov.value;
        return {
          done: av,
          value: av ? void 0 : [sv, ev.get(sv)]
        };
      }
    });
  }, tv[Symbol.iterator] = function() {
    return this.entries();
  }, tv.forEach = function(ev, iv) {
    for (var ov = kt$2(this), av; !(av = ov()).done; ) {
      var sv = av.value, lv = sv[0], uv = sv[1];
      ev.call(iv, uv, lv, this);
    }
  }, tv.merge = function(ev) {
    var iv = this;
    return lt$1(ev) && (ev = new Map(ev)), Ce$1(function() {
      je$2(ev) ? du$1(ev).forEach(function(ov) {
        return iv.set(ov, ev[ov]);
      }) : Array.isArray(ev) ? ev.forEach(function(ov) {
        var av = ov[0], sv = ov[1];
        return iv.set(av, sv);
      }) : At$1(ev) ? (cu$1(ev) || j$2(19, ev), ev.forEach(function(ov, av) {
        return iv.set(av, ov);
      })) : ev != null && j$2(20, ev);
    }), this;
  }, tv.clear = function() {
    var ev = this;
    Ce$1(function() {
      Qa$3(function() {
        for (var iv = kt$2(ev.keys()), ov; !(ov = iv()).done; ) {
          var av = ov.value;
          ev.delete(av);
        }
      });
    });
  }, tv.replace = function(ev) {
    var iv = this;
    return Ce$1(function() {
      for (var ov = Hc$1(ev), av = /* @__PURE__ */ new Map(), sv = !1, lv = kt$2(iv.data_.keys()), uv; !(uv = lv()).done; ) {
        var cv = uv.value;
        if (!ov.has(cv)) {
          var dv = iv.delete(cv);
          if (dv)
            sv = !0;
          else {
            var hv = iv.data_.get(cv);
            av.set(cv, hv);
          }
        }
      }
      for (var pv = kt$2(ov.entries()), yv; !(yv = pv()).done; ) {
        var Sv = yv.value, _v = Sv[0], Ev = Sv[1], wv = iv.data_.has(_v);
        if (iv.set(_v, Ev), iv.data_.has(_v)) {
          var xv = iv.data_.get(_v);
          av.set(_v, xv), wv || (sv = !0);
        }
      }
      if (!sv)
        if (iv.data_.size !== av.size)
          iv.keysAtom_.reportChanged();
        else
          for (var Cv = iv.data_.keys(), Av = av.keys(), Ov = Cv.next(), Lv = Av.next(); !Ov.done; ) {
            if (Ov.value !== Lv.value) {
              iv.keysAtom_.reportChanged();
              break;
            }
            Ov = Cv.next(), Lv = Av.next();
          }
      iv.data_ = av;
    }), this;
  }, tv.toString = function() {
    return "[object ObservableMap]";
  }, tv.toJSON = function() {
    return Array.from(this);
  }, tv.observe_ = function(ev, iv) {
    return fn$2(this, ev);
  }, tv.intercept_ = function(ev) {
    return dn$2(this, ev);
  }, Ot$2(rv, [{
    key: "size",
    get: function() {
      return this.keysAtom_.reportObserved(), this.data_.size;
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Map";
    }
  }]);
}(), lt$1 = /* @__PURE__ */ at$2("ObservableMap", mo$3);
function Hc$1(rv) {
  if (At$1(rv) || lt$1(rv))
    return rv;
  if (Array.isArray(rv))
    return new Map(rv);
  if (je$2(rv)) {
    var tv = /* @__PURE__ */ new Map();
    for (var ev in rv)
      tv.set(ev, rv[ev]);
    return tv;
  } else
    return j$2(21, rv);
}
var qc = {}, go$2 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov) {
    var av = this;
    iv === void 0 && (iv = nt$3), ov === void 0 && (ov = "ObservableSet"), this.name_ = void 0, this[I$2] = qc, this.data_ = /* @__PURE__ */ new Set(), this.atom_ = void 0, this.changeListeners_ = void 0, this.interceptors_ = void 0, this.dehancer = void 0, this.enhancer_ = void 0, this.name_ = ov, ke$2(Set) || j$2(22), this.enhancer_ = function(sv, lv) {
      return iv(sv, lv, ov);
    }, ut$3(function() {
      av.atom_ = Va$2(av.name_), ev && av.replace(ev);
    });
  }
  var tv = rv.prototype;
  return tv.dehanceValue_ = function(ev) {
    return this.dehancer !== void 0 ? this.dehancer(ev) : ev;
  }, tv.clear = function() {
    var ev = this;
    Ce$1(function() {
      Qa$3(function() {
        for (var iv = kt$2(ev.data_.values()), ov; !(ov = iv()).done; ) {
          var av = ov.value;
          ev.delete(av);
        }
      });
    });
  }, tv.forEach = function(ev, iv) {
    for (var ov = kt$2(this), av; !(av = ov()).done; ) {
      var sv = av.value;
      ev.call(iv, sv, sv, this);
    }
  }, tv.add = function(ev) {
    var iv = this;
    if (this.atom_, ce$2(this)) {
      var ov = de$1(this, {
        type: Ue$2,
        object: this,
        newValue: ev
      });
      if (!ov)
        return this;
    }
    if (!this.has(ev)) {
      Ce$1(function() {
        iv.data_.add(iv.enhancer_(ev, void 0)), iv.atom_.reportChanged();
      });
      var av = !1, sv = ge$1(this), lv = sv || av ? {
        observableKind: "set",
        debugObjectName: this.name_,
        type: Ue$2,
        object: this,
        newValue: ev
      } : null;
      sv && ve$3(this, lv);
    }
    return this;
  }, tv.delete = function(ev) {
    var iv = this;
    if (ce$2(this)) {
      var ov = de$1(this, {
        type: Mn$2,
        object: this,
        oldValue: ev
      });
      if (!ov)
        return !1;
    }
    if (this.has(ev)) {
      var av = !1, sv = ge$1(this), lv = sv || av ? {
        observableKind: "set",
        debugObjectName: this.name_,
        type: Mn$2,
        object: this,
        oldValue: ev
      } : null;
      return Ce$1(function() {
        iv.atom_.reportChanged(), iv.data_.delete(ev);
      }), sv && ve$3(this, lv), !0;
    }
    return !1;
  }, tv.has = function(ev) {
    return this.atom_.reportObserved(), this.data_.has(this.dehanceValue_(ev));
  }, tv.entries = function() {
    var ev = 0, iv = Array.from(this.keys()), ov = Array.from(this.values());
    return Zt$2({
      next: function() {
        var av = ev;
        return ev += 1, av < ov.length ? {
          value: [iv[av], ov[av]],
          done: !1
        } : {
          done: !0
        };
      }
    });
  }, tv.keys = function() {
    return this.values();
  }, tv.values = function() {
    this.atom_.reportObserved();
    var ev = this, iv = 0, ov = Array.from(this.data_.values());
    return Zt$2({
      next: function() {
        return iv < ov.length ? {
          value: ev.dehanceValue_(ov[iv++]),
          done: !1
        } : {
          done: !0
        };
      }
    });
  }, tv.intersection = function(ev) {
    if (Te$1(ev))
      return ev.intersection(this);
    var iv = new Set(this);
    return iv.intersection(ev);
  }, tv.union = function(ev) {
    if (Te$1(ev))
      return ev.union(this);
    var iv = new Set(this);
    return iv.union(ev);
  }, tv.difference = function(ev) {
    return new Set(this).difference(ev);
  }, tv.symmetricDifference = function(ev) {
    if (Te$1(ev))
      return ev.symmetricDifference(this);
    var iv = new Set(this);
    return iv.symmetricDifference(ev);
  }, tv.isSubsetOf = function(ev) {
    return new Set(this).isSubsetOf(ev);
  }, tv.isSupersetOf = function(ev) {
    return new Set(this).isSupersetOf(ev);
  }, tv.isDisjointFrom = function(ev) {
    if (Te$1(ev))
      return ev.isDisjointFrom(this);
    var iv = new Set(this);
    return iv.isDisjointFrom(ev);
  }, tv.replace = function(ev) {
    var iv = this;
    return Tt$3(ev) && (ev = new Set(ev)), Ce$1(function() {
      Array.isArray(ev) ? (iv.clear(), ev.forEach(function(ov) {
        return iv.add(ov);
      })) : Te$1(ev) ? (iv.clear(), ev.forEach(function(ov) {
        return iv.add(ov);
      })) : ev != null && j$2("Cannot initialize set from " + ev);
    }), this;
  }, tv.observe_ = function(ev, iv) {
    return fn$2(this, ev);
  }, tv.intercept_ = function(ev) {
    return dn$2(this, ev);
  }, tv.toJSON = function() {
    return Array.from(this);
  }, tv.toString = function() {
    return "[object ObservableSet]";
  }, tv[Symbol.iterator] = function() {
    return this.values();
  }, Ot$2(rv, [{
    key: "size",
    get: function() {
      return this.atom_.reportObserved(), this.data_.size;
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Set";
    }
  }]);
}(), Tt$3 = /* @__PURE__ */ at$2("ObservableSet", go$2), hs$2 = /* @__PURE__ */ Object.create(null), ps$2 = "remove", vo$2 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    iv === void 0 && (iv = /* @__PURE__ */ new Map()), av === void 0 && (av = Hu$2), this.target_ = void 0, this.values_ = void 0, this.name_ = void 0, this.defaultAnnotation_ = void 0, this.keysAtom_ = void 0, this.changeListeners_ = void 0, this.interceptors_ = void 0, this.proxy_ = void 0, this.isPlainObject_ = void 0, this.appliedAnnotations_ = void 0, this.pendingKeys_ = void 0, this.target_ = ev, this.values_ = iv, this.name_ = ov, this.defaultAnnotation_ = av, this.keysAtom_ = new ze$2("ObservableObject.keys"), this.isPlainObject_ = je$2(this.target_);
  }
  var tv = rv.prototype;
  return tv.getObservablePropValue_ = function(ev) {
    return this.values_.get(ev).get();
  }, tv.setObservablePropValue_ = function(ev, iv) {
    var ov = this.values_.get(ev);
    if (ov instanceof ye$1)
      return ov.set(iv), !0;
    if (ce$2(this)) {
      var av = de$1(this, {
        type: we$2,
        object: this.proxy_ || this.target_,
        name: ev,
        newValue: iv
      });
      if (!av)
        return null;
      iv = av.newValue;
    }
    if (iv = ov.prepareNewValue_(iv), iv !== T$2.UNCHANGED) {
      var sv = ge$1(this), lv = !1, uv = sv || lv ? {
        type: we$2,
        observableKind: "object",
        debugObjectName: this.name_,
        object: this.proxy_ || this.target_,
        oldValue: ov.value_,
        name: ev,
        newValue: iv
      } : null;
      ov.setNewValue_(iv), sv && ve$3(this, uv);
    }
    return !0;
  }, tv.get_ = function(ev) {
    return T$2.trackingDerivation && !xe$2(this.target_, ev) && this.has_(ev), this.target_[ev];
  }, tv.set_ = function(ev, iv, ov) {
    return ov === void 0 && (ov = !1), xe$2(this.target_, ev) ? this.values_.has(ev) ? this.setObservablePropValue_(ev, iv) : ov ? Reflect.set(this.target_, ev, iv) : (this.target_[ev] = iv, !0) : this.extend_(ev, {
      value: iv,
      enumerable: !0,
      writable: !0,
      configurable: !0
    }, this.defaultAnnotation_, ov);
  }, tv.has_ = function(ev) {
    if (!T$2.trackingDerivation)
      return ev in this.target_;
    this.pendingKeys_ || (this.pendingKeys_ = /* @__PURE__ */ new Map());
    var iv = this.pendingKeys_.get(ev);
    return iv || (iv = new Xe$2(ev in this.target_, ti$3, "ObservableObject.key?", !1), this.pendingKeys_.set(ev, iv)), iv.get();
  }, tv.make_ = function(ev, iv) {
    if (iv === !0 && (iv = this.defaultAnnotation_), iv !== !1) {
      if (!(ev in this.target_)) {
        var ov;
        if ((ov = this.target_[Se$1]) != null && ov[ev])
          return;
        j$2(1, iv.annotationType_, this.name_ + "." + ev.toString());
      }
      for (var av = this.target_; av && av !== Qn$3; ) {
        var sv = Dn$2(av, ev);
        if (sv) {
          var lv = iv.make_(this, ev, sv, av);
          if (lv === 0)
            return;
          if (lv === 1)
            break;
        }
        av = Object.getPrototypeOf(av);
      }
      gs$2(this, iv, ev);
    }
  }, tv.extend_ = function(ev, iv, ov, av) {
    if (av === void 0 && (av = !1), ov === !0 && (ov = this.defaultAnnotation_), ov === !1)
      return this.defineProperty_(ev, iv, av);
    var sv = ov.extend_(this, ev, iv, av);
    return sv && gs$2(this, ov, ev), sv;
  }, tv.defineProperty_ = function(ev, iv, ov) {
    ov === void 0 && (ov = !1), this.keysAtom_;
    try {
      fe$2();
      var av = this.delete_(ev);
      if (!av)
        return av;
      if (ce$2(this)) {
        var sv = de$1(this, {
          object: this.proxy_ || this.target_,
          name: ev,
          type: Ue$2,
          newValue: iv.value
        });
        if (!sv)
          return null;
        var lv = sv.newValue;
        iv.value !== lv && (iv = Be$2({}, iv, {
          value: lv
        }));
      }
      if (ov) {
        if (!Reflect.defineProperty(this.target_, ev, iv))
          return !1;
      } else
        Ae$2(this.target_, ev, iv);
      this.notifyPropertyAddition_(ev, iv.value);
    } finally {
      he$2();
    }
    return !0;
  }, tv.defineObservableProperty_ = function(ev, iv, ov, av) {
    av === void 0 && (av = !1), this.keysAtom_;
    try {
      fe$2();
      var sv = this.delete_(ev);
      if (!sv)
        return sv;
      if (ce$2(this)) {
        var lv = de$1(this, {
          object: this.proxy_ || this.target_,
          name: ev,
          type: Ue$2,
          newValue: iv
        });
        if (!lv)
          return null;
        iv = lv.newValue;
      }
      var uv = ms$2(ev), cv = {
        configurable: T$2.safeDescriptors ? this.isPlainObject_ : !0,
        enumerable: !0,
        get: uv.get,
        set: uv.set
      };
      if (av) {
        if (!Reflect.defineProperty(this.target_, ev, cv))
          return !1;
      } else
        Ae$2(this.target_, ev, cv);
      var dv = new Xe$2(iv, ov, "ObservableObject.key", !1);
      this.values_.set(ev, dv), this.notifyPropertyAddition_(ev, dv.value_);
    } finally {
      he$2();
    }
    return !0;
  }, tv.defineComputedProperty_ = function(ev, iv, ov) {
    ov === void 0 && (ov = !1), this.keysAtom_;
    try {
      fe$2();
      var av = this.delete_(ev);
      if (!av)
        return av;
      if (ce$2(this)) {
        var sv = de$1(this, {
          object: this.proxy_ || this.target_,
          name: ev,
          type: Ue$2,
          newValue: void 0
        });
        if (!sv)
          return null;
      }
      iv.name || (iv.name = "ObservableObject.key"), iv.context = this.proxy_ || this.target_;
      var lv = ms$2(ev), uv = {
        configurable: T$2.safeDescriptors ? this.isPlainObject_ : !0,
        enumerable: !1,
        get: lv.get,
        set: lv.set
      };
      if (ov) {
        if (!Reflect.defineProperty(this.target_, ev, uv))
          return !1;
      } else
        Ae$2(this.target_, ev, uv);
      this.values_.set(ev, new ye$1(iv)), this.notifyPropertyAddition_(ev, void 0);
    } finally {
      he$2();
    }
    return !0;
  }, tv.delete_ = function(ev, iv) {
    if (iv === void 0 && (iv = !1), this.keysAtom_, !xe$2(this.target_, ev))
      return !0;
    if (ce$2(this)) {
      var ov = de$1(this, {
        object: this.proxy_ || this.target_,
        name: ev,
        type: ps$2
      });
      if (!ov)
        return null;
    }
    try {
      var av;
      fe$2();
      var sv = ge$1(this), lv = !1, uv = this.values_.get(ev), cv = void 0;
      if (!uv && (sv || lv)) {
        var dv;
        cv = (dv = Dn$2(this.target_, ev)) == null ? void 0 : dv.value;
      }
      if (iv) {
        if (!Reflect.deleteProperty(this.target_, ev))
          return !1;
      } else
        delete this.target_[ev];
      if (uv && (this.values_.delete(ev), uv instanceof Xe$2 && (cv = uv.value_), no$2(uv)), this.keysAtom_.reportChanged(), (av = this.pendingKeys_) == null || (av = av.get(ev)) == null || av.set(ev in this.target_), sv || lv) {
        var hv = {
          type: ps$2,
          observableKind: "object",
          object: this.proxy_ || this.target_,
          debugObjectName: this.name_,
          oldValue: cv,
          name: ev
        };
        sv && ve$3(this, hv);
      }
    } finally {
      he$2();
    }
    return !0;
  }, tv.observe_ = function(ev, iv) {
    return fn$2(this, ev);
  }, tv.intercept_ = function(ev) {
    return dn$2(this, ev);
  }, tv.notifyPropertyAddition_ = function(ev, iv) {
    var ov, av = ge$1(this), sv = !1;
    if (av || sv) {
      var lv = av || sv ? {
        type: Ue$2,
        observableKind: "object",
        debugObjectName: this.name_,
        object: this.proxy_ || this.target_,
        name: ev,
        newValue: iv
      } : null;
      av && ve$3(this, lv);
    }
    (ov = this.pendingKeys_) == null || (ov = ov.get(ev)) == null || ov.set(!0), this.keysAtom_.reportChanged();
  }, tv.ownKeys_ = function() {
    return this.keysAtom_.reportObserved(), ei$3(this.target_);
  }, tv.keys_ = function() {
    return this.keysAtom_.reportObserved(), Object.keys(this.target_);
  }, rv;
}();
function Ct$2(rv, tv) {
  var ev;
  if (xe$2(rv, I$2))
    return rv;
  var iv = (ev = tv == null ? void 0 : tv.name) != null ? ev : "ObservableObject", ov = new vo$2(rv, /* @__PURE__ */ new Map(), String(iv), ec$3(tv));
  return Zn$2(rv, I$2, ov), rv;
}
var zc$1 = /* @__PURE__ */ at$2("ObservableObjectAdministration", vo$2);
function ms$2(rv) {
  return hs$2[rv] || (hs$2[rv] = {
    get: function() {
      return this[I$2].getObservablePropValue_(rv);
    },
    set: function(tv) {
      return this[I$2].setObservablePropValue_(rv, tv);
    }
  });
}
function ui$3(rv) {
  return Xn$3(rv) ? zc$1(rv[I$2]) : !1;
}
function gs$2(rv, tv, ev) {
  var iv;
  (iv = rv.target_[Se$1]) == null || delete iv[ev];
}
var Gc$1 = /* @__PURE__ */ yo$3(0), Kc$1 = /* @__PURE__ */ function() {
  var rv = !1, tv = {};
  return Object.defineProperty(tv, "0", {
    set: function() {
      rv = !0;
    }
  }), Object.create(tv)[0] = 1, rv === !1;
}(), Ti$3 = 0, ko$3 = function() {
};
function Wc$1(rv, tv) {
  Object.setPrototypeOf ? Object.setPrototypeOf(rv.prototype, tv) : rv.prototype.__proto__ !== void 0 ? rv.prototype.__proto__ = tv : rv.prototype = tv;
}
Wc$1(ko$3, Array.prototype);
var Rr$2 = /* @__PURE__ */ function(rv) {
  function tv(iv, ov, av, sv) {
    var lv;
    return av === void 0 && (av = "ObservableArray"), sv === void 0 && (sv = !1), lv = rv.call(this) || this, ut$3(function() {
      var uv = new xr$2(av, ov, sv, !0);
      uv.proxy_ = lv, Pa$3(lv, I$2, uv), iv && iv.length && lv.spliceWithArray(0, 0, iv), Kc$1 && Object.defineProperty(lv, "0", Gc$1);
    }), lv;
  }
  Ma$3(tv, rv);
  var ev = tv.prototype;
  return ev.concat = function() {
    this[I$2].atom_.reportObserved();
    for (var iv = arguments.length, ov = new Array(iv), av = 0; av < iv; av++)
      ov[av] = arguments[av];
    return Array.prototype.concat.apply(
      this.slice(),
      //@ts-ignore
      ov.map(function(sv) {
        return li$3(sv) ? sv.slice() : sv;
      })
    );
  }, ev[Symbol.iterator] = function() {
    var iv = this, ov = 0;
    return Zt$2({
      next: function() {
        return ov < iv.length ? {
          value: iv[ov++],
          done: !1
        } : {
          done: !0,
          value: void 0
        };
      }
    });
  }, Ot$2(tv, [{
    key: "length",
    get: function() {
      return this[I$2].getArrayLength_();
    },
    set: function(iv) {
      this[I$2].setArrayLength_(iv);
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Array";
    }
  }]);
}(ko$3);
Object.entries(Un$1).forEach(function(rv) {
  var tv = rv[0], ev = rv[1];
  tv !== "concat" && Zn$2(Rr$2.prototype, tv, ev);
});
function yo$3(rv) {
  return {
    enumerable: !1,
    configurable: !0,
    get: function() {
      return this[I$2].get_(rv);
    },
    set: function(tv) {
      this[I$2].set_(rv, tv);
    }
  };
}
function Jc(rv) {
  Ae$2(Rr$2.prototype, "" + rv, yo$3(rv));
}
function _o$3(rv) {
  if (rv > Ti$3) {
    for (var tv = Ti$3; tv < rv + 100; tv++)
      Jc(tv);
    Ti$3 = rv;
  }
}
_o$3(1e3);
function Yc$1(rv, tv, ev) {
  return new Rr$2(rv, tv, ev);
}
function nr$2(rv, tv) {
  if (typeof rv == "object" && rv !== null) {
    if (li$3(rv))
      return tv !== void 0 && j$2(23), rv[I$2].atom_;
    if (Tt$3(rv))
      return rv.atom_;
    if (lt$1(rv)) {
      if (tv === void 0)
        return rv.keysAtom_;
      var ev = rv.data_.get(tv) || rv.hasMap_.get(tv);
      return ev || j$2(25, tv, ir$2(rv)), ev;
    }
    if (ui$3(rv)) {
      if (!tv)
        return j$2(26);
      var iv = rv[I$2].values_.get(tv);
      return iv || j$2(27, tv, ir$2(rv)), iv;
    }
    if (wr$2(rv) || si$2(rv) || $n$2(rv))
      return rv;
  } else if (ke$2(rv) && $n$2(rv[I$2]))
    return rv[I$2];
  j$2(28);
}
function Qc(rv, tv) {
  if (rv || j$2(29), wr$2(rv) || si$2(rv) || $n$2(rv) || lt$1(rv) || Tt$3(rv))
    return rv;
  if (rv[I$2])
    return rv[I$2];
  j$2(24, rv);
}
function ir$2(rv, tv) {
  var ev;
  if (tv !== void 0)
    ev = nr$2(rv, tv);
  else {
    if (ai$2(rv))
      return rv.name;
    ui$3(rv) || lt$1(rv) || Tt$3(rv) ? ev = Qc(rv) : ev = nr$2(rv);
  }
  return ev.name_;
}
function ut$3(rv) {
  var tv = ot$1(), ev = ii$2(!0);
  fe$2();
  try {
    return rv();
  } finally {
    he$2(), ri$2(ev), Re$2(tv);
  }
}
var vs$2 = Qn$3.toString;
function Fr$2(rv, tv, ev) {
  return ev === void 0 && (ev = -1), rr$2(rv, tv, ev);
}
function rr$2(rv, tv, ev, iv, ov) {
  if (rv === tv)
    return rv !== 0 || 1 / rv === 1 / tv;
  if (rv == null || tv == null)
    return !1;
  if (rv !== rv)
    return tv !== tv;
  var av = typeof rv;
  if (av !== "function" && av !== "object" && typeof tv != "object")
    return !1;
  var sv = vs$2.call(rv);
  if (sv !== vs$2.call(tv))
    return !1;
  switch (sv) {
    case "[object RegExp]":
    case "[object String]":
      return "" + rv == "" + tv;
    case "[object Number]":
      return +rv != +rv ? +tv != +tv : +rv == 0 ? 1 / +rv === 1 / tv : +rv == +tv;
    case "[object Date]":
    case "[object Boolean]":
      return +rv == +tv;
    case "[object Symbol]":
      return typeof Symbol < "u" && Symbol.valueOf.call(rv) === Symbol.valueOf.call(tv);
    case "[object Map]":
    case "[object Set]":
      ev >= 0 && ev++;
      break;
  }
  rv = ks$1(rv), tv = ks$1(tv);
  var lv = sv === "[object Array]";
  if (!lv) {
    if (typeof rv != "object" || typeof tv != "object")
      return !1;
    var uv = rv.constructor, cv = tv.constructor;
    if (uv !== cv && !(ke$2(uv) && uv instanceof uv && ke$2(cv) && cv instanceof cv) && "constructor" in rv && "constructor" in tv)
      return !1;
  }
  if (ev === 0)
    return !1;
  ev < 0 && (ev = -1), iv = iv || [], ov = ov || [];
  for (var dv = iv.length; dv--; )
    if (iv[dv] === rv)
      return ov[dv] === tv;
  if (iv.push(rv), ov.push(tv), lv) {
    if (dv = rv.length, dv !== tv.length)
      return !1;
    for (; dv--; )
      if (!rr$2(rv[dv], tv[dv], ev - 1, iv, ov))
        return !1;
  } else {
    var hv = Object.keys(rv), pv;
    if (dv = hv.length, Object.keys(tv).length !== dv)
      return !1;
    for (; dv--; )
      if (pv = hv[dv], !(xe$2(tv, pv) && rr$2(rv[pv], tv[pv], ev - 1, iv, ov)))
        return !1;
  }
  return iv.pop(), ov.pop(), !0;
}
function ks$1(rv) {
  return li$3(rv) ? rv.slice() : At$1(rv) || lt$1(rv) || Te$1(rv) || Tt$3(rv) ? Array.from(rv.entries()) : rv;
}
function Zt$2(rv) {
  return rv[Symbol.iterator] = Xc$1, rv;
}
function Xc$1() {
  return this;
}
["Symbol", "Map", "Set"].forEach(function(rv) {
  var tv = Ra$3();
  typeof tv[rv] > "u" && j$2("MobX requires global '" + rv + "' to be available or polyfilled");
});
typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ == "object" && __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({
  spy: vc$1,
  extras: {
    getDebugName: ir$2
  },
  $mobx: I$2
});
let Dr$2 = /* @__PURE__ */ new Map();
const sr$3 = reactExports.createContext(Dr$2), nv = ({ children: rv, stores: tv }) => {
  const ev = reactExports.useContext(sr$3), iv = reactExports.useMemo(() => {
    const ov = /* @__PURE__ */ new Map();
    return tv.forEach((av) => ov.set(av.class, av.value)), Dr$2 = new Map([...ev, ...ov]);
  }, []);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(sr$3.Provider, { value: iv, children: rv });
};
class ed {
  constructor(tv, ev) {
    R$1(this, "logger"), R$1(this, "channel"), R$1(this, "listeners", /* @__PURE__ */ new Map()), R$1(this, "eventQueue", /* @__PURE__ */ new Map()), this.logger = qe$1.withPrefix(ev, "EventBus");
    try {
      this.logger.debug(`Creating BroadcastChannel with name "${tv}"`), this.channel = new BroadcastChannel(tv), this.channel.onmessage = (iv) => this.handleMessage(iv), this.channel.onmessageerror = (iv) => this.logger.error("NizzaBroadcastChannel error:", iv);
    } catch (iv) {
      throw this.logger.error("Failed to create NizzaBroadcastChannel:", iv), iv;
    }
  }
  /**
   * Subscribe a listener function to a specific event with wildcards.
   *
   * @param {string} pattern - The event name to subscribe to. You can use wildcards like 'user:*' or 'chat:**'.
   * @param {EventBusListener} listener - The listener function to handle the event.
   * @returns {EventBusSubscription} - A subscription object that includes the event name and the `off()` function for unsubscribing.
   * @example
   * const subscription = eventBus.on('user:*', (event) => {
   *   console.log('User event:', event.name);
   * });
   * const chatSubscription = eventBus.on('chat:**', (event) => {
   *   console.log('Chat event:', event.name);
   * });
   */
  on(tv, ev) {
    return this.logger.debug(`Subscribing to pattern "${tv}"`), this.subscribeToEvent(tv, ev), {
      off: () => this.unsubscribeFromEvent(tv, ev)
    };
  }
  /**
   * Emit an event through the BroadcastChannel.
   *
   * @param {string} event - The event name to emit.
   * @param {any} data - The data associated with the event.
   * @param {Attributes} attrs - Optional attributes associated with the event.
   * @example
   * // Emit a user login event
   * eventBus.emit('user:login', { username: 'user123' });
   *
   * // Emit a chat message event
   * eventBus.emit('chat:message', { text: 'Hello, world!' });
   */
  emit(tv, ev, iv = {}) {
    this.logger.debug(`Emitting event "${tv}" with data`, ev), this.emitEvent(tv, ev, iv);
  }
  /**
   * Handle messages received through the BroadcastChannel and call the corresponding listener functions.
   *
   * @private
   * @param {MessageEvent} event - The received message event.
   */
  handleMessage(tv) {
    const ev = tv.data, { name: iv } = ev;
    this.logger.debug(`Received message "${iv}" with data`, ev);
    for (const [ov, av] of this.listeners.entries())
      this.matchWildcard(ov, iv) && (this.logger.debug(`Matching pattern "${ov}" for event "${iv}"`), av.forEach(
        (sv) => sv({ ...ev, wildcard: ov })
      ));
  }
  /**
   * Subscribe a listener function to a specific event.
   *
   * @private
   * @param {string} pattern - The pattern to subscribe to.
   * @param {EventBusListener} listener - The listener function to handle the event.
   */
  subscribeToEvent(tv, ev) {
    if (typeof tv != "string" || typeof ev != "function") {
      const ov = new Error("Invalid arguments");
      throw this.logger.error(ov), ov;
    }
    this.listeners.has(tv) || (this.logger.debug(`Adding new pattern "${tv}"`), this.listeners.set(tv, /* @__PURE__ */ new Set()));
    const iv = Array.from(this.eventQueue).filter(([ov]) => {
      const av = this.matchWildcard(tv, ov);
      return av && (this.eventQueue.delete(ov), this.logger.debug(`Dequeued pending events for "${ov}".`)), av;
    }).flatMap(([, ov]) => ov);
    for (const [ov, av] of this.listeners.entries())
      this.matchWildcard(ov, tv) && (this.logger.debug(`Adding listener to pattern "${ov}"`), av.add(ev), iv.length && (this.logger.debug(`Delivering pending events for "${tv}".`), iv.forEach((sv) => {
        ev({ ...sv, wildcard: ov });
      })));
  }
  /**
   * Emit an event and deliver it to the corresponding listeners.
   *
   * @private
   * @param {string} event - The event name to emit.
   * @param {any} data - The data associated with the event.
   * @param {Attributes} attrs - Optional attributes associated with the event.
   */
  emitEvent(tv, ev, iv) {
    if (typeof tv != "string") {
      const sv = new Error("Invalid arguments");
      throw this.logger.error(sv), sv;
    }
    const ov = {
      name: tv,
      data: ev,
      attrs: iv
    }, av = Array.from(this.getMatchingListeners(tv));
    if (av.length) {
      this.logger.debug(`Delivering event "${tv}" to listeners`);
      for (const [sv, lv] of av)
        lv({ ...ov, wildcard: sv });
    } else
      this.logger.debug(`No listeners for event "${tv}", enqueuing`), this.eventQueue.has(tv) || this.eventQueue.set(tv, []), this.eventQueue.get(tv).push(ov);
    this.logger.debug("Posting message to channel", ov), this.channel.postMessage(ov);
  }
  /**
   * Get listeners that match the event name pattern.
   *
   * @private
   * @param {string} event - The event name to match.
   * @returns {Iterable<[string, EventBusListener]>} - Iterable of matching listeners and their patterns.
   */
  *getMatchingListeners(tv) {
    this.logger.debug(`Getting matching listeners for event "${tv}"`);
    for (const [ev, iv] of this.listeners.entries())
      if (this.matchWildcard(ev, tv))
        for (const ov of iv)
          yield [ev, ov];
  }
  /**
   * Unsubscribe a listener function from a specific event.
   *
   * @private
   * @param {string} event - The event name to unsubscribe from.
   * @param {EventBusListener} listener - The listener function to unsubscribe.
   */
  unsubscribeFromEvent(tv, ev) {
    if (this.listeners.has(tv)) {
      this.logger.debug(`Unsubscribing from event "${tv}"`);
      const iv = this.listeners.get(tv);
      iv.delete(ev), iv.size === 0 && (this.logger.debug(`No more listeners for event "${tv}", deleting`), this.listeners.delete(tv));
    }
  }
  /**
   * Match wildcards in event names.
   *
   * @private
   * @param {string} wildcard - The wildcard pattern to match.
   * @param {string} pattern - The event name to check.
   * @returns {boolean} - `true` if the event name matches the pattern, otherwise `false`.
   */
  matchWildcard(tv, ev) {
    const iv = tv.replace(/\*/g, "[^:]*").replace(/\*\*/g, ".*"), ov = new RegExp(`^${iv}$`).test(ev);
    return this.logger.debug(
      `Wildcard "${tv}" matches with pattern "${ev}": ${ov}`
    ), ov;
  }
}
const td$1 = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
let nd$1 = (rv = 21) => {
  let tv = "", ev = crypto.getRandomValues(new Uint8Array(rv));
  for (; rv--; )
    tv += td$1[ev[rv] & 63];
  return tv;
};
const ar$2 = (rv = 8) => nd$1(rv), id$1 = (rv, tv = !1) => {
  const ev = Object.entries(rv).reduce((iv, [ov, av]) => av !== void 0 && (!tv || av !== null) ? `${iv}${iv ? "&" : ""}${ov}=${av}` : iv, "");
  return ev ? `?${ev}` : "";
}, rd$1 = (rv) => {
  const tv = document.getElementById(rv);
  return tv ? new URL(tv.src).searchParams : new URLSearchParams();
};
var Ir$2 = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function Lr$3(rv) {
  return rv && rv.__esModule && Object.prototype.hasOwnProperty.call(rv, "default") ? rv.default : rv;
}
var bo$3 = { exports: {} };
(function(rv) {
  (function(tv, ev) {
    rv.exports ? rv.exports = ev() : tv.log = ev();
  })(Ir$2, function() {
    var tv = function() {
    }, ev = "undefined", iv = typeof window !== ev && typeof window.navigator !== ev && /Trident\/|MSIE /.test(window.navigator.userAgent), ov = [
      "trace",
      "debug",
      "info",
      "warn",
      "error"
    ], av = {}, sv = null;
    function lv(_v, Ev) {
      var wv = _v[Ev];
      if (typeof wv.bind == "function")
        return wv.bind(_v);
      try {
        return Function.prototype.bind.call(wv, _v);
      } catch {
        return function() {
          return Function.prototype.apply.apply(wv, [_v, arguments]);
        };
      }
    }
    function uv() {
      console.log && (console.log.apply ? console.log.apply(console, arguments) : Function.prototype.apply.apply(console.log, [console, arguments])), console.trace && console.trace();
    }
    function cv(_v) {
      return _v === "debug" && (_v = "log"), typeof console === ev ? !1 : _v === "trace" && iv ? uv : console[_v] !== void 0 ? lv(console, _v) : console.log !== void 0 ? lv(console, "log") : tv;
    }
    function dv() {
      for (var _v = this.getLevel(), Ev = 0; Ev < ov.length; Ev++) {
        var wv = ov[Ev];
        this[wv] = Ev < _v ? tv : this.methodFactory(wv, _v, this.name);
      }
      if (this.log = this.debug, typeof console === ev && _v < this.levels.SILENT)
        return "No console available for logging";
    }
    function hv(_v) {
      return function() {
        typeof console !== ev && (dv.call(this), this[_v].apply(this, arguments));
      };
    }
    function pv(_v, Ev, wv) {
      return cv(_v) || hv.apply(this, arguments);
    }
    function yv(_v, Ev) {
      var wv = this, xv, Cv, Av, Ov = "loglevel";
      typeof _v == "string" ? Ov += ":" + _v : typeof _v == "symbol" && (Ov = void 0);
      function Lv(Yv) {
        var Xv = (ov[Yv] || "silent").toUpperCase();
        if (!(typeof window === ev || !Ov)) {
          try {
            window.localStorage[Ov] = Xv;
            return;
          } catch {
          }
          try {
            window.document.cookie = encodeURIComponent(Ov) + "=" + Xv + ";";
          } catch {
          }
        }
      }
      function jv() {
        var Yv;
        if (!(typeof window === ev || !Ov)) {
          try {
            Yv = window.localStorage[Ov];
          } catch {
          }
          if (typeof Yv === ev)
            try {
              var Xv = window.document.cookie, L1 = encodeURIComponent(Ov), Bv = Xv.indexOf(L1 + "=");
              Bv !== -1 && (Yv = /^([^;]+)/.exec(
                Xv.slice(Bv + L1.length + 1)
              )[1]);
            } catch {
            }
          return wv.levels[Yv] === void 0 && (Yv = void 0), Yv;
        }
      }
      function Dv() {
        if (!(typeof window === ev || !Ov)) {
          try {
            window.localStorage.removeItem(Ov);
          } catch {
          }
          try {
            window.document.cookie = encodeURIComponent(Ov) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
          } catch {
          }
        }
      }
      function Vv(Yv) {
        var Xv = Yv;
        if (typeof Xv == "string" && wv.levels[Xv.toUpperCase()] !== void 0 && (Xv = wv.levels[Xv.toUpperCase()]), typeof Xv == "number" && Xv >= 0 && Xv <= wv.levels.SILENT)
          return Xv;
        throw new TypeError("log.setLevel() called with invalid level: " + Yv);
      }
      wv.name = _v, wv.levels = {
        TRACE: 0,
        DEBUG: 1,
        INFO: 2,
        WARN: 3,
        ERROR: 4,
        SILENT: 5
      }, wv.methodFactory = Ev || pv, wv.getLevel = function() {
        return Av ?? Cv ?? xv;
      }, wv.setLevel = function(Yv, Xv) {
        return Av = Vv(Yv), Xv !== !1 && Lv(Av), dv.call(wv);
      }, wv.setDefaultLevel = function(Yv) {
        Cv = Vv(Yv), jv() || wv.setLevel(Yv, !1);
      }, wv.resetLevel = function() {
        Av = null, Dv(), dv.call(wv);
      }, wv.enableAll = function(Yv) {
        wv.setLevel(wv.levels.TRACE, Yv);
      }, wv.disableAll = function(Yv) {
        wv.setLevel(wv.levels.SILENT, Yv);
      }, wv.rebuild = function() {
        if (sv !== wv && (xv = Vv(sv.getLevel())), dv.call(wv), sv === wv)
          for (var Yv in av)
            av[Yv].rebuild();
      }, xv = Vv(
        sv ? sv.getLevel() : "WARN"
      );
      var Gv = jv();
      Gv != null && (Av = Vv(Gv)), dv.call(wv);
    }
    sv = new yv(), sv.getLogger = function(_v) {
      if (typeof _v != "symbol" && typeof _v != "string" || _v === "")
        throw new TypeError("You must supply a name when creating a logger.");
      var Ev = av[_v];
      return Ev || (Ev = av[_v] = new yv(
        _v,
        sv.methodFactory
      )), Ev;
    };
    var Sv = typeof window !== ev ? window.log : void 0;
    return sv.noConflict = function() {
      return typeof window !== ev && window.log === sv && (window.log = Sv), sv;
    }, sv.getLoggers = function() {
      return av;
    }, sv.default = sv, sv;
  });
})(bo$3);
var or$3 = bo$3.exports;
const Ci$3 = /* @__PURE__ */ Lr$3(or$3);
var No$3 = { exports: {} };
(function(rv) {
  (function(tv, ev) {
    rv.exports ? rv.exports = ev() : tv.prefix = ev(tv);
  })(Ir$2, function(tv) {
    var ev = function(dv) {
      for (var hv = 1, pv = arguments.length, yv; hv < pv; hv++)
        for (yv in arguments[hv])
          Object.prototype.hasOwnProperty.call(arguments[hv], yv) && (dv[yv] = arguments[hv][yv]);
      return dv;
    }, iv = {
      template: "[%t] %l:",
      levelFormatter: function(dv) {
        return dv.toUpperCase();
      },
      nameFormatter: function(dv) {
        return dv || "root";
      },
      timestampFormatter: function(dv) {
        return dv.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
      },
      format: void 0
    }, ov, av = {}, sv = function(dv) {
      if (!dv || !dv.getLogger)
        throw new TypeError("Argument is not a root logger");
      ov = dv;
    }, lv = function(dv, hv) {
      if (!dv || !dv.setLevel)
        throw new TypeError("Argument is not a logger");
      var pv = dv.methodFactory, yv = dv.name || "", Sv = av[yv] || av[""] || iv;
      function _v(Ev, wv, xv) {
        var Cv = pv(Ev, wv, xv), Av = av[xv] || av[""], Ov = Av.template.indexOf("%t") !== -1, Lv = Av.template.indexOf("%l") !== -1, jv = Av.template.indexOf("%n") !== -1;
        return function() {
          for (var Dv = "", Vv = arguments.length, Gv = Array(Vv), Yv = 0; Yv < Vv; Yv++)
            Gv[Yv] = arguments[Yv];
          if (yv || !av[xv]) {
            var Xv = Av.timestampFormatter(/* @__PURE__ */ new Date()), L1 = Av.levelFormatter(Ev), Bv = Av.nameFormatter(xv);
            Av.format ? Dv += Av.format(L1, Bv, Xv) : (Dv += Av.template, Ov && (Dv = Dv.replace(/%t/, Xv)), Lv && (Dv = Dv.replace(/%l/, L1)), jv && (Dv = Dv.replace(/%n/, Bv))), Gv.length && typeof Gv[0] == "string" ? Gv[0] = Dv + " " + Gv[0] : Gv.unshift(Dv);
          }
          Cv.apply(void 0, Gv);
        };
      }
      return av[yv] || (dv.methodFactory = _v), hv = hv || {}, hv.template && (hv.format = void 0), av[yv] = ev({}, Sv, hv), dv.setLevel(dv.getLevel()), ov || dv.warn(
        "It is necessary to call the function reg() of loglevel-plugin-prefix before calling apply. From the next release, it will throw an error. See more: https://github.com/kutuluk/loglevel-plugin-prefix/blob/master/README.md"
      ), dv;
    }, uv = {
      reg: sv,
      apply: lv
    }, cv;
    return tv && (cv = tv.prefix, uv.noConflict = function() {
      return tv.prefix === uv && (tv.prefix = cv), uv;
    }), uv;
  });
})(No$3);
var sd$1 = No$3.exports;
const ys$2 = /* @__PURE__ */ Lr$3(sd$1);
var Me$2;
let qe$1 = (Me$2 = class {
  constructor(rv = "") {
    R$1(this, "provider", Ci$3), R$1(this, "defaultLevel", this.getDefaultLevel()), this.namePrefix = rv, this.namePrefix = rv ? `${rv}-` : "", this.provider.setDefaultLevel(this.defaultLevel), ys$2.reg(Ci$3), ys$2.apply(Ci$3, {
      template: "%l [%n]",
      nameFormatter: (tv) => {
        var ev;
        return (ev = tv == null ? void 0 : tv.toLowerCase()) != null ? ev : "";
      },
      timestampFormatter: () => (/* @__PURE__ */ new Date()).toTimeString().slice(0, 8)
    });
  }
  createLogger(rv) {
    const tv = `${this.namePrefix}${rv.toLowerCase()}`, ev = this.provider.getLogger(tv), iv = localStorage.getItem(
      `loglevel:${tv}`
    );
    return ev.setLevel(iv || this.defaultLevel), ev;
  }
  static withPrefix(rv, tv) {
    const ev = /\(\w+\)/, iv = {
      get(ov, av) {
        const sv = ov[av];
        return typeof sv == "function" && Me$2.LOG_METHODS.includes(av) ? (...lv) => (typeof lv[0] == "string" && !ev.test(lv[0]) && (lv[0] = `(${tv}) ${lv[0]}`), sv.apply(ov, lv)) : sv;
      }
    };
    return new Proxy(rv, iv);
  }
  getDefaultLevel() {
    var rv;
    const tv = localStorage.getItem("loglevel");
    return (rv = Me$2.LOG_METHODS.reduce((ev, iv) => {
      const ov = iv.toUpperCase();
      return ev[ov] = or$3.levels[ov], ev;
    }, {})[tv == null ? void 0 : tv.toUpperCase()]) != null ? rv : or$3.levels.INFO;
  }
}, R$1(Me$2, "LOG_METHODS", [
  "trace",
  "debug",
  "info",
  "warn",
  "error",
  "log"
]), Me$2);
const ue$2 = class g3 {
  constructor() {
    R$1(this, "instanceId", ar$2()), R$1(this, "log", new qe$1("nz")), R$1(this, "coreLogger", this.log.createLogger("core")), R$1(this, "_config", null), R$1(this, "_account"), R$1(this, "_accountStatus", "idle"), R$1(this, "_productDataSource"), R$1(this, "_eventBus", new ed("nizza", this.coreLogger)), R$1(this, "activeAccountFetchId", null), this.coreLogger = qe$1.withPrefix(
      this.coreLogger,
      `NizzaStore:${this.instanceId}`
    ), $c$2(
      this,
      {
        _config: K$2,
        _account: K$2,
        _productDataSource: K$2,
        _accountStatus: K$2,
        config: $e$2,
        account: $e$2,
        accountName: $e$2,
        accountStatus: $e$2,
        setAccount: re$2,
        configure: re$2,
        refetchAccount: re$2,
        setProductDataSource: re$2,
        setAddToCartConfig: re$2,
        setProductId: re$2
      },
      { name: "NizzaStore", autoBind: !0 }
    ), this.refetchAccount = this.refetchAccount.bind(this);
  }
  static instance() {
    var tv;
    if ((tv = window == null ? void 0 : window.nizza) != null && tv.store)
      g3._instance = window.nizza.store;
    else {
      const ev = new g3();
      g3._instance = ev, g3._instance.coreLogger.debug("Created new NizzaStore instance");
    }
    return window.nizza || (window.nizza = {}, window.nz = {}, g3._instance.coreLogger.debug("Initialized nizza window object")), window.nizza.store = g3._instance, window.nz = window.nizza, g3._instance;
  }
  async configure(tv) {
    try {
      this.coreLogger.debug("Running configure with config:", tv), await this.updateConfig(tv);
    } catch (ev) {
      this.setAccountStatus("error"), this.coreLogger.error("Error running configure", ev);
    }
  }
  async updateConfig(tv = {}) {
    var ev, iv;
    const { account: ov, authToken: av } = (ev = this._config) != null ? ev : {};
    this._config = { ...this._config, ...tv }, (iv = this._config) != null && iv.account && (ov !== this._config.account || av !== this._config.authToken) ? (this.coreLogger.debug(
      `Fetching account data for account: ${this._config.account}, authToken provided: ${!!this._config.authToken}`
    ), await this.fetchAccount(this._config.account, this._config.authToken)) : this.coreLogger.debug(
      "Skipped fetching account data as the account or authToken did not change"
    ), tv.getProductDataSource && this.setProductDataSource(await tv.getProductDataSource());
  }
  async fetchAccount(tv, ev) {
    this.setAccountStatus("loading");
    const iv = ar$2();
    this.activeAccountFetchId = iv;
    try {
      const ov = await Dd$1(tv, ev);
      if (this.activeAccountFetchId !== iv) {
        this.coreLogger.debug(
          "Fetch account request was superseded by a newer request"
        );
        return;
      }
      this.setAccount(ov), this.setAccountStatus("success"), this.coreLogger.debug("Account fetched and set successfully:", ov);
    } catch (ov) {
      this.activeAccountFetchId === iv && (this.setAccountStatus("error"), this.coreLogger.error("Error fetching account:", ov));
    }
  }
  setAccount(tv) {
    this._account = tv;
  }
  setAccountStatus(tv) {
    this._accountStatus = tv;
  }
  setProductDataSource(tv) {
    this._productDataSource = tv;
  }
  setProductId(tv) {
    this._config && (this._config.productId = tv);
  }
  setOrderFormId(tv) {
    this._config && (this._config.orderFormId = tv);
  }
  setAddToCartConfig(tv) {
    if (!this._config) {
      const ev = "You cannot set addToCartConfig before running configure()";
      throw this.coreLogger.error(ev), new Error(ev);
    }
    this._config.addToCartConfig = tv;
  }
  setAuthToken(tv) {
    this.updateConfig({ authToken: tv });
  }
  async refetchAccount() {
    var tv;
    (tv = this._config) != null && tv.account && await this.fetchAccount(this._config.account, this._config.authToken);
  }
  get version() {
    return g3.version;
  }
  get config() {
    return this._config;
  }
  get account() {
    return this._account;
  }
  get accountStatus() {
    return this._accountStatus;
  }
  get accountName() {
    var tv;
    return (tv = this._config) == null ? void 0 : tv.account;
  }
  isPvtAccount(tv) {
    var ev;
    return !!(tv && (ev = this._config) != null && ev.authToken);
  }
  isPubAccount(tv) {
    var ev;
    return !!(tv && !((ev = this._config) != null && ev.authToken));
  }
  get productDataSource() {
    return this._productDataSource;
  }
  get eventBus() {
    return this._eventBus;
  }
};
R$1(ue$2, "version", "7"), R$1(ue$2, "_instance");
let lr$3 = ue$2;
const xt$3 = (rv) => {
  const tv = lr$3.instance();
  return Dc$1(
    () => !!tv.account,
    () => rv == null ? void 0 : rv(tv)
  ), tv;
}, { coreLogger: ld$1 } = xt$3(), ud$1 = qe$1.withPrefix(ld$1, "CustomFetch");
async function en$3(rv) {
  const {
    url: tv,
    method: ev = "GET",
    body: iv,
    raw: ov = !1,
    contentTypeJson: av = !0,
    timeout: sv,
    ...lv
  } = rv, uv = new Headers({
    ...av ? { "content-type": "application/json" } : {},
    ...rv.headers
  });
  try {
    const cv = new AbortController(), { signal: dv } = cv;
    let hv;
    const pv = fetch(tv, {
      method: ev,
      headers: uv,
      body: iv,
      signal: dv,
      ...lv
    });
    sv && (hv = setTimeout(() => {
      cv.abort();
    }, sv));
    const yv = await pv;
    if (ov)
      return yv;
    const Sv = await yv.json();
    if (clearTimeout(hv), !yv.ok) {
      const _v = Sv ? JSON.stringify(Sv) : yv.statusText;
      throw new Error(_v);
    }
    return Sv;
  } catch (cv) {
    throw ud$1.error(cv), cv;
  }
}
const { coreLogger: dd$1 } = xt$3();
qe$1.withPrefix(dd$1, "getClientTimeZone");
let yd$1 = class extends Et$2 {
  constructor(tv) {
    super("CREATE_PLAN_ERROR", `Error creating plan: ${tv.plan}`, tv);
  }
};
const _s$2 = `${ln$3.apiUrls.restV1}/plans`;
let _d$1 = class {
  async get(tv) {
    const ev = `/info${id$1({ planType: tv })}`, iv = _s$2 + ev, { data: ov } = await en$3({ url: iv });
    return ov;
  }
  async create(tv) {
    const ev = `${_s$2}/create`, { success: iv } = await en$3({
      url: ev,
      method: "POST",
      body: JSON.stringify(tv)
    });
    if (!iv)
      throw new yd$1(tv);
  }
};
function bd$1(rv) {
  const {
    host: tv,
    account: ev,
    username: iv,
    createdAt: ov,
    subscriptionType: av,
    installationDateApp: sv,
    ...lv
  } = rv;
  return {
    ...lv,
    account: ev,
    host: tv ?? null,
    username: iv ?? ev,
    createdAt: new Date(ov),
    subscriptionType: av ?? null,
    installationDateApp: new Date(sv)
  };
}
function Nd$1(rv) {
  const { host: tv, ...ev } = rv;
  return {
    ...ev,
    host: tv ?? null,
    plan: {}
  };
}
const Sd$1 = `${ln$3.apiUrls.restV1}/accounts/v2`;
let Ed$1 = class {
  async get(tv) {
    const ev = `${Sd$1}/${tv}`, { data: iv } = await en$3({
      url: ev
    });
    return iv ? Nd$1(iv) : null;
  }
};
const Ad$1 = `${ln$3.apiUrls.restV1}/accounts/v2/pvt`;
let Od$1 = class {
  async get(tv, ev) {
    const iv = `${Ad$1}/${tv}`, { data: ov } = await en$3({
      url: iv,
      headers: {
        authorization: `Bearer ${ev}`
      }
    });
    return ov ? bd$1(ov) : null;
  }
}, wd$1 = class {
  constructor(tv, ev, iv) {
    this.publicAccountRepo = tv, this.privateAccountRepo = ev, this.accountPlanRepo = iv;
  }
  // async get(name: string, authToken: string): Promise<PrivateNizzaAccount>;
  // async get(name: string, authToken?: undefined): Promise<NizzaAccount>;
  async get(tv, ev) {
    try {
      const iv = ev ? await this.privateAccountRepo.get(tv, ev) : await this.publicAccountRepo.get(tv);
      if (!iv)
        throw new as$2(tv);
      const ov = await this.accountPlanRepo.get(iv.descriptionPlan);
      if (!ov)
        throw new as$2(iv.descriptionPlan);
      return { ...iv, plan: ov };
    } catch (iv) {
      throw new xa$3(iv);
    }
  }
};
const Td$1 = new Ed$1(), Cd$1 = new Od$1(), xd$1 = new _d$1(), Rd$1 = new wd$1(
  Td$1,
  Cd$1,
  xd$1
);
async function Dd$1(rv, tv) {
  return Rd$1.get(rv, tv);
}
var Pd$1 = /* @__PURE__ */ ((rv) => (rv.English = "en", rv.Spanish = "es", rv.Portuguese = "pt", rv))(Pd$1 || {}), So$3 = /* @__PURE__ */ ((rv) => (rv.Created = "CREATED", rv.Finalized = "FINALIZED", rv.Live = "LIVE", rv.Starting = "STARTING", rv))(So$3 || {}), Eo$3 = /* @__PURE__ */ ((rv) => (rv.Add = "add", rv.Remove = "remove", rv))(Eo$3 || {}), Ao$3 = /* @__PURE__ */ ((rv) => (rv.Active = "active", rv.Inactive = "inactive", rv))(Ao$3 || {});
const Md$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "AddCollection" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "CreateCollectionInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "createCollection" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "CollectionSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, Vd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "DeleteCollection" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "QueryInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "deleteCollection" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, jd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FindCollection" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "QueryInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "findCollection" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "CollectionSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "description" } }, { kind: "Field", name: { kind: "Name", value: "status" } }, { kind: "Field", name: { kind: "Name", value: "createdat" } }, { kind: "Field", name: { kind: "Name", value: "products" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "title" } }, { kind: "Field", name: { kind: "Name", value: "link" } }, { kind: "Field", name: { kind: "Name", value: "pictures" } }, { kind: "Field", name: { kind: "Name", value: "price" } }, { kind: "Field", name: { kind: "Name", value: "salesprice" } }, { kind: "Field", name: { kind: "Name", value: "status" } }, { kind: "Field", name: { kind: "Name", value: "createdat" } }] } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, Bd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "GetAllCollections" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "QueryInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "getAllCollection" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "CollectionSuccessArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "description" } }, { kind: "Field", name: { kind: "Name", value: "status" } }, { kind: "Field", name: { kind: "Name", value: "createdat" } }, { kind: "Field", name: { kind: "Name", value: "products" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "title" } }, { kind: "Field", name: { kind: "Name", value: "link" } }, { kind: "Field", name: { kind: "Name", value: "pictures" } }, { kind: "Field", name: { kind: "Name", value: "price" } }, { kind: "Field", name: { kind: "Name", value: "salesprice" } }, { kind: "Field", name: { kind: "Name", value: "status" } }, { kind: "Field", name: { kind: "Name", value: "createdat" } }] } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, Hd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "ManageCollectionProduct" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "ManageCollectionProductInInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "manageCollectionProduct" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, qd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "SearchCollections" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "QueryInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "searchCollection" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "CollectionSuccessArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "description" } }, { kind: "Field", name: { kind: "Name", value: "status" } }, { kind: "Field", name: { kind: "Name", value: "createdat" } }, { kind: "Field", name: { kind: "Name", value: "products" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "title" } }, { kind: "Field", name: { kind: "Name", value: "link" } }, { kind: "Field", name: { kind: "Name", value: "pictures" } }, { kind: "Field", name: { kind: "Name", value: "price" } }, { kind: "Field", name: { kind: "Name", value: "salesprice" } }, { kind: "Field", name: { kind: "Name", value: "status" } }, { kind: "Field", name: { kind: "Name", value: "createdat" } }] } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, zd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "UpdateCollection" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "UpdateCollectionInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "updateCollection" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, Gd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FindMinimalEvent" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "FindEventInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "findEvent" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "EventData" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "eventName" } }, { kind: "Field", name: { kind: "Name", value: "thumbnailsPath" } }, { kind: "Field", name: { kind: "Name", value: "recordVideoPath" } }, { kind: "Field", name: { kind: "Name", value: "createdAt" } }, { kind: "Field", name: { kind: "Name", value: "status" } }, { kind: "Field", name: { kind: "Name", value: "thumbnails" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, Kd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "SearchMinimalEvents" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "SearchEventInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "searchEvent" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "EventArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "eventName" } }, { kind: "Field", name: { kind: "Name", value: "thumbnailsPath" } }, { kind: "Field", name: { kind: "Name", value: "recordVideoPath" } }, { kind: "Field", name: { kind: "Name", value: "createdAt" } }, { kind: "Field", name: { kind: "Name", value: "status" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, Wd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "BlockUser" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "BlockUserInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "blockUser" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "BlockUserSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }] } }] } }] }, Jd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "ChangeAccountUsername" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "ChangeUsernameInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "changeAccountUsername" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ChangeUsernameSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }] } }] } }] }, Yd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "DeleteChatMessage" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "DeleteChatInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "deleteChatMessage" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "DeleteChatMessageSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }] } }] } }] }, Qd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "GetAllChatMessage" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "GetAllChatMessageInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "getAllChatMessage" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ChatMessageArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "connectionId" } }, { kind: "Field", name: { kind: "Name", value: "data" } }, { kind: "Field", name: { kind: "Name", value: "email" } }, { kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "idEvent" } }, { kind: "Field", name: { kind: "Name", value: "sendDate" } }, { kind: "Field", name: { kind: "Name", value: "sessionId" } }, { kind: "Field", name: { kind: "Name", value: "type" } }, { kind: "Field", name: { kind: "Name", value: "username" } }, { kind: "Field", name: { kind: "Name", value: "isAdmin" } }, { kind: "Field", name: { kind: "Name", value: "urlGif" } }, { kind: "Field", name: { kind: "Name", value: "second" } }, { kind: "Field", name: { kind: "Name", value: "ip" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, Oo$3 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "GetChatRoomToken" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "GetChatRoomInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "getChatRoomToken" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ChatRoomTokenData" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "token" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, Xd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "PinChatMessage" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "PinChatInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "pinChatMessage" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "PinChatMessageSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }] } }] } }] }, Zd$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "highlightProduct" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "HighlightProductInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "highlightProduct" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "HighlightProductSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }] } }] } }] }, ef$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "deleteAllCustomization" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "CustomPlayerInputAccount" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "deleteAllCustomPlayer" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, tf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "getAllCustomization" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "QueryInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "getAllCustomPlayer" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "CustomPlayerSuccessArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "account" } }, { kind: "Field", name: { kind: "Name", value: "data" } }, { kind: "Field", name: { kind: "Name", value: "section" } }, { kind: "Field", name: { kind: "Name", value: "id" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, nf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "updateCustomization" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "CustomPlayerInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "updateCustomPlayer" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, rf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "sendAddToCart" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "AddToCartInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "sendAddToCart" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "AddToCartSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }] } }] } }] }, sf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "GetTimeLine" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "GetTimeLineInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "getTimeLine" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "TimeLineArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "time" } }, { kind: "Field", name: { kind: "Name", value: "likes" } }, { kind: "Field", name: { kind: "Name", value: "comments" } }, { kind: "Field", name: { kind: "Name", value: "viewers" } }, { kind: "Field", name: { kind: "Name", value: "orders" } }, { kind: "Field", name: { kind: "Name", value: "minute" } }, { kind: "Field", name: { kind: "Name", value: "hour" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, af$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "AppendProductsToSnackVideo" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "RelateToProductsSnackVideoInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "appendProductsSnackVideo" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ActionSnackVideoSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, of$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "CreatePlayList" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "CreatePlayListInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "createPlayList" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "CreatePlayListSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }] } }] } }] }, lf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "CreateSnackVideoBatch" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "CreateSnackVideoInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "createSnackVideos" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "SnackVideoArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, uf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "DeleteRelationshipWithSnackVideo" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "SnackVideoRelationshipKeys" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "deleteRelationshipSnackVideo" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ActionSnackVideoSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "Error" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }] } }] } }] } }] }, cf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "DeleteSnackVideo" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "DeleteSnackVideoInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "deleteSnackVideo" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ActionSnackVideoSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }] } }] } }] }, df$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FindManySnackVideos" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "FindManySnackVideoInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "findManySnackVideos" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "SnackVideoArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "url" } }, { kind: "Field", name: { kind: "Name", value: "thumbnailUrl" } }, { kind: "Field", name: { kind: "Name", value: "uploadProgress" } }, { kind: "Field", name: { kind: "Name", value: "duration" } }, { kind: "Field", name: { kind: "Name", value: "eventId" } }, { kind: "Field", name: { kind: "Name", value: "eventName" } }, { kind: "Field", name: { kind: "Name", value: "transmitionType" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, ff$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "GetAllSnackVideos" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "QueryInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "getAllSnackVideos" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "SnackVideoCreatedArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "snackVideos" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "url" } }, { kind: "Field", name: { kind: "Name", value: "thumbnailUrl" } }, { kind: "Field", name: { kind: "Name", value: "uploadProgress" } }, { kind: "Field", name: { kind: "Name", value: "duration" } }, { kind: "Field", name: { kind: "Name", value: "eventId" } }, { kind: "Field", name: { kind: "Name", value: "eventName" } }, { kind: "Field", name: { kind: "Name", value: "created" } }, { kind: "Field", name: { kind: "Name", value: "transmitionType" } }] } }, { kind: "Field", name: { kind: "Name", value: "cursor" } }, { kind: "Field", name: { kind: "Name", value: "totalItems" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, hf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "GetPlayLists" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "QueryInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "getPlayLists" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "PlayListArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "description" } }, { kind: "Field", name: { kind: "Name", value: "created" } }, { kind: "Field", name: { kind: "Name", value: "videoAmount" } }, { kind: "Field", name: { kind: "Name", value: "productAmount" } }, { kind: "Field", name: { kind: "Name", value: "updated" } }, { kind: "Field", name: { kind: "Name", value: "videos" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "thumbnailUrl" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "order" } }, { kind: "Field", name: { kind: "Name", value: "duration" } }, { kind: "Field", name: { kind: "Name", value: "transmitionType" } }] } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, pf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "GetSnackVideoRelationships" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "SnackVideoRelationshipInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "getRelationshipSnackVideos" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "RelationshipSnackVideoArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "sourceEntity" } }, { kind: "Field", name: { kind: "Name", value: "attributeId" } }] } }] } }] } }] } }] }, mf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "SearchSnackVideos" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "SearchInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "searchSnackVideos" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "SnackVideoCreatedArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "snackVideos" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "url" } }, { kind: "Field", name: { kind: "Name", value: "thumbnailUrl" } }, { kind: "Field", name: { kind: "Name", value: "uploadProgress" } }, { kind: "Field", name: { kind: "Name", value: "duration" } }, { kind: "Field", name: { kind: "Name", value: "eventId" } }, { kind: "Field", name: { kind: "Name", value: "eventName" } }, { kind: "Field", name: { kind: "Name", value: "created" } }] } }, { kind: "Field", name: { kind: "Name", value: "cursor" } }, { kind: "Field", name: { kind: "Name", value: "totalItems" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, gf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "mutation", name: { kind: "Name", value: "UpdatePlayList" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "UpdatePlayListInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "updatePlayList" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "UpdatePlayListSuccess" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }] } }] } }] } }] }, vf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FindByProductSnackVideo" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "FindByProductSnackVideoInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "findByProductSnackVideo" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "SnackVideoArray" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "url" } }, { kind: "Field", name: { kind: "Name", value: "thumbnailUrl" } }, { kind: "Field", name: { kind: "Name", value: "duration" } }, { kind: "Field", name: { kind: "Name", value: "transmitionType" } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, kf$1 = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "GetPlayList" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "data" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "GetPlayListQueryInput" } } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "getPlayList" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "data" }, value: { kind: "Variable", name: { kind: "Name", value: "data" } } }], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "PlayListData" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "data" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "description" } }, { kind: "Field", name: { kind: "Name", value: "videos" }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "productId" } }, { kind: "Field", name: { kind: "Name", value: "id" } }, { kind: "Field", name: { kind: "Name", value: "name" } }, { kind: "Field", name: { kind: "Name", value: "url" } }, { kind: "Field", name: { kind: "Name", value: "thumbnailUrl" } }, { kind: "Field", name: { kind: "Name", value: "duration" } }, { kind: "Field", name: { kind: "Name", value: "transmitionType" } }, { kind: "Field", name: { kind: "Name", value: "order" } }] } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "ErrorGeneral" } }, selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "message" } }, { kind: "Field", name: { kind: "Name", value: "statusCode" } }, { kind: "Field", name: { kind: "Name", value: "timestamp" } }] } }] } }] } }] }, fv = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  AddCollectionDocument: Md$1,
  AppendProductsToSnackVideoDocument: af$1,
  BlockUserDocument: Wd$1,
  ChangeAccountUsernameDocument: Jd$1,
  CreatePlayListDocument: of$1,
  CreateSnackVideoBatchDocument: lf$1,
  DeleteAllCustomizationDocument: ef$1,
  DeleteChatMessageDocument: Yd$1,
  DeleteCollectionDocument: Vd$1,
  DeleteRelationshipWithSnackVideoDocument: uf$1,
  DeleteSnackVideoDocument: cf$1,
  EventStatus: So$3,
  FindByProductSnackVideoDocument: vf$1,
  FindCollectionDocument: jd$1,
  FindManySnackVideosDocument: df$1,
  FindMinimalEventDocument: Gd$1,
  GetAllChatMessageDocument: Qd$1,
  GetAllCollectionsDocument: Bd$1,
  GetAllCustomizationDocument: tf$1,
  GetAllSnackVideosDocument: ff$1,
  GetChatRoomTokenDocument: Oo$3,
  GetPlayListDocument: kf$1,
  GetPlayListsDocument: hf$1,
  GetSnackVideoRelationshipsDocument: pf$1,
  GetTimeLineDocument: sf$1,
  HighlightProductDocument: Zd$1,
  ManageCollectionProductDocument: Hd$1,
  Methods: Eo$3,
  PinChatMessageDocument: Xd$1,
  SearchCollectionsDocument: qd$1,
  SearchMinimalEventsDocument: Kd$1,
  SearchSnackVideosDocument: mf$1,
  SendAddToCartDocument: rf$1,
  Status: Ao$3,
  UpdateCollectionDocument: zd$1,
  UpdateCustomizationDocument: nf$1,
  UpdatePlayListDocument: gf$1
}, Symbol.toStringTag, { value: "Module" }));
var Pr$3 = /* @__PURE__ */ ((rv) => (rv.OPEN_TAB = "openTab", rv.OPEN_VARIATION_SELECTOR = "openVariationSelector", rv.ADD_TO_CART = "addToCart", rv))(Pr$3 || {}), Ge$3 = /* @__PURE__ */ ((rv) => (rv.Local = "local", rv.VtexLegacy = "vtexlegacy", rv.VtexIO = "vtexio", rv.VtexFastStore = "faststore", rv.Platform = "platform", rv.External = "external", rv))(Ge$3 || {}), wo$3 = /* @__PURE__ */ ((rv) => (rv.PROD = "prod", rv.DEV = "dev", rv.LOCAL = "local", rv))(wo$3 || {});
const { coreLogger: yf$1 } = xt$3();
qe$1.withPrefix(yf$1, "addToCartHooks");
function Sf$1(rv) {
  const { actionFactory: tv, userAddToCartConfig: ev } = rv, iv = (ov) => Object.entries(ov ?? {}).reduce(
    (av, [sv, lv]) => ({
      ...av,
      [sv]: (uv) => ({
        type: sv,
        exec: () => lv(uv)
      })
    }),
    {}
  );
  return {
    ...iv(tv),
    ...iv(ev == null ? void 0 : ev.actionFactory)
  };
}
let Ef$1 = class {
  constructor(tv) {
    R$1(this, "aggregate"), R$1(this, "_numSetPropsApplied", 0), this.aggregate = tv;
  }
  setProps(tv) {
    for (const [ev, iv] of Object.entries(tv))
      ev in this.aggregate && (this.aggregate[ev] = iv);
    this._numSetPropsApplied++;
  }
  get isFirstSetProps() {
    return this._numSetPropsApplied === 1;
  }
};
function Af$1(rv) {
  return new Ef$1(rv);
}
class mv {
  constructor(tv) {
    R$1(this, "_value"), tv !== void 0 && (this._value = tv);
  }
  get value() {
    return this._value;
  }
}
var Z$2 = /* @__PURE__ */ ((rv) => (rv.GENERAL_ERROR = "GENERAL_ERROR", rv.AXIOS_ERROR = "AXIOS_ERROR", rv.NETWORK_ERROR = "NETWORK_ERROR", rv.CONFIG_ERROR = "CONFIG_ERROR", rv.TIMEOUT_ERROR = "TIMEOUT_ERROR", rv.AUTH_ERROR = "AUTH_ERROR", rv.NOT_FOUND = "NOT_FOUND", rv.VALIDATION_ERROR = "VALIDATION_ERROR", rv.SERVER_ERROR = "SERVER_ERROR", rv.BAD_REQUEST = "BAD_REQUEST", rv.UNAUTHORIZED = "UNAUTHORIZED", rv.FORBIDDEN = "FORBIDDEN", rv.CONFLICT = "CONFLICT", rv.GONE = "GONE", rv.UNSUPPORTED_MEDIA_TYPE = "UNSUPPORTED_MEDIA_TYPE", rv.TOO_MANY_REQUESTS = "TOO_MANY_REQUESTS", rv.INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR", rv.SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE", rv))(Z$2 || {});
function To$3(rv, tv) {
  return function() {
    return rv.apply(tv, arguments);
  };
}
const { toString: Of$1 } = Object.prototype, { getPrototypeOf: $r$3 } = Object, ci$3 = /* @__PURE__ */ ((rv) => (tv) => {
  const ev = Of$1.call(tv);
  return rv[ev] || (rv[ev] = ev.slice(8, -1).toLowerCase());
})(/* @__PURE__ */ Object.create(null)), be$2 = (rv) => (rv = rv.toLowerCase(), (tv) => ci$3(tv) === rv), di$3 = (rv) => (tv) => typeof tv === rv, { isArray: Rt$2 } = Array, tn$3 = di$3("undefined");
function wf$1(rv) {
  return rv !== null && !tn$3(rv) && rv.constructor !== null && !tn$3(rv.constructor) && oe$3(rv.constructor.isBuffer) && rv.constructor.isBuffer(rv);
}
const Co$3 = be$2("ArrayBuffer");
function Tf$1(rv) {
  let tv;
  return typeof ArrayBuffer < "u" && ArrayBuffer.isView ? tv = ArrayBuffer.isView(rv) : tv = rv && rv.buffer && Co$3(rv.buffer), tv;
}
const Cf$1 = di$3("string"), oe$3 = di$3("function"), xo$3 = di$3("number"), fi$3 = (rv) => rv !== null && typeof rv == "object", xf$1 = (rv) => rv === !0 || rv === !1, wn$3 = (rv) => {
  if (ci$3(rv) !== "object")
    return !1;
  const tv = $r$3(rv);
  return (tv === null || tv === Object.prototype || Object.getPrototypeOf(tv) === null) && !(Symbol.toStringTag in rv) && !(Symbol.iterator in rv);
}, Rf$1 = be$2("Date"), Ff$1 = be$2("File"), Df$1 = be$2("Blob"), If$1 = be$2("FileList"), Lf$1 = (rv) => fi$3(rv) && oe$3(rv.pipe), Pf$1 = (rv) => {
  let tv;
  return rv && (typeof FormData == "function" && rv instanceof FormData || oe$3(rv.append) && ((tv = ci$3(rv)) === "formdata" || // detect form-data instance
  tv === "object" && oe$3(rv.toString) && rv.toString() === "[object FormData]"));
}, $f$1 = be$2("URLSearchParams"), [Uf$1, Mf$1, Vf$1, jf$1] = ["ReadableStream", "Request", "Response", "Headers"].map(be$2), Bf$1 = (rv) => rv.trim ? rv.trim() : rv.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
function hn$2(rv, tv, { allOwnKeys: ev = !1 } = {}) {
  if (rv === null || typeof rv > "u")
    return;
  let iv, ov;
  if (typeof rv != "object" && (rv = [rv]), Rt$2(rv))
    for (iv = 0, ov = rv.length; iv < ov; iv++)
      tv.call(null, rv[iv], iv, rv);
  else {
    const av = ev ? Object.getOwnPropertyNames(rv) : Object.keys(rv), sv = av.length;
    let lv;
    for (iv = 0; iv < sv; iv++)
      lv = av[iv], tv.call(null, rv[lv], lv, rv);
  }
}
function Ro$3(rv, tv) {
  tv = tv.toLowerCase();
  const ev = Object.keys(rv);
  let iv = ev.length, ov;
  for (; iv-- > 0; )
    if (ov = ev[iv], tv === ov.toLowerCase())
      return ov;
  return null;
}
const Ye$3 = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : global, Fo$3 = (rv) => !tn$3(rv) && rv !== Ye$3;
function cr$3() {
  const { caseless: rv } = Fo$3(this) && this || {}, tv = {}, ev = (iv, ov) => {
    const av = rv && Ro$3(tv, ov) || ov;
    wn$3(tv[av]) && wn$3(iv) ? tv[av] = cr$3(tv[av], iv) : wn$3(iv) ? tv[av] = cr$3({}, iv) : Rt$2(iv) ? tv[av] = iv.slice() : tv[av] = iv;
  };
  for (let iv = 0, ov = arguments.length; iv < ov; iv++)
    arguments[iv] && hn$2(arguments[iv], ev);
  return tv;
}
const Hf$1 = (rv, tv, ev, { allOwnKeys: iv } = {}) => (hn$2(tv, (ov, av) => {
  ev && oe$3(ov) ? rv[av] = To$3(ov, ev) : rv[av] = ov;
}, { allOwnKeys: iv }), rv), qf$1 = (rv) => (rv.charCodeAt(0) === 65279 && (rv = rv.slice(1)), rv), zf$1 = (rv, tv, ev, iv) => {
  rv.prototype = Object.create(tv.prototype, iv), rv.prototype.constructor = rv, Object.defineProperty(rv, "super", {
    value: tv.prototype
  }), ev && Object.assign(rv.prototype, ev);
}, Gf$1 = (rv, tv, ev, iv) => {
  let ov, av, sv;
  const lv = {};
  if (tv = tv || {}, rv == null)
    return tv;
  do {
    for (ov = Object.getOwnPropertyNames(rv), av = ov.length; av-- > 0; )
      sv = ov[av], (!iv || iv(sv, rv, tv)) && !lv[sv] && (tv[sv] = rv[sv], lv[sv] = !0);
    rv = ev !== !1 && $r$3(rv);
  } while (rv && (!ev || ev(rv, tv)) && rv !== Object.prototype);
  return tv;
}, Kf$1 = (rv, tv, ev) => {
  rv = String(rv), (ev === void 0 || ev > rv.length) && (ev = rv.length), ev -= tv.length;
  const iv = rv.indexOf(tv, ev);
  return iv !== -1 && iv === ev;
}, Wf$1 = (rv) => {
  if (!rv)
    return null;
  if (Rt$2(rv))
    return rv;
  let tv = rv.length;
  if (!xo$3(tv))
    return null;
  const ev = new Array(tv);
  for (; tv-- > 0; )
    ev[tv] = rv[tv];
  return ev;
}, Jf$1 = /* @__PURE__ */ ((rv) => (tv) => rv && tv instanceof rv)(typeof Uint8Array < "u" && $r$3(Uint8Array)), Yf$1 = (rv, tv) => {
  const ev = (rv && rv[Symbol.iterator]).call(rv);
  let iv;
  for (; (iv = ev.next()) && !iv.done; ) {
    const ov = iv.value;
    tv.call(rv, ov[0], ov[1]);
  }
}, Qf$1 = (rv, tv) => {
  let ev;
  const iv = [];
  for (; (ev = rv.exec(tv)) !== null; )
    iv.push(ev);
  return iv;
}, Xf$1 = be$2("HTMLFormElement"), Zf$1 = (rv) => rv.toLowerCase().replace(
  /[-_\s]([a-z\d])(\w*)/g,
  function(tv, ev, iv) {
    return ev.toUpperCase() + iv;
  }
), Ns$1 = (({ hasOwnProperty: rv }) => (tv, ev) => rv.call(tv, ev))(Object.prototype), eh$1 = be$2("RegExp"), Do$3 = (rv, tv) => {
  const ev = Object.getOwnPropertyDescriptors(rv), iv = {};
  hn$2(ev, (ov, av) => {
    let sv;
    (sv = tv(ov, av, rv)) !== !1 && (iv[av] = sv || ov);
  }), Object.defineProperties(rv, iv);
}, th$1 = (rv) => {
  Do$3(rv, (tv, ev) => {
    if (oe$3(rv) && ["arguments", "caller", "callee"].indexOf(ev) !== -1)
      return !1;
    const iv = rv[ev];
    if (oe$3(iv)) {
      if (tv.enumerable = !1, "writable" in tv) {
        tv.writable = !1;
        return;
      }
      tv.set || (tv.set = () => {
        throw Error("Can not rewrite read-only method '" + ev + "'");
      });
    }
  });
}, nh$1 = (rv, tv) => {
  const ev = {}, iv = (ov) => {
    ov.forEach((av) => {
      ev[av] = !0;
    });
  };
  return Rt$2(rv) ? iv(rv) : iv(String(rv).split(tv)), ev;
}, ih$1 = () => {
}, rh$1 = (rv, tv) => rv != null && Number.isFinite(rv = +rv) ? rv : tv, Ri$3 = "abcdefghijklmnopqrstuvwxyz", Ss$3 = "0123456789", Io$3 = {
  DIGIT: Ss$3,
  ALPHA: Ri$3,
  ALPHA_DIGIT: Ri$3 + Ri$3.toUpperCase() + Ss$3
}, sh$1 = (rv = 16, tv = Io$3.ALPHA_DIGIT) => {
  let ev = "";
  const { length: iv } = tv;
  for (; rv--; )
    ev += tv[Math.random() * iv | 0];
  return ev;
};
function ah$1(rv) {
  return !!(rv && oe$3(rv.append) && rv[Symbol.toStringTag] === "FormData" && rv[Symbol.iterator]);
}
const oh$1 = (rv) => {
  const tv = new Array(10), ev = (iv, ov) => {
    if (fi$3(iv)) {
      if (tv.indexOf(iv) >= 0)
        return;
      if (!("toJSON" in iv)) {
        tv[ov] = iv;
        const av = Rt$2(iv) ? [] : {};
        return hn$2(iv, (sv, lv) => {
          const uv = ev(sv, ov + 1);
          !tn$3(uv) && (av[lv] = uv);
        }), tv[ov] = void 0, av;
      }
    }
    return iv;
  };
  return ev(rv, 0);
}, lh$1 = be$2("AsyncFunction"), uh$1 = (rv) => rv && (fi$3(rv) || oe$3(rv)) && oe$3(rv.then) && oe$3(rv.catch), Lo$3 = ((rv, tv) => rv ? setImmediate : tv ? ((ev, iv) => (Ye$3.addEventListener("message", ({ source: ov, data: av }) => {
  ov === Ye$3 && av === ev && iv.length && iv.shift()();
}, !1), (ov) => {
  iv.push(ov), Ye$3.postMessage(ev, "*");
}))(`axios@${Math.random()}`, []) : (ev) => setTimeout(ev))(
  typeof setImmediate == "function",
  oe$3(Ye$3.postMessage)
), ch = typeof queueMicrotask < "u" ? queueMicrotask.bind(Ye$3) : typeof process < "u" && process.nextTick || Lo$3, y$2 = {
  isArray: Rt$2,
  isArrayBuffer: Co$3,
  isBuffer: wf$1,
  isFormData: Pf$1,
  isArrayBufferView: Tf$1,
  isString: Cf$1,
  isNumber: xo$3,
  isBoolean: xf$1,
  isObject: fi$3,
  isPlainObject: wn$3,
  isReadableStream: Uf$1,
  isRequest: Mf$1,
  isResponse: Vf$1,
  isHeaders: jf$1,
  isUndefined: tn$3,
  isDate: Rf$1,
  isFile: Ff$1,
  isBlob: Df$1,
  isRegExp: eh$1,
  isFunction: oe$3,
  isStream: Lf$1,
  isURLSearchParams: $f$1,
  isTypedArray: Jf$1,
  isFileList: If$1,
  forEach: hn$2,
  merge: cr$3,
  extend: Hf$1,
  trim: Bf$1,
  stripBOM: qf$1,
  inherits: zf$1,
  toFlatObject: Gf$1,
  kindOf: ci$3,
  kindOfTest: be$2,
  endsWith: Kf$1,
  toArray: Wf$1,
  forEachEntry: Yf$1,
  matchAll: Qf$1,
  isHTMLForm: Xf$1,
  hasOwnProperty: Ns$1,
  hasOwnProp: Ns$1,
  // an alias to avoid ESLint no-prototype-builtins detection
  reduceDescriptors: Do$3,
  freezeMethods: th$1,
  toObjectSet: nh$1,
  toCamelCase: Zf$1,
  noop: ih$1,
  toFiniteNumber: rh$1,
  findKey: Ro$3,
  global: Ye$3,
  isContextDefined: Fo$3,
  ALPHABET: Io$3,
  generateString: sh$1,
  isSpecCompliantForm: ah$1,
  toJSONObject: oh$1,
  isAsyncFn: lh$1,
  isThenable: uh$1,
  setImmediate: Lo$3,
  asap: ch
};
function P$2(rv, tv, ev, iv, ov) {
  Error.call(this), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack, this.message = rv, this.name = "AxiosError", tv && (this.code = tv), ev && (this.config = ev), iv && (this.request = iv), ov && (this.response = ov, this.status = ov.status ? ov.status : null);
}
y$2.inherits(P$2, Error, {
  toJSON: function() {
    return {
      // Standard
      message: this.message,
      name: this.name,
      // Microsoft
      description: this.description,
      number: this.number,
      // Mozilla
      fileName: this.fileName,
      lineNumber: this.lineNumber,
      columnNumber: this.columnNumber,
      stack: this.stack,
      // Axios
      config: y$2.toJSONObject(this.config),
      code: this.code,
      status: this.status
    };
  }
});
const Po$3 = P$2.prototype, $o$3 = {};
[
  "ERR_BAD_OPTION_VALUE",
  "ERR_BAD_OPTION",
  "ECONNABORTED",
  "ETIMEDOUT",
  "ERR_NETWORK",
  "ERR_FR_TOO_MANY_REDIRECTS",
  "ERR_DEPRECATED",
  "ERR_BAD_RESPONSE",
  "ERR_BAD_REQUEST",
  "ERR_CANCELED",
  "ERR_NOT_SUPPORT",
  "ERR_INVALID_URL"
  // eslint-disable-next-line func-names
].forEach((rv) => {
  $o$3[rv] = { value: rv };
});
Object.defineProperties(P$2, $o$3);
Object.defineProperty(Po$3, "isAxiosError", { value: !0 });
P$2.from = (rv, tv, ev, iv, ov, av) => {
  const sv = Object.create(Po$3);
  return y$2.toFlatObject(rv, sv, function(lv) {
    return lv !== Error.prototype;
  }, (lv) => lv !== "isAxiosError"), P$2.call(sv, rv.message, tv, ev, iv, ov), sv.cause = rv, sv.name = rv.name, av && Object.assign(sv, av), sv;
};
const dh = null;
function dr$3(rv) {
  return y$2.isPlainObject(rv) || y$2.isArray(rv);
}
function Uo$3(rv) {
  return y$2.endsWith(rv, "[]") ? rv.slice(0, -2) : rv;
}
function Es$3(rv, tv, ev) {
  return rv ? rv.concat(tv).map(function(iv, ov) {
    return iv = Uo$3(iv), !ev && ov ? "[" + iv + "]" : iv;
  }).join(ev ? "." : "") : tv;
}
function fh$1(rv) {
  return y$2.isArray(rv) && !rv.some(dr$3);
}
const hh$1 = y$2.toFlatObject(y$2, {}, null, function(rv) {
  return /^is[A-Z]/.test(rv);
});
function hi$3(rv, tv, ev) {
  if (!y$2.isObject(rv))
    throw new TypeError("target must be an object");
  tv = tv || new FormData(), ev = y$2.toFlatObject(ev, {
    metaTokens: !0,
    dots: !1,
    indexes: !1
  }, !1, function(yv, Sv) {
    return !y$2.isUndefined(Sv[yv]);
  });
  const iv = ev.metaTokens, ov = ev.visitor || cv, av = ev.dots, sv = ev.indexes, lv = (ev.Blob || typeof Blob < "u" && Blob) && y$2.isSpecCompliantForm(tv);
  if (!y$2.isFunction(ov))
    throw new TypeError("visitor must be a function");
  function uv(yv) {
    if (yv === null)
      return "";
    if (y$2.isDate(yv))
      return yv.toISOString();
    if (!lv && y$2.isBlob(yv))
      throw new P$2("Blob is not supported. Use a Buffer instead.");
    return y$2.isArrayBuffer(yv) || y$2.isTypedArray(yv) ? lv && typeof Blob == "function" ? new Blob([yv]) : Buffer.from(yv) : yv;
  }
  function cv(yv, Sv, _v) {
    let Ev = yv;
    if (yv && !_v && typeof yv == "object") {
      if (y$2.endsWith(Sv, "{}"))
        Sv = iv ? Sv : Sv.slice(0, -2), yv = JSON.stringify(yv);
      else if (y$2.isArray(yv) && fh$1(yv) || (y$2.isFileList(yv) || y$2.endsWith(Sv, "[]")) && (Ev = y$2.toArray(yv)))
        return Sv = Uo$3(Sv), Ev.forEach(function(wv, xv) {
          !(y$2.isUndefined(wv) || wv === null) && tv.append(
            // eslint-disable-next-line no-nested-ternary
            sv === !0 ? Es$3([Sv], xv, av) : sv === null ? Sv : Sv + "[]",
            uv(wv)
          );
        }), !1;
    }
    return dr$3(yv) ? !0 : (tv.append(Es$3(_v, Sv, av), uv(yv)), !1);
  }
  const dv = [], hv = Object.assign(hh$1, {
    defaultVisitor: cv,
    convertValue: uv,
    isVisitable: dr$3
  });
  function pv(yv, Sv) {
    if (!y$2.isUndefined(yv)) {
      if (dv.indexOf(yv) !== -1)
        throw Error("Circular reference detected in " + Sv.join("."));
      dv.push(yv), y$2.forEach(yv, function(_v, Ev) {
        (!(y$2.isUndefined(_v) || _v === null) && ov.call(
          tv,
          _v,
          y$2.isString(Ev) ? Ev.trim() : Ev,
          Sv,
          hv
        )) === !0 && pv(_v, Sv ? Sv.concat(Ev) : [Ev]);
      }), dv.pop();
    }
  }
  if (!y$2.isObject(rv))
    throw new TypeError("data must be an object");
  return pv(rv), tv;
}
function As$2(rv) {
  const tv = {
    "!": "%21",
    "'": "%27",
    "(": "%28",
    ")": "%29",
    "~": "%7E",
    "%20": "+",
    "%00": "\0"
  };
  return encodeURIComponent(rv).replace(/[!'()~]|%20|%00/g, function(ev) {
    return tv[ev];
  });
}
function Ur$2(rv, tv) {
  this._pairs = [], rv && hi$3(rv, this, tv);
}
const Mo$2 = Ur$2.prototype;
Mo$2.append = function(rv, tv) {
  this._pairs.push([rv, tv]);
};
Mo$2.toString = function(rv) {
  const tv = rv ? function(ev) {
    return rv.call(this, ev, As$2);
  } : As$2;
  return this._pairs.map(function(ev) {
    return tv(ev[0]) + "=" + tv(ev[1]);
  }, "").join("&");
};
function ph$1(rv) {
  return encodeURIComponent(rv).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]");
}
function Vo$2(rv, tv, ev) {
  if (!tv)
    return rv;
  const iv = ev && ev.encode || ph$1, ov = ev && ev.serialize;
  let av;
  if (ov ? av = ov(tv, ev) : av = y$2.isURLSearchParams(tv) ? tv.toString() : new Ur$2(tv, ev).toString(iv), av) {
    const sv = rv.indexOf("#");
    sv !== -1 && (rv = rv.slice(0, sv)), rv += (rv.indexOf("?") === -1 ? "?" : "&") + av;
  }
  return rv;
}
let Os$2 = class {
  constructor() {
    this.handlers = [];
  }
  /**
   * Add a new interceptor to the stack
   *
   * @param {Function} fulfilled The function to handle `then` for a `Promise`
   * @param {Function} rejected The function to handle `reject` for a `Promise`
   *
   * @return {Number} An ID used to remove interceptor later
   */
  use(tv, ev, iv) {
    return this.handlers.push({
      fulfilled: tv,
      rejected: ev,
      synchronous: iv ? iv.synchronous : !1,
      runWhen: iv ? iv.runWhen : null
    }), this.handlers.length - 1;
  }
  /**
   * Remove an interceptor from the stack
   *
   * @param {Number} id The ID that was returned by `use`
   *
   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
   */
  eject(tv) {
    this.handlers[tv] && (this.handlers[tv] = null);
  }
  /**
   * Clear all interceptors from the stack
   *
   * @returns {void}
   */
  clear() {
    this.handlers && (this.handlers = []);
  }
  /**
   * Iterate over all the registered interceptors
   *
   * This method is particularly useful for skipping over any
   * interceptors that may have become `null` calling `eject`.
   *
   * @param {Function} fn The function to call for each interceptor
   *
   * @returns {void}
   */
  forEach(tv) {
    y$2.forEach(this.handlers, function(ev) {
      ev !== null && tv(ev);
    });
  }
};
const jo$3 = {
  silentJSONParsing: !0,
  forcedJSONParsing: !0,
  clarifyTimeoutError: !1
}, mh$1 = typeof URLSearchParams < "u" ? URLSearchParams : Ur$2, gh$1 = typeof FormData < "u" ? FormData : null, vh$1 = typeof Blob < "u" ? Blob : null, kh = {
  isBrowser: !0,
  classes: {
    URLSearchParams: mh$1,
    FormData: gh$1,
    Blob: vh$1
  },
  protocols: ["http", "https", "file", "blob", "url", "data"]
}, Mr$2 = typeof window < "u" && typeof document < "u", fr$2 = typeof navigator == "object" && navigator || void 0, yh$1 = Mr$2 && (!fr$2 || ["ReactNative", "NativeScript", "NS"].indexOf(fr$2.product) < 0), _h$1 = typeof WorkerGlobalScope < "u" && // eslint-disable-next-line no-undef
self instanceof WorkerGlobalScope && typeof self.importScripts == "function", bh$1 = Mr$2 && window.location.href || "http://localhost", Nh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  hasBrowserEnv: Mr$2,
  hasStandardBrowserEnv: yh$1,
  hasStandardBrowserWebWorkerEnv: _h$1,
  navigator: fr$2,
  origin: bh$1
}, Symbol.toStringTag, { value: "Module" })), te$2 = {
  ...Nh,
  ...kh
};
function Sh$1(rv, tv) {
  return hi$3(rv, new te$2.classes.URLSearchParams(), Object.assign({
    visitor: function(ev, iv, ov, av) {
      return te$2.isNode && y$2.isBuffer(ev) ? (this.append(iv, ev.toString("base64")), !1) : av.defaultVisitor.apply(this, arguments);
    }
  }, tv));
}
function Eh$1(rv) {
  return y$2.matchAll(/\w+|\[(\w*)]/g, rv).map((tv) => tv[0] === "[]" ? "" : tv[1] || tv[0]);
}
function Ah$1(rv) {
  const tv = {}, ev = Object.keys(rv);
  let iv;
  const ov = ev.length;
  let av;
  for (iv = 0; iv < ov; iv++)
    av = ev[iv], tv[av] = rv[av];
  return tv;
}
function Bo$3(rv) {
  function tv(ev, iv, ov, av) {
    let sv = ev[av++];
    if (sv === "__proto__")
      return !0;
    const lv = Number.isFinite(+sv), uv = av >= ev.length;
    return sv = !sv && y$2.isArray(ov) ? ov.length : sv, uv ? (y$2.hasOwnProp(ov, sv) ? ov[sv] = [ov[sv], iv] : ov[sv] = iv, !lv) : ((!ov[sv] || !y$2.isObject(ov[sv])) && (ov[sv] = []), tv(ev, iv, ov[sv], av) && y$2.isArray(ov[sv]) && (ov[sv] = Ah$1(ov[sv])), !lv);
  }
  if (y$2.isFormData(rv) && y$2.isFunction(rv.entries)) {
    const ev = {};
    return y$2.forEachEntry(rv, (iv, ov) => {
      tv(Eh$1(iv), ov, ev, 0);
    }), ev;
  }
  return null;
}
function Oh(rv, tv, ev) {
  if (y$2.isString(rv))
    try {
      return (tv || JSON.parse)(rv), y$2.trim(rv);
    } catch (iv) {
      if (iv.name !== "SyntaxError")
        throw iv;
    }
  return (0, JSON.stringify)(rv);
}
const pn$2 = {
  transitional: jo$3,
  adapter: ["xhr", "http", "fetch"],
  transformRequest: [function(rv, tv) {
    const ev = tv.getContentType() || "", iv = ev.indexOf("application/json") > -1, ov = y$2.isObject(rv);
    if (ov && y$2.isHTMLForm(rv) && (rv = new FormData(rv)), y$2.isFormData(rv))
      return iv ? JSON.stringify(Bo$3(rv)) : rv;
    if (y$2.isArrayBuffer(rv) || y$2.isBuffer(rv) || y$2.isStream(rv) || y$2.isFile(rv) || y$2.isBlob(rv) || y$2.isReadableStream(rv))
      return rv;
    if (y$2.isArrayBufferView(rv))
      return rv.buffer;
    if (y$2.isURLSearchParams(rv))
      return tv.setContentType("application/x-www-form-urlencoded;charset=utf-8", !1), rv.toString();
    let av;
    if (ov) {
      if (ev.indexOf("application/x-www-form-urlencoded") > -1)
        return Sh$1(rv, this.formSerializer).toString();
      if ((av = y$2.isFileList(rv)) || ev.indexOf("multipart/form-data") > -1) {
        const sv = this.env && this.env.FormData;
        return hi$3(
          av ? { "files[]": rv } : rv,
          sv && new sv(),
          this.formSerializer
        );
      }
    }
    return ov || iv ? (tv.setContentType("application/json", !1), Oh(rv)) : rv;
  }],
  transformResponse: [function(rv) {
    const tv = this.transitional || pn$2.transitional, ev = tv && tv.forcedJSONParsing, iv = this.responseType === "json";
    if (y$2.isResponse(rv) || y$2.isReadableStream(rv))
      return rv;
    if (rv && y$2.isString(rv) && (ev && !this.responseType || iv)) {
      const ov = !(tv && tv.silentJSONParsing) && iv;
      try {
        return JSON.parse(rv);
      } catch (av) {
        if (ov)
          throw av.name === "SyntaxError" ? P$2.from(av, P$2.ERR_BAD_RESPONSE, this, null, this.response) : av;
      }
    }
    return rv;
  }],
  /**
   * A timeout in milliseconds to abort a request. If set to 0 (default) a
   * timeout is not created.
   */
  timeout: 0,
  xsrfCookieName: "XSRF-TOKEN",
  xsrfHeaderName: "X-XSRF-TOKEN",
  maxContentLength: -1,
  maxBodyLength: -1,
  env: {
    FormData: te$2.classes.FormData,
    Blob: te$2.classes.Blob
  },
  validateStatus: function(rv) {
    return rv >= 200 && rv < 300;
  },
  headers: {
    common: {
      Accept: "application/json, text/plain, */*",
      "Content-Type": void 0
    }
  }
};
y$2.forEach(["delete", "get", "head", "post", "put", "patch"], (rv) => {
  pn$2.headers[rv] = {};
});
const wh$1 = y$2.toObjectSet([
  "age",
  "authorization",
  "content-length",
  "content-type",
  "etag",
  "expires",
  "from",
  "host",
  "if-modified-since",
  "if-unmodified-since",
  "last-modified",
  "location",
  "max-forwards",
  "proxy-authorization",
  "referer",
  "retry-after",
  "user-agent"
]), Th$1 = (rv) => {
  const tv = {};
  let ev, iv, ov;
  return rv && rv.split(`
`).forEach(function(av) {
    ov = av.indexOf(":"), ev = av.substring(0, ov).trim().toLowerCase(), iv = av.substring(ov + 1).trim(), !(!ev || tv[ev] && wh$1[ev]) && (ev === "set-cookie" ? tv[ev] ? tv[ev].push(iv) : tv[ev] = [iv] : tv[ev] = tv[ev] ? tv[ev] + ", " + iv : iv);
  }), tv;
}, ws$2 = Symbol("internals");
function Lt$3(rv) {
  return rv && String(rv).trim().toLowerCase();
}
function Tn$3(rv) {
  return rv === !1 || rv == null ? rv : y$2.isArray(rv) ? rv.map(Tn$3) : String(rv);
}
function Ch$1(rv) {
  const tv = /* @__PURE__ */ Object.create(null), ev = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
  let iv;
  for (; iv = ev.exec(rv); )
    tv[iv[1]] = iv[2];
  return tv;
}
const xh$1 = (rv) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(rv.trim());
function Fi$3(rv, tv, ev, iv, ov) {
  if (y$2.isFunction(iv))
    return iv.call(this, tv, ev);
  if (ov && (tv = ev), !!y$2.isString(tv)) {
    if (y$2.isString(iv))
      return tv.indexOf(iv) !== -1;
    if (y$2.isRegExp(iv))
      return iv.test(tv);
  }
}
function Rh$1(rv) {
  return rv.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (tv, ev, iv) => ev.toUpperCase() + iv);
}
function Fh$1(rv, tv) {
  const ev = y$2.toCamelCase(" " + tv);
  ["get", "set", "has"].forEach((iv) => {
    Object.defineProperty(rv, iv + ev, {
      value: function(ov, av, sv) {
        return this[iv].call(this, tv, ov, av, sv);
      },
      configurable: !0
    });
  });
}
let ne$2 = class {
  constructor(tv) {
    tv && this.set(tv);
  }
  set(tv, ev, iv) {
    const ov = this;
    function av(lv, uv, cv) {
      const dv = Lt$3(uv);
      if (!dv)
        throw new Error("header name must be a non-empty string");
      const hv = y$2.findKey(ov, dv);
      (!hv || ov[hv] === void 0 || cv === !0 || cv === void 0 && ov[hv] !== !1) && (ov[hv || uv] = Tn$3(lv));
    }
    const sv = (lv, uv) => y$2.forEach(lv, (cv, dv) => av(cv, dv, uv));
    if (y$2.isPlainObject(tv) || tv instanceof this.constructor)
      sv(tv, ev);
    else if (y$2.isString(tv) && (tv = tv.trim()) && !xh$1(tv))
      sv(Th$1(tv), ev);
    else if (y$2.isHeaders(tv))
      for (const [lv, uv] of tv.entries())
        av(uv, lv, iv);
    else
      tv != null && av(ev, tv, iv);
    return this;
  }
  get(tv, ev) {
    if (tv = Lt$3(tv), tv) {
      const iv = y$2.findKey(this, tv);
      if (iv) {
        const ov = this[iv];
        if (!ev)
          return ov;
        if (ev === !0)
          return Ch$1(ov);
        if (y$2.isFunction(ev))
          return ev.call(this, ov, iv);
        if (y$2.isRegExp(ev))
          return ev.exec(ov);
        throw new TypeError("parser must be boolean|regexp|function");
      }
    }
  }
  has(tv, ev) {
    if (tv = Lt$3(tv), tv) {
      const iv = y$2.findKey(this, tv);
      return !!(iv && this[iv] !== void 0 && (!ev || Fi$3(this, this[iv], iv, ev)));
    }
    return !1;
  }
  delete(tv, ev) {
    const iv = this;
    let ov = !1;
    function av(sv) {
      if (sv = Lt$3(sv), sv) {
        const lv = y$2.findKey(iv, sv);
        lv && (!ev || Fi$3(iv, iv[lv], lv, ev)) && (delete iv[lv], ov = !0);
      }
    }
    return y$2.isArray(tv) ? tv.forEach(av) : av(tv), ov;
  }
  clear(tv) {
    const ev = Object.keys(this);
    let iv = ev.length, ov = !1;
    for (; iv--; ) {
      const av = ev[iv];
      (!tv || Fi$3(this, this[av], av, tv, !0)) && (delete this[av], ov = !0);
    }
    return ov;
  }
  normalize(tv) {
    const ev = this, iv = {};
    return y$2.forEach(this, (ov, av) => {
      const sv = y$2.findKey(iv, av);
      if (sv) {
        ev[sv] = Tn$3(ov), delete ev[av];
        return;
      }
      const lv = tv ? Rh$1(av) : String(av).trim();
      lv !== av && delete ev[av], ev[lv] = Tn$3(ov), iv[lv] = !0;
    }), this;
  }
  concat(...tv) {
    return this.constructor.concat(this, ...tv);
  }
  toJSON(tv) {
    const ev = /* @__PURE__ */ Object.create(null);
    return y$2.forEach(this, (iv, ov) => {
      iv != null && iv !== !1 && (ev[ov] = tv && y$2.isArray(iv) ? iv.join(", ") : iv);
    }), ev;
  }
  [Symbol.iterator]() {
    return Object.entries(this.toJSON())[Symbol.iterator]();
  }
  toString() {
    return Object.entries(this.toJSON()).map(([tv, ev]) => tv + ": " + ev).join(`
`);
  }
  get [Symbol.toStringTag]() {
    return "AxiosHeaders";
  }
  static from(tv) {
    return tv instanceof this ? tv : new this(tv);
  }
  static concat(tv, ...ev) {
    const iv = new this(tv);
    return ev.forEach((ov) => iv.set(ov)), iv;
  }
  static accessor(tv) {
    const ev = (this[ws$2] = this[ws$2] = {
      accessors: {}
    }).accessors, iv = this.prototype;
    function ov(av) {
      const sv = Lt$3(av);
      ev[sv] || (Fh$1(iv, av), ev[sv] = !0);
    }
    return y$2.isArray(tv) ? tv.forEach(ov) : ov(tv), this;
  }
};
ne$2.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]);
y$2.reduceDescriptors(ne$2.prototype, ({ value: rv }, tv) => {
  let ev = tv[0].toUpperCase() + tv.slice(1);
  return {
    get: () => rv,
    set(iv) {
      this[ev] = iv;
    }
  };
});
y$2.freezeMethods(ne$2);
function Di$2(rv, tv) {
  const ev = this || pn$2, iv = tv || ev, ov = ne$2.from(iv.headers);
  let av = iv.data;
  return y$2.forEach(rv, function(sv) {
    av = sv.call(ev, av, ov.normalize(), tv ? tv.status : void 0);
  }), ov.normalize(), av;
}
function Ho$2(rv) {
  return !!(rv && rv.__CANCEL__);
}
function Ft$3(rv, tv, ev) {
  P$2.call(this, rv ?? "canceled", P$2.ERR_CANCELED, tv, ev), this.name = "CanceledError";
}
y$2.inherits(Ft$3, P$2, {
  __CANCEL__: !0
});
function qo$3(rv, tv, ev) {
  const iv = ev.config.validateStatus;
  !ev.status || !iv || iv(ev.status) ? rv(ev) : tv(new P$2(
    "Request failed with status code " + ev.status,
    [P$2.ERR_BAD_REQUEST, P$2.ERR_BAD_RESPONSE][Math.floor(ev.status / 100) - 4],
    ev.config,
    ev.request,
    ev
  ));
}
function Dh(rv) {
  const tv = /^([-+\w]{1,25})(:?\/\/|:)/.exec(rv);
  return tv && tv[1] || "";
}
function Ih(rv, tv) {
  rv = rv || 10;
  const ev = new Array(rv), iv = new Array(rv);
  let ov = 0, av = 0, sv;
  return tv = tv !== void 0 ? tv : 1e3, function(lv) {
    const uv = Date.now(), cv = iv[av];
    sv || (sv = uv), ev[ov] = lv, iv[ov] = uv;
    let dv = av, hv = 0;
    for (; dv !== ov; )
      hv += ev[dv++], dv = dv % rv;
    if (ov = (ov + 1) % rv, ov === av && (av = (av + 1) % rv), uv - sv < tv)
      return;
    const pv = cv && uv - cv;
    return pv ? Math.round(hv * 1e3 / pv) : void 0;
  };
}
function Lh(rv, tv) {
  let ev = 0, iv = 1e3 / tv, ov, av;
  const sv = (lv, uv = Date.now()) => {
    ev = uv, ov = null, av && (clearTimeout(av), av = null), rv.apply(null, lv);
  };
  return [(...lv) => {
    const uv = Date.now(), cv = uv - ev;
    cv >= iv ? sv(lv, uv) : (ov = lv, av || (av = setTimeout(() => {
      av = null, sv(ov);
    }, iv - cv)));
  }, () => ov && sv(ov)];
}
const jn$2 = (rv, tv, ev = 3) => {
  let iv = 0;
  const ov = Ih(50, 250);
  return Lh((av) => {
    const sv = av.loaded, lv = av.lengthComputable ? av.total : void 0, uv = sv - iv, cv = ov(uv), dv = sv <= lv;
    iv = sv;
    const hv = {
      loaded: sv,
      total: lv,
      progress: lv ? sv / lv : void 0,
      bytes: uv,
      rate: cv || void 0,
      estimated: cv && lv && dv ? (lv - sv) / cv : void 0,
      event: av,
      lengthComputable: lv != null,
      [tv ? "download" : "upload"]: !0
    };
    rv(hv);
  }, ev);
}, Ts$3 = (rv, tv) => {
  const ev = rv != null;
  return [(iv) => tv[0]({
    lengthComputable: ev,
    total: rv,
    loaded: iv
  }), tv[1]];
}, Cs$2 = (rv) => (...tv) => y$2.asap(() => rv(...tv)), Ph = te$2.hasStandardBrowserEnv ? (
  // Standard browser envs have full support of the APIs needed to test
  // whether the request URL is of the same origin as current location.
  function() {
    const rv = te$2.navigator && /(msie|trident)/i.test(te$2.navigator.userAgent), tv = document.createElement("a");
    let ev;
    function iv(ov) {
      let av = ov;
      return rv && (tv.setAttribute("href", av), av = tv.href), tv.setAttribute("href", av), {
        href: tv.href,
        protocol: tv.protocol ? tv.protocol.replace(/:$/, "") : "",
        host: tv.host,
        search: tv.search ? tv.search.replace(/^\?/, "") : "",
        hash: tv.hash ? tv.hash.replace(/^#/, "") : "",
        hostname: tv.hostname,
        port: tv.port,
        pathname: tv.pathname.charAt(0) === "/" ? tv.pathname : "/" + tv.pathname
      };
    }
    return ev = iv(window.location.href), function(ov) {
      const av = y$2.isString(ov) ? iv(ov) : ov;
      return av.protocol === ev.protocol && av.host === ev.host;
    };
  }()
) : (
  // Non standard browser envs (web workers, react-native) lack needed support.
  /* @__PURE__ */ function() {
    return function() {
      return !0;
    };
  }()
), $h$1 = te$2.hasStandardBrowserEnv ? (
  // Standard browser envs support document.cookie
  {
    write(rv, tv, ev, iv, ov, av) {
      const sv = [rv + "=" + encodeURIComponent(tv)];
      y$2.isNumber(ev) && sv.push("expires=" + new Date(ev).toGMTString()), y$2.isString(iv) && sv.push("path=" + iv), y$2.isString(ov) && sv.push("domain=" + ov), av === !0 && sv.push("secure"), document.cookie = sv.join("; ");
    },
    read(rv) {
      const tv = document.cookie.match(new RegExp("(^|;\\s*)(" + rv + ")=([^;]*)"));
      return tv ? decodeURIComponent(tv[3]) : null;
    },
    remove(rv) {
      this.write(rv, "", Date.now() - 864e5);
    }
  }
) : (
  // Non-standard browser env (web workers, react-native) lack needed support.
  {
    write() {
    },
    read() {
      return null;
    },
    remove() {
    }
  }
);
function Uh$1(rv) {
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(rv);
}
function Mh$1(rv, tv) {
  return tv ? rv.replace(/\/?\/$/, "") + "/" + tv.replace(/^\/+/, "") : rv;
}
function zo$3(rv, tv) {
  return rv && !Uh$1(tv) ? Mh$1(rv, tv) : tv;
}
const xs$3 = (rv) => rv instanceof ne$2 ? { ...rv } : rv;
function it$2(rv, tv) {
  tv = tv || {};
  const ev = {};
  function iv(cv, dv, hv) {
    return y$2.isPlainObject(cv) && y$2.isPlainObject(dv) ? y$2.merge.call({ caseless: hv }, cv, dv) : y$2.isPlainObject(dv) ? y$2.merge({}, dv) : y$2.isArray(dv) ? dv.slice() : dv;
  }
  function ov(cv, dv, hv) {
    if (y$2.isUndefined(dv)) {
      if (!y$2.isUndefined(cv))
        return iv(void 0, cv, hv);
    } else
      return iv(cv, dv, hv);
  }
  function av(cv, dv) {
    if (!y$2.isUndefined(dv))
      return iv(void 0, dv);
  }
  function sv(cv, dv) {
    if (y$2.isUndefined(dv)) {
      if (!y$2.isUndefined(cv))
        return iv(void 0, cv);
    } else
      return iv(void 0, dv);
  }
  function lv(cv, dv, hv) {
    if (hv in tv)
      return iv(cv, dv);
    if (hv in rv)
      return iv(void 0, cv);
  }
  const uv = {
    url: av,
    method: av,
    data: av,
    baseURL: sv,
    transformRequest: sv,
    transformResponse: sv,
    paramsSerializer: sv,
    timeout: sv,
    timeoutMessage: sv,
    withCredentials: sv,
    withXSRFToken: sv,
    adapter: sv,
    responseType: sv,
    xsrfCookieName: sv,
    xsrfHeaderName: sv,
    onUploadProgress: sv,
    onDownloadProgress: sv,
    decompress: sv,
    maxContentLength: sv,
    maxBodyLength: sv,
    beforeRedirect: sv,
    transport: sv,
    httpAgent: sv,
    httpsAgent: sv,
    cancelToken: sv,
    socketPath: sv,
    responseEncoding: sv,
    validateStatus: lv,
    headers: (cv, dv) => ov(xs$3(cv), xs$3(dv), !0)
  };
  return y$2.forEach(Object.keys(Object.assign({}, rv, tv)), function(cv) {
    const dv = uv[cv] || ov, hv = dv(rv[cv], tv[cv], cv);
    y$2.isUndefined(hv) && dv !== lv || (ev[cv] = hv);
  }), ev;
}
const Go$3 = (rv) => {
  const tv = it$2({}, rv);
  let { data: ev, withXSRFToken: iv, xsrfHeaderName: ov, xsrfCookieName: av, headers: sv, auth: lv } = tv;
  tv.headers = sv = ne$2.from(sv), tv.url = Vo$2(zo$3(tv.baseURL, tv.url), rv.params, rv.paramsSerializer), lv && sv.set(
    "Authorization",
    "Basic " + btoa((lv.username || "") + ":" + (lv.password ? unescape(encodeURIComponent(lv.password)) : ""))
  );
  let uv;
  if (y$2.isFormData(ev)) {
    if (te$2.hasStandardBrowserEnv || te$2.hasStandardBrowserWebWorkerEnv)
      sv.setContentType(void 0);
    else if ((uv = sv.getContentType()) !== !1) {
      const [cv, ...dv] = uv ? uv.split(";").map((hv) => hv.trim()).filter(Boolean) : [];
      sv.setContentType([cv || "multipart/form-data", ...dv].join("; "));
    }
  }
  if (te$2.hasStandardBrowserEnv && (iv && y$2.isFunction(iv) && (iv = iv(tv)), iv || iv !== !1 && Ph(tv.url))) {
    const cv = ov && av && $h$1.read(av);
    cv && sv.set(ov, cv);
  }
  return tv;
}, Vh$1 = typeof XMLHttpRequest < "u", jh$1 = Vh$1 && function(rv) {
  return new Promise(function(tv, ev) {
    const iv = Go$3(rv);
    let ov = iv.data;
    const av = ne$2.from(iv.headers).normalize();
    let { responseType: sv, onUploadProgress: lv, onDownloadProgress: uv } = iv, cv, dv, hv, pv, yv;
    function Sv() {
      pv && pv(), yv && yv(), iv.cancelToken && iv.cancelToken.unsubscribe(cv), iv.signal && iv.signal.removeEventListener("abort", cv);
    }
    let _v = new XMLHttpRequest();
    _v.open(iv.method.toUpperCase(), iv.url, !0), _v.timeout = iv.timeout;
    function Ev() {
      if (!_v)
        return;
      const xv = ne$2.from(
        "getAllResponseHeaders" in _v && _v.getAllResponseHeaders()
      ), Cv = {
        data: !sv || sv === "text" || sv === "json" ? _v.responseText : _v.response,
        status: _v.status,
        statusText: _v.statusText,
        headers: xv,
        config: rv,
        request: _v
      };
      qo$3(function(Av) {
        tv(Av), Sv();
      }, function(Av) {
        ev(Av), Sv();
      }, Cv), _v = null;
    }
    "onloadend" in _v ? _v.onloadend = Ev : _v.onreadystatechange = function() {
      !_v || _v.readyState !== 4 || _v.status === 0 && !(_v.responseURL && _v.responseURL.indexOf("file:") === 0) || setTimeout(Ev);
    }, _v.onabort = function() {
      _v && (ev(new P$2("Request aborted", P$2.ECONNABORTED, rv, _v)), _v = null);
    }, _v.onerror = function() {
      ev(new P$2("Network Error", P$2.ERR_NETWORK, rv, _v)), _v = null;
    }, _v.ontimeout = function() {
      let xv = iv.timeout ? "timeout of " + iv.timeout + "ms exceeded" : "timeout exceeded";
      const Cv = iv.transitional || jo$3;
      iv.timeoutErrorMessage && (xv = iv.timeoutErrorMessage), ev(new P$2(
        xv,
        Cv.clarifyTimeoutError ? P$2.ETIMEDOUT : P$2.ECONNABORTED,
        rv,
        _v
      )), _v = null;
    }, ov === void 0 && av.setContentType(null), "setRequestHeader" in _v && y$2.forEach(av.toJSON(), function(xv, Cv) {
      _v.setRequestHeader(Cv, xv);
    }), y$2.isUndefined(iv.withCredentials) || (_v.withCredentials = !!iv.withCredentials), sv && sv !== "json" && (_v.responseType = iv.responseType), uv && ([hv, yv] = jn$2(uv, !0), _v.addEventListener("progress", hv)), lv && _v.upload && ([dv, pv] = jn$2(lv), _v.upload.addEventListener("progress", dv), _v.upload.addEventListener("loadend", pv)), (iv.cancelToken || iv.signal) && (cv = (xv) => {
      _v && (ev(!xv || xv.type ? new Ft$3(null, rv, _v) : xv), _v.abort(), _v = null);
    }, iv.cancelToken && iv.cancelToken.subscribe(cv), iv.signal && (iv.signal.aborted ? cv() : iv.signal.addEventListener("abort", cv)));
    const wv = Dh(iv.url);
    if (wv && te$2.protocols.indexOf(wv) === -1) {
      ev(new P$2("Unsupported protocol " + wv + ":", P$2.ERR_BAD_REQUEST, rv));
      return;
    }
    _v.send(ov || null);
  });
}, Bh$1 = (rv, tv) => {
  const { length: ev } = rv = rv ? rv.filter(Boolean) : [];
  if (tv || ev) {
    let iv = new AbortController(), ov;
    const av = function(cv) {
      if (!ov) {
        ov = !0, lv();
        const dv = cv instanceof Error ? cv : this.reason;
        iv.abort(dv instanceof P$2 ? dv : new Ft$3(dv instanceof Error ? dv.message : dv));
      }
    };
    let sv = tv && setTimeout(() => {
      sv = null, av(new P$2(`timeout ${tv} of ms exceeded`, P$2.ETIMEDOUT));
    }, tv);
    const lv = () => {
      rv && (sv && clearTimeout(sv), sv = null, rv.forEach((cv) => {
        cv.unsubscribe ? cv.unsubscribe(av) : cv.removeEventListener("abort", av);
      }), rv = null);
    };
    rv.forEach((cv) => cv.addEventListener("abort", av));
    const { signal: uv } = iv;
    return uv.unsubscribe = () => y$2.asap(lv), uv;
  }
}, Hh$1 = function* (rv, tv) {
  let ev = rv.byteLength;
  if (ev < tv) {
    yield rv;
    return;
  }
  let iv = 0, ov;
  for (; iv < ev; )
    ov = iv + tv, yield rv.slice(iv, ov), iv = ov;
}, qh$1 = async function* (rv, tv) {
  for await (const ev of zh$1(rv))
    yield* Hh$1(ev, tv);
}, zh$1 = async function* (rv) {
  if (rv[Symbol.asyncIterator]) {
    yield* rv;
    return;
  }
  const tv = rv.getReader();
  try {
    for (; ; ) {
      const { done: ev, value: iv } = await tv.read();
      if (ev)
        break;
      yield iv;
    }
  } finally {
    await tv.cancel();
  }
}, Rs$2 = (rv, tv, ev, iv) => {
  const ov = qh$1(rv, tv);
  let av = 0, sv, lv = (uv) => {
    sv || (sv = !0, iv && iv(uv));
  };
  return new ReadableStream({
    async pull(uv) {
      try {
        const { done: cv, value: dv } = await ov.next();
        if (cv) {
          lv(), uv.close();
          return;
        }
        let hv = dv.byteLength;
        if (ev) {
          let pv = av += hv;
          ev(pv);
        }
        uv.enqueue(new Uint8Array(dv));
      } catch (cv) {
        throw lv(cv), cv;
      }
    },
    cancel(uv) {
      return lv(uv), ov.return();
    }
  }, {
    highWaterMark: 2
  });
}, pi$3 = typeof fetch == "function" && typeof Request == "function" && typeof Response == "function", Ko$2 = pi$3 && typeof ReadableStream == "function", Gh$1 = pi$3 && (typeof TextEncoder == "function" ? /* @__PURE__ */ ((rv) => (tv) => rv.encode(tv))(new TextEncoder()) : async (rv) => new Uint8Array(await new Response(rv).arrayBuffer())), Wo$3 = (rv, ...tv) => {
  try {
    return !!rv(...tv);
  } catch {
    return !1;
  }
}, Kh$1 = Ko$2 && Wo$3(() => {
  let rv = !1;
  const tv = new Request(te$2.origin, {
    body: new ReadableStream(),
    method: "POST",
    get duplex() {
      return rv = !0, "half";
    }
  }).headers.has("Content-Type");
  return rv && !tv;
}), Fs$2 = 64 * 1024, hr$3 = Ko$2 && Wo$3(() => y$2.isReadableStream(new Response("").body)), Bn$2 = {
  stream: hr$3 && ((rv) => rv.body)
};
pi$3 && ((rv) => {
  ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((tv) => {
    !Bn$2[tv] && (Bn$2[tv] = y$2.isFunction(rv[tv]) ? (ev) => ev[tv]() : (ev, iv) => {
      throw new P$2(`Response type '${tv}' is not supported`, P$2.ERR_NOT_SUPPORT, iv);
    });
  });
})(new Response());
const Wh$1 = async (rv) => {
  if (rv == null)
    return 0;
  if (y$2.isBlob(rv))
    return rv.size;
  if (y$2.isSpecCompliantForm(rv))
    return (await new Request(te$2.origin, {
      method: "POST",
      body: rv
    }).arrayBuffer()).byteLength;
  if (y$2.isArrayBufferView(rv) || y$2.isArrayBuffer(rv))
    return rv.byteLength;
  if (y$2.isURLSearchParams(rv) && (rv = rv + ""), y$2.isString(rv))
    return (await Gh$1(rv)).byteLength;
}, Jh$1 = async (rv, tv) => {
  const ev = y$2.toFiniteNumber(rv.getContentLength());
  return ev ?? Wh$1(tv);
}, Yh$1 = pi$3 && (async (rv) => {
  let {
    url: tv,
    method: ev,
    data: iv,
    signal: ov,
    cancelToken: av,
    timeout: sv,
    onDownloadProgress: lv,
    onUploadProgress: uv,
    responseType: cv,
    headers: dv,
    withCredentials: hv = "same-origin",
    fetchOptions: pv
  } = Go$3(rv);
  cv = cv ? (cv + "").toLowerCase() : "text";
  let yv = Bh$1([ov, av && av.toAbortSignal()], sv), Sv;
  const _v = yv && yv.unsubscribe && (() => {
    yv.unsubscribe();
  });
  let Ev;
  try {
    if (uv && Kh$1 && ev !== "get" && ev !== "head" && (Ev = await Jh$1(dv, iv)) !== 0) {
      let Ov = new Request(tv, {
        method: "POST",
        body: iv,
        duplex: "half"
      }), Lv;
      if (y$2.isFormData(iv) && (Lv = Ov.headers.get("content-type")) && dv.setContentType(Lv), Ov.body) {
        const [jv, Dv] = Ts$3(
          Ev,
          jn$2(Cs$2(uv))
        );
        iv = Rs$2(Ov.body, Fs$2, jv, Dv);
      }
    }
    y$2.isString(hv) || (hv = hv ? "include" : "omit");
    const wv = "credentials" in Request.prototype;
    Sv = new Request(tv, {
      ...pv,
      signal: yv,
      method: ev.toUpperCase(),
      headers: dv.normalize().toJSON(),
      body: iv,
      duplex: "half",
      credentials: wv ? hv : void 0
    });
    let xv = await fetch(Sv);
    const Cv = hr$3 && (cv === "stream" || cv === "response");
    if (hr$3 && (lv || Cv && _v)) {
      const Ov = {};
      ["status", "statusText", "headers"].forEach((Vv) => {
        Ov[Vv] = xv[Vv];
      });
      const Lv = y$2.toFiniteNumber(xv.headers.get("content-length")), [jv, Dv] = lv && Ts$3(
        Lv,
        jn$2(Cs$2(lv), !0)
      ) || [];
      xv = new Response(
        Rs$2(xv.body, Fs$2, jv, () => {
          Dv && Dv(), _v && _v();
        }),
        Ov
      );
    }
    cv = cv || "text";
    let Av = await Bn$2[y$2.findKey(Bn$2, cv) || "text"](xv, rv);
    return !Cv && _v && _v(), await new Promise((Ov, Lv) => {
      qo$3(Ov, Lv, {
        data: Av,
        headers: ne$2.from(xv.headers),
        status: xv.status,
        statusText: xv.statusText,
        config: rv,
        request: Sv
      });
    });
  } catch (wv) {
    throw _v && _v(), wv && wv.name === "TypeError" && /fetch/i.test(wv.message) ? Object.assign(
      new P$2("Network Error", P$2.ERR_NETWORK, rv, Sv),
      {
        cause: wv.cause || wv
      }
    ) : P$2.from(wv, wv && wv.code, rv, Sv);
  }
}), pr$2 = {
  http: dh,
  xhr: jh$1,
  fetch: Yh$1
};
y$2.forEach(pr$2, (rv, tv) => {
  if (rv) {
    try {
      Object.defineProperty(rv, "name", { value: tv });
    } catch {
    }
    Object.defineProperty(rv, "adapterName", { value: tv });
  }
});
const Ds$1 = (rv) => `- ${rv}`, Qh$1 = (rv) => y$2.isFunction(rv) || rv === null || rv === !1, Jo$3 = {
  getAdapter: (rv) => {
    rv = y$2.isArray(rv) ? rv : [rv];
    const { length: tv } = rv;
    let ev, iv;
    const ov = {};
    for (let av = 0; av < tv; av++) {
      ev = rv[av];
      let sv;
      if (iv = ev, !Qh$1(ev) && (iv = pr$2[(sv = String(ev)).toLowerCase()], iv === void 0))
        throw new P$2(`Unknown adapter '${sv}'`);
      if (iv)
        break;
      ov[sv || "#" + av] = iv;
    }
    if (!iv) {
      const av = Object.entries(ov).map(
        ([lv, uv]) => `adapter ${lv} ` + (uv === !1 ? "is not supported by the environment" : "is not available in the build")
      );
      let sv = tv ? av.length > 1 ? `since :
` + av.map(Ds$1).join(`
`) : " " + Ds$1(av[0]) : "as no adapter specified";
      throw new P$2(
        "There is no suitable adapter to dispatch the request " + sv,
        "ERR_NOT_SUPPORT"
      );
    }
    return iv;
  },
  adapters: pr$2
};
function Ii$3(rv) {
  if (rv.cancelToken && rv.cancelToken.throwIfRequested(), rv.signal && rv.signal.aborted)
    throw new Ft$3(null, rv);
}
function Is$1(rv) {
  return Ii$3(rv), rv.headers = ne$2.from(rv.headers), rv.data = Di$2.call(
    rv,
    rv.transformRequest
  ), ["post", "put", "patch"].indexOf(rv.method) !== -1 && rv.headers.setContentType("application/x-www-form-urlencoded", !1), Jo$3.getAdapter(rv.adapter || pn$2.adapter)(rv).then(function(tv) {
    return Ii$3(rv), tv.data = Di$2.call(
      rv,
      rv.transformResponse,
      tv
    ), tv.headers = ne$2.from(tv.headers), tv;
  }, function(tv) {
    return Ho$2(tv) || (Ii$3(rv), tv && tv.response && (tv.response.data = Di$2.call(
      rv,
      rv.transformResponse,
      tv.response
    ), tv.response.headers = ne$2.from(tv.response.headers))), Promise.reject(tv);
  });
}
const Yo$2 = "1.7.7", Vr$1 = {};
["object", "boolean", "number", "function", "string", "symbol"].forEach((rv, tv) => {
  Vr$1[rv] = function(ev) {
    return typeof ev === rv || "a" + (tv < 1 ? "n " : " ") + rv;
  };
});
const Ls$1 = {};
Vr$1.transitional = function(rv, tv, ev) {
  function iv(ov, av) {
    return "[Axios v" + Yo$2 + "] Transitional option '" + ov + "'" + av + (ev ? ". " + ev : "");
  }
  return (ov, av, sv) => {
    if (rv === !1)
      throw new P$2(
        iv(av, " has been removed" + (tv ? " in " + tv : "")),
        P$2.ERR_DEPRECATED
      );
    return tv && !Ls$1[av] && (Ls$1[av] = !0, console.warn(
      iv(
        av,
        " has been deprecated since v" + tv + " and will be removed in the near future"
      )
    )), rv ? rv(ov, av, sv) : !0;
  };
};
function Xh$1(rv, tv, ev) {
  if (typeof rv != "object")
    throw new P$2("options must be an object", P$2.ERR_BAD_OPTION_VALUE);
  const iv = Object.keys(rv);
  let ov = iv.length;
  for (; ov-- > 0; ) {
    const av = iv[ov], sv = tv[av];
    if (sv) {
      const lv = rv[av], uv = lv === void 0 || sv(lv, av, rv);
      if (uv !== !0)
        throw new P$2("option " + av + " must be " + uv, P$2.ERR_BAD_OPTION_VALUE);
      continue;
    }
    if (ev !== !0)
      throw new P$2("Unknown option " + av, P$2.ERR_BAD_OPTION);
  }
}
const mr$3 = {
  assertOptions: Xh$1,
  validators: Vr$1
}, Ie$1 = mr$3.validators;
let Ze$3 = class {
  constructor(tv) {
    this.defaults = tv, this.interceptors = {
      request: new Os$2(),
      response: new Os$2()
    };
  }
  /**
   * Dispatch a request
   *
   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
   * @param {?Object} config
   *
   * @returns {Promise} The Promise to be fulfilled
   */
  async request(tv, ev) {
    try {
      return await this._request(tv, ev);
    } catch (iv) {
      if (iv instanceof Error) {
        let ov;
        Error.captureStackTrace ? Error.captureStackTrace(ov = {}) : ov = new Error();
        const av = ov.stack ? ov.stack.replace(/^.+\n/, "") : "";
        try {
          iv.stack ? av && !String(iv.stack).endsWith(av.replace(/^.+\n.+\n/, "")) && (iv.stack += `
` + av) : iv.stack = av;
        } catch {
        }
      }
      throw iv;
    }
  }
  _request(tv, ev) {
    typeof tv == "string" ? (ev = ev || {}, ev.url = tv) : ev = tv || {}, ev = it$2(this.defaults, ev);
    const { transitional: iv, paramsSerializer: ov, headers: av } = ev;
    iv !== void 0 && mr$3.assertOptions(iv, {
      silentJSONParsing: Ie$1.transitional(Ie$1.boolean),
      forcedJSONParsing: Ie$1.transitional(Ie$1.boolean),
      clarifyTimeoutError: Ie$1.transitional(Ie$1.boolean)
    }, !1), ov != null && (y$2.isFunction(ov) ? ev.paramsSerializer = {
      serialize: ov
    } : mr$3.assertOptions(ov, {
      encode: Ie$1.function,
      serialize: Ie$1.function
    }, !0)), ev.method = (ev.method || this.defaults.method || "get").toLowerCase();
    let sv = av && y$2.merge(
      av.common,
      av[ev.method]
    );
    av && y$2.forEach(
      ["delete", "get", "head", "post", "put", "patch", "common"],
      (Sv) => {
        delete av[Sv];
      }
    ), ev.headers = ne$2.concat(sv, av);
    const lv = [];
    let uv = !0;
    this.interceptors.request.forEach(function(Sv) {
      typeof Sv.runWhen == "function" && Sv.runWhen(ev) === !1 || (uv = uv && Sv.synchronous, lv.unshift(Sv.fulfilled, Sv.rejected));
    });
    const cv = [];
    this.interceptors.response.forEach(function(Sv) {
      cv.push(Sv.fulfilled, Sv.rejected);
    });
    let dv, hv = 0, pv;
    if (!uv) {
      const Sv = [Is$1.bind(this), void 0];
      for (Sv.unshift.apply(Sv, lv), Sv.push.apply(Sv, cv), pv = Sv.length, dv = Promise.resolve(ev); hv < pv; )
        dv = dv.then(Sv[hv++], Sv[hv++]);
      return dv;
    }
    pv = lv.length;
    let yv = ev;
    for (hv = 0; hv < pv; ) {
      const Sv = lv[hv++], _v = lv[hv++];
      try {
        yv = Sv(yv);
      } catch (Ev) {
        _v.call(this, Ev);
        break;
      }
    }
    try {
      dv = Is$1.call(this, yv);
    } catch (Sv) {
      return Promise.reject(Sv);
    }
    for (hv = 0, pv = cv.length; hv < pv; )
      dv = dv.then(cv[hv++], cv[hv++]);
    return dv;
  }
  getUri(tv) {
    tv = it$2(this.defaults, tv);
    const ev = zo$3(tv.baseURL, tv.url);
    return Vo$2(ev, tv.params, tv.paramsSerializer);
  }
};
y$2.forEach(["delete", "get", "head", "options"], function(rv) {
  Ze$3.prototype[rv] = function(tv, ev) {
    return this.request(it$2(ev || {}, {
      method: rv,
      url: tv,
      data: (ev || {}).data
    }));
  };
});
y$2.forEach(["post", "put", "patch"], function(rv) {
  function tv(ev) {
    return function(iv, ov, av) {
      return this.request(it$2(av || {}, {
        method: rv,
        headers: ev ? {
          "Content-Type": "multipart/form-data"
        } : {},
        url: iv,
        data: ov
      }));
    };
  }
  Ze$3.prototype[rv] = tv(), Ze$3.prototype[rv + "Form"] = tv(!0);
});
let jr$2 = class fN {
  constructor(tv) {
    if (typeof tv != "function")
      throw new TypeError("executor must be a function.");
    let ev;
    this.promise = new Promise(function(ov) {
      ev = ov;
    });
    const iv = this;
    this.promise.then((ov) => {
      if (!iv._listeners)
        return;
      let av = iv._listeners.length;
      for (; av-- > 0; )
        iv._listeners[av](ov);
      iv._listeners = null;
    }), this.promise.then = (ov) => {
      let av;
      const sv = new Promise((lv) => {
        iv.subscribe(lv), av = lv;
      }).then(ov);
      return sv.cancel = function() {
        iv.unsubscribe(av);
      }, sv;
    }, tv(function(ov, av, sv) {
      iv.reason || (iv.reason = new Ft$3(ov, av, sv), ev(iv.reason));
    });
  }
  /**
   * Throws a `CanceledError` if cancellation has been requested.
   */
  throwIfRequested() {
    if (this.reason)
      throw this.reason;
  }
  /**
   * Subscribe to the cancel signal
   */
  subscribe(tv) {
    if (this.reason) {
      tv(this.reason);
      return;
    }
    this._listeners ? this._listeners.push(tv) : this._listeners = [tv];
  }
  /**
   * Unsubscribe from the cancel signal
   */
  unsubscribe(tv) {
    if (!this._listeners)
      return;
    const ev = this._listeners.indexOf(tv);
    ev !== -1 && this._listeners.splice(ev, 1);
  }
  toAbortSignal() {
    const tv = new AbortController(), ev = (iv) => {
      tv.abort(iv);
    };
    return this.subscribe(ev), tv.signal.unsubscribe = () => this.unsubscribe(ev), tv.signal;
  }
  /**
   * Returns an object that contains a new `CancelToken` and a function that, when called,
   * cancels the `CancelToken`.
   */
  static source() {
    let tv;
    return {
      token: new fN(function(ev) {
        tv = ev;
      }),
      cancel: tv
    };
  }
};
function Zh$1(rv) {
  return function(tv) {
    return rv.apply(null, tv);
  };
}
function ep$1(rv) {
  return y$2.isObject(rv) && rv.isAxiosError === !0;
}
const gr$2 = {
  Continue: 100,
  SwitchingProtocols: 101,
  Processing: 102,
  EarlyHints: 103,
  Ok: 200,
  Created: 201,
  Accepted: 202,
  NonAuthoritativeInformation: 203,
  NoContent: 204,
  ResetContent: 205,
  PartialContent: 206,
  MultiStatus: 207,
  AlreadyReported: 208,
  ImUsed: 226,
  MultipleChoices: 300,
  MovedPermanently: 301,
  Found: 302,
  SeeOther: 303,
  NotModified: 304,
  UseProxy: 305,
  Unused: 306,
  TemporaryRedirect: 307,
  PermanentRedirect: 308,
  BadRequest: 400,
  Unauthorized: 401,
  PaymentRequired: 402,
  Forbidden: 403,
  NotFound: 404,
  MethodNotAllowed: 405,
  NotAcceptable: 406,
  ProxyAuthenticationRequired: 407,
  RequestTimeout: 408,
  Conflict: 409,
  Gone: 410,
  LengthRequired: 411,
  PreconditionFailed: 412,
  PayloadTooLarge: 413,
  UriTooLong: 414,
  UnsupportedMediaType: 415,
  RangeNotSatisfiable: 416,
  ExpectationFailed: 417,
  ImATeapot: 418,
  MisdirectedRequest: 421,
  UnprocessableEntity: 422,
  Locked: 423,
  FailedDependency: 424,
  TooEarly: 425,
  UpgradeRequired: 426,
  PreconditionRequired: 428,
  TooManyRequests: 429,
  RequestHeaderFieldsTooLarge: 431,
  UnavailableForLegalReasons: 451,
  InternalServerError: 500,
  NotImplemented: 501,
  BadGateway: 502,
  ServiceUnavailable: 503,
  GatewayTimeout: 504,
  HttpVersionNotSupported: 505,
  VariantAlsoNegotiates: 506,
  InsufficientStorage: 507,
  LoopDetected: 508,
  NotExtended: 510,
  NetworkAuthenticationRequired: 511
};
Object.entries(gr$2).forEach(([rv, tv]) => {
  gr$2[tv] = rv;
});
function Qo$3(rv) {
  const tv = new Ze$3(rv), ev = To$3(Ze$3.prototype.request, tv);
  return y$2.extend(ev, Ze$3.prototype, tv, { allOwnKeys: !0 }), y$2.extend(ev, tv, null, { allOwnKeys: !0 }), ev.create = function(iv) {
    return Qo$3(it$2(rv, iv));
  }, ev;
}
const G$1 = Qo$3(pn$2);
G$1.Axios = Ze$3;
G$1.CanceledError = Ft$3;
G$1.CancelToken = jr$2;
G$1.isCancel = Ho$2;
G$1.VERSION = Yo$2;
G$1.toFormData = hi$3;
G$1.AxiosError = P$2;
G$1.Cancel = G$1.CanceledError;
G$1.all = function(rv) {
  return Promise.all(rv);
};
G$1.spread = Zh$1;
G$1.isAxiosError = ep$1;
G$1.mergeConfig = it$2;
G$1.AxiosHeaders = ne$2;
G$1.formToJSON = (rv) => Bo$3(y$2.isHTMLForm(rv) ? new FormData(rv) : rv);
G$1.getAdapter = Jo$3.getAdapter;
G$1.HttpStatusCode = gr$2;
G$1.default = G$1;
const tp$1 = {
  type: "logger",
  log(rv) {
    this.output("log", rv);
  },
  warn(rv) {
    this.output("warn", rv);
  },
  error(rv) {
    this.output("error", rv);
  },
  output(rv, tv) {
    console && console[rv] && console[rv].apply(console, tv);
  }
};
let Hn$2 = class ZM {
  constructor(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.init(tv, ev);
  }
  init(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.prefix = ev.prefix || "i18next:", this.logger = tv || tp$1, this.options = ev, this.debug = ev.debug;
  }
  log() {
    for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return this.forward(ev, "log", "", !0);
  }
  warn() {
    for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return this.forward(ev, "warn", "", !0);
  }
  error() {
    for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return this.forward(ev, "error", "");
  }
  deprecate() {
    for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return this.forward(ev, "warn", "WARNING DEPRECATED: ", !0);
  }
  forward(tv, ev, iv, ov) {
    return ov && !this.debug ? null : (typeof tv[0] == "string" && (tv[0] = `${iv}${this.prefix} ${tv[0]}`), this.logger[ev](tv));
  }
  create(tv) {
    return new ZM(this.logger, {
      prefix: `${this.prefix}:${tv}:`,
      ...this.options
    });
  }
  clone(tv) {
    return tv = tv || this.options, tv.prefix = tv.prefix || this.prefix, new ZM(this.logger, tv);
  }
};
var Ee$2 = new Hn$2();
let mi$3 = class {
  constructor() {
    this.observers = {};
  }
  on(tv, ev) {
    return tv.split(" ").forEach((iv) => {
      this.observers[iv] || (this.observers[iv] = /* @__PURE__ */ new Map());
      const ov = this.observers[iv].get(ev) || 0;
      this.observers[iv].set(ev, ov + 1);
    }), this;
  }
  off(tv, ev) {
    if (this.observers[tv]) {
      if (!ev) {
        delete this.observers[tv];
        return;
      }
      this.observers[tv].delete(ev);
    }
  }
  emit(tv) {
    for (var ev = arguments.length, iv = new Array(ev > 1 ? ev - 1 : 0), ov = 1; ov < ev; ov++)
      iv[ov - 1] = arguments[ov];
    this.observers[tv] && Array.from(this.observers[tv].entries()).forEach((av) => {
      let [sv, lv] = av;
      for (let uv = 0; uv < lv; uv++)
        sv(...iv);
    }), this.observers["*"] && Array.from(this.observers["*"].entries()).forEach((av) => {
      let [sv, lv] = av;
      for (let uv = 0; uv < lv; uv++)
        sv.apply(sv, [tv, ...iv]);
    });
  }
};
const Pt$3 = () => {
  let rv, tv;
  const ev = new Promise((iv, ov) => {
    rv = iv, tv = ov;
  });
  return ev.resolve = rv, ev.reject = tv, ev;
}, Ps$2 = (rv) => rv == null ? "" : "" + rv, np$1 = (rv, tv, ev) => {
  rv.forEach((iv) => {
    tv[iv] && (ev[iv] = tv[iv]);
  });
}, ip$1 = /###/g, $s$2 = (rv) => rv && rv.indexOf("###") > -1 ? rv.replace(ip$1, ".") : rv, Us$2 = (rv) => !rv || typeof rv == "string", qt$2 = (rv, tv, ev) => {
  const iv = typeof tv != "string" ? tv : tv.split(".");
  let ov = 0;
  for (; ov < iv.length - 1; ) {
    if (Us$2(rv))
      return {};
    const av = $s$2(iv[ov]);
    !rv[av] && ev && (rv[av] = new ev()), Object.prototype.hasOwnProperty.call(rv, av) ? rv = rv[av] : rv = {}, ++ov;
  }
  return Us$2(rv) ? {} : {
    obj: rv,
    k: $s$2(iv[ov])
  };
}, Ms$1 = (rv, tv, ev) => {
  const {
    obj: iv,
    k: ov
  } = qt$2(rv, tv, Object);
  if (iv !== void 0 || tv.length === 1) {
    iv[ov] = ev;
    return;
  }
  let av = tv[tv.length - 1], sv = tv.slice(0, tv.length - 1), lv = qt$2(rv, sv, Object);
  for (; lv.obj === void 0 && sv.length; )
    av = `${sv[sv.length - 1]}.${av}`, sv = sv.slice(0, sv.length - 1), lv = qt$2(rv, sv, Object), lv && lv.obj && typeof lv.obj[`${lv.k}.${av}`] < "u" && (lv.obj = void 0);
  lv.obj[`${lv.k}.${av}`] = ev;
}, rp$1 = (rv, tv, ev, iv) => {
  const {
    obj: ov,
    k: av
  } = qt$2(rv, tv, Object);
  ov[av] = ov[av] || [], ov[av].push(ev);
}, qn$3 = (rv, tv) => {
  const {
    obj: ev,
    k: iv
  } = qt$2(rv, tv);
  if (ev)
    return ev[iv];
}, sp$1 = (rv, tv, ev) => {
  const iv = qn$3(rv, ev);
  return iv !== void 0 ? iv : qn$3(tv, ev);
}, Xo$3 = (rv, tv, ev) => {
  for (const iv in tv)
    iv !== "__proto__" && iv !== "constructor" && (iv in rv ? typeof rv[iv] == "string" || rv[iv] instanceof String || typeof tv[iv] == "string" || tv[iv] instanceof String ? ev && (rv[iv] = tv[iv]) : Xo$3(rv[iv], tv[iv], ev) : rv[iv] = tv[iv]);
  return rv;
}, ft$2 = (rv) => rv.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
var ap$1 = {
  "&": "&amp;",
  "<": "&lt;",
  ">": "&gt;",
  '"': "&quot;",
  "'": "&#39;",
  "/": "&#x2F;"
};
const op$1 = (rv) => typeof rv == "string" ? rv.replace(/[&<>"'\/]/g, (tv) => ap$1[tv]) : rv;
let lp$1 = class {
  constructor(tv) {
    this.capacity = tv, this.regExpMap = /* @__PURE__ */ new Map(), this.regExpQueue = [];
  }
  getRegExp(tv) {
    const ev = this.regExpMap.get(tv);
    if (ev !== void 0)
      return ev;
    const iv = new RegExp(tv);
    return this.regExpQueue.length === this.capacity && this.regExpMap.delete(this.regExpQueue.shift()), this.regExpMap.set(tv, iv), this.regExpQueue.push(tv), iv;
  }
};
const up$1 = [" ", ",", "?", "!", ";"], cp$1 = new lp$1(20), dp$1 = (rv, tv, ev) => {
  tv = tv || "", ev = ev || "";
  const iv = up$1.filter((sv) => tv.indexOf(sv) < 0 && ev.indexOf(sv) < 0);
  if (iv.length === 0)
    return !0;
  const ov = cp$1.getRegExp(`(${iv.map((sv) => sv === "?" ? "\\?" : sv).join("|")})`);
  let av = !ov.test(rv);
  if (!av) {
    const sv = rv.indexOf(ev);
    sv > 0 && !ov.test(rv.substring(0, sv)) && (av = !0);
  }
  return av;
}, vr$3 = function(rv, tv) {
  let ev = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ".";
  if (!rv)
    return;
  if (rv[tv])
    return rv[tv];
  const iv = tv.split(ev);
  let ov = rv;
  for (let av = 0; av < iv.length; ) {
    if (!ov || typeof ov != "object")
      return;
    let sv, lv = "";
    for (let uv = av; uv < iv.length; ++uv)
      if (uv !== av && (lv += ev), lv += iv[uv], sv = ov[lv], sv !== void 0) {
        if (["string", "number", "boolean"].indexOf(typeof sv) > -1 && uv < iv.length - 1)
          continue;
        av += uv - av + 1;
        break;
      }
    ov = sv;
  }
  return ov;
}, zn$2 = (rv) => rv && rv.indexOf("_") > 0 ? rv.replace("_", "-") : rv;
let Vs$2 = class extends mi$3 {
  constructor(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
      ns: ["translation"],
      defaultNS: "translation"
    };
    super(), this.data = tv || {}, this.options = ev, this.options.keySeparator === void 0 && (this.options.keySeparator = "."), this.options.ignoreJSONStructure === void 0 && (this.options.ignoreJSONStructure = !0);
  }
  addNamespaces(tv) {
    this.options.ns.indexOf(tv) < 0 && this.options.ns.push(tv);
  }
  removeNamespaces(tv) {
    const ev = this.options.ns.indexOf(tv);
    ev > -1 && this.options.ns.splice(ev, 1);
  }
  getResource(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
    const av = ov.keySeparator !== void 0 ? ov.keySeparator : this.options.keySeparator, sv = ov.ignoreJSONStructure !== void 0 ? ov.ignoreJSONStructure : this.options.ignoreJSONStructure;
    let lv;
    tv.indexOf(".") > -1 ? lv = tv.split(".") : (lv = [tv, ev], iv && (Array.isArray(iv) ? lv.push(...iv) : typeof iv == "string" && av ? lv.push(...iv.split(av)) : lv.push(iv)));
    const uv = qn$3(this.data, lv);
    return !uv && !ev && !iv && tv.indexOf(".") > -1 && (tv = lv[0], ev = lv[1], iv = lv.slice(2).join(".")), uv || !sv || typeof iv != "string" ? uv : vr$3(this.data && this.data[tv] && this.data[tv][ev], iv, av);
  }
  addResource(tv, ev, iv, ov) {
    let av = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : {
      silent: !1
    };
    const sv = av.keySeparator !== void 0 ? av.keySeparator : this.options.keySeparator;
    let lv = [tv, ev];
    iv && (lv = lv.concat(sv ? iv.split(sv) : iv)), tv.indexOf(".") > -1 && (lv = tv.split("."), ov = ev, ev = lv[1]), this.addNamespaces(ev), Ms$1(this.data, lv, ov), av.silent || this.emit("added", tv, ev, iv, ov);
  }
  addResources(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {
      silent: !1
    };
    for (const av in iv)
      (typeof iv[av] == "string" || Array.isArray(iv[av])) && this.addResource(tv, ev, av, iv[av], {
        silent: !0
      });
    ov.silent || this.emit("added", tv, ev, iv);
  }
  addResourceBundle(tv, ev, iv, ov, av) {
    let sv = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : {
      silent: !1,
      skipCopy: !1
    }, lv = [tv, ev];
    tv.indexOf(".") > -1 && (lv = tv.split("."), ov = iv, iv = ev, ev = lv[1]), this.addNamespaces(ev);
    let uv = qn$3(this.data, lv) || {};
    sv.skipCopy || (iv = JSON.parse(JSON.stringify(iv))), ov ? Xo$3(uv, iv, av) : uv = {
      ...uv,
      ...iv
    }, Ms$1(this.data, lv, uv), sv.silent || this.emit("added", tv, ev, iv);
  }
  removeResourceBundle(tv, ev) {
    this.hasResourceBundle(tv, ev) && delete this.data[tv][ev], this.removeNamespaces(ev), this.emit("removed", tv, ev);
  }
  hasResourceBundle(tv, ev) {
    return this.getResource(tv, ev) !== void 0;
  }
  getResourceBundle(tv, ev) {
    return ev || (ev = this.options.defaultNS), this.options.compatibilityAPI === "v1" ? {
      ...this.getResource(tv, ev)
    } : this.getResource(tv, ev);
  }
  getDataByLanguage(tv) {
    return this.data[tv];
  }
  hasLanguageSomeTranslations(tv) {
    const ev = this.getDataByLanguage(tv);
    return !!(ev && Object.keys(ev) || []).find((iv) => ev[iv] && Object.keys(ev[iv]).length > 0);
  }
  toJSON() {
    return this.data;
  }
};
var Zo$3 = {
  processors: {},
  addPostProcessor(rv) {
    this.processors[rv.name] = rv;
  },
  handle(rv, tv, ev, iv, ov) {
    return rv.forEach((av) => {
      this.processors[av] && (tv = this.processors[av].process(tv, ev, iv, ov));
    }), tv;
  }
};
const js$2 = {};
let Gn$2 = class hN extends mi$3 {
  constructor(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    super(), np$1(["resourceStore", "languageUtils", "pluralResolver", "interpolator", "backendConnector", "i18nFormat", "utils"], tv, this), this.options = ev, this.options.keySeparator === void 0 && (this.options.keySeparator = "."), this.logger = Ee$2.create("translator");
  }
  changeLanguage(tv) {
    tv && (this.language = tv);
  }
  exists(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
      interpolation: {}
    };
    if (tv == null)
      return !1;
    const iv = this.resolve(tv, ev);
    return iv && iv.res !== void 0;
  }
  extractFromKey(tv, ev) {
    let iv = ev.nsSeparator !== void 0 ? ev.nsSeparator : this.options.nsSeparator;
    iv === void 0 && (iv = ":");
    const ov = ev.keySeparator !== void 0 ? ev.keySeparator : this.options.keySeparator;
    let av = ev.ns || this.options.defaultNS || [];
    const sv = iv && tv.indexOf(iv) > -1, lv = !this.options.userDefinedKeySeparator && !ev.keySeparator && !this.options.userDefinedNsSeparator && !ev.nsSeparator && !dp$1(tv, iv, ov);
    if (sv && !lv) {
      const uv = tv.match(this.interpolator.nestingRegexp);
      if (uv && uv.length > 0)
        return {
          key: tv,
          namespaces: av
        };
      const cv = tv.split(iv);
      (iv !== ov || iv === ov && this.options.ns.indexOf(cv[0]) > -1) && (av = cv.shift()), tv = cv.join(ov);
    }
    return typeof av == "string" && (av = [av]), {
      key: tv,
      namespaces: av
    };
  }
  translate(tv, ev, iv) {
    if (typeof ev != "object" && this.options.overloadTranslationOptionHandler && (ev = this.options.overloadTranslationOptionHandler(arguments)), typeof ev == "object" && (ev = {
      ...ev
    }), ev || (ev = {}), tv == null)
      return "";
    Array.isArray(tv) || (tv = [String(tv)]);
    const ov = ev.returnDetails !== void 0 ? ev.returnDetails : this.options.returnDetails, av = ev.keySeparator !== void 0 ? ev.keySeparator : this.options.keySeparator, {
      key: sv,
      namespaces: lv
    } = this.extractFromKey(tv[tv.length - 1], ev), uv = lv[lv.length - 1], cv = ev.lng || this.language, dv = ev.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;
    if (cv && cv.toLowerCase() === "cimode") {
      if (dv) {
        const Cv = ev.nsSeparator || this.options.nsSeparator;
        return ov ? {
          res: `${uv}${Cv}${sv}`,
          usedKey: sv,
          exactUsedKey: sv,
          usedLng: cv,
          usedNS: uv,
          usedParams: this.getUsedParamsDetails(ev)
        } : `${uv}${Cv}${sv}`;
      }
      return ov ? {
        res: sv,
        usedKey: sv,
        exactUsedKey: sv,
        usedLng: cv,
        usedNS: uv,
        usedParams: this.getUsedParamsDetails(ev)
      } : sv;
    }
    const hv = this.resolve(tv, ev);
    let pv = hv && hv.res;
    const yv = hv && hv.usedKey || sv, Sv = hv && hv.exactUsedKey || sv, _v = Object.prototype.toString.apply(pv), Ev = ["[object Number]", "[object Function]", "[object RegExp]"], wv = ev.joinArrays !== void 0 ? ev.joinArrays : this.options.joinArrays, xv = !this.i18nFormat || this.i18nFormat.handleAsObject;
    if (xv && pv && typeof pv != "string" && typeof pv != "boolean" && typeof pv != "number" && Ev.indexOf(_v) < 0 && !(typeof wv == "string" && Array.isArray(pv))) {
      if (!ev.returnObjects && !this.options.returnObjects) {
        this.options.returnedObjectHandler || this.logger.warn("accessing an object - but returnObjects options is not enabled!");
        const Cv = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(yv, pv, {
          ...ev,
          ns: lv
        }) : `key '${sv} (${this.language})' returned an object instead of string.`;
        return ov ? (hv.res = Cv, hv.usedParams = this.getUsedParamsDetails(ev), hv) : Cv;
      }
      if (av) {
        const Cv = Array.isArray(pv), Av = Cv ? [] : {}, Ov = Cv ? Sv : yv;
        for (const Lv in pv)
          if (Object.prototype.hasOwnProperty.call(pv, Lv)) {
            const jv = `${Ov}${av}${Lv}`;
            Av[Lv] = this.translate(jv, {
              ...ev,
              joinArrays: !1,
              ns: lv
            }), Av[Lv] === jv && (Av[Lv] = pv[Lv]);
          }
        pv = Av;
      }
    } else if (xv && typeof wv == "string" && Array.isArray(pv))
      pv = pv.join(wv), pv && (pv = this.extendTranslation(pv, tv, ev, iv));
    else {
      let Cv = !1, Av = !1;
      const Ov = ev.count !== void 0 && typeof ev.count != "string", Lv = hN.hasDefaultValue(ev), jv = Ov ? this.pluralResolver.getSuffix(cv, ev.count, ev) : "", Dv = ev.ordinal && Ov ? this.pluralResolver.getSuffix(cv, ev.count, {
        ordinal: !1
      }) : "", Vv = Ov && !ev.ordinal && ev.count === 0 && this.pluralResolver.shouldUseIntlApi(), Gv = Vv && ev[`defaultValue${this.options.pluralSeparator}zero`] || ev[`defaultValue${jv}`] || ev[`defaultValue${Dv}`] || ev.defaultValue;
      !this.isValidLookup(pv) && Lv && (Cv = !0, pv = Gv), this.isValidLookup(pv) || (Av = !0, pv = sv);
      const Yv = (ev.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey) && Av ? void 0 : pv, Xv = Lv && Gv !== pv && this.options.updateMissing;
      if (Av || Cv || Xv) {
        if (this.logger.log(Xv ? "updateKey" : "missingKey", cv, uv, sv, Xv ? Gv : pv), av) {
          const B1 = this.resolve(sv, {
            ...ev,
            keySeparator: !1
          });
          B1 && B1.res && this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.");
        }
        let L1 = [];
        const Bv = this.languageUtils.getFallbackCodes(this.options.fallbackLng, ev.lng || this.language);
        if (this.options.saveMissingTo === "fallback" && Bv && Bv[0])
          for (let B1 = 0; B1 < Bv.length; B1++)
            L1.push(Bv[B1]);
        else
          this.options.saveMissingTo === "all" ? L1 = this.languageUtils.toResolveHierarchy(ev.lng || this.language) : L1.push(ev.lng || this.language);
        const Qv = (B1, K1, j1) => {
          const P1 = Lv && j1 !== pv ? j1 : Yv;
          this.options.missingKeyHandler ? this.options.missingKeyHandler(B1, uv, K1, P1, Xv, ev) : this.backendConnector && this.backendConnector.saveMissing && this.backendConnector.saveMissing(B1, uv, K1, P1, Xv, ev), this.emit("missingKey", B1, uv, K1, pv);
        };
        this.options.saveMissing && (this.options.saveMissingPlurals && Ov ? L1.forEach((B1) => {
          const K1 = this.pluralResolver.getSuffixes(B1, ev);
          Vv && ev[`defaultValue${this.options.pluralSeparator}zero`] && K1.indexOf(`${this.options.pluralSeparator}zero`) < 0 && K1.push(`${this.options.pluralSeparator}zero`), K1.forEach((j1) => {
            Qv([B1], sv + j1, ev[`defaultValue${j1}`] || Gv);
          });
        }) : Qv(L1, sv, Gv));
      }
      pv = this.extendTranslation(pv, tv, ev, hv, iv), Av && pv === sv && this.options.appendNamespaceToMissingKey && (pv = `${uv}:${sv}`), (Av || Cv) && this.options.parseMissingKeyHandler && (this.options.compatibilityAPI !== "v1" ? pv = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${uv}:${sv}` : sv, Cv ? pv : void 0) : pv = this.options.parseMissingKeyHandler(pv));
    }
    return ov ? (hv.res = pv, hv.usedParams = this.getUsedParamsDetails(ev), hv) : pv;
  }
  extendTranslation(tv, ev, iv, ov, av) {
    var sv = this;
    if (this.i18nFormat && this.i18nFormat.parse)
      tv = this.i18nFormat.parse(tv, {
        ...this.options.interpolation.defaultVariables,
        ...iv
      }, iv.lng || this.language || ov.usedLng, ov.usedNS, ov.usedKey, {
        resolved: ov
      });
    else if (!iv.skipInterpolation) {
      iv.interpolation && this.interpolator.init({
        ...iv,
        interpolation: {
          ...this.options.interpolation,
          ...iv.interpolation
        }
      });
      const cv = typeof tv == "string" && (iv && iv.interpolation && iv.interpolation.skipOnVariables !== void 0 ? iv.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);
      let dv;
      if (cv) {
        const pv = tv.match(this.interpolator.nestingRegexp);
        dv = pv && pv.length;
      }
      let hv = iv.replace && typeof iv.replace != "string" ? iv.replace : iv;
      if (this.options.interpolation.defaultVariables && (hv = {
        ...this.options.interpolation.defaultVariables,
        ...hv
      }), tv = this.interpolator.interpolate(tv, hv, iv.lng || this.language || ov.usedLng, iv), cv) {
        const pv = tv.match(this.interpolator.nestingRegexp), yv = pv && pv.length;
        dv < yv && (iv.nest = !1);
      }
      !iv.lng && this.options.compatibilityAPI !== "v1" && ov && ov.res && (iv.lng = this.language || ov.usedLng), iv.nest !== !1 && (tv = this.interpolator.nest(tv, function() {
        for (var pv = arguments.length, yv = new Array(pv), Sv = 0; Sv < pv; Sv++)
          yv[Sv] = arguments[Sv];
        return av && av[0] === yv[0] && !iv.context ? (sv.logger.warn(`It seems you are nesting recursively key: ${yv[0]} in key: ${ev[0]}`), null) : sv.translate(...yv, ev);
      }, iv)), iv.interpolation && this.interpolator.reset();
    }
    const lv = iv.postProcess || this.options.postProcess, uv = typeof lv == "string" ? [lv] : lv;
    return tv != null && uv && uv.length && iv.applyPostProcessor !== !1 && (tv = Zo$3.handle(uv, tv, ev, this.options && this.options.postProcessPassResolved ? {
      i18nResolved: {
        ...ov,
        usedParams: this.getUsedParamsDetails(iv)
      },
      ...iv
    } : iv, this)), tv;
  }
  resolve(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, iv, ov, av, sv, lv;
    return typeof tv == "string" && (tv = [tv]), tv.forEach((uv) => {
      if (this.isValidLookup(iv))
        return;
      const cv = this.extractFromKey(uv, ev), dv = cv.key;
      ov = dv;
      let hv = cv.namespaces;
      this.options.fallbackNS && (hv = hv.concat(this.options.fallbackNS));
      const pv = ev.count !== void 0 && typeof ev.count != "string", yv = pv && !ev.ordinal && ev.count === 0 && this.pluralResolver.shouldUseIntlApi(), Sv = ev.context !== void 0 && (typeof ev.context == "string" || typeof ev.context == "number") && ev.context !== "", _v = ev.lngs ? ev.lngs : this.languageUtils.toResolveHierarchy(ev.lng || this.language, ev.fallbackLng);
      hv.forEach((Ev) => {
        this.isValidLookup(iv) || (lv = Ev, !js$2[`${_v[0]}-${Ev}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(lv) && (js$2[`${_v[0]}-${Ev}`] = !0, this.logger.warn(`key "${ov}" for languages "${_v.join(", ")}" won't get resolved as namespace "${lv}" was not yet loaded`, "This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")), _v.forEach((wv) => {
          if (this.isValidLookup(iv))
            return;
          sv = wv;
          const xv = [dv];
          if (this.i18nFormat && this.i18nFormat.addLookupKeys)
            this.i18nFormat.addLookupKeys(xv, dv, wv, Ev, ev);
          else {
            let Av;
            pv && (Av = this.pluralResolver.getSuffix(wv, ev.count, ev));
            const Ov = `${this.options.pluralSeparator}zero`, Lv = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;
            if (pv && (xv.push(dv + Av), ev.ordinal && Av.indexOf(Lv) === 0 && xv.push(dv + Av.replace(Lv, this.options.pluralSeparator)), yv && xv.push(dv + Ov)), Sv) {
              const jv = `${dv}${this.options.contextSeparator}${ev.context}`;
              xv.push(jv), pv && (xv.push(jv + Av), ev.ordinal && Av.indexOf(Lv) === 0 && xv.push(jv + Av.replace(Lv, this.options.pluralSeparator)), yv && xv.push(jv + Ov));
            }
          }
          let Cv;
          for (; Cv = xv.pop(); )
            this.isValidLookup(iv) || (av = Cv, iv = this.getResource(wv, Ev, Cv, ev));
        }));
      });
    }), {
      res: iv,
      usedKey: ov,
      exactUsedKey: av,
      usedLng: sv,
      usedNS: lv
    };
  }
  isValidLookup(tv) {
    return tv !== void 0 && !(!this.options.returnNull && tv === null) && !(!this.options.returnEmptyString && tv === "");
  }
  getResource(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
    return this.i18nFormat && this.i18nFormat.getResource ? this.i18nFormat.getResource(tv, ev, iv, ov) : this.resourceStore.getResource(tv, ev, iv, ov);
  }
  getUsedParamsDetails() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    const ev = ["defaultValue", "ordinal", "context", "replace", "lng", "lngs", "fallbackLng", "ns", "keySeparator", "nsSeparator", "returnObjects", "returnDetails", "joinArrays", "postProcess", "interpolation"], iv = tv.replace && typeof tv.replace != "string";
    let ov = iv ? tv.replace : tv;
    if (iv && typeof tv.count < "u" && (ov.count = tv.count), this.options.interpolation.defaultVariables && (ov = {
      ...this.options.interpolation.defaultVariables,
      ...ov
    }), !iv) {
      ov = {
        ...ov
      };
      for (const av of ev)
        delete ov[av];
    }
    return ov;
  }
  static hasDefaultValue(tv) {
    const ev = "defaultValue";
    for (const iv in tv)
      if (Object.prototype.hasOwnProperty.call(tv, iv) && ev === iv.substring(0, ev.length) && tv[iv] !== void 0)
        return !0;
    return !1;
  }
};
const Li$3 = (rv) => rv.charAt(0).toUpperCase() + rv.slice(1);
let Bs$2 = class {
  constructor(tv) {
    this.options = tv, this.supportedLngs = this.options.supportedLngs || !1, this.logger = Ee$2.create("languageUtils");
  }
  getScriptPartFromCode(tv) {
    if (tv = zn$2(tv), !tv || tv.indexOf("-") < 0)
      return null;
    const ev = tv.split("-");
    return ev.length === 2 || (ev.pop(), ev[ev.length - 1].toLowerCase() === "x") ? null : this.formatLanguageCode(ev.join("-"));
  }
  getLanguagePartFromCode(tv) {
    if (tv = zn$2(tv), !tv || tv.indexOf("-") < 0)
      return tv;
    const ev = tv.split("-");
    return this.formatLanguageCode(ev[0]);
  }
  formatLanguageCode(tv) {
    if (typeof tv == "string" && tv.indexOf("-") > -1) {
      const ev = ["hans", "hant", "latn", "cyrl", "cans", "mong", "arab"];
      let iv = tv.split("-");
      return this.options.lowerCaseLng ? iv = iv.map((ov) => ov.toLowerCase()) : iv.length === 2 ? (iv[0] = iv[0].toLowerCase(), iv[1] = iv[1].toUpperCase(), ev.indexOf(iv[1].toLowerCase()) > -1 && (iv[1] = Li$3(iv[1].toLowerCase()))) : iv.length === 3 && (iv[0] = iv[0].toLowerCase(), iv[1].length === 2 && (iv[1] = iv[1].toUpperCase()), iv[0] !== "sgn" && iv[2].length === 2 && (iv[2] = iv[2].toUpperCase()), ev.indexOf(iv[1].toLowerCase()) > -1 && (iv[1] = Li$3(iv[1].toLowerCase())), ev.indexOf(iv[2].toLowerCase()) > -1 && (iv[2] = Li$3(iv[2].toLowerCase()))), iv.join("-");
    }
    return this.options.cleanCode || this.options.lowerCaseLng ? tv.toLowerCase() : tv;
  }
  isSupportedCode(tv) {
    return (this.options.load === "languageOnly" || this.options.nonExplicitSupportedLngs) && (tv = this.getLanguagePartFromCode(tv)), !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(tv) > -1;
  }
  getBestMatchFromCodes(tv) {
    if (!tv)
      return null;
    let ev;
    return tv.forEach((iv) => {
      if (ev)
        return;
      const ov = this.formatLanguageCode(iv);
      (!this.options.supportedLngs || this.isSupportedCode(ov)) && (ev = ov);
    }), !ev && this.options.supportedLngs && tv.forEach((iv) => {
      if (ev)
        return;
      const ov = this.getLanguagePartFromCode(iv);
      if (this.isSupportedCode(ov))
        return ev = ov;
      ev = this.options.supportedLngs.find((av) => {
        if (av === ov || !(av.indexOf("-") < 0 && ov.indexOf("-") < 0) && (av.indexOf("-") > 0 && ov.indexOf("-") < 0 && av.substring(0, av.indexOf("-")) === ov || av.indexOf(ov) === 0 && ov.length > 1))
          return av;
      });
    }), ev || (ev = this.getFallbackCodes(this.options.fallbackLng)[0]), ev;
  }
  getFallbackCodes(tv, ev) {
    if (!tv)
      return [];
    if (typeof tv == "function" && (tv = tv(ev)), typeof tv == "string" && (tv = [tv]), Array.isArray(tv))
      return tv;
    if (!ev)
      return tv.default || [];
    let iv = tv[ev];
    return iv || (iv = tv[this.getScriptPartFromCode(ev)]), iv || (iv = tv[this.formatLanguageCode(ev)]), iv || (iv = tv[this.getLanguagePartFromCode(ev)]), iv || (iv = tv.default), iv || [];
  }
  toResolveHierarchy(tv, ev) {
    const iv = this.getFallbackCodes(ev || this.options.fallbackLng || [], tv), ov = [], av = (sv) => {
      sv && (this.isSupportedCode(sv) ? ov.push(sv) : this.logger.warn(`rejecting language code not found in supportedLngs: ${sv}`));
    };
    return typeof tv == "string" && (tv.indexOf("-") > -1 || tv.indexOf("_") > -1) ? (this.options.load !== "languageOnly" && av(this.formatLanguageCode(tv)), this.options.load !== "languageOnly" && this.options.load !== "currentOnly" && av(this.getScriptPartFromCode(tv)), this.options.load !== "currentOnly" && av(this.getLanguagePartFromCode(tv))) : typeof tv == "string" && av(this.formatLanguageCode(tv)), iv.forEach((sv) => {
      ov.indexOf(sv) < 0 && av(this.formatLanguageCode(sv));
    }), ov;
  }
}, fp$1 = [{
  lngs: ["ach", "ak", "am", "arn", "br", "fil", "gun", "ln", "mfe", "mg", "mi", "oc", "pt", "pt-BR", "tg", "tl", "ti", "tr", "uz", "wa"],
  nr: [1, 2],
  fc: 1
}, {
  lngs: ["af", "an", "ast", "az", "bg", "bn", "ca", "da", "de", "dev", "el", "en", "eo", "es", "et", "eu", "fi", "fo", "fur", "fy", "gl", "gu", "ha", "hi", "hu", "hy", "ia", "it", "kk", "kn", "ku", "lb", "mai", "ml", "mn", "mr", "nah", "nap", "nb", "ne", "nl", "nn", "no", "nso", "pa", "pap", "pms", "ps", "pt-PT", "rm", "sco", "se", "si", "so", "son", "sq", "sv", "sw", "ta", "te", "tk", "ur", "yo"],
  nr: [1, 2],
  fc: 2
}, {
  lngs: ["ay", "bo", "cgg", "fa", "ht", "id", "ja", "jbo", "ka", "km", "ko", "ky", "lo", "ms", "sah", "su", "th", "tt", "ug", "vi", "wo", "zh"],
  nr: [1],
  fc: 3
}, {
  lngs: ["be", "bs", "cnr", "dz", "hr", "ru", "sr", "uk"],
  nr: [1, 2, 5],
  fc: 4
}, {
  lngs: ["ar"],
  nr: [0, 1, 2, 3, 11, 100],
  fc: 5
}, {
  lngs: ["cs", "sk"],
  nr: [1, 2, 5],
  fc: 6
}, {
  lngs: ["csb", "pl"],
  nr: [1, 2, 5],
  fc: 7
}, {
  lngs: ["cy"],
  nr: [1, 2, 3, 8],
  fc: 8
}, {
  lngs: ["fr"],
  nr: [1, 2],
  fc: 9
}, {
  lngs: ["ga"],
  nr: [1, 2, 3, 7, 11],
  fc: 10
}, {
  lngs: ["gd"],
  nr: [1, 2, 3, 20],
  fc: 11
}, {
  lngs: ["is"],
  nr: [1, 2],
  fc: 12
}, {
  lngs: ["jv"],
  nr: [0, 1],
  fc: 13
}, {
  lngs: ["kw"],
  nr: [1, 2, 3, 4],
  fc: 14
}, {
  lngs: ["lt"],
  nr: [1, 2, 10],
  fc: 15
}, {
  lngs: ["lv"],
  nr: [1, 2, 0],
  fc: 16
}, {
  lngs: ["mk"],
  nr: [1, 2],
  fc: 17
}, {
  lngs: ["mnk"],
  nr: [0, 1, 2],
  fc: 18
}, {
  lngs: ["mt"],
  nr: [1, 2, 11, 20],
  fc: 19
}, {
  lngs: ["or"],
  nr: [2, 1],
  fc: 2
}, {
  lngs: ["ro"],
  nr: [1, 2, 20],
  fc: 20
}, {
  lngs: ["sl"],
  nr: [5, 1, 2, 3],
  fc: 21
}, {
  lngs: ["he", "iw"],
  nr: [1, 2, 20, 21],
  fc: 22
}], hp$1 = {
  1: (rv) => +(rv > 1),
  2: (rv) => +(rv != 1),
  3: (rv) => 0,
  4: (rv) => rv % 10 == 1 && rv % 100 != 11 ? 0 : rv % 10 >= 2 && rv % 10 <= 4 && (rv % 100 < 10 || rv % 100 >= 20) ? 1 : 2,
  5: (rv) => rv == 0 ? 0 : rv == 1 ? 1 : rv == 2 ? 2 : rv % 100 >= 3 && rv % 100 <= 10 ? 3 : rv % 100 >= 11 ? 4 : 5,
  6: (rv) => rv == 1 ? 0 : rv >= 2 && rv <= 4 ? 1 : 2,
  7: (rv) => rv == 1 ? 0 : rv % 10 >= 2 && rv % 10 <= 4 && (rv % 100 < 10 || rv % 100 >= 20) ? 1 : 2,
  8: (rv) => rv == 1 ? 0 : rv == 2 ? 1 : rv != 8 && rv != 11 ? 2 : 3,
  9: (rv) => +(rv >= 2),
  10: (rv) => rv == 1 ? 0 : rv == 2 ? 1 : rv < 7 ? 2 : rv < 11 ? 3 : 4,
  11: (rv) => rv == 1 || rv == 11 ? 0 : rv == 2 || rv == 12 ? 1 : rv > 2 && rv < 20 ? 2 : 3,
  12: (rv) => +(rv % 10 != 1 || rv % 100 == 11),
  13: (rv) => +(rv !== 0),
  14: (rv) => rv == 1 ? 0 : rv == 2 ? 1 : rv == 3 ? 2 : 3,
  15: (rv) => rv % 10 == 1 && rv % 100 != 11 ? 0 : rv % 10 >= 2 && (rv % 100 < 10 || rv % 100 >= 20) ? 1 : 2,
  16: (rv) => rv % 10 == 1 && rv % 100 != 11 ? 0 : rv !== 0 ? 1 : 2,
  17: (rv) => rv == 1 || rv % 10 == 1 && rv % 100 != 11 ? 0 : 1,
  18: (rv) => rv == 0 ? 0 : rv == 1 ? 1 : 2,
  19: (rv) => rv == 1 ? 0 : rv == 0 || rv % 100 > 1 && rv % 100 < 11 ? 1 : rv % 100 > 10 && rv % 100 < 20 ? 2 : 3,
  20: (rv) => rv == 1 ? 0 : rv == 0 || rv % 100 > 0 && rv % 100 < 20 ? 1 : 2,
  21: (rv) => rv % 100 == 1 ? 1 : rv % 100 == 2 ? 2 : rv % 100 == 3 || rv % 100 == 4 ? 3 : 0,
  22: (rv) => rv == 1 ? 0 : rv == 2 ? 1 : (rv < 0 || rv > 10) && rv % 10 == 0 ? 2 : 3
};
const pp$1 = ["v1", "v2", "v3"], mp$1 = ["v4"], Hs$2 = {
  zero: 0,
  one: 1,
  two: 2,
  few: 3,
  many: 4,
  other: 5
}, gp$1 = () => {
  const rv = {};
  return fp$1.forEach((tv) => {
    tv.lngs.forEach((ev) => {
      rv[ev] = {
        numbers: tv.nr,
        plurals: hp$1[tv.fc]
      };
    });
  }), rv;
};
let vp$1 = class {
  constructor(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.languageUtils = tv, this.options = ev, this.logger = Ee$2.create("pluralResolver"), (!this.options.compatibilityJSON || mp$1.includes(this.options.compatibilityJSON)) && (typeof Intl > "u" || !Intl.PluralRules) && (this.options.compatibilityJSON = "v3", this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")), this.rules = gp$1(), this.pluralRulesCache = {};
  }
  addRule(tv, ev) {
    this.rules[tv] = ev;
  }
  clearCache() {
    this.pluralRulesCache = {};
  }
  getRule(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    if (this.shouldUseIntlApi())
      try {
        const iv = zn$2(tv === "dev" ? "en" : tv), ov = ev.ordinal ? "ordinal" : "cardinal", av = JSON.stringify({
          cleanedCode: iv,
          type: ov
        });
        if (av in this.pluralRulesCache)
          return this.pluralRulesCache[av];
        const sv = new Intl.PluralRules(iv, {
          type: ov
        });
        return this.pluralRulesCache[av] = sv, sv;
      } catch {
        return;
      }
    return this.rules[tv] || this.rules[this.languageUtils.getLanguagePartFromCode(tv)];
  }
  needsPlural(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    const iv = this.getRule(tv, ev);
    return this.shouldUseIntlApi() ? iv && iv.resolvedOptions().pluralCategories.length > 1 : iv && iv.numbers.length > 1;
  }
  getPluralFormsOfKey(tv, ev) {
    let iv = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    return this.getSuffixes(tv, iv).map((ov) => `${ev}${ov}`);
  }
  getSuffixes(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    const iv = this.getRule(tv, ev);
    return iv ? this.shouldUseIntlApi() ? iv.resolvedOptions().pluralCategories.sort((ov, av) => Hs$2[ov] - Hs$2[av]).map((ov) => `${this.options.prepend}${ev.ordinal ? `ordinal${this.options.prepend}` : ""}${ov}`) : iv.numbers.map((ov) => this.getSuffix(tv, ov, ev)) : [];
  }
  getSuffix(tv, ev) {
    let iv = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    const ov = this.getRule(tv, iv);
    return ov ? this.shouldUseIntlApi() ? `${this.options.prepend}${iv.ordinal ? `ordinal${this.options.prepend}` : ""}${ov.select(ev)}` : this.getSuffixRetroCompatible(ov, ev) : (this.logger.warn(`no plural rule found for: ${tv}`), "");
  }
  getSuffixRetroCompatible(tv, ev) {
    const iv = tv.noAbs ? tv.plurals(ev) : tv.plurals(Math.abs(ev));
    let ov = tv.numbers[iv];
    this.options.simplifyPluralSuffix && tv.numbers.length === 2 && tv.numbers[0] === 1 && (ov === 2 ? ov = "plural" : ov === 1 && (ov = ""));
    const av = () => this.options.prepend && ov.toString() ? this.options.prepend + ov.toString() : ov.toString();
    return this.options.compatibilityJSON === "v1" ? ov === 1 ? "" : typeof ov == "number" ? `_plural_${ov.toString()}` : av() : this.options.compatibilityJSON === "v2" || this.options.simplifyPluralSuffix && tv.numbers.length === 2 && tv.numbers[0] === 1 ? av() : this.options.prepend && iv.toString() ? this.options.prepend + iv.toString() : iv.toString();
  }
  shouldUseIntlApi() {
    return !pp$1.includes(this.options.compatibilityJSON);
  }
};
const qs$3 = function(rv, tv, ev) {
  let iv = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : ".", ov = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, av = sp$1(rv, tv, ev);
  return !av && ov && typeof ev == "string" && (av = vr$3(rv, ev, iv), av === void 0 && (av = vr$3(tv, ev, iv))), av;
}, Pi$3 = (rv) => rv.replace(/\$/g, "$$$$");
let kp$1 = class {
  constructor() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    this.logger = Ee$2.create("interpolator"), this.options = tv, this.format = tv.interpolation && tv.interpolation.format || ((ev) => ev), this.init(tv);
  }
  init() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    tv.interpolation || (tv.interpolation = {
      escapeValue: !0
    });
    const {
      escape: ev,
      escapeValue: iv,
      useRawValueToEscape: ov,
      prefix: av,
      prefixEscaped: sv,
      suffix: lv,
      suffixEscaped: uv,
      formatSeparator: cv,
      unescapeSuffix: dv,
      unescapePrefix: hv,
      nestingPrefix: pv,
      nestingPrefixEscaped: yv,
      nestingSuffix: Sv,
      nestingSuffixEscaped: _v,
      nestingOptionsSeparator: Ev,
      maxReplaces: wv,
      alwaysFormat: xv
    } = tv.interpolation;
    this.escape = ev !== void 0 ? ev : op$1, this.escapeValue = iv !== void 0 ? iv : !0, this.useRawValueToEscape = ov !== void 0 ? ov : !1, this.prefix = av ? ft$2(av) : sv || "{{", this.suffix = lv ? ft$2(lv) : uv || "}}", this.formatSeparator = cv || ",", this.unescapePrefix = dv ? "" : hv || "-", this.unescapeSuffix = this.unescapePrefix ? "" : dv || "", this.nestingPrefix = pv ? ft$2(pv) : yv || ft$2("$t("), this.nestingSuffix = Sv ? ft$2(Sv) : _v || ft$2(")"), this.nestingOptionsSeparator = Ev || ",", this.maxReplaces = wv || 1e3, this.alwaysFormat = xv !== void 0 ? xv : !1, this.resetRegExp();
  }
  reset() {
    this.options && this.init(this.options);
  }
  resetRegExp() {
    const tv = (ev, iv) => ev && ev.source === iv ? (ev.lastIndex = 0, ev) : new RegExp(iv, "g");
    this.regexp = tv(this.regexp, `${this.prefix}(.+?)${this.suffix}`), this.regexpUnescape = tv(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`), this.nestingRegexp = tv(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);
  }
  interpolate(tv, ev, iv, ov) {
    let av, sv, lv;
    const uv = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {}, cv = (pv) => {
      if (pv.indexOf(this.formatSeparator) < 0) {
        const Ev = qs$3(ev, uv, pv, this.options.keySeparator, this.options.ignoreJSONStructure);
        return this.alwaysFormat ? this.format(Ev, void 0, iv, {
          ...ov,
          ...ev,
          interpolationkey: pv
        }) : Ev;
      }
      const yv = pv.split(this.formatSeparator), Sv = yv.shift().trim(), _v = yv.join(this.formatSeparator).trim();
      return this.format(qs$3(ev, uv, Sv, this.options.keySeparator, this.options.ignoreJSONStructure), _v, iv, {
        ...ov,
        ...ev,
        interpolationkey: Sv
      });
    };
    this.resetRegExp();
    const dv = ov && ov.missingInterpolationHandler || this.options.missingInterpolationHandler, hv = ov && ov.interpolation && ov.interpolation.skipOnVariables !== void 0 ? ov.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;
    return [{
      regex: this.regexpUnescape,
      safeValue: (pv) => Pi$3(pv)
    }, {
      regex: this.regexp,
      safeValue: (pv) => this.escapeValue ? Pi$3(this.escape(pv)) : Pi$3(pv)
    }].forEach((pv) => {
      for (lv = 0; av = pv.regex.exec(tv); ) {
        const yv = av[1].trim();
        if (sv = cv(yv), sv === void 0)
          if (typeof dv == "function") {
            const _v = dv(tv, av, ov);
            sv = typeof _v == "string" ? _v : "";
          } else if (ov && Object.prototype.hasOwnProperty.call(ov, yv))
            sv = "";
          else if (hv) {
            sv = av[0];
            continue;
          } else
            this.logger.warn(`missed to pass in variable ${yv} for interpolating ${tv}`), sv = "";
        else
          typeof sv != "string" && !this.useRawValueToEscape && (sv = Ps$2(sv));
        const Sv = pv.safeValue(sv);
        if (tv = tv.replace(av[0], Sv), hv ? (pv.regex.lastIndex += sv.length, pv.regex.lastIndex -= av[0].length) : pv.regex.lastIndex = 0, lv++, lv >= this.maxReplaces)
          break;
      }
    }), tv;
  }
  nest(tv, ev) {
    let iv = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, ov, av, sv;
    const lv = (uv, cv) => {
      const dv = this.nestingOptionsSeparator;
      if (uv.indexOf(dv) < 0)
        return uv;
      const hv = uv.split(new RegExp(`${dv}[ ]*{`));
      let pv = `{${hv[1]}`;
      uv = hv[0], pv = this.interpolate(pv, sv);
      const yv = pv.match(/'/g), Sv = pv.match(/"/g);
      (yv && yv.length % 2 === 0 && !Sv || Sv.length % 2 !== 0) && (pv = pv.replace(/'/g, '"'));
      try {
        sv = JSON.parse(pv), cv && (sv = {
          ...cv,
          ...sv
        });
      } catch (_v) {
        return this.logger.warn(`failed parsing options string in nesting for key ${uv}`, _v), `${uv}${dv}${pv}`;
      }
      return sv.defaultValue && sv.defaultValue.indexOf(this.prefix) > -1 && delete sv.defaultValue, uv;
    };
    for (; ov = this.nestingRegexp.exec(tv); ) {
      let uv = [];
      sv = {
        ...iv
      }, sv = sv.replace && typeof sv.replace != "string" ? sv.replace : sv, sv.applyPostProcessor = !1, delete sv.defaultValue;
      let cv = !1;
      if (ov[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(ov[1])) {
        const dv = ov[1].split(this.formatSeparator).map((hv) => hv.trim());
        ov[1] = dv.shift(), uv = dv, cv = !0;
      }
      if (av = ev(lv.call(this, ov[1].trim(), sv), sv), av && ov[0] === tv && typeof av != "string")
        return av;
      typeof av != "string" && (av = Ps$2(av)), av || (this.logger.warn(`missed to resolve ${ov[1]} for nesting ${tv}`), av = ""), cv && (av = uv.reduce((dv, hv) => this.format(dv, hv, iv.lng, {
        ...iv,
        interpolationkey: ov[1].trim()
      }), av.trim())), tv = tv.replace(ov[0], av), this.regexp.lastIndex = 0;
    }
    return tv;
  }
};
const yp$1 = (rv) => {
  let tv = rv.toLowerCase().trim();
  const ev = {};
  if (rv.indexOf("(") > -1) {
    const iv = rv.split("(");
    tv = iv[0].toLowerCase().trim();
    const ov = iv[1].substring(0, iv[1].length - 1);
    tv === "currency" && ov.indexOf(":") < 0 ? ev.currency || (ev.currency = ov.trim()) : tv === "relativetime" && ov.indexOf(":") < 0 ? ev.range || (ev.range = ov.trim()) : ov.split(";").forEach((av) => {
      if (av) {
        const [sv, ...lv] = av.split(":"), uv = lv.join(":").trim().replace(/^'+|'+$/g, ""), cv = sv.trim();
        ev[cv] || (ev[cv] = uv), uv === "false" && (ev[cv] = !1), uv === "true" && (ev[cv] = !0), isNaN(uv) || (ev[cv] = parseInt(uv, 10));
      }
    });
  }
  return {
    formatName: tv,
    formatOptions: ev
  };
}, ht$1 = (rv) => {
  const tv = {};
  return (ev, iv, ov) => {
    let av = ov;
    ov && ov.interpolationkey && ov.formatParams && ov.formatParams[ov.interpolationkey] && ov[ov.interpolationkey] && (av = {
      ...av,
      [ov.interpolationkey]: void 0
    });
    const sv = iv + JSON.stringify(av);
    let lv = tv[sv];
    return lv || (lv = rv(zn$2(iv), ov), tv[sv] = lv), lv(ev);
  };
};
let _p$1 = class {
  constructor() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    this.logger = Ee$2.create("formatter"), this.options = tv, this.formats = {
      number: ht$1((ev, iv) => {
        const ov = new Intl.NumberFormat(ev, {
          ...iv
        });
        return (av) => ov.format(av);
      }),
      currency: ht$1((ev, iv) => {
        const ov = new Intl.NumberFormat(ev, {
          ...iv,
          style: "currency"
        });
        return (av) => ov.format(av);
      }),
      datetime: ht$1((ev, iv) => {
        const ov = new Intl.DateTimeFormat(ev, {
          ...iv
        });
        return (av) => ov.format(av);
      }),
      relativetime: ht$1((ev, iv) => {
        const ov = new Intl.RelativeTimeFormat(ev, {
          ...iv
        });
        return (av) => ov.format(av, iv.range || "day");
      }),
      list: ht$1((ev, iv) => {
        const ov = new Intl.ListFormat(ev, {
          ...iv
        });
        return (av) => ov.format(av);
      })
    }, this.init(tv);
  }
  init(tv) {
    const ev = (arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
      interpolation: {}
    }).interpolation;
    this.formatSeparator = ev.formatSeparator ? ev.formatSeparator : ev.formatSeparator || ",";
  }
  add(tv, ev) {
    this.formats[tv.toLowerCase().trim()] = ev;
  }
  addCached(tv, ev) {
    this.formats[tv.toLowerCase().trim()] = ht$1(ev);
  }
  format(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
    const av = ev.split(this.formatSeparator);
    if (av.length > 1 && av[0].indexOf("(") > 1 && av[0].indexOf(")") < 0 && av.find((sv) => sv.indexOf(")") > -1)) {
      const sv = av.findIndex((lv) => lv.indexOf(")") > -1);
      av[0] = [av[0], ...av.splice(1, sv)].join(this.formatSeparator);
    }
    return av.reduce((sv, lv) => {
      const {
        formatName: uv,
        formatOptions: cv
      } = yp$1(lv);
      if (this.formats[uv]) {
        let dv = sv;
        try {
          const hv = ov && ov.formatParams && ov.formatParams[ov.interpolationkey] || {}, pv = hv.locale || hv.lng || ov.locale || ov.lng || iv;
          dv = this.formats[uv](sv, pv, {
            ...cv,
            ...ov,
            ...hv
          });
        } catch (hv) {
          this.logger.warn(hv);
        }
        return dv;
      } else
        this.logger.warn(`there was no format function for ${uv}`);
      return sv;
    }, tv);
  }
};
const bp$1 = (rv, tv) => {
  rv.pending[tv] !== void 0 && (delete rv.pending[tv], rv.pendingCount--);
};
let Np$1 = class extends mi$3 {
  constructor(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
    super(), this.backend = tv, this.store = ev, this.services = iv, this.languageUtils = iv.languageUtils, this.options = ov, this.logger = Ee$2.create("backendConnector"), this.waitingReads = [], this.maxParallelReads = ov.maxParallelReads || 10, this.readingCalls = 0, this.maxRetries = ov.maxRetries >= 0 ? ov.maxRetries : 5, this.retryTimeout = ov.retryTimeout >= 1 ? ov.retryTimeout : 350, this.state = {}, this.queue = [], this.backend && this.backend.init && this.backend.init(iv, ov.backend, ov);
  }
  queueLoad(tv, ev, iv, ov) {
    const av = {}, sv = {}, lv = {}, uv = {};
    return tv.forEach((cv) => {
      let dv = !0;
      ev.forEach((hv) => {
        const pv = `${cv}|${hv}`;
        !iv.reload && this.store.hasResourceBundle(cv, hv) ? this.state[pv] = 2 : this.state[pv] < 0 || (this.state[pv] === 1 ? sv[pv] === void 0 && (sv[pv] = !0) : (this.state[pv] = 1, dv = !1, sv[pv] === void 0 && (sv[pv] = !0), av[pv] === void 0 && (av[pv] = !0), uv[hv] === void 0 && (uv[hv] = !0)));
      }), dv || (lv[cv] = !0);
    }), (Object.keys(av).length || Object.keys(sv).length) && this.queue.push({
      pending: sv,
      pendingCount: Object.keys(sv).length,
      loaded: {},
      errors: [],
      callback: ov
    }), {
      toLoad: Object.keys(av),
      pending: Object.keys(sv),
      toLoadLanguages: Object.keys(lv),
      toLoadNamespaces: Object.keys(uv)
    };
  }
  loaded(tv, ev, iv) {
    const ov = tv.split("|"), av = ov[0], sv = ov[1];
    ev && this.emit("failedLoading", av, sv, ev), !ev && iv && this.store.addResourceBundle(av, sv, iv, void 0, void 0, {
      skipCopy: !0
    }), this.state[tv] = ev ? -1 : 2, ev && iv && (this.state[tv] = 0);
    const lv = {};
    this.queue.forEach((uv) => {
      rp$1(uv.loaded, [av], sv), bp$1(uv, tv), ev && uv.errors.push(ev), uv.pendingCount === 0 && !uv.done && (Object.keys(uv.loaded).forEach((cv) => {
        lv[cv] || (lv[cv] = {});
        const dv = uv.loaded[cv];
        dv.length && dv.forEach((hv) => {
          lv[cv][hv] === void 0 && (lv[cv][hv] = !0);
        });
      }), uv.done = !0, uv.errors.length ? uv.callback(uv.errors) : uv.callback());
    }), this.emit("loaded", lv), this.queue = this.queue.filter((uv) => !uv.done);
  }
  read(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0, av = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : this.retryTimeout, sv = arguments.length > 5 ? arguments[5] : void 0;
    if (!tv.length)
      return sv(null, {});
    if (this.readingCalls >= this.maxParallelReads) {
      this.waitingReads.push({
        lng: tv,
        ns: ev,
        fcName: iv,
        tried: ov,
        wait: av,
        callback: sv
      });
      return;
    }
    this.readingCalls++;
    const lv = (cv, dv) => {
      if (this.readingCalls--, this.waitingReads.length > 0) {
        const hv = this.waitingReads.shift();
        this.read(hv.lng, hv.ns, hv.fcName, hv.tried, hv.wait, hv.callback);
      }
      if (cv && dv && ov < this.maxRetries) {
        setTimeout(() => {
          this.read.call(this, tv, ev, iv, ov + 1, av * 2, sv);
        }, av);
        return;
      }
      sv(cv, dv);
    }, uv = this.backend[iv].bind(this.backend);
    if (uv.length === 2) {
      try {
        const cv = uv(tv, ev);
        cv && typeof cv.then == "function" ? cv.then((dv) => lv(null, dv)).catch(lv) : lv(null, cv);
      } catch (cv) {
        lv(cv);
      }
      return;
    }
    return uv(tv, ev, lv);
  }
  prepareLoading(tv, ev) {
    let iv = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, ov = arguments.length > 3 ? arguments[3] : void 0;
    if (!this.backend)
      return this.logger.warn("No backend was added via i18next.use. Will not load resources."), ov && ov();
    typeof tv == "string" && (tv = this.languageUtils.toResolveHierarchy(tv)), typeof ev == "string" && (ev = [ev]);
    const av = this.queueLoad(tv, ev, iv, ov);
    if (!av.toLoad.length)
      return av.pending.length || ov(), null;
    av.toLoad.forEach((sv) => {
      this.loadOne(sv);
    });
  }
  load(tv, ev, iv) {
    this.prepareLoading(tv, ev, {}, iv);
  }
  reload(tv, ev, iv) {
    this.prepareLoading(tv, ev, {
      reload: !0
    }, iv);
  }
  loadOne(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
    const iv = tv.split("|"), ov = iv[0], av = iv[1];
    this.read(ov, av, "read", void 0, void 0, (sv, lv) => {
      sv && this.logger.warn(`${ev}loading namespace ${av} for language ${ov} failed`, sv), !sv && lv && this.logger.log(`${ev}loaded namespace ${av} for language ${ov}`, lv), this.loaded(tv, sv, lv);
    });
  }
  saveMissing(tv, ev, iv, ov, av) {
    let sv = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : {}, lv = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : () => {
    };
    if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(ev)) {
      this.logger.warn(`did not save key "${iv}" as the namespace "${ev}" was not yet loaded`, "This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");
      return;
    }
    if (!(iv == null || iv === "")) {
      if (this.backend && this.backend.create) {
        const uv = {
          ...sv,
          isUpdate: av
        }, cv = this.backend.create.bind(this.backend);
        if (cv.length < 6)
          try {
            let dv;
            cv.length === 5 ? dv = cv(tv, ev, iv, ov, uv) : dv = cv(tv, ev, iv, ov), dv && typeof dv.then == "function" ? dv.then((hv) => lv(null, hv)).catch(lv) : lv(null, dv);
          } catch (dv) {
            lv(dv);
          }
        else
          cv(tv, ev, iv, ov, lv, uv);
      }
      !tv || !tv[0] || this.store.addResource(tv[0], ev, iv, ov);
    }
  }
};
const zs$2 = () => ({
  debug: !1,
  initImmediate: !0,
  ns: ["translation"],
  defaultNS: ["translation"],
  fallbackLng: ["dev"],
  fallbackNS: !1,
  supportedLngs: !1,
  nonExplicitSupportedLngs: !1,
  load: "all",
  preload: !1,
  simplifyPluralSuffix: !0,
  keySeparator: ".",
  nsSeparator: ":",
  pluralSeparator: "_",
  contextSeparator: "_",
  partialBundledLanguages: !1,
  saveMissing: !1,
  updateMissing: !1,
  saveMissingTo: "fallback",
  saveMissingPlurals: !0,
  missingKeyHandler: !1,
  missingInterpolationHandler: !1,
  postProcess: !1,
  postProcessPassResolved: !1,
  returnNull: !1,
  returnEmptyString: !0,
  returnObjects: !1,
  joinArrays: !1,
  returnedObjectHandler: !1,
  parseMissingKeyHandler: !1,
  appendNamespaceToMissingKey: !1,
  appendNamespaceToCIMode: !1,
  overloadTranslationOptionHandler: (rv) => {
    let tv = {};
    if (typeof rv[1] == "object" && (tv = rv[1]), typeof rv[1] == "string" && (tv.defaultValue = rv[1]), typeof rv[2] == "string" && (tv.tDescription = rv[2]), typeof rv[2] == "object" || typeof rv[3] == "object") {
      const ev = rv[3] || rv[2];
      Object.keys(ev).forEach((iv) => {
        tv[iv] = ev[iv];
      });
    }
    return tv;
  },
  interpolation: {
    escapeValue: !0,
    format: (rv) => rv,
    prefix: "{{",
    suffix: "}}",
    formatSeparator: ",",
    unescapePrefix: "-",
    nestingPrefix: "$t(",
    nestingSuffix: ")",
    nestingOptionsSeparator: ",",
    maxReplaces: 1e3,
    skipOnVariables: !0
  }
}), Gs$3 = (rv) => (typeof rv.ns == "string" && (rv.ns = [rv.ns]), typeof rv.fallbackLng == "string" && (rv.fallbackLng = [rv.fallbackLng]), typeof rv.fallbackNS == "string" && (rv.fallbackNS = [rv.fallbackNS]), rv.supportedLngs && rv.supportedLngs.indexOf("cimode") < 0 && (rv.supportedLngs = rv.supportedLngs.concat(["cimode"])), rv), _n$1 = () => {
}, Sp$1 = (rv) => {
  Object.getOwnPropertyNames(Object.getPrototypeOf(rv)).forEach((tv) => {
    typeof rv[tv] == "function" && (rv[tv] = rv[tv].bind(rv));
  });
};
let nn$2 = class XM extends mi$3 {
  constructor() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, ev = arguments.length > 1 ? arguments[1] : void 0;
    if (super(), this.options = Gs$3(tv), this.services = {}, this.logger = Ee$2, this.modules = {
      external: []
    }, Sp$1(this), ev && !this.isInitialized && !tv.isClone) {
      if (!this.options.initImmediate)
        return this.init(tv, ev), this;
      setTimeout(() => {
        this.init(tv, ev);
      }, 0);
    }
  }
  init() {
    var tv = this;
    let ev = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, iv = arguments.length > 1 ? arguments[1] : void 0;
    this.isInitializing = !0, typeof ev == "function" && (iv = ev, ev = {}), !ev.defaultNS && ev.defaultNS !== !1 && ev.ns && (typeof ev.ns == "string" ? ev.defaultNS = ev.ns : ev.ns.indexOf("translation") < 0 && (ev.defaultNS = ev.ns[0]));
    const ov = zs$2();
    this.options = {
      ...ov,
      ...this.options,
      ...Gs$3(ev)
    }, this.options.compatibilityAPI !== "v1" && (this.options.interpolation = {
      ...ov.interpolation,
      ...this.options.interpolation
    }), ev.keySeparator !== void 0 && (this.options.userDefinedKeySeparator = ev.keySeparator), ev.nsSeparator !== void 0 && (this.options.userDefinedNsSeparator = ev.nsSeparator);
    const av = (uv) => uv ? typeof uv == "function" ? new uv() : uv : null;
    if (!this.options.isClone) {
      this.modules.logger ? Ee$2.init(av(this.modules.logger), this.options) : Ee$2.init(null, this.options);
      let uv;
      this.modules.formatter ? uv = this.modules.formatter : typeof Intl < "u" && (uv = _p$1);
      const cv = new Bs$2(this.options);
      this.store = new Vs$2(this.options.resources, this.options);
      const dv = this.services;
      dv.logger = Ee$2, dv.resourceStore = this.store, dv.languageUtils = cv, dv.pluralResolver = new vp$1(cv, {
        prepend: this.options.pluralSeparator,
        compatibilityJSON: this.options.compatibilityJSON,
        simplifyPluralSuffix: this.options.simplifyPluralSuffix
      }), uv && (!this.options.interpolation.format || this.options.interpolation.format === ov.interpolation.format) && (dv.formatter = av(uv), dv.formatter.init(dv, this.options), this.options.interpolation.format = dv.formatter.format.bind(dv.formatter)), dv.interpolator = new kp$1(this.options), dv.utils = {
        hasLoadedNamespace: this.hasLoadedNamespace.bind(this)
      }, dv.backendConnector = new Np$1(av(this.modules.backend), dv.resourceStore, dv, this.options), dv.backendConnector.on("*", function(hv) {
        for (var pv = arguments.length, yv = new Array(pv > 1 ? pv - 1 : 0), Sv = 1; Sv < pv; Sv++)
          yv[Sv - 1] = arguments[Sv];
        tv.emit(hv, ...yv);
      }), this.modules.languageDetector && (dv.languageDetector = av(this.modules.languageDetector), dv.languageDetector.init && dv.languageDetector.init(dv, this.options.detection, this.options)), this.modules.i18nFormat && (dv.i18nFormat = av(this.modules.i18nFormat), dv.i18nFormat.init && dv.i18nFormat.init(this)), this.translator = new Gn$2(this.services, this.options), this.translator.on("*", function(hv) {
        for (var pv = arguments.length, yv = new Array(pv > 1 ? pv - 1 : 0), Sv = 1; Sv < pv; Sv++)
          yv[Sv - 1] = arguments[Sv];
        tv.emit(hv, ...yv);
      }), this.modules.external.forEach((hv) => {
        hv.init && hv.init(this);
      });
    }
    if (this.format = this.options.interpolation.format, iv || (iv = _n$1), this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
      const uv = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
      uv.length > 0 && uv[0] !== "dev" && (this.options.lng = uv[0]);
    }
    !this.services.languageDetector && !this.options.lng && this.logger.warn("init: no languageDetector is used and no lng is defined"), ["getResource", "hasResourceBundle", "getResourceBundle", "getDataByLanguage"].forEach((uv) => {
      this[uv] = function() {
        return tv.store[uv](...arguments);
      };
    }), ["addResource", "addResources", "addResourceBundle", "removeResourceBundle"].forEach((uv) => {
      this[uv] = function() {
        return tv.store[uv](...arguments), tv;
      };
    });
    const sv = Pt$3(), lv = () => {
      const uv = (cv, dv) => {
        this.isInitializing = !1, this.isInitialized && !this.initializedStoreOnce && this.logger.warn("init: i18next is already initialized. You should call init just once!"), this.isInitialized = !0, this.options.isClone || this.logger.log("initialized", this.options), this.emit("initialized", this.options), sv.resolve(dv), iv(cv, dv);
      };
      if (this.languages && this.options.compatibilityAPI !== "v1" && !this.isInitialized)
        return uv(null, this.t.bind(this));
      this.changeLanguage(this.options.lng, uv);
    };
    return this.options.resources || !this.options.initImmediate ? lv() : setTimeout(lv, 0), sv;
  }
  loadResources(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _n$1;
    const iv = typeof tv == "string" ? tv : this.language;
    if (typeof tv == "function" && (ev = tv), !this.options.resources || this.options.partialBundledLanguages) {
      if (iv && iv.toLowerCase() === "cimode" && (!this.options.preload || this.options.preload.length === 0))
        return ev();
      const ov = [], av = (sv) => {
        !sv || sv === "cimode" || this.services.languageUtils.toResolveHierarchy(sv).forEach((lv) => {
          lv !== "cimode" && ov.indexOf(lv) < 0 && ov.push(lv);
        });
      };
      iv ? av(iv) : this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((sv) => av(sv)), this.options.preload && this.options.preload.forEach((sv) => av(sv)), this.services.backendConnector.load(ov, this.options.ns, (sv) => {
        !sv && !this.resolvedLanguage && this.language && this.setResolvedLanguage(this.language), ev(sv);
      });
    } else
      ev(null);
  }
  reloadResources(tv, ev, iv) {
    const ov = Pt$3();
    return typeof tv == "function" && (iv = tv, tv = void 0), typeof ev == "function" && (iv = ev, ev = void 0), tv || (tv = this.languages), ev || (ev = this.options.ns), iv || (iv = _n$1), this.services.backendConnector.reload(tv, ev, (av) => {
      ov.resolve(), iv(av);
    }), ov;
  }
  use(tv) {
    if (!tv)
      throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");
    if (!tv.type)
      throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");
    return tv.type === "backend" && (this.modules.backend = tv), (tv.type === "logger" || tv.log && tv.warn && tv.error) && (this.modules.logger = tv), tv.type === "languageDetector" && (this.modules.languageDetector = tv), tv.type === "i18nFormat" && (this.modules.i18nFormat = tv), tv.type === "postProcessor" && Zo$3.addPostProcessor(tv), tv.type === "formatter" && (this.modules.formatter = tv), tv.type === "3rdParty" && this.modules.external.push(tv), this;
  }
  setResolvedLanguage(tv) {
    if (!(!tv || !this.languages) && !(["cimode", "dev"].indexOf(tv) > -1))
      for (let ev = 0; ev < this.languages.length; ev++) {
        const iv = this.languages[ev];
        if (!(["cimode", "dev"].indexOf(iv) > -1) && this.store.hasLanguageSomeTranslations(iv)) {
          this.resolvedLanguage = iv;
          break;
        }
      }
  }
  changeLanguage(tv, ev) {
    var iv = this;
    this.isLanguageChangingTo = tv;
    const ov = Pt$3();
    this.emit("languageChanging", tv);
    const av = (uv) => {
      this.language = uv, this.languages = this.services.languageUtils.toResolveHierarchy(uv), this.resolvedLanguage = void 0, this.setResolvedLanguage(uv);
    }, sv = (uv, cv) => {
      cv ? (av(cv), this.translator.changeLanguage(cv), this.isLanguageChangingTo = void 0, this.emit("languageChanged", cv), this.logger.log("languageChanged", cv)) : this.isLanguageChangingTo = void 0, ov.resolve(function() {
        return iv.t(...arguments);
      }), ev && ev(uv, function() {
        return iv.t(...arguments);
      });
    }, lv = (uv) => {
      !tv && !uv && this.services.languageDetector && (uv = []);
      const cv = typeof uv == "string" ? uv : this.services.languageUtils.getBestMatchFromCodes(uv);
      cv && (this.language || av(cv), this.translator.language || this.translator.changeLanguage(cv), this.services.languageDetector && this.services.languageDetector.cacheUserLanguage && this.services.languageDetector.cacheUserLanguage(cv)), this.loadResources(cv, (dv) => {
        sv(dv, cv);
      });
    };
    return !tv && this.services.languageDetector && !this.services.languageDetector.async ? lv(this.services.languageDetector.detect()) : !tv && this.services.languageDetector && this.services.languageDetector.async ? this.services.languageDetector.detect.length === 0 ? this.services.languageDetector.detect().then(lv) : this.services.languageDetector.detect(lv) : lv(tv), ov;
  }
  getFixedT(tv, ev, iv) {
    var ov = this;
    const av = function(sv, lv) {
      let uv;
      if (typeof lv != "object") {
        for (var cv = arguments.length, dv = new Array(cv > 2 ? cv - 2 : 0), hv = 2; hv < cv; hv++)
          dv[hv - 2] = arguments[hv];
        uv = ov.options.overloadTranslationOptionHandler([sv, lv].concat(dv));
      } else
        uv = {
          ...lv
        };
      uv.lng = uv.lng || av.lng, uv.lngs = uv.lngs || av.lngs, uv.ns = uv.ns || av.ns, uv.keyPrefix !== "" && (uv.keyPrefix = uv.keyPrefix || iv || av.keyPrefix);
      const pv = ov.options.keySeparator || ".";
      let yv;
      return uv.keyPrefix && Array.isArray(sv) ? yv = sv.map((Sv) => `${uv.keyPrefix}${pv}${Sv}`) : yv = uv.keyPrefix ? `${uv.keyPrefix}${pv}${sv}` : sv, ov.t(yv, uv);
    };
    return typeof tv == "string" ? av.lng = tv : av.lngs = tv, av.ns = ev, av.keyPrefix = iv, av;
  }
  t() {
    return this.translator && this.translator.translate(...arguments);
  }
  exists() {
    return this.translator && this.translator.exists(...arguments);
  }
  setDefaultNamespace(tv) {
    this.options.defaultNS = tv;
  }
  hasLoadedNamespace(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    if (!this.isInitialized)
      return this.logger.warn("hasLoadedNamespace: i18next was not initialized", this.languages), !1;
    if (!this.languages || !this.languages.length)
      return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty", this.languages), !1;
    const iv = ev.lng || this.resolvedLanguage || this.languages[0], ov = this.options ? this.options.fallbackLng : !1, av = this.languages[this.languages.length - 1];
    if (iv.toLowerCase() === "cimode")
      return !0;
    const sv = (lv, uv) => {
      const cv = this.services.backendConnector.state[`${lv}|${uv}`];
      return cv === -1 || cv === 0 || cv === 2;
    };
    if (ev.precheck) {
      const lv = ev.precheck(this, sv);
      if (lv !== void 0)
        return lv;
    }
    return !!(this.hasResourceBundle(iv, tv) || !this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages || sv(iv, tv) && (!ov || sv(av, tv)));
  }
  loadNamespaces(tv, ev) {
    const iv = Pt$3();
    return this.options.ns ? (typeof tv == "string" && (tv = [tv]), tv.forEach((ov) => {
      this.options.ns.indexOf(ov) < 0 && this.options.ns.push(ov);
    }), this.loadResources((ov) => {
      iv.resolve(), ev && ev(ov);
    }), iv) : (ev && ev(), Promise.resolve());
  }
  loadLanguages(tv, ev) {
    const iv = Pt$3();
    typeof tv == "string" && (tv = [tv]);
    const ov = this.options.preload || [], av = tv.filter((sv) => ov.indexOf(sv) < 0 && this.services.languageUtils.isSupportedCode(sv));
    return av.length ? (this.options.preload = ov.concat(av), this.loadResources((sv) => {
      iv.resolve(), ev && ev(sv);
    }), iv) : (ev && ev(), Promise.resolve());
  }
  dir(tv) {
    if (tv || (tv = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language)), !tv)
      return "rtl";
    const ev = ["ar", "shu", "sqr", "ssh", "xaa", "yhd", "yud", "aao", "abh", "abv", "acm", "acq", "acw", "acx", "acy", "adf", "ads", "aeb", "aec", "afb", "ajp", "apc", "apd", "arb", "arq", "ars", "ary", "arz", "auz", "avl", "ayh", "ayl", "ayn", "ayp", "bbz", "pga", "he", "iw", "ps", "pbt", "pbu", "pst", "prp", "prd", "ug", "ur", "ydd", "yds", "yih", "ji", "yi", "hbo", "men", "xmn", "fa", "jpr", "peo", "pes", "prs", "dv", "sam", "ckb"], iv = this.services && this.services.languageUtils || new Bs$2(zs$2());
    return ev.indexOf(iv.getLanguagePartFromCode(tv)) > -1 || tv.toLowerCase().indexOf("-arab") > 1 ? "rtl" : "ltr";
  }
  static createInstance() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, ev = arguments.length > 1 ? arguments[1] : void 0;
    return new XM(tv, ev);
  }
  cloneInstance() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _n$1;
    const iv = tv.forkResourceStore;
    iv && delete tv.forkResourceStore;
    const ov = {
      ...this.options,
      ...tv,
      isClone: !0
    }, av = new XM(ov);
    return (tv.debug !== void 0 || tv.prefix !== void 0) && (av.logger = av.logger.clone(tv)), ["store", "services", "language"].forEach((sv) => {
      av[sv] = this[sv];
    }), av.services = {
      ...this.services
    }, av.services.utils = {
      hasLoadedNamespace: av.hasLoadedNamespace.bind(av)
    }, iv && (av.store = new Vs$2(this.store.data, ov), av.services.resourceStore = av.store), av.translator = new Gn$2(av.services, ov), av.translator.on("*", function(sv) {
      for (var lv = arguments.length, uv = new Array(lv > 1 ? lv - 1 : 0), cv = 1; cv < lv; cv++)
        uv[cv - 1] = arguments[cv];
      av.emit(sv, ...uv);
    }), av.init(ov, ev), av.translator.options = ov, av.translator.backendConnector.services.utils = {
      hasLoadedNamespace: av.hasLoadedNamespace.bind(av)
    }, av;
  }
  toJSON() {
    return {
      options: this.options,
      store: this.store,
      language: this.language,
      languages: this.languages,
      resolvedLanguage: this.resolvedLanguage
    };
  }
};
const X$2 = nn$2.createInstance();
X$2.createInstance = nn$2.createInstance;
X$2.createInstance;
X$2.dir;
X$2.init;
X$2.loadResources;
X$2.reloadResources;
X$2.use;
X$2.changeLanguage;
X$2.getFixedT;
const Ks$2 = X$2.t;
X$2.exists;
X$2.setDefaultNamespace;
X$2.hasLoadedNamespace;
X$2.loadNamespaces;
X$2.loadLanguages;
const Ep$1 = (rv) => Ks$2(rv ? `errorCodes.${rv}` : "errorCodes.DEFAULT");
class gv {
  constructor(tv) {
    R$1(this, "logger"), R$1(this, "axiosInstance"), this.logger = tv.logger, this.axiosInstance = G$1.create({
      baseURL: tv.baseUrl,
      headers: tv.accessToken ? { Authorization: `Bearer ${tv.accessToken}` } : {}
    });
  }
  /**
   * Performs a GET request to the specified path.
   *
   * @param {string} path - The endpoint path.
   * @returns {Promise<T>} - The response data.
   * @throws {Error} - Throws a user-friendly error message if the request fails.
   */
  async get(tv) {
    try {
      return (await this.axiosInstance.get(tv)).data;
    } catch (ev) {
      throw this.handleError(ev);
    }
  }
  /**
   * Performs a POST request to the specified path with the provided data.
   *
   * @param {string} path - The endpoint path.
   * @param {PostRequestInput} input - The request config.
   * @returns {Promise<T>} - The response data.
   * @throws {Error} - Throws a user-friendly error message if the request fails.
   */
  async post(tv, ev) {
    var iv;
    const { data: ov = {}, ignoreError: av = !1 } = ev;
    try {
      return (await this.axiosInstance.post(
        tv,
        ov
      )).data;
    } catch (sv) {
      if (av && G$1.isAxiosError(sv))
        return (iv = sv.response) == null ? void 0 : iv.data;
      throw this.handleError(sv);
    }
  }
  /**
   * Performs a PUT request to the specified path with the provided data.
   *
   * @param {string} path - The endpoint path.
   * @param {PostRequestInput} input - The request config.
   * @returns {Promise<T>} - The response data.
   * @throws {Error} - Throws a user-friendly error message if the request fails.
   */
  async put(tv, ev) {
    var iv;
    const { data: ov = {}, ignoreError: av = !1 } = ev;
    try {
      return (await this.axiosInstance.put(
        tv,
        ov
      )).data;
    } catch (sv) {
      if (av && G$1.isAxiosError(sv))
        return (iv = sv.response) == null ? void 0 : iv.data;
      throw this.handleError(sv);
    }
  }
  /**
   * Performs a DELETE request to the specified path.
   *
   * @param {string} path - The endpoint path.
   * @returns {Promise<T>} - The response data.
   * @throws {Error} - Throws a user-friendly error message if the request fails.
   */
  async delete(tv) {
    try {
      return (await this.axiosInstance.delete(tv)).data;
    } catch (ev) {
      throw this.handleError(ev);
    }
  }
  /**
   * Handles errors from Axios requests, logging them and returning a user-friendly error message.
   *
   * @param {unknown} error - The error object from Axios.
   * @returns {Error} - A new error with a user-friendly message.
   */
  handleError(tv) {
    var ev;
    let iv = Z$2.GENERAL_ERROR;
    if (G$1.isAxiosError(tv))
      if (tv.response)
        switch (tv.response.status) {
          case 400:
            iv = Z$2.BAD_REQUEST;
            break;
          case 401:
            iv = Z$2.UNAUTHORIZED;
            break;
          case 403:
            iv = Z$2.FORBIDDEN;
            break;
          case 404:
            iv = Z$2.NOT_FOUND;
            break;
          case 409:
            iv = Z$2.CONFLICT;
            break;
          case 410:
            iv = Z$2.GONE;
            break;
          case 415:
            iv = Z$2.UNSUPPORTED_MEDIA_TYPE;
            break;
          case 429:
            iv = Z$2.TOO_MANY_REQUESTS;
            break;
          case 500:
            iv = Z$2.INTERNAL_SERVER_ERROR;
            break;
          case 503:
            iv = Z$2.SERVICE_UNAVAILABLE;
            break;
          default:
            iv = Z$2.SERVER_ERROR;
        }
      else
        tv.request ? iv = Z$2.NETWORK_ERROR : iv = Z$2.CONFIG_ERROR;
    const ov = Ep$1(iv);
    return this.logger.error("Error Code:", iv, "Message:", ov), this.logger.error("Result Data:", (ev = tv.response) == null ? void 0 : ev.data), new Error(ov);
  }
}
function Ap$1(rv) {
  const tv = Object.values(rv);
  return Object.assign({}, ...tv);
}
function Op$2(rv) {
  return Object.entries(rv).reduce(
    (tv, [ev, iv]) => {
      const ov = Ap$1(iv);
      return { ...tv, [ev]: ov };
    },
    {}
  );
}
function wp$1(rv, tv) {
  const ev = Op$2(tv);
  Object.entries(ev).forEach(([iv, ov]) => {
    rv.addResourceBundle(iv, "translation", ov, !0);
  });
}
const {
  slice: Tp$1,
  forEach: Cp$1
} = [];
function xp$1(rv) {
  return Cp$1.call(Tp$1.call(arguments, 1), (tv) => {
    if (tv)
      for (const ev in tv)
        rv[ev] === void 0 && (rv[ev] = tv[ev]);
  }), rv;
}
const Ws$3 = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, Rp$1 = (rv, tv, ev) => {
  const iv = ev || {};
  iv.path = iv.path || "/";
  const ov = encodeURIComponent(tv);
  let av = `${rv}=${ov}`;
  if (iv.maxAge > 0) {
    const sv = iv.maxAge - 0;
    if (Number.isNaN(sv))
      throw new Error("maxAge should be a Number");
    av += `; Max-Age=${Math.floor(sv)}`;
  }
  if (iv.domain) {
    if (!Ws$3.test(iv.domain))
      throw new TypeError("option domain is invalid");
    av += `; Domain=${iv.domain}`;
  }
  if (iv.path) {
    if (!Ws$3.test(iv.path))
      throw new TypeError("option path is invalid");
    av += `; Path=${iv.path}`;
  }
  if (iv.expires) {
    if (typeof iv.expires.toUTCString != "function")
      throw new TypeError("option expires is invalid");
    av += `; Expires=${iv.expires.toUTCString()}`;
  }
  if (iv.httpOnly && (av += "; HttpOnly"), iv.secure && (av += "; Secure"), iv.sameSite)
    switch (typeof iv.sameSite == "string" ? iv.sameSite.toLowerCase() : iv.sameSite) {
      case !0:
        av += "; SameSite=Strict";
        break;
      case "lax":
        av += "; SameSite=Lax";
        break;
      case "strict":
        av += "; SameSite=Strict";
        break;
      case "none":
        av += "; SameSite=None";
        break;
      default:
        throw new TypeError("option sameSite is invalid");
    }
  return av;
}, Js$3 = {
  create(rv, tv, ev, iv) {
    let ov = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : {
      path: "/",
      sameSite: "strict"
    };
    ev && (ov.expires = /* @__PURE__ */ new Date(), ov.expires.setTime(ov.expires.getTime() + ev * 60 * 1e3)), iv && (ov.domain = iv), document.cookie = Rp$1(rv, encodeURIComponent(tv), ov);
  },
  read(rv) {
    const tv = `${rv}=`, ev = document.cookie.split(";");
    for (let iv = 0; iv < ev.length; iv++) {
      let ov = ev[iv];
      for (; ov.charAt(0) === " "; )
        ov = ov.substring(1, ov.length);
      if (ov.indexOf(tv) === 0)
        return ov.substring(tv.length, ov.length);
    }
    return null;
  },
  remove(rv) {
    this.create(rv, "", -1);
  }
};
var Fp$1 = {
  name: "cookie",
  // Deconstruct the options object and extract the lookupCookie property
  lookup(rv) {
    let {
      lookupCookie: tv
    } = rv;
    if (tv && typeof document < "u")
      return Js$3.read(tv) || void 0;
  },
  // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties
  cacheUserLanguage(rv, tv) {
    let {
      lookupCookie: ev,
      cookieMinutes: iv,
      cookieDomain: ov,
      cookieOptions: av
    } = tv;
    ev && typeof document < "u" && Js$3.create(ev, rv, iv, ov, av);
  }
}, Dp$1 = {
  name: "querystring",
  // Deconstruct the options object and extract the lookupQuerystring property
  lookup(rv) {
    var tv;
    let {
      lookupQuerystring: ev
    } = rv, iv;
    if (typeof window < "u") {
      let {
        search: ov
      } = window.location;
      !window.location.search && ((tv = window.location.hash) == null ? void 0 : tv.indexOf("?")) > -1 && (ov = window.location.hash.substring(window.location.hash.indexOf("?")));
      const av = ov.substring(1).split("&");
      for (let sv = 0; sv < av.length; sv++) {
        const lv = av[sv].indexOf("=");
        lv > 0 && av[sv].substring(0, lv) === ev && (iv = av[sv].substring(lv + 1));
      }
    }
    return iv;
  }
};
let $t$3 = null;
const Ys$3 = () => {
  if ($t$3 !== null)
    return $t$3;
  try {
    $t$3 = window !== "undefined" && window.localStorage !== null;
    const rv = "i18next.translate.boo";
    window.localStorage.setItem(rv, "foo"), window.localStorage.removeItem(rv);
  } catch {
    $t$3 = !1;
  }
  return $t$3;
};
var Ip$1 = {
  name: "localStorage",
  // Deconstruct the options object and extract the lookupLocalStorage property
  lookup(rv) {
    let {
      lookupLocalStorage: tv
    } = rv;
    if (tv && Ys$3())
      return window.localStorage.getItem(tv) || void 0;
  },
  // Deconstruct the options object and extract the lookupLocalStorage property
  cacheUserLanguage(rv, tv) {
    let {
      lookupLocalStorage: ev
    } = tv;
    ev && Ys$3() && window.localStorage.setItem(ev, rv);
  }
};
let Ut$3 = null;
const Qs$3 = () => {
  if (Ut$3 !== null)
    return Ut$3;
  try {
    Ut$3 = window !== "undefined" && window.sessionStorage !== null;
    const rv = "i18next.translate.boo";
    window.sessionStorage.setItem(rv, "foo"), window.sessionStorage.removeItem(rv);
  } catch {
    Ut$3 = !1;
  }
  return Ut$3;
};
var Lp$1 = {
  name: "sessionStorage",
  lookup(rv) {
    let {
      lookupSessionStorage: tv
    } = rv;
    if (tv && Qs$3())
      return window.sessionStorage.getItem(tv) || void 0;
  },
  cacheUserLanguage(rv, tv) {
    let {
      lookupSessionStorage: ev
    } = tv;
    ev && Qs$3() && window.sessionStorage.setItem(ev, rv);
  }
}, Pp$1 = {
  name: "navigator",
  lookup(rv) {
    const tv = [];
    if (typeof navigator < "u") {
      const {
        languages: ev,
        userLanguage: iv,
        language: ov
      } = navigator;
      if (ev)
        for (let av = 0; av < ev.length; av++)
          tv.push(ev[av]);
      iv && tv.push(iv), ov && tv.push(ov);
    }
    return tv.length > 0 ? tv : void 0;
  }
}, $p$1 = {
  name: "htmlTag",
  // Deconstruct the options object and extract the htmlTag property
  lookup(rv) {
    let {
      htmlTag: tv
    } = rv, ev;
    const iv = tv || (typeof document < "u" ? document.documentElement : null);
    return iv && typeof iv.getAttribute == "function" && (ev = iv.getAttribute("lang")), ev;
  }
}, Up$1 = {
  name: "path",
  // Deconstruct the options object and extract the lookupFromPathIndex property
  lookup(rv) {
    var tv;
    let {
      lookupFromPathIndex: ev
    } = rv;
    if (typeof window > "u")
      return;
    const iv = window.location.pathname.match(/\/([a-zA-Z-]*)/g);
    return Array.isArray(iv) ? (tv = iv[typeof ev == "number" ? ev : 0]) == null ? void 0 : tv.replace("/", "") : void 0;
  }
}, Mp$1 = {
  name: "subdomain",
  lookup(rv) {
    var tv, ev;
    let {
      lookupFromSubdomainIndex: iv
    } = rv;
    const ov = typeof iv == "number" ? iv + 1 : 1, av = typeof window < "u" && ((ev = (tv = window.location) == null ? void 0 : tv.hostname) == null ? void 0 : ev.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i));
    if (av)
      return av[ov];
  }
};
function Vp$1() {
  return {
    order: ["querystring", "cookie", "localStorage", "sessionStorage", "navigator", "htmlTag"],
    lookupQuerystring: "lng",
    lookupCookie: "i18next",
    lookupLocalStorage: "i18nextLng",
    lookupSessionStorage: "i18nextLng",
    // cache user language
    caches: ["localStorage"],
    excludeCacheFor: ["cimode"],
    // cookieMinutes: 10,
    // cookieDomain: 'myDomain'
    convertDetectedLanguage: (rv) => rv
  };
}
let el$1 = class {
  constructor(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.type = "languageDetector", this.detectors = {}, this.init(tv, ev);
  }
  init(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, iv = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    this.services = tv || {
      languageUtils: {}
    }, this.options = xp$1(ev, this.options || {}, Vp$1()), typeof this.options.convertDetectedLanguage == "string" && this.options.convertDetectedLanguage.indexOf("15897") > -1 && (this.options.convertDetectedLanguage = (ov) => ov.replace("-", "_")), this.options.lookupFromUrlIndex && (this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex), this.i18nOptions = iv, this.addDetector(Fp$1), this.addDetector(Dp$1), this.addDetector(Ip$1), this.addDetector(Lp$1), this.addDetector(Pp$1), this.addDetector($p$1), this.addDetector(Up$1), this.addDetector(Mp$1);
  }
  addDetector(tv) {
    return this.detectors[tv.name] = tv, this;
  }
  detect(tv) {
    tv || (tv = this.options.order);
    let ev = [];
    return tv.forEach((iv) => {
      if (this.detectors[iv]) {
        let ov = this.detectors[iv].lookup(this.options);
        ov && typeof ov == "string" && (ov = [ov]), ov && (ev = ev.concat(ov));
      }
    }), ev = ev.map((iv) => this.options.convertDetectedLanguage(iv)), this.services.languageUtils.getBestMatchFromCodes ? ev : ev.length > 0 ? ev[0] : null;
  }
  cacheUserLanguage(tv, ev) {
    ev || (ev = this.options.caches), ev && (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(tv) > -1 || ev.forEach((iv) => {
      this.detectors[iv] && this.detectors[iv].cacheUserLanguage(tv, this.options);
    }));
  }
};
el$1.type = "languageDetector";
function jp$1(rv, tv) {
  rv.use(tv).use(el$1).init({
    resources: {},
    fallbackLng: "en",
    debug: !1,
    interpolation: {
      escapeValue: !1,
      // not needed for react as it escapes by default
      format: (ev, iv, ov) => {
        if (iv) {
          const [av, ...sv] = iv.split(",").map((lv) => lv.trim());
          if (av === "number")
            return new Intl.NumberFormat(ov).format(ev);
          if (av === "date")
            return new Intl.DateTimeFormat(ov).format(ev);
          if (av === "currency")
            return new Intl.NumberFormat(ov, {
              style: "currency",
              currency: sv[0] || "USD",
              currencyDisplay: "narrowSymbol"
            }).format(ev).replace("$", "").trim();
        }
        return ev;
      }
    },
    detection: {
      // order and from where user language should be detected
      order: [
        "navigator",
        "cookie",
        "localStorage",
        "sessionStorage",
        "querystring",
        "htmlTag",
        "path",
        "subdomain"
      ]
    }
  });
}
const Bp$1 = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g, Hp$1 = {
  "&amp;": "&",
  "&#38;": "&",
  "&lt;": "<",
  "&#60;": "<",
  "&gt;": ">",
  "&#62;": ">",
  "&apos;": "'",
  "&#39;": "'",
  "&quot;": '"',
  "&#34;": '"',
  "&nbsp;": " ",
  "&#160;": " ",
  "&copy;": "©",
  "&#169;": "©",
  "&reg;": "®",
  "&#174;": "®",
  "&hellip;": "…",
  "&#8230;": "…",
  "&#x2F;": "/",
  "&#47;": "/"
}, qp$1 = (rv) => Hp$1[rv], zp$1 = (rv) => rv.replace(Bp$1, qp$1);
let Xs$3 = {
  bindI18n: "languageChanged",
  bindI18nStore: "",
  transEmptyNodeValue: "",
  transSupportBasicHtmlNodes: !0,
  transWrapTextNodes: "",
  transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"],
  useSuspense: !0,
  unescape: zp$1
};
function Gp$1() {
  let rv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
  Xs$3 = {
    ...Xs$3,
    ...rv
  };
}
const Kp$1 = {
  type: "3rdParty",
  init(rv) {
    Gp$1(rv.options.react);
  }
};
jp$1(X$2, Kp$1);
const vv = (rv) => wp$1(X$2, rv), Br$2 = JSON, Wp$1 = (rv) => rv.toUpperCase(), Jp$1 = (rv) => {
  const tv = {};
  return rv.forEach((ev, iv) => {
    tv[iv] = ev;
  }), tv;
}, Yp$1 = (rv, tv, ev) => rv.document ? rv : {
  document: rv,
  variables: tv,
  requestHeaders: ev,
  signal: void 0
}, Qp$1 = (rv, tv, ev) => rv.query ? rv : {
  query: rv,
  variables: tv,
  requestHeaders: ev,
  signal: void 0
}, Xp$1 = (rv, tv) => rv.documents ? rv : {
  documents: rv,
  requestHeaders: tv,
  signal: void 0
};
function Cn$2(rv, tv) {
  throw new Error(tv);
}
function Zp$1(rv) {
  return typeof rv == "object" && rv !== null;
}
function em$1(rv, tv) {
  throw new Error(
    "Unexpected invariant triggered."
  );
}
const tm$1 = /\r\n|[\n\r]/g;
function kr$2(rv, tv) {
  let ev = 0, iv = 1;
  for (const ov of rv.body.matchAll(tm$1)) {
    if (typeof ov.index == "number" || em$1(), ov.index >= tv)
      break;
    ev = ov.index + ov[0].length, iv += 1;
  }
  return {
    line: iv,
    column: tv + 1 - ev
  };
}
function nm$1(rv) {
  return tl$1(
    rv.source,
    kr$2(rv.source, rv.start)
  );
}
function tl$1(rv, tv) {
  const ev = rv.locationOffset.column - 1, iv = "".padStart(ev) + rv.body, ov = tv.line - 1, av = rv.locationOffset.line - 1, sv = tv.line + av, lv = tv.line === 1 ? ev : 0, uv = tv.column + lv, cv = `${rv.name}:${sv}:${uv}
`, dv = iv.split(/\r\n|[\n\r]/g), hv = dv[ov];
  if (hv.length > 120) {
    const pv = Math.floor(uv / 80), yv = uv % 80, Sv = [];
    for (let _v = 0; _v < hv.length; _v += 80)
      Sv.push(hv.slice(_v, _v + 80));
    return cv + ea$3([
      [`${sv} |`, Sv[0]],
      ...Sv.slice(1, pv + 1).map((_v) => ["|", _v]),
      ["|", "^".padStart(yv)],
      ["|", Sv[pv + 1]]
    ]);
  }
  return cv + ea$3([
    // Lines specified like this: ["prefix", "string"],
    [`${sv - 1} |`, dv[ov - 1]],
    [`${sv} |`, hv],
    ["|", "^".padStart(uv)],
    [`${sv + 1} |`, dv[ov + 1]]
  ]);
}
function ea$3(rv) {
  const tv = rv.filter(([iv, ov]) => ov !== void 0), ev = Math.max(...tv.map(([iv]) => iv.length));
  return tv.map(([iv, ov]) => iv.padStart(ev) + (ov ? " " + ov : "")).join(`
`);
}
function im$1(rv) {
  const tv = rv[0];
  return tv == null || "kind" in tv || "length" in tv ? {
    nodes: tv,
    source: rv[1],
    positions: rv[2],
    path: rv[3],
    originalError: rv[4],
    extensions: rv[5]
  } : tv;
}
let Hr$2 = class pN extends Error {
  /**
   * An array of `{ line, column }` locations within the source GraphQL document
   * which correspond to this error.
   *
   * Errors during validation often contain multiple locations, for example to
   * point out two things with the same name. Errors during execution include a
   * single location, the field which produced the error.
   *
   * Enumerable, and appears in the result of JSON.stringify().
   */
  /**
   * An array describing the JSON-path into the execution response which
   * corresponds to this error. Only included for errors during execution.
   *
   * Enumerable, and appears in the result of JSON.stringify().
   */
  /**
   * An array of GraphQL AST Nodes corresponding to this error.
   */
  /**
   * The source GraphQL document for the first location of this error.
   *
   * Note that if this Error represents more than one node, the source may not
   * represent nodes after the first node.
   */
  /**
   * An array of character offsets within the source GraphQL document
   * which correspond to this error.
   */
  /**
   * The original error thrown from a field resolver during execution.
   */
  /**
   * Extension fields to add to the formatted error.
   */
  /**
   * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.
   */
  constructor(tv, ...ev) {
    var iv, ov, av;
    const { nodes: sv, source: lv, positions: uv, path: cv, originalError: dv, extensions: hv } = im$1(ev);
    super(tv), this.name = "GraphQLError", this.path = cv ?? void 0, this.originalError = dv ?? void 0, this.nodes = ta$3(
      Array.isArray(sv) ? sv : sv ? [sv] : void 0
    );
    const pv = ta$3(
      (iv = this.nodes) === null || iv === void 0 ? void 0 : iv.map((Sv) => Sv.loc).filter((Sv) => Sv != null)
    );
    this.source = lv ?? (pv == null || (ov = pv[0]) === null || ov === void 0 ? void 0 : ov.source), this.positions = uv ?? (pv == null ? void 0 : pv.map((Sv) => Sv.start)), this.locations = uv && lv ? uv.map((Sv) => kr$2(lv, Sv)) : pv == null ? void 0 : pv.map((Sv) => kr$2(Sv.source, Sv.start));
    const yv = Zp$1(
      dv == null ? void 0 : dv.extensions
    ) ? dv == null ? void 0 : dv.extensions : void 0;
    this.extensions = (av = hv ?? yv) !== null && av !== void 0 ? av : /* @__PURE__ */ Object.create(null), Object.defineProperties(this, {
      message: {
        writable: !0,
        enumerable: !0
      },
      name: {
        enumerable: !1
      },
      nodes: {
        enumerable: !1
      },
      source: {
        enumerable: !1
      },
      positions: {
        enumerable: !1
      },
      originalError: {
        enumerable: !1
      }
    }), dv != null && dv.stack ? Object.defineProperty(this, "stack", {
      value: dv.stack,
      writable: !0,
      configurable: !0
    }) : Error.captureStackTrace ? Error.captureStackTrace(this, pN) : Object.defineProperty(this, "stack", {
      value: Error().stack,
      writable: !0,
      configurable: !0
    });
  }
  get [Symbol.toStringTag]() {
    return "GraphQLError";
  }
  toString() {
    let tv = this.message;
    if (this.nodes)
      for (const ev of this.nodes)
        ev.loc && (tv += `

` + nm$1(ev.loc));
    else if (this.source && this.locations)
      for (const ev of this.locations)
        tv += `

` + tl$1(this.source, ev);
    return tv;
  }
  toJSON() {
    const tv = {
      message: this.message
    };
    return this.locations != null && (tv.locations = this.locations), this.path != null && (tv.path = this.path), this.extensions != null && Object.keys(this.extensions).length > 0 && (tv.extensions = this.extensions), tv;
  }
};
function ta$3(rv) {
  return rv === void 0 || rv.length === 0 ? void 0 : rv;
}
function Q$2(rv, tv, ev) {
  return new Hr$2(`Syntax Error: ${ev}`, {
    source: rv,
    positions: [tv]
  });
}
let rm$1 = class {
  /**
   * The character offset at which this Node begins.
   */
  /**
   * The character offset at which this Node ends.
   */
  /**
   * The Token at which this Node begins.
   */
  /**
   * The Token at which this Node ends.
   */
  /**
   * The Source document the AST represents.
   */
  constructor(tv, ev, iv) {
    this.start = tv.start, this.end = ev.end, this.startToken = tv, this.endToken = ev, this.source = iv;
  }
  get [Symbol.toStringTag]() {
    return "Location";
  }
  toJSON() {
    return {
      start: this.start,
      end: this.end
    };
  }
}, nl$1 = class {
  /**
   * The kind of Token.
   */
  /**
   * The character offset at which this Node begins.
   */
  /**
   * The character offset at which this Node ends.
   */
  /**
   * The 1-indexed line number on which this Token appears.
   */
  /**
   * The 1-indexed column number at which this Token begins.
   */
  /**
   * For non-punctuation tokens, represents the interpreted value of the token.
   *
   * Note: is undefined for punctuation tokens, but typed as string for
   * convenience in the parser.
   */
  /**
   * Tokens exist as nodes in a double-linked-list amongst all tokens
   * including ignored tokens. <SOF> is always the first node and <EOF>
   * the last.
   */
  constructor(tv, ev, iv, ov, av, sv) {
    this.kind = tv, this.start = ev, this.end = iv, this.line = ov, this.column = av, this.value = sv, this.prev = null, this.next = null;
  }
  get [Symbol.toStringTag]() {
    return "Token";
  }
  toJSON() {
    return {
      kind: this.kind,
      value: this.value,
      line: this.line,
      column: this.column
    };
  }
};
const il$1 = {
  Name: [],
  Document: ["definitions"],
  OperationDefinition: [
    "name",
    "variableDefinitions",
    "directives",
    "selectionSet"
  ],
  VariableDefinition: ["variable", "type", "defaultValue", "directives"],
  Variable: ["name"],
  SelectionSet: ["selections"],
  Field: ["alias", "name", "arguments", "directives", "selectionSet"],
  Argument: ["name", "value"],
  FragmentSpread: ["name", "directives"],
  InlineFragment: ["typeCondition", "directives", "selectionSet"],
  FragmentDefinition: [
    "name",
    // Note: fragment variable definitions are deprecated and will removed in v17.0.0
    "variableDefinitions",
    "typeCondition",
    "directives",
    "selectionSet"
  ],
  IntValue: [],
  FloatValue: [],
  StringValue: [],
  BooleanValue: [],
  NullValue: [],
  EnumValue: [],
  ListValue: ["values"],
  ObjectValue: ["fields"],
  ObjectField: ["name", "value"],
  Directive: ["name", "arguments"],
  NamedType: ["name"],
  ListType: ["type"],
  NonNullType: ["type"],
  SchemaDefinition: ["description", "directives", "operationTypes"],
  OperationTypeDefinition: ["type"],
  ScalarTypeDefinition: ["description", "name", "directives"],
  ObjectTypeDefinition: [
    "description",
    "name",
    "interfaces",
    "directives",
    "fields"
  ],
  FieldDefinition: ["description", "name", "arguments", "type", "directives"],
  InputValueDefinition: [
    "description",
    "name",
    "type",
    "defaultValue",
    "directives"
  ],
  InterfaceTypeDefinition: [
    "description",
    "name",
    "interfaces",
    "directives",
    "fields"
  ],
  UnionTypeDefinition: ["description", "name", "directives", "types"],
  EnumTypeDefinition: ["description", "name", "directives", "values"],
  EnumValueDefinition: ["description", "name", "directives"],
  InputObjectTypeDefinition: ["description", "name", "directives", "fields"],
  DirectiveDefinition: ["description", "name", "arguments", "locations"],
  SchemaExtension: ["directives", "operationTypes"],
  ScalarTypeExtension: ["name", "directives"],
  ObjectTypeExtension: ["name", "interfaces", "directives", "fields"],
  InterfaceTypeExtension: ["name", "interfaces", "directives", "fields"],
  UnionTypeExtension: ["name", "directives", "types"],
  EnumTypeExtension: ["name", "directives", "values"],
  InputObjectTypeExtension: ["name", "directives", "fields"]
}, sm$1 = new Set(Object.keys(il$1));
function na$3(rv) {
  const tv = rv == null ? void 0 : rv.kind;
  return typeof tv == "string" && sm$1.has(tv);
}
var yt$2;
(function(rv) {
  rv.QUERY = "query", rv.MUTATION = "mutation", rv.SUBSCRIPTION = "subscription";
})(yt$2 || (yt$2 = {}));
var yr$3;
(function(rv) {
  rv.QUERY = "QUERY", rv.MUTATION = "MUTATION", rv.SUBSCRIPTION = "SUBSCRIPTION", rv.FIELD = "FIELD", rv.FRAGMENT_DEFINITION = "FRAGMENT_DEFINITION", rv.FRAGMENT_SPREAD = "FRAGMENT_SPREAD", rv.INLINE_FRAGMENT = "INLINE_FRAGMENT", rv.VARIABLE_DEFINITION = "VARIABLE_DEFINITION", rv.SCHEMA = "SCHEMA", rv.SCALAR = "SCALAR", rv.OBJECT = "OBJECT", rv.FIELD_DEFINITION = "FIELD_DEFINITION", rv.ARGUMENT_DEFINITION = "ARGUMENT_DEFINITION", rv.INTERFACE = "INTERFACE", rv.UNION = "UNION", rv.ENUM = "ENUM", rv.ENUM_VALUE = "ENUM_VALUE", rv.INPUT_OBJECT = "INPUT_OBJECT", rv.INPUT_FIELD_DEFINITION = "INPUT_FIELD_DEFINITION";
})(yr$3 || (yr$3 = {}));
var D$2;
(function(rv) {
  rv.NAME = "Name", rv.DOCUMENT = "Document", rv.OPERATION_DEFINITION = "OperationDefinition", rv.VARIABLE_DEFINITION = "VariableDefinition", rv.SELECTION_SET = "SelectionSet", rv.FIELD = "Field", rv.ARGUMENT = "Argument", rv.FRAGMENT_SPREAD = "FragmentSpread", rv.INLINE_FRAGMENT = "InlineFragment", rv.FRAGMENT_DEFINITION = "FragmentDefinition", rv.VARIABLE = "Variable", rv.INT = "IntValue", rv.FLOAT = "FloatValue", rv.STRING = "StringValue", rv.BOOLEAN = "BooleanValue", rv.NULL = "NullValue", rv.ENUM = "EnumValue", rv.LIST = "ListValue", rv.OBJECT = "ObjectValue", rv.OBJECT_FIELD = "ObjectField", rv.DIRECTIVE = "Directive", rv.NAMED_TYPE = "NamedType", rv.LIST_TYPE = "ListType", rv.NON_NULL_TYPE = "NonNullType", rv.SCHEMA_DEFINITION = "SchemaDefinition", rv.OPERATION_TYPE_DEFINITION = "OperationTypeDefinition", rv.SCALAR_TYPE_DEFINITION = "ScalarTypeDefinition", rv.OBJECT_TYPE_DEFINITION = "ObjectTypeDefinition", rv.FIELD_DEFINITION = "FieldDefinition", rv.INPUT_VALUE_DEFINITION = "InputValueDefinition", rv.INTERFACE_TYPE_DEFINITION = "InterfaceTypeDefinition", rv.UNION_TYPE_DEFINITION = "UnionTypeDefinition", rv.ENUM_TYPE_DEFINITION = "EnumTypeDefinition", rv.ENUM_VALUE_DEFINITION = "EnumValueDefinition", rv.INPUT_OBJECT_TYPE_DEFINITION = "InputObjectTypeDefinition", rv.DIRECTIVE_DEFINITION = "DirectiveDefinition", rv.SCHEMA_EXTENSION = "SchemaExtension", rv.SCALAR_TYPE_EXTENSION = "ScalarTypeExtension", rv.OBJECT_TYPE_EXTENSION = "ObjectTypeExtension", rv.INTERFACE_TYPE_EXTENSION = "InterfaceTypeExtension", rv.UNION_TYPE_EXTENSION = "UnionTypeExtension", rv.ENUM_TYPE_EXTENSION = "EnumTypeExtension", rv.INPUT_OBJECT_TYPE_EXTENSION = "InputObjectTypeExtension";
})(D$2 || (D$2 = {}));
function _r$3(rv) {
  return rv === 9 || rv === 32;
}
function rn$2(rv) {
  return rv >= 48 && rv <= 57;
}
function rl$1(rv) {
  return rv >= 97 && rv <= 122 || // A-Z
  rv >= 65 && rv <= 90;
}
function sl$1(rv) {
  return rl$1(rv) || rv === 95;
}
function am$1(rv) {
  return rl$1(rv) || rn$2(rv) || rv === 95;
}
function om$1(rv) {
  var tv;
  let ev = Number.MAX_SAFE_INTEGER, iv = null, ov = -1;
  for (let sv = 0; sv < rv.length; ++sv) {
    var av;
    const lv = rv[sv], uv = lm$1(lv);
    uv !== lv.length && (iv = (av = iv) !== null && av !== void 0 ? av : sv, ov = sv, sv !== 0 && uv < ev && (ev = uv));
  }
  return rv.map((sv, lv) => lv === 0 ? sv : sv.slice(ev)).slice(
    (tv = iv) !== null && tv !== void 0 ? tv : 0,
    ov + 1
  );
}
function lm$1(rv) {
  let tv = 0;
  for (; tv < rv.length && _r$3(rv.charCodeAt(tv)); )
    ++tv;
  return tv;
}
function um$1(rv, tv) {
  const ev = rv.replace(/"""/g, '\\"""'), iv = ev.split(/\r\n|[\n\r]/g), ov = iv.length === 1, av = iv.length > 1 && iv.slice(1).every((yv) => yv.length === 0 || _r$3(yv.charCodeAt(0))), sv = ev.endsWith('\\"""'), lv = rv.endsWith('"') && !sv, uv = rv.endsWith("\\"), cv = lv || uv, dv = (
    // add leading and trailing new lines only if it improves readability
    !ov || rv.length > 70 || cv || av || sv
  );
  let hv = "";
  const pv = ov && _r$3(rv.charCodeAt(0));
  return (dv && !pv || av) && (hv += `
`), hv += ev, (dv || cv) && (hv += `
`), '"""' + hv + '"""';
}
var N$2;
(function(rv) {
  rv.SOF = "<SOF>", rv.EOF = "<EOF>", rv.BANG = "!", rv.DOLLAR = "$", rv.AMP = "&", rv.PAREN_L = "(", rv.PAREN_R = ")", rv.SPREAD = "...", rv.COLON = ":", rv.EQUALS = "=", rv.AT = "@", rv.BRACKET_L = "[", rv.BRACKET_R = "]", rv.BRACE_L = "{", rv.PIPE = "|", rv.BRACE_R = "}", rv.NAME = "Name", rv.INT = "Int", rv.FLOAT = "Float", rv.STRING = "String", rv.BLOCK_STRING = "BlockString", rv.COMMENT = "Comment";
})(N$2 || (N$2 = {}));
let cm$1 = class {
  /**
   * The previously focused non-ignored token.
   */
  /**
   * The currently focused non-ignored token.
   */
  /**
   * The (1-indexed) line containing the current token.
   */
  /**
   * The character offset at which the current line begins.
   */
  constructor(tv) {
    const ev = new nl$1(N$2.SOF, 0, 0, 0, 0);
    this.source = tv, this.lastToken = ev, this.token = ev, this.line = 1, this.lineStart = 0;
  }
  get [Symbol.toStringTag]() {
    return "Lexer";
  }
  /**
   * Advances the token stream to the next non-ignored token.
   */
  advance() {
    return this.lastToken = this.token, this.token = this.lookahead();
  }
  /**
   * Looks ahead and returns the next non-ignored token, but does not change
   * the state of Lexer.
   */
  lookahead() {
    let tv = this.token;
    if (tv.kind !== N$2.EOF)
      do
        if (tv.next)
          tv = tv.next;
        else {
          const ev = fm$1(this, tv.end);
          tv.next = ev, ev.prev = tv, tv = ev;
        }
      while (tv.kind === N$2.COMMENT);
    return tv;
  }
};
function dm$1(rv) {
  return rv === N$2.BANG || rv === N$2.DOLLAR || rv === N$2.AMP || rv === N$2.PAREN_L || rv === N$2.PAREN_R || rv === N$2.SPREAD || rv === N$2.COLON || rv === N$2.EQUALS || rv === N$2.AT || rv === N$2.BRACKET_L || rv === N$2.BRACKET_R || rv === N$2.BRACE_L || rv === N$2.PIPE || rv === N$2.BRACE_R;
}
function Dt$2(rv) {
  return rv >= 0 && rv <= 55295 || rv >= 57344 && rv <= 1114111;
}
function gi$3(rv, tv) {
  return al$1(rv.charCodeAt(tv)) && ol$1(rv.charCodeAt(tv + 1));
}
function al$1(rv) {
  return rv >= 55296 && rv <= 56319;
}
function ol$1(rv) {
  return rv >= 56320 && rv <= 57343;
}
function rt$2(rv, tv) {
  const ev = rv.source.body.codePointAt(tv);
  if (ev === void 0)
    return N$2.EOF;
  if (ev >= 32 && ev <= 126) {
    const iv = String.fromCodePoint(ev);
    return iv === '"' ? `'"'` : `"${iv}"`;
  }
  return "U+" + ev.toString(16).toUpperCase().padStart(4, "0");
}
function W$2(rv, tv, ev, iv, ov) {
  const av = rv.line, sv = 1 + ev - rv.lineStart;
  return new nl$1(tv, ev, iv, av, sv, ov);
}
function fm$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = tv;
  for (; ov < iv; ) {
    const av = ev.charCodeAt(ov);
    switch (av) {
      case 65279:
      case 9:
      case 32:
      case 44:
        ++ov;
        continue;
      case 10:
        ++ov, ++rv.line, rv.lineStart = ov;
        continue;
      case 13:
        ev.charCodeAt(ov + 1) === 10 ? ov += 2 : ++ov, ++rv.line, rv.lineStart = ov;
        continue;
      case 35:
        return hm$1(rv, ov);
      case 33:
        return W$2(rv, N$2.BANG, ov, ov + 1);
      case 36:
        return W$2(rv, N$2.DOLLAR, ov, ov + 1);
      case 38:
        return W$2(rv, N$2.AMP, ov, ov + 1);
      case 40:
        return W$2(rv, N$2.PAREN_L, ov, ov + 1);
      case 41:
        return W$2(rv, N$2.PAREN_R, ov, ov + 1);
      case 46:
        if (ev.charCodeAt(ov + 1) === 46 && ev.charCodeAt(ov + 2) === 46)
          return W$2(rv, N$2.SPREAD, ov, ov + 3);
        break;
      case 58:
        return W$2(rv, N$2.COLON, ov, ov + 1);
      case 61:
        return W$2(rv, N$2.EQUALS, ov, ov + 1);
      case 64:
        return W$2(rv, N$2.AT, ov, ov + 1);
      case 91:
        return W$2(rv, N$2.BRACKET_L, ov, ov + 1);
      case 93:
        return W$2(rv, N$2.BRACKET_R, ov, ov + 1);
      case 123:
        return W$2(rv, N$2.BRACE_L, ov, ov + 1);
      case 124:
        return W$2(rv, N$2.PIPE, ov, ov + 1);
      case 125:
        return W$2(rv, N$2.BRACE_R, ov, ov + 1);
      case 34:
        return ev.charCodeAt(ov + 1) === 34 && ev.charCodeAt(ov + 2) === 34 ? ym$1(rv, ov) : mm$1(rv, ov);
    }
    if (rn$2(av) || av === 45)
      return pm$1(rv, ov, av);
    if (sl$1(av))
      return _m$1(rv, ov);
    throw Q$2(
      rv.source,
      ov,
      av === 39 ? `Unexpected single quote character ('), did you mean to use a double quote (")?` : Dt$2(av) || gi$3(ev, ov) ? `Unexpected character: ${rt$2(rv, ov)}.` : `Invalid character: ${rt$2(rv, ov)}.`
    );
  }
  return W$2(rv, N$2.EOF, iv, iv);
}
function hm$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = tv + 1;
  for (; ov < iv; ) {
    const av = ev.charCodeAt(ov);
    if (av === 10 || av === 13)
      break;
    if (Dt$2(av))
      ++ov;
    else if (gi$3(ev, ov))
      ov += 2;
    else
      break;
  }
  return W$2(
    rv,
    N$2.COMMENT,
    tv,
    ov,
    ev.slice(tv + 1, ov)
  );
}
function pm$1(rv, tv, ev) {
  const iv = rv.source.body;
  let ov = tv, av = ev, sv = !1;
  if (av === 45 && (av = iv.charCodeAt(++ov)), av === 48) {
    if (av = iv.charCodeAt(++ov), rn$2(av))
      throw Q$2(
        rv.source,
        ov,
        `Invalid number, unexpected digit after 0: ${rt$2(
          rv,
          ov
        )}.`
      );
  } else
    ov = $i$1(rv, ov, av), av = iv.charCodeAt(ov);
  if (av === 46 && (sv = !0, av = iv.charCodeAt(++ov), ov = $i$1(rv, ov, av), av = iv.charCodeAt(ov)), (av === 69 || av === 101) && (sv = !0, av = iv.charCodeAt(++ov), (av === 43 || av === 45) && (av = iv.charCodeAt(++ov)), ov = $i$1(rv, ov, av), av = iv.charCodeAt(ov)), av === 46 || sl$1(av))
    throw Q$2(
      rv.source,
      ov,
      `Invalid number, expected digit but got: ${rt$2(
        rv,
        ov
      )}.`
    );
  return W$2(
    rv,
    sv ? N$2.FLOAT : N$2.INT,
    tv,
    ov,
    iv.slice(tv, ov)
  );
}
function $i$1(rv, tv, ev) {
  if (!rn$2(ev))
    throw Q$2(
      rv.source,
      tv,
      `Invalid number, expected digit but got: ${rt$2(
        rv,
        tv
      )}.`
    );
  const iv = rv.source.body;
  let ov = tv + 1;
  for (; rn$2(iv.charCodeAt(ov)); )
    ++ov;
  return ov;
}
function mm$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = tv + 1, av = ov, sv = "";
  for (; ov < iv; ) {
    const lv = ev.charCodeAt(ov);
    if (lv === 34)
      return sv += ev.slice(av, ov), W$2(rv, N$2.STRING, tv, ov + 1, sv);
    if (lv === 92) {
      sv += ev.slice(av, ov);
      const uv = ev.charCodeAt(ov + 1) === 117 ? ev.charCodeAt(ov + 2) === 123 ? gm$1(rv, ov) : vm$1(rv, ov) : km$1(rv, ov);
      sv += uv.value, ov += uv.size, av = ov;
      continue;
    }
    if (lv === 10 || lv === 13)
      break;
    if (Dt$2(lv))
      ++ov;
    else if (gi$3(ev, ov))
      ov += 2;
    else
      throw Q$2(
        rv.source,
        ov,
        `Invalid character within String: ${rt$2(
          rv,
          ov
        )}.`
      );
  }
  throw Q$2(rv.source, ov, "Unterminated string.");
}
function gm$1(rv, tv) {
  const ev = rv.source.body;
  let iv = 0, ov = 3;
  for (; ov < 12; ) {
    const av = ev.charCodeAt(tv + ov++);
    if (av === 125) {
      if (ov < 5 || !Dt$2(iv))
        break;
      return {
        value: String.fromCodePoint(iv),
        size: ov
      };
    }
    if (iv = iv << 4 | Vt$3(av), iv < 0)
      break;
  }
  throw Q$2(
    rv.source,
    tv,
    `Invalid Unicode escape sequence: "${ev.slice(
      tv,
      tv + ov
    )}".`
  );
}
function vm$1(rv, tv) {
  const ev = rv.source.body, iv = ia$3(ev, tv + 2);
  if (Dt$2(iv))
    return {
      value: String.fromCodePoint(iv),
      size: 6
    };
  if (al$1(iv) && ev.charCodeAt(tv + 6) === 92 && ev.charCodeAt(tv + 7) === 117) {
    const ov = ia$3(ev, tv + 8);
    if (ol$1(ov))
      return {
        value: String.fromCodePoint(iv, ov),
        size: 12
      };
  }
  throw Q$2(
    rv.source,
    tv,
    `Invalid Unicode escape sequence: "${ev.slice(tv, tv + 6)}".`
  );
}
function ia$3(rv, tv) {
  return Vt$3(rv.charCodeAt(tv)) << 12 | Vt$3(rv.charCodeAt(tv + 1)) << 8 | Vt$3(rv.charCodeAt(tv + 2)) << 4 | Vt$3(rv.charCodeAt(tv + 3));
}
function Vt$3(rv) {
  return rv >= 48 && rv <= 57 ? rv - 48 : rv >= 65 && rv <= 70 ? rv - 55 : rv >= 97 && rv <= 102 ? rv - 87 : -1;
}
function km$1(rv, tv) {
  const ev = rv.source.body;
  switch (ev.charCodeAt(tv + 1)) {
    case 34:
      return {
        value: '"',
        size: 2
      };
    case 92:
      return {
        value: "\\",
        size: 2
      };
    case 47:
      return {
        value: "/",
        size: 2
      };
    case 98:
      return {
        value: "\b",
        size: 2
      };
    case 102:
      return {
        value: "\f",
        size: 2
      };
    case 110:
      return {
        value: `
`,
        size: 2
      };
    case 114:
      return {
        value: "\r",
        size: 2
      };
    case 116:
      return {
        value: "	",
        size: 2
      };
  }
  throw Q$2(
    rv.source,
    tv,
    `Invalid character escape sequence: "${ev.slice(
      tv,
      tv + 2
    )}".`
  );
}
function ym$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = rv.lineStart, av = tv + 3, sv = av, lv = "";
  const uv = [];
  for (; av < iv; ) {
    const cv = ev.charCodeAt(av);
    if (cv === 34 && ev.charCodeAt(av + 1) === 34 && ev.charCodeAt(av + 2) === 34) {
      lv += ev.slice(sv, av), uv.push(lv);
      const dv = W$2(
        rv,
        N$2.BLOCK_STRING,
        tv,
        av + 3,
        // Return a string of the lines joined with U+000A.
        om$1(uv).join(`
`)
      );
      return rv.line += uv.length - 1, rv.lineStart = ov, dv;
    }
    if (cv === 92 && ev.charCodeAt(av + 1) === 34 && ev.charCodeAt(av + 2) === 34 && ev.charCodeAt(av + 3) === 34) {
      lv += ev.slice(sv, av), sv = av + 1, av += 4;
      continue;
    }
    if (cv === 10 || cv === 13) {
      lv += ev.slice(sv, av), uv.push(lv), cv === 13 && ev.charCodeAt(av + 1) === 10 ? av += 2 : ++av, lv = "", sv = av, ov = av;
      continue;
    }
    if (Dt$2(cv))
      ++av;
    else if (gi$3(ev, av))
      av += 2;
    else
      throw Q$2(
        rv.source,
        av,
        `Invalid character within String: ${rt$2(
          rv,
          av
        )}.`
      );
  }
  throw Q$2(rv.source, av, "Unterminated string.");
}
function _m$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = tv + 1;
  for (; ov < iv; ) {
    const av = ev.charCodeAt(ov);
    if (am$1(av))
      ++ov;
    else
      break;
  }
  return W$2(
    rv,
    N$2.NAME,
    tv,
    ov,
    ev.slice(tv, ov)
  );
}
const bm$1 = 10, ll$1 = 2;
function qr$2(rv) {
  return vi$3(rv, []);
}
function vi$3(rv, tv) {
  switch (typeof rv) {
    case "string":
      return JSON.stringify(rv);
    case "function":
      return rv.name ? `[function ${rv.name}]` : "[function]";
    case "object":
      return Nm$1(rv, tv);
    default:
      return String(rv);
  }
}
function Nm$1(rv, tv) {
  if (rv === null)
    return "null";
  if (tv.includes(rv))
    return "[Circular]";
  const ev = [...tv, rv];
  if (Sm$1(rv)) {
    const iv = rv.toJSON();
    if (iv !== rv)
      return typeof iv == "string" ? iv : vi$3(iv, ev);
  } else if (Array.isArray(rv))
    return Am$1(rv, ev);
  return Em$1(rv, ev);
}
function Sm$1(rv) {
  return typeof rv.toJSON == "function";
}
function Em$1(rv, tv) {
  const ev = Object.entries(rv);
  return ev.length === 0 ? "{}" : tv.length > ll$1 ? "[" + Om$1(rv) + "]" : "{ " + ev.map(
    ([iv, ov]) => iv + ": " + vi$3(ov, tv)
  ).join(", ") + " }";
}
function Am$1(rv, tv) {
  if (rv.length === 0)
    return "[]";
  if (tv.length > ll$1)
    return "[Array]";
  const ev = Math.min(bm$1, rv.length), iv = rv.length - ev, ov = [];
  for (let av = 0; av < ev; ++av)
    ov.push(vi$3(rv[av], tv));
  return iv === 1 ? ov.push("... 1 more item") : iv > 1 && ov.push(`... ${iv} more items`), "[" + ov.join(", ") + "]";
}
function Om$1(rv) {
  const tv = Object.prototype.toString.call(rv).replace(/^\[object /, "").replace(/]$/, "");
  if (tv === "Object" && typeof rv.constructor == "function") {
    const ev = rv.constructor.name;
    if (typeof ev == "string" && ev !== "")
      return ev;
  }
  return tv;
}
const wm$1 = globalThis.process && // eslint-disable-next-line no-undef
!0, Tm$1 = (
  /* c8 ignore next 6 */
  // FIXME: https://github.com/graphql/graphql-js/issues/2317
  wm$1 ? function(rv, tv) {
    return rv instanceof tv;
  } : function(rv, tv) {
    if (rv instanceof tv)
      return !0;
    if (typeof rv == "object" && rv !== null) {
      var ev;
      const iv = tv.prototype[Symbol.toStringTag], ov = (
        // We still need to support constructor's name to detect conflicts with older versions of this library.
        Symbol.toStringTag in rv ? rv[Symbol.toStringTag] : (ev = rv.constructor) === null || ev === void 0 ? void 0 : ev.name
      );
      if (iv === ov) {
        const av = qr$2(rv);
        throw new Error(`Cannot use ${iv} "${av}" from another module or realm.

Ensure that there is only one instance of "graphql" in the node_modules
directory. If different versions of "graphql" are the dependencies of other
relied on modules, use "resolutions" to ensure only one version is installed.

https://yarnpkg.com/en/docs/selective-version-resolutions

Duplicate "graphql" modules cannot be used at the same time since different
versions may have different capabilities and behavior. The data from one
version used in the function from another could produce confusing and
spurious results.`);
      }
    }
    return !1;
  }
);
let ul$1 = class {
  constructor(tv, ev = "GraphQL request", iv = {
    line: 1,
    column: 1
  }) {
    typeof tv == "string" || Cn$2(!1, `Body must be a string. Received: ${qr$2(tv)}.`), this.body = tv, this.name = ev, this.locationOffset = iv, this.locationOffset.line > 0 || Cn$2(
      !1,
      "line in locationOffset is 1-indexed and must be positive."
    ), this.locationOffset.column > 0 || Cn$2(
      !1,
      "column in locationOffset is 1-indexed and must be positive."
    );
  }
  get [Symbol.toStringTag]() {
    return "Source";
  }
};
function Cm$1(rv) {
  return Tm$1(rv, ul$1);
}
function xm$1(rv, tv) {
  return new Rm$1(rv, tv).parseDocument();
}
let Rm$1 = class {
  constructor(tv, ev = {}) {
    const iv = Cm$1(tv) ? tv : new ul$1(tv);
    this._lexer = new cm$1(iv), this._options = ev, this._tokenCounter = 0;
  }
  /**
   * Converts a name lex token into a name parse node.
   */
  parseName() {
    const tv = this.expectToken(N$2.NAME);
    return this.node(tv, {
      kind: D$2.NAME,
      value: tv.value
    });
  }
  // Implements the parsing rules in the Document section.
  /**
   * Document : Definition+
   */
  parseDocument() {
    return this.node(this._lexer.token, {
      kind: D$2.DOCUMENT,
      definitions: this.many(
        N$2.SOF,
        this.parseDefinition,
        N$2.EOF
      )
    });
  }
  /**
   * Definition :
   *   - ExecutableDefinition
   *   - TypeSystemDefinition
   *   - TypeSystemExtension
   *
   * ExecutableDefinition :
   *   - OperationDefinition
   *   - FragmentDefinition
   *
   * TypeSystemDefinition :
   *   - SchemaDefinition
   *   - TypeDefinition
   *   - DirectiveDefinition
   *
   * TypeDefinition :
   *   - ScalarTypeDefinition
   *   - ObjectTypeDefinition
   *   - InterfaceTypeDefinition
   *   - UnionTypeDefinition
   *   - EnumTypeDefinition
   *   - InputObjectTypeDefinition
   */
  parseDefinition() {
    if (this.peek(N$2.BRACE_L))
      return this.parseOperationDefinition();
    const tv = this.peekDescription(), ev = tv ? this._lexer.lookahead() : this._lexer.token;
    if (ev.kind === N$2.NAME) {
      switch (ev.value) {
        case "schema":
          return this.parseSchemaDefinition();
        case "scalar":
          return this.parseScalarTypeDefinition();
        case "type":
          return this.parseObjectTypeDefinition();
        case "interface":
          return this.parseInterfaceTypeDefinition();
        case "union":
          return this.parseUnionTypeDefinition();
        case "enum":
          return this.parseEnumTypeDefinition();
        case "input":
          return this.parseInputObjectTypeDefinition();
        case "directive":
          return this.parseDirectiveDefinition();
      }
      if (tv)
        throw Q$2(
          this._lexer.source,
          this._lexer.token.start,
          "Unexpected description, descriptions are supported only on type definitions."
        );
      switch (ev.value) {
        case "query":
        case "mutation":
        case "subscription":
          return this.parseOperationDefinition();
        case "fragment":
          return this.parseFragmentDefinition();
        case "extend":
          return this.parseTypeSystemExtension();
      }
    }
    throw this.unexpected(ev);
  }
  // Implements the parsing rules in the Operations section.
  /**
   * OperationDefinition :
   *  - SelectionSet
   *  - OperationType Name? VariableDefinitions? Directives? SelectionSet
   */
  parseOperationDefinition() {
    const tv = this._lexer.token;
    if (this.peek(N$2.BRACE_L))
      return this.node(tv, {
        kind: D$2.OPERATION_DEFINITION,
        operation: yt$2.QUERY,
        name: void 0,
        variableDefinitions: [],
        directives: [],
        selectionSet: this.parseSelectionSet()
      });
    const ev = this.parseOperationType();
    let iv;
    return this.peek(N$2.NAME) && (iv = this.parseName()), this.node(tv, {
      kind: D$2.OPERATION_DEFINITION,
      operation: ev,
      name: iv,
      variableDefinitions: this.parseVariableDefinitions(),
      directives: this.parseDirectives(!1),
      selectionSet: this.parseSelectionSet()
    });
  }
  /**
   * OperationType : one of query mutation subscription
   */
  parseOperationType() {
    const tv = this.expectToken(N$2.NAME);
    switch (tv.value) {
      case "query":
        return yt$2.QUERY;
      case "mutation":
        return yt$2.MUTATION;
      case "subscription":
        return yt$2.SUBSCRIPTION;
    }
    throw this.unexpected(tv);
  }
  /**
   * VariableDefinitions : ( VariableDefinition+ )
   */
  parseVariableDefinitions() {
    return this.optionalMany(
      N$2.PAREN_L,
      this.parseVariableDefinition,
      N$2.PAREN_R
    );
  }
  /**
   * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?
   */
  parseVariableDefinition() {
    return this.node(this._lexer.token, {
      kind: D$2.VARIABLE_DEFINITION,
      variable: this.parseVariable(),
      type: (this.expectToken(N$2.COLON), this.parseTypeReference()),
      defaultValue: this.expectOptionalToken(N$2.EQUALS) ? this.parseConstValueLiteral() : void 0,
      directives: this.parseConstDirectives()
    });
  }
  /**
   * Variable : $ Name
   */
  parseVariable() {
    const tv = this._lexer.token;
    return this.expectToken(N$2.DOLLAR), this.node(tv, {
      kind: D$2.VARIABLE,
      name: this.parseName()
    });
  }
  /**
   * ```
   * SelectionSet : { Selection+ }
   * ```
   */
  parseSelectionSet() {
    return this.node(this._lexer.token, {
      kind: D$2.SELECTION_SET,
      selections: this.many(
        N$2.BRACE_L,
        this.parseSelection,
        N$2.BRACE_R
      )
    });
  }
  /**
   * Selection :
   *   - Field
   *   - FragmentSpread
   *   - InlineFragment
   */
  parseSelection() {
    return this.peek(N$2.SPREAD) ? this.parseFragment() : this.parseField();
  }
  /**
   * Field : Alias? Name Arguments? Directives? SelectionSet?
   *
   * Alias : Name :
   */
  parseField() {
    const tv = this._lexer.token, ev = this.parseName();
    let iv, ov;
    return this.expectOptionalToken(N$2.COLON) ? (iv = ev, ov = this.parseName()) : ov = ev, this.node(tv, {
      kind: D$2.FIELD,
      alias: iv,
      name: ov,
      arguments: this.parseArguments(!1),
      directives: this.parseDirectives(!1),
      selectionSet: this.peek(N$2.BRACE_L) ? this.parseSelectionSet() : void 0
    });
  }
  /**
   * Arguments[Const] : ( Argument[?Const]+ )
   */
  parseArguments(tv) {
    const ev = tv ? this.parseConstArgument : this.parseArgument;
    return this.optionalMany(N$2.PAREN_L, ev, N$2.PAREN_R);
  }
  /**
   * Argument[Const] : Name : Value[?Const]
   */
  parseArgument(tv = !1) {
    const ev = this._lexer.token, iv = this.parseName();
    return this.expectToken(N$2.COLON), this.node(ev, {
      kind: D$2.ARGUMENT,
      name: iv,
      value: this.parseValueLiteral(tv)
    });
  }
  parseConstArgument() {
    return this.parseArgument(!0);
  }
  // Implements the parsing rules in the Fragments section.
  /**
   * Corresponds to both FragmentSpread and InlineFragment in the spec.
   *
   * FragmentSpread : ... FragmentName Directives?
   *
   * InlineFragment : ... TypeCondition? Directives? SelectionSet
   */
  parseFragment() {
    const tv = this._lexer.token;
    this.expectToken(N$2.SPREAD);
    const ev = this.expectOptionalKeyword("on");
    return !ev && this.peek(N$2.NAME) ? this.node(tv, {
      kind: D$2.FRAGMENT_SPREAD,
      name: this.parseFragmentName(),
      directives: this.parseDirectives(!1)
    }) : this.node(tv, {
      kind: D$2.INLINE_FRAGMENT,
      typeCondition: ev ? this.parseNamedType() : void 0,
      directives: this.parseDirectives(!1),
      selectionSet: this.parseSelectionSet()
    });
  }
  /**
   * FragmentDefinition :
   *   - fragment FragmentName on TypeCondition Directives? SelectionSet
   *
   * TypeCondition : NamedType
   */
  parseFragmentDefinition() {
    const tv = this._lexer.token;
    return this.expectKeyword("fragment"), this._options.allowLegacyFragmentVariables === !0 ? this.node(tv, {
      kind: D$2.FRAGMENT_DEFINITION,
      name: this.parseFragmentName(),
      variableDefinitions: this.parseVariableDefinitions(),
      typeCondition: (this.expectKeyword("on"), this.parseNamedType()),
      directives: this.parseDirectives(!1),
      selectionSet: this.parseSelectionSet()
    }) : this.node(tv, {
      kind: D$2.FRAGMENT_DEFINITION,
      name: this.parseFragmentName(),
      typeCondition: (this.expectKeyword("on"), this.parseNamedType()),
      directives: this.parseDirectives(!1),
      selectionSet: this.parseSelectionSet()
    });
  }
  /**
   * FragmentName : Name but not `on`
   */
  parseFragmentName() {
    if (this._lexer.token.value === "on")
      throw this.unexpected();
    return this.parseName();
  }
  // Implements the parsing rules in the Values section.
  /**
   * Value[Const] :
   *   - [~Const] Variable
   *   - IntValue
   *   - FloatValue
   *   - StringValue
   *   - BooleanValue
   *   - NullValue
   *   - EnumValue
   *   - ListValue[?Const]
   *   - ObjectValue[?Const]
   *
   * BooleanValue : one of `true` `false`
   *
   * NullValue : `null`
   *
   * EnumValue : Name but not `true`, `false` or `null`
   */
  parseValueLiteral(tv) {
    const ev = this._lexer.token;
    switch (ev.kind) {
      case N$2.BRACKET_L:
        return this.parseList(tv);
      case N$2.BRACE_L:
        return this.parseObject(tv);
      case N$2.INT:
        return this.advanceLexer(), this.node(ev, {
          kind: D$2.INT,
          value: ev.value
        });
      case N$2.FLOAT:
        return this.advanceLexer(), this.node(ev, {
          kind: D$2.FLOAT,
          value: ev.value
        });
      case N$2.STRING:
      case N$2.BLOCK_STRING:
        return this.parseStringLiteral();
      case N$2.NAME:
        switch (this.advanceLexer(), ev.value) {
          case "true":
            return this.node(ev, {
              kind: D$2.BOOLEAN,
              value: !0
            });
          case "false":
            return this.node(ev, {
              kind: D$2.BOOLEAN,
              value: !1
            });
          case "null":
            return this.node(ev, {
              kind: D$2.NULL
            });
          default:
            return this.node(ev, {
              kind: D$2.ENUM,
              value: ev.value
            });
        }
      case N$2.DOLLAR:
        if (tv)
          if (this.expectToken(N$2.DOLLAR), this._lexer.token.kind === N$2.NAME) {
            const iv = this._lexer.token.value;
            throw Q$2(
              this._lexer.source,
              ev.start,
              `Unexpected variable "$${iv}" in constant value.`
            );
          } else
            throw this.unexpected(ev);
        return this.parseVariable();
      default:
        throw this.unexpected();
    }
  }
  parseConstValueLiteral() {
    return this.parseValueLiteral(!0);
  }
  parseStringLiteral() {
    const tv = this._lexer.token;
    return this.advanceLexer(), this.node(tv, {
      kind: D$2.STRING,
      value: tv.value,
      block: tv.kind === N$2.BLOCK_STRING
    });
  }
  /**
   * ListValue[Const] :
   *   - [ ]
   *   - [ Value[?Const]+ ]
   */
  parseList(tv) {
    const ev = () => this.parseValueLiteral(tv);
    return this.node(this._lexer.token, {
      kind: D$2.LIST,
      values: this.any(N$2.BRACKET_L, ev, N$2.BRACKET_R)
    });
  }
  /**
   * ```
   * ObjectValue[Const] :
   *   - { }
   *   - { ObjectField[?Const]+ }
   * ```
   */
  parseObject(tv) {
    const ev = () => this.parseObjectField(tv);
    return this.node(this._lexer.token, {
      kind: D$2.OBJECT,
      fields: this.any(N$2.BRACE_L, ev, N$2.BRACE_R)
    });
  }
  /**
   * ObjectField[Const] : Name : Value[?Const]
   */
  parseObjectField(tv) {
    const ev = this._lexer.token, iv = this.parseName();
    return this.expectToken(N$2.COLON), this.node(ev, {
      kind: D$2.OBJECT_FIELD,
      name: iv,
      value: this.parseValueLiteral(tv)
    });
  }
  // Implements the parsing rules in the Directives section.
  /**
   * Directives[Const] : Directive[?Const]+
   */
  parseDirectives(tv) {
    const ev = [];
    for (; this.peek(N$2.AT); )
      ev.push(this.parseDirective(tv));
    return ev;
  }
  parseConstDirectives() {
    return this.parseDirectives(!0);
  }
  /**
   * ```
   * Directive[Const] : @ Name Arguments[?Const]?
   * ```
   */
  parseDirective(tv) {
    const ev = this._lexer.token;
    return this.expectToken(N$2.AT), this.node(ev, {
      kind: D$2.DIRECTIVE,
      name: this.parseName(),
      arguments: this.parseArguments(tv)
    });
  }
  // Implements the parsing rules in the Types section.
  /**
   * Type :
   *   - NamedType
   *   - ListType
   *   - NonNullType
   */
  parseTypeReference() {
    const tv = this._lexer.token;
    let ev;
    if (this.expectOptionalToken(N$2.BRACKET_L)) {
      const iv = this.parseTypeReference();
      this.expectToken(N$2.BRACKET_R), ev = this.node(tv, {
        kind: D$2.LIST_TYPE,
        type: iv
      });
    } else
      ev = this.parseNamedType();
    return this.expectOptionalToken(N$2.BANG) ? this.node(tv, {
      kind: D$2.NON_NULL_TYPE,
      type: ev
    }) : ev;
  }
  /**
   * NamedType : Name
   */
  parseNamedType() {
    return this.node(this._lexer.token, {
      kind: D$2.NAMED_TYPE,
      name: this.parseName()
    });
  }
  // Implements the parsing rules in the Type Definition section.
  peekDescription() {
    return this.peek(N$2.STRING) || this.peek(N$2.BLOCK_STRING);
  }
  /**
   * Description : StringValue
   */
  parseDescription() {
    if (this.peekDescription())
      return this.parseStringLiteral();
  }
  /**
   * ```
   * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }
   * ```
   */
  parseSchemaDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("schema");
    const iv = this.parseConstDirectives(), ov = this.many(
      N$2.BRACE_L,
      this.parseOperationTypeDefinition,
      N$2.BRACE_R
    );
    return this.node(tv, {
      kind: D$2.SCHEMA_DEFINITION,
      description: ev,
      directives: iv,
      operationTypes: ov
    });
  }
  /**
   * OperationTypeDefinition : OperationType : NamedType
   */
  parseOperationTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseOperationType();
    this.expectToken(N$2.COLON);
    const iv = this.parseNamedType();
    return this.node(tv, {
      kind: D$2.OPERATION_TYPE_DEFINITION,
      operation: ev,
      type: iv
    });
  }
  /**
   * ScalarTypeDefinition : Description? scalar Name Directives[Const]?
   */
  parseScalarTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("scalar");
    const iv = this.parseName(), ov = this.parseConstDirectives();
    return this.node(tv, {
      kind: D$2.SCALAR_TYPE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov
    });
  }
  /**
   * ObjectTypeDefinition :
   *   Description?
   *   type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?
   */
  parseObjectTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("type");
    const iv = this.parseName(), ov = this.parseImplementsInterfaces(), av = this.parseConstDirectives(), sv = this.parseFieldsDefinition();
    return this.node(tv, {
      kind: D$2.OBJECT_TYPE_DEFINITION,
      description: ev,
      name: iv,
      interfaces: ov,
      directives: av,
      fields: sv
    });
  }
  /**
   * ImplementsInterfaces :
   *   - implements `&`? NamedType
   *   - ImplementsInterfaces & NamedType
   */
  parseImplementsInterfaces() {
    return this.expectOptionalKeyword("implements") ? this.delimitedMany(N$2.AMP, this.parseNamedType) : [];
  }
  /**
   * ```
   * FieldsDefinition : { FieldDefinition+ }
   * ```
   */
  parseFieldsDefinition() {
    return this.optionalMany(
      N$2.BRACE_L,
      this.parseFieldDefinition,
      N$2.BRACE_R
    );
  }
  /**
   * FieldDefinition :
   *   - Description? Name ArgumentsDefinition? : Type Directives[Const]?
   */
  parseFieldDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription(), iv = this.parseName(), ov = this.parseArgumentDefs();
    this.expectToken(N$2.COLON);
    const av = this.parseTypeReference(), sv = this.parseConstDirectives();
    return this.node(tv, {
      kind: D$2.FIELD_DEFINITION,
      description: ev,
      name: iv,
      arguments: ov,
      type: av,
      directives: sv
    });
  }
  /**
   * ArgumentsDefinition : ( InputValueDefinition+ )
   */
  parseArgumentDefs() {
    return this.optionalMany(
      N$2.PAREN_L,
      this.parseInputValueDef,
      N$2.PAREN_R
    );
  }
  /**
   * InputValueDefinition :
   *   - Description? Name : Type DefaultValue? Directives[Const]?
   */
  parseInputValueDef() {
    const tv = this._lexer.token, ev = this.parseDescription(), iv = this.parseName();
    this.expectToken(N$2.COLON);
    const ov = this.parseTypeReference();
    let av;
    this.expectOptionalToken(N$2.EQUALS) && (av = this.parseConstValueLiteral());
    const sv = this.parseConstDirectives();
    return this.node(tv, {
      kind: D$2.INPUT_VALUE_DEFINITION,
      description: ev,
      name: iv,
      type: ov,
      defaultValue: av,
      directives: sv
    });
  }
  /**
   * InterfaceTypeDefinition :
   *   - Description? interface Name Directives[Const]? FieldsDefinition?
   */
  parseInterfaceTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("interface");
    const iv = this.parseName(), ov = this.parseImplementsInterfaces(), av = this.parseConstDirectives(), sv = this.parseFieldsDefinition();
    return this.node(tv, {
      kind: D$2.INTERFACE_TYPE_DEFINITION,
      description: ev,
      name: iv,
      interfaces: ov,
      directives: av,
      fields: sv
    });
  }
  /**
   * UnionTypeDefinition :
   *   - Description? union Name Directives[Const]? UnionMemberTypes?
   */
  parseUnionTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("union");
    const iv = this.parseName(), ov = this.parseConstDirectives(), av = this.parseUnionMemberTypes();
    return this.node(tv, {
      kind: D$2.UNION_TYPE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov,
      types: av
    });
  }
  /**
   * UnionMemberTypes :
   *   - = `|`? NamedType
   *   - UnionMemberTypes | NamedType
   */
  parseUnionMemberTypes() {
    return this.expectOptionalToken(N$2.EQUALS) ? this.delimitedMany(N$2.PIPE, this.parseNamedType) : [];
  }
  /**
   * EnumTypeDefinition :
   *   - Description? enum Name Directives[Const]? EnumValuesDefinition?
   */
  parseEnumTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("enum");
    const iv = this.parseName(), ov = this.parseConstDirectives(), av = this.parseEnumValuesDefinition();
    return this.node(tv, {
      kind: D$2.ENUM_TYPE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov,
      values: av
    });
  }
  /**
   * ```
   * EnumValuesDefinition : { EnumValueDefinition+ }
   * ```
   */
  parseEnumValuesDefinition() {
    return this.optionalMany(
      N$2.BRACE_L,
      this.parseEnumValueDefinition,
      N$2.BRACE_R
    );
  }
  /**
   * EnumValueDefinition : Description? EnumValue Directives[Const]?
   */
  parseEnumValueDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription(), iv = this.parseEnumValueName(), ov = this.parseConstDirectives();
    return this.node(tv, {
      kind: D$2.ENUM_VALUE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov
    });
  }
  /**
   * EnumValue : Name but not `true`, `false` or `null`
   */
  parseEnumValueName() {
    if (this._lexer.token.value === "true" || this._lexer.token.value === "false" || this._lexer.token.value === "null")
      throw Q$2(
        this._lexer.source,
        this._lexer.token.start,
        `${bn$3(
          this._lexer.token
        )} is reserved and cannot be used for an enum value.`
      );
    return this.parseName();
  }
  /**
   * InputObjectTypeDefinition :
   *   - Description? input Name Directives[Const]? InputFieldsDefinition?
   */
  parseInputObjectTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("input");
    const iv = this.parseName(), ov = this.parseConstDirectives(), av = this.parseInputFieldsDefinition();
    return this.node(tv, {
      kind: D$2.INPUT_OBJECT_TYPE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov,
      fields: av
    });
  }
  /**
   * ```
   * InputFieldsDefinition : { InputValueDefinition+ }
   * ```
   */
  parseInputFieldsDefinition() {
    return this.optionalMany(
      N$2.BRACE_L,
      this.parseInputValueDef,
      N$2.BRACE_R
    );
  }
  /**
   * TypeSystemExtension :
   *   - SchemaExtension
   *   - TypeExtension
   *
   * TypeExtension :
   *   - ScalarTypeExtension
   *   - ObjectTypeExtension
   *   - InterfaceTypeExtension
   *   - UnionTypeExtension
   *   - EnumTypeExtension
   *   - InputObjectTypeDefinition
   */
  parseTypeSystemExtension() {
    const tv = this._lexer.lookahead();
    if (tv.kind === N$2.NAME)
      switch (tv.value) {
        case "schema":
          return this.parseSchemaExtension();
        case "scalar":
          return this.parseScalarTypeExtension();
        case "type":
          return this.parseObjectTypeExtension();
        case "interface":
          return this.parseInterfaceTypeExtension();
        case "union":
          return this.parseUnionTypeExtension();
        case "enum":
          return this.parseEnumTypeExtension();
        case "input":
          return this.parseInputObjectTypeExtension();
      }
    throw this.unexpected(tv);
  }
  /**
   * ```
   * SchemaExtension :
   *  - extend schema Directives[Const]? { OperationTypeDefinition+ }
   *  - extend schema Directives[Const]
   * ```
   */
  parseSchemaExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("schema");
    const ev = this.parseConstDirectives(), iv = this.optionalMany(
      N$2.BRACE_L,
      this.parseOperationTypeDefinition,
      N$2.BRACE_R
    );
    if (ev.length === 0 && iv.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: D$2.SCHEMA_EXTENSION,
      directives: ev,
      operationTypes: iv
    });
  }
  /**
   * ScalarTypeExtension :
   *   - extend scalar Name Directives[Const]
   */
  parseScalarTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("scalar");
    const ev = this.parseName(), iv = this.parseConstDirectives();
    if (iv.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: D$2.SCALAR_TYPE_EXTENSION,
      name: ev,
      directives: iv
    });
  }
  /**
   * ObjectTypeExtension :
   *  - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
   *  - extend type Name ImplementsInterfaces? Directives[Const]
   *  - extend type Name ImplementsInterfaces
   */
  parseObjectTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("type");
    const ev = this.parseName(), iv = this.parseImplementsInterfaces(), ov = this.parseConstDirectives(), av = this.parseFieldsDefinition();
    if (iv.length === 0 && ov.length === 0 && av.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: D$2.OBJECT_TYPE_EXTENSION,
      name: ev,
      interfaces: iv,
      directives: ov,
      fields: av
    });
  }
  /**
   * InterfaceTypeExtension :
   *  - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
   *  - extend interface Name ImplementsInterfaces? Directives[Const]
   *  - extend interface Name ImplementsInterfaces
   */
  parseInterfaceTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("interface");
    const ev = this.parseName(), iv = this.parseImplementsInterfaces(), ov = this.parseConstDirectives(), av = this.parseFieldsDefinition();
    if (iv.length === 0 && ov.length === 0 && av.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: D$2.INTERFACE_TYPE_EXTENSION,
      name: ev,
      interfaces: iv,
      directives: ov,
      fields: av
    });
  }
  /**
   * UnionTypeExtension :
   *   - extend union Name Directives[Const]? UnionMemberTypes
   *   - extend union Name Directives[Const]
   */
  parseUnionTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("union");
    const ev = this.parseName(), iv = this.parseConstDirectives(), ov = this.parseUnionMemberTypes();
    if (iv.length === 0 && ov.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: D$2.UNION_TYPE_EXTENSION,
      name: ev,
      directives: iv,
      types: ov
    });
  }
  /**
   * EnumTypeExtension :
   *   - extend enum Name Directives[Const]? EnumValuesDefinition
   *   - extend enum Name Directives[Const]
   */
  parseEnumTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("enum");
    const ev = this.parseName(), iv = this.parseConstDirectives(), ov = this.parseEnumValuesDefinition();
    if (iv.length === 0 && ov.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: D$2.ENUM_TYPE_EXTENSION,
      name: ev,
      directives: iv,
      values: ov
    });
  }
  /**
   * InputObjectTypeExtension :
   *   - extend input Name Directives[Const]? InputFieldsDefinition
   *   - extend input Name Directives[Const]
   */
  parseInputObjectTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("input");
    const ev = this.parseName(), iv = this.parseConstDirectives(), ov = this.parseInputFieldsDefinition();
    if (iv.length === 0 && ov.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: D$2.INPUT_OBJECT_TYPE_EXTENSION,
      name: ev,
      directives: iv,
      fields: ov
    });
  }
  /**
   * ```
   * DirectiveDefinition :
   *   - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations
   * ```
   */
  parseDirectiveDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("directive"), this.expectToken(N$2.AT);
    const iv = this.parseName(), ov = this.parseArgumentDefs(), av = this.expectOptionalKeyword("repeatable");
    this.expectKeyword("on");
    const sv = this.parseDirectiveLocations();
    return this.node(tv, {
      kind: D$2.DIRECTIVE_DEFINITION,
      description: ev,
      name: iv,
      arguments: ov,
      repeatable: av,
      locations: sv
    });
  }
  /**
   * DirectiveLocations :
   *   - `|`? DirectiveLocation
   *   - DirectiveLocations | DirectiveLocation
   */
  parseDirectiveLocations() {
    return this.delimitedMany(N$2.PIPE, this.parseDirectiveLocation);
  }
  /*
   * DirectiveLocation :
   *   - ExecutableDirectiveLocation
   *   - TypeSystemDirectiveLocation
   *
   * ExecutableDirectiveLocation : one of
   *   `QUERY`
   *   `MUTATION`
   *   `SUBSCRIPTION`
   *   `FIELD`
   *   `FRAGMENT_DEFINITION`
   *   `FRAGMENT_SPREAD`
   *   `INLINE_FRAGMENT`
   *
   * TypeSystemDirectiveLocation : one of
   *   `SCHEMA`
   *   `SCALAR`
   *   `OBJECT`
   *   `FIELD_DEFINITION`
   *   `ARGUMENT_DEFINITION`
   *   `INTERFACE`
   *   `UNION`
   *   `ENUM`
   *   `ENUM_VALUE`
   *   `INPUT_OBJECT`
   *   `INPUT_FIELD_DEFINITION`
   */
  parseDirectiveLocation() {
    const tv = this._lexer.token, ev = this.parseName();
    if (Object.prototype.hasOwnProperty.call(yr$3, ev.value))
      return ev;
    throw this.unexpected(tv);
  }
  // Core parsing utility functions
  /**
   * Returns a node that, if configured to do so, sets a "loc" field as a
   * location object, used to identify the place in the source that created a
   * given parsed object.
   */
  node(tv, ev) {
    return this._options.noLocation !== !0 && (ev.loc = new rm$1(
      tv,
      this._lexer.lastToken,
      this._lexer.source
    )), ev;
  }
  /**
   * Determines if the next token is of a given kind
   */
  peek(tv) {
    return this._lexer.token.kind === tv;
  }
  /**
   * If the next token is of the given kind, return that token after advancing the lexer.
   * Otherwise, do not change the parser state and throw an error.
   */
  expectToken(tv) {
    const ev = this._lexer.token;
    if (ev.kind === tv)
      return this.advanceLexer(), ev;
    throw Q$2(
      this._lexer.source,
      ev.start,
      `Expected ${cl$1(tv)}, found ${bn$3(ev)}.`
    );
  }
  /**
   * If the next token is of the given kind, return "true" after advancing the lexer.
   * Otherwise, do not change the parser state and return "false".
   */
  expectOptionalToken(tv) {
    return this._lexer.token.kind === tv ? (this.advanceLexer(), !0) : !1;
  }
  /**
   * If the next token is a given keyword, advance the lexer.
   * Otherwise, do not change the parser state and throw an error.
   */
  expectKeyword(tv) {
    const ev = this._lexer.token;
    if (ev.kind === N$2.NAME && ev.value === tv)
      this.advanceLexer();
    else
      throw Q$2(
        this._lexer.source,
        ev.start,
        `Expected "${tv}", found ${bn$3(ev)}.`
      );
  }
  /**
   * If the next token is a given keyword, return "true" after advancing the lexer.
   * Otherwise, do not change the parser state and return "false".
   */
  expectOptionalKeyword(tv) {
    const ev = this._lexer.token;
    return ev.kind === N$2.NAME && ev.value === tv ? (this.advanceLexer(), !0) : !1;
  }
  /**
   * Helper function for creating an error when an unexpected lexed token is encountered.
   */
  unexpected(tv) {
    const ev = tv ?? this._lexer.token;
    return Q$2(
      this._lexer.source,
      ev.start,
      `Unexpected ${bn$3(ev)}.`
    );
  }
  /**
   * Returns a possibly empty list of parse nodes, determined by the parseFn.
   * This list begins with a lex token of openKind and ends with a lex token of closeKind.
   * Advances the parser to the next lex token after the closing token.
   */
  any(tv, ev, iv) {
    this.expectToken(tv);
    const ov = [];
    for (; !this.expectOptionalToken(iv); )
      ov.push(ev.call(this));
    return ov;
  }
  /**
   * Returns a list of parse nodes, determined by the parseFn.
   * It can be empty only if open token is missing otherwise it will always return non-empty list
   * that begins with a lex token of openKind and ends with a lex token of closeKind.
   * Advances the parser to the next lex token after the closing token.
   */
  optionalMany(tv, ev, iv) {
    if (this.expectOptionalToken(tv)) {
      const ov = [];
      do
        ov.push(ev.call(this));
      while (!this.expectOptionalToken(iv));
      return ov;
    }
    return [];
  }
  /**
   * Returns a non-empty list of parse nodes, determined by the parseFn.
   * This list begins with a lex token of openKind and ends with a lex token of closeKind.
   * Advances the parser to the next lex token after the closing token.
   */
  many(tv, ev, iv) {
    this.expectToken(tv);
    const ov = [];
    do
      ov.push(ev.call(this));
    while (!this.expectOptionalToken(iv));
    return ov;
  }
  /**
   * Returns a non-empty list of parse nodes, determined by the parseFn.
   * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.
   * Advances the parser to the next lex token after last item in the list.
   */
  delimitedMany(tv, ev) {
    this.expectOptionalToken(tv);
    const iv = [];
    do
      iv.push(ev.call(this));
    while (this.expectOptionalToken(tv));
    return iv;
  }
  advanceLexer() {
    const { maxTokens: tv } = this._options, ev = this._lexer.advance();
    if (tv !== void 0 && ev.kind !== N$2.EOF && (++this._tokenCounter, this._tokenCounter > tv))
      throw Q$2(
        this._lexer.source,
        ev.start,
        `Document contains more that ${tv} tokens. Parsing aborted.`
      );
  }
};
function bn$3(rv) {
  const tv = rv.value;
  return cl$1(rv.kind) + (tv != null ? ` "${tv}"` : "");
}
function cl$1(rv) {
  return dm$1(rv) ? `"${rv}"` : rv;
}
function Fm$1(rv) {
  return `"${rv.replace(Dm$1, Im$1)}"`;
}
const Dm$1 = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g;
function Im$1(rv) {
  return Lm[rv.charCodeAt(0)];
}
const Lm = [
  "\\u0000",
  "\\u0001",
  "\\u0002",
  "\\u0003",
  "\\u0004",
  "\\u0005",
  "\\u0006",
  "\\u0007",
  "\\b",
  "\\t",
  "\\n",
  "\\u000B",
  "\\f",
  "\\r",
  "\\u000E",
  "\\u000F",
  "\\u0010",
  "\\u0011",
  "\\u0012",
  "\\u0013",
  "\\u0014",
  "\\u0015",
  "\\u0016",
  "\\u0017",
  "\\u0018",
  "\\u0019",
  "\\u001A",
  "\\u001B",
  "\\u001C",
  "\\u001D",
  "\\u001E",
  "\\u001F",
  "",
  "",
  '\\"',
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  // 2F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  // 3F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  // 4F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "\\\\",
  "",
  "",
  "",
  // 5F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  // 6F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "\\u007F",
  "\\u0080",
  "\\u0081",
  "\\u0082",
  "\\u0083",
  "\\u0084",
  "\\u0085",
  "\\u0086",
  "\\u0087",
  "\\u0088",
  "\\u0089",
  "\\u008A",
  "\\u008B",
  "\\u008C",
  "\\u008D",
  "\\u008E",
  "\\u008F",
  "\\u0090",
  "\\u0091",
  "\\u0092",
  "\\u0093",
  "\\u0094",
  "\\u0095",
  "\\u0096",
  "\\u0097",
  "\\u0098",
  "\\u0099",
  "\\u009A",
  "\\u009B",
  "\\u009C",
  "\\u009D",
  "\\u009E",
  "\\u009F"
], Pm$1 = Object.freeze({});
function $m$1(rv, tv, ev = il$1) {
  const iv = /* @__PURE__ */ new Map();
  for (const wv of Object.values(D$2))
    iv.set(wv, Um$1(tv, wv));
  let ov, av = Array.isArray(rv), sv = [rv], lv = -1, uv = [], cv = rv, dv, hv;
  const pv = [], yv = [];
  do {
    lv++;
    const wv = lv === sv.length, xv = wv && uv.length !== 0;
    if (wv) {
      if (dv = yv.length === 0 ? void 0 : pv[pv.length - 1], cv = hv, hv = yv.pop(), xv)
        if (av) {
          cv = cv.slice();
          let Av = 0;
          for (const [Ov, Lv] of uv) {
            const jv = Ov - Av;
            Lv === null ? (cv.splice(jv, 1), Av++) : cv[jv] = Lv;
          }
        } else {
          cv = Object.defineProperties(
            {},
            Object.getOwnPropertyDescriptors(cv)
          );
          for (const [Av, Ov] of uv)
            cv[Av] = Ov;
        }
      lv = ov.index, sv = ov.keys, uv = ov.edits, av = ov.inArray, ov = ov.prev;
    } else if (hv) {
      if (dv = av ? lv : sv[lv], cv = hv[dv], cv == null)
        continue;
      pv.push(dv);
    }
    let Cv;
    if (!Array.isArray(cv)) {
      var Sv, _v;
      na$3(cv) || Cn$2(!1, `Invalid AST Node: ${qr$2(cv)}.`);
      const Av = wv ? (Sv = iv.get(cv.kind)) === null || Sv === void 0 ? void 0 : Sv.leave : (_v = iv.get(cv.kind)) === null || _v === void 0 ? void 0 : _v.enter;
      if (Cv = Av == null ? void 0 : Av.call(tv, cv, dv, hv, pv, yv), Cv === Pm$1)
        break;
      if (Cv === !1) {
        if (!wv) {
          pv.pop();
          continue;
        }
      } else if (Cv !== void 0 && (uv.push([dv, Cv]), !wv))
        if (na$3(Cv))
          cv = Cv;
        else {
          pv.pop();
          continue;
        }
    }
    if (Cv === void 0 && xv && uv.push([dv, cv]), wv)
      pv.pop();
    else {
      var Ev;
      ov = {
        inArray: av,
        index: lv,
        keys: sv,
        edits: uv,
        prev: ov
      }, av = Array.isArray(cv), sv = av ? cv : (Ev = ev[cv.kind]) !== null && Ev !== void 0 ? Ev : [], lv = -1, uv = [], hv && yv.push(hv), hv = cv;
    }
  } while (ov !== void 0);
  return uv.length !== 0 ? uv[uv.length - 1][1] : rv;
}
function Um$1(rv, tv) {
  const ev = rv[tv];
  return typeof ev == "object" ? ev : typeof ev == "function" ? {
    enter: ev,
    leave: void 0
  } : {
    enter: rv.enter,
    leave: rv.leave
  };
}
function Mm$1(rv) {
  return $m$1(rv, jm$1);
}
const Vm$1 = 80, jm$1 = {
  Name: {
    leave: (rv) => rv.value
  },
  Variable: {
    leave: (rv) => "$" + rv.name
  },
  // Document
  Document: {
    leave: (rv) => C$2(rv.definitions, `

`)
  },
  OperationDefinition: {
    leave(rv) {
      const tv = U$2("(", C$2(rv.variableDefinitions, ", "), ")"), ev = C$2(
        [
          rv.operation,
          C$2([rv.name, tv]),
          C$2(rv.directives, " ")
        ],
        " "
      );
      return (ev === "query" ? "" : ev + " ") + rv.selectionSet;
    }
  },
  VariableDefinition: {
    leave: ({ variable: rv, type: tv, defaultValue: ev, directives: iv }) => rv + ": " + tv + U$2(" = ", ev) + U$2(" ", C$2(iv, " "))
  },
  SelectionSet: {
    leave: ({ selections: rv }) => pe$1(rv)
  },
  Field: {
    leave({ alias: rv, name: tv, arguments: ev, directives: iv, selectionSet: ov }) {
      const av = U$2("", rv, ": ") + tv;
      let sv = av + U$2("(", C$2(ev, ", "), ")");
      return sv.length > Vm$1 && (sv = av + U$2(`(
`, xn$3(C$2(ev, `
`)), `
)`)), C$2([sv, C$2(iv, " "), ov], " ");
    }
  },
  Argument: {
    leave: ({ name: rv, value: tv }) => rv + ": " + tv
  },
  // Fragments
  FragmentSpread: {
    leave: ({ name: rv, directives: tv }) => "..." + rv + U$2(" ", C$2(tv, " "))
  },
  InlineFragment: {
    leave: ({ typeCondition: rv, directives: tv, selectionSet: ev }) => C$2(
      [
        "...",
        U$2("on ", rv),
        C$2(tv, " "),
        ev
      ],
      " "
    )
  },
  FragmentDefinition: {
    leave: ({ name: rv, typeCondition: tv, variableDefinitions: ev, directives: iv, selectionSet: ov }) => (
      // or removed in the future.
      `fragment ${rv}${U$2("(", C$2(ev, ", "), ")")} on ${tv} ${U$2("", C$2(iv, " "), " ")}` + ov
    )
  },
  // Value
  IntValue: {
    leave: ({ value: rv }) => rv
  },
  FloatValue: {
    leave: ({ value: rv }) => rv
  },
  StringValue: {
    leave: ({ value: rv, block: tv }) => tv ? um$1(rv) : Fm$1(rv)
  },
  BooleanValue: {
    leave: ({ value: rv }) => rv ? "true" : "false"
  },
  NullValue: {
    leave: () => "null"
  },
  EnumValue: {
    leave: ({ value: rv }) => rv
  },
  ListValue: {
    leave: ({ values: rv }) => "[" + C$2(rv, ", ") + "]"
  },
  ObjectValue: {
    leave: ({ fields: rv }) => "{" + C$2(rv, ", ") + "}"
  },
  ObjectField: {
    leave: ({ name: rv, value: tv }) => rv + ": " + tv
  },
  // Directive
  Directive: {
    leave: ({ name: rv, arguments: tv }) => "@" + rv + U$2("(", C$2(tv, ", "), ")")
  },
  // Type
  NamedType: {
    leave: ({ name: rv }) => rv
  },
  ListType: {
    leave: ({ type: rv }) => "[" + rv + "]"
  },
  NonNullType: {
    leave: ({ type: rv }) => rv + "!"
  },
  // Type System Definitions
  SchemaDefinition: {
    leave: ({ description: rv, directives: tv, operationTypes: ev }) => U$2("", rv, `
`) + C$2(["schema", C$2(tv, " "), pe$1(ev)], " ")
  },
  OperationTypeDefinition: {
    leave: ({ operation: rv, type: tv }) => rv + ": " + tv
  },
  ScalarTypeDefinition: {
    leave: ({ description: rv, name: tv, directives: ev }) => U$2("", rv, `
`) + C$2(["scalar", tv, C$2(ev, " ")], " ")
  },
  ObjectTypeDefinition: {
    leave: ({ description: rv, name: tv, interfaces: ev, directives: iv, fields: ov }) => U$2("", rv, `
`) + C$2(
      [
        "type",
        tv,
        U$2("implements ", C$2(ev, " & ")),
        C$2(iv, " "),
        pe$1(ov)
      ],
      " "
    )
  },
  FieldDefinition: {
    leave: ({ description: rv, name: tv, arguments: ev, type: iv, directives: ov }) => U$2("", rv, `
`) + tv + (ra$3(ev) ? U$2(`(
`, xn$3(C$2(ev, `
`)), `
)`) : U$2("(", C$2(ev, ", "), ")")) + ": " + iv + U$2(" ", C$2(ov, " "))
  },
  InputValueDefinition: {
    leave: ({ description: rv, name: tv, type: ev, defaultValue: iv, directives: ov }) => U$2("", rv, `
`) + C$2(
      [tv + ": " + ev, U$2("= ", iv), C$2(ov, " ")],
      " "
    )
  },
  InterfaceTypeDefinition: {
    leave: ({ description: rv, name: tv, interfaces: ev, directives: iv, fields: ov }) => U$2("", rv, `
`) + C$2(
      [
        "interface",
        tv,
        U$2("implements ", C$2(ev, " & ")),
        C$2(iv, " "),
        pe$1(ov)
      ],
      " "
    )
  },
  UnionTypeDefinition: {
    leave: ({ description: rv, name: tv, directives: ev, types: iv }) => U$2("", rv, `
`) + C$2(
      ["union", tv, C$2(ev, " "), U$2("= ", C$2(iv, " | "))],
      " "
    )
  },
  EnumTypeDefinition: {
    leave: ({ description: rv, name: tv, directives: ev, values: iv }) => U$2("", rv, `
`) + C$2(["enum", tv, C$2(ev, " "), pe$1(iv)], " ")
  },
  EnumValueDefinition: {
    leave: ({ description: rv, name: tv, directives: ev }) => U$2("", rv, `
`) + C$2([tv, C$2(ev, " ")], " ")
  },
  InputObjectTypeDefinition: {
    leave: ({ description: rv, name: tv, directives: ev, fields: iv }) => U$2("", rv, `
`) + C$2(["input", tv, C$2(ev, " "), pe$1(iv)], " ")
  },
  DirectiveDefinition: {
    leave: ({ description: rv, name: tv, arguments: ev, repeatable: iv, locations: ov }) => U$2("", rv, `
`) + "directive @" + tv + (ra$3(ev) ? U$2(`(
`, xn$3(C$2(ev, `
`)), `
)`) : U$2("(", C$2(ev, ", "), ")")) + (iv ? " repeatable" : "") + " on " + C$2(ov, " | ")
  },
  SchemaExtension: {
    leave: ({ directives: rv, operationTypes: tv }) => C$2(
      ["extend schema", C$2(rv, " "), pe$1(tv)],
      " "
    )
  },
  ScalarTypeExtension: {
    leave: ({ name: rv, directives: tv }) => C$2(["extend scalar", rv, C$2(tv, " ")], " ")
  },
  ObjectTypeExtension: {
    leave: ({ name: rv, interfaces: tv, directives: ev, fields: iv }) => C$2(
      [
        "extend type",
        rv,
        U$2("implements ", C$2(tv, " & ")),
        C$2(ev, " "),
        pe$1(iv)
      ],
      " "
    )
  },
  InterfaceTypeExtension: {
    leave: ({ name: rv, interfaces: tv, directives: ev, fields: iv }) => C$2(
      [
        "extend interface",
        rv,
        U$2("implements ", C$2(tv, " & ")),
        C$2(ev, " "),
        pe$1(iv)
      ],
      " "
    )
  },
  UnionTypeExtension: {
    leave: ({ name: rv, directives: tv, types: ev }) => C$2(
      [
        "extend union",
        rv,
        C$2(tv, " "),
        U$2("= ", C$2(ev, " | "))
      ],
      " "
    )
  },
  EnumTypeExtension: {
    leave: ({ name: rv, directives: tv, values: ev }) => C$2(["extend enum", rv, C$2(tv, " "), pe$1(ev)], " ")
  },
  InputObjectTypeExtension: {
    leave: ({ name: rv, directives: tv, fields: ev }) => C$2(["extend input", rv, C$2(tv, " "), pe$1(ev)], " ")
  }
};
function C$2(rv, tv = "") {
  var ev;
  return (ev = rv == null ? void 0 : rv.filter((iv) => iv).join(tv)) !== null && ev !== void 0 ? ev : "";
}
function pe$1(rv) {
  return U$2(`{
`, xn$3(C$2(rv, `
`)), `
}`);
}
function U$2(rv, tv, ev = "") {
  return tv != null && tv !== "" ? rv + tv + ev : "";
}
function xn$3(rv) {
  return U$2("  ", rv.replace(/\n/g, `
  `));
}
function ra$3(rv) {
  var tv;
  return (tv = rv == null ? void 0 : rv.some((ev) => ev.includes(`
`))) !== null && tv !== void 0 ? tv : !1;
}
const sa$3 = (rv) => {
  var tv, ev;
  let iv;
  const ov = rv.definitions.filter((av) => av.kind === "OperationDefinition");
  return ov.length === 1 && (iv = (ev = (tv = ov[0]) == null ? void 0 : tv.name) == null ? void 0 : ev.value), iv;
}, Ui = (rv) => {
  if (typeof rv == "string") {
    let ev;
    try {
      const iv = xm$1(rv);
      ev = sa$3(iv);
    } catch {
    }
    return { query: rv, operationName: ev };
  }
  const tv = sa$3(rv);
  return { query: Mm$1(rv), operationName: tv };
};
let zt$2 = class OD extends Error {
  constructor(tv, ev) {
    const iv = `${OD.extractMessage(tv)}: ${JSON.stringify({
      response: tv,
      request: ev
    })}`;
    super(iv), Object.setPrototypeOf(this, OD.prototype), this.response = tv, this.request = ev, typeof Error.captureStackTrace == "function" && Error.captureStackTrace(this, OD);
  }
  static extractMessage(tv) {
    var ev, iv, ov;
    return (ov = (iv = (ev = tv.errors) == null ? void 0 : ev[0]) == null ? void 0 : iv.message) != null ? ov : `GraphQL Error (Code: ${tv.status})`;
  }
};
var br$3 = { exports: {} };
(function(rv, tv) {
  var ev = typeof self < "u" ? self : Ir$2, iv = function() {
    function av() {
      this.fetch = !1, this.DOMException = ev.DOMException;
    }
    return av.prototype = ev, new av();
  }();
  (function(av) {
    (function(sv) {
      var lv = {
        searchParams: "URLSearchParams" in av,
        iterable: "Symbol" in av && "iterator" in Symbol,
        blob: "FileReader" in av && "Blob" in av && function() {
          try {
            return new Blob(), !0;
          } catch {
            return !1;
          }
        }(),
        formData: "FormData" in av,
        arrayBuffer: "ArrayBuffer" in av
      };
      function uv(Bv) {
        return Bv && DataView.prototype.isPrototypeOf(Bv);
      }
      if (lv.arrayBuffer)
        var cv = [
          "[object Int8Array]",
          "[object Uint8Array]",
          "[object Uint8ClampedArray]",
          "[object Int16Array]",
          "[object Uint16Array]",
          "[object Int32Array]",
          "[object Uint32Array]",
          "[object Float32Array]",
          "[object Float64Array]"
        ], dv = ArrayBuffer.isView || function(Bv) {
          return Bv && cv.indexOf(Object.prototype.toString.call(Bv)) > -1;
        };
      function hv(Bv) {
        if (typeof Bv != "string" && (Bv = String(Bv)), /[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Bv))
          throw new TypeError("Invalid character in header field name");
        return Bv.toLowerCase();
      }
      function pv(Bv) {
        return typeof Bv != "string" && (Bv = String(Bv)), Bv;
      }
      function yv(Bv) {
        var Qv = {
          next: function() {
            var B1 = Bv.shift();
            return { done: B1 === void 0, value: B1 };
          }
        };
        return lv.iterable && (Qv[Symbol.iterator] = function() {
          return Qv;
        }), Qv;
      }
      function Sv(Bv) {
        this.map = {}, Bv instanceof Sv ? Bv.forEach(function(Qv, B1) {
          this.append(B1, Qv);
        }, this) : Array.isArray(Bv) ? Bv.forEach(function(Qv) {
          this.append(Qv[0], Qv[1]);
        }, this) : Bv && Object.getOwnPropertyNames(Bv).forEach(function(Qv) {
          this.append(Qv, Bv[Qv]);
        }, this);
      }
      Sv.prototype.append = function(Bv, Qv) {
        Bv = hv(Bv), Qv = pv(Qv);
        var B1 = this.map[Bv];
        this.map[Bv] = B1 ? B1 + ", " + Qv : Qv;
      }, Sv.prototype.delete = function(Bv) {
        delete this.map[hv(Bv)];
      }, Sv.prototype.get = function(Bv) {
        return Bv = hv(Bv), this.has(Bv) ? this.map[Bv] : null;
      }, Sv.prototype.has = function(Bv) {
        return this.map.hasOwnProperty(hv(Bv));
      }, Sv.prototype.set = function(Bv, Qv) {
        this.map[hv(Bv)] = pv(Qv);
      }, Sv.prototype.forEach = function(Bv, Qv) {
        for (var B1 in this.map)
          this.map.hasOwnProperty(B1) && Bv.call(Qv, this.map[B1], B1, this);
      }, Sv.prototype.keys = function() {
        var Bv = [];
        return this.forEach(function(Qv, B1) {
          Bv.push(B1);
        }), yv(Bv);
      }, Sv.prototype.values = function() {
        var Bv = [];
        return this.forEach(function(Qv) {
          Bv.push(Qv);
        }), yv(Bv);
      }, Sv.prototype.entries = function() {
        var Bv = [];
        return this.forEach(function(Qv, B1) {
          Bv.push([B1, Qv]);
        }), yv(Bv);
      }, lv.iterable && (Sv.prototype[Symbol.iterator] = Sv.prototype.entries);
      function _v(Bv) {
        if (Bv.bodyUsed)
          return Promise.reject(new TypeError("Already read"));
        Bv.bodyUsed = !0;
      }
      function Ev(Bv) {
        return new Promise(function(Qv, B1) {
          Bv.onload = function() {
            Qv(Bv.result);
          }, Bv.onerror = function() {
            B1(Bv.error);
          };
        });
      }
      function wv(Bv) {
        var Qv = new FileReader(), B1 = Ev(Qv);
        return Qv.readAsArrayBuffer(Bv), B1;
      }
      function xv(Bv) {
        var Qv = new FileReader(), B1 = Ev(Qv);
        return Qv.readAsText(Bv), B1;
      }
      function Cv(Bv) {
        for (var Qv = new Uint8Array(Bv), B1 = new Array(Qv.length), K1 = 0; K1 < Qv.length; K1++)
          B1[K1] = String.fromCharCode(Qv[K1]);
        return B1.join("");
      }
      function Av(Bv) {
        if (Bv.slice)
          return Bv.slice(0);
        var Qv = new Uint8Array(Bv.byteLength);
        return Qv.set(new Uint8Array(Bv)), Qv.buffer;
      }
      function Ov() {
        return this.bodyUsed = !1, this._initBody = function(Bv) {
          this._bodyInit = Bv, Bv ? typeof Bv == "string" ? this._bodyText = Bv : lv.blob && Blob.prototype.isPrototypeOf(Bv) ? this._bodyBlob = Bv : lv.formData && FormData.prototype.isPrototypeOf(Bv) ? this._bodyFormData = Bv : lv.searchParams && URLSearchParams.prototype.isPrototypeOf(Bv) ? this._bodyText = Bv.toString() : lv.arrayBuffer && lv.blob && uv(Bv) ? (this._bodyArrayBuffer = Av(Bv.buffer), this._bodyInit = new Blob([this._bodyArrayBuffer])) : lv.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(Bv) || dv(Bv)) ? this._bodyArrayBuffer = Av(Bv) : this._bodyText = Bv = Object.prototype.toString.call(Bv) : this._bodyText = "", this.headers.get("content-type") || (typeof Bv == "string" ? this.headers.set("content-type", "text/plain;charset=UTF-8") : this._bodyBlob && this._bodyBlob.type ? this.headers.set("content-type", this._bodyBlob.type) : lv.searchParams && URLSearchParams.prototype.isPrototypeOf(Bv) && this.headers.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8"));
        }, lv.blob && (this.blob = function() {
          var Bv = _v(this);
          if (Bv)
            return Bv;
          if (this._bodyBlob)
            return Promise.resolve(this._bodyBlob);
          if (this._bodyArrayBuffer)
            return Promise.resolve(new Blob([this._bodyArrayBuffer]));
          if (this._bodyFormData)
            throw new Error("could not read FormData body as blob");
          return Promise.resolve(new Blob([this._bodyText]));
        }, this.arrayBuffer = function() {
          return this._bodyArrayBuffer ? _v(this) || Promise.resolve(this._bodyArrayBuffer) : this.blob().then(wv);
        }), this.text = function() {
          var Bv = _v(this);
          if (Bv)
            return Bv;
          if (this._bodyBlob)
            return xv(this._bodyBlob);
          if (this._bodyArrayBuffer)
            return Promise.resolve(Cv(this._bodyArrayBuffer));
          if (this._bodyFormData)
            throw new Error("could not read FormData body as text");
          return Promise.resolve(this._bodyText);
        }, lv.formData && (this.formData = function() {
          return this.text().then(Vv);
        }), this.json = function() {
          return this.text().then(JSON.parse);
        }, this;
      }
      var Lv = ["DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT"];
      function jv(Bv) {
        var Qv = Bv.toUpperCase();
        return Lv.indexOf(Qv) > -1 ? Qv : Bv;
      }
      function Dv(Bv, Qv) {
        Qv = Qv || {};
        var B1 = Qv.body;
        if (Bv instanceof Dv) {
          if (Bv.bodyUsed)
            throw new TypeError("Already read");
          this.url = Bv.url, this.credentials = Bv.credentials, Qv.headers || (this.headers = new Sv(Bv.headers)), this.method = Bv.method, this.mode = Bv.mode, this.signal = Bv.signal, !B1 && Bv._bodyInit != null && (B1 = Bv._bodyInit, Bv.bodyUsed = !0);
        } else
          this.url = String(Bv);
        if (this.credentials = Qv.credentials || this.credentials || "same-origin", (Qv.headers || !this.headers) && (this.headers = new Sv(Qv.headers)), this.method = jv(Qv.method || this.method || "GET"), this.mode = Qv.mode || this.mode || null, this.signal = Qv.signal || this.signal, this.referrer = null, (this.method === "GET" || this.method === "HEAD") && B1)
          throw new TypeError("Body not allowed for GET or HEAD requests");
        this._initBody(B1);
      }
      Dv.prototype.clone = function() {
        return new Dv(this, { body: this._bodyInit });
      };
      function Vv(Bv) {
        var Qv = new FormData();
        return Bv.trim().split("&").forEach(function(B1) {
          if (B1) {
            var K1 = B1.split("="), j1 = K1.shift().replace(/\+/g, " "), P1 = K1.join("=").replace(/\+/g, " ");
            Qv.append(decodeURIComponent(j1), decodeURIComponent(P1));
          }
        }), Qv;
      }
      function Gv(Bv) {
        var Qv = new Sv(), B1 = Bv.replace(/\r?\n[\t ]+/g, " ");
        return B1.split(/\r?\n/).forEach(function(K1) {
          var j1 = K1.split(":"), P1 = j1.shift().trim();
          if (P1) {
            var D1 = j1.join(":").trim();
            Qv.append(P1, D1);
          }
        }), Qv;
      }
      Ov.call(Dv.prototype);
      function Yv(Bv, Qv) {
        Qv || (Qv = {}), this.type = "default", this.status = Qv.status === void 0 ? 200 : Qv.status, this.ok = this.status >= 200 && this.status < 300, this.statusText = "statusText" in Qv ? Qv.statusText : "OK", this.headers = new Sv(Qv.headers), this.url = Qv.url || "", this._initBody(Bv);
      }
      Ov.call(Yv.prototype), Yv.prototype.clone = function() {
        return new Yv(this._bodyInit, {
          status: this.status,
          statusText: this.statusText,
          headers: new Sv(this.headers),
          url: this.url
        });
      }, Yv.error = function() {
        var Bv = new Yv(null, { status: 0, statusText: "" });
        return Bv.type = "error", Bv;
      };
      var Xv = [301, 302, 303, 307, 308];
      Yv.redirect = function(Bv, Qv) {
        if (Xv.indexOf(Qv) === -1)
          throw new RangeError("Invalid status code");
        return new Yv(null, { status: Qv, headers: { location: Bv } });
      }, sv.DOMException = av.DOMException;
      try {
        new sv.DOMException();
      } catch {
        sv.DOMException = function(Bv, Qv) {
          this.message = Bv, this.name = Qv;
          var B1 = Error(Bv);
          this.stack = B1.stack;
        }, sv.DOMException.prototype = Object.create(Error.prototype), sv.DOMException.prototype.constructor = sv.DOMException;
      }
      function L1(Bv, Qv) {
        return new Promise(function(B1, K1) {
          var j1 = new Dv(Bv, Qv);
          if (j1.signal && j1.signal.aborted)
            return K1(new sv.DOMException("Aborted", "AbortError"));
          var P1 = new XMLHttpRequest();
          function D1() {
            P1.abort();
          }
          P1.onload = function() {
            var I1 = {
              status: P1.status,
              statusText: P1.statusText,
              headers: Gv(P1.getAllResponseHeaders() || "")
            };
            I1.url = "responseURL" in P1 ? P1.responseURL : I1.headers.get("X-Request-URL");
            var F1 = "response" in P1 ? P1.response : P1.responseText;
            B1(new Yv(F1, I1));
          }, P1.onerror = function() {
            K1(new TypeError("Network request failed"));
          }, P1.ontimeout = function() {
            K1(new TypeError("Network request failed"));
          }, P1.onabort = function() {
            K1(new sv.DOMException("Aborted", "AbortError"));
          }, P1.open(j1.method, j1.url, !0), j1.credentials === "include" ? P1.withCredentials = !0 : j1.credentials === "omit" && (P1.withCredentials = !1), "responseType" in P1 && lv.blob && (P1.responseType = "blob"), j1.headers.forEach(function(I1, F1) {
            P1.setRequestHeader(F1, I1);
          }), j1.signal && (j1.signal.addEventListener("abort", D1), P1.onreadystatechange = function() {
            P1.readyState === 4 && j1.signal.removeEventListener("abort", D1);
          }), P1.send(typeof j1._bodyInit > "u" ? null : j1._bodyInit);
        });
      }
      return L1.polyfill = !0, av.fetch || (av.fetch = L1, av.Headers = Sv, av.Request = Dv, av.Response = Yv), sv.Headers = Sv, sv.Request = Dv, sv.Response = Yv, sv.fetch = L1, Object.defineProperty(sv, "__esModule", { value: !0 }), sv;
    })({});
  })(iv), iv.fetch.ponyfill = !0, delete iv.fetch.polyfill;
  var ov = iv;
  tv = ov.fetch, tv.default = ov.fetch, tv.fetch = ov.fetch, tv.Headers = ov.Headers, tv.Request = ov.Request, tv.Response = ov.Response, rv.exports = tv;
})(br$3, br$3.exports);
var Kn$3 = br$3.exports;
const Rn$3 = /* @__PURE__ */ Lr$3(Kn$3), Bm$1 = /* @__PURE__ */ Cl$1({
  __proto__: null,
  default: Rn$3
}, [Kn$3]), pt$2 = (rv) => {
  let tv = {};
  return rv && (typeof Headers < "u" && rv instanceof Headers || Bm$1 && Kn$3.Headers && rv instanceof Kn$3.Headers ? tv = Jp$1(rv) : Array.isArray(rv) ? rv.forEach(([ev, iv]) => {
    ev && iv !== void 0 && (tv[ev] = iv);
  }) : tv = rv), tv;
}, aa$3 = (rv) => rv.replace(/([\s,]|#[^\n\r]+)+/g, " ").trim(), Hm$1 = (rv) => {
  if (!Array.isArray(rv.query)) {
    const iv = rv, ov = [`query=${encodeURIComponent(aa$3(iv.query))}`];
    return rv.variables && ov.push(`variables=${encodeURIComponent(iv.jsonSerializer.stringify(iv.variables))}`), iv.operationName && ov.push(`operationName=${encodeURIComponent(iv.operationName)}`), ov.join("&");
  }
  if (typeof rv.variables < "u" && !Array.isArray(rv.variables))
    throw new Error("Cannot create query with given variable type, array expected");
  const tv = rv, ev = rv.query.reduce((iv, ov, av) => (iv.push({
    query: aa$3(ov),
    variables: tv.variables ? tv.jsonSerializer.stringify(tv.variables[av]) : void 0
  }), iv), []);
  return `query=${encodeURIComponent(tv.jsonSerializer.stringify(ev))}`;
}, qm$1 = (rv) => async (tv) => {
  var ev;
  const { url: iv, query: ov, variables: av, operationName: sv, fetch: lv, fetchOptions: uv, middleware: cv } = tv, dv = { ...tv.headers };
  let hv = "", pv;
  rv === "POST" ? (pv = Gm$1(ov, av, sv, uv.jsonSerializer), typeof pv == "string" && (dv["Content-Type"] = "application/json")) : hv = Hm$1({
    query: ov,
    variables: av,
    operationName: sv,
    jsonSerializer: (ev = uv.jsonSerializer) != null ? ev : Br$2
  });
  const yv = {
    method: rv,
    headers: dv,
    body: pv,
    ...uv
  };
  let Sv = iv, _v = yv;
  if (cv) {
    const Ev = await Promise.resolve(cv({ ...yv, url: iv, operationName: sv, variables: av })), { url: wv, ...xv } = Ev;
    Sv = wv, _v = xv;
  }
  return hv && (Sv = `${Sv}?${hv}`), await lv(Sv, _v);
};
let zm$1 = class {
  constructor(tv, ev = {}) {
    this.url = tv, this.requestConfig = ev, this.rawRequest = async (...iv) => {
      const [ov, av, sv] = iv, lv = Qp$1(ov, av, sv), { headers: uv, fetch: cv = Rn$3, method: dv = "POST", requestMiddleware: hv, responseMiddleware: pv, ...yv } = this.requestConfig, { url: Sv } = this;
      lv.signal !== void 0 && (yv.signal = lv.signal);
      const { operationName: _v } = Ui(lv.query);
      return Mi$2({
        url: Sv,
        query: lv.query,
        variables: lv.variables,
        headers: {
          ...pt$2(Vi$2(uv)),
          ...pt$2(lv.requestHeaders)
        },
        operationName: _v,
        fetch: cv,
        method: dv,
        fetchOptions: yv,
        middleware: hv
      }).then((Ev) => (pv && pv(Ev), Ev)).catch((Ev) => {
        throw pv && pv(Ev), Ev;
      });
    };
  }
  async request(tv, ...ev) {
    const [iv, ov] = ev, av = Yp$1(tv, iv, ov), { headers: sv, fetch: lv = Rn$3, method: uv = "POST", requestMiddleware: cv, responseMiddleware: dv, ...hv } = this.requestConfig, { url: pv } = this;
    av.signal !== void 0 && (hv.signal = av.signal);
    const { query: yv, operationName: Sv } = Ui(av.document);
    return Mi$2({
      url: pv,
      query: yv,
      variables: av.variables,
      headers: {
        ...pt$2(Vi$2(sv)),
        ...pt$2(av.requestHeaders)
      },
      operationName: Sv,
      fetch: lv,
      method: uv,
      fetchOptions: hv,
      middleware: cv
    }).then((_v) => (dv && dv(_v), _v.data)).catch((_v) => {
      throw dv && dv(_v), _v;
    });
  }
  // prettier-ignore
  batchRequests(tv, ev) {
    var iv;
    const ov = Xp$1(tv, ev), { headers: av, ...sv } = this.requestConfig;
    ov.signal !== void 0 && (sv.signal = ov.signal);
    const lv = ov.documents.map(({ document: cv }) => Ui(cv).query), uv = ov.documents.map(({ variables: cv }) => cv);
    return Mi$2({
      url: this.url,
      query: lv,
      // @ts-expect-error TODO reconcile batch variables into system.
      variables: uv,
      headers: {
        ...pt$2(Vi$2(av)),
        ...pt$2(ov.requestHeaders)
      },
      operationName: void 0,
      fetch: (iv = this.requestConfig.fetch) != null ? iv : Rn$3,
      method: this.requestConfig.method || "POST",
      fetchOptions: sv,
      middleware: this.requestConfig.requestMiddleware
    }).then((cv) => (this.requestConfig.responseMiddleware && this.requestConfig.responseMiddleware(cv), cv.data)).catch((cv) => {
      throw this.requestConfig.responseMiddleware && this.requestConfig.responseMiddleware(cv), cv;
    });
  }
  setHeaders(tv) {
    return this.requestConfig.headers = tv, this;
  }
  /**
   * Attach a header to the client. All subsequent requests will have this header.
   */
  setHeader(tv, ev) {
    const { headers: iv } = this.requestConfig;
    return iv ? iv[tv] = ev : this.requestConfig.headers = { [tv]: ev }, this;
  }
  /**
   * Change the client endpoint. All subsequent requests will send to this endpoint.
   */
  setEndpoint(tv) {
    return this.url = tv, this;
  }
};
const Mi$2 = async (rv) => {
  var tv, ev;
  const { query: iv, variables: ov, fetchOptions: av } = rv, sv = qm$1(Wp$1((tv = rv.method) != null ? tv : "post")), lv = Array.isArray(rv.query), uv = await sv(rv), cv = await Km$1(uv, (ev = av.jsonSerializer) != null ? ev : Br$2), dv = Array.isArray(cv) ? !cv.some(({ data: pv }) => !pv) : !!cv.data, hv = Array.isArray(cv) || !cv.errors || Array.isArray(cv.errors) && !cv.errors.length || av.errorPolicy === "all" || av.errorPolicy === "ignore";
  if (uv.ok && hv && dv) {
    const { errors: pv, ...yv } = cv, Sv = av.errorPolicy === "ignore" ? yv : cv;
    return {
      ...lv ? { data: Sv } : Sv,
      headers: uv.headers,
      status: uv.status
    };
  } else {
    const pv = typeof cv == "string" ? {
      error: cv
    } : cv;
    throw new zt$2(
      // @ts-expect-error TODO
      { ...pv, status: uv.status, headers: uv.headers },
      { query: iv, variables: ov }
    );
  }
}, Gm$1 = (rv, tv, ev, iv) => {
  const ov = iv ?? Br$2;
  if (!Array.isArray(rv))
    return ov.stringify({ query: rv, variables: tv, operationName: ev });
  if (typeof tv < "u" && !Array.isArray(tv))
    throw new Error("Cannot create request body with given variable type, array expected");
  const av = rv.reduce((sv, lv, uv) => (sv.push({ query: lv, variables: tv ? tv[uv] : void 0 }), sv), []);
  return ov.stringify(av);
}, Km$1 = async (rv, tv) => {
  let ev;
  return rv.headers.forEach((iv, ov) => {
    ov.toLowerCase() === "content-type" && (ev = iv);
  }), ev && (ev.toLowerCase().startsWith("application/json") || ev.toLowerCase().startsWith("application/graphql+json") || ev.toLowerCase().startsWith("application/graphql-response+json")) ? tv.parse(await rv.text()) : rv.text();
}, Vi$2 = (rv) => typeof rv == "function" ? rv() : rv;
let Wm$1 = class extends Et$2 {
  constructor() {
    super(
      "EVENT_CHAT_ROOM_TOKEN_ERROR",
      "Error getting chat room connection token"
    );
  }
}, zr$2 = class mN {
  constructor(tv) {
    R$1(this, "root", Af$1(this)), R$1(this, "token"), this.root.setProps(tv);
  }
  static toDomain(tv) {
    const ev = {
      token: tv.token
    };
    return new mN(ev);
  }
  toPrimitives() {
    const { root: tv, ...ev } = this;
    return {
      ...ev
    };
  }
};
const Jm$1 = ln$3.apiUrls.graphql;
let Ym$1 = class {
  constructor() {
    R$1(this, "client"), this.client = new zm$1(Jm$1);
  }
  async getChatRoom(tv) {
    var ev;
    const { getChatRoomToken: iv } = await this.client.request(
      Oo$3,
      {
        data: {
          account: tv.account,
          idEvent: tv.eventId,
          userName: tv.userName
        }
      }
    );
    this.propagateGraphqlErrorIfExists(
      iv
    );
    const ov = (ev = iv.data) == null ? void 0 : ev.token;
    if (!ov)
      throw new Wm$1();
    return zr$2.toDomain({ token: ov });
  }
  propagateGraphqlErrorIfExists(tv) {
    if (tv.__typename === "ErrorGeneral")
      throw new Error(tv.message);
  }
}, Qm$1 = class {
  constructor(tv) {
    R$1(this, "account"), this.eventChatRoomRepository = tv;
  }
  async get(tv) {
    this.validateAccount();
    try {
      return await this.eventChatRoomRepository.getChatRoom({
        ...tv,
        account: this.account
      });
    } catch (ev) {
      throw new xa$3(ev);
    }
  }
  setAccount(tv) {
    this.account = tv;
  }
  validateAccount() {
    if (!this.account)
      throw new su$2();
  }
};
const Xm$1 = new Ym$1();
new Qm$1(
  Xm$1
);
const { coreLogger: rg$1 } = xt$3();
qe$1.withPrefix(rg$1, "useConnectChatSocket");
/**
 * @license
 * Copyright 2019 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const Fn$3 = globalThis, Wr$1 = Fn$3.ShadowRoot && (Fn$3.ShadyCSS === void 0 || Fn$3.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, Jr$3 = Symbol(), la$3 = /* @__PURE__ */ new WeakMap();
let fl$1 = class {
  constructor(tv, ev, iv) {
    if (this._$cssResult$ = !0, iv !== Jr$3)
      throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
    this.cssText = tv, this.t = ev;
  }
  get styleSheet() {
    let tv = this.o;
    const ev = this.t;
    if (Wr$1 && tv === void 0) {
      const iv = ev !== void 0 && ev.length === 1;
      iv && (tv = la$3.get(ev)), tv === void 0 && ((this.o = tv = new CSSStyleSheet()).replaceSync(this.cssText), iv && la$3.set(ev, tv));
    }
    return tv;
  }
  toString() {
    return this.cssText;
  }
};
const dg$1 = (rv) => new fl$1(typeof rv == "string" ? rv : rv + "", void 0, Jr$3), fg$1 = (rv, ...tv) => {
  const ev = rv.length === 1 ? rv[0] : tv.reduce((iv, ov, av) => iv + ((sv) => {
    if (sv._$cssResult$ === !0)
      return sv.cssText;
    if (typeof sv == "number")
      return sv;
    throw Error("Value passed to 'css' function must be a 'css' function result: " + sv + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
  })(ov) + rv[av + 1], rv[0]);
  return new fl$1(ev, rv, Jr$3);
}, hg$1 = (rv, tv) => {
  if (Wr$1)
    rv.adoptedStyleSheets = tv.map((ev) => ev instanceof CSSStyleSheet ? ev : ev.styleSheet);
  else
    for (const ev of tv) {
      const iv = document.createElement("style"), ov = Fn$3.litNonce;
      ov !== void 0 && iv.setAttribute("nonce", ov), iv.textContent = ev.cssText, rv.appendChild(iv);
    }
}, ua$3 = Wr$1 ? (rv) => rv : (rv) => rv instanceof CSSStyleSheet ? ((tv) => {
  let ev = "";
  for (const iv of tv.cssRules)
    ev += iv.cssText;
  return dg$1(ev);
})(rv) : rv;
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const { is: pg$1, defineProperty: mg$1, getOwnPropertyDescriptor: gg$1, getOwnPropertyNames: vg$1, getOwnPropertySymbols: kg$1, getPrototypeOf: yg$1 } = Object, Ve$2 = globalThis, ca$3 = Ve$2.trustedTypes, _g$1 = ca$3 ? ca$3.emptyScript : "", ji$1 = Ve$2.reactiveElementPolyfillSupport, Gt$3 = (rv, tv) => rv, Nr$1 = { toAttribute(rv, tv) {
  switch (tv) {
    case Boolean:
      rv = rv ? _g$1 : null;
      break;
    case Object:
    case Array:
      rv = rv == null ? rv : JSON.stringify(rv);
  }
  return rv;
}, fromAttribute(rv, tv) {
  let ev = rv;
  switch (tv) {
    case Boolean:
      ev = rv !== null;
      break;
    case Number:
      ev = rv === null ? null : Number(rv);
      break;
    case Object:
    case Array:
      try {
        ev = JSON.parse(rv);
      } catch {
        ev = null;
      }
  }
  return ev;
} }, hl$1 = (rv, tv) => !pg$1(rv, tv), da$3 = { attribute: !0, type: String, converter: Nr$1, reflect: !1, hasChanged: hl$1 };
Symbol.metadata != null || (Symbol.metadata = Symbol("metadata")), Ve$2.litPropertyMetadata != null || (Ve$2.litPropertyMetadata = /* @__PURE__ */ new WeakMap());
let gt$2 = class extends HTMLElement {
  static addInitializer(tv) {
    var ev;
    this._$Ei(), ((ev = this.l) != null ? ev : this.l = []).push(tv);
  }
  static get observedAttributes() {
    return this.finalize(), this._$Eh && [...this._$Eh.keys()];
  }
  static createProperty(tv, ev = da$3) {
    if (ev.state && (ev.attribute = !1), this._$Ei(), this.elementProperties.set(tv, ev), !ev.noAccessor) {
      const iv = Symbol(), ov = this.getPropertyDescriptor(tv, iv, ev);
      ov !== void 0 && mg$1(this.prototype, tv, ov);
    }
  }
  static getPropertyDescriptor(tv, ev, iv) {
    var ov;
    const { get: av, set: sv } = (ov = gg$1(this.prototype, tv)) != null ? ov : { get() {
      return this[ev];
    }, set(lv) {
      this[ev] = lv;
    } };
    return { get() {
      return av == null ? void 0 : av.call(this);
    }, set(lv) {
      const uv = av == null ? void 0 : av.call(this);
      sv.call(this, lv), this.requestUpdate(tv, uv, iv);
    }, configurable: !0, enumerable: !0 };
  }
  static getPropertyOptions(tv) {
    var ev;
    return (ev = this.elementProperties.get(tv)) != null ? ev : da$3;
  }
  static _$Ei() {
    if (this.hasOwnProperty(Gt$3("elementProperties")))
      return;
    const tv = yg$1(this);
    tv.finalize(), tv.l !== void 0 && (this.l = [...tv.l]), this.elementProperties = new Map(tv.elementProperties);
  }
  static finalize() {
    if (this.hasOwnProperty(Gt$3("finalized")))
      return;
    if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(Gt$3("properties"))) {
      const ev = this.properties, iv = [...vg$1(ev), ...kg$1(ev)];
      for (const ov of iv)
        this.createProperty(ov, ev[ov]);
    }
    const tv = this[Symbol.metadata];
    if (tv !== null) {
      const ev = litPropertyMetadata.get(tv);
      if (ev !== void 0)
        for (const [iv, ov] of ev)
          this.elementProperties.set(iv, ov);
    }
    this._$Eh = /* @__PURE__ */ new Map();
    for (const [ev, iv] of this.elementProperties) {
      const ov = this._$Eu(ev, iv);
      ov !== void 0 && this._$Eh.set(ov, ev);
    }
    this.elementStyles = this.finalizeStyles(this.styles);
  }
  static finalizeStyles(tv) {
    const ev = [];
    if (Array.isArray(tv)) {
      const iv = new Set(tv.flat(1 / 0).reverse());
      for (const ov of iv)
        ev.unshift(ua$3(ov));
    } else
      tv !== void 0 && ev.push(ua$3(tv));
    return ev;
  }
  static _$Eu(tv, ev) {
    const iv = ev.attribute;
    return iv === !1 ? void 0 : typeof iv == "string" ? iv : typeof tv == "string" ? tv.toLowerCase() : void 0;
  }
  constructor() {
    super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
  }
  _$Ev() {
    var tv;
    this._$ES = new Promise((ev) => this.enableUpdating = ev), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), (tv = this.constructor.l) == null || tv.forEach((ev) => ev(this));
  }
  addController(tv) {
    var ev, iv;
    ((ev = this._$EO) != null ? ev : this._$EO = /* @__PURE__ */ new Set()).add(tv), this.renderRoot !== void 0 && this.isConnected && ((iv = tv.hostConnected) == null || iv.call(tv));
  }
  removeController(tv) {
    var ev;
    (ev = this._$EO) == null || ev.delete(tv);
  }
  _$E_() {
    const tv = /* @__PURE__ */ new Map(), ev = this.constructor.elementProperties;
    for (const iv of ev.keys())
      this.hasOwnProperty(iv) && (tv.set(iv, this[iv]), delete this[iv]);
    tv.size > 0 && (this._$Ep = tv);
  }
  createRenderRoot() {
    var tv;
    const ev = (tv = this.shadowRoot) != null ? tv : this.attachShadow(this.constructor.shadowRootOptions);
    return hg$1(ev, this.constructor.elementStyles), ev;
  }
  connectedCallback() {
    var tv;
    this.renderRoot != null || (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), (tv = this._$EO) == null || tv.forEach((ev) => {
      var iv;
      return (iv = ev.hostConnected) == null ? void 0 : iv.call(ev);
    });
  }
  enableUpdating(tv) {
  }
  disconnectedCallback() {
    var tv;
    (tv = this._$EO) == null || tv.forEach((ev) => {
      var iv;
      return (iv = ev.hostDisconnected) == null ? void 0 : iv.call(ev);
    });
  }
  attributeChangedCallback(tv, ev, iv) {
    this._$AK(tv, iv);
  }
  _$EC(tv, ev) {
    var iv;
    const ov = this.constructor.elementProperties.get(tv), av = this.constructor._$Eu(tv, ov);
    if (av !== void 0 && ov.reflect === !0) {
      const sv = (((iv = ov.converter) == null ? void 0 : iv.toAttribute) !== void 0 ? ov.converter : Nr$1).toAttribute(ev, ov.type);
      this._$Em = tv, sv == null ? this.removeAttribute(av) : this.setAttribute(av, sv), this._$Em = null;
    }
  }
  _$AK(tv, ev) {
    var iv;
    const ov = this.constructor, av = ov._$Eh.get(tv);
    if (av !== void 0 && this._$Em !== av) {
      const sv = ov.getPropertyOptions(av), lv = typeof sv.converter == "function" ? { fromAttribute: sv.converter } : ((iv = sv.converter) == null ? void 0 : iv.fromAttribute) !== void 0 ? sv.converter : Nr$1;
      this._$Em = av, this[av] = lv.fromAttribute(ev, sv.type), this._$Em = null;
    }
  }
  requestUpdate(tv, ev, iv) {
    var ov;
    if (tv !== void 0) {
      if (iv != null || (iv = this.constructor.getPropertyOptions(tv)), !((ov = iv.hasChanged) != null ? ov : hl$1)(this[tv], ev))
        return;
      this.P(tv, ev, iv);
    }
    this.isUpdatePending === !1 && (this._$ES = this._$ET());
  }
  P(tv, ev, iv) {
    var ov;
    this._$AL.has(tv) || this._$AL.set(tv, ev), iv.reflect === !0 && this._$Em !== tv && ((ov = this._$Ej) != null ? ov : this._$Ej = /* @__PURE__ */ new Set()).add(tv);
  }
  async _$ET() {
    this.isUpdatePending = !0;
    try {
      await this._$ES;
    } catch (ev) {
      Promise.reject(ev);
    }
    const tv = this.scheduleUpdate();
    return tv != null && await tv, !this.isUpdatePending;
  }
  scheduleUpdate() {
    return this.performUpdate();
  }
  performUpdate() {
    var tv;
    if (!this.isUpdatePending)
      return;
    if (!this.hasUpdated) {
      if (this.renderRoot != null || (this.renderRoot = this.createRenderRoot()), this._$Ep) {
        for (const [av, sv] of this._$Ep)
          this[av] = sv;
        this._$Ep = void 0;
      }
      const ov = this.constructor.elementProperties;
      if (ov.size > 0)
        for (const [av, sv] of ov)
          sv.wrapped !== !0 || this._$AL.has(av) || this[av] === void 0 || this.P(av, this[av], sv);
    }
    let ev = !1;
    const iv = this._$AL;
    try {
      ev = this.shouldUpdate(iv), ev ? (this.willUpdate(iv), (tv = this._$EO) == null || tv.forEach((ov) => {
        var av;
        return (av = ov.hostUpdate) == null ? void 0 : av.call(ov);
      }), this.update(iv)) : this._$EU();
    } catch (ov) {
      throw ev = !1, this._$EU(), ov;
    }
    ev && this._$AE(iv);
  }
  willUpdate(tv) {
  }
  _$AE(tv) {
    var ev;
    (ev = this._$EO) == null || ev.forEach((iv) => {
      var ov;
      return (ov = iv.hostUpdated) == null ? void 0 : ov.call(iv);
    }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(tv)), this.updated(tv);
  }
  _$EU() {
    this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;
  }
  get updateComplete() {
    return this.getUpdateComplete();
  }
  getUpdateComplete() {
    return this._$ES;
  }
  shouldUpdate(tv) {
    return !0;
  }
  update(tv) {
    this._$Ej && (this._$Ej = this._$Ej.forEach((ev) => this._$EC(ev, this[ev]))), this._$EU();
  }
  updated(tv) {
  }
  firstUpdated(tv) {
  }
};
var Na$3;
gt$2.elementStyles = [], gt$2.shadowRootOptions = { mode: "open" }, gt$2[Gt$3("elementProperties")] = /* @__PURE__ */ new Map(), gt$2[Gt$3("finalized")] = /* @__PURE__ */ new Map(), ji$1 == null || ji$1({ ReactiveElement: gt$2 }), ((Na$3 = Ve$2.reactiveElementVersions) != null ? Na$3 : Ve$2.reactiveElementVersions = []).push("2.0.4");
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const Kt$2 = globalThis, Wn$2 = Kt$2.trustedTypes, fa$2 = Wn$2 ? Wn$2.createPolicy("lit-html", { createHTML: (rv) => rv }) : void 0, pl$1 = "$lit$", Le$3 = `lit$${Math.random().toFixed(9).slice(2)}$`, ml$1 = "?" + Le$3, bg$1 = `<${ml$1}>`, st$1 = document, sn$2 = () => st$1.createComment(""), an$1 = (rv) => rv === null || typeof rv != "object" && typeof rv != "function", Yr$2 = Array.isArray, Ng$1 = (rv) => Yr$2(rv) || typeof (rv == null ? void 0 : rv[Symbol.iterator]) == "function", Bi$2 = `[ 	
\f\r]`, Mt$3 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, ha$3 = /-->/g, pa$2 = />/g, We$2 = RegExp(`>|${Bi$2}(?:([^\\s"'>=/]+)(${Bi$2}*=${Bi$2}*(?:[^ 	
\f\r"'\`<>=]|("|')|))|$)`, "g"), ma$2 = /'/g, ga$3 = /"/g, gl = /^(?:script|style|textarea|title)$/i, Sg$1 = (rv) => (tv, ...ev) => ({ _$litType$: rv, strings: tv, values: ev }), Eg$1 = Sg$1(1), Nt$1 = Symbol.for("lit-noChange"), J$2 = Symbol.for("lit-nothing"), va$3 = /* @__PURE__ */ new WeakMap(), Qe$2 = st$1.createTreeWalker(st$1, 129);
function vl(rv, tv) {
  if (!Yr$2(rv) || !rv.hasOwnProperty("raw"))
    throw Error("invalid template strings array");
  return fa$2 !== void 0 ? fa$2.createHTML(tv) : tv;
}
const Ag$1 = (rv, tv) => {
  const ev = rv.length - 1, iv = [];
  let ov, av = tv === 2 ? "<svg>" : tv === 3 ? "<math>" : "", sv = Mt$3;
  for (let lv = 0; lv < ev; lv++) {
    const uv = rv[lv];
    let cv, dv, hv = -1, pv = 0;
    for (; pv < uv.length && (sv.lastIndex = pv, dv = sv.exec(uv), dv !== null); )
      pv = sv.lastIndex, sv === Mt$3 ? dv[1] === "!--" ? sv = ha$3 : dv[1] !== void 0 ? sv = pa$2 : dv[2] !== void 0 ? (gl.test(dv[2]) && (ov = RegExp("</" + dv[2], "g")), sv = We$2) : dv[3] !== void 0 && (sv = We$2) : sv === We$2 ? dv[0] === ">" ? (sv = ov ?? Mt$3, hv = -1) : dv[1] === void 0 ? hv = -2 : (hv = sv.lastIndex - dv[2].length, cv = dv[1], sv = dv[3] === void 0 ? We$2 : dv[3] === '"' ? ga$3 : ma$2) : sv === ga$3 || sv === ma$2 ? sv = We$2 : sv === ha$3 || sv === pa$2 ? sv = Mt$3 : (sv = We$2, ov = void 0);
    const yv = sv === We$2 && rv[lv + 1].startsWith("/>") ? " " : "";
    av += sv === Mt$3 ? uv + bg$1 : hv >= 0 ? (iv.push(cv), uv.slice(0, hv) + pl$1 + uv.slice(hv) + Le$3 + yv) : uv + Le$3 + (hv === -2 ? lv : yv);
  }
  return [vl(rv, av + (rv[ev] || "<?>") + (tv === 2 ? "</svg>" : tv === 3 ? "</math>" : "")), iv];
};
let on$2 = class gN {
  constructor({ strings: tv, _$litType$: ev }, iv) {
    let ov;
    this.parts = [];
    let av = 0, sv = 0;
    const lv = tv.length - 1, uv = this.parts, [cv, dv] = Ag$1(tv, ev);
    if (this.el = gN.createElement(cv, iv), Qe$2.currentNode = this.el.content, ev === 2 || ev === 3) {
      const hv = this.el.content.firstChild;
      hv.replaceWith(...hv.childNodes);
    }
    for (; (ov = Qe$2.nextNode()) !== null && uv.length < lv; ) {
      if (ov.nodeType === 1) {
        if (ov.hasAttributes())
          for (const hv of ov.getAttributeNames())
            if (hv.endsWith(pl$1)) {
              const pv = dv[sv++], yv = ov.getAttribute(hv).split(Le$3), Sv = /([.?@])?(.*)/.exec(pv);
              uv.push({ type: 1, index: av, name: Sv[2], strings: yv, ctor: Sv[1] === "." ? wg$1 : Sv[1] === "?" ? Tg$1 : Sv[1] === "@" ? Cg$1 : yi$3 }), ov.removeAttribute(hv);
            } else
              hv.startsWith(Le$3) && (uv.push({ type: 6, index: av }), ov.removeAttribute(hv));
        if (gl.test(ov.tagName)) {
          const hv = ov.textContent.split(Le$3), pv = hv.length - 1;
          if (pv > 0) {
            ov.textContent = Wn$2 ? Wn$2.emptyScript : "";
            for (let yv = 0; yv < pv; yv++)
              ov.append(hv[yv], sn$2()), Qe$2.nextNode(), uv.push({ type: 2, index: ++av });
            ov.append(hv[pv], sn$2());
          }
        }
      } else if (ov.nodeType === 8)
        if (ov.data === ml$1)
          uv.push({ type: 2, index: av });
        else {
          let hv = -1;
          for (; (hv = ov.data.indexOf(Le$3, hv + 1)) !== -1; )
            uv.push({ type: 7, index: av }), hv += Le$3.length - 1;
        }
      av++;
    }
  }
  static createElement(tv, ev) {
    const iv = st$1.createElement("template");
    return iv.innerHTML = tv, iv;
  }
};
function St$1(rv, tv, ev = rv, iv) {
  var ov, av, sv;
  if (tv === Nt$1)
    return tv;
  let lv = iv !== void 0 ? (ov = ev.o) == null ? void 0 : ov[iv] : ev.l;
  const uv = an$1(tv) ? void 0 : tv._$litDirective$;
  return (lv == null ? void 0 : lv.constructor) !== uv && ((av = lv == null ? void 0 : lv._$AO) == null || av.call(lv, !1), uv === void 0 ? lv = void 0 : (lv = new uv(rv), lv._$AT(rv, ev, iv)), iv !== void 0 ? ((sv = ev.o) != null ? sv : ev.o = [])[iv] = lv : ev.l = lv), lv !== void 0 && (tv = St$1(rv, lv._$AS(rv, tv.values), lv, iv)), tv;
}
let Og$1 = class {
  constructor(tv, ev) {
    this._$AV = [], this._$AN = void 0, this._$AD = tv, this._$AM = ev;
  }
  get parentNode() {
    return this._$AM.parentNode;
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  u(tv) {
    var ev;
    const { el: { content: iv }, parts: ov } = this._$AD, av = ((ev = tv == null ? void 0 : tv.creationScope) != null ? ev : st$1).importNode(iv, !0);
    Qe$2.currentNode = av;
    let sv = Qe$2.nextNode(), lv = 0, uv = 0, cv = ov[0];
    for (; cv !== void 0; ) {
      if (lv === cv.index) {
        let dv;
        cv.type === 2 ? dv = new mn$3(sv, sv.nextSibling, this, tv) : cv.type === 1 ? dv = new cv.ctor(sv, cv.name, cv.strings, this, tv) : cv.type === 6 && (dv = new xg$1(sv, this, tv)), this._$AV.push(dv), cv = ov[++uv];
      }
      lv !== (cv == null ? void 0 : cv.index) && (sv = Qe$2.nextNode(), lv++);
    }
    return Qe$2.currentNode = st$1, av;
  }
  p(tv) {
    let ev = 0;
    for (const iv of this._$AV)
      iv !== void 0 && (iv.strings !== void 0 ? (iv._$AI(tv, iv, ev), ev += iv.strings.length - 2) : iv._$AI(tv[ev])), ev++;
  }
}, mn$3 = class vN {
  get _$AU() {
    var tv, ev;
    return (ev = (tv = this._$AM) == null ? void 0 : tv._$AU) != null ? ev : this.v;
  }
  constructor(tv, ev, iv, ov) {
    var av;
    this.type = 2, this._$AH = J$2, this._$AN = void 0, this._$AA = tv, this._$AB = ev, this._$AM = iv, this.options = ov, this.v = (av = ov == null ? void 0 : ov.isConnected) != null ? av : !0;
  }
  get parentNode() {
    let tv = this._$AA.parentNode;
    const ev = this._$AM;
    return ev !== void 0 && (tv == null ? void 0 : tv.nodeType) === 11 && (tv = ev.parentNode), tv;
  }
  get startNode() {
    return this._$AA;
  }
  get endNode() {
    return this._$AB;
  }
  _$AI(tv, ev = this) {
    tv = St$1(this, tv, ev), an$1(tv) ? tv === J$2 || tv == null || tv === "" ? (this._$AH !== J$2 && this._$AR(), this._$AH = J$2) : tv !== this._$AH && tv !== Nt$1 && this._(tv) : tv._$litType$ !== void 0 ? this.$(tv) : tv.nodeType !== void 0 ? this.T(tv) : Ng$1(tv) ? this.k(tv) : this._(tv);
  }
  O(tv) {
    return this._$AA.parentNode.insertBefore(tv, this._$AB);
  }
  T(tv) {
    this._$AH !== tv && (this._$AR(), this._$AH = this.O(tv));
  }
  _(tv) {
    this._$AH !== J$2 && an$1(this._$AH) ? this._$AA.nextSibling.data = tv : this.T(st$1.createTextNode(tv)), this._$AH = tv;
  }
  $(tv) {
    var ev;
    const { values: iv, _$litType$: ov } = tv, av = typeof ov == "number" ? this._$AC(tv) : (ov.el === void 0 && (ov.el = on$2.createElement(vl(ov.h, ov.h[0]), this.options)), ov);
    if (((ev = this._$AH) == null ? void 0 : ev._$AD) === av)
      this._$AH.p(iv);
    else {
      const sv = new Og$1(av, this), lv = sv.u(this.options);
      sv.p(iv), this.T(lv), this._$AH = sv;
    }
  }
  _$AC(tv) {
    let ev = va$3.get(tv.strings);
    return ev === void 0 && va$3.set(tv.strings, ev = new on$2(tv)), ev;
  }
  k(tv) {
    Yr$2(this._$AH) || (this._$AH = [], this._$AR());
    const ev = this._$AH;
    let iv, ov = 0;
    for (const av of tv)
      ov === ev.length ? ev.push(iv = new vN(this.O(sn$2()), this.O(sn$2()), this, this.options)) : iv = ev[ov], iv._$AI(av), ov++;
    ov < ev.length && (this._$AR(iv && iv._$AB.nextSibling, ov), ev.length = ov);
  }
  _$AR(tv = this._$AA.nextSibling, ev) {
    var iv;
    for ((iv = this._$AP) == null ? void 0 : iv.call(this, !1, !0, ev); tv && tv !== this._$AB; ) {
      const ov = tv.nextSibling;
      tv.remove(), tv = ov;
    }
  }
  setConnected(tv) {
    var ev;
    this._$AM === void 0 && (this.v = tv, (ev = this._$AP) == null || ev.call(this, tv));
  }
}, yi$3 = class {
  get tagName() {
    return this.element.tagName;
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  constructor(tv, ev, iv, ov, av) {
    this.type = 1, this._$AH = J$2, this._$AN = void 0, this.element = tv, this.name = ev, this._$AM = ov, this.options = av, iv.length > 2 || iv[0] !== "" || iv[1] !== "" ? (this._$AH = Array(iv.length - 1).fill(new String()), this.strings = iv) : this._$AH = J$2;
  }
  _$AI(tv, ev = this, iv, ov) {
    const av = this.strings;
    let sv = !1;
    if (av === void 0)
      tv = St$1(this, tv, ev, 0), sv = !an$1(tv) || tv !== this._$AH && tv !== Nt$1, sv && (this._$AH = tv);
    else {
      const lv = tv;
      let uv, cv;
      for (tv = av[0], uv = 0; uv < av.length - 1; uv++)
        cv = St$1(this, lv[iv + uv], ev, uv), cv === Nt$1 && (cv = this._$AH[uv]), sv || (sv = !an$1(cv) || cv !== this._$AH[uv]), cv === J$2 ? tv = J$2 : tv !== J$2 && (tv += (cv ?? "") + av[uv + 1]), this._$AH[uv] = cv;
    }
    sv && !ov && this.j(tv);
  }
  j(tv) {
    tv === J$2 ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, tv ?? "");
  }
}, wg$1 = class extends yi$3 {
  constructor() {
    super(...arguments), this.type = 3;
  }
  j(tv) {
    this.element[this.name] = tv === J$2 ? void 0 : tv;
  }
}, Tg$1 = class extends yi$3 {
  constructor() {
    super(...arguments), this.type = 4;
  }
  j(tv) {
    this.element.toggleAttribute(this.name, !!tv && tv !== J$2);
  }
}, Cg$1 = class extends yi$3 {
  constructor(tv, ev, iv, ov, av) {
    super(tv, ev, iv, ov, av), this.type = 5;
  }
  _$AI(tv, ev = this) {
    var iv;
    if ((tv = (iv = St$1(this, tv, ev, 0)) != null ? iv : J$2) === Nt$1)
      return;
    const ov = this._$AH, av = tv === J$2 && ov !== J$2 || tv.capture !== ov.capture || tv.once !== ov.once || tv.passive !== ov.passive, sv = tv !== J$2 && (ov === J$2 || av);
    av && this.element.removeEventListener(this.name, this, ov), sv && this.element.addEventListener(this.name, this, tv), this._$AH = tv;
  }
  handleEvent(tv) {
    var ev, iv;
    typeof this._$AH == "function" ? this._$AH.call((iv = (ev = this.options) == null ? void 0 : ev.host) != null ? iv : this.element, tv) : this._$AH.handleEvent(tv);
  }
}, xg$1 = class {
  constructor(tv, ev, iv) {
    this.element = tv, this.type = 6, this._$AN = void 0, this._$AM = ev, this.options = iv;
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  _$AI(tv) {
    St$1(this, tv);
  }
};
const Hi$2 = Kt$2.litHtmlPolyfillSupport;
var Sa$3;
Hi$2 == null || Hi$2(on$2, mn$3), ((Sa$3 = Kt$2.litHtmlVersions) != null ? Sa$3 : Kt$2.litHtmlVersions = []).push("3.2.0");
const Rg$1 = (rv, tv, ev) => {
  var iv, ov;
  const av = (iv = ev == null ? void 0 : ev.renderBefore) != null ? iv : tv;
  let sv = av._$litPart$;
  if (sv === void 0) {
    const lv = (ov = ev == null ? void 0 : ev.renderBefore) != null ? ov : null;
    av._$litPart$ = sv = new mn$3(tv.insertBefore(sn$2(), lv), lv, void 0, ev ?? {});
  }
  return sv._$AI(rv), sv;
};
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
let Wt$3 = class extends gt$2 {
  constructor() {
    super(...arguments), this.renderOptions = { host: this }, this.o = void 0;
  }
  createRenderRoot() {
    var tv;
    const ev = super.createRenderRoot();
    return (tv = this.renderOptions).renderBefore != null || (tv.renderBefore = ev.firstChild), ev;
  }
  update(tv) {
    const ev = this.render();
    this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(tv), this.o = Rg$1(ev, this.renderRoot, this.renderOptions);
  }
  connectedCallback() {
    var tv;
    super.connectedCallback(), (tv = this.o) == null || tv.setConnected(!0);
  }
  disconnectedCallback() {
    var tv;
    super.disconnectedCallback(), (tv = this.o) == null || tv.setConnected(!1);
  }
  render() {
    return Nt$1;
  }
};
var Ea$3;
Wt$3._$litElement$ = !0, Wt$3.finalized = !0, (Ea$3 = globalThis.litElementHydrateSupport) == null || Ea$3.call(globalThis, { LitElement: Wt$3 });
const qi$3 = globalThis.litElementPolyfillSupport;
qi$3 == null || qi$3({ LitElement: Wt$3 });
var Aa$2;
((Aa$2 = globalThis.litElementVersions) != null ? Aa$2 : globalThis.litElementVersions = []).push("4.1.0");
/**
 * @license
 * Copyright 2020 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const Fg$1 = (rv) => rv.strings === void 0;
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const Dg$1 = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 }, Ig$1 = (rv) => (...tv) => ({ _$litDirective$: rv, values: tv });
let Lg$1 = class {
  constructor(tv) {
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  _$AT(tv, ev, iv) {
    this.t = tv, this._$AM = ev, this.i = iv;
  }
  _$AS(tv, ev) {
    return this.update(tv, ev);
  }
  update(tv, ev) {
    return this.render(...ev);
  }
};
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const Jt$2 = (rv, tv) => {
  var ev;
  const iv = rv._$AN;
  if (iv === void 0)
    return !1;
  for (const ov of iv)
    (ev = ov._$AO) == null || ev.call(ov, tv, !1), Jt$2(ov, tv);
  return !0;
}, Jn$3 = (rv) => {
  let tv, ev;
  do {
    if ((tv = rv._$AM) === void 0)
      break;
    ev = tv._$AN, ev.delete(rv), rv = tv;
  } while ((ev == null ? void 0 : ev.size) === 0);
}, kl$1 = (rv) => {
  for (let tv; tv = rv._$AM; rv = tv) {
    let ev = tv._$AN;
    if (ev === void 0)
      tv._$AN = ev = /* @__PURE__ */ new Set();
    else if (ev.has(rv))
      break;
    ev.add(rv), Ug$1(tv);
  }
};
function Pg$1(rv) {
  this._$AN !== void 0 ? (Jn$3(this), this._$AM = rv, kl$1(this)) : this._$AM = rv;
}
function $g$1(rv, tv = !1, ev = 0) {
  const iv = this._$AH, ov = this._$AN;
  if (ov !== void 0 && ov.size !== 0)
    if (tv)
      if (Array.isArray(iv))
        for (let av = ev; av < iv.length; av++)
          Jt$2(iv[av], !1), Jn$3(iv[av]);
      else
        iv != null && (Jt$2(iv, !1), Jn$3(iv));
    else
      Jt$2(this, rv);
}
const Ug$1 = (rv) => {
  rv.type == Dg$1.CHILD && (rv._$AP != null || (rv._$AP = $g$1), rv._$AQ != null || (rv._$AQ = Pg$1));
};
let Mg$1 = class extends Lg$1 {
  constructor() {
    super(...arguments), this._$AN = void 0;
  }
  _$AT(tv, ev, iv) {
    super._$AT(tv, ev, iv), kl$1(this), this.isConnected = tv._$AU;
  }
  _$AO(tv, ev = !0) {
    var iv, ov;
    tv !== this.isConnected && (this.isConnected = tv, tv ? (iv = this.reconnected) == null || iv.call(this) : (ov = this.disconnected) == null || ov.call(this)), ev && (Jt$2(this, tv), Jn$3(this));
  }
  setValue(tv) {
    if (Fg$1(this.t))
      this.t._$AI(tv, this);
    else {
      const ev = [...this.t._$AH];
      ev[this.i] = tv, this.t._$AI(ev, this, 0);
    }
  }
  disconnected() {
  }
  reconnected() {
  }
};
/**
 * @license
 * Copyright 2020 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const Vg$1 = () => new jg$1();
let jg$1 = class {
};
const zi$2 = /* @__PURE__ */ new WeakMap(), Bg$1 = Ig$1(class extends Mg$1 {
  render(rv) {
    return J$2;
  }
  update(rv, [tv]) {
    var ev;
    const iv = tv !== this.Y;
    return iv && this.Y !== void 0 && this.rt(void 0), (iv || this.lt !== this.ct) && (this.Y = tv, this.ht = (ev = rv.options) == null ? void 0 : ev.host, this.rt(this.ct = rv.element)), J$2;
  }
  rt(rv) {
    var tv;
    if (this.isConnected || (rv = void 0), typeof this.Y == "function") {
      const ev = (tv = this.ht) != null ? tv : globalThis;
      let iv = zi$2.get(ev);
      iv === void 0 && (iv = /* @__PURE__ */ new WeakMap(), zi$2.set(ev, iv)), iv.get(this.Y) !== void 0 && this.Y.call(this.ht, void 0), iv.set(this.Y, rv), rv !== void 0 && this.Y.call(this.ht, rv);
    } else
      this.Y.value = rv;
  }
  get lt() {
    var rv, tv, ev;
    return typeof this.Y == "function" ? (tv = zi$2.get((rv = this.ht) != null ? rv : globalThis)) == null ? void 0 : tv.get(this.Y) : (ev = this.Y) == null ? void 0 : ev.value;
  }
  disconnected() {
    this.lt === this.ct && this.rt(void 0);
  }
  reconnected() {
    this.rt(this.ct);
  }
});
var yl$1, ka$3 = ReactDOM;
yl$1 = ka$3.createRoot, ka$3.hydrateRoot;
let Hg$1 = class extends Wt$3 {
  constructor() {
    super(...arguments), R$1(this, "rootRef", Vg$1()), R$1(this, "rootInstance");
  }
  /**
   * Renders the LitElement template, including a div for hosting the React component.
   *
   * @returns {TemplateResult} The LitElement template.
   */
  render() {
    return Eg$1`<div ${Bg$1(this.rootRef)}></div>`;
  }
  /**
   * Called when the LitElement is updated. Triggers the React component update.
   */
  updated() {
    this.updateReactComponent();
  }
  /**
   * Updates or initializes the React component inside the LitElement.
   *
   * @private
   */
  updateReactComponent() {
    if (!this.rootRef.value)
      return;
    this.rootInstance || (this.rootInstance = yl$1(this.rootRef.value));
    const tv = React.createElement(
      this.getReactComponent(),
      this.getReactProps(),
      React.createElement("slot")
    );
    this.rootInstance.render(tv);
  }
  /**
   * Handles hot module replacement (HMR) for styles.
   *
   * @param {Styles} styles - The styles to be injected.
   */
  handleHMR(tv) {
  }
  /**
   * Injects the initial styles into the Shadow DOM.
   *
   * @private
   * @param {Styles} styles - The styles to be injected.
   */
  injectStyles(tv) {
    const ev = (iv) => iv.replace("./", "");
    for (const [iv, ov] of Object.entries(tv)) {
      const av = ev(iv), sv = document.createElement("style");
      sv.setAttribute("type", "text/css"), sv.setAttribute("id", av), sv.innerHTML = ov, setTimeout(() => {
        var lv;
        return (lv = this.shadowRoot) == null ? void 0 : lv.appendChild(sv);
      });
    }
  }
  /**
   * Sets up the listener for hot module replacement (HMR) updates.
   *
   * @private
   */
  setupHMRListener() {
  }
};
R$1(Hg$1, "baseStyles", fg$1`
    :host {
      width: 100%;
    }
  `);
class qg {
  constructor(tv, ev, iv) {
    R$1(this, "renderFn"), R$1(this, "logger"), R$1(this, "rootId"), R$1(this, "element", null), R$1(this, "unmount"), R$1(this, "updateProps"), this.rootId = tv, this.renderFn = ev, this.logger = iv;
  }
  async render(tv = {}) {
    var ev;
    if (this.element)
      this.updateProps(tv);
    else {
      const iv = await this.renderFn(this.rootId, tv);
      this.element = (ev = iv == null ? void 0 : iv.element) != null ? ev : null, this.updateProps = (ov) => iv == null ? void 0 : iv.updateProps(ov), this.unmount = () => {
        iv == null || iv.unmount(), this.element = null;
      };
    }
  }
}
let Qr$3 = class {
  constructor(tv) {
    this.config = tv;
  }
  static isApplicable(tv) {
    return wo$3.LOCAL === tv.bundler.stage;
  }
  async execute() {
    var tv;
    const { runtime: ev } = this.config;
    (tv = ev.env) != null && tv.account ? await ev.configureStore(ev.env) : ev.logger.warn("missing account in local environment");
  }
};
R$1(Qr$3, "type", Ge$3.Local);
const zg$1 = window == null ? void 0 : window.__NZ_APP__;
let Xr$1 = class {
  constructor(tv) {
    this.config = tv;
  }
  static isApplicable() {
    return zg$1 === "platform";
  }
  async execute() {
  }
};
R$1(Xr$1, "type", Ge$3.Platform);
const Nn$2 = window == null ? void 0 : window.faststore_sdk_stores;
let Zr$2 = class {
  constructor(tv) {
    this.config = tv;
    const ev = {
      vtexfaststore: Nn$2
    };
    this.config.runtime.updateMeta(ev);
  }
  static isApplicable() {
    return !!Nn$2;
  }
  async execute() {
    const { runtime: tv } = this.config;
    if (!Nn$2.account) {
      tv.logger.error(
        "missing the account in window.faststore_sdk_stores"
      );
      return;
    }
    await tv.configureStore({ account: Nn$2.account });
  }
};
R$1(Zr$2, "type", Ge$3.VtexFastStore);
const Sn$3 = window == null ? void 0 : window.__RUNTIME__;
let es$3 = class {
  constructor(tv) {
    this.config = tv;
    const ev = {
      vtexio: Sn$3
    };
    this.config.runtime.updateMeta(ev);
  }
  static isApplicable() {
    return !!Sn$3;
  }
  async execute() {
    const { runtime: tv } = this.config;
    if (!Sn$3.account) {
      tv.logger.error("missing the account in window.__RUNTIME__");
      return;
    }
    await tv.configureStore({ account: Sn$3.account });
  }
};
R$1(es$3, "type", Ge$3.VtexIO);
const ya$2 = window == null ? void 0 : window.vtexjs;
let ts$2 = class {
  constructor(tv) {
    this.config = tv;
    const ev = {
      vtexjs: ya$2
    };
    this.config.runtime.updateMeta(ev);
  }
  static isApplicable() {
    return !!ya$2;
  }
  async execute() {
    const { runtime: tv } = this.config;
    let ev = {};
    const iv = `${tv.componentId.value}-script`, ov = rd$1(iv);
    if (ev = Object.fromEntries(ov.entries()), !ev.account) {
      tv.logger.error(
        `missing the account in the search params of the script #${iv}`
      );
      return;
    }
    await tv.configureStore({ account: ev.account });
  }
};
R$1(ts$2, "type", Ge$3.VtexLegacy);
let _l$1 = class {
  constructor(tv) {
    this.config = tv;
  }
  static isApplicable(tv) {
    return !Qr$3.isApplicable(tv) && !ts$2.isApplicable() && !es$3.isApplicable() && !Zr$2.isApplicable() && !Xr$1.isApplicable();
  }
  async execute() {
  }
};
R$1(_l$1, "type", Ge$3.External);
const Gg$1 = [
  Qr$3,
  ts$2,
  es$3,
  _l$1,
  Zr$2,
  Xr$1
];
class Nv {
  constructor(tv) {
    R$1(this, "globalId"), R$1(this, "metadata"), R$1(this, "customConfigList"), R$1(this, "env"), R$1(this, "bundler"), R$1(this, "logger"), R$1(this, "componentId"), R$1(this, "renderHandler"), R$1(this, "store"), this.globalId = tv.globalId, this.store = tv.getStore(), this.logger = qe$1.withPrefix(tv.logger, "Runtime"), this.env = tv.env, this.bundler = tv.bundler, this.customConfigList = /* @__PURE__ */ new Map(), this.metadata = { type: Ge$3.External }, this.initializeGlobals();
  }
  config(tv, ev, iv) {
    typeof ev == "function" && (iv = ev, ev = {});
    const { skipBaseBehavior: ov = !1 } = ev;
    return this.customConfigList.set(tv, {
      callback: iv,
      skipBaseBehavior: ov
    }), this;
  }
  registerComponent(tv, ev) {
    const iv = this.toCamel(tv);
    if (window[this.globalId][iv])
      return this.logger.debug(`Component "${iv}" is already registered.`), this;
    this.componentId = { value: tv, formatted: iv }, this.renderHandler = ev;
    const ov = { render: this.renderHandler };
    return window[this.globalId][this.componentId.formatted] = ov, this.logger.debug(`Component "${iv}" registered.`), this;
  }
  async execute(tv) {
    for (const ev of Gg$1)
      if (ev.isApplicable(this)) {
        const iv = new ev({ runtime: this }), ov = this.customConfigList.get(ev.type);
        this.updateMeta({ type: ev.type }), ov != null && ov.skipBaseBehavior || await iv.execute(), ov && await ov.callback({
          runtime: this,
          component: new qg(
            this.componentId.value,
            this.renderHandler,
            this.logger
          )
        });
        break;
      }
    await (tv == null ? void 0 : tv());
  }
  updateMeta(tv) {
    this.metadata = { ...this.metadata, ...tv };
  }
  async configureStore(tv) {
    await this.store.configure(tv);
  }
  get meta() {
    return this.metadata;
  }
  initializeGlobals() {
    var tv;
    if (window[this.globalId] || (window[this.globalId] = {}, this.logger.debug(`Initialized "${this.globalId}" window object`)), (tv = window[this.globalId]) != null && tv.runtime) {
      this.logger.debug(
        `Runtime for "${this.globalId}" are already initialized.`
      );
      return;
    }
    const ev = () => Object.freeze({ ...this.metadata }), iv = () => Object.freeze({
      isProd: this.bundler.isProd,
      get meta() {
        return ev();
      }
    });
    Object.defineProperty(window[this.globalId], "runtime", {
      get: () => iv()
    }), this.logger.debug(`Initialized runtime for "${this.globalId}".`);
  }
  toCamel(tv) {
    return tv.replace(/^[a-z]{2}-/, "").replace(/-./g, (ev) => ev[1].toUpperCase());
  }
}
var Bi$1 = Object.defineProperty, Fi$2 = (rv, tv, ev) => tv in rv ? Bi$1(rv, tv, { enumerable: !0, configurable: !0, writable: !0, value: ev }) : rv[tv] = ev, x$2 = (rv, tv, ev) => Fi$2(rv, typeof tv != "symbol" ? tv + "" : tv, ev);
function $i(rv, tv) {
  for (var ev = 0; ev < tv.length; ev++) {
    const iv = tv[ev];
    if (typeof iv != "string" && !Array.isArray(iv)) {
      for (const ov in iv)
        if (ov !== "default" && !(ov in rv)) {
          const av = Object.getOwnPropertyDescriptor(iv, ov);
          av && Object.defineProperty(rv, ov, av.get ? av : {
            enumerable: !0,
            get: () => iv[ov]
          });
        }
    }
  }
  return Object.freeze(Object.defineProperty(rv, Symbol.toStringTag, { value: "Module" }));
}
const Un = JSON, qi$2 = (rv) => rv.toUpperCase(), Gi$1 = (rv) => {
  const tv = {};
  return rv.forEach((ev, iv) => {
    tv[iv] = ev;
  }), tv;
}, zi$1 = (rv, tv, ev) => rv.document ? rv : {
  document: rv,
  variables: tv,
  requestHeaders: ev,
  signal: void 0
}, Hi$1 = (rv, tv, ev) => rv.query ? rv : {
  query: rv,
  variables: tv,
  requestHeaders: ev,
  signal: void 0
}, Ki$1 = (rv, tv) => rv.documents ? rv : {
  documents: rv,
  requestHeaders: tv,
  signal: void 0
};
function It$1(rv, tv) {
  throw new Error(tv);
}
function Yi$1(rv) {
  return typeof rv == "object" && rv !== null;
}
function Wi$1(rv, tv) {
  throw new Error(
    "Unexpected invariant triggered."
  );
}
const Ji$1 = /\r\n|[\n\r]/g;
function bn$2(rv, tv) {
  let ev = 0, iv = 1;
  for (const ov of rv.body.matchAll(Ji$1)) {
    if (typeof ov.index == "number" || Wi$1(), ov.index >= tv)
      break;
    ev = ov.index + ov[0].length, iv += 1;
  }
  return {
    line: iv,
    column: tv + 1 - ev
  };
}
function Xi$1(rv) {
  return Cr$2(
    rv.source,
    bn$2(rv.source, rv.start)
  );
}
function Cr$2(rv, tv) {
  const ev = rv.locationOffset.column - 1, iv = "".padStart(ev) + rv.body, ov = tv.line - 1, av = rv.locationOffset.line - 1, sv = tv.line + av, lv = tv.line === 1 ? ev : 0, uv = tv.column + lv, cv = `${rv.name}:${sv}:${uv}
`, dv = iv.split(/\r\n|[\n\r]/g), hv = dv[ov];
  if (hv.length > 120) {
    const pv = Math.floor(uv / 80), yv = uv % 80, Sv = [];
    for (let _v = 0; _v < hv.length; _v += 80)
      Sv.push(hv.slice(_v, _v + 80));
    return cv + tr([
      [`${sv} |`, Sv[0]],
      ...Sv.slice(1, pv + 1).map((_v) => ["|", _v]),
      ["|", "^".padStart(yv)],
      ["|", Sv[pv + 1]]
    ]);
  }
  return cv + tr([
    // Lines specified like this: ["prefix", "string"],
    [`${sv - 1} |`, dv[ov - 1]],
    [`${sv} |`, hv],
    ["|", "^".padStart(uv)],
    [`${sv + 1} |`, dv[ov + 1]]
  ]);
}
function tr(rv) {
  const tv = rv.filter(([iv, ov]) => ov !== void 0), ev = Math.max(...tv.map(([iv]) => iv.length));
  return tv.map(([iv, ov]) => iv.padStart(ev) + (ov ? " " + ov : "")).join(`
`);
}
function Qi$1(rv) {
  const tv = rv[0];
  return tv == null || "kind" in tv || "length" in tv ? {
    nodes: tv,
    source: rv[1],
    positions: rv[2],
    path: rv[3],
    originalError: rv[4],
    extensions: rv[5]
  } : tv;
}
let $n$1 = class yN extends Error {
  /**
   * An array of `{ line, column }` locations within the source GraphQL document
   * which correspond to this error.
   *
   * Errors during validation often contain multiple locations, for example to
   * point out two things with the same name. Errors during execution include a
   * single location, the field which produced the error.
   *
   * Enumerable, and appears in the result of JSON.stringify().
   */
  /**
   * An array describing the JSON-path into the execution response which
   * corresponds to this error. Only included for errors during execution.
   *
   * Enumerable, and appears in the result of JSON.stringify().
   */
  /**
   * An array of GraphQL AST Nodes corresponding to this error.
   */
  /**
   * The source GraphQL document for the first location of this error.
   *
   * Note that if this Error represents more than one node, the source may not
   * represent nodes after the first node.
   */
  /**
   * An array of character offsets within the source GraphQL document
   * which correspond to this error.
   */
  /**
   * The original error thrown from a field resolver during execution.
   */
  /**
   * Extension fields to add to the formatted error.
   */
  /**
   * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.
   */
  constructor(tv, ...ev) {
    var iv, ov, av;
    const { nodes: sv, source: lv, positions: uv, path: cv, originalError: dv, extensions: hv } = Qi$1(ev);
    super(tv), this.name = "GraphQLError", this.path = cv ?? void 0, this.originalError = dv ?? void 0, this.nodes = nr$1(
      Array.isArray(sv) ? sv : sv ? [sv] : void 0
    );
    const pv = nr$1(
      (iv = this.nodes) === null || iv === void 0 ? void 0 : iv.map((Sv) => Sv.loc).filter((Sv) => Sv != null)
    );
    this.source = lv ?? (pv == null || (ov = pv[0]) === null || ov === void 0 ? void 0 : ov.source), this.positions = uv ?? (pv == null ? void 0 : pv.map((Sv) => Sv.start)), this.locations = uv && lv ? uv.map((Sv) => bn$2(lv, Sv)) : pv == null ? void 0 : pv.map((Sv) => bn$2(Sv.source, Sv.start));
    const yv = Yi$1(
      dv == null ? void 0 : dv.extensions
    ) ? dv == null ? void 0 : dv.extensions : void 0;
    this.extensions = (av = hv ?? yv) !== null && av !== void 0 ? av : /* @__PURE__ */ Object.create(null), Object.defineProperties(this, {
      message: {
        writable: !0,
        enumerable: !0
      },
      name: {
        enumerable: !1
      },
      nodes: {
        enumerable: !1
      },
      source: {
        enumerable: !1
      },
      positions: {
        enumerable: !1
      },
      originalError: {
        enumerable: !1
      }
    }), dv != null && dv.stack ? Object.defineProperty(this, "stack", {
      value: dv.stack,
      writable: !0,
      configurable: !0
    }) : Error.captureStackTrace ? Error.captureStackTrace(this, yN) : Object.defineProperty(this, "stack", {
      value: Error().stack,
      writable: !0,
      configurable: !0
    });
  }
  get [Symbol.toStringTag]() {
    return "GraphQLError";
  }
  toString() {
    let tv = this.message;
    if (this.nodes)
      for (const ev of this.nodes)
        ev.loc && (tv += `

` + Xi$1(ev.loc));
    else if (this.source && this.locations)
      for (const ev of this.locations)
        tv += `

` + Cr$2(this.source, ev);
    return tv;
  }
  toJSON() {
    const tv = {
      message: this.message
    };
    return this.locations != null && (tv.locations = this.locations), this.path != null && (tv.path = this.path), this.extensions != null && Object.keys(this.extensions).length > 0 && (tv.extensions = this.extensions), tv;
  }
};
function nr$1(rv) {
  return rv === void 0 || rv.length === 0 ? void 0 : rv;
}
function F$1(rv, tv, ev) {
  return new $n$1(`Syntax Error: ${ev}`, {
    source: rv,
    positions: [tv]
  });
}
let Zi$1 = class {
  /**
   * The character offset at which this Node begins.
   */
  /**
   * The character offset at which this Node ends.
   */
  /**
   * The Token at which this Node begins.
   */
  /**
   * The Token at which this Node ends.
   */
  /**
   * The Source document the AST represents.
   */
  constructor(tv, ev, iv) {
    this.start = tv.start, this.end = ev.end, this.startToken = tv, this.endToken = ev, this.source = iv;
  }
  get [Symbol.toStringTag]() {
    return "Location";
  }
  toJSON() {
    return {
      start: this.start,
      end: this.end
    };
  }
}, Dr$1 = class {
  /**
   * The kind of Token.
   */
  /**
   * The character offset at which this Node begins.
   */
  /**
   * The character offset at which this Node ends.
   */
  /**
   * The 1-indexed line number on which this Token appears.
   */
  /**
   * The 1-indexed column number at which this Token begins.
   */
  /**
   * For non-punctuation tokens, represents the interpreted value of the token.
   *
   * Note: is undefined for punctuation tokens, but typed as string for
   * convenience in the parser.
   */
  /**
   * Tokens exist as nodes in a double-linked-list amongst all tokens
   * including ignored tokens. <SOF> is always the first node and <EOF>
   * the last.
   */
  constructor(tv, ev, iv, ov, av, sv) {
    this.kind = tv, this.start = ev, this.end = iv, this.line = ov, this.column = av, this.value = sv, this.prev = null, this.next = null;
  }
  get [Symbol.toStringTag]() {
    return "Token";
  }
  toJSON() {
    return {
      kind: this.kind,
      value: this.value,
      line: this.line,
      column: this.column
    };
  }
};
const Rr$1 = {
  Name: [],
  Document: ["definitions"],
  OperationDefinition: [
    "name",
    "variableDefinitions",
    "directives",
    "selectionSet"
  ],
  VariableDefinition: ["variable", "type", "defaultValue", "directives"],
  Variable: ["name"],
  SelectionSet: ["selections"],
  Field: ["alias", "name", "arguments", "directives", "selectionSet"],
  Argument: ["name", "value"],
  FragmentSpread: ["name", "directives"],
  InlineFragment: ["typeCondition", "directives", "selectionSet"],
  FragmentDefinition: [
    "name",
    // Note: fragment variable definitions are deprecated and will removed in v17.0.0
    "variableDefinitions",
    "typeCondition",
    "directives",
    "selectionSet"
  ],
  IntValue: [],
  FloatValue: [],
  StringValue: [],
  BooleanValue: [],
  NullValue: [],
  EnumValue: [],
  ListValue: ["values"],
  ObjectValue: ["fields"],
  ObjectField: ["name", "value"],
  Directive: ["name", "arguments"],
  NamedType: ["name"],
  ListType: ["type"],
  NonNullType: ["type"],
  SchemaDefinition: ["description", "directives", "operationTypes"],
  OperationTypeDefinition: ["type"],
  ScalarTypeDefinition: ["description", "name", "directives"],
  ObjectTypeDefinition: [
    "description",
    "name",
    "interfaces",
    "directives",
    "fields"
  ],
  FieldDefinition: ["description", "name", "arguments", "type", "directives"],
  InputValueDefinition: [
    "description",
    "name",
    "type",
    "defaultValue",
    "directives"
  ],
  InterfaceTypeDefinition: [
    "description",
    "name",
    "interfaces",
    "directives",
    "fields"
  ],
  UnionTypeDefinition: ["description", "name", "directives", "types"],
  EnumTypeDefinition: ["description", "name", "directives", "values"],
  EnumValueDefinition: ["description", "name", "directives"],
  InputObjectTypeDefinition: ["description", "name", "directives", "fields"],
  DirectiveDefinition: ["description", "name", "arguments", "locations"],
  SchemaExtension: ["directives", "operationTypes"],
  ScalarTypeExtension: ["name", "directives"],
  ObjectTypeExtension: ["name", "interfaces", "directives", "fields"],
  InterfaceTypeExtension: ["name", "interfaces", "directives", "fields"],
  UnionTypeExtension: ["name", "directives", "types"],
  EnumTypeExtension: ["name", "directives", "values"],
  InputObjectTypeExtension: ["name", "directives", "fields"]
}, es$2 = new Set(Object.keys(Rr$1));
function rr$1(rv) {
  const tv = rv == null ? void 0 : rv.kind;
  return typeof tv == "string" && es$2.has(tv);
}
var Ge$2;
(function(rv) {
  rv.QUERY = "query", rv.MUTATION = "mutation", rv.SUBSCRIPTION = "subscription";
})(Ge$2 || (Ge$2 = {}));
var En$2;
(function(rv) {
  rv.QUERY = "QUERY", rv.MUTATION = "MUTATION", rv.SUBSCRIPTION = "SUBSCRIPTION", rv.FIELD = "FIELD", rv.FRAGMENT_DEFINITION = "FRAGMENT_DEFINITION", rv.FRAGMENT_SPREAD = "FRAGMENT_SPREAD", rv.INLINE_FRAGMENT = "INLINE_FRAGMENT", rv.VARIABLE_DEFINITION = "VARIABLE_DEFINITION", rv.SCHEMA = "SCHEMA", rv.SCALAR = "SCALAR", rv.OBJECT = "OBJECT", rv.FIELD_DEFINITION = "FIELD_DEFINITION", rv.ARGUMENT_DEFINITION = "ARGUMENT_DEFINITION", rv.INTERFACE = "INTERFACE", rv.UNION = "UNION", rv.ENUM = "ENUM", rv.ENUM_VALUE = "ENUM_VALUE", rv.INPUT_OBJECT = "INPUT_OBJECT", rv.INPUT_FIELD_DEFINITION = "INPUT_FIELD_DEFINITION";
})(En$2 || (En$2 = {}));
var E$2;
(function(rv) {
  rv.NAME = "Name", rv.DOCUMENT = "Document", rv.OPERATION_DEFINITION = "OperationDefinition", rv.VARIABLE_DEFINITION = "VariableDefinition", rv.SELECTION_SET = "SelectionSet", rv.FIELD = "Field", rv.ARGUMENT = "Argument", rv.FRAGMENT_SPREAD = "FragmentSpread", rv.INLINE_FRAGMENT = "InlineFragment", rv.FRAGMENT_DEFINITION = "FragmentDefinition", rv.VARIABLE = "Variable", rv.INT = "IntValue", rv.FLOAT = "FloatValue", rv.STRING = "StringValue", rv.BOOLEAN = "BooleanValue", rv.NULL = "NullValue", rv.ENUM = "EnumValue", rv.LIST = "ListValue", rv.OBJECT = "ObjectValue", rv.OBJECT_FIELD = "ObjectField", rv.DIRECTIVE = "Directive", rv.NAMED_TYPE = "NamedType", rv.LIST_TYPE = "ListType", rv.NON_NULL_TYPE = "NonNullType", rv.SCHEMA_DEFINITION = "SchemaDefinition", rv.OPERATION_TYPE_DEFINITION = "OperationTypeDefinition", rv.SCALAR_TYPE_DEFINITION = "ScalarTypeDefinition", rv.OBJECT_TYPE_DEFINITION = "ObjectTypeDefinition", rv.FIELD_DEFINITION = "FieldDefinition", rv.INPUT_VALUE_DEFINITION = "InputValueDefinition", rv.INTERFACE_TYPE_DEFINITION = "InterfaceTypeDefinition", rv.UNION_TYPE_DEFINITION = "UnionTypeDefinition", rv.ENUM_TYPE_DEFINITION = "EnumTypeDefinition", rv.ENUM_VALUE_DEFINITION = "EnumValueDefinition", rv.INPUT_OBJECT_TYPE_DEFINITION = "InputObjectTypeDefinition", rv.DIRECTIVE_DEFINITION = "DirectiveDefinition", rv.SCHEMA_EXTENSION = "SchemaExtension", rv.SCALAR_TYPE_EXTENSION = "ScalarTypeExtension", rv.OBJECT_TYPE_EXTENSION = "ObjectTypeExtension", rv.INTERFACE_TYPE_EXTENSION = "InterfaceTypeExtension", rv.UNION_TYPE_EXTENSION = "UnionTypeExtension", rv.ENUM_TYPE_EXTENSION = "EnumTypeExtension", rv.INPUT_OBJECT_TYPE_EXTENSION = "InputObjectTypeExtension";
})(E$2 || (E$2 = {}));
function An$2(rv) {
  return rv === 9 || rv === 32;
}
function ht(rv) {
  return rv >= 48 && rv <= 57;
}
function Pr$2(rv) {
  return rv >= 97 && rv <= 122 || // A-Z
  rv >= 65 && rv <= 90;
}
function Lr$2(rv) {
  return Pr$2(rv) || rv === 95;
}
function ts$1(rv) {
  return Pr$2(rv) || ht(rv) || rv === 95;
}
function ns$1(rv) {
  var tv;
  let ev = Number.MAX_SAFE_INTEGER, iv = null, ov = -1;
  for (let sv = 0; sv < rv.length; ++sv) {
    var av;
    const lv = rv[sv], uv = rs$1(lv);
    uv !== lv.length && (iv = (av = iv) !== null && av !== void 0 ? av : sv, ov = sv, sv !== 0 && uv < ev && (ev = uv));
  }
  return rv.map((sv, lv) => lv === 0 ? sv : sv.slice(ev)).slice(
    (tv = iv) !== null && tv !== void 0 ? tv : 0,
    ov + 1
  );
}
function rs$1(rv) {
  let tv = 0;
  for (; tv < rv.length && An$2(rv.charCodeAt(tv)); )
    ++tv;
  return tv;
}
function is$1(rv, tv) {
  const ev = rv.replace(/"""/g, '\\"""'), iv = ev.split(/\r\n|[\n\r]/g), ov = iv.length === 1, av = iv.length > 1 && iv.slice(1).every((yv) => yv.length === 0 || An$2(yv.charCodeAt(0))), sv = ev.endsWith('\\"""'), lv = rv.endsWith('"') && !sv, uv = rv.endsWith("\\"), cv = lv || uv, dv = (
    // add leading and trailing new lines only if it improves readability
    !ov || rv.length > 70 || cv || av || sv
  );
  let hv = "";
  const pv = ov && An$2(rv.charCodeAt(0));
  return (dv && !pv || av) && (hv += `
`), hv += ev, (dv || cv) && (hv += `
`), '"""' + hv + '"""';
}
var d$2;
(function(rv) {
  rv.SOF = "<SOF>", rv.EOF = "<EOF>", rv.BANG = "!", rv.DOLLAR = "$", rv.AMP = "&", rv.PAREN_L = "(", rv.PAREN_R = ")", rv.SPREAD = "...", rv.COLON = ":", rv.EQUALS = "=", rv.AT = "@", rv.BRACKET_L = "[", rv.BRACKET_R = "]", rv.BRACE_L = "{", rv.PIPE = "|", rv.BRACE_R = "}", rv.NAME = "Name", rv.INT = "Int", rv.FLOAT = "Float", rv.STRING = "String", rv.BLOCK_STRING = "BlockString", rv.COMMENT = "Comment";
})(d$2 || (d$2 = {}));
let ss$1 = class {
  /**
   * The previously focused non-ignored token.
   */
  /**
   * The currently focused non-ignored token.
   */
  /**
   * The (1-indexed) line containing the current token.
   */
  /**
   * The character offset at which the current line begins.
   */
  constructor(tv) {
    const ev = new Dr$1(d$2.SOF, 0, 0, 0, 0);
    this.source = tv, this.lastToken = ev, this.token = ev, this.line = 1, this.lineStart = 0;
  }
  get [Symbol.toStringTag]() {
    return "Lexer";
  }
  /**
   * Advances the token stream to the next non-ignored token.
   */
  advance() {
    return this.lastToken = this.token, this.token = this.lookahead();
  }
  /**
   * Looks ahead and returns the next non-ignored token, but does not change
   * the state of Lexer.
   */
  lookahead() {
    let tv = this.token;
    if (tv.kind !== d$2.EOF)
      do
        if (tv.next)
          tv = tv.next;
        else {
          const ev = as$1(this, tv.end);
          tv.next = ev, ev.prev = tv, tv = ev;
        }
      while (tv.kind === d$2.COMMENT);
    return tv;
  }
};
function os$1(rv) {
  return rv === d$2.BANG || rv === d$2.DOLLAR || rv === d$2.AMP || rv === d$2.PAREN_L || rv === d$2.PAREN_R || rv === d$2.SPREAD || rv === d$2.COLON || rv === d$2.EQUALS || rv === d$2.AT || rv === d$2.BRACKET_L || rv === d$2.BRACKET_R || rv === d$2.BRACE_L || rv === d$2.PIPE || rv === d$2.BRACE_R;
}
function Xe$1(rv) {
  return rv >= 0 && rv <= 55295 || rv >= 57344 && rv <= 1114111;
}
function zt$1(rv, tv) {
  return Mr$1(rv.charCodeAt(tv)) && kr$1(rv.charCodeAt(tv + 1));
}
function Mr$1(rv) {
  return rv >= 55296 && rv <= 56319;
}
function kr$1(rv) {
  return rv >= 56320 && rv <= 57343;
}
function De$1(rv, tv) {
  const ev = rv.source.body.codePointAt(tv);
  if (ev === void 0)
    return d$2.EOF;
  if (ev >= 32 && ev <= 126) {
    const iv = String.fromCodePoint(ev);
    return iv === '"' ? `'"'` : `"${iv}"`;
  }
  return "U+" + ev.toString(16).toUpperCase().padStart(4, "0");
}
function j$1(rv, tv, ev, iv, ov) {
  const av = rv.line, sv = 1 + ev - rv.lineStart;
  return new Dr$1(tv, ev, iv, av, sv, ov);
}
function as$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = tv;
  for (; ov < iv; ) {
    const av = ev.charCodeAt(ov);
    switch (av) {
      case 65279:
      case 9:
      case 32:
      case 44:
        ++ov;
        continue;
      case 10:
        ++ov, ++rv.line, rv.lineStart = ov;
        continue;
      case 13:
        ev.charCodeAt(ov + 1) === 10 ? ov += 2 : ++ov, ++rv.line, rv.lineStart = ov;
        continue;
      case 35:
        return cs$1(rv, ov);
      case 33:
        return j$1(rv, d$2.BANG, ov, ov + 1);
      case 36:
        return j$1(rv, d$2.DOLLAR, ov, ov + 1);
      case 38:
        return j$1(rv, d$2.AMP, ov, ov + 1);
      case 40:
        return j$1(rv, d$2.PAREN_L, ov, ov + 1);
      case 41:
        return j$1(rv, d$2.PAREN_R, ov, ov + 1);
      case 46:
        if (ev.charCodeAt(ov + 1) === 46 && ev.charCodeAt(ov + 2) === 46)
          return j$1(rv, d$2.SPREAD, ov, ov + 3);
        break;
      case 58:
        return j$1(rv, d$2.COLON, ov, ov + 1);
      case 61:
        return j$1(rv, d$2.EQUALS, ov, ov + 1);
      case 64:
        return j$1(rv, d$2.AT, ov, ov + 1);
      case 91:
        return j$1(rv, d$2.BRACKET_L, ov, ov + 1);
      case 93:
        return j$1(rv, d$2.BRACKET_R, ov, ov + 1);
      case 123:
        return j$1(rv, d$2.BRACE_L, ov, ov + 1);
      case 124:
        return j$1(rv, d$2.PIPE, ov, ov + 1);
      case 125:
        return j$1(rv, d$2.BRACE_R, ov, ov + 1);
      case 34:
        return ev.charCodeAt(ov + 1) === 34 && ev.charCodeAt(ov + 2) === 34 ? ps$1(rv, ov) : ls$1(rv, ov);
    }
    if (ht(av) || av === 45)
      return us$1(rv, ov, av);
    if (Lr$2(av))
      return _s$1(rv, ov);
    throw F$1(
      rv.source,
      ov,
      av === 39 ? `Unexpected single quote character ('), did you mean to use a double quote (")?` : Xe$1(av) || zt$1(ev, ov) ? `Unexpected character: ${De$1(rv, ov)}.` : `Invalid character: ${De$1(rv, ov)}.`
    );
  }
  return j$1(rv, d$2.EOF, iv, iv);
}
function cs$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = tv + 1;
  for (; ov < iv; ) {
    const av = ev.charCodeAt(ov);
    if (av === 10 || av === 13)
      break;
    if (Xe$1(av))
      ++ov;
    else if (zt$1(ev, ov))
      ov += 2;
    else
      break;
  }
  return j$1(
    rv,
    d$2.COMMENT,
    tv,
    ov,
    ev.slice(tv + 1, ov)
  );
}
function us$1(rv, tv, ev) {
  const iv = rv.source.body;
  let ov = tv, av = ev, sv = !1;
  if (av === 45 && (av = iv.charCodeAt(++ov)), av === 48) {
    if (av = iv.charCodeAt(++ov), ht(av))
      throw F$1(
        rv.source,
        ov,
        `Invalid number, unexpected digit after 0: ${De$1(
          rv,
          ov
        )}.`
      );
  } else
    ov = cn$1(rv, ov, av), av = iv.charCodeAt(ov);
  if (av === 46 && (sv = !0, av = iv.charCodeAt(++ov), ov = cn$1(rv, ov, av), av = iv.charCodeAt(ov)), (av === 69 || av === 101) && (sv = !0, av = iv.charCodeAt(++ov), (av === 43 || av === 45) && (av = iv.charCodeAt(++ov)), ov = cn$1(rv, ov, av), av = iv.charCodeAt(ov)), av === 46 || Lr$2(av))
    throw F$1(
      rv.source,
      ov,
      `Invalid number, expected digit but got: ${De$1(
        rv,
        ov
      )}.`
    );
  return j$1(
    rv,
    sv ? d$2.FLOAT : d$2.INT,
    tv,
    ov,
    iv.slice(tv, ov)
  );
}
function cn$1(rv, tv, ev) {
  if (!ht(ev))
    throw F$1(
      rv.source,
      tv,
      `Invalid number, expected digit but got: ${De$1(
        rv,
        tv
      )}.`
    );
  const iv = rv.source.body;
  let ov = tv + 1;
  for (; ht(iv.charCodeAt(ov)); )
    ++ov;
  return ov;
}
function ls$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = tv + 1, av = ov, sv = "";
  for (; ov < iv; ) {
    const lv = ev.charCodeAt(ov);
    if (lv === 34)
      return sv += ev.slice(av, ov), j$1(rv, d$2.STRING, tv, ov + 1, sv);
    if (lv === 92) {
      sv += ev.slice(av, ov);
      const uv = ev.charCodeAt(ov + 1) === 117 ? ev.charCodeAt(ov + 2) === 123 ? fs$1(rv, ov) : hs$1(rv, ov) : ds$1(rv, ov);
      sv += uv.value, ov += uv.size, av = ov;
      continue;
    }
    if (lv === 10 || lv === 13)
      break;
    if (Xe$1(lv))
      ++ov;
    else if (zt$1(ev, ov))
      ov += 2;
    else
      throw F$1(
        rv.source,
        ov,
        `Invalid character within String: ${De$1(
          rv,
          ov
        )}.`
      );
  }
  throw F$1(rv.source, ov, "Unterminated string.");
}
function fs$1(rv, tv) {
  const ev = rv.source.body;
  let iv = 0, ov = 3;
  for (; ov < 12; ) {
    const av = ev.charCodeAt(tv + ov++);
    if (av === 125) {
      if (ov < 5 || !Xe$1(iv))
        break;
      return {
        value: String.fromCodePoint(iv),
        size: ov
      };
    }
    if (iv = iv << 4 | at$1(av), iv < 0)
      break;
  }
  throw F$1(
    rv.source,
    tv,
    `Invalid Unicode escape sequence: "${ev.slice(
      tv,
      tv + ov
    )}".`
  );
}
function hs$1(rv, tv) {
  const ev = rv.source.body, iv = ir$1(ev, tv + 2);
  if (Xe$1(iv))
    return {
      value: String.fromCodePoint(iv),
      size: 6
    };
  if (Mr$1(iv) && ev.charCodeAt(tv + 6) === 92 && ev.charCodeAt(tv + 7) === 117) {
    const ov = ir$1(ev, tv + 8);
    if (kr$1(ov))
      return {
        value: String.fromCodePoint(iv, ov),
        size: 12
      };
  }
  throw F$1(
    rv.source,
    tv,
    `Invalid Unicode escape sequence: "${ev.slice(tv, tv + 6)}".`
  );
}
function ir$1(rv, tv) {
  return at$1(rv.charCodeAt(tv)) << 12 | at$1(rv.charCodeAt(tv + 1)) << 8 | at$1(rv.charCodeAt(tv + 2)) << 4 | at$1(rv.charCodeAt(tv + 3));
}
function at$1(rv) {
  return rv >= 48 && rv <= 57 ? rv - 48 : rv >= 65 && rv <= 70 ? rv - 55 : rv >= 97 && rv <= 102 ? rv - 87 : -1;
}
function ds$1(rv, tv) {
  const ev = rv.source.body;
  switch (ev.charCodeAt(tv + 1)) {
    case 34:
      return {
        value: '"',
        size: 2
      };
    case 92:
      return {
        value: "\\",
        size: 2
      };
    case 47:
      return {
        value: "/",
        size: 2
      };
    case 98:
      return {
        value: "\b",
        size: 2
      };
    case 102:
      return {
        value: "\f",
        size: 2
      };
    case 110:
      return {
        value: `
`,
        size: 2
      };
    case 114:
      return {
        value: "\r",
        size: 2
      };
    case 116:
      return {
        value: "	",
        size: 2
      };
  }
  throw F$1(
    rv.source,
    tv,
    `Invalid character escape sequence: "${ev.slice(
      tv,
      tv + 2
    )}".`
  );
}
function ps$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = rv.lineStart, av = tv + 3, sv = av, lv = "";
  const uv = [];
  for (; av < iv; ) {
    const cv = ev.charCodeAt(av);
    if (cv === 34 && ev.charCodeAt(av + 1) === 34 && ev.charCodeAt(av + 2) === 34) {
      lv += ev.slice(sv, av), uv.push(lv);
      const dv = j$1(
        rv,
        d$2.BLOCK_STRING,
        tv,
        av + 3,
        // Return a string of the lines joined with U+000A.
        ns$1(uv).join(`
`)
      );
      return rv.line += uv.length - 1, rv.lineStart = ov, dv;
    }
    if (cv === 92 && ev.charCodeAt(av + 1) === 34 && ev.charCodeAt(av + 2) === 34 && ev.charCodeAt(av + 3) === 34) {
      lv += ev.slice(sv, av), sv = av + 1, av += 4;
      continue;
    }
    if (cv === 10 || cv === 13) {
      lv += ev.slice(sv, av), uv.push(lv), cv === 13 && ev.charCodeAt(av + 1) === 10 ? av += 2 : ++av, lv = "", sv = av, ov = av;
      continue;
    }
    if (Xe$1(cv))
      ++av;
    else if (zt$1(ev, av))
      av += 2;
    else
      throw F$1(
        rv.source,
        av,
        `Invalid character within String: ${De$1(
          rv,
          av
        )}.`
      );
  }
  throw F$1(rv.source, av, "Unterminated string.");
}
function _s$1(rv, tv) {
  const ev = rv.source.body, iv = ev.length;
  let ov = tv + 1;
  for (; ov < iv; ) {
    const av = ev.charCodeAt(ov);
    if (ts$1(av))
      ++ov;
    else
      break;
  }
  return j$1(
    rv,
    d$2.NAME,
    tv,
    ov,
    ev.slice(tv, ov)
  );
}
const vs$1 = 10, jr$1 = 2;
function qn$2(rv) {
  return Ht$2(rv, []);
}
function Ht$2(rv, tv) {
  switch (typeof rv) {
    case "string":
      return JSON.stringify(rv);
    case "function":
      return rv.name ? `[function ${rv.name}]` : "[function]";
    case "object":
      return gs$1(rv, tv);
    default:
      return String(rv);
  }
}
function gs$1(rv, tv) {
  if (rv === null)
    return "null";
  if (tv.includes(rv))
    return "[Circular]";
  const ev = [...tv, rv];
  if (ys$1(rv)) {
    const iv = rv.toJSON();
    if (iv !== rv)
      return typeof iv == "string" ? iv : Ht$2(iv, ev);
  } else if (Array.isArray(rv))
    return bs$1(rv, ev);
  return ms$1(rv, ev);
}
function ys$1(rv) {
  return typeof rv.toJSON == "function";
}
function ms$1(rv, tv) {
  const ev = Object.entries(rv);
  return ev.length === 0 ? "{}" : tv.length > jr$1 ? "[" + Es$2(rv) + "]" : "{ " + ev.map(
    ([iv, ov]) => iv + ": " + Ht$2(ov, tv)
  ).join(", ") + " }";
}
function bs$1(rv, tv) {
  if (rv.length === 0)
    return "[]";
  if (tv.length > jr$1)
    return "[Array]";
  const ev = Math.min(vs$1, rv.length), iv = rv.length - ev, ov = [];
  for (let av = 0; av < ev; ++av)
    ov.push(Ht$2(rv[av], tv));
  return iv === 1 ? ov.push("... 1 more item") : iv > 1 && ov.push(`... ${iv} more items`), "[" + ov.join(", ") + "]";
}
function Es$2(rv) {
  const tv = Object.prototype.toString.call(rv).replace(/^\[object /, "").replace(/]$/, "");
  if (tv === "Object" && typeof rv.constructor == "function") {
    const ev = rv.constructor.name;
    if (typeof ev == "string" && ev !== "")
      return ev;
  }
  return tv;
}
const As$1 = globalThis.process && // eslint-disable-next-line no-undef
!0, Os$1 = (
  /* c8 ignore next 6 */
  // FIXME: https://github.com/graphql/graphql-js/issues/2317
  As$1 ? function(rv, tv) {
    return rv instanceof tv;
  } : function(rv, tv) {
    if (rv instanceof tv)
      return !0;
    if (typeof rv == "object" && rv !== null) {
      var ev;
      const iv = tv.prototype[Symbol.toStringTag], ov = (
        // We still need to support constructor's name to detect conflicts with older versions of this library.
        Symbol.toStringTag in rv ? rv[Symbol.toStringTag] : (ev = rv.constructor) === null || ev === void 0 ? void 0 : ev.name
      );
      if (iv === ov) {
        const av = qn$2(rv);
        throw new Error(`Cannot use ${iv} "${av}" from another module or realm.

Ensure that there is only one instance of "graphql" in the node_modules
directory. If different versions of "graphql" are the dependencies of other
relied on modules, use "resolutions" to ensure only one version is installed.

https://yarnpkg.com/en/docs/selective-version-resolutions

Duplicate "graphql" modules cannot be used at the same time since different
versions may have different capabilities and behavior. The data from one
version used in the function from another could produce confusing and
spurious results.`);
      }
    }
    return !1;
  }
);
let Br$1 = class {
  constructor(tv, ev = "GraphQL request", iv = {
    line: 1,
    column: 1
  }) {
    typeof tv == "string" || It$1(!1, `Body must be a string. Received: ${qn$2(tv)}.`), this.body = tv, this.name = ev, this.locationOffset = iv, this.locationOffset.line > 0 || It$1(
      !1,
      "line in locationOffset is 1-indexed and must be positive."
    ), this.locationOffset.column > 0 || It$1(
      !1,
      "column in locationOffset is 1-indexed and must be positive."
    );
  }
  get [Symbol.toStringTag]() {
    return "Source";
  }
};
function Ss$2(rv) {
  return Os$1(rv, Br$1);
}
function Ts$2(rv, tv) {
  return new ws$1(rv, tv).parseDocument();
}
let ws$1 = class {
  constructor(tv, ev = {}) {
    const iv = Ss$2(tv) ? tv : new Br$1(tv);
    this._lexer = new ss$1(iv), this._options = ev, this._tokenCounter = 0;
  }
  /**
   * Converts a name lex token into a name parse node.
   */
  parseName() {
    const tv = this.expectToken(d$2.NAME);
    return this.node(tv, {
      kind: E$2.NAME,
      value: tv.value
    });
  }
  // Implements the parsing rules in the Document section.
  /**
   * Document : Definition+
   */
  parseDocument() {
    return this.node(this._lexer.token, {
      kind: E$2.DOCUMENT,
      definitions: this.many(
        d$2.SOF,
        this.parseDefinition,
        d$2.EOF
      )
    });
  }
  /**
   * Definition :
   *   - ExecutableDefinition
   *   - TypeSystemDefinition
   *   - TypeSystemExtension
   *
   * ExecutableDefinition :
   *   - OperationDefinition
   *   - FragmentDefinition
   *
   * TypeSystemDefinition :
   *   - SchemaDefinition
   *   - TypeDefinition
   *   - DirectiveDefinition
   *
   * TypeDefinition :
   *   - ScalarTypeDefinition
   *   - ObjectTypeDefinition
   *   - InterfaceTypeDefinition
   *   - UnionTypeDefinition
   *   - EnumTypeDefinition
   *   - InputObjectTypeDefinition
   */
  parseDefinition() {
    if (this.peek(d$2.BRACE_L))
      return this.parseOperationDefinition();
    const tv = this.peekDescription(), ev = tv ? this._lexer.lookahead() : this._lexer.token;
    if (ev.kind === d$2.NAME) {
      switch (ev.value) {
        case "schema":
          return this.parseSchemaDefinition();
        case "scalar":
          return this.parseScalarTypeDefinition();
        case "type":
          return this.parseObjectTypeDefinition();
        case "interface":
          return this.parseInterfaceTypeDefinition();
        case "union":
          return this.parseUnionTypeDefinition();
        case "enum":
          return this.parseEnumTypeDefinition();
        case "input":
          return this.parseInputObjectTypeDefinition();
        case "directive":
          return this.parseDirectiveDefinition();
      }
      if (tv)
        throw F$1(
          this._lexer.source,
          this._lexer.token.start,
          "Unexpected description, descriptions are supported only on type definitions."
        );
      switch (ev.value) {
        case "query":
        case "mutation":
        case "subscription":
          return this.parseOperationDefinition();
        case "fragment":
          return this.parseFragmentDefinition();
        case "extend":
          return this.parseTypeSystemExtension();
      }
    }
    throw this.unexpected(ev);
  }
  // Implements the parsing rules in the Operations section.
  /**
   * OperationDefinition :
   *  - SelectionSet
   *  - OperationType Name? VariableDefinitions? Directives? SelectionSet
   */
  parseOperationDefinition() {
    const tv = this._lexer.token;
    if (this.peek(d$2.BRACE_L))
      return this.node(tv, {
        kind: E$2.OPERATION_DEFINITION,
        operation: Ge$2.QUERY,
        name: void 0,
        variableDefinitions: [],
        directives: [],
        selectionSet: this.parseSelectionSet()
      });
    const ev = this.parseOperationType();
    let iv;
    return this.peek(d$2.NAME) && (iv = this.parseName()), this.node(tv, {
      kind: E$2.OPERATION_DEFINITION,
      operation: ev,
      name: iv,
      variableDefinitions: this.parseVariableDefinitions(),
      directives: this.parseDirectives(!1),
      selectionSet: this.parseSelectionSet()
    });
  }
  /**
   * OperationType : one of query mutation subscription
   */
  parseOperationType() {
    const tv = this.expectToken(d$2.NAME);
    switch (tv.value) {
      case "query":
        return Ge$2.QUERY;
      case "mutation":
        return Ge$2.MUTATION;
      case "subscription":
        return Ge$2.SUBSCRIPTION;
    }
    throw this.unexpected(tv);
  }
  /**
   * VariableDefinitions : ( VariableDefinition+ )
   */
  parseVariableDefinitions() {
    return this.optionalMany(
      d$2.PAREN_L,
      this.parseVariableDefinition,
      d$2.PAREN_R
    );
  }
  /**
   * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?
   */
  parseVariableDefinition() {
    return this.node(this._lexer.token, {
      kind: E$2.VARIABLE_DEFINITION,
      variable: this.parseVariable(),
      type: (this.expectToken(d$2.COLON), this.parseTypeReference()),
      defaultValue: this.expectOptionalToken(d$2.EQUALS) ? this.parseConstValueLiteral() : void 0,
      directives: this.parseConstDirectives()
    });
  }
  /**
   * Variable : $ Name
   */
  parseVariable() {
    const tv = this._lexer.token;
    return this.expectToken(d$2.DOLLAR), this.node(tv, {
      kind: E$2.VARIABLE,
      name: this.parseName()
    });
  }
  /**
   * ```
   * SelectionSet : { Selection+ }
   * ```
   */
  parseSelectionSet() {
    return this.node(this._lexer.token, {
      kind: E$2.SELECTION_SET,
      selections: this.many(
        d$2.BRACE_L,
        this.parseSelection,
        d$2.BRACE_R
      )
    });
  }
  /**
   * Selection :
   *   - Field
   *   - FragmentSpread
   *   - InlineFragment
   */
  parseSelection() {
    return this.peek(d$2.SPREAD) ? this.parseFragment() : this.parseField();
  }
  /**
   * Field : Alias? Name Arguments? Directives? SelectionSet?
   *
   * Alias : Name :
   */
  parseField() {
    const tv = this._lexer.token, ev = this.parseName();
    let iv, ov;
    return this.expectOptionalToken(d$2.COLON) ? (iv = ev, ov = this.parseName()) : ov = ev, this.node(tv, {
      kind: E$2.FIELD,
      alias: iv,
      name: ov,
      arguments: this.parseArguments(!1),
      directives: this.parseDirectives(!1),
      selectionSet: this.peek(d$2.BRACE_L) ? this.parseSelectionSet() : void 0
    });
  }
  /**
   * Arguments[Const] : ( Argument[?Const]+ )
   */
  parseArguments(tv) {
    const ev = tv ? this.parseConstArgument : this.parseArgument;
    return this.optionalMany(d$2.PAREN_L, ev, d$2.PAREN_R);
  }
  /**
   * Argument[Const] : Name : Value[?Const]
   */
  parseArgument(tv = !1) {
    const ev = this._lexer.token, iv = this.parseName();
    return this.expectToken(d$2.COLON), this.node(ev, {
      kind: E$2.ARGUMENT,
      name: iv,
      value: this.parseValueLiteral(tv)
    });
  }
  parseConstArgument() {
    return this.parseArgument(!0);
  }
  // Implements the parsing rules in the Fragments section.
  /**
   * Corresponds to both FragmentSpread and InlineFragment in the spec.
   *
   * FragmentSpread : ... FragmentName Directives?
   *
   * InlineFragment : ... TypeCondition? Directives? SelectionSet
   */
  parseFragment() {
    const tv = this._lexer.token;
    this.expectToken(d$2.SPREAD);
    const ev = this.expectOptionalKeyword("on");
    return !ev && this.peek(d$2.NAME) ? this.node(tv, {
      kind: E$2.FRAGMENT_SPREAD,
      name: this.parseFragmentName(),
      directives: this.parseDirectives(!1)
    }) : this.node(tv, {
      kind: E$2.INLINE_FRAGMENT,
      typeCondition: ev ? this.parseNamedType() : void 0,
      directives: this.parseDirectives(!1),
      selectionSet: this.parseSelectionSet()
    });
  }
  /**
   * FragmentDefinition :
   *   - fragment FragmentName on TypeCondition Directives? SelectionSet
   *
   * TypeCondition : NamedType
   */
  parseFragmentDefinition() {
    const tv = this._lexer.token;
    return this.expectKeyword("fragment"), this._options.allowLegacyFragmentVariables === !0 ? this.node(tv, {
      kind: E$2.FRAGMENT_DEFINITION,
      name: this.parseFragmentName(),
      variableDefinitions: this.parseVariableDefinitions(),
      typeCondition: (this.expectKeyword("on"), this.parseNamedType()),
      directives: this.parseDirectives(!1),
      selectionSet: this.parseSelectionSet()
    }) : this.node(tv, {
      kind: E$2.FRAGMENT_DEFINITION,
      name: this.parseFragmentName(),
      typeCondition: (this.expectKeyword("on"), this.parseNamedType()),
      directives: this.parseDirectives(!1),
      selectionSet: this.parseSelectionSet()
    });
  }
  /**
   * FragmentName : Name but not `on`
   */
  parseFragmentName() {
    if (this._lexer.token.value === "on")
      throw this.unexpected();
    return this.parseName();
  }
  // Implements the parsing rules in the Values section.
  /**
   * Value[Const] :
   *   - [~Const] Variable
   *   - IntValue
   *   - FloatValue
   *   - StringValue
   *   - BooleanValue
   *   - NullValue
   *   - EnumValue
   *   - ListValue[?Const]
   *   - ObjectValue[?Const]
   *
   * BooleanValue : one of `true` `false`
   *
   * NullValue : `null`
   *
   * EnumValue : Name but not `true`, `false` or `null`
   */
  parseValueLiteral(tv) {
    const ev = this._lexer.token;
    switch (ev.kind) {
      case d$2.BRACKET_L:
        return this.parseList(tv);
      case d$2.BRACE_L:
        return this.parseObject(tv);
      case d$2.INT:
        return this.advanceLexer(), this.node(ev, {
          kind: E$2.INT,
          value: ev.value
        });
      case d$2.FLOAT:
        return this.advanceLexer(), this.node(ev, {
          kind: E$2.FLOAT,
          value: ev.value
        });
      case d$2.STRING:
      case d$2.BLOCK_STRING:
        return this.parseStringLiteral();
      case d$2.NAME:
        switch (this.advanceLexer(), ev.value) {
          case "true":
            return this.node(ev, {
              kind: E$2.BOOLEAN,
              value: !0
            });
          case "false":
            return this.node(ev, {
              kind: E$2.BOOLEAN,
              value: !1
            });
          case "null":
            return this.node(ev, {
              kind: E$2.NULL
            });
          default:
            return this.node(ev, {
              kind: E$2.ENUM,
              value: ev.value
            });
        }
      case d$2.DOLLAR:
        if (tv)
          if (this.expectToken(d$2.DOLLAR), this._lexer.token.kind === d$2.NAME) {
            const iv = this._lexer.token.value;
            throw F$1(
              this._lexer.source,
              ev.start,
              `Unexpected variable "$${iv}" in constant value.`
            );
          } else
            throw this.unexpected(ev);
        return this.parseVariable();
      default:
        throw this.unexpected();
    }
  }
  parseConstValueLiteral() {
    return this.parseValueLiteral(!0);
  }
  parseStringLiteral() {
    const tv = this._lexer.token;
    return this.advanceLexer(), this.node(tv, {
      kind: E$2.STRING,
      value: tv.value,
      block: tv.kind === d$2.BLOCK_STRING
    });
  }
  /**
   * ListValue[Const] :
   *   - [ ]
   *   - [ Value[?Const]+ ]
   */
  parseList(tv) {
    const ev = () => this.parseValueLiteral(tv);
    return this.node(this._lexer.token, {
      kind: E$2.LIST,
      values: this.any(d$2.BRACKET_L, ev, d$2.BRACKET_R)
    });
  }
  /**
   * ```
   * ObjectValue[Const] :
   *   - { }
   *   - { ObjectField[?Const]+ }
   * ```
   */
  parseObject(tv) {
    const ev = () => this.parseObjectField(tv);
    return this.node(this._lexer.token, {
      kind: E$2.OBJECT,
      fields: this.any(d$2.BRACE_L, ev, d$2.BRACE_R)
    });
  }
  /**
   * ObjectField[Const] : Name : Value[?Const]
   */
  parseObjectField(tv) {
    const ev = this._lexer.token, iv = this.parseName();
    return this.expectToken(d$2.COLON), this.node(ev, {
      kind: E$2.OBJECT_FIELD,
      name: iv,
      value: this.parseValueLiteral(tv)
    });
  }
  // Implements the parsing rules in the Directives section.
  /**
   * Directives[Const] : Directive[?Const]+
   */
  parseDirectives(tv) {
    const ev = [];
    for (; this.peek(d$2.AT); )
      ev.push(this.parseDirective(tv));
    return ev;
  }
  parseConstDirectives() {
    return this.parseDirectives(!0);
  }
  /**
   * ```
   * Directive[Const] : @ Name Arguments[?Const]?
   * ```
   */
  parseDirective(tv) {
    const ev = this._lexer.token;
    return this.expectToken(d$2.AT), this.node(ev, {
      kind: E$2.DIRECTIVE,
      name: this.parseName(),
      arguments: this.parseArguments(tv)
    });
  }
  // Implements the parsing rules in the Types section.
  /**
   * Type :
   *   - NamedType
   *   - ListType
   *   - NonNullType
   */
  parseTypeReference() {
    const tv = this._lexer.token;
    let ev;
    if (this.expectOptionalToken(d$2.BRACKET_L)) {
      const iv = this.parseTypeReference();
      this.expectToken(d$2.BRACKET_R), ev = this.node(tv, {
        kind: E$2.LIST_TYPE,
        type: iv
      });
    } else
      ev = this.parseNamedType();
    return this.expectOptionalToken(d$2.BANG) ? this.node(tv, {
      kind: E$2.NON_NULL_TYPE,
      type: ev
    }) : ev;
  }
  /**
   * NamedType : Name
   */
  parseNamedType() {
    return this.node(this._lexer.token, {
      kind: E$2.NAMED_TYPE,
      name: this.parseName()
    });
  }
  // Implements the parsing rules in the Type Definition section.
  peekDescription() {
    return this.peek(d$2.STRING) || this.peek(d$2.BLOCK_STRING);
  }
  /**
   * Description : StringValue
   */
  parseDescription() {
    if (this.peekDescription())
      return this.parseStringLiteral();
  }
  /**
   * ```
   * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }
   * ```
   */
  parseSchemaDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("schema");
    const iv = this.parseConstDirectives(), ov = this.many(
      d$2.BRACE_L,
      this.parseOperationTypeDefinition,
      d$2.BRACE_R
    );
    return this.node(tv, {
      kind: E$2.SCHEMA_DEFINITION,
      description: ev,
      directives: iv,
      operationTypes: ov
    });
  }
  /**
   * OperationTypeDefinition : OperationType : NamedType
   */
  parseOperationTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseOperationType();
    this.expectToken(d$2.COLON);
    const iv = this.parseNamedType();
    return this.node(tv, {
      kind: E$2.OPERATION_TYPE_DEFINITION,
      operation: ev,
      type: iv
    });
  }
  /**
   * ScalarTypeDefinition : Description? scalar Name Directives[Const]?
   */
  parseScalarTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("scalar");
    const iv = this.parseName(), ov = this.parseConstDirectives();
    return this.node(tv, {
      kind: E$2.SCALAR_TYPE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov
    });
  }
  /**
   * ObjectTypeDefinition :
   *   Description?
   *   type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?
   */
  parseObjectTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("type");
    const iv = this.parseName(), ov = this.parseImplementsInterfaces(), av = this.parseConstDirectives(), sv = this.parseFieldsDefinition();
    return this.node(tv, {
      kind: E$2.OBJECT_TYPE_DEFINITION,
      description: ev,
      name: iv,
      interfaces: ov,
      directives: av,
      fields: sv
    });
  }
  /**
   * ImplementsInterfaces :
   *   - implements `&`? NamedType
   *   - ImplementsInterfaces & NamedType
   */
  parseImplementsInterfaces() {
    return this.expectOptionalKeyword("implements") ? this.delimitedMany(d$2.AMP, this.parseNamedType) : [];
  }
  /**
   * ```
   * FieldsDefinition : { FieldDefinition+ }
   * ```
   */
  parseFieldsDefinition() {
    return this.optionalMany(
      d$2.BRACE_L,
      this.parseFieldDefinition,
      d$2.BRACE_R
    );
  }
  /**
   * FieldDefinition :
   *   - Description? Name ArgumentsDefinition? : Type Directives[Const]?
   */
  parseFieldDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription(), iv = this.parseName(), ov = this.parseArgumentDefs();
    this.expectToken(d$2.COLON);
    const av = this.parseTypeReference(), sv = this.parseConstDirectives();
    return this.node(tv, {
      kind: E$2.FIELD_DEFINITION,
      description: ev,
      name: iv,
      arguments: ov,
      type: av,
      directives: sv
    });
  }
  /**
   * ArgumentsDefinition : ( InputValueDefinition+ )
   */
  parseArgumentDefs() {
    return this.optionalMany(
      d$2.PAREN_L,
      this.parseInputValueDef,
      d$2.PAREN_R
    );
  }
  /**
   * InputValueDefinition :
   *   - Description? Name : Type DefaultValue? Directives[Const]?
   */
  parseInputValueDef() {
    const tv = this._lexer.token, ev = this.parseDescription(), iv = this.parseName();
    this.expectToken(d$2.COLON);
    const ov = this.parseTypeReference();
    let av;
    this.expectOptionalToken(d$2.EQUALS) && (av = this.parseConstValueLiteral());
    const sv = this.parseConstDirectives();
    return this.node(tv, {
      kind: E$2.INPUT_VALUE_DEFINITION,
      description: ev,
      name: iv,
      type: ov,
      defaultValue: av,
      directives: sv
    });
  }
  /**
   * InterfaceTypeDefinition :
   *   - Description? interface Name Directives[Const]? FieldsDefinition?
   */
  parseInterfaceTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("interface");
    const iv = this.parseName(), ov = this.parseImplementsInterfaces(), av = this.parseConstDirectives(), sv = this.parseFieldsDefinition();
    return this.node(tv, {
      kind: E$2.INTERFACE_TYPE_DEFINITION,
      description: ev,
      name: iv,
      interfaces: ov,
      directives: av,
      fields: sv
    });
  }
  /**
   * UnionTypeDefinition :
   *   - Description? union Name Directives[Const]? UnionMemberTypes?
   */
  parseUnionTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("union");
    const iv = this.parseName(), ov = this.parseConstDirectives(), av = this.parseUnionMemberTypes();
    return this.node(tv, {
      kind: E$2.UNION_TYPE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov,
      types: av
    });
  }
  /**
   * UnionMemberTypes :
   *   - = `|`? NamedType
   *   - UnionMemberTypes | NamedType
   */
  parseUnionMemberTypes() {
    return this.expectOptionalToken(d$2.EQUALS) ? this.delimitedMany(d$2.PIPE, this.parseNamedType) : [];
  }
  /**
   * EnumTypeDefinition :
   *   - Description? enum Name Directives[Const]? EnumValuesDefinition?
   */
  parseEnumTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("enum");
    const iv = this.parseName(), ov = this.parseConstDirectives(), av = this.parseEnumValuesDefinition();
    return this.node(tv, {
      kind: E$2.ENUM_TYPE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov,
      values: av
    });
  }
  /**
   * ```
   * EnumValuesDefinition : { EnumValueDefinition+ }
   * ```
   */
  parseEnumValuesDefinition() {
    return this.optionalMany(
      d$2.BRACE_L,
      this.parseEnumValueDefinition,
      d$2.BRACE_R
    );
  }
  /**
   * EnumValueDefinition : Description? EnumValue Directives[Const]?
   */
  parseEnumValueDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription(), iv = this.parseEnumValueName(), ov = this.parseConstDirectives();
    return this.node(tv, {
      kind: E$2.ENUM_VALUE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov
    });
  }
  /**
   * EnumValue : Name but not `true`, `false` or `null`
   */
  parseEnumValueName() {
    if (this._lexer.token.value === "true" || this._lexer.token.value === "false" || this._lexer.token.value === "null")
      throw F$1(
        this._lexer.source,
        this._lexer.token.start,
        `${Tt$2(
          this._lexer.token
        )} is reserved and cannot be used for an enum value.`
      );
    return this.parseName();
  }
  /**
   * InputObjectTypeDefinition :
   *   - Description? input Name Directives[Const]? InputFieldsDefinition?
   */
  parseInputObjectTypeDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("input");
    const iv = this.parseName(), ov = this.parseConstDirectives(), av = this.parseInputFieldsDefinition();
    return this.node(tv, {
      kind: E$2.INPUT_OBJECT_TYPE_DEFINITION,
      description: ev,
      name: iv,
      directives: ov,
      fields: av
    });
  }
  /**
   * ```
   * InputFieldsDefinition : { InputValueDefinition+ }
   * ```
   */
  parseInputFieldsDefinition() {
    return this.optionalMany(
      d$2.BRACE_L,
      this.parseInputValueDef,
      d$2.BRACE_R
    );
  }
  /**
   * TypeSystemExtension :
   *   - SchemaExtension
   *   - TypeExtension
   *
   * TypeExtension :
   *   - ScalarTypeExtension
   *   - ObjectTypeExtension
   *   - InterfaceTypeExtension
   *   - UnionTypeExtension
   *   - EnumTypeExtension
   *   - InputObjectTypeDefinition
   */
  parseTypeSystemExtension() {
    const tv = this._lexer.lookahead();
    if (tv.kind === d$2.NAME)
      switch (tv.value) {
        case "schema":
          return this.parseSchemaExtension();
        case "scalar":
          return this.parseScalarTypeExtension();
        case "type":
          return this.parseObjectTypeExtension();
        case "interface":
          return this.parseInterfaceTypeExtension();
        case "union":
          return this.parseUnionTypeExtension();
        case "enum":
          return this.parseEnumTypeExtension();
        case "input":
          return this.parseInputObjectTypeExtension();
      }
    throw this.unexpected(tv);
  }
  /**
   * ```
   * SchemaExtension :
   *  - extend schema Directives[Const]? { OperationTypeDefinition+ }
   *  - extend schema Directives[Const]
   * ```
   */
  parseSchemaExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("schema");
    const ev = this.parseConstDirectives(), iv = this.optionalMany(
      d$2.BRACE_L,
      this.parseOperationTypeDefinition,
      d$2.BRACE_R
    );
    if (ev.length === 0 && iv.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: E$2.SCHEMA_EXTENSION,
      directives: ev,
      operationTypes: iv
    });
  }
  /**
   * ScalarTypeExtension :
   *   - extend scalar Name Directives[Const]
   */
  parseScalarTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("scalar");
    const ev = this.parseName(), iv = this.parseConstDirectives();
    if (iv.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: E$2.SCALAR_TYPE_EXTENSION,
      name: ev,
      directives: iv
    });
  }
  /**
   * ObjectTypeExtension :
   *  - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
   *  - extend type Name ImplementsInterfaces? Directives[Const]
   *  - extend type Name ImplementsInterfaces
   */
  parseObjectTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("type");
    const ev = this.parseName(), iv = this.parseImplementsInterfaces(), ov = this.parseConstDirectives(), av = this.parseFieldsDefinition();
    if (iv.length === 0 && ov.length === 0 && av.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: E$2.OBJECT_TYPE_EXTENSION,
      name: ev,
      interfaces: iv,
      directives: ov,
      fields: av
    });
  }
  /**
   * InterfaceTypeExtension :
   *  - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
   *  - extend interface Name ImplementsInterfaces? Directives[Const]
   *  - extend interface Name ImplementsInterfaces
   */
  parseInterfaceTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("interface");
    const ev = this.parseName(), iv = this.parseImplementsInterfaces(), ov = this.parseConstDirectives(), av = this.parseFieldsDefinition();
    if (iv.length === 0 && ov.length === 0 && av.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: E$2.INTERFACE_TYPE_EXTENSION,
      name: ev,
      interfaces: iv,
      directives: ov,
      fields: av
    });
  }
  /**
   * UnionTypeExtension :
   *   - extend union Name Directives[Const]? UnionMemberTypes
   *   - extend union Name Directives[Const]
   */
  parseUnionTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("union");
    const ev = this.parseName(), iv = this.parseConstDirectives(), ov = this.parseUnionMemberTypes();
    if (iv.length === 0 && ov.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: E$2.UNION_TYPE_EXTENSION,
      name: ev,
      directives: iv,
      types: ov
    });
  }
  /**
   * EnumTypeExtension :
   *   - extend enum Name Directives[Const]? EnumValuesDefinition
   *   - extend enum Name Directives[Const]
   */
  parseEnumTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("enum");
    const ev = this.parseName(), iv = this.parseConstDirectives(), ov = this.parseEnumValuesDefinition();
    if (iv.length === 0 && ov.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: E$2.ENUM_TYPE_EXTENSION,
      name: ev,
      directives: iv,
      values: ov
    });
  }
  /**
   * InputObjectTypeExtension :
   *   - extend input Name Directives[Const]? InputFieldsDefinition
   *   - extend input Name Directives[Const]
   */
  parseInputObjectTypeExtension() {
    const tv = this._lexer.token;
    this.expectKeyword("extend"), this.expectKeyword("input");
    const ev = this.parseName(), iv = this.parseConstDirectives(), ov = this.parseInputFieldsDefinition();
    if (iv.length === 0 && ov.length === 0)
      throw this.unexpected();
    return this.node(tv, {
      kind: E$2.INPUT_OBJECT_TYPE_EXTENSION,
      name: ev,
      directives: iv,
      fields: ov
    });
  }
  /**
   * ```
   * DirectiveDefinition :
   *   - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations
   * ```
   */
  parseDirectiveDefinition() {
    const tv = this._lexer.token, ev = this.parseDescription();
    this.expectKeyword("directive"), this.expectToken(d$2.AT);
    const iv = this.parseName(), ov = this.parseArgumentDefs(), av = this.expectOptionalKeyword("repeatable");
    this.expectKeyword("on");
    const sv = this.parseDirectiveLocations();
    return this.node(tv, {
      kind: E$2.DIRECTIVE_DEFINITION,
      description: ev,
      name: iv,
      arguments: ov,
      repeatable: av,
      locations: sv
    });
  }
  /**
   * DirectiveLocations :
   *   - `|`? DirectiveLocation
   *   - DirectiveLocations | DirectiveLocation
   */
  parseDirectiveLocations() {
    return this.delimitedMany(d$2.PIPE, this.parseDirectiveLocation);
  }
  /*
   * DirectiveLocation :
   *   - ExecutableDirectiveLocation
   *   - TypeSystemDirectiveLocation
   *
   * ExecutableDirectiveLocation : one of
   *   `QUERY`
   *   `MUTATION`
   *   `SUBSCRIPTION`
   *   `FIELD`
   *   `FRAGMENT_DEFINITION`
   *   `FRAGMENT_SPREAD`
   *   `INLINE_FRAGMENT`
   *
   * TypeSystemDirectiveLocation : one of
   *   `SCHEMA`
   *   `SCALAR`
   *   `OBJECT`
   *   `FIELD_DEFINITION`
   *   `ARGUMENT_DEFINITION`
   *   `INTERFACE`
   *   `UNION`
   *   `ENUM`
   *   `ENUM_VALUE`
   *   `INPUT_OBJECT`
   *   `INPUT_FIELD_DEFINITION`
   */
  parseDirectiveLocation() {
    const tv = this._lexer.token, ev = this.parseName();
    if (Object.prototype.hasOwnProperty.call(En$2, ev.value))
      return ev;
    throw this.unexpected(tv);
  }
  // Core parsing utility functions
  /**
   * Returns a node that, if configured to do so, sets a "loc" field as a
   * location object, used to identify the place in the source that created a
   * given parsed object.
   */
  node(tv, ev) {
    return this._options.noLocation !== !0 && (ev.loc = new Zi$1(
      tv,
      this._lexer.lastToken,
      this._lexer.source
    )), ev;
  }
  /**
   * Determines if the next token is of a given kind
   */
  peek(tv) {
    return this._lexer.token.kind === tv;
  }
  /**
   * If the next token is of the given kind, return that token after advancing the lexer.
   * Otherwise, do not change the parser state and throw an error.
   */
  expectToken(tv) {
    const ev = this._lexer.token;
    if (ev.kind === tv)
      return this.advanceLexer(), ev;
    throw F$1(
      this._lexer.source,
      ev.start,
      `Expected ${Fr$1(tv)}, found ${Tt$2(ev)}.`
    );
  }
  /**
   * If the next token is of the given kind, return "true" after advancing the lexer.
   * Otherwise, do not change the parser state and return "false".
   */
  expectOptionalToken(tv) {
    return this._lexer.token.kind === tv ? (this.advanceLexer(), !0) : !1;
  }
  /**
   * If the next token is a given keyword, advance the lexer.
   * Otherwise, do not change the parser state and throw an error.
   */
  expectKeyword(tv) {
    const ev = this._lexer.token;
    if (ev.kind === d$2.NAME && ev.value === tv)
      this.advanceLexer();
    else
      throw F$1(
        this._lexer.source,
        ev.start,
        `Expected "${tv}", found ${Tt$2(ev)}.`
      );
  }
  /**
   * If the next token is a given keyword, return "true" after advancing the lexer.
   * Otherwise, do not change the parser state and return "false".
   */
  expectOptionalKeyword(tv) {
    const ev = this._lexer.token;
    return ev.kind === d$2.NAME && ev.value === tv ? (this.advanceLexer(), !0) : !1;
  }
  /**
   * Helper function for creating an error when an unexpected lexed token is encountered.
   */
  unexpected(tv) {
    const ev = tv ?? this._lexer.token;
    return F$1(
      this._lexer.source,
      ev.start,
      `Unexpected ${Tt$2(ev)}.`
    );
  }
  /**
   * Returns a possibly empty list of parse nodes, determined by the parseFn.
   * This list begins with a lex token of openKind and ends with a lex token of closeKind.
   * Advances the parser to the next lex token after the closing token.
   */
  any(tv, ev, iv) {
    this.expectToken(tv);
    const ov = [];
    for (; !this.expectOptionalToken(iv); )
      ov.push(ev.call(this));
    return ov;
  }
  /**
   * Returns a list of parse nodes, determined by the parseFn.
   * It can be empty only if open token is missing otherwise it will always return non-empty list
   * that begins with a lex token of openKind and ends with a lex token of closeKind.
   * Advances the parser to the next lex token after the closing token.
   */
  optionalMany(tv, ev, iv) {
    if (this.expectOptionalToken(tv)) {
      const ov = [];
      do
        ov.push(ev.call(this));
      while (!this.expectOptionalToken(iv));
      return ov;
    }
    return [];
  }
  /**
   * Returns a non-empty list of parse nodes, determined by the parseFn.
   * This list begins with a lex token of openKind and ends with a lex token of closeKind.
   * Advances the parser to the next lex token after the closing token.
   */
  many(tv, ev, iv) {
    this.expectToken(tv);
    const ov = [];
    do
      ov.push(ev.call(this));
    while (!this.expectOptionalToken(iv));
    return ov;
  }
  /**
   * Returns a non-empty list of parse nodes, determined by the parseFn.
   * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.
   * Advances the parser to the next lex token after last item in the list.
   */
  delimitedMany(tv, ev) {
    this.expectOptionalToken(tv);
    const iv = [];
    do
      iv.push(ev.call(this));
    while (this.expectOptionalToken(tv));
    return iv;
  }
  advanceLexer() {
    const { maxTokens: tv } = this._options, ev = this._lexer.advance();
    if (tv !== void 0 && ev.kind !== d$2.EOF && (++this._tokenCounter, this._tokenCounter > tv))
      throw F$1(
        this._lexer.source,
        ev.start,
        `Document contains more that ${tv} tokens. Parsing aborted.`
      );
  }
};
function Tt$2(rv) {
  const tv = rv.value;
  return Fr$1(rv.kind) + (tv != null ? ` "${tv}"` : "");
}
function Fr$1(rv) {
  return os$1(rv) ? `"${rv}"` : rv;
}
function Ns(rv) {
  return `"${rv.replace(xs$2, Is)}"`;
}
const xs$2 = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g;
function Is(rv) {
  return Cs$1[rv.charCodeAt(0)];
}
const Cs$1 = [
  "\\u0000",
  "\\u0001",
  "\\u0002",
  "\\u0003",
  "\\u0004",
  "\\u0005",
  "\\u0006",
  "\\u0007",
  "\\b",
  "\\t",
  "\\n",
  "\\u000B",
  "\\f",
  "\\r",
  "\\u000E",
  "\\u000F",
  "\\u0010",
  "\\u0011",
  "\\u0012",
  "\\u0013",
  "\\u0014",
  "\\u0015",
  "\\u0016",
  "\\u0017",
  "\\u0018",
  "\\u0019",
  "\\u001A",
  "\\u001B",
  "\\u001C",
  "\\u001D",
  "\\u001E",
  "\\u001F",
  "",
  "",
  '\\"',
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  // 2F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  // 3F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  // 4F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "\\\\",
  "",
  "",
  "",
  // 5F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  // 6F
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "\\u007F",
  "\\u0080",
  "\\u0081",
  "\\u0082",
  "\\u0083",
  "\\u0084",
  "\\u0085",
  "\\u0086",
  "\\u0087",
  "\\u0088",
  "\\u0089",
  "\\u008A",
  "\\u008B",
  "\\u008C",
  "\\u008D",
  "\\u008E",
  "\\u008F",
  "\\u0090",
  "\\u0091",
  "\\u0092",
  "\\u0093",
  "\\u0094",
  "\\u0095",
  "\\u0096",
  "\\u0097",
  "\\u0098",
  "\\u0099",
  "\\u009A",
  "\\u009B",
  "\\u009C",
  "\\u009D",
  "\\u009E",
  "\\u009F"
], Ds = Object.freeze({});
function Rs$1(rv, tv, ev = Rr$1) {
  const iv = /* @__PURE__ */ new Map();
  for (const wv of Object.values(E$2))
    iv.set(wv, Ps$1(tv, wv));
  let ov, av = Array.isArray(rv), sv = [rv], lv = -1, uv = [], cv = rv, dv, hv;
  const pv = [], yv = [];
  do {
    lv++;
    const wv = lv === sv.length, xv = wv && uv.length !== 0;
    if (wv) {
      if (dv = yv.length === 0 ? void 0 : pv[pv.length - 1], cv = hv, hv = yv.pop(), xv)
        if (av) {
          cv = cv.slice();
          let Av = 0;
          for (const [Ov, Lv] of uv) {
            const jv = Ov - Av;
            Lv === null ? (cv.splice(jv, 1), Av++) : cv[jv] = Lv;
          }
        } else {
          cv = Object.defineProperties(
            {},
            Object.getOwnPropertyDescriptors(cv)
          );
          for (const [Av, Ov] of uv)
            cv[Av] = Ov;
        }
      lv = ov.index, sv = ov.keys, uv = ov.edits, av = ov.inArray, ov = ov.prev;
    } else if (hv) {
      if (dv = av ? lv : sv[lv], cv = hv[dv], cv == null)
        continue;
      pv.push(dv);
    }
    let Cv;
    if (!Array.isArray(cv)) {
      var Sv, _v;
      rr$1(cv) || It$1(!1, `Invalid AST Node: ${qn$2(cv)}.`);
      const Av = wv ? (Sv = iv.get(cv.kind)) === null || Sv === void 0 ? void 0 : Sv.leave : (_v = iv.get(cv.kind)) === null || _v === void 0 ? void 0 : _v.enter;
      if (Cv = Av == null ? void 0 : Av.call(tv, cv, dv, hv, pv, yv), Cv === Ds)
        break;
      if (Cv === !1) {
        if (!wv) {
          pv.pop();
          continue;
        }
      } else if (Cv !== void 0 && (uv.push([dv, Cv]), !wv))
        if (rr$1(Cv))
          cv = Cv;
        else {
          pv.pop();
          continue;
        }
    }
    if (Cv === void 0 && xv && uv.push([dv, cv]), wv)
      pv.pop();
    else {
      var Ev;
      ov = {
        inArray: av,
        index: lv,
        keys: sv,
        edits: uv,
        prev: ov
      }, av = Array.isArray(cv), sv = av ? cv : (Ev = ev[cv.kind]) !== null && Ev !== void 0 ? Ev : [], lv = -1, uv = [], hv && yv.push(hv), hv = cv;
    }
  } while (ov !== void 0);
  return uv.length !== 0 ? uv[uv.length - 1][1] : rv;
}
function Ps$1(rv, tv) {
  const ev = rv[tv];
  return typeof ev == "object" ? ev : typeof ev == "function" ? {
    enter: ev,
    leave: void 0
  } : {
    enter: rv.enter,
    leave: rv.leave
  };
}
function Ls(rv) {
  return Rs$1(rv, ks);
}
const Ms = 80, ks = {
  Name: {
    leave: (rv) => rv.value
  },
  Variable: {
    leave: (rv) => "$" + rv.name
  },
  // Document
  Document: {
    leave: (rv) => m$3(rv.definitions, `

`)
  },
  OperationDefinition: {
    leave(rv) {
      const tv = w("(", m$3(rv.variableDefinitions, ", "), ")"), ev = m$3(
        [
          rv.operation,
          m$3([rv.name, tv]),
          m$3(rv.directives, " ")
        ],
        " "
      );
      return (ev === "query" ? "" : ev + " ") + rv.selectionSet;
    }
  },
  VariableDefinition: {
    leave: ({ variable: rv, type: tv, defaultValue: ev, directives: iv }) => rv + ": " + tv + w(" = ", ev) + w(" ", m$3(iv, " "))
  },
  SelectionSet: {
    leave: ({ selections: rv }) => ee$1(rv)
  },
  Field: {
    leave({ alias: rv, name: tv, arguments: ev, directives: iv, selectionSet: ov }) {
      const av = w("", rv, ": ") + tv;
      let sv = av + w("(", m$3(ev, ", "), ")");
      return sv.length > Ms && (sv = av + w(`(
`, Ct$1(m$3(ev, `
`)), `
)`)), m$3([sv, m$3(iv, " "), ov], " ");
    }
  },
  Argument: {
    leave: ({ name: rv, value: tv }) => rv + ": " + tv
  },
  // Fragments
  FragmentSpread: {
    leave: ({ name: rv, directives: tv }) => "..." + rv + w(" ", m$3(tv, " "))
  },
  InlineFragment: {
    leave: ({ typeCondition: rv, directives: tv, selectionSet: ev }) => m$3(
      [
        "...",
        w("on ", rv),
        m$3(tv, " "),
        ev
      ],
      " "
    )
  },
  FragmentDefinition: {
    leave: ({ name: rv, typeCondition: tv, variableDefinitions: ev, directives: iv, selectionSet: ov }) => (
      // or removed in the future.
      `fragment ${rv}${w("(", m$3(ev, ", "), ")")} on ${tv} ${w("", m$3(iv, " "), " ")}` + ov
    )
  },
  // Value
  IntValue: {
    leave: ({ value: rv }) => rv
  },
  FloatValue: {
    leave: ({ value: rv }) => rv
  },
  StringValue: {
    leave: ({ value: rv, block: tv }) => tv ? is$1(rv) : Ns(rv)
  },
  BooleanValue: {
    leave: ({ value: rv }) => rv ? "true" : "false"
  },
  NullValue: {
    leave: () => "null"
  },
  EnumValue: {
    leave: ({ value: rv }) => rv
  },
  ListValue: {
    leave: ({ values: rv }) => "[" + m$3(rv, ", ") + "]"
  },
  ObjectValue: {
    leave: ({ fields: rv }) => "{" + m$3(rv, ", ") + "}"
  },
  ObjectField: {
    leave: ({ name: rv, value: tv }) => rv + ": " + tv
  },
  // Directive
  Directive: {
    leave: ({ name: rv, arguments: tv }) => "@" + rv + w("(", m$3(tv, ", "), ")")
  },
  // Type
  NamedType: {
    leave: ({ name: rv }) => rv
  },
  ListType: {
    leave: ({ type: rv }) => "[" + rv + "]"
  },
  NonNullType: {
    leave: ({ type: rv }) => rv + "!"
  },
  // Type System Definitions
  SchemaDefinition: {
    leave: ({ description: rv, directives: tv, operationTypes: ev }) => w("", rv, `
`) + m$3(["schema", m$3(tv, " "), ee$1(ev)], " ")
  },
  OperationTypeDefinition: {
    leave: ({ operation: rv, type: tv }) => rv + ": " + tv
  },
  ScalarTypeDefinition: {
    leave: ({ description: rv, name: tv, directives: ev }) => w("", rv, `
`) + m$3(["scalar", tv, m$3(ev, " ")], " ")
  },
  ObjectTypeDefinition: {
    leave: ({ description: rv, name: tv, interfaces: ev, directives: iv, fields: ov }) => w("", rv, `
`) + m$3(
      [
        "type",
        tv,
        w("implements ", m$3(ev, " & ")),
        m$3(iv, " "),
        ee$1(ov)
      ],
      " "
    )
  },
  FieldDefinition: {
    leave: ({ description: rv, name: tv, arguments: ev, type: iv, directives: ov }) => w("", rv, `
`) + tv + (sr$2(ev) ? w(`(
`, Ct$1(m$3(ev, `
`)), `
)`) : w("(", m$3(ev, ", "), ")")) + ": " + iv + w(" ", m$3(ov, " "))
  },
  InputValueDefinition: {
    leave: ({ description: rv, name: tv, type: ev, defaultValue: iv, directives: ov }) => w("", rv, `
`) + m$3(
      [tv + ": " + ev, w("= ", iv), m$3(ov, " ")],
      " "
    )
  },
  InterfaceTypeDefinition: {
    leave: ({ description: rv, name: tv, interfaces: ev, directives: iv, fields: ov }) => w("", rv, `
`) + m$3(
      [
        "interface",
        tv,
        w("implements ", m$3(ev, " & ")),
        m$3(iv, " "),
        ee$1(ov)
      ],
      " "
    )
  },
  UnionTypeDefinition: {
    leave: ({ description: rv, name: tv, directives: ev, types: iv }) => w("", rv, `
`) + m$3(
      ["union", tv, m$3(ev, " "), w("= ", m$3(iv, " | "))],
      " "
    )
  },
  EnumTypeDefinition: {
    leave: ({ description: rv, name: tv, directives: ev, values: iv }) => w("", rv, `
`) + m$3(["enum", tv, m$3(ev, " "), ee$1(iv)], " ")
  },
  EnumValueDefinition: {
    leave: ({ description: rv, name: tv, directives: ev }) => w("", rv, `
`) + m$3([tv, m$3(ev, " ")], " ")
  },
  InputObjectTypeDefinition: {
    leave: ({ description: rv, name: tv, directives: ev, fields: iv }) => w("", rv, `
`) + m$3(["input", tv, m$3(ev, " "), ee$1(iv)], " ")
  },
  DirectiveDefinition: {
    leave: ({ description: rv, name: tv, arguments: ev, repeatable: iv, locations: ov }) => w("", rv, `
`) + "directive @" + tv + (sr$2(ev) ? w(`(
`, Ct$1(m$3(ev, `
`)), `
)`) : w("(", m$3(ev, ", "), ")")) + (iv ? " repeatable" : "") + " on " + m$3(ov, " | ")
  },
  SchemaExtension: {
    leave: ({ directives: rv, operationTypes: tv }) => m$3(
      ["extend schema", m$3(rv, " "), ee$1(tv)],
      " "
    )
  },
  ScalarTypeExtension: {
    leave: ({ name: rv, directives: tv }) => m$3(["extend scalar", rv, m$3(tv, " ")], " ")
  },
  ObjectTypeExtension: {
    leave: ({ name: rv, interfaces: tv, directives: ev, fields: iv }) => m$3(
      [
        "extend type",
        rv,
        w("implements ", m$3(tv, " & ")),
        m$3(ev, " "),
        ee$1(iv)
      ],
      " "
    )
  },
  InterfaceTypeExtension: {
    leave: ({ name: rv, interfaces: tv, directives: ev, fields: iv }) => m$3(
      [
        "extend interface",
        rv,
        w("implements ", m$3(tv, " & ")),
        m$3(ev, " "),
        ee$1(iv)
      ],
      " "
    )
  },
  UnionTypeExtension: {
    leave: ({ name: rv, directives: tv, types: ev }) => m$3(
      [
        "extend union",
        rv,
        m$3(tv, " "),
        w("= ", m$3(ev, " | "))
      ],
      " "
    )
  },
  EnumTypeExtension: {
    leave: ({ name: rv, directives: tv, values: ev }) => m$3(["extend enum", rv, m$3(tv, " "), ee$1(ev)], " ")
  },
  InputObjectTypeExtension: {
    leave: ({ name: rv, directives: tv, fields: ev }) => m$3(["extend input", rv, m$3(tv, " "), ee$1(ev)], " ")
  }
};
function m$3(rv, tv = "") {
  var ev;
  return (ev = rv == null ? void 0 : rv.filter((iv) => iv).join(tv)) !== null && ev !== void 0 ? ev : "";
}
function ee$1(rv) {
  return w(`{
`, Ct$1(m$3(rv, `
`)), `
}`);
}
function w(rv, tv, ev = "") {
  return tv != null && tv !== "" ? rv + tv + ev : "";
}
function Ct$1(rv) {
  return w("  ", rv.replace(/\n/g, `
  `));
}
function sr$2(rv) {
  var tv;
  return (tv = rv == null ? void 0 : rv.some((ev) => ev.includes(`
`))) !== null && tv !== void 0 ? tv : !1;
}
const or$2 = (rv) => {
  var tv, ev;
  let iv;
  const ov = rv.definitions.filter((av) => av.kind === "OperationDefinition");
  return ov.length === 1 && (iv = (ev = (tv = ov[0]) == null ? void 0 : tv.name) == null ? void 0 : ev.value), iv;
}, un$1 = (rv) => {
  if (typeof rv == "string") {
    let ev;
    try {
      const iv = Ts$2(rv);
      ev = or$2(iv);
    } catch {
    }
    return { query: rv, operationName: ev };
  }
  const tv = or$2(rv);
  return { query: Ls(rv), operationName: tv };
};
let ut$2 = class ID extends Error {
  constructor(tv, ev) {
    const iv = `${ID.extractMessage(tv)}: ${JSON.stringify({
      response: tv,
      request: ev
    })}`;
    super(iv), Object.setPrototypeOf(this, ID.prototype), this.response = tv, this.request = ev, typeof Error.captureStackTrace == "function" && Error.captureStackTrace(this, ID);
  }
  static extractMessage(tv) {
    var ev, iv, ov;
    return (ov = (iv = (ev = tv.errors) == null ? void 0 : ev[0]) == null ? void 0 : iv.message) != null ? ov : `GraphQL Error (Code: ${tv.status})`;
  }
};
var js$1 = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function Bs$1(rv) {
  return rv && rv.__esModule && Object.prototype.hasOwnProperty.call(rv, "default") ? rv.default : rv;
}
var On$2 = { exports: {} };
(function(rv, tv) {
  var ev = typeof self < "u" ? self : js$1, iv = function() {
    function av() {
      this.fetch = !1, this.DOMException = ev.DOMException;
    }
    return av.prototype = ev, new av();
  }();
  (function(av) {
    (function(sv) {
      var lv = {
        searchParams: "URLSearchParams" in av,
        iterable: "Symbol" in av && "iterator" in Symbol,
        blob: "FileReader" in av && "Blob" in av && function() {
          try {
            return new Blob(), !0;
          } catch {
            return !1;
          }
        }(),
        formData: "FormData" in av,
        arrayBuffer: "ArrayBuffer" in av
      };
      function uv(Bv) {
        return Bv && DataView.prototype.isPrototypeOf(Bv);
      }
      if (lv.arrayBuffer)
        var cv = [
          "[object Int8Array]",
          "[object Uint8Array]",
          "[object Uint8ClampedArray]",
          "[object Int16Array]",
          "[object Uint16Array]",
          "[object Int32Array]",
          "[object Uint32Array]",
          "[object Float32Array]",
          "[object Float64Array]"
        ], dv = ArrayBuffer.isView || function(Bv) {
          return Bv && cv.indexOf(Object.prototype.toString.call(Bv)) > -1;
        };
      function hv(Bv) {
        if (typeof Bv != "string" && (Bv = String(Bv)), /[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Bv))
          throw new TypeError("Invalid character in header field name");
        return Bv.toLowerCase();
      }
      function pv(Bv) {
        return typeof Bv != "string" && (Bv = String(Bv)), Bv;
      }
      function yv(Bv) {
        var Qv = {
          next: function() {
            var B1 = Bv.shift();
            return { done: B1 === void 0, value: B1 };
          }
        };
        return lv.iterable && (Qv[Symbol.iterator] = function() {
          return Qv;
        }), Qv;
      }
      function Sv(Bv) {
        this.map = {}, Bv instanceof Sv ? Bv.forEach(function(Qv, B1) {
          this.append(B1, Qv);
        }, this) : Array.isArray(Bv) ? Bv.forEach(function(Qv) {
          this.append(Qv[0], Qv[1]);
        }, this) : Bv && Object.getOwnPropertyNames(Bv).forEach(function(Qv) {
          this.append(Qv, Bv[Qv]);
        }, this);
      }
      Sv.prototype.append = function(Bv, Qv) {
        Bv = hv(Bv), Qv = pv(Qv);
        var B1 = this.map[Bv];
        this.map[Bv] = B1 ? B1 + ", " + Qv : Qv;
      }, Sv.prototype.delete = function(Bv) {
        delete this.map[hv(Bv)];
      }, Sv.prototype.get = function(Bv) {
        return Bv = hv(Bv), this.has(Bv) ? this.map[Bv] : null;
      }, Sv.prototype.has = function(Bv) {
        return this.map.hasOwnProperty(hv(Bv));
      }, Sv.prototype.set = function(Bv, Qv) {
        this.map[hv(Bv)] = pv(Qv);
      }, Sv.prototype.forEach = function(Bv, Qv) {
        for (var B1 in this.map)
          this.map.hasOwnProperty(B1) && Bv.call(Qv, this.map[B1], B1, this);
      }, Sv.prototype.keys = function() {
        var Bv = [];
        return this.forEach(function(Qv, B1) {
          Bv.push(B1);
        }), yv(Bv);
      }, Sv.prototype.values = function() {
        var Bv = [];
        return this.forEach(function(Qv) {
          Bv.push(Qv);
        }), yv(Bv);
      }, Sv.prototype.entries = function() {
        var Bv = [];
        return this.forEach(function(Qv, B1) {
          Bv.push([B1, Qv]);
        }), yv(Bv);
      }, lv.iterable && (Sv.prototype[Symbol.iterator] = Sv.prototype.entries);
      function _v(Bv) {
        if (Bv.bodyUsed)
          return Promise.reject(new TypeError("Already read"));
        Bv.bodyUsed = !0;
      }
      function Ev(Bv) {
        return new Promise(function(Qv, B1) {
          Bv.onload = function() {
            Qv(Bv.result);
          }, Bv.onerror = function() {
            B1(Bv.error);
          };
        });
      }
      function wv(Bv) {
        var Qv = new FileReader(), B1 = Ev(Qv);
        return Qv.readAsArrayBuffer(Bv), B1;
      }
      function xv(Bv) {
        var Qv = new FileReader(), B1 = Ev(Qv);
        return Qv.readAsText(Bv), B1;
      }
      function Cv(Bv) {
        for (var Qv = new Uint8Array(Bv), B1 = new Array(Qv.length), K1 = 0; K1 < Qv.length; K1++)
          B1[K1] = String.fromCharCode(Qv[K1]);
        return B1.join("");
      }
      function Av(Bv) {
        if (Bv.slice)
          return Bv.slice(0);
        var Qv = new Uint8Array(Bv.byteLength);
        return Qv.set(new Uint8Array(Bv)), Qv.buffer;
      }
      function Ov() {
        return this.bodyUsed = !1, this._initBody = function(Bv) {
          this._bodyInit = Bv, Bv ? typeof Bv == "string" ? this._bodyText = Bv : lv.blob && Blob.prototype.isPrototypeOf(Bv) ? this._bodyBlob = Bv : lv.formData && FormData.prototype.isPrototypeOf(Bv) ? this._bodyFormData = Bv : lv.searchParams && URLSearchParams.prototype.isPrototypeOf(Bv) ? this._bodyText = Bv.toString() : lv.arrayBuffer && lv.blob && uv(Bv) ? (this._bodyArrayBuffer = Av(Bv.buffer), this._bodyInit = new Blob([this._bodyArrayBuffer])) : lv.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(Bv) || dv(Bv)) ? this._bodyArrayBuffer = Av(Bv) : this._bodyText = Bv = Object.prototype.toString.call(Bv) : this._bodyText = "", this.headers.get("content-type") || (typeof Bv == "string" ? this.headers.set("content-type", "text/plain;charset=UTF-8") : this._bodyBlob && this._bodyBlob.type ? this.headers.set("content-type", this._bodyBlob.type) : lv.searchParams && URLSearchParams.prototype.isPrototypeOf(Bv) && this.headers.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8"));
        }, lv.blob && (this.blob = function() {
          var Bv = _v(this);
          if (Bv)
            return Bv;
          if (this._bodyBlob)
            return Promise.resolve(this._bodyBlob);
          if (this._bodyArrayBuffer)
            return Promise.resolve(new Blob([this._bodyArrayBuffer]));
          if (this._bodyFormData)
            throw new Error("could not read FormData body as blob");
          return Promise.resolve(new Blob([this._bodyText]));
        }, this.arrayBuffer = function() {
          return this._bodyArrayBuffer ? _v(this) || Promise.resolve(this._bodyArrayBuffer) : this.blob().then(wv);
        }), this.text = function() {
          var Bv = _v(this);
          if (Bv)
            return Bv;
          if (this._bodyBlob)
            return xv(this._bodyBlob);
          if (this._bodyArrayBuffer)
            return Promise.resolve(Cv(this._bodyArrayBuffer));
          if (this._bodyFormData)
            throw new Error("could not read FormData body as text");
          return Promise.resolve(this._bodyText);
        }, lv.formData && (this.formData = function() {
          return this.text().then(Vv);
        }), this.json = function() {
          return this.text().then(JSON.parse);
        }, this;
      }
      var Lv = ["DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT"];
      function jv(Bv) {
        var Qv = Bv.toUpperCase();
        return Lv.indexOf(Qv) > -1 ? Qv : Bv;
      }
      function Dv(Bv, Qv) {
        Qv = Qv || {};
        var B1 = Qv.body;
        if (Bv instanceof Dv) {
          if (Bv.bodyUsed)
            throw new TypeError("Already read");
          this.url = Bv.url, this.credentials = Bv.credentials, Qv.headers || (this.headers = new Sv(Bv.headers)), this.method = Bv.method, this.mode = Bv.mode, this.signal = Bv.signal, !B1 && Bv._bodyInit != null && (B1 = Bv._bodyInit, Bv.bodyUsed = !0);
        } else
          this.url = String(Bv);
        if (this.credentials = Qv.credentials || this.credentials || "same-origin", (Qv.headers || !this.headers) && (this.headers = new Sv(Qv.headers)), this.method = jv(Qv.method || this.method || "GET"), this.mode = Qv.mode || this.mode || null, this.signal = Qv.signal || this.signal, this.referrer = null, (this.method === "GET" || this.method === "HEAD") && B1)
          throw new TypeError("Body not allowed for GET or HEAD requests");
        this._initBody(B1);
      }
      Dv.prototype.clone = function() {
        return new Dv(this, { body: this._bodyInit });
      };
      function Vv(Bv) {
        var Qv = new FormData();
        return Bv.trim().split("&").forEach(function(B1) {
          if (B1) {
            var K1 = B1.split("="), j1 = K1.shift().replace(/\+/g, " "), P1 = K1.join("=").replace(/\+/g, " ");
            Qv.append(decodeURIComponent(j1), decodeURIComponent(P1));
          }
        }), Qv;
      }
      function Gv(Bv) {
        var Qv = new Sv(), B1 = Bv.replace(/\r?\n[\t ]+/g, " ");
        return B1.split(/\r?\n/).forEach(function(K1) {
          var j1 = K1.split(":"), P1 = j1.shift().trim();
          if (P1) {
            var D1 = j1.join(":").trim();
            Qv.append(P1, D1);
          }
        }), Qv;
      }
      Ov.call(Dv.prototype);
      function Yv(Bv, Qv) {
        Qv || (Qv = {}), this.type = "default", this.status = Qv.status === void 0 ? 200 : Qv.status, this.ok = this.status >= 200 && this.status < 300, this.statusText = "statusText" in Qv ? Qv.statusText : "OK", this.headers = new Sv(Qv.headers), this.url = Qv.url || "", this._initBody(Bv);
      }
      Ov.call(Yv.prototype), Yv.prototype.clone = function() {
        return new Yv(this._bodyInit, {
          status: this.status,
          statusText: this.statusText,
          headers: new Sv(this.headers),
          url: this.url
        });
      }, Yv.error = function() {
        var Bv = new Yv(null, { status: 0, statusText: "" });
        return Bv.type = "error", Bv;
      };
      var Xv = [301, 302, 303, 307, 308];
      Yv.redirect = function(Bv, Qv) {
        if (Xv.indexOf(Qv) === -1)
          throw new RangeError("Invalid status code");
        return new Yv(null, { status: Qv, headers: { location: Bv } });
      }, sv.DOMException = av.DOMException;
      try {
        new sv.DOMException();
      } catch {
        sv.DOMException = function(Bv, Qv) {
          this.message = Bv, this.name = Qv;
          var B1 = Error(Bv);
          this.stack = B1.stack;
        }, sv.DOMException.prototype = Object.create(Error.prototype), sv.DOMException.prototype.constructor = sv.DOMException;
      }
      function L1(Bv, Qv) {
        return new Promise(function(B1, K1) {
          var j1 = new Dv(Bv, Qv);
          if (j1.signal && j1.signal.aborted)
            return K1(new sv.DOMException("Aborted", "AbortError"));
          var P1 = new XMLHttpRequest();
          function D1() {
            P1.abort();
          }
          P1.onload = function() {
            var I1 = {
              status: P1.status,
              statusText: P1.statusText,
              headers: Gv(P1.getAllResponseHeaders() || "")
            };
            I1.url = "responseURL" in P1 ? P1.responseURL : I1.headers.get("X-Request-URL");
            var F1 = "response" in P1 ? P1.response : P1.responseText;
            B1(new Yv(F1, I1));
          }, P1.onerror = function() {
            K1(new TypeError("Network request failed"));
          }, P1.ontimeout = function() {
            K1(new TypeError("Network request failed"));
          }, P1.onabort = function() {
            K1(new sv.DOMException("Aborted", "AbortError"));
          }, P1.open(j1.method, j1.url, !0), j1.credentials === "include" ? P1.withCredentials = !0 : j1.credentials === "omit" && (P1.withCredentials = !1), "responseType" in P1 && lv.blob && (P1.responseType = "blob"), j1.headers.forEach(function(I1, F1) {
            P1.setRequestHeader(F1, I1);
          }), j1.signal && (j1.signal.addEventListener("abort", D1), P1.onreadystatechange = function() {
            P1.readyState === 4 && j1.signal.removeEventListener("abort", D1);
          }), P1.send(typeof j1._bodyInit > "u" ? null : j1._bodyInit);
        });
      }
      return L1.polyfill = !0, av.fetch || (av.fetch = L1, av.Headers = Sv, av.Request = Dv, av.Response = Yv), sv.Headers = Sv, sv.Request = Dv, sv.Response = Yv, sv.fetch = L1, Object.defineProperty(sv, "__esModule", { value: !0 }), sv;
    })({});
  })(iv), iv.fetch.ponyfill = !0, delete iv.fetch.polyfill;
  var ov = iv;
  tv = ov.fetch, tv.default = ov.fetch, tv.fetch = ov.fetch, tv.Headers = ov.Headers, tv.Request = ov.Request, tv.Response = ov.Response, rv.exports = tv;
})(On$2, On$2.exports);
var Pt$2 = On$2.exports;
const Dt$1 = /* @__PURE__ */ Bs$1(Pt$2), Fs$1 = /* @__PURE__ */ $i({
  __proto__: null,
  default: Dt$1
}, [Pt$2]), Fe = (rv) => {
  let tv = {};
  return rv && (typeof Headers < "u" && rv instanceof Headers || Fs$1 && Pt$2.Headers && rv instanceof Pt$2.Headers ? tv = Gi$1(rv) : Array.isArray(rv) ? rv.forEach(([ev, iv]) => {
    ev && iv !== void 0 && (tv[ev] = iv);
  }) : tv = rv), tv;
}, ar$1 = (rv) => rv.replace(/([\s,]|#[^\n\r]+)+/g, " ").trim(), Vs$1 = (rv) => {
  if (!Array.isArray(rv.query)) {
    const iv = rv, ov = [`query=${encodeURIComponent(ar$1(iv.query))}`];
    return rv.variables && ov.push(`variables=${encodeURIComponent(iv.jsonSerializer.stringify(iv.variables))}`), iv.operationName && ov.push(`operationName=${encodeURIComponent(iv.operationName)}`), ov.join("&");
  }
  if (typeof rv.variables < "u" && !Array.isArray(rv.variables))
    throw new Error("Cannot create query with given variable type, array expected");
  const tv = rv, ev = rv.query.reduce((iv, ov, av) => (iv.push({
    query: ar$1(ov),
    variables: tv.variables ? tv.jsonSerializer.stringify(tv.variables[av]) : void 0
  }), iv), []);
  return `query=${encodeURIComponent(tv.jsonSerializer.stringify(ev))}`;
}, Us$1 = (rv) => async (tv) => {
  var ev;
  const { url: iv, query: ov, variables: av, operationName: sv, fetch: lv, fetchOptions: uv, middleware: cv } = tv, dv = { ...tv.headers };
  let hv = "", pv;
  rv === "POST" ? (pv = qs$2(ov, av, sv, uv.jsonSerializer), typeof pv == "string" && (dv["Content-Type"] = "application/json")) : hv = Vs$1({
    query: ov,
    variables: av,
    operationName: sv,
    jsonSerializer: (ev = uv.jsonSerializer) != null ? ev : Un
  });
  const yv = {
    method: rv,
    headers: dv,
    body: pv,
    ...uv
  };
  let Sv = iv, _v = yv;
  if (cv) {
    const Ev = await Promise.resolve(cv({ ...yv, url: iv, operationName: sv, variables: av })), { url: wv, ...xv } = Ev;
    Sv = wv, _v = xv;
  }
  return hv && (Sv = `${Sv}?${hv}`), await lv(Sv, _v);
};
let $s$1 = class {
  constructor(tv, ev = {}) {
    this.url = tv, this.requestConfig = ev, this.rawRequest = async (...iv) => {
      const [ov, av, sv] = iv, lv = Hi$1(ov, av, sv), { headers: uv, fetch: cv = Dt$1, method: dv = "POST", requestMiddleware: hv, responseMiddleware: pv, ...yv } = this.requestConfig, { url: Sv } = this;
      lv.signal !== void 0 && (yv.signal = lv.signal);
      const { operationName: _v } = un$1(lv.query);
      return ln$2({
        url: Sv,
        query: lv.query,
        variables: lv.variables,
        headers: {
          ...Fe(fn$1(uv)),
          ...Fe(lv.requestHeaders)
        },
        operationName: _v,
        fetch: cv,
        method: dv,
        fetchOptions: yv,
        middleware: hv
      }).then((Ev) => (pv && pv(Ev), Ev)).catch((Ev) => {
        throw pv && pv(Ev), Ev;
      });
    };
  }
  async request(tv, ...ev) {
    const [iv, ov] = ev, av = zi$1(tv, iv, ov), { headers: sv, fetch: lv = Dt$1, method: uv = "POST", requestMiddleware: cv, responseMiddleware: dv, ...hv } = this.requestConfig, { url: pv } = this;
    av.signal !== void 0 && (hv.signal = av.signal);
    const { query: yv, operationName: Sv } = un$1(av.document);
    return ln$2({
      url: pv,
      query: yv,
      variables: av.variables,
      headers: {
        ...Fe(fn$1(sv)),
        ...Fe(av.requestHeaders)
      },
      operationName: Sv,
      fetch: lv,
      method: uv,
      fetchOptions: hv,
      middleware: cv
    }).then((_v) => (dv && dv(_v), _v.data)).catch((_v) => {
      throw dv && dv(_v), _v;
    });
  }
  // prettier-ignore
  batchRequests(tv, ev) {
    var iv;
    const ov = Ki$1(tv, ev), { headers: av, ...sv } = this.requestConfig;
    ov.signal !== void 0 && (sv.signal = ov.signal);
    const lv = ov.documents.map(({ document: cv }) => un$1(cv).query), uv = ov.documents.map(({ variables: cv }) => cv);
    return ln$2({
      url: this.url,
      query: lv,
      // @ts-expect-error TODO reconcile batch variables into system.
      variables: uv,
      headers: {
        ...Fe(fn$1(av)),
        ...Fe(ov.requestHeaders)
      },
      operationName: void 0,
      fetch: (iv = this.requestConfig.fetch) != null ? iv : Dt$1,
      method: this.requestConfig.method || "POST",
      fetchOptions: sv,
      middleware: this.requestConfig.requestMiddleware
    }).then((cv) => (this.requestConfig.responseMiddleware && this.requestConfig.responseMiddleware(cv), cv.data)).catch((cv) => {
      throw this.requestConfig.responseMiddleware && this.requestConfig.responseMiddleware(cv), cv;
    });
  }
  setHeaders(tv) {
    return this.requestConfig.headers = tv, this;
  }
  /**
   * Attach a header to the client. All subsequent requests will have this header.
   */
  setHeader(tv, ev) {
    const { headers: iv } = this.requestConfig;
    return iv ? iv[tv] = ev : this.requestConfig.headers = { [tv]: ev }, this;
  }
  /**
   * Change the client endpoint. All subsequent requests will send to this endpoint.
   */
  setEndpoint(tv) {
    return this.url = tv, this;
  }
};
const ln$2 = async (rv) => {
  var tv, ev;
  const { query: iv, variables: ov, fetchOptions: av } = rv, sv = Us$1(qi$2((tv = rv.method) != null ? tv : "post")), lv = Array.isArray(rv.query), uv = await sv(rv), cv = await Gs$2(uv, (ev = av.jsonSerializer) != null ? ev : Un), dv = Array.isArray(cv) ? !cv.some(({ data: pv }) => !pv) : !!cv.data, hv = Array.isArray(cv) || !cv.errors || Array.isArray(cv.errors) && !cv.errors.length || av.errorPolicy === "all" || av.errorPolicy === "ignore";
  if (uv.ok && hv && dv) {
    const { errors: pv, ...yv } = cv, Sv = av.errorPolicy === "ignore" ? yv : cv;
    return {
      ...lv ? { data: Sv } : Sv,
      headers: uv.headers,
      status: uv.status
    };
  } else {
    const pv = typeof cv == "string" ? {
      error: cv
    } : cv;
    throw new ut$2(
      // @ts-expect-error TODO
      { ...pv, status: uv.status, headers: uv.headers },
      { query: iv, variables: ov }
    );
  }
}, qs$2 = (rv, tv, ev, iv) => {
  const ov = iv ?? Un;
  if (!Array.isArray(rv))
    return ov.stringify({ query: rv, variables: tv, operationName: ev });
  if (typeof tv < "u" && !Array.isArray(tv))
    throw new Error("Cannot create request body with given variable type, array expected");
  const av = rv.reduce((sv, lv, uv) => (sv.push({ query: lv, variables: tv ? tv[uv] : void 0 }), sv), []);
  return ov.stringify(av);
}, Gs$2 = async (rv, tv) => {
  let ev;
  return rv.headers.forEach((iv, ov) => {
    ov.toLowerCase() === "content-type" && (ev = iv);
  }), ev && (ev.toLowerCase().startsWith("application/json") || ev.toLowerCase().startsWith("application/graphql+json") || ev.toLowerCase().startsWith("application/graphql-response+json")) ? tv.parse(await rv.text()) : rv.text();
}, fn$1 = (rv) => typeof rv == "function" ? rv() : rv, zs$1 = { BASE_URL: "/", DEV: !1, MODE: "production", NZ_AWS_REGION: "us-east-1", PROD: !0, SSR: !1, STAGE: "prod" }, {
  NZ_AWS_REGION: Hs$1,
  NZ_BACKOFFICE_BACK_URL: Ks$1,
  NZ_CORE_SERVICES_GRAPHQL_URL: Ys$2,
  NZ_CORE_SERVICES_REST_URL: Ws$2
} = zs$1, Js$2 = {
  AWS: {
    region: Hs$1,
    cognito: {
      userPoolId: "us-east-1_EZ7wuZ4ig",
      userPoolWebClientId: "2jok7cst8ebf6ppscrhji57gvr"
    }
  },
  //  Back services
  apiUrls: {
    restV1: Ks$1 || "https://b133h34s56.execute-api.us-east-1.amazonaws.com",
    restV2: Ws$2 || "https://core-services-prod.nizza.com/api",
    graphql: Ys$2 || "https://core-services-prod.nizza.com/graphql",
    corsProxy: "https://3hvqfl2xcg.execute-api.us-east-1.amazonaws.com"
  },
  publicUrls: {
    //  Public app url
    platformSite: "https://platform.nizza.com",
    // Nizza CDN
    nizzaCdn: "https://cdn.nizza.com",
    //  Bundle
    bundleSite: "https://bundle.nizza.com",
    // WSS IVS CHAT
    wssIVSChat: "wss://edge.ivschat.us-east-1.amazonaws.com",
    // Global Page
    globalPage: "https://live.nizza.com"
  }
}, Xs$2 = {
  ...Js$2
}, Vr = Xs$2, Qs$2 = [
  // createCollection({
  //   account: 'plataforma',
  //   id: 'c1',
  //   name: 'Collection 1',
  //   products: [product('c1p1')],
  // }),
  // createCollection({
  //   account: 'plataforma',
  //   id: 'c2',
  //   name: 'Collection 2',
  //   products: [product('c2p1')],
  // }),
  // createCollection({
  //   account: 'plataforma',
  //   id: 'c3',
  //   name: 'Collection 3',
  //   products: [product('c3p1')],
  // }),
  // createCollection({
  //   account: 'plataforma',
  //   id: 'c4',
  //   name: 'Collection 4',
  //   products: [product('c4p1')],
  // }),
];
var $e$1 = /* @__PURE__ */ ((rv) => (rv.ACTIVE = "active", rv.DISABLED = "disabled", rv))($e$1 || {}), Ie = /* @__PURE__ */ ((rv) => (rv.IDLE = "idle", rv.ERROR = "error", rv.SUCCESS = "success", rv))(Ie || {});
let dt$1 = class QM {
  constructor(tv) {
    x$2(this, "root", Af$1(this)), x$2(this, "id", ""), x$2(this, "account", ""), x$2(this, "link", ""), x$2(this, "pictures", []), x$2(this, "salesPrice", 0), x$2(this, "price", 0), x$2(this, "title", ""), x$2(this, "createdAt", /* @__PURE__ */ new Date()), x$2(this, "status", $e$1.ACTIVE), x$2(this, "externalId", null), x$2(this, "hasOffer", !1), x$2(this, "offer", 0), x$2(this, "detailLink", ""), x$2(this, "image", ""), x$2(this, "syncStatus", Ie.IDLE), this.root.setProps(tv);
  }
  static create(tv) {
    var ev, iv;
    const ov = QM.getComputedProps(tv), av = {
      ...tv,
      ...ov,
      id: (ev = tv.id) != null ? ev : ar$2(),
      status: (iv = tv.status) != null ? iv : $e$1.ACTIVE,
      createdAt: tv.createdAt ? new Date(tv.createdAt) : /* @__PURE__ */ new Date(),
      syncStatus: Ie.IDLE,
      image: "",
      detailLink: ""
    };
    return new QM(av);
  }
  static getComputedProps(tv) {
    const ev = tv != null && tv.salesPrice ? Math.floor((tv.price - tv.salesPrice) / tv.price * 100) : 0, iv = ev > 0, ov = tv.pictures[0];
    return { offer: ev, hasOffer: iv, image: ov };
  }
  toggleStatus() {
    this.status = this.status === $e$1.ACTIVE ? $e$1.DISABLED : $e$1.ACTIVE;
  }
  toPrimitives(tv = !1) {
    const {
      root: ev,
      createdAt: iv,
      hasOffer: ov,
      offer: av,
      detailLink: sv,
      image: lv,
      syncStatus: uv,
      ...cv
    } = this;
    return {
      ...cv,
      ...tv && {
        hasOffer: ov,
        offer: av,
        detailLink: sv,
        image: lv,
        syncStatus: uv
      },
      createdAt: iv.toISOString()
    };
  }
};
function qe(rv) {
  return rv != null && typeof rv == "object" && rv["@@functional/placeholder"] === !0;
}
function hn$1(rv) {
  return function tv(ev) {
    return arguments.length === 0 || qe(ev) ? tv : rv.apply(this, arguments);
  };
}
function Zs$2(rv) {
  return function tv(ev, iv) {
    switch (arguments.length) {
      case 0:
        return tv;
      case 1:
        return qe(ev) ? tv : hn$1(function(ov) {
          return rv(ev, ov);
        });
      default:
        return qe(ev) && qe(iv) ? tv : qe(ev) ? hn$1(function(ov) {
          return rv(ov, iv);
        }) : qe(iv) ? hn$1(function(ov) {
          return rv(ev, ov);
        }) : rv(ev, iv);
    }
  };
}
var cr$2 = /* @__PURE__ */ Zs$2(function(rv, tv) {
  for (var ev = {}, iv = {}, ov = 0, av = rv.length; ov < av; )
    iv[rv[ov]] = 1, ov += 1;
  for (var sv in tv)
    iv.hasOwnProperty(sv) || (ev[sv] = tv[sv]);
  return ev;
});
const Lt$2 = (rv) => {
  var tv, ev, iv;
  return dt$1.create({
    account: rv.account,
    link: (tv = rv.link) != null ? tv : "",
    pictures: rv.pictures || [],
    price: rv.price,
    salesPrice: (ev = rv.salesprice) != null ? ev : rv.salesPrice,
    title: rv.title,
    createdAt: (iv = rv.createdtime) != null ? iv : rv.createdat,
    id: rv.id,
    status: rv.status
  });
}, Ve$1 = `${Vr.apiUrls.restV2}/v1/product`;
let eo$2 = class {
  constructor() {
    x$2(this, "account");
  }
  async find(tv) {
    const ev = id$1({ account: this.account }), iv = `${Ve$1}/${tv}${ev}`, { data: ov } = await en$3({
      url: iv
    });
    return Lt$2(ov);
  }
  async search(tv = {}) {
    const ev = id$1({
      ...tv,
      account: this.account
    }), iv = tv.search ? `${Ve$1}/search/${ev}` : `${Ve$1}${ev}`, { data: ov, isArray: av } = await en$3({
      url: iv
    });
    return av ? ov.map((sv) => Lt$2(sv)) : [];
  }
  async create(tv) {
    const ev = Ve$1, iv = cr$2(["id", "createdAt"], tv.toPrimitives());
    await en$3({
      url: ev,
      method: "POST",
      body: JSON.stringify(iv),
      raw: !0
    });
  }
  async update(tv) {
    const ev = `${Ve$1}/${tv.id}`, iv = cr$2(["createdAt", "id"], tv.toPrimitives());
    await en$3({
      url: ev,
      method: "PUT",
      body: JSON.stringify(iv),
      raw: !0
    });
  }
  async delete(tv) {
    const ev = id$1({ account: this.account }), iv = `${Ve$1}/${tv}${ev}`;
    await en$3({
      url: iv,
      method: "DELETE",
      raw: !0
    });
  }
};
new eo$2();
const ct = (rv) => {
  var tv, ev, iv, ov;
  return Kt$1.create({
    id: rv.id,
    account: rv.account,
    name: rv.name,
    createdAt: (tv = rv.createdat) != null ? tv : rv.createdAt,
    description: rv.description || "",
    products: (iv = (ev = rv.products) == null ? void 0 : ev.map(Lt$2)) != null ? iv : [],
    status: (ov = rv.status) != null ? ov : xe$1.ACTIVE
  });
}, ro$2 = Vr.apiUrls.graphql;
let io$2 = class {
  constructor() {
    x$2(this, "client"), x$2(this, "account"), this.client = new $s$1(ro$2);
  }
  async find(tv) {
    const ev = { account: this.account, id: tv }, { findCollection: iv } = await this.client.request(fv.FindCollectionDocument, { data: ev });
    return this.propagateGraphqlErrorIfExists(iv), ct(
      iv.data
    );
  }
  async create(tv) {
    var ev;
    const { createCollection: iv } = await this.client.request(fv.AddCollectionDocument, { data: tv });
    return this.propagateGraphqlErrorIfExists(iv), ct({
      ...tv,
      id: (ev = iv.data) == null ? void 0 : ev.id
    });
  }
  async update(tv) {
    const { updateCollection: ev } = await this.client.request(fv.UpdateCollectionDocument, {
      data: tv
    });
    this.propagateGraphqlErrorIfExists(ev);
  }
  async delete(tv) {
    const ev = { account: this.account, id: tv }, { deleteCollection: iv } = await this.client.request(fv.DeleteCollectionDocument, { data: ev });
    this.propagateGraphqlErrorIfExists(iv);
  }
  async search(tv = {}) {
    var ev;
    const iv = { ...tv, account: this.account }, { searchCollection: ov } = await this.client.request(fv.SearchCollectionsDocument, { data: iv });
    return this.propagateGraphqlErrorIfExists(ov), (ev = ov.data) == null ? void 0 : ev.map(
      ct
    );
  }
  async getAll(tv) {
    var ev;
    const iv = { ...tv, account: this.account }, { getAllCollection: ov } = await this.client.request(fv.GetAllCollectionsDocument, { data: iv });
    return this.propagateGraphqlErrorIfExists(ov), (ev = ov.data) == null ? void 0 : ev.map(
      ct
    );
  }
  async manageProduct(tv) {
    const { manageCollectionProduct: ev } = await this.client.request(fv.ManageCollectionProductDocument, { data: tv });
    return this.propagateGraphqlErrorIfExists(ev), ev.__typename === "CollectionSuccess";
  }
  propagateGraphqlErrorIfExists(tv) {
    if (tv.__typename === "ErrorGeneral")
      throw new Error(tv.message);
  }
};
function _e$1(rv) {
  return Array.isArray ? Array.isArray(rv) : qr$1(rv) === "[object Array]";
}
const so$2 = 1 / 0;
function oo$2(rv) {
  if (typeof rv == "string")
    return rv;
  let tv = rv + "";
  return tv == "0" && 1 / rv == -so$2 ? "-0" : tv;
}
function ao$2(rv) {
  return rv == null ? "" : oo$2(rv);
}
function ce$1(rv) {
  return typeof rv == "string";
}
function Ur$1(rv) {
  return typeof rv == "number";
}
function co$2(rv) {
  return rv === !0 || rv === !1 || uo$2(rv) && qr$1(rv) == "[object Boolean]";
}
function $r$2(rv) {
  return typeof rv == "object";
}
function uo$2(rv) {
  return $r$2(rv) && rv !== null;
}
function H$2(rv) {
  return rv != null;
}
function dn$1(rv) {
  return !rv.trim().length;
}
function qr$1(rv) {
  return rv == null ? rv === void 0 ? "[object Undefined]" : "[object Null]" : Object.prototype.toString.call(rv);
}
const lo$2 = "Incorrect 'index' type", fo$2 = (rv) => `Invalid value for key ${rv}`, ho$2 = (rv) => `Pattern length exceeds max of ${rv}.`, po$1 = (rv) => `Missing ${rv} property in key`, _o$2 = (rv) => `Property 'weight' in key '${rv}' must be a positive integer`, ur$2 = Object.prototype.hasOwnProperty;
let vo$1 = class {
  constructor(tv) {
    this._keys = [], this._keyMap = {};
    let ev = 0;
    tv.forEach((iv) => {
      let ov = Gr$2(iv);
      ev += ov.weight, this._keys.push(ov), this._keyMap[ov.id] = ov, ev += ov.weight;
    }), this._keys.forEach((iv) => {
      iv.weight /= ev;
    });
  }
  get(tv) {
    return this._keyMap[tv];
  }
  keys() {
    return this._keys;
  }
  toJSON() {
    return JSON.stringify(this._keys);
  }
};
function Gr$2(rv) {
  let tv = null, ev = null, iv = null, ov = 1, av = null;
  if (ce$1(rv) || _e$1(rv))
    iv = rv, tv = lr$2(rv), ev = Sn$2(rv);
  else {
    if (!ur$2.call(rv, "name"))
      throw new Error(po$1("name"));
    const sv = rv.name;
    if (iv = sv, ur$2.call(rv, "weight") && (ov = rv.weight, ov <= 0))
      throw new Error(_o$2(sv));
    tv = lr$2(sv), ev = Sn$2(sv), av = rv.getFn;
  }
  return { path: tv, id: ev, weight: ov, src: iv, getFn: av };
}
function lr$2(rv) {
  return _e$1(rv) ? rv : rv.split(".");
}
function Sn$2(rv) {
  return _e$1(rv) ? rv.join(".") : rv;
}
function go$1(rv, tv) {
  let ev = [], iv = !1;
  const ov = (av, sv, lv) => {
    if (H$2(av))
      if (!sv[lv])
        ev.push(av);
      else {
        let uv = sv[lv];
        const cv = av[uv];
        if (!H$2(cv))
          return;
        if (lv === sv.length - 1 && (ce$1(cv) || Ur$1(cv) || co$2(cv)))
          ev.push(ao$2(cv));
        else if (_e$1(cv)) {
          iv = !0;
          for (let dv = 0, hv = cv.length; dv < hv; dv += 1)
            ov(cv[dv], sv, lv + 1);
        } else
          sv.length && ov(cv, sv, lv + 1);
      }
  };
  return ov(rv, ce$1(tv) ? tv.split(".") : tv, 0), iv ? ev : ev[0];
}
const yo$2 = {
  // Whether the matches should be included in the result set. When `true`, each record in the result
  // set will include the indices of the matched characters.
  // These can consequently be used for highlighting purposes.
  includeMatches: !1,
  // When `true`, the matching function will continue to the end of a search pattern even if
  // a perfect match has already been located in the string.
  findAllMatches: !1,
  // Minimum number of characters that must be matched before a result is considered a match
  minMatchCharLength: 1
}, mo$2 = {
  // When `true`, the algorithm continues searching to the end of the input even if a perfect
  // match is found before the end of the same input.
  isCaseSensitive: !1,
  // When true, the matching function will continue to the end of a search pattern even if
  includeScore: !1,
  // List of properties that will be searched. This also supports nested properties.
  keys: [],
  // Whether to sort the result list, by score
  shouldSort: !0,
  // Default sort function: sort by ascending score, ascending index
  sortFn: (rv, tv) => rv.score === tv.score ? rv.idx < tv.idx ? -1 : 1 : rv.score < tv.score ? -1 : 1
}, bo$2 = {
  // Approximately where in the text is the pattern expected to be found?
  location: 0,
  // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match
  // (of both letters and location), a threshold of '1.0' would match anything.
  threshold: 0.6,
  // Determines how close the match must be to the fuzzy location (specified above).
  // An exact letter match which is 'distance' characters away from the fuzzy location
  // would score as a complete mismatch. A distance of '0' requires the match be at
  // the exact location specified, a threshold of '1000' would require a perfect match
  // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.
  distance: 100
}, Eo$2 = {
  // When `true`, it enables the use of unix-like search commands
  useExtendedSearch: !1,
  // The get function to use when fetching an object's properties.
  // The default will search nested paths *ie foo.bar.baz*
  getFn: go$1,
  // When `true`, search will ignore `location` and `distance`, so it won't matter
  // where in the string the pattern appears.
  // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score
  ignoreLocation: !1,
  // When `true`, the calculation for the relevance score (used for sorting) will
  // ignore the field-length norm.
  // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm
  ignoreFieldNorm: !1,
  // The weight to determine how much field length norm effects scoring.
  fieldNormWeight: 1
};
var O = {
  ...mo$2,
  ...yo$2,
  ...bo$2,
  ...Eo$2
};
const Ao$2 = /[^ ]+/g;
function Oo$2(rv = 1, tv = 3) {
  const ev = /* @__PURE__ */ new Map(), iv = Math.pow(10, tv);
  return {
    get(ov) {
      const av = ov.match(Ao$2).length;
      if (ev.has(av))
        return ev.get(av);
      const sv = 1 / Math.pow(av, 0.5 * rv), lv = parseFloat(Math.round(sv * iv) / iv);
      return ev.set(av, lv), lv;
    },
    clear() {
      ev.clear();
    }
  };
}
let Gn$1 = class {
  constructor({
    getFn: tv = O.getFn,
    fieldNormWeight: ev = O.fieldNormWeight
  } = {}) {
    this.norm = Oo$2(ev, 3), this.getFn = tv, this.isCreated = !1, this.setIndexRecords();
  }
  setSources(tv = []) {
    this.docs = tv;
  }
  setIndexRecords(tv = []) {
    this.records = tv;
  }
  setKeys(tv = []) {
    this.keys = tv, this._keysMap = {}, tv.forEach((ev, iv) => {
      this._keysMap[ev.id] = iv;
    });
  }
  create() {
    this.isCreated || !this.docs.length || (this.isCreated = !0, ce$1(this.docs[0]) ? this.docs.forEach((tv, ev) => {
      this._addString(tv, ev);
    }) : this.docs.forEach((tv, ev) => {
      this._addObject(tv, ev);
    }), this.norm.clear());
  }
  // Adds a doc to the end of the index
  add(tv) {
    const ev = this.size();
    ce$1(tv) ? this._addString(tv, ev) : this._addObject(tv, ev);
  }
  // Removes the doc at the specified index of the index
  removeAt(tv) {
    this.records.splice(tv, 1);
    for (let ev = tv, iv = this.size(); ev < iv; ev += 1)
      this.records[ev].i -= 1;
  }
  getValueForItemAtKeyId(tv, ev) {
    return tv[this._keysMap[ev]];
  }
  size() {
    return this.records.length;
  }
  _addString(tv, ev) {
    if (!H$2(tv) || dn$1(tv))
      return;
    let iv = {
      v: tv,
      i: ev,
      n: this.norm.get(tv)
    };
    this.records.push(iv);
  }
  _addObject(tv, ev) {
    let iv = { i: ev, $: {} };
    this.keys.forEach((ov, av) => {
      let sv = ov.getFn ? ov.getFn(tv) : this.getFn(tv, ov.path);
      if (H$2(sv)) {
        if (_e$1(sv)) {
          let lv = [];
          const uv = [{ nestedArrIndex: -1, value: sv }];
          for (; uv.length; ) {
            const { nestedArrIndex: cv, value: dv } = uv.pop();
            if (H$2(dv))
              if (ce$1(dv) && !dn$1(dv)) {
                let hv = {
                  v: dv,
                  i: cv,
                  n: this.norm.get(dv)
                };
                lv.push(hv);
              } else
                _e$1(dv) && dv.forEach((hv, pv) => {
                  uv.push({
                    nestedArrIndex: pv,
                    value: hv
                  });
                });
          }
          iv.$[av] = lv;
        } else if (ce$1(sv) && !dn$1(sv)) {
          let lv = {
            v: sv,
            n: this.norm.get(sv)
          };
          iv.$[av] = lv;
        }
      }
    }), this.records.push(iv);
  }
  toJSON() {
    return {
      keys: this.keys,
      records: this.records
    };
  }
};
function zr$1(rv, tv, { getFn: ev = O.getFn, fieldNormWeight: iv = O.fieldNormWeight } = {}) {
  const ov = new Gn$1({ getFn: ev, fieldNormWeight: iv });
  return ov.setKeys(rv.map(Gr$2)), ov.setSources(tv), ov.create(), ov;
}
function So$2(rv, { getFn: tv = O.getFn, fieldNormWeight: ev = O.fieldNormWeight } = {}) {
  const { keys: iv, records: ov } = rv, av = new Gn$1({ getFn: tv, fieldNormWeight: ev });
  return av.setKeys(iv), av.setIndexRecords(ov), av;
}
function wt$2(rv, {
  errors: tv = 0,
  currentLocation: ev = 0,
  expectedLocation: iv = 0,
  distance: ov = O.distance,
  ignoreLocation: av = O.ignoreLocation
} = {}) {
  const sv = tv / rv.length;
  if (av)
    return sv;
  const lv = Math.abs(iv - ev);
  return ov ? sv + lv / ov : lv ? 1 : sv;
}
function To$2(rv = [], tv = O.minMatchCharLength) {
  let ev = [], iv = -1, ov = -1, av = 0;
  for (let sv = rv.length; av < sv; av += 1) {
    let lv = rv[av];
    lv && iv === -1 ? iv = av : !lv && iv !== -1 && (ov = av - 1, ov - iv + 1 >= tv && ev.push([iv, ov]), iv = -1);
  }
  return rv[av - 1] && av - iv >= tv && ev.push([iv, av - 1]), ev;
}
const Ne$1 = 32;
function wo$2(rv, tv, ev, {
  location: iv = O.location,
  distance: ov = O.distance,
  threshold: av = O.threshold,
  findAllMatches: sv = O.findAllMatches,
  minMatchCharLength: lv = O.minMatchCharLength,
  includeMatches: uv = O.includeMatches,
  ignoreLocation: cv = O.ignoreLocation
} = {}) {
  if (tv.length > Ne$1)
    throw new Error(ho$2(Ne$1));
  const dv = tv.length, hv = rv.length, pv = Math.max(0, Math.min(iv, hv));
  let yv = av, Sv = pv;
  const _v = lv > 1 || uv, Ev = _v ? Array(hv) : [];
  let wv;
  for (; (wv = rv.indexOf(tv, Sv)) > -1; ) {
    let jv = wt$2(tv, {
      currentLocation: wv,
      expectedLocation: pv,
      distance: ov,
      ignoreLocation: cv
    });
    if (yv = Math.min(jv, yv), Sv = wv + dv, _v) {
      let Dv = 0;
      for (; Dv < dv; )
        Ev[wv + Dv] = 1, Dv += 1;
    }
  }
  Sv = -1;
  let xv = [], Cv = 1, Av = dv + hv;
  const Ov = 1 << dv - 1;
  for (let jv = 0; jv < dv; jv += 1) {
    let Dv = 0, Vv = Av;
    for (; Dv < Vv; )
      wt$2(tv, {
        errors: jv,
        currentLocation: pv + Vv,
        expectedLocation: pv,
        distance: ov,
        ignoreLocation: cv
      }) <= yv ? Dv = Vv : Av = Vv, Vv = Math.floor((Av - Dv) / 2 + Dv);
    Av = Vv;
    let Gv = Math.max(1, pv - Vv + 1), Yv = sv ? hv : Math.min(pv + Vv, hv) + dv, Xv = Array(Yv + 2);
    Xv[Yv + 1] = (1 << jv) - 1;
    for (let L1 = Yv; L1 >= Gv; L1 -= 1) {
      let Bv = L1 - 1, Qv = ev[rv.charAt(Bv)];
      if (_v && (Ev[Bv] = +!!Qv), Xv[L1] = (Xv[L1 + 1] << 1 | 1) & Qv, jv && (Xv[L1] |= (xv[L1 + 1] | xv[L1]) << 1 | 1 | xv[L1 + 1]), Xv[L1] & Ov && (Cv = wt$2(tv, {
        errors: jv,
        currentLocation: Bv,
        expectedLocation: pv,
        distance: ov,
        ignoreLocation: cv
      }), Cv <= yv)) {
        if (yv = Cv, Sv = Bv, Sv <= pv)
          break;
        Gv = Math.max(1, 2 * pv - Sv);
      }
    }
    if (wt$2(tv, {
      errors: jv + 1,
      currentLocation: pv,
      expectedLocation: pv,
      distance: ov,
      ignoreLocation: cv
    }) > yv)
      break;
    xv = Xv;
  }
  const Lv = {
    isMatch: Sv >= 0,
    // Count exact matches (those with a score of 0) to be "almost" exact
    score: Math.max(1e-3, Cv)
  };
  if (_v) {
    const jv = To$2(Ev, lv);
    jv.length ? uv && (Lv.indices = jv) : Lv.isMatch = !1;
  }
  return Lv;
}
function No$2(rv) {
  let tv = {};
  for (let ev = 0, iv = rv.length; ev < iv; ev += 1) {
    const ov = rv.charAt(ev);
    tv[ov] = (tv[ov] || 0) | 1 << iv - ev - 1;
  }
  return tv;
}
let Hr$1 = class {
  constructor(tv, {
    location: ev = O.location,
    threshold: iv = O.threshold,
    distance: ov = O.distance,
    includeMatches: av = O.includeMatches,
    findAllMatches: sv = O.findAllMatches,
    minMatchCharLength: lv = O.minMatchCharLength,
    isCaseSensitive: uv = O.isCaseSensitive,
    ignoreLocation: cv = O.ignoreLocation
  } = {}) {
    if (this.options = {
      location: ev,
      threshold: iv,
      distance: ov,
      includeMatches: av,
      findAllMatches: sv,
      minMatchCharLength: lv,
      isCaseSensitive: uv,
      ignoreLocation: cv
    }, this.pattern = uv ? tv : tv.toLowerCase(), this.chunks = [], !this.pattern.length)
      return;
    const dv = (pv, yv) => {
      this.chunks.push({
        pattern: pv,
        alphabet: No$2(pv),
        startIndex: yv
      });
    }, hv = this.pattern.length;
    if (hv > Ne$1) {
      let pv = 0;
      const yv = hv % Ne$1, Sv = hv - yv;
      for (; pv < Sv; )
        dv(this.pattern.substr(pv, Ne$1), pv), pv += Ne$1;
      if (yv) {
        const _v = hv - Ne$1;
        dv(this.pattern.substr(_v), _v);
      }
    } else
      dv(this.pattern, 0);
  }
  searchIn(tv) {
    const { isCaseSensitive: ev, includeMatches: iv } = this.options;
    if (ev || (tv = tv.toLowerCase()), this.pattern === tv) {
      let Sv = {
        isMatch: !0,
        score: 0
      };
      return iv && (Sv.indices = [[0, tv.length - 1]]), Sv;
    }
    const {
      location: ov,
      distance: av,
      threshold: sv,
      findAllMatches: lv,
      minMatchCharLength: uv,
      ignoreLocation: cv
    } = this.options;
    let dv = [], hv = 0, pv = !1;
    this.chunks.forEach(({ pattern: Sv, alphabet: _v, startIndex: Ev }) => {
      const { isMatch: wv, score: xv, indices: Cv } = wo$2(tv, Sv, _v, {
        location: ov + Ev,
        distance: av,
        threshold: sv,
        findAllMatches: lv,
        minMatchCharLength: uv,
        includeMatches: iv,
        ignoreLocation: cv
      });
      wv && (pv = !0), hv += xv, wv && Cv && (dv = [...dv, ...Cv]);
    });
    let yv = {
      isMatch: pv,
      score: pv ? hv / this.chunks.length : 1
    };
    return pv && iv && (yv.indices = dv), yv;
  }
}, Ae$1 = class {
  constructor(tv) {
    this.pattern = tv;
  }
  static isMultiMatch(tv) {
    return fr$1(tv, this.multiRegex);
  }
  static isSingleMatch(tv) {
    return fr$1(tv, this.singleRegex);
  }
  search() {
  }
};
function fr$1(rv, tv) {
  const ev = rv.match(tv);
  return ev ? ev[1] : null;
}
let xo$2 = class extends Ae$1 {
  constructor(tv) {
    super(tv);
  }
  static get type() {
    return "exact";
  }
  static get multiRegex() {
    return /^="(.*)"$/;
  }
  static get singleRegex() {
    return /^=(.*)$/;
  }
  search(tv) {
    const ev = tv === this.pattern;
    return {
      isMatch: ev,
      score: ev ? 0 : 1,
      indices: [0, this.pattern.length - 1]
    };
  }
}, Io$2 = class extends Ae$1 {
  constructor(tv) {
    super(tv);
  }
  static get type() {
    return "inverse-exact";
  }
  static get multiRegex() {
    return /^!"(.*)"$/;
  }
  static get singleRegex() {
    return /^!(.*)$/;
  }
  search(tv) {
    const ev = tv.indexOf(this.pattern) === -1;
    return {
      isMatch: ev,
      score: ev ? 0 : 1,
      indices: [0, tv.length - 1]
    };
  }
}, Co$2 = class extends Ae$1 {
  constructor(tv) {
    super(tv);
  }
  static get type() {
    return "prefix-exact";
  }
  static get multiRegex() {
    return /^\^"(.*)"$/;
  }
  static get singleRegex() {
    return /^\^(.*)$/;
  }
  search(tv) {
    const ev = tv.startsWith(this.pattern);
    return {
      isMatch: ev,
      score: ev ? 0 : 1,
      indices: [0, this.pattern.length - 1]
    };
  }
}, Do$2 = class extends Ae$1 {
  constructor(tv) {
    super(tv);
  }
  static get type() {
    return "inverse-prefix-exact";
  }
  static get multiRegex() {
    return /^!\^"(.*)"$/;
  }
  static get singleRegex() {
    return /^!\^(.*)$/;
  }
  search(tv) {
    const ev = !tv.startsWith(this.pattern);
    return {
      isMatch: ev,
      score: ev ? 0 : 1,
      indices: [0, tv.length - 1]
    };
  }
}, Ro$2 = class extends Ae$1 {
  constructor(tv) {
    super(tv);
  }
  static get type() {
    return "suffix-exact";
  }
  static get multiRegex() {
    return /^"(.*)"\$$/;
  }
  static get singleRegex() {
    return /^(.*)\$$/;
  }
  search(tv) {
    const ev = tv.endsWith(this.pattern);
    return {
      isMatch: ev,
      score: ev ? 0 : 1,
      indices: [tv.length - this.pattern.length, tv.length - 1]
    };
  }
}, Po$2 = class extends Ae$1 {
  constructor(tv) {
    super(tv);
  }
  static get type() {
    return "inverse-suffix-exact";
  }
  static get multiRegex() {
    return /^!"(.*)"\$$/;
  }
  static get singleRegex() {
    return /^!(.*)\$$/;
  }
  search(tv) {
    const ev = !tv.endsWith(this.pattern);
    return {
      isMatch: ev,
      score: ev ? 0 : 1,
      indices: [0, tv.length - 1]
    };
  }
}, Kr$1 = class extends Ae$1 {
  constructor(tv, {
    location: ev = O.location,
    threshold: iv = O.threshold,
    distance: ov = O.distance,
    includeMatches: av = O.includeMatches,
    findAllMatches: sv = O.findAllMatches,
    minMatchCharLength: lv = O.minMatchCharLength,
    isCaseSensitive: uv = O.isCaseSensitive,
    ignoreLocation: cv = O.ignoreLocation
  } = {}) {
    super(tv), this._bitapSearch = new Hr$1(tv, {
      location: ev,
      threshold: iv,
      distance: ov,
      includeMatches: av,
      findAllMatches: sv,
      minMatchCharLength: lv,
      isCaseSensitive: uv,
      ignoreLocation: cv
    });
  }
  static get type() {
    return "fuzzy";
  }
  static get multiRegex() {
    return /^"(.*)"$/;
  }
  static get singleRegex() {
    return /^(.*)$/;
  }
  search(tv) {
    return this._bitapSearch.searchIn(tv);
  }
}, Yr$1 = class extends Ae$1 {
  constructor(tv) {
    super(tv);
  }
  static get type() {
    return "include";
  }
  static get multiRegex() {
    return /^'"(.*)"$/;
  }
  static get singleRegex() {
    return /^'(.*)$/;
  }
  search(tv) {
    let ev = 0, iv;
    const ov = [], av = this.pattern.length;
    for (; (iv = tv.indexOf(this.pattern, ev)) > -1; )
      ev = iv + av, ov.push([iv, ev - 1]);
    const sv = !!ov.length;
    return {
      isMatch: sv,
      score: sv ? 0 : 1,
      indices: ov
    };
  }
};
const Tn$2 = [
  xo$2,
  Yr$1,
  Co$2,
  Do$2,
  Po$2,
  Ro$2,
  Io$2,
  Kr$1
], hr$2 = Tn$2.length, Lo$2 = / +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/, Mo$1 = "|";
function ko$2(rv, tv = {}) {
  return rv.split(Mo$1).map((ev) => {
    let iv = ev.trim().split(Lo$2).filter((av) => av && !!av.trim()), ov = [];
    for (let av = 0, sv = iv.length; av < sv; av += 1) {
      const lv = iv[av];
      let uv = !1, cv = -1;
      for (; !uv && ++cv < hr$2; ) {
        const dv = Tn$2[cv];
        let hv = dv.isMultiMatch(lv);
        hv && (ov.push(new dv(hv, tv)), uv = !0);
      }
      if (!uv)
        for (cv = -1; ++cv < hr$2; ) {
          const dv = Tn$2[cv];
          let hv = dv.isSingleMatch(lv);
          if (hv) {
            ov.push(new dv(hv, tv));
            break;
          }
        }
    }
    return ov;
  });
}
const jo$2 = /* @__PURE__ */ new Set([Kr$1.type, Yr$1.type]);
let Bo$2 = class {
  constructor(tv, {
    isCaseSensitive: ev = O.isCaseSensitive,
    includeMatches: iv = O.includeMatches,
    minMatchCharLength: ov = O.minMatchCharLength,
    ignoreLocation: av = O.ignoreLocation,
    findAllMatches: sv = O.findAllMatches,
    location: lv = O.location,
    threshold: uv = O.threshold,
    distance: cv = O.distance
  } = {}) {
    this.query = null, this.options = {
      isCaseSensitive: ev,
      includeMatches: iv,
      minMatchCharLength: ov,
      findAllMatches: sv,
      ignoreLocation: av,
      location: lv,
      threshold: uv,
      distance: cv
    }, this.pattern = ev ? tv : tv.toLowerCase(), this.query = ko$2(this.pattern, this.options);
  }
  static condition(tv, ev) {
    return ev.useExtendedSearch;
  }
  searchIn(tv) {
    const ev = this.query;
    if (!ev)
      return {
        isMatch: !1,
        score: 1
      };
    const { includeMatches: iv, isCaseSensitive: ov } = this.options;
    tv = ov ? tv : tv.toLowerCase();
    let av = 0, sv = [], lv = 0;
    for (let uv = 0, cv = ev.length; uv < cv; uv += 1) {
      const dv = ev[uv];
      sv.length = 0, av = 0;
      for (let hv = 0, pv = dv.length; hv < pv; hv += 1) {
        const yv = dv[hv], { isMatch: Sv, indices: _v, score: Ev } = yv.search(tv);
        if (Sv) {
          if (av += 1, lv += Ev, iv) {
            const wv = yv.constructor.type;
            jo$2.has(wv) ? sv = [...sv, ..._v] : sv.push(_v);
          }
        } else {
          lv = 0, av = 0, sv.length = 0;
          break;
        }
      }
      if (av) {
        let hv = {
          isMatch: !0,
          score: lv / av
        };
        return iv && (hv.indices = sv), hv;
      }
    }
    return {
      isMatch: !1,
      score: 1
    };
  }
};
const wn$2 = [];
function Fo$2(...rv) {
  wn$2.push(...rv);
}
function Nn$1(rv, tv) {
  for (let ev = 0, iv = wn$2.length; ev < iv; ev += 1) {
    let ov = wn$2[ev];
    if (ov.condition(rv, tv))
      return new ov(rv, tv);
  }
  return new Hr$1(rv, tv);
}
const Mt$2 = {
  AND: "$and",
  OR: "$or"
}, xn$2 = {
  PATH: "$path",
  PATTERN: "$val"
}, In$1 = (rv) => !!(rv[Mt$2.AND] || rv[Mt$2.OR]), Vo$1 = (rv) => !!rv[xn$2.PATH], Uo$2 = (rv) => !_e$1(rv) && $r$2(rv) && !In$1(rv), dr$2 = (rv) => ({
  [Mt$2.AND]: Object.keys(rv).map((tv) => ({
    [tv]: rv[tv]
  }))
});
function Wr(rv, tv, { auto: ev = !0 } = {}) {
  const iv = (ov) => {
    let av = Object.keys(ov);
    const sv = Vo$1(ov);
    if (!sv && av.length > 1 && !In$1(ov))
      return iv(dr$2(ov));
    if (Uo$2(ov)) {
      const uv = sv ? ov[xn$2.PATH] : av[0], cv = sv ? ov[xn$2.PATTERN] : ov[uv];
      if (!ce$1(cv))
        throw new Error(fo$2(uv));
      const dv = {
        keyId: Sn$2(uv),
        pattern: cv
      };
      return ev && (dv.searcher = Nn$1(cv, tv)), dv;
    }
    let lv = {
      children: [],
      operator: av[0]
    };
    return av.forEach((uv) => {
      const cv = ov[uv];
      _e$1(cv) && cv.forEach((dv) => {
        lv.children.push(iv(dv));
      });
    }), lv;
  };
  return In$1(rv) || (rv = dr$2(rv)), iv(rv);
}
function $o$2(rv, { ignoreFieldNorm: tv = O.ignoreFieldNorm }) {
  rv.forEach((ev) => {
    let iv = 1;
    ev.matches.forEach(({ key: ov, norm: av, score: sv }) => {
      const lv = ov ? ov.weight : null;
      iv *= Math.pow(
        sv === 0 && lv ? Number.EPSILON : sv,
        (lv || 1) * (tv ? 1 : av)
      );
    }), ev.score = iv;
  });
}
function qo$2(rv, tv) {
  const ev = rv.matches;
  tv.matches = [], H$2(ev) && ev.forEach((iv) => {
    if (!H$2(iv.indices) || !iv.indices.length)
      return;
    const { indices: ov, value: av } = iv;
    let sv = {
      indices: ov,
      value: av
    };
    iv.key && (sv.key = iv.key.src), iv.idx > -1 && (sv.refIndex = iv.idx), tv.matches.push(sv);
  });
}
function Go$2(rv, tv) {
  tv.score = rv.score;
}
function zo$2(rv, tv, {
  includeMatches: ev = O.includeMatches,
  includeScore: iv = O.includeScore
} = {}) {
  const ov = [];
  return ev && ov.push(qo$2), iv && ov.push(Go$2), rv.map((av) => {
    const { idx: sv } = av, lv = {
      item: tv[sv],
      refIndex: sv
    };
    return ov.length && ov.forEach((uv) => {
      uv(av, lv);
    }), lv;
  });
}
let Qe$1 = class {
  constructor(tv, ev = {}, iv) {
    this.options = { ...O, ...ev }, this.options.useExtendedSearch, this._keyStore = new vo$1(this.options.keys), this.setCollection(tv, iv);
  }
  setCollection(tv, ev) {
    if (this._docs = tv, ev && !(ev instanceof Gn$1))
      throw new Error(lo$2);
    this._myIndex = ev || zr$1(this.options.keys, this._docs, {
      getFn: this.options.getFn,
      fieldNormWeight: this.options.fieldNormWeight
    });
  }
  add(tv) {
    H$2(tv) && (this._docs.push(tv), this._myIndex.add(tv));
  }
  remove(tv = () => !1) {
    const ev = [];
    for (let iv = 0, ov = this._docs.length; iv < ov; iv += 1) {
      const av = this._docs[iv];
      tv(av, iv) && (this.removeAt(iv), iv -= 1, ov -= 1, ev.push(av));
    }
    return ev;
  }
  removeAt(tv) {
    this._docs.splice(tv, 1), this._myIndex.removeAt(tv);
  }
  getIndex() {
    return this._myIndex;
  }
  search(tv, { limit: ev = -1 } = {}) {
    const {
      includeMatches: iv,
      includeScore: ov,
      shouldSort: av,
      sortFn: sv,
      ignoreFieldNorm: lv
    } = this.options;
    let uv = ce$1(tv) ? ce$1(this._docs[0]) ? this._searchStringList(tv) : this._searchObjectList(tv) : this._searchLogical(tv);
    return $o$2(uv, { ignoreFieldNorm: lv }), av && uv.sort(sv), Ur$1(ev) && ev > -1 && (uv = uv.slice(0, ev)), zo$2(uv, this._docs, {
      includeMatches: iv,
      includeScore: ov
    });
  }
  _searchStringList(tv) {
    const ev = Nn$1(tv, this.options), { records: iv } = this._myIndex, ov = [];
    return iv.forEach(({ v: av, i: sv, n: lv }) => {
      if (!H$2(av))
        return;
      const { isMatch: uv, score: cv, indices: dv } = ev.searchIn(av);
      uv && ov.push({
        item: av,
        idx: sv,
        matches: [{ score: cv, value: av, norm: lv, indices: dv }]
      });
    }), ov;
  }
  _searchLogical(tv) {
    const ev = Wr(tv, this.options), iv = (lv, uv, cv) => {
      if (!lv.children) {
        const { keyId: hv, searcher: pv } = lv, yv = this._findMatches({
          key: this._keyStore.get(hv),
          value: this._myIndex.getValueForItemAtKeyId(uv, hv),
          searcher: pv
        });
        return yv && yv.length ? [
          {
            idx: cv,
            item: uv,
            matches: yv
          }
        ] : [];
      }
      const dv = [];
      for (let hv = 0, pv = lv.children.length; hv < pv; hv += 1) {
        const yv = lv.children[hv], Sv = iv(yv, uv, cv);
        if (Sv.length)
          dv.push(...Sv);
        else if (lv.operator === Mt$2.AND)
          return [];
      }
      return dv;
    }, ov = this._myIndex.records, av = {}, sv = [];
    return ov.forEach(({ $: lv, i: uv }) => {
      if (H$2(lv)) {
        let cv = iv(ev, lv, uv);
        cv.length && (av[uv] || (av[uv] = { idx: uv, item: lv, matches: [] }, sv.push(av[uv])), cv.forEach(({ matches: dv }) => {
          av[uv].matches.push(...dv);
        }));
      }
    }), sv;
  }
  _searchObjectList(tv) {
    const ev = Nn$1(tv, this.options), { keys: iv, records: ov } = this._myIndex, av = [];
    return ov.forEach(({ $: sv, i: lv }) => {
      if (!H$2(sv))
        return;
      let uv = [];
      iv.forEach((cv, dv) => {
        uv.push(
          ...this._findMatches({
            key: cv,
            value: sv[dv],
            searcher: ev
          })
        );
      }), uv.length && av.push({
        idx: lv,
        item: sv,
        matches: uv
      });
    }), av;
  }
  _findMatches({ key: tv, value: ev, searcher: iv }) {
    if (!H$2(ev))
      return [];
    let ov = [];
    if (_e$1(ev))
      ev.forEach(({ v: av, i: sv, n: lv }) => {
        if (!H$2(av))
          return;
        const { isMatch: uv, score: cv, indices: dv } = iv.searchIn(av);
        uv && ov.push({
          score: cv,
          key: tv,
          value: av,
          idx: sv,
          norm: lv,
          indices: dv
        });
      });
    else {
      const { v: av, n: sv } = ev, { isMatch: lv, score: uv, indices: cv } = iv.searchIn(av);
      lv && ov.push({ score: uv, key: tv, value: av, norm: sv, indices: cv });
    }
    return ov;
  }
};
Qe$1.version = "6.6.2";
Qe$1.createIndex = zr$1;
Qe$1.parseIndex = So$2;
Qe$1.config = O;
Qe$1.parseQuery = Wr;
Fo$2(Bo$2);
const we$1 = Qs$2;
new Qe$1(we$1, { keys: ["name"] });
var xe$1 = /* @__PURE__ */ ((rv) => (rv.ACTIVE = "active", rv.INACTIVE = "inactive", rv))(xe$1 || {});
let Kt$1 = class bN {
  constructor(tv) {
    x$2(this, "root", Af$1(this)), x$2(this, "id", ""), x$2(this, "account", ""), x$2(this, "name", ""), x$2(this, "description", ""), x$2(this, "status", xe$1.ACTIVE), x$2(this, "createdAt", /* @__PURE__ */ new Date()), x$2(this, "products", []), this.root.setProps(tv);
  }
  static create(tv) {
    var ev, iv, ov, av;
    const sv = {
      ...tv,
      id: (ev = tv.id) != null ? ev : ar$2(),
      description: (iv = tv.description) != null ? iv : "",
      createdAt: tv.createdAt ? new Date(tv.createdAt) : /* @__PURE__ */ new Date(),
      status: (ov = tv.status) != null ? ov : xe$1.ACTIVE,
      products: (av = tv.products) != null ? av : []
    };
    return new bN(sv);
  }
  toggleStatus() {
    this.status = this.status === xe$1.ACTIVE ? xe$1.INACTIVE : xe$1.ACTIVE;
  }
  get numProducts() {
    return this.products.length;
  }
  toPrimitives() {
    const { root: tv, createdAt: ev, products: iv, ...ov } = this;
    return {
      ...ov,
      createdAt: ev.toDateString(),
      products: iv.map((av) => av.toPrimitives())
    };
  }
};
new io$2();
function D$1(rv) {
  for (var tv = arguments.length, ev = new Array(tv > 1 ? tv - 1 : 0), iv = 1; iv < tv; iv++)
    ev[iv - 1] = arguments[iv];
  throw new Error(typeof rv == "number" ? "[MobX] minified error nr: " + rv + (ev.length ? " " + ev.map(String).join(",") : "") + ". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts" : "[MobX] " + rv);
}
var Wo$2 = {};
function Jr$2() {
  return typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : Wo$2;
}
var Xr = Object.assign, kt$1 = Object.getOwnPropertyDescriptor, ue$1 = Object.defineProperty, Yt$1 = Object.prototype, Cn$1 = [];
Object.freeze(Cn$1);
var Qr$2 = {};
Object.freeze(Qr$2);
var Jo$2 = typeof Proxy < "u", Xo$2 = /* @__PURE__ */ Object.toString();
function Zr$1() {
  Jo$2 || D$1("Proxy not available");
}
function ei$2(rv) {
  var tv = !1;
  return function() {
    if (!tv)
      return tv = !0, rv.apply(this, arguments);
  };
}
var ze$1 = function() {
};
function ie$1(rv) {
  return typeof rv == "function";
}
function Re$1(rv) {
  var tv = typeof rv;
  switch (tv) {
    case "string":
    case "symbol":
    case "number":
      return !0;
  }
  return !1;
}
function Wt$2(rv) {
  return rv !== null && typeof rv == "object";
}
function ve$2(rv) {
  if (!Wt$2(rv))
    return !1;
  var tv = Object.getPrototypeOf(rv);
  if (tv == null)
    return !0;
  var ev = Object.hasOwnProperty.call(tv, "constructor") && tv.constructor;
  return typeof ev == "function" && ev.toString() === Xo$2;
}
function ti$2(rv) {
  var tv = rv == null ? void 0 : rv.constructor;
  return tv ? tv.name === "GeneratorFunction" || tv.displayName === "GeneratorFunction" : !1;
}
function Jt$1(rv, tv, ev) {
  ue$1(rv, tv, {
    enumerable: !1,
    writable: !0,
    configurable: !0,
    value: ev
  });
}
function ni$1(rv, tv, ev) {
  ue$1(rv, tv, {
    enumerable: !1,
    writable: !1,
    configurable: !0,
    value: ev
  });
}
function Me$1(rv, tv) {
  var ev = "isMobX" + rv;
  return tv.prototype[ev] = !0, function(iv) {
    return Wt$2(iv) && iv[ev] === !0;
  };
}
function Ze$2(rv) {
  return rv != null && Object.prototype.toString.call(rv) === "[object Map]";
}
function Qo$2(rv) {
  var tv = Object.getPrototypeOf(rv), ev = Object.getPrototypeOf(tv), iv = Object.getPrototypeOf(ev);
  return iv === null;
}
function he$1(rv) {
  return rv != null && Object.prototype.toString.call(rv) === "[object Set]";
}
var ri$1 = typeof Object.getOwnPropertySymbols < "u";
function Zo$2(rv) {
  var tv = Object.keys(rv);
  if (!ri$1)
    return tv;
  var ev = Object.getOwnPropertySymbols(rv);
  return ev.length ? [].concat(tv, ev.filter(function(iv) {
    return Yt$1.propertyIsEnumerable.call(rv, iv);
  })) : tv;
}
var pt$1 = typeof Reflect < "u" && Reflect.ownKeys ? Reflect.ownKeys : ri$1 ? function(rv) {
  return Object.getOwnPropertyNames(rv).concat(Object.getOwnPropertySymbols(rv));
} : (
  /* istanbul ignore next */
  Object.getOwnPropertyNames
);
function ii$1(rv) {
  return rv === null ? null : typeof rv == "object" ? "" + rv : rv;
}
function be$1(rv, tv) {
  return Yt$1.hasOwnProperty.call(rv, tv);
}
var ea$2 = Object.getOwnPropertyDescriptors || function(rv) {
  var tv = {};
  return pt$1(rv).forEach(function(ev) {
    tv[ev] = kt$1(rv, ev);
  }), tv;
};
function K$1(rv, tv) {
  return !!(rv & tv);
}
function Y$1(rv, tv, ev) {
  return ev ? rv |= tv : rv &= ~tv, rv;
}
function pr$1(rv, tv) {
  (tv == null || tv > rv.length) && (tv = rv.length);
  for (var ev = 0, iv = Array(tv); ev < tv; ev++)
    iv[ev] = rv[ev];
  return iv;
}
function ta$2(rv, tv) {
  for (var ev = 0; ev < tv.length; ev++) {
    var iv = tv[ev];
    iv.enumerable = iv.enumerable || !1, iv.configurable = !0, "value" in iv && (iv.writable = !0), Object.defineProperty(rv, ra$2(iv.key), iv);
  }
}
function et$1(rv, tv, ev) {
  return tv && ta$2(rv.prototype, tv), Object.defineProperty(rv, "prototype", {
    writable: !1
  }), rv;
}
function He(rv, tv) {
  var ev = typeof Symbol < "u" && rv[Symbol.iterator] || rv["@@iterator"];
  if (ev)
    return (ev = ev.call(rv)).next.bind(ev);
  if (Array.isArray(rv) || (ev = ia$2(rv)) || tv) {
    ev && (rv = ev);
    var iv = 0;
    return function() {
      return iv >= rv.length ? {
        done: !0
      } : {
        done: !1,
        value: rv[iv++]
      };
    };
  }
  throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function We$1() {
  return We$1 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        ({}).hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, We$1.apply(null, arguments);
}
function si$1(rv, tv) {
  rv.prototype = Object.create(tv.prototype), rv.prototype.constructor = rv, Dn$1(rv, tv);
}
function Dn$1(rv, tv) {
  return Dn$1 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(ev, iv) {
    return ev.__proto__ = iv, ev;
  }, Dn$1(rv, tv);
}
function na$2(rv, tv) {
  if (typeof rv != "object" || !rv)
    return rv;
  var ev = rv[Symbol.toPrimitive];
  if (ev !== void 0) {
    var iv = ev.call(rv, tv);
    if (typeof iv != "object")
      return iv;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return String(rv);
}
function ra$2(rv) {
  var tv = na$2(rv, "string");
  return typeof tv == "symbol" ? tv : tv + "";
}
function ia$2(rv, tv) {
  if (rv) {
    if (typeof rv == "string")
      return pr$1(rv, tv);
    var ev = {}.toString.call(rv).slice(8, -1);
    return ev === "Object" && rv.constructor && (ev = rv.constructor.name), ev === "Map" || ev === "Set" ? Array.from(rv) : ev === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ev) ? pr$1(rv, tv) : void 0;
  }
}
var Ke$1 = /* @__PURE__ */ Symbol("mobx-stored-annotations");
function le$1(rv) {
  function tv(ev, iv) {
    if (yt$1(iv))
      return rv.decorate_20223_(ev, iv);
    tt$1(ev, iv, rv);
  }
  return Object.assign(tv, rv);
}
function tt$1(rv, tv, ev) {
  be$1(rv, Ke$1) || Jt$1(rv, Ke$1, We$1({}, rv[Ke$1])), ha$2(ev) || (rv[Ke$1][tv] = ev);
}
function yt$1(rv) {
  return typeof rv == "object" && typeof rv.kind == "string";
}
var A$1 = /* @__PURE__ */ Symbol("mobx administration"), Oe$1 = /* @__PURE__ */ function() {
  function rv(ev) {
    ev === void 0 && (ev = "Atom"), this.name_ = void 0, this.flags_ = 0, this.observers_ = /* @__PURE__ */ new Set(), this.lastAccessedBy_ = 0, this.lowestObserverState_ = C$1.NOT_TRACKING_, this.onBOL = void 0, this.onBUOL = void 0, this.name_ = ev;
  }
  var tv = rv.prototype;
  return tv.onBO = function() {
    this.onBOL && this.onBOL.forEach(function(ev) {
      return ev();
    });
  }, tv.onBUO = function() {
    this.onBUOL && this.onBUOL.forEach(function(ev) {
      return ev();
    });
  }, tv.reportObserved = function() {
    return bi$2(this);
  }, tv.reportChanged = function() {
    Q$1(), Ei$2(this), Z$1();
  }, tv.toString = function() {
    return this.name_;
  }, et$1(rv, [{
    key: "isBeingObserved",
    get: function() {
      return K$1(this.flags_, rv.isBeingObservedMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isBeingObservedMask_, ev);
    }
  }, {
    key: "isPendingUnobservation",
    get: function() {
      return K$1(this.flags_, rv.isPendingUnobservationMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isPendingUnobservationMask_, ev);
    }
  }, {
    key: "diffValue",
    get: function() {
      return K$1(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.diffValueMask_, ev === 1);
    }
  }]);
}();
Oe$1.isBeingObservedMask_ = 1;
Oe$1.isPendingUnobservationMask_ = 2;
Oe$1.diffValueMask_ = 4;
var zn$1 = /* @__PURE__ */ Me$1("Atom", Oe$1);
function oi$1(rv, tv, ev) {
  tv === void 0 && (tv = ze$1), ev === void 0 && (ev = ze$1);
  var iv = new Oe$1(rv);
  return tv !== ze$1 && _c(iv, tv), ev !== ze$1 && wi$2(iv, ev), iv;
}
function sa$2(rv, tv) {
  return rv === tv;
}
function oa$2(rv, tv) {
  return Qn$2(rv, tv);
}
function aa$2(rv, tv) {
  return Qn$2(rv, tv, 1);
}
function ca$2(rv, tv) {
  return Object.is ? Object.is(rv, tv) : rv === tv ? rv !== 0 || 1 / rv === 1 / tv : rv !== rv && tv !== tv;
}
var jt$1 = {
  identity: sa$2,
  structural: oa$2,
  default: ca$2,
  shallow: aa$2
};
function Pe$2(rv, tv, ev) {
  return $t$2(rv) ? rv : Array.isArray(rv) ? U$1.array(rv, {
    name: ev
  }) : ve$2(rv) ? U$1.object(rv, void 0, {
    name: ev
  }) : Ze$2(rv) ? U$1.map(rv, {
    name: ev
  }) : he$1(rv) ? U$1.set(rv, {
    name: ev
  }) : typeof rv == "function" && !tn$2(rv) && !vt$1(rv) ? ti$2(rv) ? Je$1(rv) : _t$1(ev, rv) : rv;
}
function ua$2(rv, tv, ev) {
  if (rv == null || rn$1(rv) || nn$1(rv) || je$1(rv) || nt$2(rv))
    return rv;
  if (Array.isArray(rv))
    return U$1.array(rv, {
      name: ev,
      deep: !1
    });
  if (ve$2(rv))
    return U$1.object(rv, void 0, {
      name: ev,
      deep: !1
    });
  if (Ze$2(rv))
    return U$1.map(rv, {
      name: ev,
      deep: !1
    });
  if (he$1(rv))
    return U$1.set(rv, {
      name: ev,
      deep: !1
    });
}
function Xt$2(rv) {
  return rv;
}
function la$2(rv, tv) {
  return Qn$2(rv, tv) ? tv : rv;
}
var fa$1 = "override";
function ha$2(rv) {
  return rv.annotationType_ === fa$1;
}
function mt$1(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: da$2,
    extend_: pa$1,
    decorate_20223_: _a$3
  };
}
function da$2(rv, tv, ev, iv) {
  var ov;
  if ((ov = this.options_) != null && ov.bound)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
  if (iv === rv.target_)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 2;
  if (tn$2(ev.value))
    return 1;
  var av = ai$1(rv, this, tv, ev, !1);
  return ue$1(iv, tv, av), 2;
}
function pa$1(rv, tv, ev, iv) {
  var ov = ai$1(rv, this, tv, ev);
  return rv.defineProperty_(tv, ov, iv);
}
function _a$3(rv, tv) {
  var ev = tv.kind, iv = tv.name, ov = tv.addInitializer, av = this, sv = function(uv) {
    var cv, dv, hv, pv;
    return Le$2((cv = (dv = av.options_) == null ? void 0 : dv.name) != null ? cv : iv.toString(), uv, (hv = (pv = av.options_) == null ? void 0 : pv.autoAction) != null ? hv : !1);
  };
  if (ev == "field") {
    ov(function() {
      tt$1(this, iv, av);
    });
    return;
  }
  if (ev == "method") {
    var lv;
    return tn$2(rv) || (rv = sv(rv)), (lv = this.options_) != null && lv.bound && ov(function() {
      var uv = this, cv = uv[iv].bind(uv);
      cv.isMobxAction = !0, uv[iv] = cv;
    }), rv;
  }
  D$1("Cannot apply '" + av.annotationType_ + "' to '" + String(iv) + "' (kind: " + ev + "):" + (`
'` + av.annotationType_ + "' can only be used on properties with a function value."));
}
function va$2(rv, tv, ev, iv) {
  tv.annotationType_, iv.value;
}
function ai$1(rv, tv, ev, iv, ov) {
  var av, sv, lv, uv, cv, dv, hv;
  ov === void 0 && (ov = g$1.safeDescriptors), va$2(rv, tv, ev, iv);
  var pv = iv.value;
  if ((av = tv.options_) != null && av.bound) {
    var yv;
    pv = pv.bind((yv = rv.proxy_) != null ? yv : rv.target_);
  }
  return {
    value: Le$2(
      (sv = (lv = tv.options_) == null ? void 0 : lv.name) != null ? sv : ev.toString(),
      pv,
      (uv = (cv = tv.options_) == null ? void 0 : cv.autoAction) != null ? uv : !1,
      // https://github.com/mobxjs/mobx/discussions/3140
      (dv = tv.options_) != null && dv.bound ? (hv = rv.proxy_) != null ? hv : rv.target_ : void 0
    ),
    // Non-configurable for classes
    // prevents accidental field redefinition in subclass
    configurable: ov ? rv.isPlainObject_ : !0,
    // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058
    enumerable: !1,
    // Non-obsevable, therefore non-writable
    // Also prevents rewriting in subclass constructor
    writable: !ov
  };
}
function ci$2(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: ga$2,
    extend_: ya$1,
    decorate_20223_: ma$1
  };
}
function ga$2(rv, tv, ev, iv) {
  var ov;
  if (iv === rv.target_)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 2;
  if ((ov = this.options_) != null && ov.bound && (!be$1(rv.target_, tv) || !vt$1(rv.target_[tv])) && this.extend_(rv, tv, ev, !1) === null)
    return 0;
  if (vt$1(ev.value))
    return 1;
  var av = ui$2(rv, this, tv, ev, !1, !1);
  return ue$1(iv, tv, av), 2;
}
function ya$1(rv, tv, ev, iv) {
  var ov, av = ui$2(rv, this, tv, ev, (ov = this.options_) == null ? void 0 : ov.bound);
  return rv.defineProperty_(tv, av, iv);
}
function ma$1(rv, tv) {
  var ev, iv = tv.name, ov = tv.addInitializer;
  return vt$1(rv) || (rv = Je$1(rv)), (ev = this.options_) != null && ev.bound && ov(function() {
    var av = this, sv = av[iv].bind(av);
    sv.isMobXFlow = !0, av[iv] = sv;
  }), rv;
}
function ba$2(rv, tv, ev, iv) {
  tv.annotationType_, iv.value;
}
function ui$2(rv, tv, ev, iv, ov, av) {
  av === void 0 && (av = g$1.safeDescriptors), ba$2(rv, tv, ev, iv);
  var sv = iv.value;
  if (vt$1(sv) || (sv = Je$1(sv)), ov) {
    var lv;
    sv = sv.bind((lv = rv.proxy_) != null ? lv : rv.target_), sv.isMobXFlow = !0;
  }
  return {
    value: sv,
    // Non-configurable for classes
    // prevents accidental field redefinition in subclass
    configurable: av ? rv.isPlainObject_ : !0,
    // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058
    enumerable: !1,
    // Non-obsevable, therefore non-writable
    // Also prevents rewriting in subclass constructor
    writable: !av
  };
}
function Hn$1(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: Ea$2,
    extend_: Aa$1,
    decorate_20223_: Oa$2
  };
}
function Ea$2(rv, tv, ev) {
  return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
}
function Aa$1(rv, tv, ev, iv) {
  return Sa$2(rv, this, tv, ev), rv.defineComputedProperty_(tv, We$1({}, this.options_, {
    get: ev.get,
    set: ev.set
  }), iv);
}
function Oa$2(rv, tv) {
  var ev = this, iv = tv.name, ov = tv.addInitializer;
  return ov(function() {
    var av = rt$1(this)[A$1], sv = We$1({}, ev.options_, {
      get: rv,
      context: this
    });
    sv.name || (sv.name = "ObservableObject." + iv.toString()), av.values_.set(iv, new se$1(sv));
  }), function() {
    return this[A$1].getObservablePropValue_(iv);
  };
}
function Sa$2(rv, tv, ev, iv) {
  tv.annotationType_, iv.get;
}
function Qt$1(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: Ta$2,
    extend_: wa$2,
    decorate_20223_: Na$2
  };
}
function Ta$2(rv, tv, ev) {
  return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
}
function wa$2(rv, tv, ev, iv) {
  var ov, av;
  return xa$2(rv, this), rv.defineObservableProperty_(tv, ev.value, (ov = (av = this.options_) == null ? void 0 : av.enhancer) != null ? ov : Pe$2, iv);
}
function Na$2(rv, tv) {
  var ev = this, iv = tv.kind, ov = tv.name, av = /* @__PURE__ */ new WeakSet();
  function sv(lv, uv) {
    var cv, dv, hv = rt$1(lv)[A$1], pv = new Ce(uv, (cv = (dv = ev.options_) == null ? void 0 : dv.enhancer) != null ? cv : Pe$2, "ObservableObject." + ov.toString(), !1);
    hv.values_.set(ov, pv), av.add(lv);
  }
  if (iv == "accessor")
    return {
      get: function() {
        return av.has(this) || sv(this, rv.get.call(this)), this[A$1].getObservablePropValue_(ov);
      },
      set: function(lv) {
        return av.has(this) || sv(this, lv), this[A$1].setObservablePropValue_(ov, lv);
      },
      init: function(lv) {
        return av.has(this) || sv(this, lv), lv;
      }
    };
}
function xa$2(rv, tv, ev, iv) {
  tv.annotationType_;
}
var Ia$2 = "true", Ca$2 = /* @__PURE__ */ li$2();
function li$2(rv) {
  return {
    annotationType_: Ia$2,
    options_: rv,
    make_: Da$2,
    extend_: Ra$2,
    decorate_20223_: Pa$2
  };
}
function Da$2(rv, tv, ev, iv) {
  var ov, av;
  if (ev.get)
    return Zt$1.make_(rv, tv, ev, iv);
  if (ev.set) {
    var sv = Le$2(tv.toString(), ev.set);
    return iv === rv.target_ ? rv.defineProperty_(tv, {
      configurable: g$1.safeDescriptors ? rv.isPlainObject_ : !0,
      set: sv
    }) === null ? 0 : 2 : (ue$1(iv, tv, {
      configurable: !0,
      set: sv
    }), 2);
  }
  if (iv !== rv.target_ && typeof ev.value == "function") {
    var lv;
    if (ti$2(ev.value)) {
      var uv, cv = (uv = this.options_) != null && uv.autoBind ? Je$1.bound : Je$1;
      return cv.make_(rv, tv, ev, iv);
    }
    var dv = (lv = this.options_) != null && lv.autoBind ? _t$1.bound : _t$1;
    return dv.make_(rv, tv, ev, iv);
  }
  var hv = ((ov = this.options_) == null ? void 0 : ov.deep) === !1 ? U$1.ref : U$1;
  if (typeof ev.value == "function" && (av = this.options_) != null && av.autoBind) {
    var pv;
    ev.value = ev.value.bind((pv = rv.proxy_) != null ? pv : rv.target_);
  }
  return hv.make_(rv, tv, ev, iv);
}
function Ra$2(rv, tv, ev, iv) {
  var ov, av;
  if (ev.get)
    return Zt$1.extend_(rv, tv, ev, iv);
  if (ev.set)
    return rv.defineProperty_(tv, {
      configurable: g$1.safeDescriptors ? rv.isPlainObject_ : !0,
      set: Le$2(tv.toString(), ev.set)
    }, iv);
  if (typeof ev.value == "function" && (ov = this.options_) != null && ov.autoBind) {
    var sv;
    ev.value = ev.value.bind((sv = rv.proxy_) != null ? sv : rv.target_);
  }
  var lv = ((av = this.options_) == null ? void 0 : av.deep) === !1 ? U$1.ref : U$1;
  return lv.extend_(rv, tv, ev, iv);
}
function Pa$2(rv, tv) {
  D$1("'" + this.annotationType_ + "' cannot be used as a decorator");
}
var La$2 = "observable", Ma$2 = "observable.ref", ka$2 = "observable.shallow", ja$1 = "observable.struct", fi$2 = {
  deep: !0,
  name: void 0,
  defaultDecorator: void 0,
  proxy: !0
};
Object.freeze(fi$2);
function Nt(rv) {
  return rv || fi$2;
}
var Rn$2 = /* @__PURE__ */ Qt$1(La$2), Ba$2 = /* @__PURE__ */ Qt$1(Ma$2, {
  enhancer: Xt$2
}), Fa$1 = /* @__PURE__ */ Qt$1(ka$2, {
  enhancer: ua$2
}), Va$1 = /* @__PURE__ */ Qt$1(ja$1, {
  enhancer: la$2
}), hi$2 = /* @__PURE__ */ le$1(Rn$2);
function xt$2(rv) {
  return rv.deep === !0 ? Pe$2 : rv.deep === !1 ? Xt$2 : $a$2(rv.defaultDecorator);
}
function Ua$2(rv) {
  var tv;
  return rv ? (tv = rv.defaultDecorator) != null ? tv : li$2(rv) : void 0;
}
function $a$2(rv) {
  var tv, ev;
  return rv && (tv = (ev = rv.options_) == null ? void 0 : ev.enhancer) != null ? tv : Pe$2;
}
function di$2(rv, tv, ev) {
  if (yt$1(tv))
    return Rn$2.decorate_20223_(rv, tv);
  if (Re$1(tv)) {
    tt$1(rv, tv, Rn$2);
    return;
  }
  return $t$2(rv) ? rv : ve$2(rv) ? U$1.object(rv, tv, ev) : Array.isArray(rv) ? U$1.array(rv, tv) : Ze$2(rv) ? U$1.map(rv, tv) : he$1(rv) ? U$1.set(rv, tv) : typeof rv == "object" && rv !== null ? rv : U$1.box(rv, tv);
}
Xr(di$2, hi$2);
var qa$2 = {
  box: function(rv, tv) {
    var ev = Nt(tv);
    return new Ce(rv, xt$2(ev), ev.name, !0, ev.equals);
  },
  array: function(rv, tv) {
    var ev = Nt(tv);
    return (g$1.useProxies === !1 || ev.proxy === !1 ? Pc : Oc)(rv, xt$2(ev), ev.name);
  },
  map: function(rv, tv) {
    var ev = Nt(tv);
    return new Di$1(rv, xt$2(ev), ev.name);
  },
  set: function(rv, tv) {
    var ev = Nt(tv);
    return new Ri$2(rv, xt$2(ev), ev.name);
  },
  object: function(rv, tv, ev) {
    return Be$1(function() {
      return xi$2(g$1.useProxies === !1 || (ev == null ? void 0 : ev.proxy) === !1 ? rt$1({}, ev) : bc$1({}, ev), rv, tv);
    });
  },
  ref: /* @__PURE__ */ le$1(Ba$2),
  shallow: /* @__PURE__ */ le$1(Fa$1),
  deep: hi$2,
  struct: /* @__PURE__ */ le$1(Va$1)
}, U$1 = /* @__PURE__ */ Xr(di$2, qa$2), pi$2 = "computed", Ga$1 = "computed.struct", Pn$2 = /* @__PURE__ */ Hn$1(pi$2), za$1 = /* @__PURE__ */ Hn$1(Ga$1, {
  equals: jt$1.structural
}), Zt$1 = function(rv, tv) {
  if (yt$1(tv))
    return Pn$2.decorate_20223_(rv, tv);
  if (Re$1(tv))
    return tt$1(rv, tv, Pn$2);
  if (ve$2(rv))
    return le$1(Hn$1(pi$2, rv));
  var ev = ve$2(tv) ? tv : {};
  return ev.get = rv, ev.name || (ev.name = rv.name || ""), new se$1(ev);
};
Object.assign(Zt$1, Pn$2);
Zt$1.struct = /* @__PURE__ */ le$1(za$1);
var _r$2, vr$2, Bt$2 = 0, Ha = 1, Ka$1 = (_r$2 = (vr$2 = /* @__PURE__ */ kt$1(function() {
}, "name")) == null ? void 0 : vr$2.configurable) != null ? _r$2 : !1, gr$1 = {
  value: "action",
  configurable: !0,
  writable: !1,
  enumerable: !1
};
function Le$2(rv, tv, ev, iv) {
  ev === void 0 && (ev = !1);
  function ov() {
    return Ya$1(rv, ev, tv, iv || this, arguments);
  }
  return ov.isMobxAction = !0, ov.toString = function() {
    return tv.toString();
  }, Ka$1 && (gr$1.value = rv, ue$1(ov, "name", gr$1)), ov;
}
function Ya$1(rv, tv, ev, iv, ov) {
  var av = Wa$1(rv, tv);
  try {
    return ev.apply(iv, ov);
  } catch (sv) {
    throw av.error_ = sv, sv;
  } finally {
    Ja$2(av);
  }
}
function Wa$1(rv, tv, ev, iv) {
  var ov = !1, av = 0, sv = g$1.trackingDerivation, lv = !tv || !sv;
  Q$1();
  var uv = g$1.allowStateChanges;
  lv && (ke$1(), uv = Kn$2(!0));
  var cv = Wn$1(!0), dv = {
    runAsAction_: lv,
    prevDerivation_: sv,
    prevAllowStateChanges_: uv,
    prevAllowStateReads_: cv,
    notifySpy_: ov,
    startTime_: av,
    actionId_: Ha++,
    parentActionId_: Bt$2
  };
  return Bt$2 = dv.actionId_, dv;
}
function Ja$2(rv) {
  Bt$2 !== rv.actionId_ && D$1(30), Bt$2 = rv.parentActionId_, rv.error_ !== void 0 && (g$1.suppressReactionErrors = !0), Yn$2(rv.prevAllowStateChanges_), lt(rv.prevAllowStateReads_), Z$1(), rv.runAsAction_ && pe(rv.prevDerivation_), g$1.suppressReactionErrors = !1;
}
function Kn$2(rv) {
  var tv = g$1.allowStateChanges;
  return g$1.allowStateChanges = rv, tv;
}
function Yn$2(rv) {
  g$1.allowStateChanges = rv;
}
var Ce = /* @__PURE__ */ function(rv) {
  function tv(iv, ov, av, sv, lv) {
    var uv;
    return av === void 0 && (av = "ObservableValue"), lv === void 0 && (lv = jt$1.default), uv = rv.call(this, av) || this, uv.enhancer = void 0, uv.name_ = void 0, uv.equals = void 0, uv.hasUnreportedChange_ = !1, uv.interceptors_ = void 0, uv.changeListeners_ = void 0, uv.value_ = void 0, uv.dehancer = void 0, uv.enhancer = ov, uv.name_ = av, uv.equals = lv, uv.value_ = ov(iv, void 0, av), uv;
  }
  si$1(tv, rv);
  var ev = tv.prototype;
  return ev.dehanceValue = function(iv) {
    return this.dehancer !== void 0 ? this.dehancer(iv) : iv;
  }, ev.set = function(iv) {
    this.value_, iv = this.prepareNewValue_(iv), iv !== g$1.UNCHANGED && this.setNewValue_(iv);
  }, ev.prepareNewValue_ = function(iv) {
    if (J$1(this)) {
      var ov = X$1(this, {
        object: this,
        type: fe$1,
        newValue: iv
      });
      if (!ov)
        return g$1.UNCHANGED;
      iv = ov.newValue;
    }
    return iv = this.enhancer(iv, this.value_, this.name_), this.equals(this.value_, iv) ? g$1.UNCHANGED : iv;
  }, ev.setNewValue_ = function(iv) {
    var ov = this.value_;
    this.value_ = iv, this.reportChanged(), ne$1(this) && re$1(this, {
      type: fe$1,
      object: this,
      newValue: iv,
      oldValue: ov
    });
  }, ev.get = function() {
    return this.reportObserved(), this.dehanceValue(this.value_);
  }, ev.intercept_ = function(iv) {
    return bt(this, iv);
  }, ev.observe_ = function(iv, ov) {
    return ov && iv({
      observableKind: "value",
      debugObjectName: this.name_,
      object: this,
      type: fe$1,
      newValue: this.value_,
      oldValue: void 0
    }), Et$1(this, iv);
  }, ev.raw = function() {
    return this.value_;
  }, ev.toJSON = function() {
    return this.get();
  }, ev.toString = function() {
    return this.name_ + "[" + this.value_ + "]";
  }, ev.valueOf = function() {
    return ii$1(this.get());
  }, ev[Symbol.toPrimitive] = function() {
    return this.valueOf();
  }, tv;
}(Oe$1), se$1 = /* @__PURE__ */ function() {
  function rv(ev) {
    this.dependenciesState_ = C$1.NOT_TRACKING_, this.observing_ = [], this.newObserving_ = null, this.observers_ = /* @__PURE__ */ new Set(), this.runId_ = 0, this.lastAccessedBy_ = 0, this.lowestObserverState_ = C$1.UP_TO_DATE_, this.unboundDepsCount_ = 0, this.value_ = new Vt$2(null), this.name_ = void 0, this.triggeredBy_ = void 0, this.flags_ = 0, this.derivation = void 0, this.setter_ = void 0, this.isTracing_ = Ft$2.NONE, this.scope_ = void 0, this.equals_ = void 0, this.requiresReaction_ = void 0, this.keepAlive_ = void 0, this.onBOL = void 0, this.onBUOL = void 0, ev.get || D$1(31), this.derivation = ev.get, this.name_ = ev.name || "ComputedValue", ev.set && (this.setter_ = Le$2("ComputedValue-setter", ev.set)), this.equals_ = ev.equals || (ev.compareStructural || ev.struct ? jt$1.structural : jt$1.default), this.scope_ = ev.context, this.requiresReaction_ = ev.requiresReaction, this.keepAlive_ = !!ev.keepAlive;
  }
  var tv = rv.prototype;
  return tv.onBecomeStale_ = function() {
    ec$2(this);
  }, tv.onBO = function() {
    this.onBOL && this.onBOL.forEach(function(ev) {
      return ev();
    });
  }, tv.onBUO = function() {
    this.onBUOL && this.onBUOL.forEach(function(ev) {
      return ev();
    });
  }, tv.get = function() {
    if (this.isComputing && D$1(32, this.name_, this.derivation), g$1.inBatch === 0 && // !globalState.trackingDerivatpion &&
    this.observers_.size === 0 && !this.keepAlive_)
      Ln$1(this) && (this.warnAboutUntrackedRead_(), Q$1(), this.value_ = this.computeValue_(!1), Z$1());
    else if (bi$2(this), Ln$1(this)) {
      var ev = g$1.trackingContext;
      this.keepAlive_ && !ev && (g$1.trackingContext = this), this.trackAndCompute() && Za$2(this), g$1.trackingContext = ev;
    }
    var iv = this.value_;
    if (Rt$1(iv))
      throw iv.cause;
    return iv;
  }, tv.set = function(ev) {
    if (this.setter_) {
      this.isRunningSetter && D$1(33, this.name_), this.isRunningSetter = !0;
      try {
        this.setter_.call(this.scope_, ev);
      } finally {
        this.isRunningSetter = !1;
      }
    } else
      D$1(34, this.name_);
  }, tv.trackAndCompute = function() {
    var ev = this.value_, iv = (
      /* see #1208 */
      this.dependenciesState_ === C$1.NOT_TRACKING_
    ), ov = this.computeValue_(!0), av = iv || Rt$1(ev) || Rt$1(ov) || !this.equals_(ev, ov);
    return av && (this.value_ = ov), av;
  }, tv.computeValue_ = function(ev) {
    this.isComputing = !0;
    var iv = Kn$2(!1), ov;
    if (ev)
      ov = _i$2(this, this.derivation, this.scope_);
    else if (g$1.disableErrorBoundaries === !0)
      ov = this.derivation.call(this.scope_);
    else
      try {
        ov = this.derivation.call(this.scope_);
      } catch (av) {
        ov = new Vt$2(av);
      }
    return Yn$2(iv), this.isComputing = !1, ov;
  }, tv.suspend_ = function() {
    this.keepAlive_ || (Mn$1(this), this.value_ = void 0);
  }, tv.observe_ = function(ev, iv) {
    var ov = this, av = !0, sv = void 0;
    return lc$1(function() {
      var lv = ov.get();
      if (!av || iv) {
        var uv = ke$1();
        ev({
          observableKind: "computed",
          debugObjectName: ov.name_,
          type: fe$1,
          object: ov,
          newValue: lv,
          oldValue: sv
        }), pe(uv);
      }
      av = !1, sv = lv;
    });
  }, tv.warnAboutUntrackedRead_ = function() {
  }, tv.toString = function() {
    return this.name_ + "[" + this.derivation.toString() + "]";
  }, tv.valueOf = function() {
    return ii$1(this.get());
  }, tv[Symbol.toPrimitive] = function() {
    return this.valueOf();
  }, et$1(rv, [{
    key: "isComputing",
    get: function() {
      return K$1(this.flags_, rv.isComputingMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isComputingMask_, ev);
    }
  }, {
    key: "isRunningSetter",
    get: function() {
      return K$1(this.flags_, rv.isRunningSetterMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isRunningSetterMask_, ev);
    }
  }, {
    key: "isBeingObserved",
    get: function() {
      return K$1(this.flags_, rv.isBeingObservedMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isBeingObservedMask_, ev);
    }
  }, {
    key: "isPendingUnobservation",
    get: function() {
      return K$1(this.flags_, rv.isPendingUnobservationMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isPendingUnobservationMask_, ev);
    }
  }, {
    key: "diffValue",
    get: function() {
      return K$1(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.diffValueMask_, ev === 1);
    }
  }]);
}();
se$1.isComputingMask_ = 1;
se$1.isRunningSetterMask_ = 2;
se$1.isBeingObservedMask_ = 4;
se$1.isPendingUnobservationMask_ = 8;
se$1.diffValueMask_ = 16;
var en$2 = /* @__PURE__ */ Me$1("ComputedValue", se$1), C$1;
(function(rv) {
  rv[rv.NOT_TRACKING_ = -1] = "NOT_TRACKING_", rv[rv.UP_TO_DATE_ = 0] = "UP_TO_DATE_", rv[rv.POSSIBLY_STALE_ = 1] = "POSSIBLY_STALE_", rv[rv.STALE_ = 2] = "STALE_";
})(C$1 || (C$1 = {}));
var Ft$2;
(function(rv) {
  rv[rv.NONE = 0] = "NONE", rv[rv.LOG = 1] = "LOG", rv[rv.BREAK = 2] = "BREAK";
})(Ft$2 || (Ft$2 = {}));
var Vt$2 = function(rv) {
  this.cause = void 0, this.cause = rv;
};
function Rt$1(rv) {
  return rv instanceof Vt$2;
}
function Ln$1(rv) {
  switch (rv.dependenciesState_) {
    case C$1.UP_TO_DATE_:
      return !1;
    case C$1.NOT_TRACKING_:
    case C$1.STALE_:
      return !0;
    case C$1.POSSIBLY_STALE_: {
      for (var tv = Wn$1(!0), ev = ke$1(), iv = rv.observing_, ov = iv.length, av = 0; av < ov; av++) {
        var sv = iv[av];
        if (en$2(sv)) {
          if (g$1.disableErrorBoundaries)
            sv.get();
          else
            try {
              sv.get();
            } catch {
              return pe(ev), lt(tv), !0;
            }
          if (rv.dependenciesState_ === C$1.STALE_)
            return pe(ev), lt(tv), !0;
        }
      }
      return gi$2(rv), pe(ev), lt(tv), !1;
    }
  }
}
function _i$2(rv, tv, ev) {
  var iv = Wn$1(!0);
  gi$2(rv), rv.newObserving_ = new Array(
    // Reserve constant space for initial dependencies, dynamic space otherwise.
    // See https://github.com/mobxjs/mobx/pull/3833
    rv.runId_ === 0 ? 100 : rv.observing_.length
  ), rv.unboundDepsCount_ = 0, rv.runId_ = ++g$1.runId;
  var ov = g$1.trackingDerivation;
  g$1.trackingDerivation = rv, g$1.inBatch++;
  var av;
  if (g$1.disableErrorBoundaries === !0)
    av = tv.call(ev);
  else
    try {
      av = tv.call(ev);
    } catch (sv) {
      av = new Vt$2(sv);
    }
  return g$1.inBatch--, g$1.trackingDerivation = ov, Xa$2(rv), lt(iv), av;
}
function Xa$2(rv) {
  for (var tv = rv.observing_, ev = rv.observing_ = rv.newObserving_, iv = C$1.UP_TO_DATE_, ov = 0, av = rv.unboundDepsCount_, sv = 0; sv < av; sv++) {
    var lv = ev[sv];
    lv.diffValue === 0 && (lv.diffValue = 1, ov !== sv && (ev[ov] = lv), ov++), lv.dependenciesState_ > iv && (iv = lv.dependenciesState_);
  }
  for (ev.length = ov, rv.newObserving_ = null, av = tv.length; av--; ) {
    var uv = tv[av];
    uv.diffValue === 0 && yi$2(uv, rv), uv.diffValue = 0;
  }
  for (; ov--; ) {
    var cv = ev[ov];
    cv.diffValue === 1 && (cv.diffValue = 0, Qa$2(cv, rv));
  }
  iv !== C$1.UP_TO_DATE_ && (rv.dependenciesState_ = iv, rv.onBecomeStale_());
}
function Mn$1(rv) {
  var tv = rv.observing_;
  rv.observing_ = [];
  for (var ev = tv.length; ev--; )
    yi$2(tv[ev], rv);
  rv.dependenciesState_ = C$1.NOT_TRACKING_;
}
function vi$2(rv) {
  var tv = ke$1();
  try {
    return rv();
  } finally {
    pe(tv);
  }
}
function ke$1() {
  var rv = g$1.trackingDerivation;
  return g$1.trackingDerivation = null, rv;
}
function pe(rv) {
  g$1.trackingDerivation = rv;
}
function Wn$1(rv) {
  var tv = g$1.allowStateReads;
  return g$1.allowStateReads = rv, tv;
}
function lt(rv) {
  g$1.allowStateReads = rv;
}
function gi$2(rv) {
  if (rv.dependenciesState_ !== C$1.UP_TO_DATE_) {
    rv.dependenciesState_ = C$1.UP_TO_DATE_;
    for (var tv = rv.observing_, ev = tv.length; ev--; )
      tv[ev].lowestObserverState_ = C$1.UP_TO_DATE_;
  }
}
var pn$1 = function() {
  this.version = 6, this.UNCHANGED = {}, this.trackingDerivation = null, this.trackingContext = null, this.runId = 0, this.mobxGuid = 0, this.inBatch = 0, this.pendingUnobservations = [], this.pendingReactions = [], this.isRunningReactions = !1, this.allowStateChanges = !1, this.allowStateReads = !0, this.enforceActions = !0, this.spyListeners = [], this.globalReactionErrorHandlers = [], this.computedRequiresReaction = !1, this.reactionRequiresObservable = !1, this.observableRequiresReaction = !1, this.disableErrorBoundaries = !1, this.suppressReactionErrors = !1, this.useProxies = !0, this.verifyProxies = !1, this.safeDescriptors = !0;
}, _n = !0, g$1 = /* @__PURE__ */ function() {
  var rv = /* @__PURE__ */ Jr$2();
  return rv.__mobxInstanceCount > 0 && !rv.__mobxGlobals && (_n = !1), rv.__mobxGlobals && rv.__mobxGlobals.version !== new pn$1().version && (_n = !1), _n ? rv.__mobxGlobals ? (rv.__mobxInstanceCount += 1, rv.__mobxGlobals.UNCHANGED || (rv.__mobxGlobals.UNCHANGED = {}), rv.__mobxGlobals) : (rv.__mobxInstanceCount = 1, rv.__mobxGlobals = /* @__PURE__ */ new pn$1()) : (setTimeout(function() {
    D$1(35);
  }, 1), new pn$1());
}();
function Qa$2(rv, tv) {
  rv.observers_.add(tv), rv.lowestObserverState_ > tv.dependenciesState_ && (rv.lowestObserverState_ = tv.dependenciesState_);
}
function yi$2(rv, tv) {
  rv.observers_.delete(tv), rv.observers_.size === 0 && mi$2(rv);
}
function mi$2(rv) {
  rv.isPendingUnobservation === !1 && (rv.isPendingUnobservation = !0, g$1.pendingUnobservations.push(rv));
}
function Q$1() {
  g$1.inBatch++;
}
function Z$1() {
  if (--g$1.inBatch === 0) {
    Ai$1();
    for (var rv = g$1.pendingUnobservations, tv = 0; tv < rv.length; tv++) {
      var ev = rv[tv];
      ev.isPendingUnobservation = !1, ev.observers_.size === 0 && (ev.isBeingObserved && (ev.isBeingObserved = !1, ev.onBUO()), ev instanceof se$1 && ev.suspend_());
    }
    g$1.pendingUnobservations = [];
  }
}
function bi$2(rv) {
  var tv = g$1.trackingDerivation;
  return tv !== null ? (tv.runId_ !== rv.lastAccessedBy_ && (rv.lastAccessedBy_ = tv.runId_, tv.newObserving_[tv.unboundDepsCount_++] = rv, !rv.isBeingObserved && g$1.trackingContext && (rv.isBeingObserved = !0, rv.onBO())), rv.isBeingObserved) : (rv.observers_.size === 0 && g$1.inBatch > 0 && mi$2(rv), !1);
}
function Ei$2(rv) {
  rv.lowestObserverState_ !== C$1.STALE_ && (rv.lowestObserverState_ = C$1.STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === C$1.UP_TO_DATE_ && tv.onBecomeStale_(), tv.dependenciesState_ = C$1.STALE_;
  }));
}
function Za$2(rv) {
  rv.lowestObserverState_ !== C$1.STALE_ && (rv.lowestObserverState_ = C$1.STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === C$1.POSSIBLY_STALE_ ? tv.dependenciesState_ = C$1.STALE_ : tv.dependenciesState_ === C$1.UP_TO_DATE_ && (rv.lowestObserverState_ = C$1.UP_TO_DATE_);
  }));
}
function ec$2(rv) {
  rv.lowestObserverState_ === C$1.UP_TO_DATE_ && (rv.lowestObserverState_ = C$1.POSSIBLY_STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === C$1.UP_TO_DATE_ && (tv.dependenciesState_ = C$1.POSSIBLY_STALE_, tv.onBecomeStale_());
  }));
}
var Ee$1 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    ev === void 0 && (ev = "Reaction"), this.name_ = void 0, this.onInvalidate_ = void 0, this.errorHandler_ = void 0, this.requiresObservable_ = void 0, this.observing_ = [], this.newObserving_ = [], this.dependenciesState_ = C$1.NOT_TRACKING_, this.runId_ = 0, this.unboundDepsCount_ = 0, this.flags_ = 0, this.isTracing_ = Ft$2.NONE, this.name_ = ev, this.onInvalidate_ = iv, this.errorHandler_ = ov, this.requiresObservable_ = av;
  }
  var tv = rv.prototype;
  return tv.onBecomeStale_ = function() {
    this.schedule_();
  }, tv.schedule_ = function() {
    this.isScheduled || (this.isScheduled = !0, g$1.pendingReactions.push(this), Ai$1());
  }, tv.runReaction_ = function() {
    if (!this.isDisposed) {
      Q$1(), this.isScheduled = !1;
      var ev = g$1.trackingContext;
      if (g$1.trackingContext = this, Ln$1(this)) {
        this.isTrackPending = !0;
        try {
          this.onInvalidate_();
        } catch (iv) {
          this.reportExceptionInDerivation_(iv);
        }
      }
      g$1.trackingContext = ev, Z$1();
    }
  }, tv.track = function(ev) {
    if (!this.isDisposed) {
      Q$1(), this.isRunning = !0;
      var iv = g$1.trackingContext;
      g$1.trackingContext = this;
      var ov = _i$2(this, ev, void 0);
      g$1.trackingContext = iv, this.isRunning = !1, this.isTrackPending = !1, this.isDisposed && Mn$1(this), Rt$1(ov) && this.reportExceptionInDerivation_(ov.cause), Z$1();
    }
  }, tv.reportExceptionInDerivation_ = function(ev) {
    var iv = this;
    if (this.errorHandler_) {
      this.errorHandler_(ev, this);
      return;
    }
    if (g$1.disableErrorBoundaries)
      throw ev;
    var ov = "[mobx] uncaught error in '" + this + "'";
    g$1.suppressReactionErrors || console.error(ov, ev), g$1.globalReactionErrorHandlers.forEach(function(av) {
      return av(ev, iv);
    });
  }, tv.dispose = function() {
    this.isDisposed || (this.isDisposed = !0, this.isRunning || (Q$1(), Mn$1(this), Z$1()));
  }, tv.getDisposer_ = function(ev) {
    var iv = this, ov = function av() {
      iv.dispose(), ev == null || ev.removeEventListener == null || ev.removeEventListener("abort", av);
    };
    return ev == null || ev.addEventListener == null || ev.addEventListener("abort", ov), ov[A$1] = this, ov;
  }, tv.toString = function() {
    return "Reaction[" + this.name_ + "]";
  }, tv.trace = function(ev) {
  }, et$1(rv, [{
    key: "isDisposed",
    get: function() {
      return K$1(this.flags_, rv.isDisposedMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isDisposedMask_, ev);
    }
  }, {
    key: "isScheduled",
    get: function() {
      return K$1(this.flags_, rv.isScheduledMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isScheduledMask_, ev);
    }
  }, {
    key: "isTrackPending",
    get: function() {
      return K$1(this.flags_, rv.isTrackPendingMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isTrackPendingMask_, ev);
    }
  }, {
    key: "isRunning",
    get: function() {
      return K$1(this.flags_, rv.isRunningMask_);
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.isRunningMask_, ev);
    }
  }, {
    key: "diffValue",
    get: function() {
      return K$1(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(ev) {
      this.flags_ = Y$1(this.flags_, rv.diffValueMask_, ev === 1);
    }
  }]);
}();
Ee$1.isDisposedMask_ = 1;
Ee$1.isScheduledMask_ = 2;
Ee$1.isTrackPendingMask_ = 4;
Ee$1.isRunningMask_ = 8;
Ee$1.diffValueMask_ = 16;
var tc$1 = 100, nc$2 = function(rv) {
  return rv();
};
function Ai$1() {
  g$1.inBatch > 0 || g$1.isRunningReactions || nc$2(rc$1);
}
function rc$1() {
  g$1.isRunningReactions = !0;
  for (var rv = g$1.pendingReactions, tv = 0; rv.length > 0; ) {
    ++tv === tc$1 && (console.error("[mobx] cycle in reaction: " + rv[0]), rv.splice(0));
    for (var ev = rv.splice(0), iv = 0, ov = ev.length; iv < ov; iv++)
      ev[iv].runReaction_();
  }
  g$1.isRunningReactions = !1;
}
var Ut$2 = /* @__PURE__ */ Me$1("Reaction", Ee$1);
function ft$1() {
  return !1;
}
function ic$2(rv) {
  return console.warn("[mobx.spy] Is a no-op in production builds"), function() {
  };
}
var Oi$2 = "action", sc$1 = "action.bound", Si$2 = "autoAction", oc$1 = "autoAction.bound", ac$1 = "<unnamed action>", kn$2 = /* @__PURE__ */ mt$1(Oi$2), cc = /* @__PURE__ */ mt$1(sc$1, {
  bound: !0
}), jn$1 = /* @__PURE__ */ mt$1(Si$2, {
  autoAction: !0
}), uc = /* @__PURE__ */ mt$1(oc$1, {
  autoAction: !0,
  bound: !0
});
function Ti$2(rv) {
  var tv = function(ev, iv) {
    if (ie$1(ev))
      return Le$2(ev.name || ac$1, ev, rv);
    if (ie$1(iv))
      return Le$2(ev, iv, rv);
    if (yt$1(iv))
      return (rv ? jn$1 : kn$2).decorate_20223_(ev, iv);
    if (Re$1(iv))
      return tt$1(ev, iv, rv ? jn$1 : kn$2);
    if (Re$1(ev))
      return le$1(mt$1(rv ? Si$2 : Oi$2, {
        name: ev,
        autoAction: rv
      }));
  };
  return tv;
}
var Ye$2 = /* @__PURE__ */ Ti$2(!1);
Object.assign(Ye$2, kn$2);
var _t$1 = /* @__PURE__ */ Ti$2(!0);
Object.assign(_t$1, jn$1);
Ye$2.bound = /* @__PURE__ */ le$1(cc);
_t$1.bound = /* @__PURE__ */ le$1(uc);
function tn$2(rv) {
  return ie$1(rv) && rv.isMobxAction === !0;
}
function lc$1(rv, tv) {
  var ev, iv, ov, av;
  tv === void 0 && (tv = Qr$2);
  var sv = (ev = (iv = tv) == null ? void 0 : iv.name) != null ? ev : "Autorun", lv = !tv.scheduler && !tv.delay, uv;
  if (lv)
    uv = new Ee$1(sv, function() {
      this.track(hv);
    }, tv.onError, tv.requiresObservable);
  else {
    var cv = hc(tv), dv = !1;
    uv = new Ee$1(sv, function() {
      dv || (dv = !0, cv(function() {
        dv = !1, uv.isDisposed || uv.track(hv);
      }));
    }, tv.onError, tv.requiresObservable);
  }
  function hv() {
    rv(uv);
  }
  return (ov = tv) != null && (ov = ov.signal) != null && ov.aborted || uv.schedule_(), uv.getDisposer_((av = tv) == null ? void 0 : av.signal);
}
var fc = function(rv) {
  return rv();
};
function hc(rv) {
  return rv.scheduler ? rv.scheduler : rv.delay ? function(tv) {
    return setTimeout(tv, rv.delay);
  } : fc;
}
var dc$1 = "onBO", pc = "onBUO";
function _c(rv, tv, ev) {
  return Ni$2(dc$1, rv, tv, ev);
}
function wi$2(rv, tv, ev) {
  return Ni$2(pc, rv, tv, ev);
}
function Ni$2(rv, tv, ev, iv) {
  var ov = Bn$1(tv), av = ie$1(iv) ? iv : ev, sv = rv + "L";
  return ov[sv] ? ov[sv].add(av) : ov[sv] = /* @__PURE__ */ new Set([av]), function() {
    var lv = ov[sv];
    lv && (lv.delete(av), lv.size === 0 && delete ov[sv]);
  };
}
function xi$2(rv, tv, ev, iv) {
  var ov = ea$2(tv);
  return Be$1(function() {
    var av = rt$1(rv, iv)[A$1];
    pt$1(ov).forEach(function(sv) {
      av.extend_(
        sv,
        ov[sv],
        // must pass "undefined" for { key: undefined }
        ev && sv in ev ? ev[sv] : !0
      );
    });
  }), rv;
}
var vc = 0;
function Ii$2() {
  this.message = "FLOW_CANCELLED";
}
Ii$2.prototype = /* @__PURE__ */ Object.create(Error.prototype);
var vn$1 = /* @__PURE__ */ ci$2("flow"), gc = /* @__PURE__ */ ci$2("flow.bound", {
  bound: !0
}), Je$1 = /* @__PURE__ */ Object.assign(function(rv, tv) {
  if (yt$1(tv))
    return vn$1.decorate_20223_(rv, tv);
  if (Re$1(tv))
    return tt$1(rv, tv, vn$1);
  var ev = rv, iv = ev.name || "<unnamed flow>", ov = function() {
    var av = this, sv = arguments, lv = ++vc, uv = Ye$2(iv + " - runid: " + lv + " - init", ev).apply(av, sv), cv, dv = void 0, hv = new Promise(function(pv, yv) {
      var Sv = 0;
      cv = yv;
      function _v(xv) {
        dv = void 0;
        var Cv;
        try {
          Cv = Ye$2(iv + " - runid: " + lv + " - yield " + Sv++, uv.next).call(uv, xv);
        } catch (Av) {
          return yv(Av);
        }
        wv(Cv);
      }
      function Ev(xv) {
        dv = void 0;
        var Cv;
        try {
          Cv = Ye$2(iv + " - runid: " + lv + " - yield " + Sv++, uv.throw).call(uv, xv);
        } catch (Av) {
          return yv(Av);
        }
        wv(Cv);
      }
      function wv(xv) {
        if (ie$1(xv == null ? void 0 : xv.then)) {
          xv.then(wv, yv);
          return;
        }
        return xv.done ? pv(xv.value) : (dv = Promise.resolve(xv.value), dv.then(_v, Ev));
      }
      _v(void 0);
    });
    return hv.cancel = Ye$2(iv + " - runid: " + lv + " - cancel", function() {
      try {
        dv && yr$2(dv);
        var pv = uv.return(void 0), yv = Promise.resolve(pv.value);
        yv.then(ze$1, ze$1), yr$2(yv), cv(new Ii$2());
      } catch (Sv) {
        cv(Sv);
      }
    }), hv;
  };
  return ov.isMobXFlow = !0, ov;
}, vn$1);
Je$1.bound = /* @__PURE__ */ le$1(gc);
function yr$2(rv) {
  ie$1(rv.cancel) && rv.cancel();
}
function vt$1(rv) {
  return (rv == null ? void 0 : rv.isMobXFlow) === !0;
}
function yc$1(rv, tv) {
  return rv ? rn$1(rv) || !!rv[A$1] || zn$1(rv) || Ut$2(rv) || en$2(rv) : !1;
}
function $t$2(rv) {
  return yc$1(rv);
}
function de(rv, tv) {
  tv === void 0 && (tv = void 0), Q$1();
  try {
    return rv.apply(tv);
  } finally {
    Z$1();
  }
}
function Ue$1(rv) {
  return rv[A$1];
}
var mc = {
  has: function(rv, tv) {
    return Ue$1(rv).has_(tv);
  },
  get: function(rv, tv) {
    return Ue$1(rv).get_(tv);
  },
  set: function(rv, tv, ev) {
    var iv;
    return Re$1(tv) ? (iv = Ue$1(rv).set_(tv, ev, !0)) != null ? iv : !0 : !1;
  },
  deleteProperty: function(rv, tv) {
    var ev;
    return Re$1(tv) ? (ev = Ue$1(rv).delete_(tv, !0)) != null ? ev : !0 : !1;
  },
  defineProperty: function(rv, tv, ev) {
    var iv;
    return (iv = Ue$1(rv).defineProperty_(tv, ev)) != null ? iv : !0;
  },
  ownKeys: function(rv) {
    return Ue$1(rv).ownKeys_();
  },
  preventExtensions: function(rv) {
    D$1(13);
  }
};
function bc$1(rv, tv) {
  var ev, iv;
  return Zr$1(), rv = rt$1(rv, tv), (iv = (ev = rv[A$1]).proxy_) != null ? iv : ev.proxy_ = new Proxy(rv, mc);
}
function J$1(rv) {
  return rv.interceptors_ !== void 0 && rv.interceptors_.length > 0;
}
function bt(rv, tv) {
  var ev = rv.interceptors_ || (rv.interceptors_ = []);
  return ev.push(tv), ei$2(function() {
    var iv = ev.indexOf(tv);
    iv !== -1 && ev.splice(iv, 1);
  });
}
function X$1(rv, tv) {
  var ev = ke$1();
  try {
    for (var iv = [].concat(rv.interceptors_ || []), ov = 0, av = iv.length; ov < av && (tv = iv[ov](tv), tv && !tv.type && D$1(14), !!tv); ov++)
      ;
    return tv;
  } finally {
    pe(ev);
  }
}
function ne$1(rv) {
  return rv.changeListeners_ !== void 0 && rv.changeListeners_.length > 0;
}
function Et$1(rv, tv) {
  var ev = rv.changeListeners_ || (rv.changeListeners_ = []);
  return ev.push(tv), ei$2(function() {
    var iv = ev.indexOf(tv);
    iv !== -1 && ev.splice(iv, 1);
  });
}
function re$1(rv, tv) {
  var ev = ke$1(), iv = rv.changeListeners_;
  if (iv) {
    iv = iv.slice();
    for (var ov = 0, av = iv.length; ov < av; ov++)
      iv[ov](tv);
    pe(ev);
  }
}
var mr$2 = "splice", fe$1 = "update", Ec = 1e4, Ac$1 = {
  get: function(rv, tv) {
    var ev = rv[A$1];
    return tv === A$1 ? ev : tv === "length" ? ev.getArrayLength_() : typeof tv == "string" && !isNaN(tv) ? ev.get_(parseInt(tv)) : be$1(qt$1, tv) ? qt$1[tv] : rv[tv];
  },
  set: function(rv, tv, ev) {
    var iv = rv[A$1];
    return tv === "length" && iv.setArrayLength_(ev), typeof tv == "symbol" || isNaN(tv) ? rv[tv] = ev : iv.set_(parseInt(tv), ev), !0;
  },
  preventExtensions: function() {
    D$1(15);
  }
}, Jn$2 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    ev === void 0 && (ev = "ObservableArray"), this.owned_ = void 0, this.legacyMode_ = void 0, this.atom_ = void 0, this.values_ = [], this.interceptors_ = void 0, this.changeListeners_ = void 0, this.enhancer_ = void 0, this.dehancer = void 0, this.proxy_ = void 0, this.lastKnownLength_ = 0, this.owned_ = ov, this.legacyMode_ = av, this.atom_ = new Oe$1(ev), this.enhancer_ = function(sv, lv) {
      return iv(sv, lv, "ObservableArray[..]");
    };
  }
  var tv = rv.prototype;
  return tv.dehanceValue_ = function(ev) {
    return this.dehancer !== void 0 ? this.dehancer(ev) : ev;
  }, tv.dehanceValues_ = function(ev) {
    return this.dehancer !== void 0 && ev.length > 0 ? ev.map(this.dehancer) : ev;
  }, tv.intercept_ = function(ev) {
    return bt(this, ev);
  }, tv.observe_ = function(ev, iv) {
    return iv === void 0 && (iv = !1), iv && ev({
      observableKind: "array",
      object: this.proxy_,
      debugObjectName: this.atom_.name_,
      type: "splice",
      index: 0,
      added: this.values_.slice(),
      addedCount: this.values_.length,
      removed: [],
      removedCount: 0
    }), Et$1(this, ev);
  }, tv.getArrayLength_ = function() {
    return this.atom_.reportObserved(), this.values_.length;
  }, tv.setArrayLength_ = function(ev) {
    (typeof ev != "number" || isNaN(ev) || ev < 0) && D$1("Out of range: " + ev);
    var iv = this.values_.length;
    if (ev !== iv)
      if (ev > iv) {
        for (var ov = new Array(ev - iv), av = 0; av < ev - iv; av++)
          ov[av] = void 0;
        this.spliceWithArray_(iv, 0, ov);
      } else
        this.spliceWithArray_(ev, iv - ev);
  }, tv.updateArrayLength_ = function(ev, iv) {
    ev !== this.lastKnownLength_ && D$1(16), this.lastKnownLength_ += iv, this.legacyMode_ && iv > 0 && ki$2(ev + iv + 1);
  }, tv.spliceWithArray_ = function(ev, iv, ov) {
    var av = this;
    this.atom_;
    var sv = this.values_.length;
    if (ev === void 0 ? ev = 0 : ev > sv ? ev = sv : ev < 0 && (ev = Math.max(0, sv + ev)), arguments.length === 1 ? iv = sv - ev : iv == null ? iv = 0 : iv = Math.max(0, Math.min(iv, sv - ev)), ov === void 0 && (ov = Cn$1), J$1(this)) {
      var lv = X$1(this, {
        object: this.proxy_,
        type: mr$2,
        index: ev,
        removedCount: iv,
        added: ov
      });
      if (!lv)
        return Cn$1;
      iv = lv.removedCount, ov = lv.added;
    }
    if (ov = ov.length === 0 ? ov : ov.map(function(dv) {
      return av.enhancer_(dv, void 0);
    }), this.legacyMode_) {
      var uv = ov.length - iv;
      this.updateArrayLength_(sv, uv);
    }
    var cv = this.spliceItemsIntoValues_(ev, iv, ov);
    return (iv !== 0 || ov.length !== 0) && this.notifyArraySplice_(ev, ov, cv), this.dehanceValues_(cv);
  }, tv.spliceItemsIntoValues_ = function(ev, iv, ov) {
    if (ov.length < Ec) {
      var av;
      return (av = this.values_).splice.apply(av, [ev, iv].concat(ov));
    } else {
      var sv = this.values_.slice(ev, ev + iv), lv = this.values_.slice(ev + iv);
      this.values_.length += ov.length - iv;
      for (var uv = 0; uv < ov.length; uv++)
        this.values_[ev + uv] = ov[uv];
      for (var cv = 0; cv < lv.length; cv++)
        this.values_[ev + ov.length + cv] = lv[cv];
      return sv;
    }
  }, tv.notifyArrayChildUpdate_ = function(ev, iv, ov) {
    var av = !this.owned_ && ft$1(), sv = ne$1(this), lv = sv || av ? {
      observableKind: "array",
      object: this.proxy_,
      type: fe$1,
      debugObjectName: this.atom_.name_,
      index: ev,
      newValue: iv,
      oldValue: ov
    } : null;
    this.atom_.reportChanged(), sv && re$1(this, lv);
  }, tv.notifyArraySplice_ = function(ev, iv, ov) {
    var av = !this.owned_ && ft$1(), sv = ne$1(this), lv = sv || av ? {
      observableKind: "array",
      object: this.proxy_,
      debugObjectName: this.atom_.name_,
      type: mr$2,
      index: ev,
      removed: ov,
      added: iv,
      removedCount: ov.length,
      addedCount: iv.length
    } : null;
    this.atom_.reportChanged(), sv && re$1(this, lv);
  }, tv.get_ = function(ev) {
    if (this.legacyMode_ && ev >= this.values_.length) {
      console.warn("[mobx] Out of bounds read: " + ev);
      return;
    }
    return this.atom_.reportObserved(), this.dehanceValue_(this.values_[ev]);
  }, tv.set_ = function(ev, iv) {
    var ov = this.values_;
    if (this.legacyMode_ && ev > ov.length && D$1(17, ev, ov.length), ev < ov.length) {
      this.atom_;
      var av = ov[ev];
      if (J$1(this)) {
        var sv = X$1(this, {
          type: fe$1,
          object: this.proxy_,
          // since "this" is the real array we need to pass its proxy
          index: ev,
          newValue: iv
        });
        if (!sv)
          return;
        iv = sv.newValue;
      }
      iv = this.enhancer_(iv, av);
      var lv = iv !== av;
      lv && (ov[ev] = iv, this.notifyArrayChildUpdate_(ev, iv, av));
    } else {
      for (var uv = new Array(ev + 1 - ov.length), cv = 0; cv < uv.length - 1; cv++)
        uv[cv] = void 0;
      uv[uv.length - 1] = iv, this.spliceWithArray_(ov.length, 0, uv);
    }
  }, rv;
}();
function Oc(rv, tv, ev, iv) {
  return ev === void 0 && (ev = "ObservableArray"), iv === void 0 && (iv = !1), Zr$1(), Be$1(function() {
    var ov = new Jn$2(ev, tv, iv, !1);
    ni$1(ov.values_, A$1, ov);
    var av = new Proxy(ov.values_, Ac$1);
    return ov.proxy_ = av, rv && rv.length && ov.spliceWithArray_(0, 0, rv), av;
  });
}
var qt$1 = {
  clear: function() {
    return this.splice(0);
  },
  replace: function(rv) {
    var tv = this[A$1];
    return tv.spliceWithArray_(0, tv.values_.length, rv);
  },
  // Used by JSON.stringify
  toJSON: function() {
    return this.slice();
  },
  /*
   * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)
   * since these functions alter the inner structure of the array, the have side effects.
   * Because the have side effects, they should not be used in computed function,
   * and for that reason the do not call dependencyState.notifyObserved
   */
  splice: function(rv, tv) {
    for (var ev = arguments.length, iv = new Array(ev > 2 ? ev - 2 : 0), ov = 2; ov < ev; ov++)
      iv[ov - 2] = arguments[ov];
    var av = this[A$1];
    switch (arguments.length) {
      case 0:
        return [];
      case 1:
        return av.spliceWithArray_(rv);
      case 2:
        return av.spliceWithArray_(rv, tv);
    }
    return av.spliceWithArray_(rv, tv, iv);
  },
  spliceWithArray: function(rv, tv, ev) {
    return this[A$1].spliceWithArray_(rv, tv, ev);
  },
  push: function() {
    for (var rv = this[A$1], tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return rv.spliceWithArray_(rv.values_.length, 0, ev), rv.values_.length;
  },
  pop: function() {
    return this.splice(Math.max(this[A$1].values_.length - 1, 0), 1)[0];
  },
  shift: function() {
    return this.splice(0, 1)[0];
  },
  unshift: function() {
    for (var rv = this[A$1], tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return rv.spliceWithArray_(0, 0, ev), rv.values_.length;
  },
  reverse: function() {
    return g$1.trackingDerivation && D$1(37, "reverse"), this.replace(this.slice().reverse()), this;
  },
  sort: function() {
    g$1.trackingDerivation && D$1(37, "sort");
    var rv = this.slice();
    return rv.sort.apply(rv, arguments), this.replace(rv), this;
  },
  remove: function(rv) {
    var tv = this[A$1], ev = tv.dehanceValues_(tv.values_).indexOf(rv);
    return ev > -1 ? (this.splice(ev, 1), !0) : !1;
  }
};
L$2("at", W$1);
L$2("concat", W$1);
L$2("flat", W$1);
L$2("includes", W$1);
L$2("indexOf", W$1);
L$2("join", W$1);
L$2("lastIndexOf", W$1);
L$2("slice", W$1);
L$2("toString", W$1);
L$2("toLocaleString", W$1);
L$2("toSorted", W$1);
L$2("toSpliced", W$1);
L$2("with", W$1);
L$2("every", oe$2);
L$2("filter", oe$2);
L$2("find", oe$2);
L$2("findIndex", oe$2);
L$2("findLast", oe$2);
L$2("findLastIndex", oe$2);
L$2("flatMap", oe$2);
L$2("forEach", oe$2);
L$2("map", oe$2);
L$2("some", oe$2);
L$2("toReversed", oe$2);
L$2("reduce", Ci$2);
L$2("reduceRight", Ci$2);
function L$2(rv, tv) {
  typeof Array.prototype[rv] == "function" && (qt$1[rv] = tv(rv));
}
function W$1(rv) {
  return function() {
    var tv = this[A$1];
    tv.atom_.reportObserved();
    var ev = tv.dehanceValues_(tv.values_);
    return ev[rv].apply(ev, arguments);
  };
}
function oe$2(rv) {
  return function(tv, ev) {
    var iv = this, ov = this[A$1];
    ov.atom_.reportObserved();
    var av = ov.dehanceValues_(ov.values_);
    return av[rv](function(sv, lv) {
      return tv.call(ev, sv, lv, iv);
    });
  };
}
function Ci$2(rv) {
  return function() {
    var tv = this, ev = this[A$1];
    ev.atom_.reportObserved();
    var iv = ev.dehanceValues_(ev.values_), ov = arguments[0];
    return arguments[0] = function(av, sv, lv) {
      return ov(av, sv, lv, tv);
    }, iv[rv].apply(iv, arguments);
  };
}
var Sc$1 = /* @__PURE__ */ Me$1("ObservableArrayAdministration", Jn$2);
function nn$1(rv) {
  return Wt$2(rv) && Sc$1(rv[A$1]);
}
var Tc = {}, me$1 = "add", Gt$2 = "delete", Di$1 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov) {
    var av = this;
    iv === void 0 && (iv = Pe$2), ov === void 0 && (ov = "ObservableMap"), this.enhancer_ = void 0, this.name_ = void 0, this[A$1] = Tc, this.data_ = void 0, this.hasMap_ = void 0, this.keysAtom_ = void 0, this.interceptors_ = void 0, this.changeListeners_ = void 0, this.dehancer = void 0, this.enhancer_ = iv, this.name_ = ov, ie$1(Map) || D$1(18), Be$1(function() {
      av.keysAtom_ = oi$1("ObservableMap.keys()"), av.data_ = /* @__PURE__ */ new Map(), av.hasMap_ = /* @__PURE__ */ new Map(), ev && av.merge(ev);
    });
  }
  var tv = rv.prototype;
  return tv.has_ = function(ev) {
    return this.data_.has(ev);
  }, tv.has = function(ev) {
    var iv = this;
    if (!g$1.trackingDerivation)
      return this.has_(ev);
    var ov = this.hasMap_.get(ev);
    if (!ov) {
      var av = ov = new Ce(this.has_(ev), Xt$2, "ObservableMap.key?", !1);
      this.hasMap_.set(ev, av), wi$2(av, function() {
        return iv.hasMap_.delete(ev);
      });
    }
    return ov.get();
  }, tv.set = function(ev, iv) {
    var ov = this.has_(ev);
    if (J$1(this)) {
      var av = X$1(this, {
        type: ov ? fe$1 : me$1,
        object: this,
        newValue: iv,
        name: ev
      });
      if (!av)
        return this;
      iv = av.newValue;
    }
    return ov ? this.updateValue_(ev, iv) : this.addValue_(ev, iv), this;
  }, tv.delete = function(ev) {
    var iv = this;
    if (this.keysAtom_, J$1(this)) {
      var ov = X$1(this, {
        type: Gt$2,
        object: this,
        name: ev
      });
      if (!ov)
        return !1;
    }
    if (this.has_(ev)) {
      var av = ft$1(), sv = ne$1(this), lv = sv || av ? {
        observableKind: "map",
        debugObjectName: this.name_,
        type: Gt$2,
        object: this,
        oldValue: this.data_.get(ev).value_,
        name: ev
      } : null;
      return de(function() {
        var uv;
        iv.keysAtom_.reportChanged(), (uv = iv.hasMap_.get(ev)) == null || uv.setNewValue_(!1);
        var cv = iv.data_.get(ev);
        cv.setNewValue_(void 0), iv.data_.delete(ev);
      }), sv && re$1(this, lv), !0;
    }
    return !1;
  }, tv.updateValue_ = function(ev, iv) {
    var ov = this.data_.get(ev);
    if (iv = ov.prepareNewValue_(iv), iv !== g$1.UNCHANGED) {
      var av = ft$1(), sv = ne$1(this), lv = sv || av ? {
        observableKind: "map",
        debugObjectName: this.name_,
        type: fe$1,
        object: this,
        oldValue: ov.value_,
        name: ev,
        newValue: iv
      } : null;
      ov.setNewValue_(iv), sv && re$1(this, lv);
    }
  }, tv.addValue_ = function(ev, iv) {
    var ov = this;
    this.keysAtom_, de(function() {
      var uv, cv = new Ce(iv, ov.enhancer_, "ObservableMap.key", !1);
      ov.data_.set(ev, cv), iv = cv.value_, (uv = ov.hasMap_.get(ev)) == null || uv.setNewValue_(!0), ov.keysAtom_.reportChanged();
    });
    var av = ft$1(), sv = ne$1(this), lv = sv || av ? {
      observableKind: "map",
      debugObjectName: this.name_,
      type: me$1,
      object: this,
      name: ev,
      newValue: iv
    } : null;
    sv && re$1(this, lv);
  }, tv.get = function(ev) {
    return this.has(ev) ? this.dehanceValue_(this.data_.get(ev).get()) : this.dehanceValue_(void 0);
  }, tv.dehanceValue_ = function(ev) {
    return this.dehancer !== void 0 ? this.dehancer(ev) : ev;
  }, tv.keys = function() {
    return this.keysAtom_.reportObserved(), this.data_.keys();
  }, tv.values = function() {
    var ev = this, iv = this.keys();
    return gt$1({
      next: function() {
        var ov = iv.next(), av = ov.done, sv = ov.value;
        return {
          done: av,
          value: av ? void 0 : ev.get(sv)
        };
      }
    });
  }, tv.entries = function() {
    var ev = this, iv = this.keys();
    return gt$1({
      next: function() {
        var ov = iv.next(), av = ov.done, sv = ov.value;
        return {
          done: av,
          value: av ? void 0 : [sv, ev.get(sv)]
        };
      }
    });
  }, tv[Symbol.iterator] = function() {
    return this.entries();
  }, tv.forEach = function(ev, iv) {
    for (var ov = He(this), av; !(av = ov()).done; ) {
      var sv = av.value, lv = sv[0], uv = sv[1];
      ev.call(iv, uv, lv, this);
    }
  }, tv.merge = function(ev) {
    var iv = this;
    return je$1(ev) && (ev = new Map(ev)), de(function() {
      ve$2(ev) ? Zo$2(ev).forEach(function(ov) {
        return iv.set(ov, ev[ov]);
      }) : Array.isArray(ev) ? ev.forEach(function(ov) {
        var av = ov[0], sv = ov[1];
        return iv.set(av, sv);
      }) : Ze$2(ev) ? (Qo$2(ev) || D$1(19, ev), ev.forEach(function(ov, av) {
        return iv.set(av, ov);
      })) : ev != null && D$1(20, ev);
    }), this;
  }, tv.clear = function() {
    var ev = this;
    de(function() {
      vi$2(function() {
        for (var iv = He(ev.keys()), ov; !(ov = iv()).done; ) {
          var av = ov.value;
          ev.delete(av);
        }
      });
    });
  }, tv.replace = function(ev) {
    var iv = this;
    return de(function() {
      for (var ov = wc(ev), av = /* @__PURE__ */ new Map(), sv = !1, lv = He(iv.data_.keys()), uv; !(uv = lv()).done; ) {
        var cv = uv.value;
        if (!ov.has(cv)) {
          var dv = iv.delete(cv);
          if (dv)
            sv = !0;
          else {
            var hv = iv.data_.get(cv);
            av.set(cv, hv);
          }
        }
      }
      for (var pv = He(ov.entries()), yv; !(yv = pv()).done; ) {
        var Sv = yv.value, _v = Sv[0], Ev = Sv[1], wv = iv.data_.has(_v);
        if (iv.set(_v, Ev), iv.data_.has(_v)) {
          var xv = iv.data_.get(_v);
          av.set(_v, xv), wv || (sv = !0);
        }
      }
      if (!sv)
        if (iv.data_.size !== av.size)
          iv.keysAtom_.reportChanged();
        else
          for (var Cv = iv.data_.keys(), Av = av.keys(), Ov = Cv.next(), Lv = Av.next(); !Ov.done; ) {
            if (Ov.value !== Lv.value) {
              iv.keysAtom_.reportChanged();
              break;
            }
            Ov = Cv.next(), Lv = Av.next();
          }
      iv.data_ = av;
    }), this;
  }, tv.toString = function() {
    return "[object ObservableMap]";
  }, tv.toJSON = function() {
    return Array.from(this);
  }, tv.observe_ = function(ev, iv) {
    return Et$1(this, ev);
  }, tv.intercept_ = function(ev) {
    return bt(this, ev);
  }, et$1(rv, [{
    key: "size",
    get: function() {
      return this.keysAtom_.reportObserved(), this.data_.size;
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Map";
    }
  }]);
}(), je$1 = /* @__PURE__ */ Me$1("ObservableMap", Di$1);
function wc(rv) {
  if (Ze$2(rv) || je$1(rv))
    return rv;
  if (Array.isArray(rv))
    return new Map(rv);
  if (ve$2(rv)) {
    var tv = /* @__PURE__ */ new Map();
    for (var ev in rv)
      tv.set(ev, rv[ev]);
    return tv;
  } else
    return D$1(21, rv);
}
var Nc = {}, Ri$2 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov) {
    var av = this;
    iv === void 0 && (iv = Pe$2), ov === void 0 && (ov = "ObservableSet"), this.name_ = void 0, this[A$1] = Nc, this.data_ = /* @__PURE__ */ new Set(), this.atom_ = void 0, this.changeListeners_ = void 0, this.interceptors_ = void 0, this.dehancer = void 0, this.enhancer_ = void 0, this.name_ = ov, ie$1(Set) || D$1(22), this.enhancer_ = function(sv, lv) {
      return iv(sv, lv, ov);
    }, Be$1(function() {
      av.atom_ = oi$1(av.name_), ev && av.replace(ev);
    });
  }
  var tv = rv.prototype;
  return tv.dehanceValue_ = function(ev) {
    return this.dehancer !== void 0 ? this.dehancer(ev) : ev;
  }, tv.clear = function() {
    var ev = this;
    de(function() {
      vi$2(function() {
        for (var iv = He(ev.data_.values()), ov; !(ov = iv()).done; ) {
          var av = ov.value;
          ev.delete(av);
        }
      });
    });
  }, tv.forEach = function(ev, iv) {
    for (var ov = He(this), av; !(av = ov()).done; ) {
      var sv = av.value;
      ev.call(iv, sv, sv, this);
    }
  }, tv.add = function(ev) {
    var iv = this;
    if (this.atom_, J$1(this)) {
      var ov = X$1(this, {
        type: me$1,
        object: this,
        newValue: ev
      });
      if (!ov)
        return this;
    }
    if (!this.has(ev)) {
      de(function() {
        iv.data_.add(iv.enhancer_(ev, void 0)), iv.atom_.reportChanged();
      });
      var av = !1, sv = ne$1(this), lv = sv || av ? {
        observableKind: "set",
        debugObjectName: this.name_,
        type: me$1,
        object: this,
        newValue: ev
      } : null;
      sv && re$1(this, lv);
    }
    return this;
  }, tv.delete = function(ev) {
    var iv = this;
    if (J$1(this)) {
      var ov = X$1(this, {
        type: Gt$2,
        object: this,
        oldValue: ev
      });
      if (!ov)
        return !1;
    }
    if (this.has(ev)) {
      var av = !1, sv = ne$1(this), lv = sv || av ? {
        observableKind: "set",
        debugObjectName: this.name_,
        type: Gt$2,
        object: this,
        oldValue: ev
      } : null;
      return de(function() {
        iv.atom_.reportChanged(), iv.data_.delete(ev);
      }), sv && re$1(this, lv), !0;
    }
    return !1;
  }, tv.has = function(ev) {
    return this.atom_.reportObserved(), this.data_.has(this.dehanceValue_(ev));
  }, tv.entries = function() {
    var ev = 0, iv = Array.from(this.keys()), ov = Array.from(this.values());
    return gt$1({
      next: function() {
        var av = ev;
        return ev += 1, av < ov.length ? {
          value: [iv[av], ov[av]],
          done: !1
        } : {
          done: !0
        };
      }
    });
  }, tv.keys = function() {
    return this.values();
  }, tv.values = function() {
    this.atom_.reportObserved();
    var ev = this, iv = 0, ov = Array.from(this.data_.values());
    return gt$1({
      next: function() {
        return iv < ov.length ? {
          value: ev.dehanceValue_(ov[iv++]),
          done: !1
        } : {
          done: !0
        };
      }
    });
  }, tv.intersection = function(ev) {
    if (he$1(ev))
      return ev.intersection(this);
    var iv = new Set(this);
    return iv.intersection(ev);
  }, tv.union = function(ev) {
    if (he$1(ev))
      return ev.union(this);
    var iv = new Set(this);
    return iv.union(ev);
  }, tv.difference = function(ev) {
    return new Set(this).difference(ev);
  }, tv.symmetricDifference = function(ev) {
    if (he$1(ev))
      return ev.symmetricDifference(this);
    var iv = new Set(this);
    return iv.symmetricDifference(ev);
  }, tv.isSubsetOf = function(ev) {
    return new Set(this).isSubsetOf(ev);
  }, tv.isSupersetOf = function(ev) {
    return new Set(this).isSupersetOf(ev);
  }, tv.isDisjointFrom = function(ev) {
    if (he$1(ev))
      return ev.isDisjointFrom(this);
    var iv = new Set(this);
    return iv.isDisjointFrom(ev);
  }, tv.replace = function(ev) {
    var iv = this;
    return nt$2(ev) && (ev = new Set(ev)), de(function() {
      Array.isArray(ev) ? (iv.clear(), ev.forEach(function(ov) {
        return iv.add(ov);
      })) : he$1(ev) ? (iv.clear(), ev.forEach(function(ov) {
        return iv.add(ov);
      })) : ev != null && D$1("Cannot initialize set from " + ev);
    }), this;
  }, tv.observe_ = function(ev, iv) {
    return Et$1(this, ev);
  }, tv.intercept_ = function(ev) {
    return bt(this, ev);
  }, tv.toJSON = function() {
    return Array.from(this);
  }, tv.toString = function() {
    return "[object ObservableSet]";
  }, tv[Symbol.iterator] = function() {
    return this.values();
  }, et$1(rv, [{
    key: "size",
    get: function() {
      return this.atom_.reportObserved(), this.data_.size;
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Set";
    }
  }]);
}(), nt$2 = /* @__PURE__ */ Me$1("ObservableSet", Ri$2), br$2 = /* @__PURE__ */ Object.create(null), Er$2 = "remove", Pi$2 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    iv === void 0 && (iv = /* @__PURE__ */ new Map()), av === void 0 && (av = Ca$2), this.target_ = void 0, this.values_ = void 0, this.name_ = void 0, this.defaultAnnotation_ = void 0, this.keysAtom_ = void 0, this.changeListeners_ = void 0, this.interceptors_ = void 0, this.proxy_ = void 0, this.isPlainObject_ = void 0, this.appliedAnnotations_ = void 0, this.pendingKeys_ = void 0, this.target_ = ev, this.values_ = iv, this.name_ = ov, this.defaultAnnotation_ = av, this.keysAtom_ = new Oe$1("ObservableObject.keys"), this.isPlainObject_ = ve$2(this.target_);
  }
  var tv = rv.prototype;
  return tv.getObservablePropValue_ = function(ev) {
    return this.values_.get(ev).get();
  }, tv.setObservablePropValue_ = function(ev, iv) {
    var ov = this.values_.get(ev);
    if (ov instanceof se$1)
      return ov.set(iv), !0;
    if (J$1(this)) {
      var av = X$1(this, {
        type: fe$1,
        object: this.proxy_ || this.target_,
        name: ev,
        newValue: iv
      });
      if (!av)
        return null;
      iv = av.newValue;
    }
    if (iv = ov.prepareNewValue_(iv), iv !== g$1.UNCHANGED) {
      var sv = ne$1(this), lv = !1, uv = sv || lv ? {
        type: fe$1,
        observableKind: "object",
        debugObjectName: this.name_,
        object: this.proxy_ || this.target_,
        oldValue: ov.value_,
        name: ev,
        newValue: iv
      } : null;
      ov.setNewValue_(iv), sv && re$1(this, uv);
    }
    return !0;
  }, tv.get_ = function(ev) {
    return g$1.trackingDerivation && !be$1(this.target_, ev) && this.has_(ev), this.target_[ev];
  }, tv.set_ = function(ev, iv, ov) {
    return ov === void 0 && (ov = !1), be$1(this.target_, ev) ? this.values_.has(ev) ? this.setObservablePropValue_(ev, iv) : ov ? Reflect.set(this.target_, ev, iv) : (this.target_[ev] = iv, !0) : this.extend_(ev, {
      value: iv,
      enumerable: !0,
      writable: !0,
      configurable: !0
    }, this.defaultAnnotation_, ov);
  }, tv.has_ = function(ev) {
    if (!g$1.trackingDerivation)
      return ev in this.target_;
    this.pendingKeys_ || (this.pendingKeys_ = /* @__PURE__ */ new Map());
    var iv = this.pendingKeys_.get(ev);
    return iv || (iv = new Ce(ev in this.target_, Xt$2, "ObservableObject.key?", !1), this.pendingKeys_.set(ev, iv)), iv.get();
  }, tv.make_ = function(ev, iv) {
    if (iv === !0 && (iv = this.defaultAnnotation_), iv !== !1) {
      if (!(ev in this.target_)) {
        var ov;
        if ((ov = this.target_[Ke$1]) != null && ov[ev])
          return;
        D$1(1, iv.annotationType_, this.name_ + "." + ev.toString());
      }
      for (var av = this.target_; av && av !== Yt$1; ) {
        var sv = kt$1(av, ev);
        if (sv) {
          var lv = iv.make_(this, ev, sv, av);
          if (lv === 0)
            return;
          if (lv === 1)
            break;
        }
        av = Object.getPrototypeOf(av);
      }
      Or$1(this, iv, ev);
    }
  }, tv.extend_ = function(ev, iv, ov, av) {
    if (av === void 0 && (av = !1), ov === !0 && (ov = this.defaultAnnotation_), ov === !1)
      return this.defineProperty_(ev, iv, av);
    var sv = ov.extend_(this, ev, iv, av);
    return sv && Or$1(this, ov, ev), sv;
  }, tv.defineProperty_ = function(ev, iv, ov) {
    ov === void 0 && (ov = !1), this.keysAtom_;
    try {
      Q$1();
      var av = this.delete_(ev);
      if (!av)
        return av;
      if (J$1(this)) {
        var sv = X$1(this, {
          object: this.proxy_ || this.target_,
          name: ev,
          type: me$1,
          newValue: iv.value
        });
        if (!sv)
          return null;
        var lv = sv.newValue;
        iv.value !== lv && (iv = We$1({}, iv, {
          value: lv
        }));
      }
      if (ov) {
        if (!Reflect.defineProperty(this.target_, ev, iv))
          return !1;
      } else
        ue$1(this.target_, ev, iv);
      this.notifyPropertyAddition_(ev, iv.value);
    } finally {
      Z$1();
    }
    return !0;
  }, tv.defineObservableProperty_ = function(ev, iv, ov, av) {
    av === void 0 && (av = !1), this.keysAtom_;
    try {
      Q$1();
      var sv = this.delete_(ev);
      if (!sv)
        return sv;
      if (J$1(this)) {
        var lv = X$1(this, {
          object: this.proxy_ || this.target_,
          name: ev,
          type: me$1,
          newValue: iv
        });
        if (!lv)
          return null;
        iv = lv.newValue;
      }
      var uv = Ar(ev), cv = {
        configurable: g$1.safeDescriptors ? this.isPlainObject_ : !0,
        enumerable: !0,
        get: uv.get,
        set: uv.set
      };
      if (av) {
        if (!Reflect.defineProperty(this.target_, ev, cv))
          return !1;
      } else
        ue$1(this.target_, ev, cv);
      var dv = new Ce(iv, ov, "ObservableObject.key", !1);
      this.values_.set(ev, dv), this.notifyPropertyAddition_(ev, dv.value_);
    } finally {
      Z$1();
    }
    return !0;
  }, tv.defineComputedProperty_ = function(ev, iv, ov) {
    ov === void 0 && (ov = !1), this.keysAtom_;
    try {
      Q$1();
      var av = this.delete_(ev);
      if (!av)
        return av;
      if (J$1(this)) {
        var sv = X$1(this, {
          object: this.proxy_ || this.target_,
          name: ev,
          type: me$1,
          newValue: void 0
        });
        if (!sv)
          return null;
      }
      iv.name || (iv.name = "ObservableObject.key"), iv.context = this.proxy_ || this.target_;
      var lv = Ar(ev), uv = {
        configurable: g$1.safeDescriptors ? this.isPlainObject_ : !0,
        enumerable: !1,
        get: lv.get,
        set: lv.set
      };
      if (ov) {
        if (!Reflect.defineProperty(this.target_, ev, uv))
          return !1;
      } else
        ue$1(this.target_, ev, uv);
      this.values_.set(ev, new se$1(iv)), this.notifyPropertyAddition_(ev, void 0);
    } finally {
      Z$1();
    }
    return !0;
  }, tv.delete_ = function(ev, iv) {
    if (iv === void 0 && (iv = !1), this.keysAtom_, !be$1(this.target_, ev))
      return !0;
    if (J$1(this)) {
      var ov = X$1(this, {
        object: this.proxy_ || this.target_,
        name: ev,
        type: Er$2
      });
      if (!ov)
        return null;
    }
    try {
      var av;
      Q$1();
      var sv = ne$1(this), lv = !1, uv = this.values_.get(ev), cv = void 0;
      if (!uv && (sv || lv)) {
        var dv;
        cv = (dv = kt$1(this.target_, ev)) == null ? void 0 : dv.value;
      }
      if (iv) {
        if (!Reflect.deleteProperty(this.target_, ev))
          return !1;
      } else
        delete this.target_[ev];
      if (uv && (this.values_.delete(ev), uv instanceof Ce && (cv = uv.value_), Ei$2(uv)), this.keysAtom_.reportChanged(), (av = this.pendingKeys_) == null || (av = av.get(ev)) == null || av.set(ev in this.target_), sv || lv) {
        var hv = {
          type: Er$2,
          observableKind: "object",
          object: this.proxy_ || this.target_,
          debugObjectName: this.name_,
          oldValue: cv,
          name: ev
        };
        sv && re$1(this, hv);
      }
    } finally {
      Z$1();
    }
    return !0;
  }, tv.observe_ = function(ev, iv) {
    return Et$1(this, ev);
  }, tv.intercept_ = function(ev) {
    return bt(this, ev);
  }, tv.notifyPropertyAddition_ = function(ev, iv) {
    var ov, av = ne$1(this), sv = !1;
    if (av || sv) {
      var lv = av || sv ? {
        type: me$1,
        observableKind: "object",
        debugObjectName: this.name_,
        object: this.proxy_ || this.target_,
        name: ev,
        newValue: iv
      } : null;
      av && re$1(this, lv);
    }
    (ov = this.pendingKeys_) == null || (ov = ov.get(ev)) == null || ov.set(!0), this.keysAtom_.reportChanged();
  }, tv.ownKeys_ = function() {
    return this.keysAtom_.reportObserved(), pt$1(this.target_);
  }, tv.keys_ = function() {
    return this.keysAtom_.reportObserved(), Object.keys(this.target_);
  }, rv;
}();
function rt$1(rv, tv) {
  var ev;
  if (be$1(rv, A$1))
    return rv;
  var iv = (ev = tv == null ? void 0 : tv.name) != null ? ev : "ObservableObject", ov = new Pi$2(rv, /* @__PURE__ */ new Map(), String(iv), Ua$2(tv));
  return Jt$1(rv, A$1, ov), rv;
}
var xc = /* @__PURE__ */ Me$1("ObservableObjectAdministration", Pi$2);
function Ar(rv) {
  return br$2[rv] || (br$2[rv] = {
    get: function() {
      return this[A$1].getObservablePropValue_(rv);
    },
    set: function(tv) {
      return this[A$1].setObservablePropValue_(rv, tv);
    }
  });
}
function rn$1(rv) {
  return Wt$2(rv) ? xc(rv[A$1]) : !1;
}
function Or$1(rv, tv, ev) {
  var iv;
  (iv = rv.target_[Ke$1]) == null || delete iv[ev];
}
var Ic = /* @__PURE__ */ Mi$1(0), Cc$1 = /* @__PURE__ */ function() {
  var rv = !1, tv = {};
  return Object.defineProperty(tv, "0", {
    set: function() {
      rv = !0;
    }
  }), Object.create(tv)[0] = 1, rv === !1;
}(), mn$2 = 0, Li$2 = function() {
};
function Dc(rv, tv) {
  Object.setPrototypeOf ? Object.setPrototypeOf(rv.prototype, tv) : rv.prototype.__proto__ !== void 0 ? rv.prototype.__proto__ = tv : rv.prototype = tv;
}
Dc(Li$2, Array.prototype);
var Xn$2 = /* @__PURE__ */ function(rv) {
  function tv(iv, ov, av, sv) {
    var lv;
    return av === void 0 && (av = "ObservableArray"), sv === void 0 && (sv = !1), lv = rv.call(this) || this, Be$1(function() {
      var uv = new Jn$2(av, ov, sv, !0);
      uv.proxy_ = lv, ni$1(lv, A$1, uv), iv && iv.length && lv.spliceWithArray(0, 0, iv), Cc$1 && Object.defineProperty(lv, "0", Ic);
    }), lv;
  }
  si$1(tv, rv);
  var ev = tv.prototype;
  return ev.concat = function() {
    this[A$1].atom_.reportObserved();
    for (var iv = arguments.length, ov = new Array(iv), av = 0; av < iv; av++)
      ov[av] = arguments[av];
    return Array.prototype.concat.apply(
      this.slice(),
      //@ts-ignore
      ov.map(function(sv) {
        return nn$1(sv) ? sv.slice() : sv;
      })
    );
  }, ev[Symbol.iterator] = function() {
    var iv = this, ov = 0;
    return gt$1({
      next: function() {
        return ov < iv.length ? {
          value: iv[ov++],
          done: !1
        } : {
          done: !0,
          value: void 0
        };
      }
    });
  }, et$1(tv, [{
    key: "length",
    get: function() {
      return this[A$1].getArrayLength_();
    },
    set: function(iv) {
      this[A$1].setArrayLength_(iv);
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Array";
    }
  }]);
}(Li$2);
Object.entries(qt$1).forEach(function(rv) {
  var tv = rv[0], ev = rv[1];
  tv !== "concat" && Jt$1(Xn$2.prototype, tv, ev);
});
function Mi$1(rv) {
  return {
    enumerable: !1,
    configurable: !0,
    get: function() {
      return this[A$1].get_(rv);
    },
    set: function(tv) {
      this[A$1].set_(rv, tv);
    }
  };
}
function Rc(rv) {
  ue$1(Xn$2.prototype, "" + rv, Mi$1(rv));
}
function ki$2(rv) {
  if (rv > mn$2) {
    for (var tv = mn$2; tv < rv + 100; tv++)
      Rc(tv);
    mn$2 = rv;
  }
}
ki$2(1e3);
function Pc(rv, tv, ev) {
  return new Xn$2(rv, tv, ev);
}
function Bn$1(rv, tv) {
  if (typeof rv == "object" && rv !== null) {
    if (nn$1(rv))
      return tv !== void 0 && D$1(23), rv[A$1].atom_;
    if (nt$2(rv))
      return rv.atom_;
    if (je$1(rv)) {
      if (tv === void 0)
        return rv.keysAtom_;
      var ev = rv.data_.get(tv) || rv.hasMap_.get(tv);
      return ev || D$1(25, tv, Fn$2(rv)), ev;
    }
    if (rn$1(rv)) {
      if (!tv)
        return D$1(26);
      var iv = rv[A$1].values_.get(tv);
      return iv || D$1(27, tv, Fn$2(rv)), iv;
    }
    if (zn$1(rv) || en$2(rv) || Ut$2(rv))
      return rv;
  } else if (ie$1(rv) && Ut$2(rv[A$1]))
    return rv[A$1];
  D$1(28);
}
function Lc(rv, tv) {
  if (rv || D$1(29), zn$1(rv) || en$2(rv) || Ut$2(rv) || je$1(rv) || nt$2(rv))
    return rv;
  if (rv[A$1])
    return rv[A$1];
  D$1(24, rv);
}
function Fn$2(rv, tv) {
  var ev;
  if (tv !== void 0)
    ev = Bn$1(rv, tv);
  else {
    if (tn$2(rv))
      return rv.name;
    rn$1(rv) || je$1(rv) || nt$2(rv) ? ev = Lc(rv) : ev = Bn$1(rv);
  }
  return ev.name_;
}
function Be$1(rv) {
  var tv = ke$1(), ev = Kn$2(!0);
  Q$1();
  try {
    return rv();
  } finally {
    Z$1(), Yn$2(ev), pe(tv);
  }
}
var Sr$2 = Yt$1.toString;
function Qn$2(rv, tv, ev) {
  return ev === void 0 && (ev = -1), Vn(rv, tv, ev);
}
function Vn(rv, tv, ev, iv, ov) {
  if (rv === tv)
    return rv !== 0 || 1 / rv === 1 / tv;
  if (rv == null || tv == null)
    return !1;
  if (rv !== rv)
    return tv !== tv;
  var av = typeof rv;
  if (av !== "function" && av !== "object" && typeof tv != "object")
    return !1;
  var sv = Sr$2.call(rv);
  if (sv !== Sr$2.call(tv))
    return !1;
  switch (sv) {
    case "[object RegExp]":
    case "[object String]":
      return "" + rv == "" + tv;
    case "[object Number]":
      return +rv != +rv ? +tv != +tv : +rv == 0 ? 1 / +rv === 1 / tv : +rv == +tv;
    case "[object Date]":
    case "[object Boolean]":
      return +rv == +tv;
    case "[object Symbol]":
      return typeof Symbol < "u" && Symbol.valueOf.call(rv) === Symbol.valueOf.call(tv);
    case "[object Map]":
    case "[object Set]":
      ev >= 0 && ev++;
      break;
  }
  rv = Tr$2(rv), tv = Tr$2(tv);
  var lv = sv === "[object Array]";
  if (!lv) {
    if (typeof rv != "object" || typeof tv != "object")
      return !1;
    var uv = rv.constructor, cv = tv.constructor;
    if (uv !== cv && !(ie$1(uv) && uv instanceof uv && ie$1(cv) && cv instanceof cv) && "constructor" in rv && "constructor" in tv)
      return !1;
  }
  if (ev === 0)
    return !1;
  ev < 0 && (ev = -1), iv = iv || [], ov = ov || [];
  for (var dv = iv.length; dv--; )
    if (iv[dv] === rv)
      return ov[dv] === tv;
  if (iv.push(rv), ov.push(tv), lv) {
    if (dv = rv.length, dv !== tv.length)
      return !1;
    for (; dv--; )
      if (!Vn(rv[dv], tv[dv], ev - 1, iv, ov))
        return !1;
  } else {
    var hv = Object.keys(rv), pv;
    if (dv = hv.length, Object.keys(tv).length !== dv)
      return !1;
    for (; dv--; )
      if (pv = hv[dv], !(be$1(tv, pv) && Vn(rv[pv], tv[pv], ev - 1, iv, ov)))
        return !1;
  }
  return iv.pop(), ov.pop(), !0;
}
function Tr$2(rv) {
  return nn$1(rv) ? rv.slice() : Ze$2(rv) || je$1(rv) || he$1(rv) || nt$2(rv) ? Array.from(rv.entries()) : rv;
}
function gt$1(rv) {
  return rv[Symbol.iterator] = Mc$1, rv;
}
function Mc$1() {
  return this;
}
["Symbol", "Map", "Set"].forEach(function(rv) {
  var tv = Jr$2();
  typeof tv[rv] > "u" && D$1("MobX requires global '" + rv + "' to be available or polyfilled");
});
typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ == "object" && __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({
  spy: ic$2,
  extras: {
    getDebugName: Fn$2
  },
  $mobx: A$1
});
const G = Xg("utils", xt$3);
/*! js-cookie v3.0.5 | MIT */
function dt(rv) {
  for (var tv = 1; tv < arguments.length; tv++) {
    var ev = arguments[tv];
    for (var iv in ev)
      rv[iv] = ev[iv];
  }
  return rv;
}
var _s = {
  read: function(rv) {
    return rv[0] === '"' && (rv = rv.slice(1, -1)), rv.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent);
  },
  write: function(rv) {
    return encodeURIComponent(rv).replace(
      /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,
      decodeURIComponent
    );
  }
};
function ar(rv, tv) {
  function ev(ov, av, sv) {
    if (typeof document < "u") {
      sv = dt({}, tv, sv), typeof sv.expires == "number" && (sv.expires = new Date(Date.now() + sv.expires * 864e5)), sv.expires && (sv.expires = sv.expires.toUTCString()), ov = encodeURIComponent(ov).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);
      var lv = "";
      for (var uv in sv)
        sv[uv] && (lv += "; " + uv, sv[uv] !== !0 && (lv += "=" + sv[uv].split(";")[0]));
      return document.cookie = ov + "=" + rv.write(av, ov) + lv;
    }
  }
  function iv(ov) {
    if (!(typeof document > "u" || arguments.length && !ov)) {
      for (var av = document.cookie ? document.cookie.split("; ") : [], sv = {}, lv = 0; lv < av.length; lv++) {
        var uv = av[lv].split("="), cv = uv.slice(1).join("=");
        try {
          var dv = decodeURIComponent(uv[0]);
          if (sv[dv] = rv.read(cv, dv), ov === dv)
            break;
        } catch {
        }
      }
      return ov ? sv[ov] : sv;
    }
  }
  return Object.create(
    {
      set: ev,
      get: iv,
      remove: function(ov, av) {
        ev(
          ov,
          "",
          dt({}, av, {
            expires: -1
          })
        );
      },
      withAttributes: function(ov) {
        return ar(this.converter, dt({}, this.attributes, ov));
      },
      withConverter: function(ov) {
        return ar(dt({}, this.converter, ov), this.attributes);
      }
    },
    {
      attributes: { value: Object.freeze(tv) },
      converter: { value: Object.freeze(rv) }
    }
  );
}
ar(_s, { path: "/" });
const L$1 = [];
for (let rv = 0; rv < 256; ++rv)
  L$1.push((rv + 256).toString(16).slice(1));
typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
function dc(rv) {
  const tv = (ev) => {
    var iv, ov;
    const av = (ov = (iv = ev.split("/").filter(Boolean).pop()) == null ? void 0 : iv.split(".")[0]) != null ? ov : "", sv = ar$2(5);
    return `${av}-${sv}`;
  };
  return rv.flat(1 / 0).reduce((ev, iv) => (Object.entries(iv).forEach(([ov, av]) => {
    const sv = tv(ov);
    ev[sv] = av;
  }), ev), {});
}
const Os = { BASE_URL: "/", DEV: !1, MODE: "production", NZ_AWS_REGION: "us-east-1", PROD: !0, SSR: !1, STAGE: "prod" }, {
  NZ_AWS_REGION: Ss$1,
  NZ_BACKOFFICE_BACK_URL: Es$1,
  NZ_CORE_SERVICES_GRAPHQL_URL: Ps,
  NZ_CORE_SERVICES_REST_URL: Cs
} = Os, $s = {
  AWS: {
    region: Ss$1,
    cognito: {
      userPoolId: "us-east-1_EZ7wuZ4ig",
      userPoolWebClientId: "2jok7cst8ebf6ppscrhji57gvr"
    }
  },
  //  Back services
  apiUrls: {
    restV1: Es$1 || "https://b133h34s56.execute-api.us-east-1.amazonaws.com",
    restV2: Cs || "https://core-services-prod.nizza.com/api",
    graphql: Ps || "https://core-services-prod.nizza.com/graphql",
    corsProxy: "https://3hvqfl2xcg.execute-api.us-east-1.amazonaws.com"
  },
  publicUrls: {
    //  Public app url
    platformSite: "https://platform.nizza.com",
    // Nizza CDN
    nizzaCdn: "https://cdn.nizza.com",
    //  Bundle
    bundleSite: "https://bundle.nizza.com",
    // WSS IVS CHAT
    wssIVSChat: "wss://edge.ivschat.us-east-1.amazonaws.com",
    // Global Page
    globalPage: "https://live.nizza.com"
  }
}, xs$1 = {
  ...$s
}, Dn = xs$1, Et = (rv) => {
  var tv, ev, iv, ov;
  const av = (tv = rv == null ? void 0 : rv.items) == null ? void 0 : tv.filter((cv) => cv.sellers.filter(
    (dv) => dv.commertialOffer.IsAvailable
  ).length > 0), sv = (ev = rv.items) == null ? void 0 : ev[0], lv = (iv = av == null ? void 0 : av[0]) != null ? iv : sv, uv = (ov = lv == null ? void 0 : lv.sellers.find((cv) => cv.sellerDefault === !0)) != null ? ov : sv.sellers[0];
  return {
    item: lv,
    seller: uv,
    isAvailable: !!(av != null && av.length)
  };
}, Gr$1 = (rv) => /^https?:\/\//i.test(rv) ? rv : `https://${rv}`, Kr = (rv, tv) => rv.href.replace(rv.host, tv), Ts$1 = (rv, tv) => {
  try {
    const { pdpLink: ev, addToCartLink: iv } = rv, ov = new URL(ev), av = new URL(iv), sv = Gr$1(Kr(ov, tv)), lv = Gr$1(Kr(av, tv));
    return {
      ...rv,
      pdpLink: sv,
      addToCartLink: lv
    };
  } catch (ev) {
    return console.error("[fixHostToPdpLink] Error in setHostToPdpLink: ", ev), rv;
  }
}, bc = ({
  product: rv,
  quantity: tv = 1
}) => {
  const ev = Rs(rv, tv), iv = window == null ? void 0 : window.vtexjs;
  if (!iv)
    throw new Error("vtexLegacyAddToCart: vtexjs is not defined");
  return iv.checkout.addToCart([ev]);
};
function Rs(rv, tv) {
  let ev = rv.sellerId;
  if (!ev)
    try {
      const iv = Et(rv), { seller: ov } = iv;
      ev = ov == null ? void 0 : ov.sellerId;
    } catch {
      ev = "1";
    }
  return {
    id: rv.skuId,
    quantity: tv || 1,
    seller: ev
  };
}
function kn$1(rv) {
  return /^https:\/\/[a-zA-Z0-9-]+\.myvtex\.com/.test(String(rv));
}
const ur$1 = () => {
  var rv;
  return (rv = window == null ? void 0 : window.location) == null ? void 0 : rv.href;
}, { apiUrls: js } = Dn;
js.corsProxy;
const yc = async (rv) => {
  try {
    const { accountName: tv } = xt$3();
    if (!tv)
      throw new Error("Nizza account is invalid");
    const { orderFormId: ev, marketingTags: iv, utmSource: ov } = rv, av = `https://${tv}.myvtex.com/_v/api/personal-shopper/miniCartMarketing/${ev}`;
    await en$3({
      url: av,
      method: "POST",
      body: JSON.stringify({
        marketingTags: iv,
        utmSource: ov
      })
    });
  } catch (tv) {
    console.info("Error: ", tv);
  }
};
function T$1(rv) {
  return rv != null && typeof rv == "object" && rv["@@functional/placeholder"] === !0;
}
function F(rv) {
  return function tv(ev) {
    return arguments.length === 0 || T$1(ev) ? tv : rv.apply(this, arguments);
  };
}
function K(rv) {
  return function tv(ev, iv) {
    switch (arguments.length) {
      case 0:
        return tv;
      case 1:
        return T$1(ev) ? tv : F(function(ov) {
          return rv(ev, ov);
        });
      default:
        return T$1(ev) && T$1(iv) ? tv : T$1(ev) ? F(function(ov) {
          return rv(ov, iv);
        }) : T$1(iv) ? F(function(ov) {
          return rv(ev, ov);
        }) : rv(ev, iv);
    }
  };
}
function Ut$1(rv, tv) {
  switch (rv) {
    case 0:
      return function() {
        return tv.apply(this, arguments);
      };
    case 1:
      return function(ev) {
        return tv.apply(this, arguments);
      };
    case 2:
      return function(ev, iv) {
        return tv.apply(this, arguments);
      };
    case 3:
      return function(ev, iv, ov) {
        return tv.apply(this, arguments);
      };
    case 4:
      return function(ev, iv, ov, av) {
        return tv.apply(this, arguments);
      };
    case 5:
      return function(ev, iv, ov, av, sv) {
        return tv.apply(this, arguments);
      };
    case 6:
      return function(ev, iv, ov, av, sv, lv) {
        return tv.apply(this, arguments);
      };
    case 7:
      return function(ev, iv, ov, av, sv, lv, uv) {
        return tv.apply(this, arguments);
      };
    case 8:
      return function(ev, iv, ov, av, sv, lv, uv, cv) {
        return tv.apply(this, arguments);
      };
    case 9:
      return function(ev, iv, ov, av, sv, lv, uv, cv, dv) {
        return tv.apply(this, arguments);
      };
    case 10:
      return function(ev, iv, ov, av, sv, lv, uv, cv, dv, hv) {
        return tv.apply(this, arguments);
      };
    default:
      throw new Error("First argument to _arity must be a non-negative integer no greater than ten");
  }
}
function zn(rv, tv, ev) {
  return function() {
    for (var iv = [], ov = 0, av = rv, sv = 0, lv = !1; sv < tv.length || ov < arguments.length; ) {
      var uv;
      sv < tv.length && (!T$1(tv[sv]) || ov >= arguments.length) ? uv = tv[sv] : (uv = arguments[ov], ov += 1), iv[sv] = uv, T$1(uv) ? lv = !0 : av -= 1, sv += 1;
    }
    return !lv && av <= 0 ? ev.apply(this, iv) : Ut$1(Math.max(0, av), zn(rv, iv, ev));
  };
}
var Fn$1 = /* @__PURE__ */ K(function(rv, tv) {
  return rv === 1 ? F(tv) : Ut$1(rv, zn(rv, [], tv));
});
function wr$1(rv) {
  return function tv(ev, iv, ov) {
    switch (arguments.length) {
      case 0:
        return tv;
      case 1:
        return T$1(ev) ? tv : K(function(av, sv) {
          return rv(ev, av, sv);
        });
      case 2:
        return T$1(ev) && T$1(iv) ? tv : T$1(ev) ? K(function(av, sv) {
          return rv(av, iv, sv);
        }) : T$1(iv) ? K(function(av, sv) {
          return rv(ev, av, sv);
        }) : F(function(av) {
          return rv(ev, iv, av);
        });
      default:
        return T$1(ev) && T$1(iv) && T$1(ov) ? tv : T$1(ev) && T$1(iv) ? K(function(av, sv) {
          return rv(av, sv, ov);
        }) : T$1(ev) && T$1(ov) ? K(function(av, sv) {
          return rv(av, iv, sv);
        }) : T$1(iv) && T$1(ov) ? K(function(av, sv) {
          return rv(ev, av, sv);
        }) : T$1(ev) ? F(function(av) {
          return rv(av, iv, ov);
        }) : T$1(iv) ? F(function(av) {
          return rv(ev, av, ov);
        }) : T$1(ov) ? F(function(av) {
          return rv(ev, iv, av);
        }) : rv(ev, iv, ov);
    }
  };
}
const Hn = Array.isArray || function(rv) {
  return rv != null && rv.length >= 0 && Object.prototype.toString.call(rv) === "[object Array]";
}, Fs = Number.isInteger || function(rv) {
  return rv << 0 === rv;
};
function Wn(rv) {
  return Object.prototype.toString.call(rv) === "[object String]";
}
function Hs(rv, tv) {
  var ev = rv < 0 ? tv.length + rv : rv;
  return Wn(tv) ? tv.charAt(ev) : tv[ev];
}
var Ws$1 = /* @__PURE__ */ K(function(rv, tv) {
  if (tv != null)
    return Fs(rv) ? Hs(rv, tv) : tv[rv];
}), Gs$1 = /* @__PURE__ */ F(function(rv) {
  return Hn(rv) ? !0 : !rv || typeof rv != "object" || Wn(rv) ? !1 : rv.length === 0 ? !0 : rv.length > 0 ? rv.hasOwnProperty(0) && rv.hasOwnProperty(rv.length - 1) : !1;
}), qr = typeof Symbol < "u" ? Symbol.iterator : "@@iterator";
function Ks(rv, tv, ev) {
  return function(iv, ov, av) {
    if (Gs$1(av))
      return rv(iv, ov, av);
    if (av == null)
      return ov;
    if (typeof av["fantasy-land/reduce"] == "function")
      return tv(iv, ov, av, "fantasy-land/reduce");
    if (av[qr] != null)
      return ev(iv, ov, av[qr]());
    if (typeof av.next == "function")
      return ev(iv, ov, av);
    if (typeof av.reduce == "function")
      return tv(iv, ov, av, "reduce");
    throw new TypeError("reduce: list must be array or iterable");
  };
}
function qs$1(rv, tv, ev) {
  for (var iv = 0, ov = ev.length; iv < ov; ) {
    if (tv = rv["@@transducer/step"](tv, ev[iv]), tv && tv["@@transducer/reduced"]) {
      tv = tv["@@transducer/value"];
      break;
    }
    iv += 1;
  }
  return rv["@@transducer/result"](tv);
}
var Js$1 = /* @__PURE__ */ K(function(rv, tv) {
  return Ut$1(rv.length, function() {
    return rv.apply(tv, arguments);
  });
});
function Xs$1(rv, tv, ev) {
  for (var iv = ev.next(); !iv.done; ) {
    if (tv = rv["@@transducer/step"](tv, iv.value), tv && tv["@@transducer/reduced"]) {
      tv = tv["@@transducer/value"];
      break;
    }
    iv = ev.next();
  }
  return rv["@@transducer/result"](tv);
}
function Zs$1(rv, tv, ev, iv) {
  return rv["@@transducer/result"](ev[iv](Js$1(rv["@@transducer/step"], rv), tv));
}
var Ys$1 = /* @__PURE__ */ Ks(qs$1, Zs$1, Xs$1), Qs$1 = /* @__PURE__ */ function() {
  function rv(tv) {
    this.f = tv;
  }
  return rv.prototype["@@transducer/init"] = function() {
    throw new Error("init not implemented on XWrap");
  }, rv.prototype["@@transducer/result"] = function(tv) {
    return tv;
  }, rv.prototype["@@transducer/step"] = function(tv, ev) {
    return this.f(tv, ev);
  }, rv;
}();
function eo$1(rv) {
  return new Qs$1(rv);
}
var to$1 = /* @__PURE__ */ wr$1(function(rv, tv, ev) {
  return Ys$1(typeof rv == "function" ? eo$1(rv) : rv, tv, ev);
}), ro$1 = /* @__PURE__ */ F(function(rv) {
  return function() {
    return rv;
  };
}), no$1 = /* @__PURE__ */ F(function(rv) {
  return Fn$1(rv.length, rv);
}), io$1 = /* @__PURE__ */ K(function(rv, tv) {
  switch (rv) {
    case 0:
      return function() {
        return tv.call(this);
      };
    case 1:
      return function(ev) {
        return tv.call(this, ev);
      };
    case 2:
      return function(ev, iv) {
        return tv.call(this, ev, iv);
      };
    case 3:
      return function(ev, iv, ov) {
        return tv.call(this, ev, iv, ov);
      };
    case 4:
      return function(ev, iv, ov, av) {
        return tv.call(this, ev, iv, ov, av);
      };
    case 5:
      return function(ev, iv, ov, av, sv) {
        return tv.call(this, ev, iv, ov, av, sv);
      };
    case 6:
      return function(ev, iv, ov, av, sv, lv) {
        return tv.call(this, ev, iv, ov, av, sv, lv);
      };
    case 7:
      return function(ev, iv, ov, av, sv, lv, uv) {
        return tv.call(this, ev, iv, ov, av, sv, lv, uv);
      };
    case 8:
      return function(ev, iv, ov, av, sv, lv, uv, cv) {
        return tv.call(this, ev, iv, ov, av, sv, lv, uv, cv);
      };
    case 9:
      return function(ev, iv, ov, av, sv, lv, uv, cv, dv) {
        return tv.call(this, ev, iv, ov, av, sv, lv, uv, cv, dv);
      };
    case 10:
      return function(ev, iv, ov, av, sv, lv, uv, cv, dv, hv) {
        return tv.call(this, ev, iv, ov, av, sv, lv, uv, cv, dv, hv);
      };
    default:
      throw new Error("First argument to nAry must be a non-negative integer no greater than ten");
  }
});
function so$1(rv, tv) {
  return function() {
    return tv.call(this, rv.apply(this, arguments));
  };
}
function Gn(rv, tv) {
  return function() {
    var ev = arguments.length;
    if (ev === 0)
      return tv();
    var iv = arguments[ev - 1];
    return Hn(iv) || typeof iv[rv] != "function" ? tv.apply(this, arguments) : iv[rv].apply(iv, Array.prototype.slice.call(arguments, 0, ev - 1));
  };
}
var oo$1 = /* @__PURE__ */ wr$1(/* @__PURE__ */ Gn("slice", function(rv, tv, ev) {
  return Array.prototype.slice.call(ev, rv, tv);
})), ao$1 = /* @__PURE__ */ F(/* @__PURE__ */ Gn("tail", /* @__PURE__ */ oo$1(1, 1 / 0)));
function Jr$1() {
  if (arguments.length === 0)
    throw new Error("pipe requires at least one argument");
  return Ut$1(arguments[0].length, to$1(so$1, arguments[0], ao$1(arguments)));
}
var uo$1 = /* @__PURE__ */ K(function(rv, tv) {
  if (rv > 10)
    throw new Error("Constructor with greater than ten arguments");
  return rv === 0 ? function() {
    return new tv();
  } : no$1(io$1(rv, function(ev, iv, ov, av, sv, lv, uv, cv, dv, hv) {
    switch (rv) {
      case 1:
        return new tv(ev);
      case 2:
        return new tv(ev, iv);
      case 3:
        return new tv(ev, iv, ov);
      case 4:
        return new tv(ev, iv, ov, av);
      case 5:
        return new tv(ev, iv, ov, av, sv);
      case 6:
        return new tv(ev, iv, ov, av, sv, lv);
      case 7:
        return new tv(ev, iv, ov, av, sv, lv, uv);
      case 8:
        return new tv(ev, iv, ov, av, sv, lv, uv, cv);
      case 9:
        return new tv(ev, iv, ov, av, sv, lv, uv, cv, dv);
      case 10:
        return new tv(ev, iv, ov, av, sv, lv, uv, cv, dv, hv);
    }
  }));
}), co$1 = /* @__PURE__ */ wr$1(function(rv, tv, ev) {
  return Fn$1(Math.max(rv.length, tv.length, ev.length), function() {
    return rv.apply(this, arguments) ? tv.apply(this, arguments) : ev.apply(this, arguments);
  });
});
function lo$1(rv) {
  return rv != null && rv.variations ? rv.variations.filter((tv) => rv[tv]).map((tv) => fo$1(String(tv), rv[tv])).join("&") : "";
}
function Ac(rv) {
  return ho$1(rv);
}
function fo$1(rv, tv) {
  return `${rv}:${tv.join("&")}`;
}
function ho$1(rv) {
  return Object.entries(rv).map(([tv, ev]) => `${tv}:${ev}`).join("&");
}
function _o$1(rv, tv = null, ev = !1) {
  var iv;
  const ov = rv, av = Et(ov), { item: sv, seller: lv, isAvailable: uv } = av, cv = (_v) => {
    var Ev;
    return ev ? _v + (((Ev = lv == null ? void 0 : lv.commertialOffer) == null ? void 0 : Ev.Tax) || 0) : _v;
  }, dv = co$1(
    Jr$1(ur$1, kn$1),
    Jr$1(ur$1, uo$1(1, URL), Ws$1("host")),
    ro$1(tv)
  ), hv = cv(lv.commertialOffer.Price), pv = cv(lv.commertialOffer.ListPrice), yv = ov.items.map((_v) => ({
    ..._v,
    variationCode: lo$1(_v)
  }));
  let Sv = {
    /**
     * Some integrations like the add to cart in vtex.io add
     * additional information in the product object itself,
     * that's why this is necessary "...product"
     **/
    ...ov,
    items: yv,
    price: pv,
    priceWithDiscount: hv,
    isAvailable: uv,
    id: ov.productId,
    skuId: sv == null ? void 0 : sv.itemId,
    sellerId: lv == null ? void 0 : lv.sellerId,
    name: ov == null ? void 0 : ov.productName,
    imageUrl: (iv = sv == null ? void 0 : sv.images[0]) == null ? void 0 : iv.imageUrl,
    pdpLink: ov.link,
    addToCartLink: lv == null ? void 0 : lv.addToCartLink,
    variationSelector: (ov == null ? void 0 : ov.skuSpecifications) || []
  };
  if (tv) {
    const _v = dv();
    Sv = Ts$1(Sv, _v);
  }
  return Sv;
}
qe$1.withPrefix(G, "VtexProductDataSource");
function P$1(rv) {
  for (var tv = arguments.length, ev = new Array(tv > 1 ? tv - 1 : 0), iv = 1; iv < tv; iv++)
    ev[iv - 1] = arguments[iv];
  throw new Error(typeof rv == "number" ? "[MobX] minified error nr: " + rv + (ev.length ? " " + ev.map(String).join(",") : "") + ". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts" : "[MobX] " + rv);
}
var bo$1 = {};
function Kn$1() {
  return typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : bo$1;
}
var qn$1 = Object.assign, Pt$1 = Object.getOwnPropertyDescriptor, ee = Object.defineProperty, Mt$1 = Object.prototype, cr$1 = [];
Object.freeze(cr$1);
var Jn$1 = {};
Object.freeze(Jn$1);
var mo$1 = typeof Proxy < "u", yo$1 = /* @__PURE__ */ Object.toString();
function Xn$1() {
  mo$1 || P$1("Proxy not available");
}
function Zn$1(rv) {
  var tv = !1;
  return function() {
    if (!tv)
      return tv = !0, rv.apply(this, arguments);
  };
}
var xe = function() {
};
function Z(rv) {
  return typeof rv == "function";
}
function me(rv) {
  var tv = typeof rv;
  switch (tv) {
    case "string":
    case "symbol":
    case "number":
      return !0;
  }
  return !1;
}
function Dt(rv) {
  return rv !== null && typeof rv == "object";
}
function le(rv) {
  if (!Dt(rv))
    return !1;
  var tv = Object.getPrototypeOf(rv);
  if (tv == null)
    return !0;
  var ev = Object.hasOwnProperty.call(tv, "constructor") && tv.constructor;
  return typeof ev == "function" && ev.toString() === yo$1;
}
function Yn$1(rv) {
  var tv = rv == null ? void 0 : rv.constructor;
  return tv ? tv.name === "GeneratorFunction" || tv.displayName === "GeneratorFunction" : !1;
}
function Or(rv, tv, ev) {
  ee(rv, tv, {
    enumerable: !1,
    writable: !0,
    configurable: !0,
    value: ev
  });
}
function Qn$1(rv, tv, ev) {
  ee(rv, tv, {
    enumerable: !1,
    writable: !1,
    configurable: !0,
    value: ev
  });
}
function Oe(rv, tv) {
  var ev = "isMobX" + rv;
  return tv.prototype[ev] = !0, function(iv) {
    return Dt(iv) && iv[ev] === !0;
  };
}
function De(rv) {
  return rv != null && Object.prototype.toString.call(rv) === "[object Map]";
}
function Ao$1(rv) {
  var tv = Object.getPrototypeOf(rv), ev = Object.getPrototypeOf(tv), iv = Object.getPrototypeOf(ev);
  return iv === null;
}
function ne(rv) {
  return rv != null && Object.prototype.toString.call(rv) === "[object Set]";
}
var ei$1 = typeof Object.getOwnPropertySymbols < "u";
function wo$1(rv) {
  var tv = Object.keys(rv);
  if (!ei$1)
    return tv;
  var ev = Object.getOwnPropertySymbols(rv);
  return ev.length ? [].concat(tv, ev.filter(function(iv) {
    return Mt$1.propertyIsEnumerable.call(rv, iv);
  })) : tv;
}
var Sr$1 = typeof Reflect < "u" && Reflect.ownKeys ? Reflect.ownKeys : ei$1 ? function(rv) {
  return Object.getOwnPropertyNames(rv).concat(Object.getOwnPropertySymbols(rv));
} : (
  /* istanbul ignore next */
  Object.getOwnPropertyNames
);
function ti$1(rv) {
  return rv === null ? null : typeof rv == "object" ? "" + rv : rv;
}
function ue(rv, tv) {
  return Mt$1.hasOwnProperty.call(rv, tv);
}
var Oo$1 = Object.getOwnPropertyDescriptors || function(rv) {
  var tv = {};
  return Sr$1(rv).forEach(function(ev) {
    tv[ev] = Pt$1(rv, ev);
  }), tv;
};
function D(rv, tv) {
  return !!(rv & tv);
}
function k$1(rv, tv, ev) {
  return ev ? rv |= tv : rv &= ~tv, rv;
}
function Yr(rv, tv) {
  (tv == null || tv > rv.length) && (tv = rv.length);
  for (var ev = 0, iv = Array(tv); ev < tv; ev++)
    iv[ev] = rv[ev];
  return iv;
}
function So$1(rv, tv) {
  for (var ev = 0; ev < tv.length; ev++) {
    var iv = tv[ev];
    iv.enumerable = iv.enumerable || !1, iv.configurable = !0, "value" in iv && (iv.writable = !0), Object.defineProperty(rv, Po$1(iv.key), iv);
  }
}
function ke(rv, tv, ev) {
  return tv && So$1(rv.prototype, tv), Object.defineProperty(rv, "prototype", {
    writable: !1
  }), rv;
}
function Te(rv, tv) {
  var ev = typeof Symbol < "u" && rv[Symbol.iterator] || rv["@@iterator"];
  if (ev)
    return (ev = ev.call(rv)).next.bind(ev);
  if (Array.isArray(rv) || (ev = Co$1(rv)) || tv) {
    ev && (rv = ev);
    var iv = 0;
    return function() {
      return iv >= rv.length ? {
        done: !0
      } : {
        done: !1,
        value: rv[iv++]
      };
    };
  }
  throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function ye() {
  return ye = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        ({}).hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, ye.apply(null, arguments);
}
function ri(rv, tv) {
  rv.prototype = Object.create(tv.prototype), rv.prototype.constructor = rv, lr$1(rv, tv);
}
function lr$1(rv, tv) {
  return lr$1 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(ev, iv) {
    return ev.__proto__ = iv, ev;
  }, lr$1(rv, tv);
}
function Eo$1(rv, tv) {
  if (typeof rv != "object" || !rv)
    return rv;
  var ev = rv[Symbol.toPrimitive];
  if (ev !== void 0) {
    var iv = ev.call(rv, tv);
    if (typeof iv != "object")
      return iv;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return String(rv);
}
function Po$1(rv) {
  var tv = Eo$1(rv, "string");
  return typeof tv == "symbol" ? tv : tv + "";
}
function Co$1(rv, tv) {
  if (rv) {
    if (typeof rv == "string")
      return Yr(rv, tv);
    var ev = {}.toString.call(rv).slice(8, -1);
    return ev === "Object" && rv.constructor && (ev = rv.constructor.name), ev === "Map" || ev === "Set" ? Array.from(rv) : ev === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ev) ? Yr(rv, tv) : void 0;
  }
}
var Re = /* @__PURE__ */ Symbol("mobx-stored-annotations");
function te$1(rv) {
  function tv(ev, iv) {
    if (nt$1(iv))
      return rv.decorate_20223_(ev, iv);
    Ve(ev, iv, rv);
  }
  return Object.assign(tv, rv);
}
function Ve(rv, tv, ev) {
  ue(rv, Re) || Or(rv, Re, ye({}, rv[Re])), No$1(ev) || (rv[Re][tv] = ev);
}
function nt$1(rv) {
  return typeof rv == "object" && typeof rv.kind == "string";
}
var m$2 = /* @__PURE__ */ Symbol("mobx administration"), _e = /* @__PURE__ */ function() {
  function rv(ev) {
    ev === void 0 && (ev = "Atom"), this.name_ = void 0, this.flags_ = 0, this.observers_ = /* @__PURE__ */ new Set(), this.lastAccessedBy_ = 0, this.lowestObserverState_ = E$1.NOT_TRACKING_, this.onBOL = void 0, this.onBUOL = void 0, this.name_ = ev;
  }
  var tv = rv.prototype;
  return tv.onBO = function() {
    this.onBOL && this.onBOL.forEach(function(ev) {
      return ev();
    });
  }, tv.onBUO = function() {
    this.onBUOL && this.onBUOL.forEach(function(ev) {
      return ev();
    });
  }, tv.reportObserved = function() {
    return gi$1(this);
  }, tv.reportChanged = function() {
    H$1(), bi$1(this), W();
  }, tv.toString = function() {
    return this.name_;
  }, ke(rv, [{
    key: "isBeingObserved",
    get: function() {
      return D(this.flags_, rv.isBeingObservedMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isBeingObservedMask_, ev);
    }
  }, {
    key: "isPendingUnobservation",
    get: function() {
      return D(this.flags_, rv.isPendingUnobservationMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isPendingUnobservationMask_, ev);
    }
  }, {
    key: "diffValue",
    get: function() {
      return D(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.diffValueMask_, ev === 1);
    }
  }]);
}();
_e.isBeingObservedMask_ = 1;
_e.isPendingUnobservationMask_ = 2;
_e.diffValueMask_ = 4;
var Er$1 = /* @__PURE__ */ Oe("Atom", _e);
function ni(rv, tv, ev) {
  tv === void 0 && (tv = xe), ev === void 0 && (ev = xe);
  var iv = new _e(rv);
  return tv !== xe && Da$1(iv, tv), ev !== xe && Si$1(iv, ev), iv;
}
function $o$1(rv, tv) {
  return rv === tv;
}
function xo$1(rv, tv) {
  return Tr$1(rv, tv);
}
function To$1(rv, tv) {
  return Tr$1(rv, tv, 1);
}
function Ro$1(rv, tv) {
  return Object.is ? Object.is(rv, tv) : rv === tv ? rv !== 0 || 1 / rv === 1 / tv : rv !== rv && tv !== tv;
}
var Ct = {
  identity: $o$1,
  structural: xo$1,
  default: Ro$1,
  shallow: To$1
};
function Ae(rv, tv, ev) {
  return Ci$1(rv) ? rv : Array.isArray(rv) ? N$1.array(rv, {
    name: ev
  }) : le(rv) ? N$1.object(rv, void 0, {
    name: ev
  }) : De(rv) ? N$1.map(rv, {
    name: ev
  }) : ne(rv) ? N$1.set(rv, {
    name: ev
  }) : typeof rv == "function" && !Wt$1(rv) && !Ye$1(rv) ? Yn$1(rv) ? Ne(rv) : Ze$1(ev, rv) : rv;
}
function jo$1(rv, tv, ev) {
  if (rv == null || Kt(rv) || Gt$1(rv) || Ee(rv) || Be(rv))
    return rv;
  if (Array.isArray(rv))
    return N$1.array(rv, {
      name: ev,
      deep: !1
    });
  if (le(rv))
    return N$1.object(rv, void 0, {
      name: ev,
      deep: !1
    });
  if (De(rv))
    return N$1.map(rv, {
      name: ev,
      deep: !1
    });
  if (ne(rv))
    return N$1.set(rv, {
      name: ev,
      deep: !1
    });
}
function kt(rv) {
  return rv;
}
function Io$1(rv, tv) {
  return Tr$1(rv, tv) ? tv : rv;
}
var Lo$1 = "override";
function No$1(rv) {
  return rv.annotationType_ === Lo$1;
}
function it$1(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: Uo$1,
    extend_: Mo,
    decorate_20223_: Do$1
  };
}
function Uo$1(rv, tv, ev, iv) {
  var ov;
  if ((ov = this.options_) != null && ov.bound)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
  if (iv === rv.target_)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 2;
  if (Wt$1(ev.value))
    return 1;
  var av = ii(rv, this, tv, ev, !1);
  return ee(iv, tv, av), 2;
}
function Mo(rv, tv, ev, iv) {
  var ov = ii(rv, this, tv, ev);
  return rv.defineProperty_(tv, ov, iv);
}
function Do$1(rv, tv) {
  var ev = tv.kind, iv = tv.name, ov = tv.addInitializer, av = this, sv = function(uv) {
    var cv, dv, hv, pv;
    return fe((cv = (dv = av.options_) == null ? void 0 : dv.name) != null ? cv : iv.toString(), uv, (hv = (pv = av.options_) == null ? void 0 : pv.autoAction) != null ? hv : !1);
  };
  if (ev == "field") {
    ov(function() {
      Ve(this, iv, av);
    });
    return;
  }
  if (ev == "method") {
    var lv;
    return Wt$1(rv) || (rv = sv(rv)), (lv = this.options_) != null && lv.bound && ov(function() {
      var uv = this, cv = uv[iv].bind(uv);
      cv.isMobxAction = !0, uv[iv] = cv;
    }), rv;
  }
  P$1("Cannot apply '" + av.annotationType_ + "' to '" + String(iv) + "' (kind: " + ev + "):" + (`
'` + av.annotationType_ + "' can only be used on properties with a function value."));
}
function ko$1(rv, tv, ev, iv) {
  tv.annotationType_, iv.value;
}
function ii(rv, tv, ev, iv, ov) {
  var av, sv, lv, uv, cv, dv, hv;
  ov === void 0 && (ov = v$1.safeDescriptors), ko$1(rv, tv, ev, iv);
  var pv = iv.value;
  if ((av = tv.options_) != null && av.bound) {
    var yv;
    pv = pv.bind((yv = rv.proxy_) != null ? yv : rv.target_);
  }
  return {
    value: fe(
      (sv = (lv = tv.options_) == null ? void 0 : lv.name) != null ? sv : ev.toString(),
      pv,
      (uv = (cv = tv.options_) == null ? void 0 : cv.autoAction) != null ? uv : !1,
      // https://github.com/mobxjs/mobx/discussions/3140
      (dv = tv.options_) != null && dv.bound ? (hv = rv.proxy_) != null ? hv : rv.target_ : void 0
    ),
    // Non-configurable for classes
    // prevents accidental field redefinition in subclass
    configurable: ov ? rv.isPlainObject_ : !0,
    // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058
    enumerable: !1,
    // Non-obsevable, therefore non-writable
    // Also prevents rewriting in subclass constructor
    writable: !ov
  };
}
function si(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: Vo,
    extend_: Bo$1,
    decorate_20223_: zo$1
  };
}
function Vo(rv, tv, ev, iv) {
  var ov;
  if (iv === rv.target_)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 2;
  if ((ov = this.options_) != null && ov.bound && (!ue(rv.target_, tv) || !Ye$1(rv.target_[tv])) && this.extend_(rv, tv, ev, !1) === null)
    return 0;
  if (Ye$1(ev.value))
    return 1;
  var av = oi(rv, this, tv, ev, !1, !1);
  return ee(iv, tv, av), 2;
}
function Bo$1(rv, tv, ev, iv) {
  var ov, av = oi(rv, this, tv, ev, (ov = this.options_) == null ? void 0 : ov.bound);
  return rv.defineProperty_(tv, av, iv);
}
function zo$1(rv, tv) {
  var ev, iv = tv.name, ov = tv.addInitializer;
  return Ye$1(rv) || (rv = Ne(rv)), (ev = this.options_) != null && ev.bound && ov(function() {
    var av = this, sv = av[iv].bind(av);
    sv.isMobXFlow = !0, av[iv] = sv;
  }), rv;
}
function Fo$1(rv, tv, ev, iv) {
  tv.annotationType_, iv.value;
}
function oi(rv, tv, ev, iv, ov, av) {
  av === void 0 && (av = v$1.safeDescriptors), Fo$1(rv, tv, ev, iv);
  var sv = iv.value;
  if (Ye$1(sv) || (sv = Ne(sv)), ov) {
    var lv;
    sv = sv.bind((lv = rv.proxy_) != null ? lv : rv.target_), sv.isMobXFlow = !0;
  }
  return {
    value: sv,
    // Non-configurable for classes
    // prevents accidental field redefinition in subclass
    configurable: av ? rv.isPlainObject_ : !0,
    // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058
    enumerable: !1,
    // Non-obsevable, therefore non-writable
    // Also prevents rewriting in subclass constructor
    writable: !av
  };
}
function Pr$1(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: Ho$1,
    extend_: Wo$1,
    decorate_20223_: Go$1
  };
}
function Ho$1(rv, tv, ev) {
  return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
}
function Wo$1(rv, tv, ev, iv) {
  return Ko$1(rv, this, tv, ev), rv.defineComputedProperty_(tv, ye({}, this.options_, {
    get: ev.get,
    set: ev.set
  }), iv);
}
function Go$1(rv, tv) {
  var ev = this, iv = tv.name, ov = tv.addInitializer;
  return ov(function() {
    var av = at(this)[m$2], sv = ye({}, ev.options_, {
      get: rv,
      context: this
    });
    sv.name || (sv.name = "ObservableObject." + iv.toString()), av.values_.set(iv, new Y(sv));
  }), function() {
    return this[m$2].getObservablePropValue_(iv);
  };
}
function Ko$1(rv, tv, ev, iv) {
  tv.annotationType_, iv.get;
}
function Vt$1(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: qo$1,
    extend_: Jo$1,
    decorate_20223_: Xo$1
  };
}
function qo$1(rv, tv, ev) {
  return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
}
function Jo$1(rv, tv, ev, iv) {
  var ov, av;
  return Zo$1(rv, this), rv.defineObservableProperty_(tv, ev.value, (ov = (av = this.options_) == null ? void 0 : av.enhancer) != null ? ov : Ae, iv);
}
function Xo$1(rv, tv) {
  var ev = this, iv = tv.kind, ov = tv.name, av = /* @__PURE__ */ new WeakSet();
  function sv(lv, uv) {
    var cv, dv, hv = at(lv)[m$2], pv = new be(uv, (cv = (dv = ev.options_) == null ? void 0 : dv.enhancer) != null ? cv : Ae, "ObservableObject." + ov.toString(), !1);
    hv.values_.set(ov, pv), av.add(lv);
  }
  if (iv == "accessor")
    return {
      get: function() {
        return av.has(this) || sv(this, rv.get.call(this)), this[m$2].getObservablePropValue_(ov);
      },
      set: function(lv) {
        return av.has(this) || sv(this, lv), this[m$2].setObservablePropValue_(ov, lv);
      },
      init: function(lv) {
        return av.has(this) || sv(this, lv), lv;
      }
    };
}
function Zo$1(rv, tv, ev, iv) {
  tv.annotationType_;
}
var Yo$1 = "true", Qo$1 = /* @__PURE__ */ ai();
function ai(rv) {
  return {
    annotationType_: Yo$1,
    options_: rv,
    make_: ea$1,
    extend_: ta$1,
    decorate_20223_: ra$1
  };
}
function ea$1(rv, tv, ev, iv) {
  var ov, av;
  if (ev.get)
    return Bt$1.make_(rv, tv, ev, iv);
  if (ev.set) {
    var sv = fe(tv.toString(), ev.set);
    return iv === rv.target_ ? rv.defineProperty_(tv, {
      configurable: v$1.safeDescriptors ? rv.isPlainObject_ : !0,
      set: sv
    }) === null ? 0 : 2 : (ee(iv, tv, {
      configurable: !0,
      set: sv
    }), 2);
  }
  if (iv !== rv.target_ && typeof ev.value == "function") {
    var lv;
    if (Yn$1(ev.value)) {
      var uv, cv = (uv = this.options_) != null && uv.autoBind ? Ne.bound : Ne;
      return cv.make_(rv, tv, ev, iv);
    }
    var dv = (lv = this.options_) != null && lv.autoBind ? Ze$1.bound : Ze$1;
    return dv.make_(rv, tv, ev, iv);
  }
  var hv = ((ov = this.options_) == null ? void 0 : ov.deep) === !1 ? N$1.ref : N$1;
  if (typeof ev.value == "function" && (av = this.options_) != null && av.autoBind) {
    var pv;
    ev.value = ev.value.bind((pv = rv.proxy_) != null ? pv : rv.target_);
  }
  return hv.make_(rv, tv, ev, iv);
}
function ta$1(rv, tv, ev, iv) {
  var ov, av;
  if (ev.get)
    return Bt$1.extend_(rv, tv, ev, iv);
  if (ev.set)
    return rv.defineProperty_(tv, {
      configurable: v$1.safeDescriptors ? rv.isPlainObject_ : !0,
      set: fe(tv.toString(), ev.set)
    }, iv);
  if (typeof ev.value == "function" && (ov = this.options_) != null && ov.autoBind) {
    var sv;
    ev.value = ev.value.bind((sv = rv.proxy_) != null ? sv : rv.target_);
  }
  var lv = ((av = this.options_) == null ? void 0 : av.deep) === !1 ? N$1.ref : N$1;
  return lv.extend_(rv, tv, ev, iv);
}
function ra$1(rv, tv) {
  P$1("'" + this.annotationType_ + "' cannot be used as a decorator");
}
var na$1 = "observable", ia$1 = "observable.ref", sa$1 = "observable.shallow", oa$1 = "observable.struct", ui$1 = {
  deep: !0,
  name: void 0,
  defaultDecorator: void 0,
  proxy: !0
};
Object.freeze(ui$1);
function vt(rv) {
  return rv || ui$1;
}
var fr = /* @__PURE__ */ Vt$1(na$1), aa$1 = /* @__PURE__ */ Vt$1(ia$1, {
  enhancer: kt
}), ua$1 = /* @__PURE__ */ Vt$1(sa$1, {
  enhancer: jo$1
}), ca$1 = /* @__PURE__ */ Vt$1(oa$1, {
  enhancer: Io$1
}), ci$1 = /* @__PURE__ */ te$1(fr);
function gt(rv) {
  return rv.deep === !0 ? Ae : rv.deep === !1 ? kt : fa(rv.defaultDecorator);
}
function la$1(rv) {
  var tv;
  return rv ? (tv = rv.defaultDecorator) != null ? tv : ai(rv) : void 0;
}
function fa(rv) {
  var tv, ev;
  return rv && (tv = (ev = rv.options_) == null ? void 0 : ev.enhancer) != null ? tv : Ae;
}
function li$1(rv, tv, ev) {
  if (nt$1(tv))
    return fr.decorate_20223_(rv, tv);
  if (me(tv)) {
    Ve(rv, tv, fr);
    return;
  }
  return Ci$1(rv) ? rv : le(rv) ? N$1.object(rv, tv, ev) : Array.isArray(rv) ? N$1.array(rv, tv) : De(rv) ? N$1.map(rv, tv) : ne(rv) ? N$1.set(rv, tv) : typeof rv == "object" && rv !== null ? rv : N$1.box(rv, tv);
}
qn$1(li$1, ci$1);
var ha$1 = {
  box: function(rv, tv) {
    var ev = vt(tv);
    return new be(rv, gt(ev), ev.name, !0, ev.equals);
  },
  array: function(rv, tv) {
    var ev = vt(tv);
    return (v$1.useProxies === !1 || ev.proxy === !1 ? su$1 : Ja$1)(rv, gt(ev), ev.name);
  },
  map: function(rv, tv) {
    var ev = vt(tv);
    return new Ti$1(rv, gt(ev), ev.name);
  },
  set: function(rv, tv) {
    var ev = vt(tv);
    return new Ri$1(rv, gt(ev), ev.name);
  },
  object: function(rv, tv, ev) {
    return ze(function() {
      return ka$1(v$1.useProxies === !1 || (ev == null ? void 0 : ev.proxy) === !1 ? at({}, ev) : Ga({}, ev), rv, tv);
    });
  },
  ref: /* @__PURE__ */ te$1(aa$1),
  shallow: /* @__PURE__ */ te$1(ua$1),
  deep: ci$1,
  struct: /* @__PURE__ */ te$1(ca$1)
}, N$1 = /* @__PURE__ */ qn$1(li$1, ha$1), fi$1 = "computed", da$1 = "computed.struct", hr$1 = /* @__PURE__ */ Pr$1(fi$1), _a$2 = /* @__PURE__ */ Pr$1(da$1, {
  equals: Ct.structural
}), Bt$1 = function(rv, tv) {
  if (nt$1(tv))
    return hr$1.decorate_20223_(rv, tv);
  if (me(tv))
    return Ve(rv, tv, hr$1);
  if (le(rv))
    return te$1(Pr$1(fi$1, rv));
  var ev = le(tv) ? tv : {};
  return ev.get = rv, ev.name || (ev.name = rv.name || ""), new Y(ev);
};
Object.assign(Bt$1, hr$1);
Bt$1.struct = /* @__PURE__ */ te$1(_a$2);
var Qr$1, en$1, $t$1 = 0, pa = 1, va$1 = (Qr$1 = (en$1 = /* @__PURE__ */ Pt$1(function() {
}, "name")) == null ? void 0 : en$1.configurable) != null ? Qr$1 : !1, tn$1 = {
  value: "action",
  configurable: !0,
  writable: !1,
  enumerable: !1
};
function fe(rv, tv, ev, iv) {
  ev === void 0 && (ev = !1);
  function ov() {
    return ga$1(rv, ev, tv, iv || this, arguments);
  }
  return ov.isMobxAction = !0, ov.toString = function() {
    return tv.toString();
  }, va$1 && (tn$1.value = rv, ee(ov, "name", tn$1)), ov;
}
function ga$1(rv, tv, ev, iv, ov) {
  var av = ba$1(rv, tv);
  try {
    return ev.apply(iv, ov);
  } catch (sv) {
    throw av.error_ = sv, sv;
  } finally {
    ma(av);
  }
}
function ba$1(rv, tv, ev, iv) {
  var ov = !1, av = 0, sv = v$1.trackingDerivation, lv = !tv || !sv;
  H$1();
  var uv = v$1.allowStateChanges;
  lv && (Se(), uv = zt(!0));
  var cv = Cr$1(!0), dv = {
    runAsAction_: lv,
    prevDerivation_: sv,
    prevAllowStateChanges_: uv,
    prevAllowStateReads_: cv,
    notifySpy_: ov,
    startTime_: av,
    actionId_: pa++,
    parentActionId_: $t$1
  };
  return $t$1 = dv.actionId_, dv;
}
function ma(rv) {
  $t$1 !== rv.actionId_ && P$1(30), $t$1 = rv.parentActionId_, rv.error_ !== void 0 && (v$1.suppressReactionErrors = !0), Ft$1(rv.prevAllowStateChanges_), Ge$1(rv.prevAllowStateReads_), W(), rv.runAsAction_ && se(rv.prevDerivation_), v$1.suppressReactionErrors = !1;
}
function zt(rv) {
  var tv = v$1.allowStateChanges;
  return v$1.allowStateChanges = rv, tv;
}
function Ft$1(rv) {
  v$1.allowStateChanges = rv;
}
var be = /* @__PURE__ */ function(rv) {
  function tv(iv, ov, av, sv, lv) {
    var uv;
    return av === void 0 && (av = "ObservableValue"), lv === void 0 && (lv = Ct.default), uv = rv.call(this, av) || this, uv.enhancer = void 0, uv.name_ = void 0, uv.equals = void 0, uv.hasUnreportedChange_ = !1, uv.interceptors_ = void 0, uv.changeListeners_ = void 0, uv.value_ = void 0, uv.dehancer = void 0, uv.enhancer = ov, uv.name_ = av, uv.equals = lv, uv.value_ = ov(iv, void 0, av), uv;
  }
  ri(tv, rv);
  var ev = tv.prototype;
  return ev.dehanceValue = function(iv) {
    return this.dehancer !== void 0 ? this.dehancer(iv) : iv;
  }, ev.set = function(iv) {
    this.value_, iv = this.prepareNewValue_(iv), iv !== v$1.UNCHANGED && this.setNewValue_(iv);
  }, ev.prepareNewValue_ = function(iv) {
    if (B$1(this)) {
      var ov = z$1(this, {
        object: this,
        type: re,
        newValue: iv
      });
      if (!ov)
        return v$1.UNCHANGED;
      iv = ov.newValue;
    }
    return iv = this.enhancer(iv, this.value_, this.name_), this.equals(this.value_, iv) ? v$1.UNCHANGED : iv;
  }, ev.setNewValue_ = function(iv) {
    var ov = this.value_;
    this.value_ = iv, this.reportChanged(), J(this) && X(this, {
      type: re,
      object: this,
      newValue: iv,
      oldValue: ov
    });
  }, ev.get = function() {
    return this.reportObserved(), this.dehanceValue(this.value_);
  }, ev.intercept_ = function(iv) {
    return st(this, iv);
  }, ev.observe_ = function(iv, ov) {
    return ov && iv({
      observableKind: "value",
      debugObjectName: this.name_,
      object: this,
      type: re,
      newValue: this.value_,
      oldValue: void 0
    }), ot(this, iv);
  }, ev.raw = function() {
    return this.value_;
  }, ev.toJSON = function() {
    return this.get();
  }, ev.toString = function() {
    return this.name_ + "[" + this.value_ + "]";
  }, ev.valueOf = function() {
    return ti$1(this.get());
  }, ev[Symbol.toPrimitive] = function() {
    return this.valueOf();
  }, tv;
}(_e), Y = /* @__PURE__ */ function() {
  function rv(ev) {
    this.dependenciesState_ = E$1.NOT_TRACKING_, this.observing_ = [], this.newObserving_ = null, this.observers_ = /* @__PURE__ */ new Set(), this.runId_ = 0, this.lastAccessedBy_ = 0, this.lowestObserverState_ = E$1.UP_TO_DATE_, this.unboundDepsCount_ = 0, this.value_ = new Tt$1(null), this.name_ = void 0, this.triggeredBy_ = void 0, this.flags_ = 0, this.derivation = void 0, this.setter_ = void 0, this.isTracing_ = xt$1.NONE, this.scope_ = void 0, this.equals_ = void 0, this.requiresReaction_ = void 0, this.keepAlive_ = void 0, this.onBOL = void 0, this.onBUOL = void 0, ev.get || P$1(31), this.derivation = ev.get, this.name_ = ev.name || "ComputedValue", ev.set && (this.setter_ = fe("ComputedValue-setter", ev.set)), this.equals_ = ev.equals || (ev.compareStructural || ev.struct ? Ct.structural : Ct.default), this.scope_ = ev.context, this.requiresReaction_ = ev.requiresReaction, this.keepAlive_ = !!ev.keepAlive;
  }
  var tv = rv.prototype;
  return tv.onBecomeStale_ = function() {
    Sa$1(this);
  }, tv.onBO = function() {
    this.onBOL && this.onBOL.forEach(function(ev) {
      return ev();
    });
  }, tv.onBUO = function() {
    this.onBUOL && this.onBUOL.forEach(function(ev) {
      return ev();
    });
  }, tv.get = function() {
    if (this.isComputing && P$1(32, this.name_, this.derivation), v$1.inBatch === 0 && // !globalState.trackingDerivatpion &&
    this.observers_.size === 0 && !this.keepAlive_)
      dr$1(this) && (this.warnAboutUntrackedRead_(), H$1(), this.value_ = this.computeValue_(!1), W());
    else if (gi$1(this), dr$1(this)) {
      var ev = v$1.trackingContext;
      this.keepAlive_ && !ev && (v$1.trackingContext = this), this.trackAndCompute() && Oa$1(this), v$1.trackingContext = ev;
    }
    var iv = this.value_;
    if (yt(iv))
      throw iv.cause;
    return iv;
  }, tv.set = function(ev) {
    if (this.setter_) {
      this.isRunningSetter && P$1(33, this.name_), this.isRunningSetter = !0;
      try {
        this.setter_.call(this.scope_, ev);
      } finally {
        this.isRunningSetter = !1;
      }
    } else
      P$1(34, this.name_);
  }, tv.trackAndCompute = function() {
    var ev = this.value_, iv = (
      /* see #1208 */
      this.dependenciesState_ === E$1.NOT_TRACKING_
    ), ov = this.computeValue_(!0), av = iv || yt(ev) || yt(ov) || !this.equals_(ev, ov);
    return av && (this.value_ = ov), av;
  }, tv.computeValue_ = function(ev) {
    this.isComputing = !0;
    var iv = zt(!1), ov;
    if (ev)
      ov = hi$1(this, this.derivation, this.scope_);
    else if (v$1.disableErrorBoundaries === !0)
      ov = this.derivation.call(this.scope_);
    else
      try {
        ov = this.derivation.call(this.scope_);
      } catch (av) {
        ov = new Tt$1(av);
      }
    return Ft$1(iv), this.isComputing = !1, ov;
  }, tv.suspend_ = function() {
    this.keepAlive_ || (_r$1(this), this.value_ = void 0);
  }, tv.observe_ = function(ev, iv) {
    var ov = this, av = !0, sv = void 0;
    return Oi$1(function() {
      var lv = ov.get();
      if (!av || iv) {
        var uv = Se();
        ev({
          observableKind: "computed",
          debugObjectName: ov.name_,
          type: re,
          object: ov,
          newValue: lv,
          oldValue: sv
        }), se(uv);
      }
      av = !1, sv = lv;
    });
  }, tv.warnAboutUntrackedRead_ = function() {
  }, tv.toString = function() {
    return this.name_ + "[" + this.derivation.toString() + "]";
  }, tv.valueOf = function() {
    return ti$1(this.get());
  }, tv[Symbol.toPrimitive] = function() {
    return this.valueOf();
  }, ke(rv, [{
    key: "isComputing",
    get: function() {
      return D(this.flags_, rv.isComputingMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isComputingMask_, ev);
    }
  }, {
    key: "isRunningSetter",
    get: function() {
      return D(this.flags_, rv.isRunningSetterMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isRunningSetterMask_, ev);
    }
  }, {
    key: "isBeingObserved",
    get: function() {
      return D(this.flags_, rv.isBeingObservedMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isBeingObservedMask_, ev);
    }
  }, {
    key: "isPendingUnobservation",
    get: function() {
      return D(this.flags_, rv.isPendingUnobservationMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isPendingUnobservationMask_, ev);
    }
  }, {
    key: "diffValue",
    get: function() {
      return D(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.diffValueMask_, ev === 1);
    }
  }]);
}();
Y.isComputingMask_ = 1;
Y.isRunningSetterMask_ = 2;
Y.isBeingObservedMask_ = 4;
Y.isPendingUnobservationMask_ = 8;
Y.diffValueMask_ = 16;
var Ht$1 = /* @__PURE__ */ Oe("ComputedValue", Y), E$1;
(function(rv) {
  rv[rv.NOT_TRACKING_ = -1] = "NOT_TRACKING_", rv[rv.UP_TO_DATE_ = 0] = "UP_TO_DATE_", rv[rv.POSSIBLY_STALE_ = 1] = "POSSIBLY_STALE_", rv[rv.STALE_ = 2] = "STALE_";
})(E$1 || (E$1 = {}));
var xt$1;
(function(rv) {
  rv[rv.NONE = 0] = "NONE", rv[rv.LOG = 1] = "LOG", rv[rv.BREAK = 2] = "BREAK";
})(xt$1 || (xt$1 = {}));
var Tt$1 = function(rv) {
  this.cause = void 0, this.cause = rv;
};
function yt(rv) {
  return rv instanceof Tt$1;
}
function dr$1(rv) {
  switch (rv.dependenciesState_) {
    case E$1.UP_TO_DATE_:
      return !1;
    case E$1.NOT_TRACKING_:
    case E$1.STALE_:
      return !0;
    case E$1.POSSIBLY_STALE_: {
      for (var tv = Cr$1(!0), ev = Se(), iv = rv.observing_, ov = iv.length, av = 0; av < ov; av++) {
        var sv = iv[av];
        if (Ht$1(sv)) {
          if (v$1.disableErrorBoundaries)
            sv.get();
          else
            try {
              sv.get();
            } catch {
              return se(ev), Ge$1(tv), !0;
            }
          if (rv.dependenciesState_ === E$1.STALE_)
            return se(ev), Ge$1(tv), !0;
        }
      }
      return _i$1(rv), se(ev), Ge$1(tv), !1;
    }
  }
}
function hi$1(rv, tv, ev) {
  var iv = Cr$1(!0);
  _i$1(rv), rv.newObserving_ = new Array(
    // Reserve constant space for initial dependencies, dynamic space otherwise.
    // See https://github.com/mobxjs/mobx/pull/3833
    rv.runId_ === 0 ? 100 : rv.observing_.length
  ), rv.unboundDepsCount_ = 0, rv.runId_ = ++v$1.runId;
  var ov = v$1.trackingDerivation;
  v$1.trackingDerivation = rv, v$1.inBatch++;
  var av;
  if (v$1.disableErrorBoundaries === !0)
    av = tv.call(ev);
  else
    try {
      av = tv.call(ev);
    } catch (sv) {
      av = new Tt$1(sv);
    }
  return v$1.inBatch--, v$1.trackingDerivation = ov, Aa(rv), Ge$1(iv), av;
}
function Aa(rv) {
  for (var tv = rv.observing_, ev = rv.observing_ = rv.newObserving_, iv = E$1.UP_TO_DATE_, ov = 0, av = rv.unboundDepsCount_, sv = 0; sv < av; sv++) {
    var lv = ev[sv];
    lv.diffValue === 0 && (lv.diffValue = 1, ov !== sv && (ev[ov] = lv), ov++), lv.dependenciesState_ > iv && (iv = lv.dependenciesState_);
  }
  for (ev.length = ov, rv.newObserving_ = null, av = tv.length; av--; ) {
    var uv = tv[av];
    uv.diffValue === 0 && pi$1(uv, rv), uv.diffValue = 0;
  }
  for (; ov--; ) {
    var cv = ev[ov];
    cv.diffValue === 1 && (cv.diffValue = 0, wa$1(cv, rv));
  }
  iv !== E$1.UP_TO_DATE_ && (rv.dependenciesState_ = iv, rv.onBecomeStale_());
}
function _r$1(rv) {
  var tv = rv.observing_;
  rv.observing_ = [];
  for (var ev = tv.length; ev--; )
    pi$1(tv[ev], rv);
  rv.dependenciesState_ = E$1.NOT_TRACKING_;
}
function di$1(rv) {
  var tv = Se();
  try {
    return rv();
  } finally {
    se(tv);
  }
}
function Se() {
  var rv = v$1.trackingDerivation;
  return v$1.trackingDerivation = null, rv;
}
function se(rv) {
  v$1.trackingDerivation = rv;
}
function Cr$1(rv) {
  var tv = v$1.allowStateReads;
  return v$1.allowStateReads = rv, tv;
}
function Ge$1(rv) {
  v$1.allowStateReads = rv;
}
function _i$1(rv) {
  if (rv.dependenciesState_ !== E$1.UP_TO_DATE_) {
    rv.dependenciesState_ = E$1.UP_TO_DATE_;
    for (var tv = rv.observing_, ev = tv.length; ev--; )
      tv[ev].lowestObserverState_ = E$1.UP_TO_DATE_;
  }
}
var Xt$1 = function() {
  this.version = 6, this.UNCHANGED = {}, this.trackingDerivation = null, this.trackingContext = null, this.runId = 0, this.mobxGuid = 0, this.inBatch = 0, this.pendingUnobservations = [], this.pendingReactions = [], this.isRunningReactions = !1, this.allowStateChanges = !1, this.allowStateReads = !0, this.enforceActions = !0, this.spyListeners = [], this.globalReactionErrorHandlers = [], this.computedRequiresReaction = !1, this.reactionRequiresObservable = !1, this.observableRequiresReaction = !1, this.disableErrorBoundaries = !1, this.suppressReactionErrors = !1, this.useProxies = !0, this.verifyProxies = !1, this.safeDescriptors = !0;
}, Zt = !0, v$1 = /* @__PURE__ */ function() {
  var rv = /* @__PURE__ */ Kn$1();
  return rv.__mobxInstanceCount > 0 && !rv.__mobxGlobals && (Zt = !1), rv.__mobxGlobals && rv.__mobxGlobals.version !== new Xt$1().version && (Zt = !1), Zt ? rv.__mobxGlobals ? (rv.__mobxInstanceCount += 1, rv.__mobxGlobals.UNCHANGED || (rv.__mobxGlobals.UNCHANGED = {}), rv.__mobxGlobals) : (rv.__mobxInstanceCount = 1, rv.__mobxGlobals = /* @__PURE__ */ new Xt$1()) : (setTimeout(function() {
    P$1(35);
  }, 1), new Xt$1());
}();
function wa$1(rv, tv) {
  rv.observers_.add(tv), rv.lowestObserverState_ > tv.dependenciesState_ && (rv.lowestObserverState_ = tv.dependenciesState_);
}
function pi$1(rv, tv) {
  rv.observers_.delete(tv), rv.observers_.size === 0 && vi$1(rv);
}
function vi$1(rv) {
  rv.isPendingUnobservation === !1 && (rv.isPendingUnobservation = !0, v$1.pendingUnobservations.push(rv));
}
function H$1() {
  v$1.inBatch++;
}
function W() {
  if (--v$1.inBatch === 0) {
    mi$1();
    for (var rv = v$1.pendingUnobservations, tv = 0; tv < rv.length; tv++) {
      var ev = rv[tv];
      ev.isPendingUnobservation = !1, ev.observers_.size === 0 && (ev.isBeingObserved && (ev.isBeingObserved = !1, ev.onBUO()), ev instanceof Y && ev.suspend_());
    }
    v$1.pendingUnobservations = [];
  }
}
function gi$1(rv) {
  var tv = v$1.trackingDerivation;
  return tv !== null ? (tv.runId_ !== rv.lastAccessedBy_ && (rv.lastAccessedBy_ = tv.runId_, tv.newObserving_[tv.unboundDepsCount_++] = rv, !rv.isBeingObserved && v$1.trackingContext && (rv.isBeingObserved = !0, rv.onBO())), rv.isBeingObserved) : (rv.observers_.size === 0 && v$1.inBatch > 0 && vi$1(rv), !1);
}
function bi$1(rv) {
  rv.lowestObserverState_ !== E$1.STALE_ && (rv.lowestObserverState_ = E$1.STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === E$1.UP_TO_DATE_ && tv.onBecomeStale_(), tv.dependenciesState_ = E$1.STALE_;
  }));
}
function Oa$1(rv) {
  rv.lowestObserverState_ !== E$1.STALE_ && (rv.lowestObserverState_ = E$1.STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === E$1.POSSIBLY_STALE_ ? tv.dependenciesState_ = E$1.STALE_ : tv.dependenciesState_ === E$1.UP_TO_DATE_ && (rv.lowestObserverState_ = E$1.UP_TO_DATE_);
  }));
}
function Sa$1(rv) {
  rv.lowestObserverState_ === E$1.UP_TO_DATE_ && (rv.lowestObserverState_ = E$1.POSSIBLY_STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === E$1.UP_TO_DATE_ && (tv.dependenciesState_ = E$1.POSSIBLY_STALE_, tv.onBecomeStale_());
  }));
}
var he = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    ev === void 0 && (ev = "Reaction"), this.name_ = void 0, this.onInvalidate_ = void 0, this.errorHandler_ = void 0, this.requiresObservable_ = void 0, this.observing_ = [], this.newObserving_ = [], this.dependenciesState_ = E$1.NOT_TRACKING_, this.runId_ = 0, this.unboundDepsCount_ = 0, this.flags_ = 0, this.isTracing_ = xt$1.NONE, this.name_ = ev, this.onInvalidate_ = iv, this.errorHandler_ = ov, this.requiresObservable_ = av;
  }
  var tv = rv.prototype;
  return tv.onBecomeStale_ = function() {
    this.schedule_();
  }, tv.schedule_ = function() {
    this.isScheduled || (this.isScheduled = !0, v$1.pendingReactions.push(this), mi$1());
  }, tv.runReaction_ = function() {
    if (!this.isDisposed) {
      H$1(), this.isScheduled = !1;
      var ev = v$1.trackingContext;
      if (v$1.trackingContext = this, dr$1(this)) {
        this.isTrackPending = !0;
        try {
          this.onInvalidate_();
        } catch (iv) {
          this.reportExceptionInDerivation_(iv);
        }
      }
      v$1.trackingContext = ev, W();
    }
  }, tv.track = function(ev) {
    if (!this.isDisposed) {
      H$1(), this.isRunning = !0;
      var iv = v$1.trackingContext;
      v$1.trackingContext = this;
      var ov = hi$1(this, ev, void 0);
      v$1.trackingContext = iv, this.isRunning = !1, this.isTrackPending = !1, this.isDisposed && _r$1(this), yt(ov) && this.reportExceptionInDerivation_(ov.cause), W();
    }
  }, tv.reportExceptionInDerivation_ = function(ev) {
    var iv = this;
    if (this.errorHandler_) {
      this.errorHandler_(ev, this);
      return;
    }
    if (v$1.disableErrorBoundaries)
      throw ev;
    var ov = "[mobx] uncaught error in '" + this + "'";
    v$1.suppressReactionErrors || console.error(ov, ev), v$1.globalReactionErrorHandlers.forEach(function(av) {
      return av(ev, iv);
    });
  }, tv.dispose = function() {
    this.isDisposed || (this.isDisposed = !0, this.isRunning || (H$1(), _r$1(this), W()));
  }, tv.getDisposer_ = function(ev) {
    var iv = this, ov = function av() {
      iv.dispose(), ev == null || ev.removeEventListener == null || ev.removeEventListener("abort", av);
    };
    return ev == null || ev.addEventListener == null || ev.addEventListener("abort", ov), ov[m$2] = this, ov;
  }, tv.toString = function() {
    return "Reaction[" + this.name_ + "]";
  }, tv.trace = function(ev) {
  }, ke(rv, [{
    key: "isDisposed",
    get: function() {
      return D(this.flags_, rv.isDisposedMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isDisposedMask_, ev);
    }
  }, {
    key: "isScheduled",
    get: function() {
      return D(this.flags_, rv.isScheduledMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isScheduledMask_, ev);
    }
  }, {
    key: "isTrackPending",
    get: function() {
      return D(this.flags_, rv.isTrackPendingMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isTrackPendingMask_, ev);
    }
  }, {
    key: "isRunning",
    get: function() {
      return D(this.flags_, rv.isRunningMask_);
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.isRunningMask_, ev);
    }
  }, {
    key: "diffValue",
    get: function() {
      return D(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(ev) {
      this.flags_ = k$1(this.flags_, rv.diffValueMask_, ev === 1);
    }
  }]);
}();
he.isDisposedMask_ = 1;
he.isScheduledMask_ = 2;
he.isTrackPendingMask_ = 4;
he.isRunningMask_ = 8;
he.diffValueMask_ = 16;
var Ea$1 = 100, Pa$1 = function(rv) {
  return rv();
};
function mi$1() {
  v$1.inBatch > 0 || v$1.isRunningReactions || Pa$1(Ca$1);
}
function Ca$1() {
  v$1.isRunningReactions = !0;
  for (var rv = v$1.pendingReactions, tv = 0; rv.length > 0; ) {
    ++tv === Ea$1 && (console.error("[mobx] cycle in reaction: " + rv[0]), rv.splice(0));
    for (var ev = rv.splice(0), iv = 0, ov = ev.length; iv < ov; iv++)
      ev[iv].runReaction_();
  }
  v$1.isRunningReactions = !1;
}
var Rt = /* @__PURE__ */ Oe("Reaction", he);
function Ke() {
  return !1;
}
function $a$1(rv) {
  return console.warn("[mobx.spy] Is a no-op in production builds"), function() {
  };
}
var yi$1 = "action", xa$1 = "action.bound", Ai = "autoAction", Ta$1 = "autoAction.bound", Ra$1 = "<unnamed action>", pr = /* @__PURE__ */ it$1(yi$1), ja = /* @__PURE__ */ it$1(xa$1, {
  bound: !0
}), vr$1 = /* @__PURE__ */ it$1(Ai, {
  autoAction: !0
}), Ia$1 = /* @__PURE__ */ it$1(Ta$1, {
  autoAction: !0,
  bound: !0
});
function wi$1(rv) {
  var tv = function(ev, iv) {
    if (Z(ev))
      return fe(ev.name || Ra$1, ev, rv);
    if (Z(iv))
      return fe(ev, iv, rv);
    if (nt$1(iv))
      return (rv ? vr$1 : pr).decorate_20223_(ev, iv);
    if (me(iv))
      return Ve(ev, iv, rv ? vr$1 : pr);
    if (me(ev))
      return te$1(it$1(rv ? Ai : yi$1, {
        name: ev,
        autoAction: rv
      }));
  };
  return tv;
}
var je = /* @__PURE__ */ wi$1(!1);
Object.assign(je, pr);
var Ze$1 = /* @__PURE__ */ wi$1(!0);
Object.assign(Ze$1, vr$1);
je.bound = /* @__PURE__ */ te$1(ja);
Ze$1.bound = /* @__PURE__ */ te$1(Ia$1);
function Wt$1(rv) {
  return Z(rv) && rv.isMobxAction === !0;
}
function Oi$1(rv, tv) {
  var ev, iv, ov, av;
  tv === void 0 && (tv = Jn$1);
  var sv = (ev = (iv = tv) == null ? void 0 : iv.name) != null ? ev : "Autorun", lv = !tv.scheduler && !tv.delay, uv;
  if (lv)
    uv = new he(sv, function() {
      this.track(hv);
    }, tv.onError, tv.requiresObservable);
  else {
    var cv = Na$1(tv), dv = !1;
    uv = new he(sv, function() {
      dv || (dv = !0, cv(function() {
        dv = !1, uv.isDisposed || uv.track(hv);
      }));
    }, tv.onError, tv.requiresObservable);
  }
  function hv() {
    rv(uv);
  }
  return (ov = tv) != null && (ov = ov.signal) != null && ov.aborted || uv.schedule_(), uv.getDisposer_((av = tv) == null ? void 0 : av.signal);
}
var La$1 = function(rv) {
  return rv();
};
function Na$1(rv) {
  return rv.scheduler ? rv.scheduler : rv.delay ? function(tv) {
    return setTimeout(tv, rv.delay);
  } : La$1;
}
var Ua$1 = "onBO", Ma$1 = "onBUO";
function Da$1(rv, tv, ev) {
  return Ei$1(Ua$1, rv, tv, ev);
}
function Si$1(rv, tv, ev) {
  return Ei$1(Ma$1, rv, tv, ev);
}
function Ei$1(rv, tv, ev, iv) {
  var ov = gr(tv), av = Z(iv) ? iv : ev, sv = rv + "L";
  return ov[sv] ? ov[sv].add(av) : ov[sv] = /* @__PURE__ */ new Set([av]), function() {
    var lv = ov[sv];
    lv && (lv.delete(av), lv.size === 0 && delete ov[sv]);
  };
}
function ka$1(rv, tv, ev, iv) {
  var ov = Oo$1(tv);
  return ze(function() {
    var av = at(rv, iv)[m$2];
    Sr$1(ov).forEach(function(sv) {
      av.extend_(
        sv,
        ov[sv],
        // must pass "undefined" for { key: undefined }
        ev && sv in ev ? ev[sv] : !0
      );
    });
  }), rv;
}
var Va = 0;
function Pi$1() {
  this.message = "FLOW_CANCELLED";
}
Pi$1.prototype = /* @__PURE__ */ Object.create(Error.prototype);
var Yt = /* @__PURE__ */ si("flow"), Ba$1 = /* @__PURE__ */ si("flow.bound", {
  bound: !0
}), Ne = /* @__PURE__ */ Object.assign(function(rv, tv) {
  if (nt$1(tv))
    return Yt.decorate_20223_(rv, tv);
  if (me(tv))
    return Ve(rv, tv, Yt);
  var ev = rv, iv = ev.name || "<unnamed flow>", ov = function() {
    var av = this, sv = arguments, lv = ++Va, uv = je(iv + " - runid: " + lv + " - init", ev).apply(av, sv), cv, dv = void 0, hv = new Promise(function(pv, yv) {
      var Sv = 0;
      cv = yv;
      function _v(xv) {
        dv = void 0;
        var Cv;
        try {
          Cv = je(iv + " - runid: " + lv + " - yield " + Sv++, uv.next).call(uv, xv);
        } catch (Av) {
          return yv(Av);
        }
        wv(Cv);
      }
      function Ev(xv) {
        dv = void 0;
        var Cv;
        try {
          Cv = je(iv + " - runid: " + lv + " - yield " + Sv++, uv.throw).call(uv, xv);
        } catch (Av) {
          return yv(Av);
        }
        wv(Cv);
      }
      function wv(xv) {
        if (Z(xv == null ? void 0 : xv.then)) {
          xv.then(wv, yv);
          return;
        }
        return xv.done ? pv(xv.value) : (dv = Promise.resolve(xv.value), dv.then(_v, Ev));
      }
      _v(void 0);
    });
    return hv.cancel = je(iv + " - runid: " + lv + " - cancel", function() {
      try {
        dv && rn(dv);
        var pv = uv.return(void 0), yv = Promise.resolve(pv.value);
        yv.then(xe, xe), rn(yv), cv(new Pi$1());
      } catch (Sv) {
        cv(Sv);
      }
    }), hv;
  };
  return ov.isMobXFlow = !0, ov;
}, Yt);
Ne.bound = /* @__PURE__ */ te$1(Ba$1);
function rn(rv) {
  Z(rv.cancel) && rv.cancel();
}
function Ye$1(rv) {
  return (rv == null ? void 0 : rv.isMobXFlow) === !0;
}
function za(rv, tv) {
  return rv ? Kt(rv) || !!rv[m$2] || Er$1(rv) || Rt(rv) || Ht$1(rv) : !1;
}
function Ci$1(rv) {
  return za(rv);
}
function ie(rv, tv) {
  tv === void 0 && (tv = void 0), H$1();
  try {
    return rv.apply(tv);
  } finally {
    W();
  }
}
function Pe$1(rv) {
  return rv[m$2];
}
var Wa = {
  has: function(rv, tv) {
    return Pe$1(rv).has_(tv);
  },
  get: function(rv, tv) {
    return Pe$1(rv).get_(tv);
  },
  set: function(rv, tv, ev) {
    var iv;
    return me(tv) ? (iv = Pe$1(rv).set_(tv, ev, !0)) != null ? iv : !0 : !1;
  },
  deleteProperty: function(rv, tv) {
    var ev;
    return me(tv) ? (ev = Pe$1(rv).delete_(tv, !0)) != null ? ev : !0 : !1;
  },
  defineProperty: function(rv, tv, ev) {
    var iv;
    return (iv = Pe$1(rv).defineProperty_(tv, ev)) != null ? iv : !0;
  },
  ownKeys: function(rv) {
    return Pe$1(rv).ownKeys_();
  },
  preventExtensions: function(rv) {
    P$1(13);
  }
};
function Ga(rv, tv) {
  var ev, iv;
  return Xn$1(), rv = at(rv, tv), (iv = (ev = rv[m$2]).proxy_) != null ? iv : ev.proxy_ = new Proxy(rv, Wa);
}
function B$1(rv) {
  return rv.interceptors_ !== void 0 && rv.interceptors_.length > 0;
}
function st(rv, tv) {
  var ev = rv.interceptors_ || (rv.interceptors_ = []);
  return ev.push(tv), Zn$1(function() {
    var iv = ev.indexOf(tv);
    iv !== -1 && ev.splice(iv, 1);
  });
}
function z$1(rv, tv) {
  var ev = Se();
  try {
    for (var iv = [].concat(rv.interceptors_ || []), ov = 0, av = iv.length; ov < av && (tv = iv[ov](tv), tv && !tv.type && P$1(14), !!tv); ov++)
      ;
    return tv;
  } finally {
    se(ev);
  }
}
function J(rv) {
  return rv.changeListeners_ !== void 0 && rv.changeListeners_.length > 0;
}
function ot(rv, tv) {
  var ev = rv.changeListeners_ || (rv.changeListeners_ = []);
  return ev.push(tv), Zn$1(function() {
    var iv = ev.indexOf(tv);
    iv !== -1 && ev.splice(iv, 1);
  });
}
function X(rv, tv) {
  var ev = Se(), iv = rv.changeListeners_;
  if (iv) {
    iv = iv.slice();
    for (var ov = 0, av = iv.length; ov < av; ov++)
      iv[ov](tv);
    se(ev);
  }
}
var nn = "splice", re = "update", Ka = 1e4, qa$1 = {
  get: function(rv, tv) {
    var ev = rv[m$2];
    return tv === m$2 ? ev : tv === "length" ? ev.getArrayLength_() : typeof tv == "string" && !isNaN(tv) ? ev.get_(parseInt(tv)) : ue(jt, tv) ? jt[tv] : rv[tv];
  },
  set: function(rv, tv, ev) {
    var iv = rv[m$2];
    return tv === "length" && iv.setArrayLength_(ev), typeof tv == "symbol" || isNaN(tv) ? rv[tv] = ev : iv.set_(parseInt(tv), ev), !0;
  },
  preventExtensions: function() {
    P$1(15);
  }
}, $r$1 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    ev === void 0 && (ev = "ObservableArray"), this.owned_ = void 0, this.legacyMode_ = void 0, this.atom_ = void 0, this.values_ = [], this.interceptors_ = void 0, this.changeListeners_ = void 0, this.enhancer_ = void 0, this.dehancer = void 0, this.proxy_ = void 0, this.lastKnownLength_ = 0, this.owned_ = ov, this.legacyMode_ = av, this.atom_ = new _e(ev), this.enhancer_ = function(sv, lv) {
      return iv(sv, lv, "ObservableArray[..]");
    };
  }
  var tv = rv.prototype;
  return tv.dehanceValue_ = function(ev) {
    return this.dehancer !== void 0 ? this.dehancer(ev) : ev;
  }, tv.dehanceValues_ = function(ev) {
    return this.dehancer !== void 0 && ev.length > 0 ? ev.map(this.dehancer) : ev;
  }, tv.intercept_ = function(ev) {
    return st(this, ev);
  }, tv.observe_ = function(ev, iv) {
    return iv === void 0 && (iv = !1), iv && ev({
      observableKind: "array",
      object: this.proxy_,
      debugObjectName: this.atom_.name_,
      type: "splice",
      index: 0,
      added: this.values_.slice(),
      addedCount: this.values_.length,
      removed: [],
      removedCount: 0
    }), ot(this, ev);
  }, tv.getArrayLength_ = function() {
    return this.atom_.reportObserved(), this.values_.length;
  }, tv.setArrayLength_ = function(ev) {
    (typeof ev != "number" || isNaN(ev) || ev < 0) && P$1("Out of range: " + ev);
    var iv = this.values_.length;
    if (ev !== iv)
      if (ev > iv) {
        for (var ov = new Array(ev - iv), av = 0; av < ev - iv; av++)
          ov[av] = void 0;
        this.spliceWithArray_(iv, 0, ov);
      } else
        this.spliceWithArray_(ev, iv - ev);
  }, tv.updateArrayLength_ = function(ev, iv) {
    ev !== this.lastKnownLength_ && P$1(16), this.lastKnownLength_ += iv, this.legacyMode_ && iv > 0 && Ni$1(ev + iv + 1);
  }, tv.spliceWithArray_ = function(ev, iv, ov) {
    var av = this;
    this.atom_;
    var sv = this.values_.length;
    if (ev === void 0 ? ev = 0 : ev > sv ? ev = sv : ev < 0 && (ev = Math.max(0, sv + ev)), arguments.length === 1 ? iv = sv - ev : iv == null ? iv = 0 : iv = Math.max(0, Math.min(iv, sv - ev)), ov === void 0 && (ov = cr$1), B$1(this)) {
      var lv = z$1(this, {
        object: this.proxy_,
        type: nn,
        index: ev,
        removedCount: iv,
        added: ov
      });
      if (!lv)
        return cr$1;
      iv = lv.removedCount, ov = lv.added;
    }
    if (ov = ov.length === 0 ? ov : ov.map(function(dv) {
      return av.enhancer_(dv, void 0);
    }), this.legacyMode_) {
      var uv = ov.length - iv;
      this.updateArrayLength_(sv, uv);
    }
    var cv = this.spliceItemsIntoValues_(ev, iv, ov);
    return (iv !== 0 || ov.length !== 0) && this.notifyArraySplice_(ev, ov, cv), this.dehanceValues_(cv);
  }, tv.spliceItemsIntoValues_ = function(ev, iv, ov) {
    if (ov.length < Ka) {
      var av;
      return (av = this.values_).splice.apply(av, [ev, iv].concat(ov));
    } else {
      var sv = this.values_.slice(ev, ev + iv), lv = this.values_.slice(ev + iv);
      this.values_.length += ov.length - iv;
      for (var uv = 0; uv < ov.length; uv++)
        this.values_[ev + uv] = ov[uv];
      for (var cv = 0; cv < lv.length; cv++)
        this.values_[ev + ov.length + cv] = lv[cv];
      return sv;
    }
  }, tv.notifyArrayChildUpdate_ = function(ev, iv, ov) {
    var av = !this.owned_ && Ke(), sv = J(this), lv = sv || av ? {
      observableKind: "array",
      object: this.proxy_,
      type: re,
      debugObjectName: this.atom_.name_,
      index: ev,
      newValue: iv,
      oldValue: ov
    } : null;
    this.atom_.reportChanged(), sv && X(this, lv);
  }, tv.notifyArraySplice_ = function(ev, iv, ov) {
    var av = !this.owned_ && Ke(), sv = J(this), lv = sv || av ? {
      observableKind: "array",
      object: this.proxy_,
      debugObjectName: this.atom_.name_,
      type: nn,
      index: ev,
      removed: ov,
      added: iv,
      removedCount: ov.length,
      addedCount: iv.length
    } : null;
    this.atom_.reportChanged(), sv && X(this, lv);
  }, tv.get_ = function(ev) {
    if (this.legacyMode_ && ev >= this.values_.length) {
      console.warn("[mobx] Out of bounds read: " + ev);
      return;
    }
    return this.atom_.reportObserved(), this.dehanceValue_(this.values_[ev]);
  }, tv.set_ = function(ev, iv) {
    var ov = this.values_;
    if (this.legacyMode_ && ev > ov.length && P$1(17, ev, ov.length), ev < ov.length) {
      this.atom_;
      var av = ov[ev];
      if (B$1(this)) {
        var sv = z$1(this, {
          type: re,
          object: this.proxy_,
          // since "this" is the real array we need to pass its proxy
          index: ev,
          newValue: iv
        });
        if (!sv)
          return;
        iv = sv.newValue;
      }
      iv = this.enhancer_(iv, av);
      var lv = iv !== av;
      lv && (ov[ev] = iv, this.notifyArrayChildUpdate_(ev, iv, av));
    } else {
      for (var uv = new Array(ev + 1 - ov.length), cv = 0; cv < uv.length - 1; cv++)
        uv[cv] = void 0;
      uv[uv.length - 1] = iv, this.spliceWithArray_(ov.length, 0, uv);
    }
  }, rv;
}();
function Ja$1(rv, tv, ev, iv) {
  return ev === void 0 && (ev = "ObservableArray"), iv === void 0 && (iv = !1), Xn$1(), ze(function() {
    var ov = new $r$1(ev, tv, iv, !1);
    Qn$1(ov.values_, m$2, ov);
    var av = new Proxy(ov.values_, qa$1);
    return ov.proxy_ = av, rv && rv.length && ov.spliceWithArray_(0, 0, rv), av;
  });
}
var jt = {
  clear: function() {
    return this.splice(0);
  },
  replace: function(rv) {
    var tv = this[m$2];
    return tv.spliceWithArray_(0, tv.values_.length, rv);
  },
  // Used by JSON.stringify
  toJSON: function() {
    return this.slice();
  },
  /*
   * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)
   * since these functions alter the inner structure of the array, the have side effects.
   * Because the have side effects, they should not be used in computed function,
   * and for that reason the do not call dependencyState.notifyObserved
   */
  splice: function(rv, tv) {
    for (var ev = arguments.length, iv = new Array(ev > 2 ? ev - 2 : 0), ov = 2; ov < ev; ov++)
      iv[ov - 2] = arguments[ov];
    var av = this[m$2];
    switch (arguments.length) {
      case 0:
        return [];
      case 1:
        return av.spliceWithArray_(rv);
      case 2:
        return av.spliceWithArray_(rv, tv);
    }
    return av.spliceWithArray_(rv, tv, iv);
  },
  spliceWithArray: function(rv, tv, ev) {
    return this[m$2].spliceWithArray_(rv, tv, ev);
  },
  push: function() {
    for (var rv = this[m$2], tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return rv.spliceWithArray_(rv.values_.length, 0, ev), rv.values_.length;
  },
  pop: function() {
    return this.splice(Math.max(this[m$2].values_.length - 1, 0), 1)[0];
  },
  shift: function() {
    return this.splice(0, 1)[0];
  },
  unshift: function() {
    for (var rv = this[m$2], tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return rv.spliceWithArray_(0, 0, ev), rv.values_.length;
  },
  reverse: function() {
    return v$1.trackingDerivation && P$1(37, "reverse"), this.replace(this.slice().reverse()), this;
  },
  sort: function() {
    v$1.trackingDerivation && P$1(37, "sort");
    var rv = this.slice();
    return rv.sort.apply(rv, arguments), this.replace(rv), this;
  },
  remove: function(rv) {
    var tv = this[m$2], ev = tv.dehanceValues_(tv.values_).indexOf(rv);
    return ev > -1 ? (this.splice(ev, 1), !0) : !1;
  }
};
x$1("at", V$1);
x$1("concat", V$1);
x$1("flat", V$1);
x$1("includes", V$1);
x$1("indexOf", V$1);
x$1("join", V$1);
x$1("lastIndexOf", V$1);
x$1("slice", V$1);
x$1("toString", V$1);
x$1("toLocaleString", V$1);
x$1("toSorted", V$1);
x$1("toSpliced", V$1);
x$1("with", V$1);
x$1("every", Q);
x$1("filter", Q);
x$1("find", Q);
x$1("findIndex", Q);
x$1("findLast", Q);
x$1("findLastIndex", Q);
x$1("flatMap", Q);
x$1("forEach", Q);
x$1("map", Q);
x$1("some", Q);
x$1("toReversed", Q);
x$1("reduce", xi$1);
x$1("reduceRight", xi$1);
function x$1(rv, tv) {
  typeof Array.prototype[rv] == "function" && (jt[rv] = tv(rv));
}
function V$1(rv) {
  return function() {
    var tv = this[m$2];
    tv.atom_.reportObserved();
    var ev = tv.dehanceValues_(tv.values_);
    return ev[rv].apply(ev, arguments);
  };
}
function Q(rv) {
  return function(tv, ev) {
    var iv = this, ov = this[m$2];
    ov.atom_.reportObserved();
    var av = ov.dehanceValues_(ov.values_);
    return av[rv](function(sv, lv) {
      return tv.call(ev, sv, lv, iv);
    });
  };
}
function xi$1(rv) {
  return function() {
    var tv = this, ev = this[m$2];
    ev.atom_.reportObserved();
    var iv = ev.dehanceValues_(ev.values_), ov = arguments[0];
    return arguments[0] = function(av, sv, lv) {
      return ov(av, sv, lv, tv);
    }, iv[rv].apply(iv, arguments);
  };
}
var Xa$1 = /* @__PURE__ */ Oe("ObservableArrayAdministration", $r$1);
function Gt$1(rv) {
  return Dt(rv) && Xa$1(rv[m$2]);
}
var Za$1 = {}, ae = "add", It = "delete", Ti$1 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov) {
    var av = this;
    iv === void 0 && (iv = Ae), ov === void 0 && (ov = "ObservableMap"), this.enhancer_ = void 0, this.name_ = void 0, this[m$2] = Za$1, this.data_ = void 0, this.hasMap_ = void 0, this.keysAtom_ = void 0, this.interceptors_ = void 0, this.changeListeners_ = void 0, this.dehancer = void 0, this.enhancer_ = iv, this.name_ = ov, Z(Map) || P$1(18), ze(function() {
      av.keysAtom_ = ni("ObservableMap.keys()"), av.data_ = /* @__PURE__ */ new Map(), av.hasMap_ = /* @__PURE__ */ new Map(), ev && av.merge(ev);
    });
  }
  var tv = rv.prototype;
  return tv.has_ = function(ev) {
    return this.data_.has(ev);
  }, tv.has = function(ev) {
    var iv = this;
    if (!v$1.trackingDerivation)
      return this.has_(ev);
    var ov = this.hasMap_.get(ev);
    if (!ov) {
      var av = ov = new be(this.has_(ev), kt, "ObservableMap.key?", !1);
      this.hasMap_.set(ev, av), Si$1(av, function() {
        return iv.hasMap_.delete(ev);
      });
    }
    return ov.get();
  }, tv.set = function(ev, iv) {
    var ov = this.has_(ev);
    if (B$1(this)) {
      var av = z$1(this, {
        type: ov ? re : ae,
        object: this,
        newValue: iv,
        name: ev
      });
      if (!av)
        return this;
      iv = av.newValue;
    }
    return ov ? this.updateValue_(ev, iv) : this.addValue_(ev, iv), this;
  }, tv.delete = function(ev) {
    var iv = this;
    if (this.keysAtom_, B$1(this)) {
      var ov = z$1(this, {
        type: It,
        object: this,
        name: ev
      });
      if (!ov)
        return !1;
    }
    if (this.has_(ev)) {
      var av = Ke(), sv = J(this), lv = sv || av ? {
        observableKind: "map",
        debugObjectName: this.name_,
        type: It,
        object: this,
        oldValue: this.data_.get(ev).value_,
        name: ev
      } : null;
      return ie(function() {
        var uv;
        iv.keysAtom_.reportChanged(), (uv = iv.hasMap_.get(ev)) == null || uv.setNewValue_(!1);
        var cv = iv.data_.get(ev);
        cv.setNewValue_(void 0), iv.data_.delete(ev);
      }), sv && X(this, lv), !0;
    }
    return !1;
  }, tv.updateValue_ = function(ev, iv) {
    var ov = this.data_.get(ev);
    if (iv = ov.prepareNewValue_(iv), iv !== v$1.UNCHANGED) {
      var av = Ke(), sv = J(this), lv = sv || av ? {
        observableKind: "map",
        debugObjectName: this.name_,
        type: re,
        object: this,
        oldValue: ov.value_,
        name: ev,
        newValue: iv
      } : null;
      ov.setNewValue_(iv), sv && X(this, lv);
    }
  }, tv.addValue_ = function(ev, iv) {
    var ov = this;
    this.keysAtom_, ie(function() {
      var uv, cv = new be(iv, ov.enhancer_, "ObservableMap.key", !1);
      ov.data_.set(ev, cv), iv = cv.value_, (uv = ov.hasMap_.get(ev)) == null || uv.setNewValue_(!0), ov.keysAtom_.reportChanged();
    });
    var av = Ke(), sv = J(this), lv = sv || av ? {
      observableKind: "map",
      debugObjectName: this.name_,
      type: ae,
      object: this,
      name: ev,
      newValue: iv
    } : null;
    sv && X(this, lv);
  }, tv.get = function(ev) {
    return this.has(ev) ? this.dehanceValue_(this.data_.get(ev).get()) : this.dehanceValue_(void 0);
  }, tv.dehanceValue_ = function(ev) {
    return this.dehancer !== void 0 ? this.dehancer(ev) : ev;
  }, tv.keys = function() {
    return this.keysAtom_.reportObserved(), this.data_.keys();
  }, tv.values = function() {
    var ev = this, iv = this.keys();
    return Qe({
      next: function() {
        var ov = iv.next(), av = ov.done, sv = ov.value;
        return {
          done: av,
          value: av ? void 0 : ev.get(sv)
        };
      }
    });
  }, tv.entries = function() {
    var ev = this, iv = this.keys();
    return Qe({
      next: function() {
        var ov = iv.next(), av = ov.done, sv = ov.value;
        return {
          done: av,
          value: av ? void 0 : [sv, ev.get(sv)]
        };
      }
    });
  }, tv[Symbol.iterator] = function() {
    return this.entries();
  }, tv.forEach = function(ev, iv) {
    for (var ov = Te(this), av; !(av = ov()).done; ) {
      var sv = av.value, lv = sv[0], uv = sv[1];
      ev.call(iv, uv, lv, this);
    }
  }, tv.merge = function(ev) {
    var iv = this;
    return Ee(ev) && (ev = new Map(ev)), ie(function() {
      le(ev) ? wo$1(ev).forEach(function(ov) {
        return iv.set(ov, ev[ov]);
      }) : Array.isArray(ev) ? ev.forEach(function(ov) {
        var av = ov[0], sv = ov[1];
        return iv.set(av, sv);
      }) : De(ev) ? (Ao$1(ev) || P$1(19, ev), ev.forEach(function(ov, av) {
        return iv.set(av, ov);
      })) : ev != null && P$1(20, ev);
    }), this;
  }, tv.clear = function() {
    var ev = this;
    ie(function() {
      di$1(function() {
        for (var iv = Te(ev.keys()), ov; !(ov = iv()).done; ) {
          var av = ov.value;
          ev.delete(av);
        }
      });
    });
  }, tv.replace = function(ev) {
    var iv = this;
    return ie(function() {
      for (var ov = Ya(ev), av = /* @__PURE__ */ new Map(), sv = !1, lv = Te(iv.data_.keys()), uv; !(uv = lv()).done; ) {
        var cv = uv.value;
        if (!ov.has(cv)) {
          var dv = iv.delete(cv);
          if (dv)
            sv = !0;
          else {
            var hv = iv.data_.get(cv);
            av.set(cv, hv);
          }
        }
      }
      for (var pv = Te(ov.entries()), yv; !(yv = pv()).done; ) {
        var Sv = yv.value, _v = Sv[0], Ev = Sv[1], wv = iv.data_.has(_v);
        if (iv.set(_v, Ev), iv.data_.has(_v)) {
          var xv = iv.data_.get(_v);
          av.set(_v, xv), wv || (sv = !0);
        }
      }
      if (!sv)
        if (iv.data_.size !== av.size)
          iv.keysAtom_.reportChanged();
        else
          for (var Cv = iv.data_.keys(), Av = av.keys(), Ov = Cv.next(), Lv = Av.next(); !Ov.done; ) {
            if (Ov.value !== Lv.value) {
              iv.keysAtom_.reportChanged();
              break;
            }
            Ov = Cv.next(), Lv = Av.next();
          }
      iv.data_ = av;
    }), this;
  }, tv.toString = function() {
    return "[object ObservableMap]";
  }, tv.toJSON = function() {
    return Array.from(this);
  }, tv.observe_ = function(ev, iv) {
    return ot(this, ev);
  }, tv.intercept_ = function(ev) {
    return st(this, ev);
  }, ke(rv, [{
    key: "size",
    get: function() {
      return this.keysAtom_.reportObserved(), this.data_.size;
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Map";
    }
  }]);
}(), Ee = /* @__PURE__ */ Oe("ObservableMap", Ti$1);
function Ya(rv) {
  if (De(rv) || Ee(rv))
    return rv;
  if (Array.isArray(rv))
    return new Map(rv);
  if (le(rv)) {
    var tv = /* @__PURE__ */ new Map();
    for (var ev in rv)
      tv.set(ev, rv[ev]);
    return tv;
  } else
    return P$1(21, rv);
}
var Qa$1 = {}, Ri$1 = /* @__PURE__ */ function() {
  function rv(ev, iv, ov) {
    var av = this;
    iv === void 0 && (iv = Ae), ov === void 0 && (ov = "ObservableSet"), this.name_ = void 0, this[m$2] = Qa$1, this.data_ = /* @__PURE__ */ new Set(), this.atom_ = void 0, this.changeListeners_ = void 0, this.interceptors_ = void 0, this.dehancer = void 0, this.enhancer_ = void 0, this.name_ = ov, Z(Set) || P$1(22), this.enhancer_ = function(sv, lv) {
      return iv(sv, lv, ov);
    }, ze(function() {
      av.atom_ = ni(av.name_), ev && av.replace(ev);
    });
  }
  var tv = rv.prototype;
  return tv.dehanceValue_ = function(ev) {
    return this.dehancer !== void 0 ? this.dehancer(ev) : ev;
  }, tv.clear = function() {
    var ev = this;
    ie(function() {
      di$1(function() {
        for (var iv = Te(ev.data_.values()), ov; !(ov = iv()).done; ) {
          var av = ov.value;
          ev.delete(av);
        }
      });
    });
  }, tv.forEach = function(ev, iv) {
    for (var ov = Te(this), av; !(av = ov()).done; ) {
      var sv = av.value;
      ev.call(iv, sv, sv, this);
    }
  }, tv.add = function(ev) {
    var iv = this;
    if (this.atom_, B$1(this)) {
      var ov = z$1(this, {
        type: ae,
        object: this,
        newValue: ev
      });
      if (!ov)
        return this;
    }
    if (!this.has(ev)) {
      ie(function() {
        iv.data_.add(iv.enhancer_(ev, void 0)), iv.atom_.reportChanged();
      });
      var av = !1, sv = J(this), lv = sv || av ? {
        observableKind: "set",
        debugObjectName: this.name_,
        type: ae,
        object: this,
        newValue: ev
      } : null;
      sv && X(this, lv);
    }
    return this;
  }, tv.delete = function(ev) {
    var iv = this;
    if (B$1(this)) {
      var ov = z$1(this, {
        type: It,
        object: this,
        oldValue: ev
      });
      if (!ov)
        return !1;
    }
    if (this.has(ev)) {
      var av = !1, sv = J(this), lv = sv || av ? {
        observableKind: "set",
        debugObjectName: this.name_,
        type: It,
        object: this,
        oldValue: ev
      } : null;
      return ie(function() {
        iv.atom_.reportChanged(), iv.data_.delete(ev);
      }), sv && X(this, lv), !0;
    }
    return !1;
  }, tv.has = function(ev) {
    return this.atom_.reportObserved(), this.data_.has(this.dehanceValue_(ev));
  }, tv.entries = function() {
    var ev = 0, iv = Array.from(this.keys()), ov = Array.from(this.values());
    return Qe({
      next: function() {
        var av = ev;
        return ev += 1, av < ov.length ? {
          value: [iv[av], ov[av]],
          done: !1
        } : {
          done: !0
        };
      }
    });
  }, tv.keys = function() {
    return this.values();
  }, tv.values = function() {
    this.atom_.reportObserved();
    var ev = this, iv = 0, ov = Array.from(this.data_.values());
    return Qe({
      next: function() {
        return iv < ov.length ? {
          value: ev.dehanceValue_(ov[iv++]),
          done: !1
        } : {
          done: !0
        };
      }
    });
  }, tv.intersection = function(ev) {
    if (ne(ev))
      return ev.intersection(this);
    var iv = new Set(this);
    return iv.intersection(ev);
  }, tv.union = function(ev) {
    if (ne(ev))
      return ev.union(this);
    var iv = new Set(this);
    return iv.union(ev);
  }, tv.difference = function(ev) {
    return new Set(this).difference(ev);
  }, tv.symmetricDifference = function(ev) {
    if (ne(ev))
      return ev.symmetricDifference(this);
    var iv = new Set(this);
    return iv.symmetricDifference(ev);
  }, tv.isSubsetOf = function(ev) {
    return new Set(this).isSubsetOf(ev);
  }, tv.isSupersetOf = function(ev) {
    return new Set(this).isSupersetOf(ev);
  }, tv.isDisjointFrom = function(ev) {
    if (ne(ev))
      return ev.isDisjointFrom(this);
    var iv = new Set(this);
    return iv.isDisjointFrom(ev);
  }, tv.replace = function(ev) {
    var iv = this;
    return Be(ev) && (ev = new Set(ev)), ie(function() {
      Array.isArray(ev) ? (iv.clear(), ev.forEach(function(ov) {
        return iv.add(ov);
      })) : ne(ev) ? (iv.clear(), ev.forEach(function(ov) {
        return iv.add(ov);
      })) : ev != null && P$1("Cannot initialize set from " + ev);
    }), this;
  }, tv.observe_ = function(ev, iv) {
    return ot(this, ev);
  }, tv.intercept_ = function(ev) {
    return st(this, ev);
  }, tv.toJSON = function() {
    return Array.from(this);
  }, tv.toString = function() {
    return "[object ObservableSet]";
  }, tv[Symbol.iterator] = function() {
    return this.values();
  }, ke(rv, [{
    key: "size",
    get: function() {
      return this.atom_.reportObserved(), this.data_.size;
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Set";
    }
  }]);
}(), Be = /* @__PURE__ */ Oe("ObservableSet", Ri$1), sn$1 = /* @__PURE__ */ Object.create(null), on$1 = "remove", ji = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    iv === void 0 && (iv = /* @__PURE__ */ new Map()), av === void 0 && (av = Qo$1), this.target_ = void 0, this.values_ = void 0, this.name_ = void 0, this.defaultAnnotation_ = void 0, this.keysAtom_ = void 0, this.changeListeners_ = void 0, this.interceptors_ = void 0, this.proxy_ = void 0, this.isPlainObject_ = void 0, this.appliedAnnotations_ = void 0, this.pendingKeys_ = void 0, this.target_ = ev, this.values_ = iv, this.name_ = ov, this.defaultAnnotation_ = av, this.keysAtom_ = new _e("ObservableObject.keys"), this.isPlainObject_ = le(this.target_);
  }
  var tv = rv.prototype;
  return tv.getObservablePropValue_ = function(ev) {
    return this.values_.get(ev).get();
  }, tv.setObservablePropValue_ = function(ev, iv) {
    var ov = this.values_.get(ev);
    if (ov instanceof Y)
      return ov.set(iv), !0;
    if (B$1(this)) {
      var av = z$1(this, {
        type: re,
        object: this.proxy_ || this.target_,
        name: ev,
        newValue: iv
      });
      if (!av)
        return null;
      iv = av.newValue;
    }
    if (iv = ov.prepareNewValue_(iv), iv !== v$1.UNCHANGED) {
      var sv = J(this), lv = !1, uv = sv || lv ? {
        type: re,
        observableKind: "object",
        debugObjectName: this.name_,
        object: this.proxy_ || this.target_,
        oldValue: ov.value_,
        name: ev,
        newValue: iv
      } : null;
      ov.setNewValue_(iv), sv && X(this, uv);
    }
    return !0;
  }, tv.get_ = function(ev) {
    return v$1.trackingDerivation && !ue(this.target_, ev) && this.has_(ev), this.target_[ev];
  }, tv.set_ = function(ev, iv, ov) {
    return ov === void 0 && (ov = !1), ue(this.target_, ev) ? this.values_.has(ev) ? this.setObservablePropValue_(ev, iv) : ov ? Reflect.set(this.target_, ev, iv) : (this.target_[ev] = iv, !0) : this.extend_(ev, {
      value: iv,
      enumerable: !0,
      writable: !0,
      configurable: !0
    }, this.defaultAnnotation_, ov);
  }, tv.has_ = function(ev) {
    if (!v$1.trackingDerivation)
      return ev in this.target_;
    this.pendingKeys_ || (this.pendingKeys_ = /* @__PURE__ */ new Map());
    var iv = this.pendingKeys_.get(ev);
    return iv || (iv = new be(ev in this.target_, kt, "ObservableObject.key?", !1), this.pendingKeys_.set(ev, iv)), iv.get();
  }, tv.make_ = function(ev, iv) {
    if (iv === !0 && (iv = this.defaultAnnotation_), iv !== !1) {
      if (!(ev in this.target_)) {
        var ov;
        if ((ov = this.target_[Re]) != null && ov[ev])
          return;
        P$1(1, iv.annotationType_, this.name_ + "." + ev.toString());
      }
      for (var av = this.target_; av && av !== Mt$1; ) {
        var sv = Pt$1(av, ev);
        if (sv) {
          var lv = iv.make_(this, ev, sv, av);
          if (lv === 0)
            return;
          if (lv === 1)
            break;
        }
        av = Object.getPrototypeOf(av);
      }
      un(this, iv, ev);
    }
  }, tv.extend_ = function(ev, iv, ov, av) {
    if (av === void 0 && (av = !1), ov === !0 && (ov = this.defaultAnnotation_), ov === !1)
      return this.defineProperty_(ev, iv, av);
    var sv = ov.extend_(this, ev, iv, av);
    return sv && un(this, ov, ev), sv;
  }, tv.defineProperty_ = function(ev, iv, ov) {
    ov === void 0 && (ov = !1), this.keysAtom_;
    try {
      H$1();
      var av = this.delete_(ev);
      if (!av)
        return av;
      if (B$1(this)) {
        var sv = z$1(this, {
          object: this.proxy_ || this.target_,
          name: ev,
          type: ae,
          newValue: iv.value
        });
        if (!sv)
          return null;
        var lv = sv.newValue;
        iv.value !== lv && (iv = ye({}, iv, {
          value: lv
        }));
      }
      if (ov) {
        if (!Reflect.defineProperty(this.target_, ev, iv))
          return !1;
      } else
        ee(this.target_, ev, iv);
      this.notifyPropertyAddition_(ev, iv.value);
    } finally {
      W();
    }
    return !0;
  }, tv.defineObservableProperty_ = function(ev, iv, ov, av) {
    av === void 0 && (av = !1), this.keysAtom_;
    try {
      H$1();
      var sv = this.delete_(ev);
      if (!sv)
        return sv;
      if (B$1(this)) {
        var lv = z$1(this, {
          object: this.proxy_ || this.target_,
          name: ev,
          type: ae,
          newValue: iv
        });
        if (!lv)
          return null;
        iv = lv.newValue;
      }
      var uv = an(ev), cv = {
        configurable: v$1.safeDescriptors ? this.isPlainObject_ : !0,
        enumerable: !0,
        get: uv.get,
        set: uv.set
      };
      if (av) {
        if (!Reflect.defineProperty(this.target_, ev, cv))
          return !1;
      } else
        ee(this.target_, ev, cv);
      var dv = new be(iv, ov, "ObservableObject.key", !1);
      this.values_.set(ev, dv), this.notifyPropertyAddition_(ev, dv.value_);
    } finally {
      W();
    }
    return !0;
  }, tv.defineComputedProperty_ = function(ev, iv, ov) {
    ov === void 0 && (ov = !1), this.keysAtom_;
    try {
      H$1();
      var av = this.delete_(ev);
      if (!av)
        return av;
      if (B$1(this)) {
        var sv = z$1(this, {
          object: this.proxy_ || this.target_,
          name: ev,
          type: ae,
          newValue: void 0
        });
        if (!sv)
          return null;
      }
      iv.name || (iv.name = "ObservableObject.key"), iv.context = this.proxy_ || this.target_;
      var lv = an(ev), uv = {
        configurable: v$1.safeDescriptors ? this.isPlainObject_ : !0,
        enumerable: !1,
        get: lv.get,
        set: lv.set
      };
      if (ov) {
        if (!Reflect.defineProperty(this.target_, ev, uv))
          return !1;
      } else
        ee(this.target_, ev, uv);
      this.values_.set(ev, new Y(iv)), this.notifyPropertyAddition_(ev, void 0);
    } finally {
      W();
    }
    return !0;
  }, tv.delete_ = function(ev, iv) {
    if (iv === void 0 && (iv = !1), this.keysAtom_, !ue(this.target_, ev))
      return !0;
    if (B$1(this)) {
      var ov = z$1(this, {
        object: this.proxy_ || this.target_,
        name: ev,
        type: on$1
      });
      if (!ov)
        return null;
    }
    try {
      var av;
      H$1();
      var sv = J(this), lv = !1, uv = this.values_.get(ev), cv = void 0;
      if (!uv && (sv || lv)) {
        var dv;
        cv = (dv = Pt$1(this.target_, ev)) == null ? void 0 : dv.value;
      }
      if (iv) {
        if (!Reflect.deleteProperty(this.target_, ev))
          return !1;
      } else
        delete this.target_[ev];
      if (uv && (this.values_.delete(ev), uv instanceof be && (cv = uv.value_), bi$1(uv)), this.keysAtom_.reportChanged(), (av = this.pendingKeys_) == null || (av = av.get(ev)) == null || av.set(ev in this.target_), sv || lv) {
        var hv = {
          type: on$1,
          observableKind: "object",
          object: this.proxy_ || this.target_,
          debugObjectName: this.name_,
          oldValue: cv,
          name: ev
        };
        sv && X(this, hv);
      }
    } finally {
      W();
    }
    return !0;
  }, tv.observe_ = function(ev, iv) {
    return ot(this, ev);
  }, tv.intercept_ = function(ev) {
    return st(this, ev);
  }, tv.notifyPropertyAddition_ = function(ev, iv) {
    var ov, av = J(this), sv = !1;
    if (av || sv) {
      var lv = av || sv ? {
        type: ae,
        observableKind: "object",
        debugObjectName: this.name_,
        object: this.proxy_ || this.target_,
        name: ev,
        newValue: iv
      } : null;
      av && X(this, lv);
    }
    (ov = this.pendingKeys_) == null || (ov = ov.get(ev)) == null || ov.set(!0), this.keysAtom_.reportChanged();
  }, tv.ownKeys_ = function() {
    return this.keysAtom_.reportObserved(), Sr$1(this.target_);
  }, tv.keys_ = function() {
    return this.keysAtom_.reportObserved(), Object.keys(this.target_);
  }, rv;
}();
function at(rv, tv) {
  var ev;
  if (ue(rv, m$2))
    return rv;
  var iv = (ev = tv == null ? void 0 : tv.name) != null ? ev : "ObservableObject", ov = new ji(rv, /* @__PURE__ */ new Map(), String(iv), la$1(tv));
  return Or(rv, m$2, ov), rv;
}
var eu$1 = /* @__PURE__ */ Oe("ObservableObjectAdministration", ji);
function an(rv) {
  return sn$1[rv] || (sn$1[rv] = {
    get: function() {
      return this[m$2].getObservablePropValue_(rv);
    },
    set: function(tv) {
      return this[m$2].setObservablePropValue_(rv, tv);
    }
  });
}
function Kt(rv) {
  return Dt(rv) ? eu$1(rv[m$2]) : !1;
}
function un(rv, tv, ev) {
  var iv;
  (iv = rv.target_[Re]) == null || delete iv[ev];
}
var tu$1 = /* @__PURE__ */ Li$1(0), ru$1 = /* @__PURE__ */ function() {
  var rv = !1, tv = {};
  return Object.defineProperty(tv, "0", {
    set: function() {
      rv = !0;
    }
  }), Object.create(tv)[0] = 1, rv === !1;
}(), Qt = 0, Ii$1 = function() {
};
function nu$1(rv, tv) {
  Object.setPrototypeOf ? Object.setPrototypeOf(rv.prototype, tv) : rv.prototype.__proto__ !== void 0 ? rv.prototype.__proto__ = tv : rv.prototype = tv;
}
nu$1(Ii$1, Array.prototype);
var xr$1 = /* @__PURE__ */ function(rv) {
  function tv(iv, ov, av, sv) {
    var lv;
    return av === void 0 && (av = "ObservableArray"), sv === void 0 && (sv = !1), lv = rv.call(this) || this, ze(function() {
      var uv = new $r$1(av, ov, sv, !0);
      uv.proxy_ = lv, Qn$1(lv, m$2, uv), iv && iv.length && lv.spliceWithArray(0, 0, iv), ru$1 && Object.defineProperty(lv, "0", tu$1);
    }), lv;
  }
  ri(tv, rv);
  var ev = tv.prototype;
  return ev.concat = function() {
    this[m$2].atom_.reportObserved();
    for (var iv = arguments.length, ov = new Array(iv), av = 0; av < iv; av++)
      ov[av] = arguments[av];
    return Array.prototype.concat.apply(
      this.slice(),
      //@ts-ignore
      ov.map(function(sv) {
        return Gt$1(sv) ? sv.slice() : sv;
      })
    );
  }, ev[Symbol.iterator] = function() {
    var iv = this, ov = 0;
    return Qe({
      next: function() {
        return ov < iv.length ? {
          value: iv[ov++],
          done: !1
        } : {
          done: !0,
          value: void 0
        };
      }
    });
  }, ke(tv, [{
    key: "length",
    get: function() {
      return this[m$2].getArrayLength_();
    },
    set: function(iv) {
      this[m$2].setArrayLength_(iv);
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Array";
    }
  }]);
}(Ii$1);
Object.entries(jt).forEach(function(rv) {
  var tv = rv[0], ev = rv[1];
  tv !== "concat" && Or(xr$1.prototype, tv, ev);
});
function Li$1(rv) {
  return {
    enumerable: !1,
    configurable: !0,
    get: function() {
      return this[m$2].get_(rv);
    },
    set: function(tv) {
      this[m$2].set_(rv, tv);
    }
  };
}
function iu$1(rv) {
  ee(xr$1.prototype, "" + rv, Li$1(rv));
}
function Ni$1(rv) {
  if (rv > Qt) {
    for (var tv = Qt; tv < rv + 100; tv++)
      iu$1(tv);
    Qt = rv;
  }
}
Ni$1(1e3);
function su$1(rv, tv, ev) {
  return new xr$1(rv, tv, ev);
}
function gr(rv, tv) {
  if (typeof rv == "object" && rv !== null) {
    if (Gt$1(rv))
      return tv !== void 0 && P$1(23), rv[m$2].atom_;
    if (Be(rv))
      return rv.atom_;
    if (Ee(rv)) {
      if (tv === void 0)
        return rv.keysAtom_;
      var ev = rv.data_.get(tv) || rv.hasMap_.get(tv);
      return ev || P$1(25, tv, br$1(rv)), ev;
    }
    if (Kt(rv)) {
      if (!tv)
        return P$1(26);
      var iv = rv[m$2].values_.get(tv);
      return iv || P$1(27, tv, br$1(rv)), iv;
    }
    if (Er$1(rv) || Ht$1(rv) || Rt(rv))
      return rv;
  } else if (Z(rv) && Rt(rv[m$2]))
    return rv[m$2];
  P$1(28);
}
function ou(rv, tv) {
  if (rv || P$1(29), Er$1(rv) || Ht$1(rv) || Rt(rv) || Ee(rv) || Be(rv))
    return rv;
  if (rv[m$2])
    return rv[m$2];
  P$1(24, rv);
}
function br$1(rv, tv) {
  var ev;
  if (tv !== void 0)
    ev = gr(rv, tv);
  else {
    if (Wt$1(rv))
      return rv.name;
    Kt(rv) || Ee(rv) || Be(rv) ? ev = ou(rv) : ev = gr(rv);
  }
  return ev.name_;
}
function ze(rv) {
  var tv = Se(), ev = zt(!0);
  H$1();
  try {
    return rv();
  } finally {
    W(), Ft$1(ev), se(tv);
  }
}
var cn = Mt$1.toString;
function Tr$1(rv, tv, ev) {
  return ev === void 0 && (ev = -1), mr$1(rv, tv, ev);
}
function mr$1(rv, tv, ev, iv, ov) {
  if (rv === tv)
    return rv !== 0 || 1 / rv === 1 / tv;
  if (rv == null || tv == null)
    return !1;
  if (rv !== rv)
    return tv !== tv;
  var av = typeof rv;
  if (av !== "function" && av !== "object" && typeof tv != "object")
    return !1;
  var sv = cn.call(rv);
  if (sv !== cn.call(tv))
    return !1;
  switch (sv) {
    case "[object RegExp]":
    case "[object String]":
      return "" + rv == "" + tv;
    case "[object Number]":
      return +rv != +rv ? +tv != +tv : +rv == 0 ? 1 / +rv === 1 / tv : +rv == +tv;
    case "[object Date]":
    case "[object Boolean]":
      return +rv == +tv;
    case "[object Symbol]":
      return typeof Symbol < "u" && Symbol.valueOf.call(rv) === Symbol.valueOf.call(tv);
    case "[object Map]":
    case "[object Set]":
      ev >= 0 && ev++;
      break;
  }
  rv = ln$1(rv), tv = ln$1(tv);
  var lv = sv === "[object Array]";
  if (!lv) {
    if (typeof rv != "object" || typeof tv != "object")
      return !1;
    var uv = rv.constructor, cv = tv.constructor;
    if (uv !== cv && !(Z(uv) && uv instanceof uv && Z(cv) && cv instanceof cv) && "constructor" in rv && "constructor" in tv)
      return !1;
  }
  if (ev === 0)
    return !1;
  ev < 0 && (ev = -1), iv = iv || [], ov = ov || [];
  for (var dv = iv.length; dv--; )
    if (iv[dv] === rv)
      return ov[dv] === tv;
  if (iv.push(rv), ov.push(tv), lv) {
    if (dv = rv.length, dv !== tv.length)
      return !1;
    for (; dv--; )
      if (!mr$1(rv[dv], tv[dv], ev - 1, iv, ov))
        return !1;
  } else {
    var hv = Object.keys(rv), pv;
    if (dv = hv.length, Object.keys(tv).length !== dv)
      return !1;
    for (; dv--; )
      if (pv = hv[dv], !(ue(tv, pv) && mr$1(rv[pv], tv[pv], ev - 1, iv, ov)))
        return !1;
  }
  return iv.pop(), ov.pop(), !0;
}
function ln$1(rv) {
  return Gt$1(rv) ? rv.slice() : De(rv) || Ee(rv) || ne(rv) || Be(rv) ? Array.from(rv.entries()) : rv;
}
function Qe(rv) {
  return rv[Symbol.iterator] = au, rv;
}
function au() {
  return this;
}
["Symbol", "Map", "Set"].forEach(function(rv) {
  var tv = Kn$1();
  typeof tv[rv] > "u" && P$1("MobX requires global '" + rv + "' to be available or polyfilled");
});
typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ == "object" && __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({
  spy: $a$1,
  extras: {
    getDebugName: br$1
  },
  $mobx: m$2
});
const Sc = (rv, tv, ev = { fallback: null }) => {
  let iv = rv;
  tv && (iv = () => rv().then((av) => ({ default: tv(av) })));
  const ov = reactExports.lazy(iv);
  return (av) => /* @__PURE__ */ jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: ev.fallback, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ov, { ...av }) });
};
reactExports.createContext(
  void 0
);
React.use;
function Cc(rv, tv, ev) {
  reactExports.useEffect(() => {
    const iv = Array.isArray(tv) ? tv : [tv], ov = [];
    return iv.forEach((av) => {
      const sv = rv.eventBus.on(av, ev);
      ov.push(sv);
    }), () => {
      ov.forEach((av) => {
        av.off();
      });
    };
  }, []);
}
function $c$1(rv, tv = {}) {
  const { module: ev = !1, cache: iv = !0, attrs: ov = {}, enabled: av = !0 } = tv, sv = reactExports.useMemo(
    () => Tu$1(rv, iv),
    [rv, iv]
  ), [lv, uv] = reactExports.useState(sv), cv = reactExports.useMemo(
    () => ({ scripts: lv, setScripts: uv, module: ev, cache: iv, attrs: ov }),
    [lv, uv, ev, iv, ov]
  ), dv = reactExports.useCallback(
    (hv) => {
      const pv = Iu$1(cv, hv);
      pv ? ju$1(cv, pv) : Ru$1(cv, hv);
    },
    [cv]
  );
  return reactExports.useEffect(() => {
    av && sv.forEach((hv) => dv(hv.src));
  }, [sv, dv, av]), reactExports.useMemo(
    () => xu$1(rv, lv),
    [lv, rv]
  );
}
function xu$1(rv, tv) {
  var ev;
  return typeof rv == "string" ? ((ev = tv[0]) == null ? void 0 : ev.status) || "idle" : tv.map((iv) => iv.status);
}
function Tu$1(rv, tv) {
  return (Array.isArray(rv) ? rv : [rv]).map((ev) => ({
    src: Lu$1(ev, tv),
    status: "idle"
  }));
}
function Ru$1(rv, tv) {
  const { module: ev, attrs: iv } = rv, ov = document.createElement("script");
  ov.src = tv, ov.async = !0, ev && (ov.type = "module"), Object.entries(iv).forEach(
    ([av, sv]) => ov.setAttribute(av, sv)
  ), document.body.appendChild(ov), ov.addEventListener(
    "load",
    () => Le$1(rv, ov, "ready")
  ), ov.addEventListener(
    "error",
    () => Le$1(rv, ov, "error")
  ), Le$1(rv, ov, "loading");
}
function ju$1(rv, tv) {
  const ev = tv.getAttribute("data-status") || "idle";
  Le$1(rv, tv, ev), ["loading", "idle"].includes(ev) && (tv.addEventListener(
    "load",
    () => Le$1(rv, tv, "ready")
  ), tv.addEventListener(
    "error",
    () => Le$1(rv, tv, "error")
  ));
}
function Le$1(rv, tv, ev) {
  const { scripts: iv, setScripts: ov, cache: av } = rv, sv = av ? tv.src : tv.src.split("?")[0], lv = iv.find((uv) => uv.src.includes(sv));
  (lv == null ? void 0 : lv.status) !== ev && (tv.setAttribute("data-status", ev), ov((uv) => uv.map((cv) => cv.src.includes(sv) ? { ...cv, status: ev } : cv)));
}
function Iu$1(rv, tv) {
  const ev = rv.cache ? tv : tv.split("?")[0];
  return document.querySelector(`script[src*="${ev}"]`);
}
function Lu$1(rv, tv) {
  return tv ? rv : `${rv}?_c=${Date.now()}`;
}
/**
 * @license
 * Copyright 2019 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const wt$1 = globalThis, jr = wt$1.ShadowRoot && (wt$1.ShadyCSS === void 0 || wt$1.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, ki$1 = Symbol(), vn = /* @__PURE__ */ new WeakMap();
let Nu$1 = class {
  constructor(tv, ev, iv) {
    if (this._$cssResult$ = !0, iv !== ki$1)
      throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
    this.cssText = tv, this.t = ev;
  }
  get styleSheet() {
    let tv = this.o;
    const ev = this.t;
    if (jr && tv === void 0) {
      const iv = ev !== void 0 && ev.length === 1;
      iv && (tv = vn.get(ev)), tv === void 0 && ((this.o = tv = new CSSStyleSheet()).replaceSync(this.cssText), iv && vn.set(ev, tv));
    }
    return tv;
  }
  toString() {
    return this.cssText;
  }
};
const Uu$1 = (rv) => new Nu$1(typeof rv == "string" ? rv : rv + "", void 0, ki$1), Mu$1 = (rv, tv) => {
  if (jr)
    rv.adoptedStyleSheets = tv.map((ev) => ev instanceof CSSStyleSheet ? ev : ev.styleSheet);
  else
    for (const ev of tv) {
      const iv = document.createElement("style"), ov = wt$1.litNonce;
      ov !== void 0 && iv.setAttribute("nonce", ov), iv.textContent = ev.cssText, rv.appendChild(iv);
    }
}, gn$1 = jr ? (rv) => rv : (rv) => rv instanceof CSSStyleSheet ? ((tv) => {
  let ev = "";
  for (const iv of tv.cssRules)
    ev += iv.cssText;
  return Uu$1(ev);
})(rv) : rv;
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const { is: Du$1, defineProperty: ku$1, getOwnPropertyDescriptor: Vu$1, getOwnPropertyNames: Bu$1, getOwnPropertySymbols: zu$1, getPrototypeOf: Fu$1 } = Object, ce = globalThis, bn$1 = ce.trustedTypes, Hu$1 = bn$1 ? bn$1.emptyScript : "", nr = ce.reactiveElementPolyfillSupport, Je = (rv, tv) => rv, yr$1 = { toAttribute(rv, tv) {
  switch (tv) {
    case Boolean:
      rv = rv ? Hu$1 : null;
      break;
    case Object:
    case Array:
      rv = rv == null ? rv : JSON.stringify(rv);
  }
  return rv;
}, fromAttribute(rv, tv) {
  let ev = rv;
  switch (tv) {
    case Boolean:
      ev = rv !== null;
      break;
    case Number:
      ev = rv === null ? null : Number(rv);
      break;
    case Object:
    case Array:
      try {
        ev = JSON.parse(rv);
      } catch {
        ev = null;
      }
  }
  return ev;
} }, Vi$1 = (rv, tv) => !Du$1(rv, tv), mn$1 = { attribute: !0, type: String, converter: yr$1, reflect: !1, hasChanged: Vi$1 };
Symbol.metadata != null || (Symbol.metadata = Symbol("metadata")), ce.litPropertyMetadata != null || (ce.litPropertyMetadata = /* @__PURE__ */ new WeakMap());
class $e extends HTMLElement {
  static addInitializer(tv) {
    var ev;
    this._$Ei(), ((ev = this.l) != null ? ev : this.l = []).push(tv);
  }
  static get observedAttributes() {
    return this.finalize(), this._$Eh && [...this._$Eh.keys()];
  }
  static createProperty(tv, ev = mn$1) {
    if (ev.state && (ev.attribute = !1), this._$Ei(), this.elementProperties.set(tv, ev), !ev.noAccessor) {
      const iv = Symbol(), ov = this.getPropertyDescriptor(tv, iv, ev);
      ov !== void 0 && ku$1(this.prototype, tv, ov);
    }
  }
  static getPropertyDescriptor(tv, ev, iv) {
    var ov;
    const { get: av, set: sv } = (ov = Vu$1(this.prototype, tv)) != null ? ov : { get() {
      return this[ev];
    }, set(lv) {
      this[ev] = lv;
    } };
    return { get() {
      return av == null ? void 0 : av.call(this);
    }, set(lv) {
      const uv = av == null ? void 0 : av.call(this);
      sv.call(this, lv), this.requestUpdate(tv, uv, iv);
    }, configurable: !0, enumerable: !0 };
  }
  static getPropertyOptions(tv) {
    var ev;
    return (ev = this.elementProperties.get(tv)) != null ? ev : mn$1;
  }
  static _$Ei() {
    if (this.hasOwnProperty(Je("elementProperties")))
      return;
    const tv = Fu$1(this);
    tv.finalize(), tv.l !== void 0 && (this.l = [...tv.l]), this.elementProperties = new Map(tv.elementProperties);
  }
  static finalize() {
    if (this.hasOwnProperty(Je("finalized")))
      return;
    if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(Je("properties"))) {
      const ev = this.properties, iv = [...Bu$1(ev), ...zu$1(ev)];
      for (const ov of iv)
        this.createProperty(ov, ev[ov]);
    }
    const tv = this[Symbol.metadata];
    if (tv !== null) {
      const ev = litPropertyMetadata.get(tv);
      if (ev !== void 0)
        for (const [iv, ov] of ev)
          this.elementProperties.set(iv, ov);
    }
    this._$Eh = /* @__PURE__ */ new Map();
    for (const [ev, iv] of this.elementProperties) {
      const ov = this._$Eu(ev, iv);
      ov !== void 0 && this._$Eh.set(ov, ev);
    }
    this.elementStyles = this.finalizeStyles(this.styles);
  }
  static finalizeStyles(tv) {
    const ev = [];
    if (Array.isArray(tv)) {
      const iv = new Set(tv.flat(1 / 0).reverse());
      for (const ov of iv)
        ev.unshift(gn$1(ov));
    } else
      tv !== void 0 && ev.push(gn$1(tv));
    return ev;
  }
  static _$Eu(tv, ev) {
    const iv = ev.attribute;
    return iv === !1 ? void 0 : typeof iv == "string" ? iv : typeof tv == "string" ? tv.toLowerCase() : void 0;
  }
  constructor() {
    super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
  }
  _$Ev() {
    var tv;
    this._$ES = new Promise((ev) => this.enableUpdating = ev), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), (tv = this.constructor.l) == null || tv.forEach((ev) => ev(this));
  }
  addController(tv) {
    var ev, iv;
    ((ev = this._$EO) != null ? ev : this._$EO = /* @__PURE__ */ new Set()).add(tv), this.renderRoot !== void 0 && this.isConnected && ((iv = tv.hostConnected) == null || iv.call(tv));
  }
  removeController(tv) {
    var ev;
    (ev = this._$EO) == null || ev.delete(tv);
  }
  _$E_() {
    const tv = /* @__PURE__ */ new Map(), ev = this.constructor.elementProperties;
    for (const iv of ev.keys())
      this.hasOwnProperty(iv) && (tv.set(iv, this[iv]), delete this[iv]);
    tv.size > 0 && (this._$Ep = tv);
  }
  createRenderRoot() {
    var tv;
    const ev = (tv = this.shadowRoot) != null ? tv : this.attachShadow(this.constructor.shadowRootOptions);
    return Mu$1(ev, this.constructor.elementStyles), ev;
  }
  connectedCallback() {
    var tv;
    this.renderRoot != null || (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), (tv = this._$EO) == null || tv.forEach((ev) => {
      var iv;
      return (iv = ev.hostConnected) == null ? void 0 : iv.call(ev);
    });
  }
  enableUpdating(tv) {
  }
  disconnectedCallback() {
    var tv;
    (tv = this._$EO) == null || tv.forEach((ev) => {
      var iv;
      return (iv = ev.hostDisconnected) == null ? void 0 : iv.call(ev);
    });
  }
  attributeChangedCallback(tv, ev, iv) {
    this._$AK(tv, iv);
  }
  _$EC(tv, ev) {
    var iv;
    const ov = this.constructor.elementProperties.get(tv), av = this.constructor._$Eu(tv, ov);
    if (av !== void 0 && ov.reflect === !0) {
      const sv = (((iv = ov.converter) == null ? void 0 : iv.toAttribute) !== void 0 ? ov.converter : yr$1).toAttribute(ev, ov.type);
      this._$Em = tv, sv == null ? this.removeAttribute(av) : this.setAttribute(av, sv), this._$Em = null;
    }
  }
  _$AK(tv, ev) {
    var iv;
    const ov = this.constructor, av = ov._$Eh.get(tv);
    if (av !== void 0 && this._$Em !== av) {
      const sv = ov.getPropertyOptions(av), lv = typeof sv.converter == "function" ? { fromAttribute: sv.converter } : ((iv = sv.converter) == null ? void 0 : iv.fromAttribute) !== void 0 ? sv.converter : yr$1;
      this._$Em = av, this[av] = lv.fromAttribute(ev, sv.type), this._$Em = null;
    }
  }
  requestUpdate(tv, ev, iv) {
    var ov;
    if (tv !== void 0) {
      if (iv != null || (iv = this.constructor.getPropertyOptions(tv)), !((ov = iv.hasChanged) != null ? ov : Vi$1)(this[tv], ev))
        return;
      this.P(tv, ev, iv);
    }
    this.isUpdatePending === !1 && (this._$ES = this._$ET());
  }
  P(tv, ev, iv) {
    var ov;
    this._$AL.has(tv) || this._$AL.set(tv, ev), iv.reflect === !0 && this._$Em !== tv && ((ov = this._$Ej) != null ? ov : this._$Ej = /* @__PURE__ */ new Set()).add(tv);
  }
  async _$ET() {
    this.isUpdatePending = !0;
    try {
      await this._$ES;
    } catch (ev) {
      Promise.reject(ev);
    }
    const tv = this.scheduleUpdate();
    return tv != null && await tv, !this.isUpdatePending;
  }
  scheduleUpdate() {
    return this.performUpdate();
  }
  performUpdate() {
    var tv;
    if (!this.isUpdatePending)
      return;
    if (!this.hasUpdated) {
      if (this.renderRoot != null || (this.renderRoot = this.createRenderRoot()), this._$Ep) {
        for (const [av, sv] of this._$Ep)
          this[av] = sv;
        this._$Ep = void 0;
      }
      const ov = this.constructor.elementProperties;
      if (ov.size > 0)
        for (const [av, sv] of ov)
          sv.wrapped !== !0 || this._$AL.has(av) || this[av] === void 0 || this.P(av, this[av], sv);
    }
    let ev = !1;
    const iv = this._$AL;
    try {
      ev = this.shouldUpdate(iv), ev ? (this.willUpdate(iv), (tv = this._$EO) == null || tv.forEach((ov) => {
        var av;
        return (av = ov.hostUpdate) == null ? void 0 : av.call(ov);
      }), this.update(iv)) : this._$EU();
    } catch (ov) {
      throw ev = !1, this._$EU(), ov;
    }
    ev && this._$AE(iv);
  }
  willUpdate(tv) {
  }
  _$AE(tv) {
    var ev;
    (ev = this._$EO) == null || ev.forEach((iv) => {
      var ov;
      return (ov = iv.hostUpdated) == null ? void 0 : ov.call(iv);
    }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(tv)), this.updated(tv);
  }
  _$EU() {
    this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;
  }
  get updateComplete() {
    return this.getUpdateComplete();
  }
  getUpdateComplete() {
    return this._$ES;
  }
  shouldUpdate(tv) {
    return !0;
  }
  update(tv) {
    this._$Ej && (this._$Ej = this._$Ej.forEach((ev) => this._$EC(ev, this[ev]))), this._$EU();
  }
  updated(tv) {
  }
  firstUpdated(tv) {
  }
}
var xn$1;
$e.elementStyles = [], $e.shadowRootOptions = { mode: "open" }, $e[Je("elementProperties")] = /* @__PURE__ */ new Map(), $e[Je("finalized")] = /* @__PURE__ */ new Map(), nr == null || nr({ ReactiveElement: $e }), ((xn$1 = ce.reactiveElementVersions) != null ? xn$1 : ce.reactiveElementVersions = []).push("2.0.4");
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const Xe = globalThis, Lt$1 = Xe.trustedTypes, yn$1 = Lt$1 ? Lt$1.createPolicy("lit-html", { createHTML: (rv) => rv }) : void 0, Bi = "$lit$", oe$1 = `lit$${Math.random().toFixed(9).slice(2)}$`, zi = "?" + oe$1, Wu$1 = `<${zi}>`, we = document, et = () => we.createComment(""), tt = (rv) => rv === null || typeof rv != "object" && typeof rv != "function", Ir$1 = Array.isArray, Gu$1 = (rv) => Ir$1(rv) || typeof (rv == null ? void 0 : rv[Symbol.iterator]) == "function", ir = `[ 	
\f\r]`, We = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, An$1 = /-->/g, wn$1 = />/g, ve$1 = RegExp(`>|${ir}(?:([^\\s"'>=/]+)(${ir}*=${ir}*(?:[^ 	
\f\r"'\`<>=]|("|')|))|$)`, "g"), On$1 = /'/g, Sn$1 = /"/g, Fi$1 = /^(?:script|style|textarea|title)$/i, Ue = Symbol.for("lit-noChange"), I$1 = Symbol.for("lit-nothing"), En$1 = /* @__PURE__ */ new WeakMap(), ge = we.createTreeWalker(we, 129);
function Hi(rv, tv) {
  if (!Ir$1(rv) || !rv.hasOwnProperty("raw"))
    throw Error("invalid template strings array");
  return yn$1 !== void 0 ? yn$1.createHTML(tv) : tv;
}
const Ku$1 = (rv, tv) => {
  const ev = rv.length - 1, iv = [];
  let ov, av = tv === 2 ? "<svg>" : tv === 3 ? "<math>" : "", sv = We;
  for (let lv = 0; lv < ev; lv++) {
    const uv = rv[lv];
    let cv, dv, hv = -1, pv = 0;
    for (; pv < uv.length && (sv.lastIndex = pv, dv = sv.exec(uv), dv !== null); )
      pv = sv.lastIndex, sv === We ? dv[1] === "!--" ? sv = An$1 : dv[1] !== void 0 ? sv = wn$1 : dv[2] !== void 0 ? (Fi$1.test(dv[2]) && (ov = RegExp("</" + dv[2], "g")), sv = ve$1) : dv[3] !== void 0 && (sv = ve$1) : sv === ve$1 ? dv[0] === ">" ? (sv = ov ?? We, hv = -1) : dv[1] === void 0 ? hv = -2 : (hv = sv.lastIndex - dv[2].length, cv = dv[1], sv = dv[3] === void 0 ? ve$1 : dv[3] === '"' ? Sn$1 : On$1) : sv === Sn$1 || sv === On$1 ? sv = ve$1 : sv === An$1 || sv === wn$1 ? sv = We : (sv = ve$1, ov = void 0);
    const yv = sv === ve$1 && rv[lv + 1].startsWith("/>") ? " " : "";
    av += sv === We ? uv + Wu$1 : hv >= 0 ? (iv.push(cv), uv.slice(0, hv) + Bi + uv.slice(hv) + oe$1 + yv) : uv + oe$1 + (hv === -2 ? lv : yv);
  }
  return [Hi(rv, av + (rv[ev] || "<?>") + (tv === 2 ? "</svg>" : tv === 3 ? "</math>" : "")), iv];
};
class rt {
  constructor({ strings: tv, _$litType$: ev }, iv) {
    let ov;
    this.parts = [];
    let av = 0, sv = 0;
    const lv = tv.length - 1, uv = this.parts, [cv, dv] = Ku$1(tv, ev);
    if (this.el = rt.createElement(cv, iv), ge.currentNode = this.el.content, ev === 2 || ev === 3) {
      const hv = this.el.content.firstChild;
      hv.replaceWith(...hv.childNodes);
    }
    for (; (ov = ge.nextNode()) !== null && uv.length < lv; ) {
      if (ov.nodeType === 1) {
        if (ov.hasAttributes())
          for (const hv of ov.getAttributeNames())
            if (hv.endsWith(Bi)) {
              const pv = dv[sv++], yv = ov.getAttribute(hv).split(oe$1), Sv = /([.?@])?(.*)/.exec(pv);
              uv.push({ type: 1, index: av, name: Sv[2], strings: yv, ctor: Sv[1] === "." ? Ju$1 : Sv[1] === "?" ? Xu$1 : Sv[1] === "@" ? Zu$1 : qt }), ov.removeAttribute(hv);
            } else
              hv.startsWith(oe$1) && (uv.push({ type: 6, index: av }), ov.removeAttribute(hv));
        if (Fi$1.test(ov.tagName)) {
          const hv = ov.textContent.split(oe$1), pv = hv.length - 1;
          if (pv > 0) {
            ov.textContent = Lt$1 ? Lt$1.emptyScript : "";
            for (let yv = 0; yv < pv; yv++)
              ov.append(hv[yv], et()), ge.nextNode(), uv.push({ type: 2, index: ++av });
            ov.append(hv[pv], et());
          }
        }
      } else if (ov.nodeType === 8)
        if (ov.data === zi)
          uv.push({ type: 2, index: av });
        else {
          let hv = -1;
          for (; (hv = ov.data.indexOf(oe$1, hv + 1)) !== -1; )
            uv.push({ type: 7, index: av }), hv += oe$1.length - 1;
        }
      av++;
    }
  }
  static createElement(tv, ev) {
    const iv = we.createElement("template");
    return iv.innerHTML = tv, iv;
  }
}
function Me(rv, tv, ev = rv, iv) {
  var ov, av, sv;
  if (tv === Ue)
    return tv;
  let lv = iv !== void 0 ? (ov = ev.o) == null ? void 0 : ov[iv] : ev.l;
  const uv = tt(tv) ? void 0 : tv._$litDirective$;
  return (lv == null ? void 0 : lv.constructor) !== uv && ((av = lv == null ? void 0 : lv._$AO) == null || av.call(lv, !1), uv === void 0 ? lv = void 0 : (lv = new uv(rv), lv._$AT(rv, ev, iv)), iv !== void 0 ? ((sv = ev.o) != null ? sv : ev.o = [])[iv] = lv : ev.l = lv), lv !== void 0 && (tv = Me(rv, lv._$AS(rv, tv.values), lv, iv)), tv;
}
let qu$1 = class {
  constructor(tv, ev) {
    this._$AV = [], this._$AN = void 0, this._$AD = tv, this._$AM = ev;
  }
  get parentNode() {
    return this._$AM.parentNode;
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  u(tv) {
    var ev;
    const { el: { content: iv }, parts: ov } = this._$AD, av = ((ev = tv == null ? void 0 : tv.creationScope) != null ? ev : we).importNode(iv, !0);
    ge.currentNode = av;
    let sv = ge.nextNode(), lv = 0, uv = 0, cv = ov[0];
    for (; cv !== void 0; ) {
      if (lv === cv.index) {
        let dv;
        cv.type === 2 ? dv = new ut$1(sv, sv.nextSibling, this, tv) : cv.type === 1 ? dv = new cv.ctor(sv, cv.name, cv.strings, this, tv) : cv.type === 6 && (dv = new Yu$1(sv, this, tv)), this._$AV.push(dv), cv = ov[++uv];
      }
      lv !== (cv == null ? void 0 : cv.index) && (sv = ge.nextNode(), lv++);
    }
    return ge.currentNode = we, av;
  }
  p(tv) {
    let ev = 0;
    for (const iv of this._$AV)
      iv !== void 0 && (iv.strings !== void 0 ? (iv._$AI(tv, iv, ev), ev += iv.strings.length - 2) : iv._$AI(tv[ev])), ev++;
  }
}, ut$1 = class SN {
  get _$AU() {
    var tv, ev;
    return (ev = (tv = this._$AM) == null ? void 0 : tv._$AU) != null ? ev : this.v;
  }
  constructor(tv, ev, iv, ov) {
    var av;
    this.type = 2, this._$AH = I$1, this._$AN = void 0, this._$AA = tv, this._$AB = ev, this._$AM = iv, this.options = ov, this.v = (av = ov == null ? void 0 : ov.isConnected) != null ? av : !0;
  }
  get parentNode() {
    let tv = this._$AA.parentNode;
    const ev = this._$AM;
    return ev !== void 0 && (tv == null ? void 0 : tv.nodeType) === 11 && (tv = ev.parentNode), tv;
  }
  get startNode() {
    return this._$AA;
  }
  get endNode() {
    return this._$AB;
  }
  _$AI(tv, ev = this) {
    tv = Me(this, tv, ev), tt(tv) ? tv === I$1 || tv == null || tv === "" ? (this._$AH !== I$1 && this._$AR(), this._$AH = I$1) : tv !== this._$AH && tv !== Ue && this._(tv) : tv._$litType$ !== void 0 ? this.$(tv) : tv.nodeType !== void 0 ? this.T(tv) : Gu$1(tv) ? this.k(tv) : this._(tv);
  }
  O(tv) {
    return this._$AA.parentNode.insertBefore(tv, this._$AB);
  }
  T(tv) {
    this._$AH !== tv && (this._$AR(), this._$AH = this.O(tv));
  }
  _(tv) {
    this._$AH !== I$1 && tt(this._$AH) ? this._$AA.nextSibling.data = tv : this.T(we.createTextNode(tv)), this._$AH = tv;
  }
  $(tv) {
    var ev;
    const { values: iv, _$litType$: ov } = tv, av = typeof ov == "number" ? this._$AC(tv) : (ov.el === void 0 && (ov.el = rt.createElement(Hi(ov.h, ov.h[0]), this.options)), ov);
    if (((ev = this._$AH) == null ? void 0 : ev._$AD) === av)
      this._$AH.p(iv);
    else {
      const sv = new qu$1(av, this), lv = sv.u(this.options);
      sv.p(iv), this.T(lv), this._$AH = sv;
    }
  }
  _$AC(tv) {
    let ev = En$1.get(tv.strings);
    return ev === void 0 && En$1.set(tv.strings, ev = new rt(tv)), ev;
  }
  k(tv) {
    Ir$1(this._$AH) || (this._$AH = [], this._$AR());
    const ev = this._$AH;
    let iv, ov = 0;
    for (const av of tv)
      ov === ev.length ? ev.push(iv = new SN(this.O(et()), this.O(et()), this, this.options)) : iv = ev[ov], iv._$AI(av), ov++;
    ov < ev.length && (this._$AR(iv && iv._$AB.nextSibling, ov), ev.length = ov);
  }
  _$AR(tv = this._$AA.nextSibling, ev) {
    var iv;
    for ((iv = this._$AP) == null ? void 0 : iv.call(this, !1, !0, ev); tv && tv !== this._$AB; ) {
      const ov = tv.nextSibling;
      tv.remove(), tv = ov;
    }
  }
  setConnected(tv) {
    var ev;
    this._$AM === void 0 && (this.v = tv, (ev = this._$AP) == null || ev.call(this, tv));
  }
};
class qt {
  get tagName() {
    return this.element.tagName;
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  constructor(tv, ev, iv, ov, av) {
    this.type = 1, this._$AH = I$1, this._$AN = void 0, this.element = tv, this.name = ev, this._$AM = ov, this.options = av, iv.length > 2 || iv[0] !== "" || iv[1] !== "" ? (this._$AH = Array(iv.length - 1).fill(new String()), this.strings = iv) : this._$AH = I$1;
  }
  _$AI(tv, ev = this, iv, ov) {
    const av = this.strings;
    let sv = !1;
    if (av === void 0)
      tv = Me(this, tv, ev, 0), sv = !tt(tv) || tv !== this._$AH && tv !== Ue, sv && (this._$AH = tv);
    else {
      const lv = tv;
      let uv, cv;
      for (tv = av[0], uv = 0; uv < av.length - 1; uv++)
        cv = Me(this, lv[iv + uv], ev, uv), cv === Ue && (cv = this._$AH[uv]), sv || (sv = !tt(cv) || cv !== this._$AH[uv]), cv === I$1 ? tv = I$1 : tv !== I$1 && (tv += (cv ?? "") + av[uv + 1]), this._$AH[uv] = cv;
    }
    sv && !ov && this.j(tv);
  }
  j(tv) {
    tv === I$1 ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, tv ?? "");
  }
}
let Ju$1 = class extends qt {
  constructor() {
    super(...arguments), this.type = 3;
  }
  j(tv) {
    this.element[this.name] = tv === I$1 ? void 0 : tv;
  }
}, Xu$1 = class extends qt {
  constructor() {
    super(...arguments), this.type = 4;
  }
  j(tv) {
    this.element.toggleAttribute(this.name, !!tv && tv !== I$1);
  }
}, Zu$1 = class extends qt {
  constructor(tv, ev, iv, ov, av) {
    super(tv, ev, iv, ov, av), this.type = 5;
  }
  _$AI(tv, ev = this) {
    var iv;
    if ((tv = (iv = Me(this, tv, ev, 0)) != null ? iv : I$1) === Ue)
      return;
    const ov = this._$AH, av = tv === I$1 && ov !== I$1 || tv.capture !== ov.capture || tv.once !== ov.once || tv.passive !== ov.passive, sv = tv !== I$1 && (ov === I$1 || av);
    av && this.element.removeEventListener(this.name, this, ov), sv && this.element.addEventListener(this.name, this, tv), this._$AH = tv;
  }
  handleEvent(tv) {
    var ev, iv;
    typeof this._$AH == "function" ? this._$AH.call((iv = (ev = this.options) == null ? void 0 : ev.host) != null ? iv : this.element, tv) : this._$AH.handleEvent(tv);
  }
}, Yu$1 = class {
  constructor(tv, ev, iv) {
    this.element = tv, this.type = 6, this._$AN = void 0, this._$AM = ev, this.options = iv;
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  _$AI(tv) {
    Me(this, tv);
  }
};
const sr$1 = Xe.litHtmlPolyfillSupport;
var Tn$1;
sr$1 == null || sr$1(rt, ut$1), ((Tn$1 = Xe.litHtmlVersions) != null ? Tn$1 : Xe.litHtmlVersions = []).push("3.2.0");
const Lr$1 = (rv, tv, ev) => {
  var iv, ov;
  const av = (iv = ev == null ? void 0 : ev.renderBefore) != null ? iv : tv;
  let sv = av._$litPart$;
  if (sv === void 0) {
    const lv = (ov = ev == null ? void 0 : ev.renderBefore) != null ? ov : null;
    av._$litPart$ = sv = new ut$1(tv.insertBefore(et(), lv), lv, void 0, ev ?? {});
  }
  return sv._$AI(rv), sv;
};
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
let Ot$1 = class extends $e {
  constructor() {
    super(...arguments), this.renderOptions = { host: this }, this.o = void 0;
  }
  createRenderRoot() {
    var tv;
    const ev = super.createRenderRoot();
    return (tv = this.renderOptions).renderBefore != null || (tv.renderBefore = ev.firstChild), ev;
  }
  update(tv) {
    const ev = this.render();
    this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(tv), this.o = Lr$1(ev, this.renderRoot, this.renderOptions);
  }
  connectedCallback() {
    var tv;
    super.connectedCallback(), (tv = this.o) == null || tv.setConnected(!0);
  }
  disconnectedCallback() {
    var tv;
    super.disconnectedCallback(), (tv = this.o) == null || tv.setConnected(!1);
  }
  render() {
    return Ue;
  }
};
var Rn$1;
Ot$1._$litElement$ = !0, Ot$1.finalized = !0, (Rn$1 = globalThis.litElementHydrateSupport) == null || Rn$1.call(globalThis, { LitElement: Ot$1 });
const or$1 = globalThis.litElementPolyfillSupport;
or$1 == null || or$1({ LitElement: Ot$1 });
var jn;
((jn = globalThis.litElementVersions) != null ? jn : globalThis.litElementVersions = []).push("4.1.0");
var Pn$1 = ReactDOM;
Pn$1.createRoot, Pn$1.hydrateRoot;
const Gi = (rv) => rv.map((tv) => ({
  selector: tv,
  element: document.querySelector(tv)
})).find((tv) => tv.element !== null), Qu$1 = (rv, tv) => {
  const ev = new MutationObserver(() => {
    const iv = Gi(rv);
    iv && tv(iv);
  });
  return ev.observe(document.documentElement, {
    childList: !0,
    subtree: !0
  }), ev;
}, ec$1 = (rv, tv = 5e3) => {
  let ev = null, iv = null, ov;
  const av = new Promise((uv) => {
    ov = uv;
  }), sv = () => {
    ev && (ev.disconnect(), ev = null), iv !== null && (clearTimeout(iv), iv = null);
  }, lv = Gi(rv);
  return lv ? ov(lv) : ev = Qu$1(rv, ov), tv !== void 0 && (iv = setTimeout(() => {
    ov({ selector: "", element: null }), sv();
  }, tv)), { promise: av, cancel: () => {
    sv(), ov({ selector: "", element: null });
  } };
}, U = qe$1.withPrefix(G, "RuntimeUtils");
function jc$1(rv, tv, ev) {
  U.debug("Registering Lit component", { defaultRootId: tv, wcName: ev }), rv.registerComponent(tv, async (iv, ov) => {
    const av = await nc$1(iv, ev, ov);
    if (av)
      return {
        element: av,
        updateProps: (sv) => {
          qi$1(av, sv), U.debug("Updated props for Lit component", { rootId: iv, newProps: sv });
        },
        unmount: () => {
          const sv = document.getElementById(iv);
          sv ? Lr$1(null, sv) : U.debug(`Container with ID "${iv}" not found.`), U.debug("Unmounted Lit component", { rootId: iv });
        }
      };
  });
}
async function nc$1(rv, tv, ev) {
  const iv = await Ji(rv);
  if (!iv)
    return null;
  const ov = document.createElement(tv);
  return qi$1(ov, ev), Lr$1(ov, iv), U.debug("Lit component rendered", { rootId: rv, wcName: tv, props: ev }), ov;
}
function qi$1(rv, tv) {
  Object.entries(tv).forEach(([ev, iv]) => {
    ev in rv ? rv[ev] = iv : U.debug(
      `Property "${ev}" does not exist on element "${rv.tagName.toLowerCase()}"`
    );
  });
}
async function Ji(rv) {
  const { promise: tv } = ec$1([`#${rv}`]);
  try {
    const ev = await tv;
    if (!ev.element)
      throw new Error("The root element does not exist");
    return ev.element;
  } catch (ev) {
    return ic$1(ev, rv), null;
  }
}
function ic$1(rv, tv) {
  rv.message.includes("waitForElement") ? U.debug("waitForElement error", { rootId: tv, error: rv }) : U.error("Error finding container", { rootId: tv, error: rv });
}
var define_import_meta_env_default$3 = { BASE_URL: "/", MODE: "production", DEV: !1, PROD: !0, SSR: !1, STAGE: "prod" };
const { PA_AWS_REGION, PA_BACK_URL } = define_import_meta_env_default$3, environment$3 = {
  AWS: {
    region: PA_AWS_REGION
  },
  //  Back services
  apiUrls: {
    rest: PA_BACK_URL || "https://5192se1gid.execute-api.us-east-1.amazonaws.com/prod"
  },
  publicUrls: {
    wssPersonal: "wss://lf0uvwujoi.execute-api.us-east-1.amazonaws.com/prod",
    perantCdn: "https://cdn-personalshopper.nizza.com"
  },
  keysPushWeb: {
    publicKey: "BFvEbznzLLp27XEIEz2pqr54LdYqh0VcWjcLzDvEqrDgSznMX1lyJkD9GxUQuiE7FUNXT8Jf_KTjjLTPaimfapw"
  }
};
class WidgetConfig extends mv {
  constructor(tv) {
    super(tv);
  }
  get widget() {
    return this._value.widget;
  }
  get assistedSalesButton() {
    return this._value.assistedSalesButton;
  }
  get personalShopperButton() {
    return this._value.personalShopperButton;
  }
  get personalShopperCallRequest() {
    return this._value.personalShopperCallRequest;
  }
  get manualCallHandling() {
    return this._value.manualCallHandling;
  }
  static deactivateWidgetIfNeeded(tv) {
    return tv.widget && (tv.widget = !(tv.assistedSalesButton === !1 && tv.personalShopperButton === !1)), tv;
  }
  static create(tv) {
    const ev = tv.widgetConfig, iv = {
      widget: (ev == null ? void 0 : ev.widget) ?? !0,
      assistedSalesButton: (ev == null ? void 0 : ev.assistedSalesButton) ?? !!tv.assistedSalesId,
      personalShopperButton: (ev == null ? void 0 : ev.personalShopperButton) ?? !0,
      personalShopperCallRequest: (ev == null ? void 0 : ev.personalShopperCallRequest) ?? !0,
      manualCallHandling: (ev == null ? void 0 : ev.manualCallHandling) ?? !1
    };
    return new WidgetConfig(
      WidgetConfig.deactivateWidgetIfNeeded(iv)
    );
  }
  static from(tv) {
    const ev = {
      widget: tv.widget ?? !0,
      assistedSalesButton: tv.assistedSalesButton ?? !0,
      personalShopperButton: tv.personalShopperButton ?? !0,
      personalShopperCallRequest: tv.personalShopperCallRequest ?? !0,
      manualCallHandling: tv.manualCallHandling ?? !1
    };
    return new WidgetConfig(
      WidgetConfig.deactivateWidgetIfNeeded(ev)
    );
  }
}
class PerantAccount {
  constructor(tv) {
    T$(this, "root", Af$1(this));
    T$(this, "account");
    T$(this, "assistedSalesId", null);
    T$(this, "assistedSalesWidgetId", null);
    T$(this, "planType");
    T$(this, "storeName");
    T$(this, "recordMeetings", !1);
    T$(this, "urlCss", null);
    T$(this, "active", !0);
    T$(this, "modeButtonCart");
    T$(this, "dateAssignmentPlan");
    T$(this, "maxPersonal");
    T$(this, "acceptances", []);
    T$(this, "widgetConfig");
    T$(this, "urlClient");
    T$(this, "variationThumbnailName", null);
    T$(this, "host");
    T$(this, "b2b");
    T$(this, "kuikpay", !1);
    T$(this, "textClientScheduled");
    T$(this, "textNotifyClient");
    T$(this, "templateEmail");
    T$(this, "textNotifyPersonal");
    T$(this, "textCancel");
    T$(this, "urlAdmin");
    T$(this, "textJoinPersonal");
    T$(this, "termsAndConditions");
    T$(this, "selectorMiniCart", null);
    T$(this, "terminationDate", null);
    T$(this, "privacyUrl");
    this.root.setProps(tv);
  }
  static toDomain(tv) {
    const {
      assistedSalesId: ev = null,
      assistedSalesWidgetId: iv = null,
      dateAssignmentPlan: ov,
      maxPersonal: av,
      variationThumbnailName: sv = null,
      ...lv
    } = tv, uv = Array.isArray(tv.acceptances) ? tv.acceptances.map((dv) => ({ ...dv, date: new Date(dv.date) })) : [], cv = {
      ...lv,
      acceptances: uv,
      assistedSalesId: ev,
      assistedSalesWidgetId: iv,
      variationThumbnailName: sv,
      maxPersonal: Number(av),
      widgetConfig: WidgetConfig.create(tv),
      dateAssignmentPlan: new Date(ov)
    };
    return new PerantAccount(cv);
  }
  toPrimitives() {
    const {
      root: tv,
      maxPersonal: ev,
      dateAssignmentPlan: iv,
      widgetConfig: ov,
      terminationDate: av,
      ...sv
    } = this, lv = this.acceptances.map((uv) => ({
      ...uv,
      date: uv.date.valueOf()
    }));
    return {
      ...sv,
      acceptances: lv,
      widgetConfig: ov.value,
      maxPersonal: String(ev),
      dateAssignmentPlan: iv.valueOf(),
      terminationDate: av ? av.valueOf() : null
    };
  }
  update(tv) {
    this.root.setProps(tv);
  }
}
const BASE_URL = `${environment$3.apiUrls.rest}/personal/admin/account`;
class AccountRestRepository {
  async get(tv) {
    const ev = await en$3({
      url: BASE_URL,
      method: "POST",
      body: JSON.stringify({ account: tv })
    });
    return ev ? PerantAccount.toDomain(ev) : null;
  }
  async update(tv) {
    const ev = tv.toPrimitives();
    await en$3({
      url: BASE_URL,
      method: "POST",
      body: JSON.stringify({ ...ev, edit: !0 })
    });
  }
}
class AccountService {
  constructor(tv) {
    this.accountRepository = tv;
  }
  async get(tv) {
    try {
      const ev = await this.accountRepository.get(tv);
      if (!ev)
        throw new as$2(tv);
      return ev;
    } catch (ev) {
      throw new xa$3(ev);
    }
  }
  async save(tv) {
    try {
      await this.accountRepository.update(tv);
    } catch (ev) {
      throw new xa$3(ev);
    }
  }
}
const accountRepository = new AccountRestRepository(), accountService = new AccountService(accountRepository);
var AddToCartBehavior = /* @__PURE__ */ ((rv) => (rv.REDIRECT = "redirect", rv.MINI_CART = "minicart", rv))(AddToCartBehavior || {});
const EventBusWildcards = {
  ALL: "*",
  CORE: "core:**",
  UI: "ui:**",
  UTILS: "utils:**",
  ADD_TO_CART_HOOKS: "core:addToCartHooks:**",
  WIDGET: "widget:**",
  WIDGET_ADMIN: "widget-admin:**"
}, EventNames = {
  /** AddToCartHook events */
  ATCH_ACTION_EXECUTED: "core:addToCartHooks:actionExecuted"
};
function die(rv) {
  for (var tv = arguments.length, ev = new Array(tv > 1 ? tv - 1 : 0), iv = 1; iv < tv; iv++)
    ev[iv - 1] = arguments[iv];
  throw new Error(typeof rv == "number" ? "[MobX] minified error nr: " + rv + (ev.length ? " " + ev.map(String).join(",") : "") + ". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts" : "[MobX] " + rv);
}
var mockGlobal = {};
function getGlobal$1() {
  return typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : mockGlobal;
}
var assign$1 = Object.assign, getDescriptor = Object.getOwnPropertyDescriptor, defineProperty = Object.defineProperty, objectPrototype = Object.prototype, EMPTY_ARRAY = [];
Object.freeze(EMPTY_ARRAY);
var EMPTY_OBJECT = {};
Object.freeze(EMPTY_OBJECT);
var hasProxy = typeof Proxy < "u", plainObjectString = /* @__PURE__ */ Object.toString();
function assertProxies() {
  hasProxy || die("Proxy not available");
}
function once(rv) {
  var tv = !1;
  return function() {
    if (!tv)
      return tv = !0, rv.apply(this, arguments);
  };
}
var noop$2 = function() {
};
function isFunction$3(rv) {
  return typeof rv == "function";
}
function isStringish(rv) {
  var tv = typeof rv;
  switch (tv) {
    case "string":
    case "symbol":
    case "number":
      return !0;
  }
  return !1;
}
function isObject$2(rv) {
  return rv !== null && typeof rv == "object";
}
function isPlainObject$2(rv) {
  if (!isObject$2(rv))
    return !1;
  var tv = Object.getPrototypeOf(rv);
  if (tv == null)
    return !0;
  var ev = Object.hasOwnProperty.call(tv, "constructor") && tv.constructor;
  return typeof ev == "function" && ev.toString() === plainObjectString;
}
function isGenerator(rv) {
  var tv = rv == null ? void 0 : rv.constructor;
  return tv ? tv.name === "GeneratorFunction" || tv.displayName === "GeneratorFunction" : !1;
}
function addHiddenProp(rv, tv, ev) {
  defineProperty(rv, tv, {
    enumerable: !1,
    writable: !0,
    configurable: !0,
    value: ev
  });
}
function addHiddenFinalProp(rv, tv, ev) {
  defineProperty(rv, tv, {
    enumerable: !1,
    writable: !1,
    configurable: !0,
    value: ev
  });
}
function createInstanceofPredicate(rv, tv) {
  var ev = "isMobX" + rv;
  return tv.prototype[ev] = !0, function(iv) {
    return isObject$2(iv) && iv[ev] === !0;
  };
}
function isES6Map(rv) {
  return rv != null && Object.prototype.toString.call(rv) === "[object Map]";
}
function isPlainES6Map(rv) {
  var tv = Object.getPrototypeOf(rv), ev = Object.getPrototypeOf(tv), iv = Object.getPrototypeOf(ev);
  return iv === null;
}
function isES6Set(rv) {
  return rv != null && Object.prototype.toString.call(rv) === "[object Set]";
}
var hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols < "u";
function getPlainObjectKeys(rv) {
  var tv = Object.keys(rv);
  if (!hasGetOwnPropertySymbols)
    return tv;
  var ev = Object.getOwnPropertySymbols(rv);
  return ev.length ? [].concat(tv, ev.filter(function(iv) {
    return objectPrototype.propertyIsEnumerable.call(rv, iv);
  })) : tv;
}
var ownKeys$1 = typeof Reflect < "u" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function(rv) {
  return Object.getOwnPropertyNames(rv).concat(Object.getOwnPropertySymbols(rv));
} : (
  /* istanbul ignore next */
  Object.getOwnPropertyNames
);
function toPrimitive$1(rv) {
  return rv === null ? null : typeof rv == "object" ? "" + rv : rv;
}
function hasProp(rv, tv) {
  return objectPrototype.hasOwnProperty.call(rv, tv);
}
var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function(tv) {
  var ev = {};
  return ownKeys$1(tv).forEach(function(iv) {
    ev[iv] = getDescriptor(tv, iv);
  }), ev;
};
function getFlag(rv, tv) {
  return !!(rv & tv);
}
function setFlag(rv, tv, ev) {
  return ev ? rv |= tv : rv &= ~tv, rv;
}
function _arrayLikeToArray$1(rv, tv) {
  (tv == null || tv > rv.length) && (tv = rv.length);
  for (var ev = 0, iv = Array(tv); ev < tv; ev++)
    iv[ev] = rv[ev];
  return iv;
}
function _defineProperties(rv, tv) {
  for (var ev = 0; ev < tv.length; ev++) {
    var iv = tv[ev];
    iv.enumerable = iv.enumerable || !1, iv.configurable = !0, "value" in iv && (iv.writable = !0), Object.defineProperty(rv, _toPropertyKey(iv.key), iv);
  }
}
function _createClass(rv, tv, ev) {
  return tv && _defineProperties(rv.prototype, tv), Object.defineProperty(rv, "prototype", {
    writable: !1
  }), rv;
}
function _createForOfIteratorHelperLoose(rv, tv) {
  var ev = typeof Symbol < "u" && rv[Symbol.iterator] || rv["@@iterator"];
  if (ev)
    return (ev = ev.call(rv)).next.bind(ev);
  if (Array.isArray(rv) || (ev = _unsupportedIterableToArray$1(rv)) || tv) {
    ev && (rv = ev);
    var iv = 0;
    return function() {
      return iv >= rv.length ? {
        done: !0
      } : {
        done: !1,
        value: rv[iv++]
      };
    };
  }
  throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function _extends$8() {
  return _extends$8 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        ({}).hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, _extends$8.apply(null, arguments);
}
function _inheritsLoose(rv, tv) {
  rv.prototype = Object.create(tv.prototype), rv.prototype.constructor = rv, _setPrototypeOf(rv, tv);
}
function _setPrototypeOf(rv, tv) {
  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(ev, iv) {
    return ev.__proto__ = iv, ev;
  }, _setPrototypeOf(rv, tv);
}
function _toPrimitive(rv, tv) {
  if (typeof rv != "object" || !rv)
    return rv;
  var ev = rv[Symbol.toPrimitive];
  if (ev !== void 0) {
    var iv = ev.call(rv, tv);
    if (typeof iv != "object")
      return iv;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return String(rv);
}
function _toPropertyKey(rv) {
  var tv = _toPrimitive(rv, "string");
  return typeof tv == "symbol" ? tv : tv + "";
}
function _unsupportedIterableToArray$1(rv, tv) {
  if (rv) {
    if (typeof rv == "string")
      return _arrayLikeToArray$1(rv, tv);
    var ev = {}.toString.call(rv).slice(8, -1);
    return ev === "Object" && rv.constructor && (ev = rv.constructor.name), ev === "Map" || ev === "Set" ? Array.from(rv) : ev === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ev) ? _arrayLikeToArray$1(rv, tv) : void 0;
  }
}
var storedAnnotationsSymbol = /* @__PURE__ */ Symbol("mobx-stored-annotations");
function createDecoratorAnnotation(rv) {
  function tv(ev, iv) {
    if (is20223Decorator(iv))
      return rv.decorate_20223_(ev, iv);
    storeAnnotation(ev, iv, rv);
  }
  return Object.assign(tv, rv);
}
function storeAnnotation(rv, tv, ev) {
  hasProp(rv, storedAnnotationsSymbol) || addHiddenProp(rv, storedAnnotationsSymbol, _extends$8({}, rv[storedAnnotationsSymbol])), isOverride(ev) || (rv[storedAnnotationsSymbol][tv] = ev);
}
function collectStoredAnnotations(rv) {
  return hasProp(rv, storedAnnotationsSymbol) || addHiddenProp(rv, storedAnnotationsSymbol, _extends$8({}, rv[storedAnnotationsSymbol])), rv[storedAnnotationsSymbol];
}
function is20223Decorator(rv) {
  return typeof rv == "object" && typeof rv.kind == "string";
}
var $mobx = /* @__PURE__ */ Symbol("mobx administration"), Atom = /* @__PURE__ */ function() {
  function rv(ev) {
    ev === void 0 && (ev = "Atom"), this.name_ = void 0, this.flags_ = 0, this.observers_ = /* @__PURE__ */ new Set(), this.lastAccessedBy_ = 0, this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_, this.onBOL = void 0, this.onBUOL = void 0, this.name_ = ev;
  }
  var tv = rv.prototype;
  return tv.onBO = function() {
    this.onBOL && this.onBOL.forEach(function(iv) {
      return iv();
    });
  }, tv.onBUO = function() {
    this.onBUOL && this.onBUOL.forEach(function(iv) {
      return iv();
    });
  }, tv.reportObserved = function() {
    return reportObserved(this);
  }, tv.reportChanged = function() {
    startBatch(), propagateChanged(this), endBatch();
  }, tv.toString = function() {
    return this.name_;
  }, _createClass(rv, [{
    key: "isBeingObserved",
    get: function() {
      return getFlag(this.flags_, rv.isBeingObservedMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isBeingObservedMask_, iv);
    }
  }, {
    key: "isPendingUnobservation",
    get: function() {
      return getFlag(this.flags_, rv.isPendingUnobservationMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isPendingUnobservationMask_, iv);
    }
  }, {
    key: "diffValue",
    get: function() {
      return getFlag(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.diffValueMask_, iv === 1);
    }
  }]);
}();
Atom.isBeingObservedMask_ = 1;
Atom.isPendingUnobservationMask_ = 2;
Atom.diffValueMask_ = 4;
var isAtom = /* @__PURE__ */ createInstanceofPredicate("Atom", Atom);
function createAtom(rv, tv, ev) {
  tv === void 0 && (tv = noop$2), ev === void 0 && (ev = noop$2);
  var iv = new Atom(rv);
  return tv !== noop$2 && onBecomeObserved(iv, tv), ev !== noop$2 && onBecomeUnobserved(iv, ev), iv;
}
function identityComparer(rv, tv) {
  return rv === tv;
}
function structuralComparer(rv, tv) {
  return deepEqual$1(rv, tv);
}
function shallowComparer(rv, tv) {
  return deepEqual$1(rv, tv, 1);
}
function defaultComparer(rv, tv) {
  return Object.is ? Object.is(rv, tv) : rv === tv ? rv !== 0 || 1 / rv === 1 / tv : rv !== rv && tv !== tv;
}
var comparer = {
  identity: identityComparer,
  structural: structuralComparer,
  default: defaultComparer,
  shallow: shallowComparer
};
function deepEnhancer(rv, tv, ev) {
  return isObservable(rv) ? rv : Array.isArray(rv) ? observable.array(rv, {
    name: ev
  }) : isPlainObject$2(rv) ? observable.object(rv, void 0, {
    name: ev
  }) : isES6Map(rv) ? observable.map(rv, {
    name: ev
  }) : isES6Set(rv) ? observable.set(rv, {
    name: ev
  }) : typeof rv == "function" && !isAction(rv) && !isFlow(rv) ? isGenerator(rv) ? flow(rv) : autoAction(ev, rv) : rv;
}
function shallowEnhancer(rv, tv, ev) {
  if (rv == null || isObservableObject(rv) || isObservableArray(rv) || isObservableMap(rv) || isObservableSet(rv))
    return rv;
  if (Array.isArray(rv))
    return observable.array(rv, {
      name: ev,
      deep: !1
    });
  if (isPlainObject$2(rv))
    return observable.object(rv, void 0, {
      name: ev,
      deep: !1
    });
  if (isES6Map(rv))
    return observable.map(rv, {
      name: ev,
      deep: !1
    });
  if (isES6Set(rv))
    return observable.set(rv, {
      name: ev,
      deep: !1
    });
}
function referenceEnhancer(rv) {
  return rv;
}
function refStructEnhancer(rv, tv) {
  return deepEqual$1(rv, tv) ? tv : rv;
}
var OVERRIDE = "override";
function isOverride(rv) {
  return rv.annotationType_ === OVERRIDE;
}
function createActionAnnotation(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: make_$1,
    extend_: extend_$1,
    decorate_20223_: decorate_20223_$1
  };
}
function make_$1(rv, tv, ev, iv) {
  var ov;
  if ((ov = this.options_) != null && ov.bound)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
  if (iv === rv.target_)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 2;
  if (isAction(ev.value))
    return 1;
  var av = createActionDescriptor(rv, this, tv, ev, !1);
  return defineProperty(iv, tv, av), 2;
}
function extend_$1(rv, tv, ev, iv) {
  var ov = createActionDescriptor(rv, this, tv, ev);
  return rv.defineProperty_(tv, ov, iv);
}
function decorate_20223_$1(rv, tv) {
  var ev = tv.kind, iv = tv.name, ov = tv.addInitializer, av = this, sv = function(cv) {
    var dv, hv, pv, yv;
    return createAction((dv = (hv = av.options_) == null ? void 0 : hv.name) != null ? dv : iv.toString(), cv, (pv = (yv = av.options_) == null ? void 0 : yv.autoAction) != null ? pv : !1);
  };
  if (ev == "field")
    return function(uv) {
      var cv, dv = uv;
      return isAction(dv) || (dv = sv(dv)), (cv = av.options_) != null && cv.bound && (dv = dv.bind(this), dv.isMobxAction = !0), dv;
    };
  if (ev == "method") {
    var lv;
    return isAction(rv) || (rv = sv(rv)), (lv = this.options_) != null && lv.bound && ov(function() {
      var uv = this, cv = uv[iv].bind(uv);
      cv.isMobxAction = !0, uv[iv] = cv;
    }), rv;
  }
  die("Cannot apply '" + av.annotationType_ + "' to '" + String(iv) + "' (kind: " + ev + "):" + (`
'` + av.annotationType_ + "' can only be used on properties with a function value."));
}
function assertActionDescriptor(rv, tv, ev, iv) {
  tv.annotationType_, iv.value;
}
function createActionDescriptor(rv, tv, ev, iv, ov) {
  var av, sv, lv, uv, cv, dv, hv;
  ov === void 0 && (ov = globalState.safeDescriptors), assertActionDescriptor(rv, tv, ev, iv);
  var pv = iv.value;
  if ((av = tv.options_) != null && av.bound) {
    var yv;
    pv = pv.bind((yv = rv.proxy_) != null ? yv : rv.target_);
  }
  return {
    value: createAction(
      (sv = (lv = tv.options_) == null ? void 0 : lv.name) != null ? sv : ev.toString(),
      pv,
      (uv = (cv = tv.options_) == null ? void 0 : cv.autoAction) != null ? uv : !1,
      // https://github.com/mobxjs/mobx/discussions/3140
      (dv = tv.options_) != null && dv.bound ? (hv = rv.proxy_) != null ? hv : rv.target_ : void 0
    ),
    // Non-configurable for classes
    // prevents accidental field redefinition in subclass
    configurable: ov ? rv.isPlainObject_ : !0,
    // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058
    enumerable: !1,
    // Non-obsevable, therefore non-writable
    // Also prevents rewriting in subclass constructor
    writable: !ov
  };
}
function createFlowAnnotation(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: make_$2,
    extend_: extend_$2,
    decorate_20223_: decorate_20223_$2
  };
}
function make_$2(rv, tv, ev, iv) {
  var ov;
  if (iv === rv.target_)
    return this.extend_(rv, tv, ev, !1) === null ? 0 : 2;
  if ((ov = this.options_) != null && ov.bound && (!hasProp(rv.target_, tv) || !isFlow(rv.target_[tv])) && this.extend_(rv, tv, ev, !1) === null)
    return 0;
  if (isFlow(ev.value))
    return 1;
  var av = createFlowDescriptor(rv, this, tv, ev, !1, !1);
  return defineProperty(iv, tv, av), 2;
}
function extend_$2(rv, tv, ev, iv) {
  var ov, av = createFlowDescriptor(rv, this, tv, ev, (ov = this.options_) == null ? void 0 : ov.bound);
  return rv.defineProperty_(tv, av, iv);
}
function decorate_20223_$2(rv, tv) {
  var ev, iv = tv.name, ov = tv.addInitializer;
  return isFlow(rv) || (rv = flow(rv)), (ev = this.options_) != null && ev.bound && ov(function() {
    var av = this, sv = av[iv].bind(av);
    sv.isMobXFlow = !0, av[iv] = sv;
  }), rv;
}
function assertFlowDescriptor(rv, tv, ev, iv) {
  tv.annotationType_, iv.value;
}
function createFlowDescriptor(rv, tv, ev, iv, ov, av) {
  av === void 0 && (av = globalState.safeDescriptors), assertFlowDescriptor(rv, tv, ev, iv);
  var sv = iv.value;
  if (isFlow(sv) || (sv = flow(sv)), ov) {
    var lv;
    sv = sv.bind((lv = rv.proxy_) != null ? lv : rv.target_), sv.isMobXFlow = !0;
  }
  return {
    value: sv,
    // Non-configurable for classes
    // prevents accidental field redefinition in subclass
    configurable: av ? rv.isPlainObject_ : !0,
    // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058
    enumerable: !1,
    // Non-obsevable, therefore non-writable
    // Also prevents rewriting in subclass constructor
    writable: !av
  };
}
function createComputedAnnotation(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: make_$3,
    extend_: extend_$3,
    decorate_20223_: decorate_20223_$3
  };
}
function make_$3(rv, tv, ev) {
  return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
}
function extend_$3(rv, tv, ev, iv) {
  return assertComputedDescriptor(rv, this, tv, ev), rv.defineComputedProperty_(tv, _extends$8({}, this.options_, {
    get: ev.get,
    set: ev.set
  }), iv);
}
function decorate_20223_$3(rv, tv) {
  var ev = this, iv = tv.name, ov = tv.addInitializer;
  return ov(function() {
    var av = asObservableObject(this)[$mobx], sv = _extends$8({}, ev.options_, {
      get: rv,
      context: this
    });
    sv.name || (sv.name = "ObservableObject." + iv.toString()), av.values_.set(iv, new ComputedValue(sv));
  }), function() {
    return this[$mobx].getObservablePropValue_(iv);
  };
}
function assertComputedDescriptor(rv, tv, ev, iv) {
  tv.annotationType_, iv.get;
}
function createObservableAnnotation(rv, tv) {
  return {
    annotationType_: rv,
    options_: tv,
    make_: make_$4,
    extend_: extend_$4,
    decorate_20223_: decorate_20223_$4
  };
}
function make_$4(rv, tv, ev) {
  return this.extend_(rv, tv, ev, !1) === null ? 0 : 1;
}
function extend_$4(rv, tv, ev, iv) {
  var ov, av;
  return assertObservableDescriptor(rv, this), rv.defineObservableProperty_(tv, ev.value, (ov = (av = this.options_) == null ? void 0 : av.enhancer) != null ? ov : deepEnhancer, iv);
}
function decorate_20223_$4(rv, tv) {
  var ev = this, iv = tv.kind, ov = tv.name, av = /* @__PURE__ */ new WeakSet();
  function sv(lv, uv) {
    var cv, dv, hv = asObservableObject(lv)[$mobx], pv = new ObservableValue(uv, (cv = (dv = ev.options_) == null ? void 0 : dv.enhancer) != null ? cv : deepEnhancer, "ObservableObject." + ov.toString(), !1);
    hv.values_.set(ov, pv), av.add(lv);
  }
  if (iv == "accessor")
    return {
      get: function() {
        return av.has(this) || sv(this, rv.get.call(this)), this[$mobx].getObservablePropValue_(ov);
      },
      set: function(uv) {
        return av.has(this) || sv(this, uv), this[$mobx].setObservablePropValue_(ov, uv);
      },
      init: function(uv) {
        return av.has(this) || sv(this, uv), uv;
      }
    };
}
function assertObservableDescriptor(rv, tv, ev, iv) {
  tv.annotationType_;
}
var AUTO = "true", autoAnnotation = /* @__PURE__ */ createAutoAnnotation();
function createAutoAnnotation(rv) {
  return {
    annotationType_: AUTO,
    options_: rv,
    make_: make_$5,
    extend_: extend_$5,
    decorate_20223_: decorate_20223_$5
  };
}
function make_$5(rv, tv, ev, iv) {
  var ov, av;
  if (ev.get)
    return computed.make_(rv, tv, ev, iv);
  if (ev.set) {
    var sv = createAction(tv.toString(), ev.set);
    return iv === rv.target_ ? rv.defineProperty_(tv, {
      configurable: globalState.safeDescriptors ? rv.isPlainObject_ : !0,
      set: sv
    }) === null ? 0 : 2 : (defineProperty(iv, tv, {
      configurable: !0,
      set: sv
    }), 2);
  }
  if (iv !== rv.target_ && typeof ev.value == "function") {
    var lv;
    if (isGenerator(ev.value)) {
      var uv, cv = (uv = this.options_) != null && uv.autoBind ? flow.bound : flow;
      return cv.make_(rv, tv, ev, iv);
    }
    var dv = (lv = this.options_) != null && lv.autoBind ? autoAction.bound : autoAction;
    return dv.make_(rv, tv, ev, iv);
  }
  var hv = ((ov = this.options_) == null ? void 0 : ov.deep) === !1 ? observable.ref : observable;
  if (typeof ev.value == "function" && (av = this.options_) != null && av.autoBind) {
    var pv;
    ev.value = ev.value.bind((pv = rv.proxy_) != null ? pv : rv.target_);
  }
  return hv.make_(rv, tv, ev, iv);
}
function extend_$5(rv, tv, ev, iv) {
  var ov, av;
  if (ev.get)
    return computed.extend_(rv, tv, ev, iv);
  if (ev.set)
    return rv.defineProperty_(tv, {
      configurable: globalState.safeDescriptors ? rv.isPlainObject_ : !0,
      set: createAction(tv.toString(), ev.set)
    }, iv);
  if (typeof ev.value == "function" && (ov = this.options_) != null && ov.autoBind) {
    var sv;
    ev.value = ev.value.bind((sv = rv.proxy_) != null ? sv : rv.target_);
  }
  var lv = ((av = this.options_) == null ? void 0 : av.deep) === !1 ? observable.ref : observable;
  return lv.extend_(rv, tv, ev, iv);
}
function decorate_20223_$5(rv, tv) {
  die("'" + this.annotationType_ + "' cannot be used as a decorator");
}
var OBSERVABLE = "observable", OBSERVABLE_REF = "observable.ref", OBSERVABLE_SHALLOW = "observable.shallow", OBSERVABLE_STRUCT = "observable.struct", defaultCreateObservableOptions = {
  deep: !0,
  name: void 0,
  defaultDecorator: void 0,
  proxy: !0
};
Object.freeze(defaultCreateObservableOptions);
function asCreateObservableOptions(rv) {
  return rv || defaultCreateObservableOptions;
}
var observableAnnotation = /* @__PURE__ */ createObservableAnnotation(OBSERVABLE), observableRefAnnotation = /* @__PURE__ */ createObservableAnnotation(OBSERVABLE_REF, {
  enhancer: referenceEnhancer
}), observableShallowAnnotation = /* @__PURE__ */ createObservableAnnotation(OBSERVABLE_SHALLOW, {
  enhancer: shallowEnhancer
}), observableStructAnnotation = /* @__PURE__ */ createObservableAnnotation(OBSERVABLE_STRUCT, {
  enhancer: refStructEnhancer
}), observableDecoratorAnnotation = /* @__PURE__ */ createDecoratorAnnotation(observableAnnotation);
function getEnhancerFromOptions(rv) {
  return rv.deep === !0 ? deepEnhancer : rv.deep === !1 ? referenceEnhancer : getEnhancerFromAnnotation(rv.defaultDecorator);
}
function getAnnotationFromOptions(rv) {
  var tv;
  return rv ? (tv = rv.defaultDecorator) != null ? tv : createAutoAnnotation(rv) : void 0;
}
function getEnhancerFromAnnotation(rv) {
  var tv, ev;
  return rv && (tv = (ev = rv.options_) == null ? void 0 : ev.enhancer) != null ? tv : deepEnhancer;
}
function createObservable(rv, tv, ev) {
  if (is20223Decorator(tv))
    return observableAnnotation.decorate_20223_(rv, tv);
  if (isStringish(tv)) {
    storeAnnotation(rv, tv, observableAnnotation);
    return;
  }
  return isObservable(rv) ? rv : isPlainObject$2(rv) ? observable.object(rv, tv, ev) : Array.isArray(rv) ? observable.array(rv, tv) : isES6Map(rv) ? observable.map(rv, tv) : isES6Set(rv) ? observable.set(rv, tv) : typeof rv == "object" && rv !== null ? rv : observable.box(rv, tv);
}
assign$1(createObservable, observableDecoratorAnnotation);
var observableFactories = {
  box: function(tv, ev) {
    var iv = asCreateObservableOptions(ev);
    return new ObservableValue(tv, getEnhancerFromOptions(iv), iv.name, !0, iv.equals);
  },
  array: function(tv, ev) {
    var iv = asCreateObservableOptions(ev);
    return (globalState.useProxies === !1 || iv.proxy === !1 ? createLegacyArray : createObservableArray)(tv, getEnhancerFromOptions(iv), iv.name);
  },
  map: function(tv, ev) {
    var iv = asCreateObservableOptions(ev);
    return new ObservableMap(tv, getEnhancerFromOptions(iv), iv.name);
  },
  set: function(tv, ev) {
    var iv = asCreateObservableOptions(ev);
    return new ObservableSet(tv, getEnhancerFromOptions(iv), iv.name);
  },
  object: function(tv, ev, iv) {
    return initObservable(function() {
      return extendObservable(globalState.useProxies === !1 || (iv == null ? void 0 : iv.proxy) === !1 ? asObservableObject({}, iv) : asDynamicObservableObject({}, iv), tv, ev);
    });
  },
  ref: /* @__PURE__ */ createDecoratorAnnotation(observableRefAnnotation),
  shallow: /* @__PURE__ */ createDecoratorAnnotation(observableShallowAnnotation),
  deep: observableDecoratorAnnotation,
  struct: /* @__PURE__ */ createDecoratorAnnotation(observableStructAnnotation)
}, observable = /* @__PURE__ */ assign$1(createObservable, observableFactories), COMPUTED = "computed", COMPUTED_STRUCT = "computed.struct", computedAnnotation = /* @__PURE__ */ createComputedAnnotation(COMPUTED), computedStructAnnotation = /* @__PURE__ */ createComputedAnnotation(COMPUTED_STRUCT, {
  equals: comparer.structural
}), computed = function(tv, ev) {
  if (is20223Decorator(ev))
    return computedAnnotation.decorate_20223_(tv, ev);
  if (isStringish(ev))
    return storeAnnotation(tv, ev, computedAnnotation);
  if (isPlainObject$2(tv))
    return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, tv));
  var iv = isPlainObject$2(ev) ? ev : {};
  return iv.get = tv, iv.name || (iv.name = tv.name || ""), new ComputedValue(iv);
};
Object.assign(computed, computedAnnotation);
computed.struct = /* @__PURE__ */ createDecoratorAnnotation(computedStructAnnotation);
var _getDescriptor$config, _getDescriptor, currentActionId = 0, nextActionId = 1, isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /* @__PURE__ */ getDescriptor(function() {
}, "name")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : !1, tmpNameDescriptor = {
  value: "action",
  configurable: !0,
  writable: !1,
  enumerable: !1
};
function createAction(rv, tv, ev, iv) {
  ev === void 0 && (ev = !1);
  function ov() {
    return executeAction(rv, ev, tv, iv || this, arguments);
  }
  return ov.isMobxAction = !0, ov.toString = function() {
    return tv.toString();
  }, isFunctionNameConfigurable && (tmpNameDescriptor.value = rv, defineProperty(ov, "name", tmpNameDescriptor)), ov;
}
function executeAction(rv, tv, ev, iv, ov) {
  var av = _startAction(rv, tv);
  try {
    return ev.apply(iv, ov);
  } catch (sv) {
    throw av.error_ = sv, sv;
  } finally {
    _endAction(av);
  }
}
function _startAction(rv, tv, ev, iv) {
  var ov = !1, av = 0, sv = globalState.trackingDerivation, lv = !tv || !sv;
  startBatch();
  var uv = globalState.allowStateChanges;
  lv && (untrackedStart(), uv = allowStateChangesStart(!0));
  var cv = allowStateReadsStart(!0), dv = {
    runAsAction_: lv,
    prevDerivation_: sv,
    prevAllowStateChanges_: uv,
    prevAllowStateReads_: cv,
    notifySpy_: ov,
    startTime_: av,
    actionId_: nextActionId++,
    parentActionId_: currentActionId
  };
  return currentActionId = dv.actionId_, dv;
}
function _endAction(rv) {
  currentActionId !== rv.actionId_ && die(30), currentActionId = rv.parentActionId_, rv.error_ !== void 0 && (globalState.suppressReactionErrors = !0), allowStateChangesEnd(rv.prevAllowStateChanges_), allowStateReadsEnd(rv.prevAllowStateReads_), endBatch(), rv.runAsAction_ && untrackedEnd(rv.prevDerivation_), globalState.suppressReactionErrors = !1;
}
function allowStateChanges(rv, tv) {
  var ev = allowStateChangesStart(rv);
  try {
    return tv();
  } finally {
    allowStateChangesEnd(ev);
  }
}
function allowStateChangesStart(rv) {
  var tv = globalState.allowStateChanges;
  return globalState.allowStateChanges = rv, tv;
}
function allowStateChangesEnd(rv) {
  globalState.allowStateChanges = rv;
}
var ObservableValue = /* @__PURE__ */ function(rv) {
  function tv(iv, ov, av, sv, lv) {
    var uv;
    return av === void 0 && (av = "ObservableValue"), lv === void 0 && (lv = comparer.default), uv = rv.call(this, av) || this, uv.enhancer = void 0, uv.name_ = void 0, uv.equals = void 0, uv.hasUnreportedChange_ = !1, uv.interceptors_ = void 0, uv.changeListeners_ = void 0, uv.value_ = void 0, uv.dehancer = void 0, uv.enhancer = ov, uv.name_ = av, uv.equals = lv, uv.value_ = ov(iv, void 0, av), uv;
  }
  _inheritsLoose(tv, rv);
  var ev = tv.prototype;
  return ev.dehanceValue = function(ov) {
    return this.dehancer !== void 0 ? this.dehancer(ov) : ov;
  }, ev.set = function(ov) {
    this.value_, ov = this.prepareNewValue_(ov), ov !== globalState.UNCHANGED && this.setNewValue_(ov);
  }, ev.prepareNewValue_ = function(ov) {
    if (hasInterceptors(this)) {
      var av = interceptChange(this, {
        object: this,
        type: UPDATE,
        newValue: ov
      });
      if (!av)
        return globalState.UNCHANGED;
      ov = av.newValue;
    }
    return ov = this.enhancer(ov, this.value_, this.name_), this.equals(this.value_, ov) ? globalState.UNCHANGED : ov;
  }, ev.setNewValue_ = function(ov) {
    var av = this.value_;
    this.value_ = ov, this.reportChanged(), hasListeners(this) && notifyListeners(this, {
      type: UPDATE,
      object: this,
      newValue: ov,
      oldValue: av
    });
  }, ev.get = function() {
    return this.reportObserved(), this.dehanceValue(this.value_);
  }, ev.intercept_ = function(ov) {
    return registerInterceptor(this, ov);
  }, ev.observe_ = function(ov, av) {
    return av && ov({
      observableKind: "value",
      debugObjectName: this.name_,
      object: this,
      type: UPDATE,
      newValue: this.value_,
      oldValue: void 0
    }), registerListener(this, ov);
  }, ev.raw = function() {
    return this.value_;
  }, ev.toJSON = function() {
    return this.get();
  }, ev.toString = function() {
    return this.name_ + "[" + this.value_ + "]";
  }, ev.valueOf = function() {
    return toPrimitive$1(this.get());
  }, ev[Symbol.toPrimitive] = function() {
    return this.valueOf();
  }, tv;
}(Atom), ComputedValue = /* @__PURE__ */ function() {
  function rv(ev) {
    this.dependenciesState_ = IDerivationState_.NOT_TRACKING_, this.observing_ = [], this.newObserving_ = null, this.observers_ = /* @__PURE__ */ new Set(), this.runId_ = 0, this.lastAccessedBy_ = 0, this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_, this.unboundDepsCount_ = 0, this.value_ = new CaughtException(null), this.name_ = void 0, this.triggeredBy_ = void 0, this.flags_ = 0, this.derivation = void 0, this.setter_ = void 0, this.isTracing_ = TraceMode.NONE, this.scope_ = void 0, this.equals_ = void 0, this.requiresReaction_ = void 0, this.keepAlive_ = void 0, this.onBOL = void 0, this.onBUOL = void 0, ev.get || die(31), this.derivation = ev.get, this.name_ = ev.name || "ComputedValue", ev.set && (this.setter_ = createAction("ComputedValue-setter", ev.set)), this.equals_ = ev.equals || (ev.compareStructural || ev.struct ? comparer.structural : comparer.default), this.scope_ = ev.context, this.requiresReaction_ = ev.requiresReaction, this.keepAlive_ = !!ev.keepAlive;
  }
  var tv = rv.prototype;
  return tv.onBecomeStale_ = function() {
    propagateMaybeChanged(this);
  }, tv.onBO = function() {
    this.onBOL && this.onBOL.forEach(function(iv) {
      return iv();
    });
  }, tv.onBUO = function() {
    this.onBUOL && this.onBUOL.forEach(function(iv) {
      return iv();
    });
  }, tv.get = function() {
    if (this.isComputing && die(32, this.name_, this.derivation), globalState.inBatch === 0 && // !globalState.trackingDerivatpion &&
    this.observers_.size === 0 && !this.keepAlive_)
      shouldCompute(this) && (this.warnAboutUntrackedRead_(), startBatch(), this.value_ = this.computeValue_(!1), endBatch());
    else if (reportObserved(this), shouldCompute(this)) {
      var iv = globalState.trackingContext;
      this.keepAlive_ && !iv && (globalState.trackingContext = this), this.trackAndCompute() && propagateChangeConfirmed(this), globalState.trackingContext = iv;
    }
    var ov = this.value_;
    if (isCaughtException(ov))
      throw ov.cause;
    return ov;
  }, tv.set = function(iv) {
    if (this.setter_) {
      this.isRunningSetter && die(33, this.name_), this.isRunningSetter = !0;
      try {
        this.setter_.call(this.scope_, iv);
      } finally {
        this.isRunningSetter = !1;
      }
    } else
      die(34, this.name_);
  }, tv.trackAndCompute = function() {
    var iv = this.value_, ov = (
      /* see #1208 */
      this.dependenciesState_ === IDerivationState_.NOT_TRACKING_
    ), av = this.computeValue_(!0), sv = ov || isCaughtException(iv) || isCaughtException(av) || !this.equals_(iv, av);
    return sv && (this.value_ = av), sv;
  }, tv.computeValue_ = function(iv) {
    this.isComputing = !0;
    var ov = allowStateChangesStart(!1), av;
    if (iv)
      av = trackDerivedFunction(this, this.derivation, this.scope_);
    else if (globalState.disableErrorBoundaries === !0)
      av = this.derivation.call(this.scope_);
    else
      try {
        av = this.derivation.call(this.scope_);
      } catch (sv) {
        av = new CaughtException(sv);
      }
    return allowStateChangesEnd(ov), this.isComputing = !1, av;
  }, tv.suspend_ = function() {
    this.keepAlive_ || (clearObserving(this), this.value_ = void 0);
  }, tv.observe_ = function(iv, ov) {
    var av = this, sv = !0, lv = void 0;
    return autorun(function() {
      var uv = av.get();
      if (!sv || ov) {
        var cv = untrackedStart();
        iv({
          observableKind: "computed",
          debugObjectName: av.name_,
          type: UPDATE,
          object: av,
          newValue: uv,
          oldValue: lv
        }), untrackedEnd(cv);
      }
      sv = !1, lv = uv;
    });
  }, tv.warnAboutUntrackedRead_ = function() {
  }, tv.toString = function() {
    return this.name_ + "[" + this.derivation.toString() + "]";
  }, tv.valueOf = function() {
    return toPrimitive$1(this.get());
  }, tv[Symbol.toPrimitive] = function() {
    return this.valueOf();
  }, _createClass(rv, [{
    key: "isComputing",
    get: function() {
      return getFlag(this.flags_, rv.isComputingMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isComputingMask_, iv);
    }
  }, {
    key: "isRunningSetter",
    get: function() {
      return getFlag(this.flags_, rv.isRunningSetterMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isRunningSetterMask_, iv);
    }
  }, {
    key: "isBeingObserved",
    get: function() {
      return getFlag(this.flags_, rv.isBeingObservedMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isBeingObservedMask_, iv);
    }
  }, {
    key: "isPendingUnobservation",
    get: function() {
      return getFlag(this.flags_, rv.isPendingUnobservationMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isPendingUnobservationMask_, iv);
    }
  }, {
    key: "diffValue",
    get: function() {
      return getFlag(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.diffValueMask_, iv === 1);
    }
  }]);
}();
ComputedValue.isComputingMask_ = 1;
ComputedValue.isRunningSetterMask_ = 2;
ComputedValue.isBeingObservedMask_ = 4;
ComputedValue.isPendingUnobservationMask_ = 8;
ComputedValue.diffValueMask_ = 16;
var isComputedValue = /* @__PURE__ */ createInstanceofPredicate("ComputedValue", ComputedValue), IDerivationState_;
(function(rv) {
  rv[rv.NOT_TRACKING_ = -1] = "NOT_TRACKING_", rv[rv.UP_TO_DATE_ = 0] = "UP_TO_DATE_", rv[rv.POSSIBLY_STALE_ = 1] = "POSSIBLY_STALE_", rv[rv.STALE_ = 2] = "STALE_";
})(IDerivationState_ || (IDerivationState_ = {}));
var TraceMode;
(function(rv) {
  rv[rv.NONE = 0] = "NONE", rv[rv.LOG = 1] = "LOG", rv[rv.BREAK = 2] = "BREAK";
})(TraceMode || (TraceMode = {}));
var CaughtException = function(tv) {
  this.cause = void 0, this.cause = tv;
};
function isCaughtException(rv) {
  return rv instanceof CaughtException;
}
function shouldCompute(rv) {
  switch (rv.dependenciesState_) {
    case IDerivationState_.UP_TO_DATE_:
      return !1;
    case IDerivationState_.NOT_TRACKING_:
    case IDerivationState_.STALE_:
      return !0;
    case IDerivationState_.POSSIBLY_STALE_: {
      for (var tv = allowStateReadsStart(!0), ev = untrackedStart(), iv = rv.observing_, ov = iv.length, av = 0; av < ov; av++) {
        var sv = iv[av];
        if (isComputedValue(sv)) {
          if (globalState.disableErrorBoundaries)
            sv.get();
          else
            try {
              sv.get();
            } catch {
              return untrackedEnd(ev), allowStateReadsEnd(tv), !0;
            }
          if (rv.dependenciesState_ === IDerivationState_.STALE_)
            return untrackedEnd(ev), allowStateReadsEnd(tv), !0;
        }
      }
      return changeDependenciesStateTo0(rv), untrackedEnd(ev), allowStateReadsEnd(tv), !1;
    }
  }
}
function checkIfStateModificationsAreAllowed(rv) {
}
function trackDerivedFunction(rv, tv, ev) {
  var iv = allowStateReadsStart(!0);
  changeDependenciesStateTo0(rv), rv.newObserving_ = new Array(
    // Reserve constant space for initial dependencies, dynamic space otherwise.
    // See https://github.com/mobxjs/mobx/pull/3833
    rv.runId_ === 0 ? 100 : rv.observing_.length
  ), rv.unboundDepsCount_ = 0, rv.runId_ = ++globalState.runId;
  var ov = globalState.trackingDerivation;
  globalState.trackingDerivation = rv, globalState.inBatch++;
  var av;
  if (globalState.disableErrorBoundaries === !0)
    av = tv.call(ev);
  else
    try {
      av = tv.call(ev);
    } catch (sv) {
      av = new CaughtException(sv);
    }
  return globalState.inBatch--, globalState.trackingDerivation = ov, bindDependencies(rv), allowStateReadsEnd(iv), av;
}
function bindDependencies(rv) {
  for (var tv = rv.observing_, ev = rv.observing_ = rv.newObserving_, iv = IDerivationState_.UP_TO_DATE_, ov = 0, av = rv.unboundDepsCount_, sv = 0; sv < av; sv++) {
    var lv = ev[sv];
    lv.diffValue === 0 && (lv.diffValue = 1, ov !== sv && (ev[ov] = lv), ov++), lv.dependenciesState_ > iv && (iv = lv.dependenciesState_);
  }
  for (ev.length = ov, rv.newObserving_ = null, av = tv.length; av--; ) {
    var uv = tv[av];
    uv.diffValue === 0 && removeObserver(uv, rv), uv.diffValue = 0;
  }
  for (; ov--; ) {
    var cv = ev[ov];
    cv.diffValue === 1 && (cv.diffValue = 0, addObserver(cv, rv));
  }
  iv !== IDerivationState_.UP_TO_DATE_ && (rv.dependenciesState_ = iv, rv.onBecomeStale_());
}
function clearObserving(rv) {
  var tv = rv.observing_;
  rv.observing_ = [];
  for (var ev = tv.length; ev--; )
    removeObserver(tv[ev], rv);
  rv.dependenciesState_ = IDerivationState_.NOT_TRACKING_;
}
function untracked(rv) {
  var tv = untrackedStart();
  try {
    return rv();
  } finally {
    untrackedEnd(tv);
  }
}
function untrackedStart() {
  var rv = globalState.trackingDerivation;
  return globalState.trackingDerivation = null, rv;
}
function untrackedEnd(rv) {
  globalState.trackingDerivation = rv;
}
function allowStateReadsStart(rv) {
  var tv = globalState.allowStateReads;
  return globalState.allowStateReads = rv, tv;
}
function allowStateReadsEnd(rv) {
  globalState.allowStateReads = rv;
}
function changeDependenciesStateTo0(rv) {
  if (rv.dependenciesState_ !== IDerivationState_.UP_TO_DATE_) {
    rv.dependenciesState_ = IDerivationState_.UP_TO_DATE_;
    for (var tv = rv.observing_, ev = tv.length; ev--; )
      tv[ev].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;
  }
}
var MobXGlobals = function() {
  this.version = 6, this.UNCHANGED = {}, this.trackingDerivation = null, this.trackingContext = null, this.runId = 0, this.mobxGuid = 0, this.inBatch = 0, this.pendingUnobservations = [], this.pendingReactions = [], this.isRunningReactions = !1, this.allowStateChanges = !1, this.allowStateReads = !0, this.enforceActions = !0, this.spyListeners = [], this.globalReactionErrorHandlers = [], this.computedRequiresReaction = !1, this.reactionRequiresObservable = !1, this.observableRequiresReaction = !1, this.disableErrorBoundaries = !1, this.suppressReactionErrors = !1, this.useProxies = !0, this.verifyProxies = !1, this.safeDescriptors = !0;
}, canMergeGlobalState = !0, isolateCalled = !1, globalState = /* @__PURE__ */ function() {
  var rv = /* @__PURE__ */ getGlobal$1();
  return rv.__mobxInstanceCount > 0 && !rv.__mobxGlobals && (canMergeGlobalState = !1), rv.__mobxGlobals && rv.__mobxGlobals.version !== new MobXGlobals().version && (canMergeGlobalState = !1), canMergeGlobalState ? rv.__mobxGlobals ? (rv.__mobxInstanceCount += 1, rv.__mobxGlobals.UNCHANGED || (rv.__mobxGlobals.UNCHANGED = {}), rv.__mobxGlobals) : (rv.__mobxInstanceCount = 1, rv.__mobxGlobals = /* @__PURE__ */ new MobXGlobals()) : (setTimeout(function() {
    isolateCalled || die(35);
  }, 1), new MobXGlobals());
}();
function isolateGlobalState() {
  if ((globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) && die(36), isolateCalled = !0, canMergeGlobalState) {
    var rv = getGlobal$1();
    --rv.__mobxInstanceCount === 0 && (rv.__mobxGlobals = void 0), globalState = new MobXGlobals();
  }
}
function addObserver(rv, tv) {
  rv.observers_.add(tv), rv.lowestObserverState_ > tv.dependenciesState_ && (rv.lowestObserverState_ = tv.dependenciesState_);
}
function removeObserver(rv, tv) {
  rv.observers_.delete(tv), rv.observers_.size === 0 && queueForUnobservation(rv);
}
function queueForUnobservation(rv) {
  rv.isPendingUnobservation === !1 && (rv.isPendingUnobservation = !0, globalState.pendingUnobservations.push(rv));
}
function startBatch() {
  globalState.inBatch++;
}
function endBatch() {
  if (--globalState.inBatch === 0) {
    runReactions();
    for (var rv = globalState.pendingUnobservations, tv = 0; tv < rv.length; tv++) {
      var ev = rv[tv];
      ev.isPendingUnobservation = !1, ev.observers_.size === 0 && (ev.isBeingObserved && (ev.isBeingObserved = !1, ev.onBUO()), ev instanceof ComputedValue && ev.suspend_());
    }
    globalState.pendingUnobservations = [];
  }
}
function reportObserved(rv) {
  var tv = globalState.trackingDerivation;
  return tv !== null ? (tv.runId_ !== rv.lastAccessedBy_ && (rv.lastAccessedBy_ = tv.runId_, tv.newObserving_[tv.unboundDepsCount_++] = rv, !rv.isBeingObserved && globalState.trackingContext && (rv.isBeingObserved = !0, rv.onBO())), rv.isBeingObserved) : (rv.observers_.size === 0 && globalState.inBatch > 0 && queueForUnobservation(rv), !1);
}
function propagateChanged(rv) {
  rv.lowestObserverState_ !== IDerivationState_.STALE_ && (rv.lowestObserverState_ = IDerivationState_.STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === IDerivationState_.UP_TO_DATE_ && tv.onBecomeStale_(), tv.dependenciesState_ = IDerivationState_.STALE_;
  }));
}
function propagateChangeConfirmed(rv) {
  rv.lowestObserverState_ !== IDerivationState_.STALE_ && (rv.lowestObserverState_ = IDerivationState_.STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_ ? tv.dependenciesState_ = IDerivationState_.STALE_ : tv.dependenciesState_ === IDerivationState_.UP_TO_DATE_ && (rv.lowestObserverState_ = IDerivationState_.UP_TO_DATE_);
  }));
}
function propagateMaybeChanged(rv) {
  rv.lowestObserverState_ === IDerivationState_.UP_TO_DATE_ && (rv.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_, rv.observers_.forEach(function(tv) {
    tv.dependenciesState_ === IDerivationState_.UP_TO_DATE_ && (tv.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_, tv.onBecomeStale_());
  }));
}
var Reaction = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    ev === void 0 && (ev = "Reaction"), this.name_ = void 0, this.onInvalidate_ = void 0, this.errorHandler_ = void 0, this.requiresObservable_ = void 0, this.observing_ = [], this.newObserving_ = [], this.dependenciesState_ = IDerivationState_.NOT_TRACKING_, this.runId_ = 0, this.unboundDepsCount_ = 0, this.flags_ = 0, this.isTracing_ = TraceMode.NONE, this.name_ = ev, this.onInvalidate_ = iv, this.errorHandler_ = ov, this.requiresObservable_ = av;
  }
  var tv = rv.prototype;
  return tv.onBecomeStale_ = function() {
    this.schedule_();
  }, tv.schedule_ = function() {
    this.isScheduled || (this.isScheduled = !0, globalState.pendingReactions.push(this), runReactions());
  }, tv.runReaction_ = function() {
    if (!this.isDisposed) {
      startBatch(), this.isScheduled = !1;
      var iv = globalState.trackingContext;
      if (globalState.trackingContext = this, shouldCompute(this)) {
        this.isTrackPending = !0;
        try {
          this.onInvalidate_();
        } catch (ov) {
          this.reportExceptionInDerivation_(ov);
        }
      }
      globalState.trackingContext = iv, endBatch();
    }
  }, tv.track = function(iv) {
    if (!this.isDisposed) {
      startBatch(), this.isRunning = !0;
      var ov = globalState.trackingContext;
      globalState.trackingContext = this;
      var av = trackDerivedFunction(this, iv, void 0);
      globalState.trackingContext = ov, this.isRunning = !1, this.isTrackPending = !1, this.isDisposed && clearObserving(this), isCaughtException(av) && this.reportExceptionInDerivation_(av.cause), endBatch();
    }
  }, tv.reportExceptionInDerivation_ = function(iv) {
    var ov = this;
    if (this.errorHandler_) {
      this.errorHandler_(iv, this);
      return;
    }
    if (globalState.disableErrorBoundaries)
      throw iv;
    var av = "[mobx] uncaught error in '" + this + "'";
    globalState.suppressReactionErrors || console.error(av, iv), globalState.globalReactionErrorHandlers.forEach(function(sv) {
      return sv(iv, ov);
    });
  }, tv.dispose = function() {
    this.isDisposed || (this.isDisposed = !0, this.isRunning || (startBatch(), clearObserving(this), endBatch()));
  }, tv.getDisposer_ = function(iv) {
    var ov = this, av = function sv() {
      ov.dispose(), iv == null || iv.removeEventListener == null || iv.removeEventListener("abort", sv);
    };
    return iv == null || iv.addEventListener == null || iv.addEventListener("abort", av), av[$mobx] = this, av;
  }, tv.toString = function() {
    return "Reaction[" + this.name_ + "]";
  }, tv.trace = function(iv) {
  }, _createClass(rv, [{
    key: "isDisposed",
    get: function() {
      return getFlag(this.flags_, rv.isDisposedMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isDisposedMask_, iv);
    }
  }, {
    key: "isScheduled",
    get: function() {
      return getFlag(this.flags_, rv.isScheduledMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isScheduledMask_, iv);
    }
  }, {
    key: "isTrackPending",
    get: function() {
      return getFlag(this.flags_, rv.isTrackPendingMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isTrackPendingMask_, iv);
    }
  }, {
    key: "isRunning",
    get: function() {
      return getFlag(this.flags_, rv.isRunningMask_);
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.isRunningMask_, iv);
    }
  }, {
    key: "diffValue",
    get: function() {
      return getFlag(this.flags_, rv.diffValueMask_) ? 1 : 0;
    },
    set: function(iv) {
      this.flags_ = setFlag(this.flags_, rv.diffValueMask_, iv === 1);
    }
  }]);
}();
Reaction.isDisposedMask_ = 1;
Reaction.isScheduledMask_ = 2;
Reaction.isTrackPendingMask_ = 4;
Reaction.isRunningMask_ = 8;
Reaction.diffValueMask_ = 16;
var MAX_REACTION_ITERATIONS = 100, reactionScheduler = function(tv) {
  return tv();
};
function runReactions() {
  globalState.inBatch > 0 || globalState.isRunningReactions || reactionScheduler(runReactionsHelper);
}
function runReactionsHelper() {
  globalState.isRunningReactions = !0;
  for (var rv = globalState.pendingReactions, tv = 0; rv.length > 0; ) {
    ++tv === MAX_REACTION_ITERATIONS && (console.error("[mobx] cycle in reaction: " + rv[0]), rv.splice(0));
    for (var ev = rv.splice(0), iv = 0, ov = ev.length; iv < ov; iv++)
      ev[iv].runReaction_();
  }
  globalState.isRunningReactions = !1;
}
var isReaction = /* @__PURE__ */ createInstanceofPredicate("Reaction", Reaction);
function setReactionScheduler(rv) {
  var tv = reactionScheduler;
  reactionScheduler = function(iv) {
    return rv(function() {
      return tv(iv);
    });
  };
}
function isSpyEnabled() {
  return !1;
}
function spyReport(rv) {
}
function spyReportStart(rv) {
}
function spyReportEnd(rv) {
}
function spy(rv) {
  return console.warn("[mobx.spy] Is a no-op in production builds"), function() {
  };
}
var ACTION = "action", ACTION_BOUND = "action.bound", AUTOACTION = "autoAction", AUTOACTION_BOUND = "autoAction.bound", DEFAULT_ACTION_NAME = "<unnamed action>", actionAnnotation = /* @__PURE__ */ createActionAnnotation(ACTION), actionBoundAnnotation = /* @__PURE__ */ createActionAnnotation(ACTION_BOUND, {
  bound: !0
}), autoActionAnnotation = /* @__PURE__ */ createActionAnnotation(AUTOACTION, {
  autoAction: !0
}), autoActionBoundAnnotation = /* @__PURE__ */ createActionAnnotation(AUTOACTION_BOUND, {
  autoAction: !0,
  bound: !0
});
function createActionFactory(rv) {
  var tv = function(iv, ov) {
    if (isFunction$3(iv))
      return createAction(iv.name || DEFAULT_ACTION_NAME, iv, rv);
    if (isFunction$3(ov))
      return createAction(iv, ov, rv);
    if (is20223Decorator(ov))
      return (rv ? autoActionAnnotation : actionAnnotation).decorate_20223_(iv, ov);
    if (isStringish(ov))
      return storeAnnotation(iv, ov, rv ? autoActionAnnotation : actionAnnotation);
    if (isStringish(iv))
      return createDecoratorAnnotation(createActionAnnotation(rv ? AUTOACTION : ACTION, {
        name: iv,
        autoAction: rv
      }));
  };
  return tv;
}
var action = /* @__PURE__ */ createActionFactory(!1);
Object.assign(action, actionAnnotation);
var autoAction = /* @__PURE__ */ createActionFactory(!0);
Object.assign(autoAction, autoActionAnnotation);
action.bound = /* @__PURE__ */ createDecoratorAnnotation(actionBoundAnnotation);
autoAction.bound = /* @__PURE__ */ createDecoratorAnnotation(autoActionBoundAnnotation);
function isAction(rv) {
  return isFunction$3(rv) && rv.isMobxAction === !0;
}
function autorun(rv, tv) {
  var ev, iv, ov, av;
  tv === void 0 && (tv = EMPTY_OBJECT);
  var sv = (ev = (iv = tv) == null ? void 0 : iv.name) != null ? ev : "Autorun", lv = !tv.scheduler && !tv.delay, uv;
  if (lv)
    uv = new Reaction(sv, function() {
      this.track(hv);
    }, tv.onError, tv.requiresObservable);
  else {
    var cv = createSchedulerFromOptions(tv), dv = !1;
    uv = new Reaction(sv, function() {
      dv || (dv = !0, cv(function() {
        dv = !1, uv.isDisposed || uv.track(hv);
      }));
    }, tv.onError, tv.requiresObservable);
  }
  function hv() {
    rv(uv);
  }
  return (ov = tv) != null && (ov = ov.signal) != null && ov.aborted || uv.schedule_(), uv.getDisposer_((av = tv) == null ? void 0 : av.signal);
}
var run = function(tv) {
  return tv();
};
function createSchedulerFromOptions(rv) {
  return rv.scheduler ? rv.scheduler : rv.delay ? function(tv) {
    return setTimeout(tv, rv.delay);
  } : run;
}
var ON_BECOME_OBSERVED = "onBO", ON_BECOME_UNOBSERVED = "onBUO";
function onBecomeObserved(rv, tv, ev) {
  return interceptHook(ON_BECOME_OBSERVED, rv, tv, ev);
}
function onBecomeUnobserved(rv, tv, ev) {
  return interceptHook(ON_BECOME_UNOBSERVED, rv, tv, ev);
}
function interceptHook(rv, tv, ev, iv) {
  var ov = getAtom(tv), av = isFunction$3(iv) ? iv : ev, sv = rv + "L";
  return ov[sv] ? ov[sv].add(av) : ov[sv] = /* @__PURE__ */ new Set([av]), function() {
    var lv = ov[sv];
    lv && (lv.delete(av), lv.size === 0 && delete ov[sv]);
  };
}
var NEVER = "never", ALWAYS = "always", OBSERVED = "observed";
function configure(rv) {
  rv.isolateGlobalState === !0 && isolateGlobalState();
  var tv = rv.useProxies, ev = rv.enforceActions;
  if (tv !== void 0 && (globalState.useProxies = tv === ALWAYS ? !0 : tv === NEVER ? !1 : typeof Proxy < "u"), tv === "ifavailable" && (globalState.verifyProxies = !0), ev !== void 0) {
    var iv = ev === ALWAYS ? ALWAYS : ev === OBSERVED;
    globalState.enforceActions = iv, globalState.allowStateChanges = !(iv === !0 || iv === ALWAYS);
  }
  ["computedRequiresReaction", "reactionRequiresObservable", "observableRequiresReaction", "disableErrorBoundaries", "safeDescriptors"].forEach(function(ov) {
    ov in rv && (globalState[ov] = !!rv[ov]);
  }), globalState.allowStateReads = !globalState.observableRequiresReaction, rv.reactionScheduler && setReactionScheduler(rv.reactionScheduler);
}
function extendObservable(rv, tv, ev, iv) {
  var ov = getOwnPropertyDescriptors(tv);
  return initObservable(function() {
    var av = asObservableObject(rv, iv)[$mobx];
    ownKeys$1(ov).forEach(function(sv) {
      av.extend_(
        sv,
        ov[sv],
        // must pass "undefined" for { key: undefined }
        ev && sv in ev ? ev[sv] : !0
      );
    });
  }), rv;
}
function getDependencyTree(rv, tv) {
  return nodeToDependencyTree(getAtom(rv, tv));
}
function nodeToDependencyTree(rv) {
  var tv = {
    name: rv.name_
  };
  return rv.observing_ && rv.observing_.length > 0 && (tv.dependencies = unique(rv.observing_).map(nodeToDependencyTree)), tv;
}
function unique(rv) {
  return Array.from(new Set(rv));
}
var generatorId = 0;
function FlowCancellationError() {
  this.message = "FLOW_CANCELLED";
}
FlowCancellationError.prototype = /* @__PURE__ */ Object.create(Error.prototype);
var flowAnnotation = /* @__PURE__ */ createFlowAnnotation("flow"), flowBoundAnnotation = /* @__PURE__ */ createFlowAnnotation("flow.bound", {
  bound: !0
}), flow = /* @__PURE__ */ Object.assign(function(tv, ev) {
  if (is20223Decorator(ev))
    return flowAnnotation.decorate_20223_(tv, ev);
  if (isStringish(ev))
    return storeAnnotation(tv, ev, flowAnnotation);
  var iv = tv, ov = iv.name || "<unnamed flow>", av = function() {
    var lv = this, uv = arguments, cv = ++generatorId, dv = action(ov + " - runid: " + cv + " - init", iv).apply(lv, uv), hv, pv = void 0, yv = new Promise(function(Sv, _v) {
      var Ev = 0;
      hv = _v;
      function wv(Av) {
        pv = void 0;
        var Ov;
        try {
          Ov = action(ov + " - runid: " + cv + " - yield " + Ev++, dv.next).call(dv, Av);
        } catch (Lv) {
          return _v(Lv);
        }
        Cv(Ov);
      }
      function xv(Av) {
        pv = void 0;
        var Ov;
        try {
          Ov = action(ov + " - runid: " + cv + " - yield " + Ev++, dv.throw).call(dv, Av);
        } catch (Lv) {
          return _v(Lv);
        }
        Cv(Ov);
      }
      function Cv(Av) {
        if (isFunction$3(Av == null ? void 0 : Av.then)) {
          Av.then(Cv, _v);
          return;
        }
        return Av.done ? Sv(Av.value) : (pv = Promise.resolve(Av.value), pv.then(wv, xv));
      }
      wv(void 0);
    });
    return yv.cancel = action(ov + " - runid: " + cv + " - cancel", function() {
      try {
        pv && cancelPromise$1(pv);
        var Sv = dv.return(void 0), _v = Promise.resolve(Sv.value);
        _v.then(noop$2, noop$2), cancelPromise$1(_v), hv(new FlowCancellationError());
      } catch (Ev) {
        hv(Ev);
      }
    }), yv;
  };
  return av.isMobXFlow = !0, av;
}, flowAnnotation);
flow.bound = /* @__PURE__ */ createDecoratorAnnotation(flowBoundAnnotation);
function cancelPromise$1(rv) {
  isFunction$3(rv.cancel) && rv.cancel();
}
function isFlow(rv) {
  return (rv == null ? void 0 : rv.isMobXFlow) === !0;
}
function _isObservable(rv, tv) {
  return rv ? isObservableObject(rv) || !!rv[$mobx] || isAtom(rv) || isReaction(rv) || isComputedValue(rv) : !1;
}
function isObservable(rv) {
  return _isObservable(rv);
}
function transaction(rv, tv) {
  tv === void 0 && (tv = void 0), startBatch();
  try {
    return rv.apply(tv);
  } finally {
    endBatch();
  }
}
function when(rv, tv, ev) {
  return arguments.length === 1 || tv && typeof tv == "object" ? whenPromise(rv, tv) : _when(rv, tv, {});
}
function _when(rv, tv, ev) {
  var iv;
  if (typeof ev.timeout == "number") {
    var ov = new Error("WHEN_TIMEOUT");
    iv = setTimeout(function() {
      if (!sv[$mobx].isDisposed)
        if (sv(), ev.onError)
          ev.onError(ov);
        else
          throw ov;
    }, ev.timeout);
  }
  ev.name = "When";
  var av = createAction("When-effect", tv), sv = autorun(function(lv) {
    var uv = allowStateChanges(!1, rv);
    uv && (lv.dispose(), iv && clearTimeout(iv), av());
  }, ev);
  return sv;
}
function whenPromise(rv, tv) {
  var ev;
  if (tv != null && (ev = tv.signal) != null && ev.aborted)
    return Object.assign(Promise.reject(new Error("WHEN_ABORTED")), {
      cancel: function() {
        return null;
      }
    });
  var iv, ov, av = new Promise(function(sv, lv) {
    var uv, cv = _when(rv, sv, _extends$8({}, tv, {
      onError: lv
    }));
    iv = function() {
      cv(), lv(new Error("WHEN_CANCELLED"));
    }, ov = function() {
      cv(), lv(new Error("WHEN_ABORTED"));
    }, tv == null || (uv = tv.signal) == null || uv.addEventListener == null || uv.addEventListener("abort", ov);
  }).finally(function() {
    var sv;
    return tv == null || (sv = tv.signal) == null || sv.removeEventListener == null ? void 0 : sv.removeEventListener("abort", ov);
  });
  return av.cancel = iv, av;
}
function getAdm(rv) {
  return rv[$mobx];
}
var objectProxyTraps = {
  has: function(tv, ev) {
    return getAdm(tv).has_(ev);
  },
  get: function(tv, ev) {
    return getAdm(tv).get_(ev);
  },
  set: function(tv, ev, iv) {
    var ov;
    return isStringish(ev) ? (ov = getAdm(tv).set_(ev, iv, !0)) != null ? ov : !0 : !1;
  },
  deleteProperty: function(tv, ev) {
    var iv;
    return isStringish(ev) ? (iv = getAdm(tv).delete_(ev, !0)) != null ? iv : !0 : !1;
  },
  defineProperty: function(tv, ev, iv) {
    var ov;
    return (ov = getAdm(tv).defineProperty_(ev, iv)) != null ? ov : !0;
  },
  ownKeys: function(tv) {
    return getAdm(tv).ownKeys_();
  },
  preventExtensions: function(tv) {
    die(13);
  }
};
function asDynamicObservableObject(rv, tv) {
  var ev, iv;
  return assertProxies(), rv = asObservableObject(rv, tv), (iv = (ev = rv[$mobx]).proxy_) != null ? iv : ev.proxy_ = new Proxy(rv, objectProxyTraps);
}
function hasInterceptors(rv) {
  return rv.interceptors_ !== void 0 && rv.interceptors_.length > 0;
}
function registerInterceptor(rv, tv) {
  var ev = rv.interceptors_ || (rv.interceptors_ = []);
  return ev.push(tv), once(function() {
    var iv = ev.indexOf(tv);
    iv !== -1 && ev.splice(iv, 1);
  });
}
function interceptChange(rv, tv) {
  var ev = untrackedStart();
  try {
    for (var iv = [].concat(rv.interceptors_ || []), ov = 0, av = iv.length; ov < av && (tv = iv[ov](tv), tv && !tv.type && die(14), !!tv); ov++)
      ;
    return tv;
  } finally {
    untrackedEnd(ev);
  }
}
function hasListeners(rv) {
  return rv.changeListeners_ !== void 0 && rv.changeListeners_.length > 0;
}
function registerListener(rv, tv) {
  var ev = rv.changeListeners_ || (rv.changeListeners_ = []);
  return ev.push(tv), once(function() {
    var iv = ev.indexOf(tv);
    iv !== -1 && ev.splice(iv, 1);
  });
}
function notifyListeners(rv, tv) {
  var ev = untrackedStart(), iv = rv.changeListeners_;
  if (iv) {
    iv = iv.slice();
    for (var ov = 0, av = iv.length; ov < av; ov++)
      iv[ov](tv);
    untrackedEnd(ev);
  }
}
function makeObservable(rv, tv, ev) {
  return initObservable(function() {
    var iv, ov = asObservableObject(rv, ev)[$mobx];
    (iv = tv) != null || (tv = collectStoredAnnotations(rv)), ownKeys$1(tv).forEach(function(av) {
      return ov.make_(av, tv[av]);
    });
  }), rv;
}
var SPLICE = "splice", UPDATE = "update", MAX_SPLICE_SIZE = 1e4, arrayTraps = {
  get: function(tv, ev) {
    var iv = tv[$mobx];
    return ev === $mobx ? iv : ev === "length" ? iv.getArrayLength_() : typeof ev == "string" && !isNaN(ev) ? iv.get_(parseInt(ev)) : hasProp(arrayExtensions, ev) ? arrayExtensions[ev] : tv[ev];
  },
  set: function(tv, ev, iv) {
    var ov = tv[$mobx];
    return ev === "length" && ov.setArrayLength_(iv), typeof ev == "symbol" || isNaN(ev) ? tv[ev] = iv : ov.set_(parseInt(ev), iv), !0;
  },
  preventExtensions: function() {
    die(15);
  }
}, ObservableArrayAdministration = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    ev === void 0 && (ev = "ObservableArray"), this.owned_ = void 0, this.legacyMode_ = void 0, this.atom_ = void 0, this.values_ = [], this.interceptors_ = void 0, this.changeListeners_ = void 0, this.enhancer_ = void 0, this.dehancer = void 0, this.proxy_ = void 0, this.lastKnownLength_ = 0, this.owned_ = ov, this.legacyMode_ = av, this.atom_ = new Atom(ev), this.enhancer_ = function(sv, lv) {
      return iv(sv, lv, "ObservableArray[..]");
    };
  }
  var tv = rv.prototype;
  return tv.dehanceValue_ = function(iv) {
    return this.dehancer !== void 0 ? this.dehancer(iv) : iv;
  }, tv.dehanceValues_ = function(iv) {
    return this.dehancer !== void 0 && iv.length > 0 ? iv.map(this.dehancer) : iv;
  }, tv.intercept_ = function(iv) {
    return registerInterceptor(this, iv);
  }, tv.observe_ = function(iv, ov) {
    return ov === void 0 && (ov = !1), ov && iv({
      observableKind: "array",
      object: this.proxy_,
      debugObjectName: this.atom_.name_,
      type: "splice",
      index: 0,
      added: this.values_.slice(),
      addedCount: this.values_.length,
      removed: [],
      removedCount: 0
    }), registerListener(this, iv);
  }, tv.getArrayLength_ = function() {
    return this.atom_.reportObserved(), this.values_.length;
  }, tv.setArrayLength_ = function(iv) {
    (typeof iv != "number" || isNaN(iv) || iv < 0) && die("Out of range: " + iv);
    var ov = this.values_.length;
    if (iv !== ov)
      if (iv > ov) {
        for (var av = new Array(iv - ov), sv = 0; sv < iv - ov; sv++)
          av[sv] = void 0;
        this.spliceWithArray_(ov, 0, av);
      } else
        this.spliceWithArray_(iv, ov - iv);
  }, tv.updateArrayLength_ = function(iv, ov) {
    iv !== this.lastKnownLength_ && die(16), this.lastKnownLength_ += ov, this.legacyMode_ && ov > 0 && reserveArrayBuffer(iv + ov + 1);
  }, tv.spliceWithArray_ = function(iv, ov, av) {
    var sv = this;
    this.atom_;
    var lv = this.values_.length;
    if (iv === void 0 ? iv = 0 : iv > lv ? iv = lv : iv < 0 && (iv = Math.max(0, lv + iv)), arguments.length === 1 ? ov = lv - iv : ov == null ? ov = 0 : ov = Math.max(0, Math.min(ov, lv - iv)), av === void 0 && (av = EMPTY_ARRAY), hasInterceptors(this)) {
      var uv = interceptChange(this, {
        object: this.proxy_,
        type: SPLICE,
        index: iv,
        removedCount: ov,
        added: av
      });
      if (!uv)
        return EMPTY_ARRAY;
      ov = uv.removedCount, av = uv.added;
    }
    if (av = av.length === 0 ? av : av.map(function(hv) {
      return sv.enhancer_(hv, void 0);
    }), this.legacyMode_) {
      var cv = av.length - ov;
      this.updateArrayLength_(lv, cv);
    }
    var dv = this.spliceItemsIntoValues_(iv, ov, av);
    return (ov !== 0 || av.length !== 0) && this.notifyArraySplice_(iv, av, dv), this.dehanceValues_(dv);
  }, tv.spliceItemsIntoValues_ = function(iv, ov, av) {
    if (av.length < MAX_SPLICE_SIZE) {
      var sv;
      return (sv = this.values_).splice.apply(sv, [iv, ov].concat(av));
    } else {
      var lv = this.values_.slice(iv, iv + ov), uv = this.values_.slice(iv + ov);
      this.values_.length += av.length - ov;
      for (var cv = 0; cv < av.length; cv++)
        this.values_[iv + cv] = av[cv];
      for (var dv = 0; dv < uv.length; dv++)
        this.values_[iv + av.length + dv] = uv[dv];
      return lv;
    }
  }, tv.notifyArrayChildUpdate_ = function(iv, ov, av) {
    var sv = !this.owned_ && isSpyEnabled(), lv = hasListeners(this), uv = lv || sv ? {
      observableKind: "array",
      object: this.proxy_,
      type: UPDATE,
      debugObjectName: this.atom_.name_,
      index: iv,
      newValue: ov,
      oldValue: av
    } : null;
    this.atom_.reportChanged(), lv && notifyListeners(this, uv);
  }, tv.notifyArraySplice_ = function(iv, ov, av) {
    var sv = !this.owned_ && isSpyEnabled(), lv = hasListeners(this), uv = lv || sv ? {
      observableKind: "array",
      object: this.proxy_,
      debugObjectName: this.atom_.name_,
      type: SPLICE,
      index: iv,
      removed: av,
      added: ov,
      removedCount: av.length,
      addedCount: ov.length
    } : null;
    this.atom_.reportChanged(), lv && notifyListeners(this, uv);
  }, tv.get_ = function(iv) {
    if (this.legacyMode_ && iv >= this.values_.length) {
      console.warn("[mobx] Out of bounds read: " + iv);
      return;
    }
    return this.atom_.reportObserved(), this.dehanceValue_(this.values_[iv]);
  }, tv.set_ = function(iv, ov) {
    var av = this.values_;
    if (this.legacyMode_ && iv > av.length && die(17, iv, av.length), iv < av.length) {
      this.atom_;
      var sv = av[iv];
      if (hasInterceptors(this)) {
        var lv = interceptChange(this, {
          type: UPDATE,
          object: this.proxy_,
          // since "this" is the real array we need to pass its proxy
          index: iv,
          newValue: ov
        });
        if (!lv)
          return;
        ov = lv.newValue;
      }
      ov = this.enhancer_(ov, sv);
      var uv = ov !== sv;
      uv && (av[iv] = ov, this.notifyArrayChildUpdate_(iv, ov, sv));
    } else {
      for (var cv = new Array(iv + 1 - av.length), dv = 0; dv < cv.length - 1; dv++)
        cv[dv] = void 0;
      cv[cv.length - 1] = ov, this.spliceWithArray_(av.length, 0, cv);
    }
  }, rv;
}();
function createObservableArray(rv, tv, ev, iv) {
  return ev === void 0 && (ev = "ObservableArray"), iv === void 0 && (iv = !1), assertProxies(), initObservable(function() {
    var ov = new ObservableArrayAdministration(ev, tv, iv, !1);
    addHiddenFinalProp(ov.values_, $mobx, ov);
    var av = new Proxy(ov.values_, arrayTraps);
    return ov.proxy_ = av, rv && rv.length && ov.spliceWithArray_(0, 0, rv), av;
  });
}
var arrayExtensions = {
  clear: function() {
    return this.splice(0);
  },
  replace: function(tv) {
    var ev = this[$mobx];
    return ev.spliceWithArray_(0, ev.values_.length, tv);
  },
  // Used by JSON.stringify
  toJSON: function() {
    return this.slice();
  },
  /*
   * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)
   * since these functions alter the inner structure of the array, the have side effects.
   * Because the have side effects, they should not be used in computed function,
   * and for that reason the do not call dependencyState.notifyObserved
   */
  splice: function(tv, ev) {
    for (var iv = arguments.length, ov = new Array(iv > 2 ? iv - 2 : 0), av = 2; av < iv; av++)
      ov[av - 2] = arguments[av];
    var sv = this[$mobx];
    switch (arguments.length) {
      case 0:
        return [];
      case 1:
        return sv.spliceWithArray_(tv);
      case 2:
        return sv.spliceWithArray_(tv, ev);
    }
    return sv.spliceWithArray_(tv, ev, ov);
  },
  spliceWithArray: function(tv, ev, iv) {
    return this[$mobx].spliceWithArray_(tv, ev, iv);
  },
  push: function() {
    for (var tv = this[$mobx], ev = arguments.length, iv = new Array(ev), ov = 0; ov < ev; ov++)
      iv[ov] = arguments[ov];
    return tv.spliceWithArray_(tv.values_.length, 0, iv), tv.values_.length;
  },
  pop: function() {
    return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];
  },
  shift: function() {
    return this.splice(0, 1)[0];
  },
  unshift: function() {
    for (var tv = this[$mobx], ev = arguments.length, iv = new Array(ev), ov = 0; ov < ev; ov++)
      iv[ov] = arguments[ov];
    return tv.spliceWithArray_(0, 0, iv), tv.values_.length;
  },
  reverse: function() {
    return globalState.trackingDerivation && die(37, "reverse"), this.replace(this.slice().reverse()), this;
  },
  sort: function() {
    globalState.trackingDerivation && die(37, "sort");
    var tv = this.slice();
    return tv.sort.apply(tv, arguments), this.replace(tv), this;
  },
  remove: function(tv) {
    var ev = this[$mobx], iv = ev.dehanceValues_(ev.values_).indexOf(tv);
    return iv > -1 ? (this.splice(iv, 1), !0) : !1;
  }
};
addArrayExtension("at", simpleFunc);
addArrayExtension("concat", simpleFunc);
addArrayExtension("flat", simpleFunc);
addArrayExtension("includes", simpleFunc);
addArrayExtension("indexOf", simpleFunc);
addArrayExtension("join", simpleFunc);
addArrayExtension("lastIndexOf", simpleFunc);
addArrayExtension("slice", simpleFunc);
addArrayExtension("toString", simpleFunc);
addArrayExtension("toLocaleString", simpleFunc);
addArrayExtension("toSorted", simpleFunc);
addArrayExtension("toSpliced", simpleFunc);
addArrayExtension("with", simpleFunc);
addArrayExtension("every", mapLikeFunc);
addArrayExtension("filter", mapLikeFunc);
addArrayExtension("find", mapLikeFunc);
addArrayExtension("findIndex", mapLikeFunc);
addArrayExtension("findLast", mapLikeFunc);
addArrayExtension("findLastIndex", mapLikeFunc);
addArrayExtension("flatMap", mapLikeFunc);
addArrayExtension("forEach", mapLikeFunc);
addArrayExtension("map", mapLikeFunc);
addArrayExtension("some", mapLikeFunc);
addArrayExtension("toReversed", mapLikeFunc);
addArrayExtension("reduce", reduceLikeFunc);
addArrayExtension("reduceRight", reduceLikeFunc);
function addArrayExtension(rv, tv) {
  typeof Array.prototype[rv] == "function" && (arrayExtensions[rv] = tv(rv));
}
function simpleFunc(rv) {
  return function() {
    var tv = this[$mobx];
    tv.atom_.reportObserved();
    var ev = tv.dehanceValues_(tv.values_);
    return ev[rv].apply(ev, arguments);
  };
}
function mapLikeFunc(rv) {
  return function(tv, ev) {
    var iv = this, ov = this[$mobx];
    ov.atom_.reportObserved();
    var av = ov.dehanceValues_(ov.values_);
    return av[rv](function(sv, lv) {
      return tv.call(ev, sv, lv, iv);
    });
  };
}
function reduceLikeFunc(rv) {
  return function() {
    var tv = this, ev = this[$mobx];
    ev.atom_.reportObserved();
    var iv = ev.dehanceValues_(ev.values_), ov = arguments[0];
    return arguments[0] = function(av, sv, lv) {
      return ov(av, sv, lv, tv);
    }, iv[rv].apply(iv, arguments);
  };
}
var isObservableArrayAdministration = /* @__PURE__ */ createInstanceofPredicate("ObservableArrayAdministration", ObservableArrayAdministration);
function isObservableArray(rv) {
  return isObject$2(rv) && isObservableArrayAdministration(rv[$mobx]);
}
var ObservableMapMarker = {}, ADD = "add", DELETE = "delete", ObservableMap = /* @__PURE__ */ function() {
  function rv(ev, iv, ov) {
    var av = this;
    iv === void 0 && (iv = deepEnhancer), ov === void 0 && (ov = "ObservableMap"), this.enhancer_ = void 0, this.name_ = void 0, this[$mobx] = ObservableMapMarker, this.data_ = void 0, this.hasMap_ = void 0, this.keysAtom_ = void 0, this.interceptors_ = void 0, this.changeListeners_ = void 0, this.dehancer = void 0, this.enhancer_ = iv, this.name_ = ov, isFunction$3(Map) || die(18), initObservable(function() {
      av.keysAtom_ = createAtom("ObservableMap.keys()"), av.data_ = /* @__PURE__ */ new Map(), av.hasMap_ = /* @__PURE__ */ new Map(), ev && av.merge(ev);
    });
  }
  var tv = rv.prototype;
  return tv.has_ = function(iv) {
    return this.data_.has(iv);
  }, tv.has = function(iv) {
    var ov = this;
    if (!globalState.trackingDerivation)
      return this.has_(iv);
    var av = this.hasMap_.get(iv);
    if (!av) {
      var sv = av = new ObservableValue(this.has_(iv), referenceEnhancer, "ObservableMap.key?", !1);
      this.hasMap_.set(iv, sv), onBecomeUnobserved(sv, function() {
        return ov.hasMap_.delete(iv);
      });
    }
    return av.get();
  }, tv.set = function(iv, ov) {
    var av = this.has_(iv);
    if (hasInterceptors(this)) {
      var sv = interceptChange(this, {
        type: av ? UPDATE : ADD,
        object: this,
        newValue: ov,
        name: iv
      });
      if (!sv)
        return this;
      ov = sv.newValue;
    }
    return av ? this.updateValue_(iv, ov) : this.addValue_(iv, ov), this;
  }, tv.delete = function(iv) {
    var ov = this;
    if (this.keysAtom_, hasInterceptors(this)) {
      var av = interceptChange(this, {
        type: DELETE,
        object: this,
        name: iv
      });
      if (!av)
        return !1;
    }
    if (this.has_(iv)) {
      var sv = isSpyEnabled(), lv = hasListeners(this), uv = lv || sv ? {
        observableKind: "map",
        debugObjectName: this.name_,
        type: DELETE,
        object: this,
        oldValue: this.data_.get(iv).value_,
        name: iv
      } : null;
      return transaction(function() {
        var cv;
        ov.keysAtom_.reportChanged(), (cv = ov.hasMap_.get(iv)) == null || cv.setNewValue_(!1);
        var dv = ov.data_.get(iv);
        dv.setNewValue_(void 0), ov.data_.delete(iv);
      }), lv && notifyListeners(this, uv), !0;
    }
    return !1;
  }, tv.updateValue_ = function(iv, ov) {
    var av = this.data_.get(iv);
    if (ov = av.prepareNewValue_(ov), ov !== globalState.UNCHANGED) {
      var sv = isSpyEnabled(), lv = hasListeners(this), uv = lv || sv ? {
        observableKind: "map",
        debugObjectName: this.name_,
        type: UPDATE,
        object: this,
        oldValue: av.value_,
        name: iv,
        newValue: ov
      } : null;
      av.setNewValue_(ov), lv && notifyListeners(this, uv);
    }
  }, tv.addValue_ = function(iv, ov) {
    var av = this;
    this.keysAtom_, transaction(function() {
      var cv, dv = new ObservableValue(ov, av.enhancer_, "ObservableMap.key", !1);
      av.data_.set(iv, dv), ov = dv.value_, (cv = av.hasMap_.get(iv)) == null || cv.setNewValue_(!0), av.keysAtom_.reportChanged();
    });
    var sv = isSpyEnabled(), lv = hasListeners(this), uv = lv || sv ? {
      observableKind: "map",
      debugObjectName: this.name_,
      type: ADD,
      object: this,
      name: iv,
      newValue: ov
    } : null;
    lv && notifyListeners(this, uv);
  }, tv.get = function(iv) {
    return this.has(iv) ? this.dehanceValue_(this.data_.get(iv).get()) : this.dehanceValue_(void 0);
  }, tv.dehanceValue_ = function(iv) {
    return this.dehancer !== void 0 ? this.dehancer(iv) : iv;
  }, tv.keys = function() {
    return this.keysAtom_.reportObserved(), this.data_.keys();
  }, tv.values = function() {
    var iv = this, ov = this.keys();
    return makeIterable({
      next: function() {
        var sv = ov.next(), lv = sv.done, uv = sv.value;
        return {
          done: lv,
          value: lv ? void 0 : iv.get(uv)
        };
      }
    });
  }, tv.entries = function() {
    var iv = this, ov = this.keys();
    return makeIterable({
      next: function() {
        var sv = ov.next(), lv = sv.done, uv = sv.value;
        return {
          done: lv,
          value: lv ? void 0 : [uv, iv.get(uv)]
        };
      }
    });
  }, tv[Symbol.iterator] = function() {
    return this.entries();
  }, tv.forEach = function(iv, ov) {
    for (var av = _createForOfIteratorHelperLoose(this), sv; !(sv = av()).done; ) {
      var lv = sv.value, uv = lv[0], cv = lv[1];
      iv.call(ov, cv, uv, this);
    }
  }, tv.merge = function(iv) {
    var ov = this;
    return isObservableMap(iv) && (iv = new Map(iv)), transaction(function() {
      isPlainObject$2(iv) ? getPlainObjectKeys(iv).forEach(function(av) {
        return ov.set(av, iv[av]);
      }) : Array.isArray(iv) ? iv.forEach(function(av) {
        var sv = av[0], lv = av[1];
        return ov.set(sv, lv);
      }) : isES6Map(iv) ? (isPlainES6Map(iv) || die(19, iv), iv.forEach(function(av, sv) {
        return ov.set(sv, av);
      })) : iv != null && die(20, iv);
    }), this;
  }, tv.clear = function() {
    var iv = this;
    transaction(function() {
      untracked(function() {
        for (var ov = _createForOfIteratorHelperLoose(iv.keys()), av; !(av = ov()).done; ) {
          var sv = av.value;
          iv.delete(sv);
        }
      });
    });
  }, tv.replace = function(iv) {
    var ov = this;
    return transaction(function() {
      for (var av = convertToMap(iv), sv = /* @__PURE__ */ new Map(), lv = !1, uv = _createForOfIteratorHelperLoose(ov.data_.keys()), cv; !(cv = uv()).done; ) {
        var dv = cv.value;
        if (!av.has(dv)) {
          var hv = ov.delete(dv);
          if (hv)
            lv = !0;
          else {
            var pv = ov.data_.get(dv);
            sv.set(dv, pv);
          }
        }
      }
      for (var yv = _createForOfIteratorHelperLoose(av.entries()), Sv; !(Sv = yv()).done; ) {
        var _v = Sv.value, Ev = _v[0], wv = _v[1], xv = ov.data_.has(Ev);
        if (ov.set(Ev, wv), ov.data_.has(Ev)) {
          var Cv = ov.data_.get(Ev);
          sv.set(Ev, Cv), xv || (lv = !0);
        }
      }
      if (!lv)
        if (ov.data_.size !== sv.size)
          ov.keysAtom_.reportChanged();
        else
          for (var Av = ov.data_.keys(), Ov = sv.keys(), Lv = Av.next(), jv = Ov.next(); !Lv.done; ) {
            if (Lv.value !== jv.value) {
              ov.keysAtom_.reportChanged();
              break;
            }
            Lv = Av.next(), jv = Ov.next();
          }
      ov.data_ = sv;
    }), this;
  }, tv.toString = function() {
    return "[object ObservableMap]";
  }, tv.toJSON = function() {
    return Array.from(this);
  }, tv.observe_ = function(iv, ov) {
    return registerListener(this, iv);
  }, tv.intercept_ = function(iv) {
    return registerInterceptor(this, iv);
  }, _createClass(rv, [{
    key: "size",
    get: function() {
      return this.keysAtom_.reportObserved(), this.data_.size;
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Map";
    }
  }]);
}(), isObservableMap = /* @__PURE__ */ createInstanceofPredicate("ObservableMap", ObservableMap);
function convertToMap(rv) {
  if (isES6Map(rv) || isObservableMap(rv))
    return rv;
  if (Array.isArray(rv))
    return new Map(rv);
  if (isPlainObject$2(rv)) {
    var tv = /* @__PURE__ */ new Map();
    for (var ev in rv)
      tv.set(ev, rv[ev]);
    return tv;
  } else
    return die(21, rv);
}
var ObservableSetMarker = {}, ObservableSet = /* @__PURE__ */ function() {
  function rv(ev, iv, ov) {
    var av = this;
    iv === void 0 && (iv = deepEnhancer), ov === void 0 && (ov = "ObservableSet"), this.name_ = void 0, this[$mobx] = ObservableSetMarker, this.data_ = /* @__PURE__ */ new Set(), this.atom_ = void 0, this.changeListeners_ = void 0, this.interceptors_ = void 0, this.dehancer = void 0, this.enhancer_ = void 0, this.name_ = ov, isFunction$3(Set) || die(22), this.enhancer_ = function(sv, lv) {
      return iv(sv, lv, ov);
    }, initObservable(function() {
      av.atom_ = createAtom(av.name_), ev && av.replace(ev);
    });
  }
  var tv = rv.prototype;
  return tv.dehanceValue_ = function(iv) {
    return this.dehancer !== void 0 ? this.dehancer(iv) : iv;
  }, tv.clear = function() {
    var iv = this;
    transaction(function() {
      untracked(function() {
        for (var ov = _createForOfIteratorHelperLoose(iv.data_.values()), av; !(av = ov()).done; ) {
          var sv = av.value;
          iv.delete(sv);
        }
      });
    });
  }, tv.forEach = function(iv, ov) {
    for (var av = _createForOfIteratorHelperLoose(this), sv; !(sv = av()).done; ) {
      var lv = sv.value;
      iv.call(ov, lv, lv, this);
    }
  }, tv.add = function(iv) {
    var ov = this;
    if (this.atom_, hasInterceptors(this)) {
      var av = interceptChange(this, {
        type: ADD,
        object: this,
        newValue: iv
      });
      if (!av)
        return this;
    }
    if (!this.has(iv)) {
      transaction(function() {
        ov.data_.add(ov.enhancer_(iv, void 0)), ov.atom_.reportChanged();
      });
      var sv = !1, lv = hasListeners(this), uv = lv || sv ? {
        observableKind: "set",
        debugObjectName: this.name_,
        type: ADD,
        object: this,
        newValue: iv
      } : null;
      lv && notifyListeners(this, uv);
    }
    return this;
  }, tv.delete = function(iv) {
    var ov = this;
    if (hasInterceptors(this)) {
      var av = interceptChange(this, {
        type: DELETE,
        object: this,
        oldValue: iv
      });
      if (!av)
        return !1;
    }
    if (this.has(iv)) {
      var sv = !1, lv = hasListeners(this), uv = lv || sv ? {
        observableKind: "set",
        debugObjectName: this.name_,
        type: DELETE,
        object: this,
        oldValue: iv
      } : null;
      return transaction(function() {
        ov.atom_.reportChanged(), ov.data_.delete(iv);
      }), lv && notifyListeners(this, uv), !0;
    }
    return !1;
  }, tv.has = function(iv) {
    return this.atom_.reportObserved(), this.data_.has(this.dehanceValue_(iv));
  }, tv.entries = function() {
    var iv = 0, ov = Array.from(this.keys()), av = Array.from(this.values());
    return makeIterable({
      next: function() {
        var lv = iv;
        return iv += 1, lv < av.length ? {
          value: [ov[lv], av[lv]],
          done: !1
        } : {
          done: !0
        };
      }
    });
  }, tv.keys = function() {
    return this.values();
  }, tv.values = function() {
    this.atom_.reportObserved();
    var iv = this, ov = 0, av = Array.from(this.data_.values());
    return makeIterable({
      next: function() {
        return ov < av.length ? {
          value: iv.dehanceValue_(av[ov++]),
          done: !1
        } : {
          done: !0
        };
      }
    });
  }, tv.intersection = function(iv) {
    if (isES6Set(iv) && !isObservableSet(iv))
      return iv.intersection(this);
    var ov = new Set(this);
    return ov.intersection(iv);
  }, tv.union = function(iv) {
    if (isES6Set(iv) && !isObservableSet(iv))
      return iv.union(this);
    var ov = new Set(this);
    return ov.union(iv);
  }, tv.difference = function(iv) {
    return new Set(this).difference(iv);
  }, tv.symmetricDifference = function(iv) {
    if (isES6Set(iv) && !isObservableSet(iv))
      return iv.symmetricDifference(this);
    var ov = new Set(this);
    return ov.symmetricDifference(iv);
  }, tv.isSubsetOf = function(iv) {
    return new Set(this).isSubsetOf(iv);
  }, tv.isSupersetOf = function(iv) {
    return new Set(this).isSupersetOf(iv);
  }, tv.isDisjointFrom = function(iv) {
    if (isES6Set(iv) && !isObservableSet(iv))
      return iv.isDisjointFrom(this);
    var ov = new Set(this);
    return ov.isDisjointFrom(iv);
  }, tv.replace = function(iv) {
    var ov = this;
    return isObservableSet(iv) && (iv = new Set(iv)), transaction(function() {
      Array.isArray(iv) ? (ov.clear(), iv.forEach(function(av) {
        return ov.add(av);
      })) : isES6Set(iv) ? (ov.clear(), iv.forEach(function(av) {
        return ov.add(av);
      })) : iv != null && die("Cannot initialize set from " + iv);
    }), this;
  }, tv.observe_ = function(iv, ov) {
    return registerListener(this, iv);
  }, tv.intercept_ = function(iv) {
    return registerInterceptor(this, iv);
  }, tv.toJSON = function() {
    return Array.from(this);
  }, tv.toString = function() {
    return "[object ObservableSet]";
  }, tv[Symbol.iterator] = function() {
    return this.values();
  }, _createClass(rv, [{
    key: "size",
    get: function() {
      return this.atom_.reportObserved(), this.data_.size;
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Set";
    }
  }]);
}(), isObservableSet = /* @__PURE__ */ createInstanceofPredicate("ObservableSet", ObservableSet), descriptorCache = /* @__PURE__ */ Object.create(null), REMOVE = "remove", ObservableObjectAdministration = /* @__PURE__ */ function() {
  function rv(ev, iv, ov, av) {
    iv === void 0 && (iv = /* @__PURE__ */ new Map()), av === void 0 && (av = autoAnnotation), this.target_ = void 0, this.values_ = void 0, this.name_ = void 0, this.defaultAnnotation_ = void 0, this.keysAtom_ = void 0, this.changeListeners_ = void 0, this.interceptors_ = void 0, this.proxy_ = void 0, this.isPlainObject_ = void 0, this.appliedAnnotations_ = void 0, this.pendingKeys_ = void 0, this.target_ = ev, this.values_ = iv, this.name_ = ov, this.defaultAnnotation_ = av, this.keysAtom_ = new Atom("ObservableObject.keys"), this.isPlainObject_ = isPlainObject$2(this.target_);
  }
  var tv = rv.prototype;
  return tv.getObservablePropValue_ = function(iv) {
    return this.values_.get(iv).get();
  }, tv.setObservablePropValue_ = function(iv, ov) {
    var av = this.values_.get(iv);
    if (av instanceof ComputedValue)
      return av.set(ov), !0;
    if (hasInterceptors(this)) {
      var sv = interceptChange(this, {
        type: UPDATE,
        object: this.proxy_ || this.target_,
        name: iv,
        newValue: ov
      });
      if (!sv)
        return null;
      ov = sv.newValue;
    }
    if (ov = av.prepareNewValue_(ov), ov !== globalState.UNCHANGED) {
      var lv = hasListeners(this), uv = !1, cv = lv || uv ? {
        type: UPDATE,
        observableKind: "object",
        debugObjectName: this.name_,
        object: this.proxy_ || this.target_,
        oldValue: av.value_,
        name: iv,
        newValue: ov
      } : null;
      av.setNewValue_(ov), lv && notifyListeners(this, cv);
    }
    return !0;
  }, tv.get_ = function(iv) {
    return globalState.trackingDerivation && !hasProp(this.target_, iv) && this.has_(iv), this.target_[iv];
  }, tv.set_ = function(iv, ov, av) {
    return av === void 0 && (av = !1), hasProp(this.target_, iv) ? this.values_.has(iv) ? this.setObservablePropValue_(iv, ov) : av ? Reflect.set(this.target_, iv, ov) : (this.target_[iv] = ov, !0) : this.extend_(iv, {
      value: ov,
      enumerable: !0,
      writable: !0,
      configurable: !0
    }, this.defaultAnnotation_, av);
  }, tv.has_ = function(iv) {
    if (!globalState.trackingDerivation)
      return iv in this.target_;
    this.pendingKeys_ || (this.pendingKeys_ = /* @__PURE__ */ new Map());
    var ov = this.pendingKeys_.get(iv);
    return ov || (ov = new ObservableValue(iv in this.target_, referenceEnhancer, "ObservableObject.key?", !1), this.pendingKeys_.set(iv, ov)), ov.get();
  }, tv.make_ = function(iv, ov) {
    if (ov === !0 && (ov = this.defaultAnnotation_), ov !== !1) {
      if (!(iv in this.target_)) {
        var av;
        if ((av = this.target_[storedAnnotationsSymbol]) != null && av[iv])
          return;
        die(1, ov.annotationType_, this.name_ + "." + iv.toString());
      }
      for (var sv = this.target_; sv && sv !== objectPrototype; ) {
        var lv = getDescriptor(sv, iv);
        if (lv) {
          var uv = ov.make_(this, iv, lv, sv);
          if (uv === 0)
            return;
          if (uv === 1)
            break;
        }
        sv = Object.getPrototypeOf(sv);
      }
      recordAnnotationApplied(this, ov, iv);
    }
  }, tv.extend_ = function(iv, ov, av, sv) {
    if (sv === void 0 && (sv = !1), av === !0 && (av = this.defaultAnnotation_), av === !1)
      return this.defineProperty_(iv, ov, sv);
    var lv = av.extend_(this, iv, ov, sv);
    return lv && recordAnnotationApplied(this, av, iv), lv;
  }, tv.defineProperty_ = function(iv, ov, av) {
    av === void 0 && (av = !1), this.keysAtom_;
    try {
      startBatch();
      var sv = this.delete_(iv);
      if (!sv)
        return sv;
      if (hasInterceptors(this)) {
        var lv = interceptChange(this, {
          object: this.proxy_ || this.target_,
          name: iv,
          type: ADD,
          newValue: ov.value
        });
        if (!lv)
          return null;
        var uv = lv.newValue;
        ov.value !== uv && (ov = _extends$8({}, ov, {
          value: uv
        }));
      }
      if (av) {
        if (!Reflect.defineProperty(this.target_, iv, ov))
          return !1;
      } else
        defineProperty(this.target_, iv, ov);
      this.notifyPropertyAddition_(iv, ov.value);
    } finally {
      endBatch();
    }
    return !0;
  }, tv.defineObservableProperty_ = function(iv, ov, av, sv) {
    sv === void 0 && (sv = !1), this.keysAtom_;
    try {
      startBatch();
      var lv = this.delete_(iv);
      if (!lv)
        return lv;
      if (hasInterceptors(this)) {
        var uv = interceptChange(this, {
          object: this.proxy_ || this.target_,
          name: iv,
          type: ADD,
          newValue: ov
        });
        if (!uv)
          return null;
        ov = uv.newValue;
      }
      var cv = getCachedObservablePropDescriptor(iv), dv = {
        configurable: globalState.safeDescriptors ? this.isPlainObject_ : !0,
        enumerable: !0,
        get: cv.get,
        set: cv.set
      };
      if (sv) {
        if (!Reflect.defineProperty(this.target_, iv, dv))
          return !1;
      } else
        defineProperty(this.target_, iv, dv);
      var hv = new ObservableValue(ov, av, "ObservableObject.key", !1);
      this.values_.set(iv, hv), this.notifyPropertyAddition_(iv, hv.value_);
    } finally {
      endBatch();
    }
    return !0;
  }, tv.defineComputedProperty_ = function(iv, ov, av) {
    av === void 0 && (av = !1), this.keysAtom_;
    try {
      startBatch();
      var sv = this.delete_(iv);
      if (!sv)
        return sv;
      if (hasInterceptors(this)) {
        var lv = interceptChange(this, {
          object: this.proxy_ || this.target_,
          name: iv,
          type: ADD,
          newValue: void 0
        });
        if (!lv)
          return null;
      }
      ov.name || (ov.name = "ObservableObject.key"), ov.context = this.proxy_ || this.target_;
      var uv = getCachedObservablePropDescriptor(iv), cv = {
        configurable: globalState.safeDescriptors ? this.isPlainObject_ : !0,
        enumerable: !1,
        get: uv.get,
        set: uv.set
      };
      if (av) {
        if (!Reflect.defineProperty(this.target_, iv, cv))
          return !1;
      } else
        defineProperty(this.target_, iv, cv);
      this.values_.set(iv, new ComputedValue(ov)), this.notifyPropertyAddition_(iv, void 0);
    } finally {
      endBatch();
    }
    return !0;
  }, tv.delete_ = function(iv, ov) {
    if (ov === void 0 && (ov = !1), this.keysAtom_, !hasProp(this.target_, iv))
      return !0;
    if (hasInterceptors(this)) {
      var av = interceptChange(this, {
        object: this.proxy_ || this.target_,
        name: iv,
        type: REMOVE
      });
      if (!av)
        return null;
    }
    try {
      var sv;
      startBatch();
      var lv = hasListeners(this), uv = !1, cv = this.values_.get(iv), dv = void 0;
      if (!cv && (lv || uv)) {
        var hv;
        dv = (hv = getDescriptor(this.target_, iv)) == null ? void 0 : hv.value;
      }
      if (ov) {
        if (!Reflect.deleteProperty(this.target_, iv))
          return !1;
      } else
        delete this.target_[iv];
      if (cv && (this.values_.delete(iv), cv instanceof ObservableValue && (dv = cv.value_), propagateChanged(cv)), this.keysAtom_.reportChanged(), (sv = this.pendingKeys_) == null || (sv = sv.get(iv)) == null || sv.set(iv in this.target_), lv || uv) {
        var pv = {
          type: REMOVE,
          observableKind: "object",
          object: this.proxy_ || this.target_,
          debugObjectName: this.name_,
          oldValue: dv,
          name: iv
        };
        lv && notifyListeners(this, pv);
      }
    } finally {
      endBatch();
    }
    return !0;
  }, tv.observe_ = function(iv, ov) {
    return registerListener(this, iv);
  }, tv.intercept_ = function(iv) {
    return registerInterceptor(this, iv);
  }, tv.notifyPropertyAddition_ = function(iv, ov) {
    var av, sv = hasListeners(this), lv = !1;
    if (sv || lv) {
      var uv = sv || lv ? {
        type: ADD,
        observableKind: "object",
        debugObjectName: this.name_,
        object: this.proxy_ || this.target_,
        name: iv,
        newValue: ov
      } : null;
      sv && notifyListeners(this, uv);
    }
    (av = this.pendingKeys_) == null || (av = av.get(iv)) == null || av.set(!0), this.keysAtom_.reportChanged();
  }, tv.ownKeys_ = function() {
    return this.keysAtom_.reportObserved(), ownKeys$1(this.target_);
  }, tv.keys_ = function() {
    return this.keysAtom_.reportObserved(), Object.keys(this.target_);
  }, rv;
}();
function asObservableObject(rv, tv) {
  var ev;
  if (hasProp(rv, $mobx))
    return rv;
  var iv = (ev = tv == null ? void 0 : tv.name) != null ? ev : "ObservableObject", ov = new ObservableObjectAdministration(rv, /* @__PURE__ */ new Map(), String(iv), getAnnotationFromOptions(tv));
  return addHiddenProp(rv, $mobx, ov), rv;
}
var isObservableObjectAdministration = /* @__PURE__ */ createInstanceofPredicate("ObservableObjectAdministration", ObservableObjectAdministration);
function getCachedObservablePropDescriptor(rv) {
  return descriptorCache[rv] || (descriptorCache[rv] = {
    get: function() {
      return this[$mobx].getObservablePropValue_(rv);
    },
    set: function(ev) {
      return this[$mobx].setObservablePropValue_(rv, ev);
    }
  });
}
function isObservableObject(rv) {
  return isObject$2(rv) ? isObservableObjectAdministration(rv[$mobx]) : !1;
}
function recordAnnotationApplied(rv, tv, ev) {
  var iv;
  (iv = rv.target_[storedAnnotationsSymbol]) == null || delete iv[ev];
}
var ENTRY_0 = /* @__PURE__ */ createArrayEntryDescriptor(0), safariPrototypeSetterInheritanceBug = /* @__PURE__ */ function() {
  var rv = !1, tv = {};
  return Object.defineProperty(tv, "0", {
    set: function() {
      rv = !0;
    }
  }), Object.create(tv)[0] = 1, rv === !1;
}(), OBSERVABLE_ARRAY_BUFFER_SIZE = 0, StubArray = function() {
};
function inherit(rv, tv) {
  Object.setPrototypeOf ? Object.setPrototypeOf(rv.prototype, tv) : rv.prototype.__proto__ !== void 0 ? rv.prototype.__proto__ = tv : rv.prototype = tv;
}
inherit(StubArray, Array.prototype);
var LegacyObservableArray = /* @__PURE__ */ function(rv) {
  function tv(iv, ov, av, sv) {
    var lv;
    return av === void 0 && (av = "ObservableArray"), sv === void 0 && (sv = !1), lv = rv.call(this) || this, initObservable(function() {
      var uv = new ObservableArrayAdministration(av, ov, sv, !0);
      uv.proxy_ = lv, addHiddenFinalProp(lv, $mobx, uv), iv && iv.length && lv.spliceWithArray(0, 0, iv), safariPrototypeSetterInheritanceBug && Object.defineProperty(lv, "0", ENTRY_0);
    }), lv;
  }
  _inheritsLoose(tv, rv);
  var ev = tv.prototype;
  return ev.concat = function() {
    this[$mobx].atom_.reportObserved();
    for (var ov = arguments.length, av = new Array(ov), sv = 0; sv < ov; sv++)
      av[sv] = arguments[sv];
    return Array.prototype.concat.apply(
      this.slice(),
      //@ts-ignore
      av.map(function(lv) {
        return isObservableArray(lv) ? lv.slice() : lv;
      })
    );
  }, ev[Symbol.iterator] = function() {
    var iv = this, ov = 0;
    return makeIterable({
      next: function() {
        return ov < iv.length ? {
          value: iv[ov++],
          done: !1
        } : {
          done: !0,
          value: void 0
        };
      }
    });
  }, _createClass(tv, [{
    key: "length",
    get: function() {
      return this[$mobx].getArrayLength_();
    },
    set: function(ov) {
      this[$mobx].setArrayLength_(ov);
    }
  }, {
    key: Symbol.toStringTag,
    get: function() {
      return "Array";
    }
  }]);
}(StubArray);
Object.entries(arrayExtensions).forEach(function(rv) {
  var tv = rv[0], ev = rv[1];
  tv !== "concat" && addHiddenProp(LegacyObservableArray.prototype, tv, ev);
});
function createArrayEntryDescriptor(rv) {
  return {
    enumerable: !1,
    configurable: !0,
    get: function() {
      return this[$mobx].get_(rv);
    },
    set: function(ev) {
      this[$mobx].set_(rv, ev);
    }
  };
}
function createArrayBufferItem(rv) {
  defineProperty(LegacyObservableArray.prototype, "" + rv, createArrayEntryDescriptor(rv));
}
function reserveArrayBuffer(rv) {
  if (rv > OBSERVABLE_ARRAY_BUFFER_SIZE) {
    for (var tv = OBSERVABLE_ARRAY_BUFFER_SIZE; tv < rv + 100; tv++)
      createArrayBufferItem(tv);
    OBSERVABLE_ARRAY_BUFFER_SIZE = rv;
  }
}
reserveArrayBuffer(1e3);
function createLegacyArray(rv, tv, ev) {
  return new LegacyObservableArray(rv, tv, ev);
}
function getAtom(rv, tv) {
  if (typeof rv == "object" && rv !== null) {
    if (isObservableArray(rv))
      return tv !== void 0 && die(23), rv[$mobx].atom_;
    if (isObservableSet(rv))
      return rv.atom_;
    if (isObservableMap(rv)) {
      if (tv === void 0)
        return rv.keysAtom_;
      var ev = rv.data_.get(tv) || rv.hasMap_.get(tv);
      return ev || die(25, tv, getDebugName(rv)), ev;
    }
    if (isObservableObject(rv)) {
      if (!tv)
        return die(26);
      var iv = rv[$mobx].values_.get(tv);
      return iv || die(27, tv, getDebugName(rv)), iv;
    }
    if (isAtom(rv) || isComputedValue(rv) || isReaction(rv))
      return rv;
  } else if (isFunction$3(rv) && isReaction(rv[$mobx]))
    return rv[$mobx];
  die(28);
}
function getAdministration(rv, tv) {
  if (rv || die(29), isAtom(rv) || isComputedValue(rv) || isReaction(rv) || isObservableMap(rv) || isObservableSet(rv))
    return rv;
  if (rv[$mobx])
    return rv[$mobx];
  die(24, rv);
}
function getDebugName(rv, tv) {
  var ev;
  if (tv !== void 0)
    ev = getAtom(rv, tv);
  else {
    if (isAction(rv))
      return rv.name;
    isObservableObject(rv) || isObservableMap(rv) || isObservableSet(rv) ? ev = getAdministration(rv) : ev = getAtom(rv);
  }
  return ev.name_;
}
function initObservable(rv) {
  var tv = untrackedStart(), ev = allowStateChangesStart(!0);
  startBatch();
  try {
    return rv();
  } finally {
    endBatch(), allowStateChangesEnd(ev), untrackedEnd(tv);
  }
}
var toString$3 = objectPrototype.toString;
function deepEqual$1(rv, tv, ev) {
  return ev === void 0 && (ev = -1), eq(rv, tv, ev);
}
function eq(rv, tv, ev, iv, ov) {
  if (rv === tv)
    return rv !== 0 || 1 / rv === 1 / tv;
  if (rv == null || tv == null)
    return !1;
  if (rv !== rv)
    return tv !== tv;
  var av = typeof rv;
  if (av !== "function" && av !== "object" && typeof tv != "object")
    return !1;
  var sv = toString$3.call(rv);
  if (sv !== toString$3.call(tv))
    return !1;
  switch (sv) {
    case "[object RegExp]":
    case "[object String]":
      return "" + rv == "" + tv;
    case "[object Number]":
      return +rv != +rv ? +tv != +tv : +rv == 0 ? 1 / +rv === 1 / tv : +rv == +tv;
    case "[object Date]":
    case "[object Boolean]":
      return +rv == +tv;
    case "[object Symbol]":
      return typeof Symbol < "u" && Symbol.valueOf.call(rv) === Symbol.valueOf.call(tv);
    case "[object Map]":
    case "[object Set]":
      ev >= 0 && ev++;
      break;
  }
  rv = unwrap(rv), tv = unwrap(tv);
  var lv = sv === "[object Array]";
  if (!lv) {
    if (typeof rv != "object" || typeof tv != "object")
      return !1;
    var uv = rv.constructor, cv = tv.constructor;
    if (uv !== cv && !(isFunction$3(uv) && uv instanceof uv && isFunction$3(cv) && cv instanceof cv) && "constructor" in rv && "constructor" in tv)
      return !1;
  }
  if (ev === 0)
    return !1;
  ev < 0 && (ev = -1), iv = iv || [], ov = ov || [];
  for (var dv = iv.length; dv--; )
    if (iv[dv] === rv)
      return ov[dv] === tv;
  if (iv.push(rv), ov.push(tv), lv) {
    if (dv = rv.length, dv !== tv.length)
      return !1;
    for (; dv--; )
      if (!eq(rv[dv], tv[dv], ev - 1, iv, ov))
        return !1;
  } else {
    var hv = Object.keys(rv), pv;
    if (dv = hv.length, Object.keys(tv).length !== dv)
      return !1;
    for (; dv--; )
      if (pv = hv[dv], !(hasProp(tv, pv) && eq(rv[pv], tv[pv], ev - 1, iv, ov)))
        return !1;
  }
  return iv.pop(), ov.pop(), !0;
}
function unwrap(rv) {
  return isObservableArray(rv) ? rv.slice() : isES6Map(rv) || isObservableMap(rv) || isES6Set(rv) || isObservableSet(rv) ? Array.from(rv.entries()) : rv;
}
function makeIterable(rv) {
  return rv[Symbol.iterator] = getSelf, rv;
}
function getSelf() {
  return this;
}
["Symbol", "Map", "Set"].forEach(function(rv) {
  var tv = getGlobal$1();
  typeof tv[rv] > "u" && die("MobX requires global '" + rv + "' to be available or polyfilled");
});
typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ == "object" && __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({
  spy,
  extras: {
    getDebugName
  },
  $mobx
});
if (!reactExports.useState)
  throw new Error("mobx-react-lite requires React with Hooks support");
if (!makeObservable)
  throw new Error("mobx-react-lite@3 requires mobx at least version 6 to be available");
function defaultNoopBatch(rv) {
  rv();
}
function observerBatching(rv) {
  rv || (rv = defaultNoopBatch), configure({ reactionScheduler: rv });
}
function printDebugValue(rv) {
  return getDependencyTree(rv);
}
var REGISTRY_FINALIZE_AFTER = 1e4, REGISTRY_SWEEP_INTERVAL = 1e4, TimerBasedFinalizationRegistry = (
  /** @class */
  function() {
    function rv(tv) {
      var ev = this;
      Object.defineProperty(this, "finalize", {
        enumerable: !0,
        configurable: !0,
        writable: !0,
        value: tv
      }), Object.defineProperty(this, "registrations", {
        enumerable: !0,
        configurable: !0,
        writable: !0,
        value: /* @__PURE__ */ new Map()
      }), Object.defineProperty(this, "sweepTimeout", {
        enumerable: !0,
        configurable: !0,
        writable: !0,
        value: void 0
      }), Object.defineProperty(this, "sweep", {
        enumerable: !0,
        configurable: !0,
        writable: !0,
        value: function(iv) {
          iv === void 0 && (iv = REGISTRY_FINALIZE_AFTER), clearTimeout(ev.sweepTimeout), ev.sweepTimeout = void 0;
          var ov = Date.now();
          ev.registrations.forEach(function(av, sv) {
            ov - av.registeredAt >= iv && (ev.finalize(av.value), ev.registrations.delete(sv));
          }), ev.registrations.size > 0 && ev.scheduleSweep();
        }
      }), Object.defineProperty(this, "finalizeAllImmediately", {
        enumerable: !0,
        configurable: !0,
        writable: !0,
        value: function() {
          ev.sweep(0);
        }
      });
    }
    return Object.defineProperty(rv.prototype, "register", {
      enumerable: !1,
      configurable: !0,
      writable: !0,
      value: function(tv, ev, iv) {
        this.registrations.set(iv, {
          value: ev,
          registeredAt: Date.now()
        }), this.scheduleSweep();
      }
    }), Object.defineProperty(rv.prototype, "unregister", {
      enumerable: !1,
      configurable: !0,
      writable: !0,
      value: function(tv) {
        this.registrations.delete(tv);
      }
    }), Object.defineProperty(rv.prototype, "scheduleSweep", {
      enumerable: !1,
      configurable: !0,
      writable: !0,
      value: function() {
        this.sweepTimeout === void 0 && (this.sweepTimeout = setTimeout(this.sweep, REGISTRY_SWEEP_INTERVAL));
      }
    }), rv;
  }()
), UniversalFinalizationRegistry = typeof FinalizationRegistry < "u" ? FinalizationRegistry : TimerBasedFinalizationRegistry, observerFinalizationRegistry = new UniversalFinalizationRegistry(function(rv) {
  var tv;
  (tv = rv.reaction) === null || tv === void 0 || tv.dispose(), rv.reaction = null;
}), __read = function(rv, tv) {
  var ev = typeof Symbol == "function" && rv[Symbol.iterator];
  if (!ev)
    return rv;
  var iv = ev.call(rv), ov, av = [], sv;
  try {
    for (; (tv === void 0 || tv-- > 0) && !(ov = iv.next()).done; )
      av.push(ov.value);
  } catch (lv) {
    sv = { error: lv };
  } finally {
    try {
      ov && !ov.done && (ev = iv.return) && ev.call(iv);
    } finally {
      if (sv)
        throw sv.error;
    }
  }
  return av;
};
function observerComponentNameFor(rv) {
  return "observer".concat(rv);
}
var ObjectToBeRetainedByReact = (
  /** @class */
  /* @__PURE__ */ function() {
    function rv() {
    }
    return rv;
  }()
);
function objectToBeRetainedByReactFactory() {
  return new ObjectToBeRetainedByReact();
}
function useObserver$1(rv, tv) {
  tv === void 0 && (tv = "observed");
  var ev = __read(React.useState(objectToBeRetainedByReactFactory), 1), iv = ev[0], ov = __read(React.useState(), 2), av = ov[1], sv = function() {
    return av([]);
  }, lv = React.useRef(null);
  lv.current || (lv.current = {
    reaction: null,
    mounted: !1,
    changedBeforeMount: !1
  });
  var uv = lv.current;
  uv.reaction || (uv.reaction = new Reaction(observerComponentNameFor(tv), function() {
    uv.mounted ? sv() : uv.changedBeforeMount = !0;
  }), observerFinalizationRegistry.register(iv, uv, uv)), React.useDebugValue(uv.reaction, printDebugValue), React.useEffect(function() {
    return observerFinalizationRegistry.unregister(uv), uv.mounted = !0, uv.reaction ? uv.changedBeforeMount && (uv.changedBeforeMount = !1, sv()) : (uv.reaction = new Reaction(observerComponentNameFor(tv), function() {
      sv();
    }), sv()), function() {
      uv.reaction.dispose(), uv.reaction = null, uv.mounted = !1, uv.changedBeforeMount = !1;
    };
  }, []);
  var cv, dv;
  if (uv.reaction.track(function() {
    try {
      cv = rv();
    } catch (hv) {
      dv = hv;
    }
  }), dv)
    throw dv;
  return cv;
}
var hasSymbol = typeof Symbol == "function" && Symbol.for;
hasSymbol ? Symbol.for("react.forward_ref") : typeof reactExports.forwardRef == "function" && reactExports.forwardRef(function(rv) {
  return null;
}).$$typeof;
hasSymbol ? Symbol.for("react.memo") : typeof reactExports.memo == "function" && reactExports.memo(function(rv) {
  return null;
}).$$typeof;
var _a$1;
observerBatching(reactDomExports.unstable_batchedUpdates);
_a$1 = observerFinalizationRegistry.finalizeAllImmediately;
function useObserver(rv, tv) {
  return tv === void 0 && (tv = "observed"), useObserver$1(rv, tv);
}
const p3 = class p3 {
  constructor() {
    T$(this, "instanceId", ar$2());
    T$(this, "log", new qe$1("pa"));
    T$(this, "coreLogger", this.log.createLogger("core"));
    T$(this, "_config", null);
    T$(this, "_account");
    T$(this, "_accountStatus", "idle");
    T$(this, "_productDataSource");
    T$(this, "_eventBus", new ed("perant", this.coreLogger));
    this.coreLogger = qe$1.withPrefix(this.coreLogger, "PerantStore"), makeObservable(
      this,
      {
        _config: observable,
        _account: observable,
        _productDataSource: observable,
        _accountStatus: observable,
        config: computed,
        account: computed,
        accountName: computed,
        accountStatus: computed,
        configure: action,
        setProductDataSource: action,
        setAddToCartConfig: action,
        setProductId: action,
        setOrderFormId: action,
        setOrganization: action,
        setUpdateUTMConfig: action
      },
      { name: "PerantStore", autoBind: !0 }
    );
  }
  static instance() {
    if (!!window.perant)
      p3._instance = window.perant.store;
    else {
      const ev = new p3();
      p3._instance = ev;
    }
    return window.perant || (window.perant = {}, window.pa = {}, p3._instance.coreLogger.debug(
      "Initialized perant window object"
    )), window.perant.store = p3._instance, window.pa = window.perant, p3._instance;
  }
  async configure(tv) {
    var ev;
    try {
      const iv = (ev = this._config) == null ? void 0 : ev.account;
      if (this._config = tv, iv !== tv.account) {
        this.setAccountStatus("loading");
        const ov = await getAccount(tv.account);
        this.setAccount(ov), this.setAccountStatus("success");
      }
      if (tv.getProductDataSource) {
        const ov = await tv.getProductDataSource();
        this.setProductDataSource(ov);
      }
    } catch (iv) {
      this.setAccountStatus("error"), this.coreLogger.error("Error running configure:", iv);
    }
  }
  setAccount(tv) {
    this._account = tv;
  }
  setAccountStatus(tv) {
    this._accountStatus = tv;
  }
  setProductDataSource(tv) {
    this._productDataSource = tv;
  }
  setProductId(tv) {
    this._config && (this._config.productId = tv);
  }
  setOrderFormId(tv) {
    this._config && (this._config.orderFormId = tv);
  }
  setAddToCartConfig(tv) {
    if (!this._config)
      throw new Error(
        "you cannot set addToCartConfig before running configure()"
      );
    this._config.addToCartConfig = tv;
  }
  setOrganization(tv) {
    this._config && (this._config.organization = tv);
  }
  setUpdateUTMConfig(tv) {
    this._config && (this._config.updateUTMConfig = tv);
  }
  get version() {
    return p3.version;
  }
  get config() {
    return this._config;
  }
  get account() {
    return this._account;
  }
  get accountStatus() {
    return this._accountStatus;
  }
  get accountName() {
    var tv;
    return (tv = this._config) == null ? void 0 : tv.account;
  }
  get productDataSource() {
    return this._productDataSource;
  }
  get eventBus() {
    return this._eventBus;
  }
};
T$(p3, "version", "6"), T$(p3, "_instance");
let PerantStore = p3;
const getPerant = (rv) => {
  const tv = PerantStore.instance();
  return when(
    () => !!tv.account,
    () => rv == null ? void 0 : rv(tv)
  ), tv;
};
function usePA() {
  return reactExports.useMemo(getPerant, []);
}
function usePerant(rv) {
  const tv = usePA();
  return useObserver(() => rv(tv));
}
const useAccount = () => {
  const rv = usePerant((lv) => lv.account), tv = usePerant((lv) => lv.accountName), ev = usePerant((lv) => lv.accountStatus), iv = ["idle", "loading"].includes(ev), ov = ev === "error", av = ev === "success", sv = useMutation({
    mutationFn: (lv) => accountService.save(lv)
  });
  return {
    account: rv,
    accountName: tv,
    isLoading: iv,
    isError: ov,
    isSuccess: av,
    accountStatus: ev,
    saveMutation: sv
  };
};
async function getAccount(rv) {
  return await accountService.get(rv);
}
const logger$3 = Xg("core", getPerant), defaultErrorMessage = "ps-client-call.addToCartNotification.error", addToCartMessages = {
  errorAddingToCart: defaultErrorMessage,
  errorOpeningVariationSelector: defaultErrorMessage,
  errorOpeningNewTab: defaultErrorMessage,
  successAddingToCart: "ps-client-call.addToCartNotification.success"
};
async function runAddToCartHooks(rv) {
  const tv = {
    ...rv,
    action: {
      type: Pr$3.ADD_TO_CART,
      exec: () => logger$3.error("addToCartHooks: action no implemented in validate hook")
    }
  };
  try {
    const ev = await transform(tv), iv = await validate(ev);
    await end(iv);
  } catch (ev) {
    logger$3.error("addToCartHooks: error unhandled", ev);
  }
}
async function transform(rv) {
  var av;
  const { context: tv, userAddToCartConfig: ev } = rv, iv = (av = ev == null ? void 0 : ev.hooks) == null ? void 0 : av.transform;
  let ov = rv.product;
  if (iv)
    try {
      ov = await iv({
        product: { ...ov },
        data: tv.data ?? {}
      });
    } catch (sv) {
      handleError("transform", sv);
    }
  return {
    ...rv,
    product: ov
  };
}
async function validate(rv) {
  var uv;
  const { context: tv, hookStrategy: ev, userAddToCartConfig: iv, product: ov } = rv, av = Sf$1(rv), sv = (uv = iv == null ? void 0 : iv.hooks) == null ? void 0 : uv.validate;
  let lv = ev.validate({
    ...rv,
    actionFactory: av
  });
  if (sv)
    try {
      lv = await sv({
        product: { ...ov },
        defaultAction: { ...lv },
        action: av,
        data: tv.data ?? {}
      });
    } catch (cv) {
      handleError("validate", cv);
    }
  return {
    ...rv,
    action: lv,
    actionFactory: av
  };
}
async function end(rv) {
  var Ev;
  const tv = getPerant(), { product: ev, userAddToCartConfig: iv, notifyFactory: ov, action: av, actionFactory: sv } = rv, { isVariationSelectorOpen: lv, data: uv = {} } = rv.context, cv = (Ev = iv == null ? void 0 : iv.hooks) == null ? void 0 : Ev.end, dv = av.type === Pr$3.ADD_TO_CART;
  let hv = null, pv = !1;
  const yv = () => {
    !dv || !lv || sv.openVariationSelector(!1).exec();
  }, Sv = () => {
    !dv || pv || (hv ? ov.error(addToCartMessages.errorAddingToCart) : ov.success(addToCartMessages.successAddingToCart));
  }, _v = () => {
    const wv = {
      product: ev,
      actionType: av.type,
      success: !hv,
      error: hv
    };
    tv.eventBus.emit(EventNames.ATCH_ACTION_EXECUTED, wv);
  };
  try {
    if (!av.type || !av.exec)
      throw new Error("Invalid action object, missing keys 'type' or 'exec'");
    await av.exec();
  } catch (wv) {
    handleError("end", wv), hv = wv;
  }
  if (cv)
    try {
      pv = !!await cv({
        data: uv,
        error: hv,
        notify: ov,
        actionExecuted: av
      });
    } catch (wv) {
      handleError("end", wv);
    }
  yv(), Sv(), _v();
}
function handleError(rv, tv) {
  logger$3.error(`addToCartHooks error running ${rv}: `, tv);
}
var define_import_meta_env_default$2 = { BASE_URL: "/", MODE: "production", DEV: !1, PROD: !0, SSR: !1, STAGE: "prod" };
let keyCount = 0;
function atom(rv, tv) {
  const ev = `atom${++keyCount}`, iv = {
    toString() {
      return (define_import_meta_env_default$2 ? "production" : void 0) !== "production" && this.debugLabel ? ev + ":" + this.debugLabel : ev;
    }
  };
  return typeof rv == "function" ? iv.read = rv : (iv.init = rv, iv.read = defaultRead, iv.write = defaultWrite), tv && (iv.write = tv), iv;
}
function defaultRead(rv) {
  return rv(this);
}
function defaultWrite(rv, tv, ev) {
  return tv(
    this,
    typeof ev == "function" ? ev(rv(this)) : ev
  );
}
const isSelfAtom = (rv, tv) => rv.unstable_is ? rv.unstable_is(tv) : tv === rv, hasInitialValue = (rv) => "init" in rv, isActuallyWritableAtom = (rv) => !!rv.write, cancelablePromiseMap = /* @__PURE__ */ new WeakMap(), isPendingPromise = (rv) => {
  var tv;
  return isPromiseLike$2(rv) && !((tv = cancelablePromiseMap.get(rv)) != null && tv[1]);
}, cancelPromise = (rv, tv) => {
  const ev = cancelablePromiseMap.get(rv);
  if (ev)
    ev[1] = !0, ev[0].forEach((iv) => iv(tv));
  else if ((define_import_meta_env_default$2 ? "production" : void 0) !== "production")
    throw new Error("[Bug] cancelable promise not found");
}, patchPromiseForCancelability = (rv) => {
  if (cancelablePromiseMap.has(rv))
    return;
  const tv = [/* @__PURE__ */ new Set(), !1];
  cancelablePromiseMap.set(rv, tv);
  const ev = () => {
    tv[1] = !0;
  };
  rv.then(ev, ev), rv.onCancel = (iv) => {
    tv[0].add(iv);
  };
}, isPromiseLike$2 = (rv) => typeof (rv == null ? void 0 : rv.then) == "function", isAtomStateInitialized = (rv) => "v" in rv || "e" in rv, returnAtomValue = (rv) => {
  if ("e" in rv)
    throw rv.e;
  if ((define_import_meta_env_default$2 ? "production" : void 0) !== "production" && !("v" in rv))
    throw new Error("[Bug] atom state is not initialized");
  return rv.v;
}, addPendingPromiseToDependency = (rv, tv, ev) => {
  ev.p.has(rv) || (ev.p.add(rv), tv.then(
    () => {
      ev.p.delete(rv);
    },
    () => {
      ev.p.delete(rv);
    }
  ));
}, addDependency = (rv, tv, ev, iv, ov) => {
  var av;
  if ((define_import_meta_env_default$2 ? "production" : void 0) !== "production" && iv === tv)
    throw new Error("[Bug] atom cannot depend on itself");
  ev.d.set(iv, ov.n), isPendingPromise(ev.v) && addPendingPromiseToDependency(tv, ev.v, ov), (av = ov.m) == null || av.t.add(tv), rv && addPendingDependent(rv, iv, tv);
}, createPending = () => [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map(), /* @__PURE__ */ new Set()], addPendingAtom = (rv, tv, ev) => {
  rv[0].has(tv) || rv[0].set(tv, /* @__PURE__ */ new Set()), rv[1].set(tv, ev);
}, addPendingDependent = (rv, tv, ev) => {
  const iv = rv[0].get(tv);
  iv && iv.add(ev);
}, getPendingDependents = (rv, tv) => rv[0].get(tv), addPendingFunction = (rv, tv) => {
  rv[2].add(tv);
}, flushPending = (rv) => {
  for (; rv[1].size || rv[2].size; ) {
    rv[0].clear();
    const tv = new Set(rv[1].values());
    rv[1].clear();
    const ev = new Set(rv[2]);
    rv[2].clear(), tv.forEach((iv) => {
      var ov;
      return (ov = iv.m) == null ? void 0 : ov.l.forEach((av) => av());
    }), ev.forEach((iv) => iv());
  }
}, buildStore = (rv) => {
  let tv;
  (define_import_meta_env_default$2 ? "production" : void 0) !== "production" && (tv = /* @__PURE__ */ new Set());
  const ev = (_v, Ev, wv) => {
    const xv = "v" in Ev, Cv = Ev.v, Av = isPendingPromise(Ev.v) ? Ev.v : null;
    if (isPromiseLike$2(wv)) {
      patchPromiseForCancelability(wv);
      for (const Ov of Ev.d.keys())
        addPendingPromiseToDependency(
          _v,
          wv,
          rv(Ov, Ev)
        );
      Ev.v = wv, delete Ev.e;
    } else
      Ev.v = wv, delete Ev.e;
    (!xv || !Object.is(Cv, Ev.v)) && (++Ev.n, Av && cancelPromise(Av, wv));
  }, iv = (_v, Ev, wv, xv) => {
    var Cv;
    if (!(xv != null && xv(Ev)) && isAtomStateInitialized(wv) && (wv.m || Array.from(wv.d).every(
      ([Vv, Gv]) => (
        // Recursively, read the atom state of the dependency, and
        // check if the atom epoch number is unchanged
        iv(_v, Vv, rv(Vv, wv), xv).n === Gv
      )
    )))
      return wv;
    wv.d.clear();
    let Av = !0;
    const Ov = (Vv) => {
      if (isSelfAtom(Ev, Vv)) {
        const Yv = rv(Vv, wv);
        if (!isAtomStateInitialized(Yv))
          if (hasInitialValue(Vv))
            ev(Vv, Yv, Vv.init);
          else
            throw new Error("no atom init");
        return returnAtomValue(Yv);
      }
      const Gv = iv(
        _v,
        Vv,
        rv(Vv, wv),
        xv
      );
      if (Av)
        addDependency(_v, Ev, wv, Vv, Gv);
      else {
        const Yv = createPending();
        addDependency(Yv, Ev, wv, Vv, Gv), cv(Yv, Ev, wv), flushPending(Yv);
      }
      return returnAtomValue(Gv);
    };
    let Lv, jv;
    const Dv = {
      get signal() {
        return Lv || (Lv = new AbortController()), Lv.signal;
      },
      get setSelf() {
        return (define_import_meta_env_default$2 ? "production" : void 0) !== "production" && !isActuallyWritableAtom(Ev) && console.warn("setSelf function cannot be used with read-only atom"), !jv && isActuallyWritableAtom(Ev) && (jv = (...Vv) => {
          if ((define_import_meta_env_default$2 ? "production" : void 0) !== "production" && Av && console.warn("setSelf function cannot be called in sync"), !Av)
            return uv(Ev, ...Vv);
        }), jv;
      }
    };
    try {
      const Vv = Ev.read(Ov, Dv);
      if (ev(Ev, wv, Vv), isPromiseLike$2(Vv)) {
        (Cv = Vv.onCancel) == null || Cv.call(Vv, () => Lv == null ? void 0 : Lv.abort());
        const Gv = () => {
          if (wv.m) {
            const Yv = createPending();
            cv(Yv, Ev, wv), flushPending(Yv);
          }
        };
        Vv.then(Gv, Gv);
      }
      return wv;
    } catch (Vv) {
      return delete wv.v, wv.e = Vv, ++wv.n, wv;
    } finally {
      Av = !1;
    }
  }, ov = (_v) => returnAtomValue(iv(void 0, _v, rv(_v))), av = (_v, Ev, wv) => {
    var xv, Cv;
    const Av = /* @__PURE__ */ new Map();
    for (const Ov of ((xv = wv.m) == null ? void 0 : xv.t) || [])
      Av.set(Ov, rv(Ov, wv));
    for (const Ov of wv.p)
      Av.set(
        Ov,
        rv(Ov, wv)
      );
    return (Cv = getPendingDependents(_v, Ev)) == null || Cv.forEach((Ov) => {
      Av.set(Ov, rv(Ov, wv));
    }), Av;
  }, sv = (_v, Ev, wv) => {
    const xv = [], Cv = /* @__PURE__ */ new Set(), Av = (jv, Dv) => {
      if (!Cv.has(jv)) {
        Cv.add(jv);
        for (const [Vv, Gv] of av(_v, jv, Dv))
          jv !== Vv && Av(Vv, Gv);
        xv.push([jv, Dv, Dv.n]);
      }
    };
    Av(Ev, wv);
    const Ov = /* @__PURE__ */ new Set([Ev]), Lv = (jv) => Cv.has(jv);
    for (let jv = xv.length - 1; jv >= 0; --jv) {
      const [Dv, Vv, Gv] = xv[jv];
      let Yv = !1;
      for (const Xv of Vv.d.keys())
        if (Xv !== Dv && Ov.has(Xv)) {
          Yv = !0;
          break;
        }
      Yv && (iv(_v, Dv, Vv, Lv), cv(_v, Dv, Vv), Gv !== Vv.n && (addPendingAtom(_v, Dv, Vv), Ov.add(Dv))), Cv.delete(Dv);
    }
  }, lv = (_v, Ev, wv, ...xv) => {
    const Cv = (Lv) => returnAtomValue(iv(_v, Lv, rv(Lv, wv))), Av = (Lv, ...jv) => {
      const Dv = rv(Lv, wv);
      let Vv;
      if (isSelfAtom(Ev, Lv)) {
        if (!hasInitialValue(Lv))
          throw new Error("atom not writable");
        const Gv = "v" in Dv, Yv = Dv.v, Xv = jv[0];
        ev(Lv, Dv, Xv), cv(_v, Lv, Dv), (!Gv || !Object.is(Yv, Dv.v)) && (addPendingAtom(_v, Lv, Dv), sv(_v, Lv, Dv));
      } else
        Vv = lv(_v, Lv, Dv, ...jv);
      return flushPending(_v), Vv;
    };
    return Ev.write(Cv, Av, ...xv);
  }, uv = (_v, ...Ev) => {
    const wv = createPending(), xv = lv(wv, _v, rv(_v), ...Ev);
    return flushPending(wv), xv;
  }, cv = (_v, Ev, wv) => {
    if (wv.m && !isPendingPromise(wv.v)) {
      for (const xv of wv.d.keys())
        wv.m.d.has(xv) || (dv(_v, xv, rv(xv, wv)).t.add(Ev), wv.m.d.add(xv));
      for (const xv of wv.m.d || [])
        if (!wv.d.has(xv)) {
          wv.m.d.delete(xv);
          const Cv = hv(_v, xv, rv(xv, wv));
          Cv == null || Cv.t.delete(Ev);
        }
    }
  }, dv = (_v, Ev, wv) => {
    if (!wv.m) {
      iv(_v, Ev, wv);
      for (const xv of wv.d.keys())
        dv(_v, xv, rv(xv, wv)).t.add(Ev);
      if (wv.m = {
        l: /* @__PURE__ */ new Set(),
        d: new Set(wv.d.keys()),
        t: /* @__PURE__ */ new Set()
      }, (define_import_meta_env_default$2 ? "production" : void 0) !== "production" && tv.add(Ev), isActuallyWritableAtom(Ev) && Ev.onMount) {
        const xv = wv.m, { onMount: Cv } = Ev;
        addPendingFunction(_v, () => {
          const Av = Cv(
            (...Ov) => lv(_v, Ev, wv, ...Ov)
          );
          Av && (xv.u = Av);
        });
      }
    }
    return wv.m;
  }, hv = (_v, Ev, wv) => {
    if (wv.m && !wv.m.l.size && !Array.from(wv.m.t).some(
      (xv) => {
        var Cv;
        return (Cv = rv(xv, wv).m) == null ? void 0 : Cv.d.has(Ev);
      }
    )) {
      const xv = wv.m.u;
      xv && addPendingFunction(_v, xv), delete wv.m, (define_import_meta_env_default$2 ? "production" : void 0) !== "production" && tv.delete(Ev);
      for (const Cv of wv.d.keys()) {
        const Av = hv(_v, Cv, rv(Cv, wv));
        Av == null || Av.t.delete(Ev);
      }
      return;
    }
    return wv.m;
  }, Sv = {
    get: ov,
    set: uv,
    sub: (_v, Ev) => {
      const wv = createPending(), xv = rv(_v), Cv = dv(wv, _v, xv);
      flushPending(wv);
      const Av = Cv.l;
      return Av.add(Ev), () => {
        Av.delete(Ev);
        const Ov = createPending();
        hv(Ov, _v, xv), flushPending(Ov);
      };
    },
    unstable_derive: (_v) => buildStore(..._v(rv))
  };
  return (define_import_meta_env_default$2 ? "production" : void 0) !== "production" && Object.assign(Sv, {
    // store dev methods (these are tentative and subject to change without notice)
    dev4_get_internal_weak_map: () => ({
      get: (Ev) => {
        const wv = rv(Ev);
        if (wv.n !== 0)
          return wv;
      }
    }),
    dev4_get_mounted_atoms: () => tv,
    dev4_restore_atoms: (Ev) => {
      const wv = createPending();
      for (const [xv, Cv] of Ev)
        if (hasInitialValue(xv)) {
          const Av = rv(xv), Ov = "v" in Av, Lv = Av.v;
          ev(xv, Av, Cv), cv(wv, xv, Av), (!Ov || !Object.is(Lv, Av.v)) && (addPendingAtom(wv, xv, Av), sv(wv, xv, Av));
        }
      flushPending(wv);
    }
  }), Sv;
}, createStore = () => {
  const rv = /* @__PURE__ */ new WeakMap();
  return buildStore((ev) => {
    let iv = rv.get(ev);
    return iv || (iv = { d: /* @__PURE__ */ new Map(), p: /* @__PURE__ */ new Set(), n: 0 }, rv.set(ev, iv)), iv;
  });
};
let defaultStore;
const getDefaultStore = () => (defaultStore || (defaultStore = createStore(), (define_import_meta_env_default$2 ? "production" : void 0) !== "production" && (globalThis.__JOTAI_DEFAULT_STORE__ || (globalThis.__JOTAI_DEFAULT_STORE__ = defaultStore), globalThis.__JOTAI_DEFAULT_STORE__ !== defaultStore && console.warn(
  "Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"
))), defaultStore);
var define_import_meta_env_default$1 = { BASE_URL: "/", MODE: "production", DEV: !1, PROD: !0, SSR: !1, STAGE: "prod" };
const StoreContext = reactExports.createContext(
  void 0
), useStore = (rv) => reactExports.useContext(StoreContext) || getDefaultStore(), isPromiseLike$1 = (rv) => typeof (rv == null ? void 0 : rv.then) == "function", attachPromiseMeta = (rv) => {
  rv.status = "pending", rv.then(
    (tv) => {
      rv.status = "fulfilled", rv.value = tv;
    },
    (tv) => {
      rv.status = "rejected", rv.reason = tv;
    }
  );
}, use = React.use || ((rv) => {
  if (rv.status === "pending")
    throw rv;
  if (rv.status === "fulfilled")
    return rv.value;
  throw rv.status === "rejected" ? rv.reason : (attachPromiseMeta(rv), rv);
}), continuablePromiseMap = /* @__PURE__ */ new WeakMap(), createContinuablePromise = (rv) => {
  let tv = continuablePromiseMap.get(rv);
  return tv || (tv = new Promise((ev, iv) => {
    let ov = rv;
    const av = (uv) => (cv) => {
      ov === uv && ev(cv);
    }, sv = (uv) => (cv) => {
      ov === uv && iv(cv);
    }, lv = (uv) => {
      "onCancel" in uv && typeof uv.onCancel == "function" && uv.onCancel((cv) => {
        if ((define_import_meta_env_default$1 ? "production" : void 0) !== "production" && cv === uv)
          throw new Error("[Bug] p is not updated even after cancelation");
        isPromiseLike$1(cv) ? (continuablePromiseMap.set(cv, tv), ov = cv, cv.then(av(cv), sv(cv)), lv(cv)) : ev(cv);
      });
    };
    rv.then(av(rv), sv(rv)), lv(rv);
  }), continuablePromiseMap.set(rv, tv)), tv;
};
function useAtomValue(rv, tv) {
  const ev = useStore(), [[iv, ov, av], sv] = reactExports.useReducer(
    (cv) => {
      const dv = ev.get(rv);
      return Object.is(cv[0], dv) && cv[1] === ev && cv[2] === rv ? cv : [dv, ev, rv];
    },
    void 0,
    () => [ev.get(rv), ev, rv]
  );
  let lv = iv;
  if ((ov !== ev || av !== rv) && (sv(), lv = ev.get(rv)), reactExports.useEffect(() => {
    const cv = ev.sub(rv, () => {
      sv();
    });
    return sv(), cv;
  }, [ev, rv, void 0]), reactExports.useDebugValue(lv), isPromiseLike$1(lv)) {
    const cv = createContinuablePromise(lv);
    return use(cv);
  }
  return lv;
}
function useSetAtom(rv, tv) {
  const ev = useStore();
  return reactExports.useCallback(
    (...ov) => {
      if ((define_import_meta_env_default$1 ? "production" : void 0) !== "production" && !("write" in rv))
        throw new Error("not writable atom");
      return ev.set(rv, ...ov);
    },
    [ev, rv]
  );
}
function useAtom(rv, tv) {
  return [
    useAtomValue(rv),
    // We do wrong type assertion here, which results in throwing an error.
    useSetAtom(rv)
  ];
}
createStore();
const consoleLogger = {
  type: "logger",
  log(rv) {
    this.output("log", rv);
  },
  warn(rv) {
    this.output("warn", rv);
  },
  error(rv) {
    this.output("error", rv);
  },
  output(rv, tv) {
    console && console[rv] && console[rv].apply(console, tv);
  }
};
class Logger {
  constructor(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.init(tv, ev);
  }
  init(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.prefix = ev.prefix || "i18next:", this.logger = tv || consoleLogger, this.options = ev, this.debug = ev.debug;
  }
  log() {
    for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return this.forward(ev, "log", "", !0);
  }
  warn() {
    for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return this.forward(ev, "warn", "", !0);
  }
  error() {
    for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return this.forward(ev, "error", "");
  }
  deprecate() {
    for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
      ev[iv] = arguments[iv];
    return this.forward(ev, "warn", "WARNING DEPRECATED: ", !0);
  }
  forward(tv, ev, iv, ov) {
    return ov && !this.debug ? null : (typeof tv[0] == "string" && (tv[0] = `${iv}${this.prefix} ${tv[0]}`), this.logger[ev](tv));
  }
  create(tv) {
    return new Logger(this.logger, {
      prefix: `${this.prefix}:${tv}:`,
      ...this.options
    });
  }
  clone(tv) {
    return tv = tv || this.options, tv.prefix = tv.prefix || this.prefix, new Logger(this.logger, tv);
  }
}
var baseLogger = new Logger();
let EventEmitter$1 = class {
  constructor() {
    this.observers = {};
  }
  on(tv, ev) {
    return tv.split(" ").forEach((iv) => {
      this.observers[iv] || (this.observers[iv] = /* @__PURE__ */ new Map());
      const ov = this.observers[iv].get(ev) || 0;
      this.observers[iv].set(ev, ov + 1);
    }), this;
  }
  off(tv, ev) {
    if (this.observers[tv]) {
      if (!ev) {
        delete this.observers[tv];
        return;
      }
      this.observers[tv].delete(ev);
    }
  }
  emit(tv) {
    for (var ev = arguments.length, iv = new Array(ev > 1 ? ev - 1 : 0), ov = 1; ov < ev; ov++)
      iv[ov - 1] = arguments[ov];
    this.observers[tv] && Array.from(this.observers[tv].entries()).forEach((sv) => {
      let [lv, uv] = sv;
      for (let cv = 0; cv < uv; cv++)
        lv(...iv);
    }), this.observers["*"] && Array.from(this.observers["*"].entries()).forEach((sv) => {
      let [lv, uv] = sv;
      for (let cv = 0; cv < uv; cv++)
        lv.apply(lv, [tv, ...iv]);
    });
  }
};
const defer = () => {
  let rv, tv;
  const ev = new Promise((iv, ov) => {
    rv = iv, tv = ov;
  });
  return ev.resolve = rv, ev.reject = tv, ev;
}, makeString = (rv) => rv == null ? "" : "" + rv, copy = (rv, tv, ev) => {
  rv.forEach((iv) => {
    tv[iv] && (ev[iv] = tv[iv]);
  });
}, lastOfPathSeparatorRegExp = /###/g, cleanKey = (rv) => rv && rv.indexOf("###") > -1 ? rv.replace(lastOfPathSeparatorRegExp, ".") : rv, canNotTraverseDeeper = (rv) => !rv || typeof rv == "string", getLastOfPath = (rv, tv, ev) => {
  const iv = typeof tv != "string" ? tv : tv.split(".");
  let ov = 0;
  for (; ov < iv.length - 1; ) {
    if (canNotTraverseDeeper(rv))
      return {};
    const av = cleanKey(iv[ov]);
    !rv[av] && ev && (rv[av] = new ev()), Object.prototype.hasOwnProperty.call(rv, av) ? rv = rv[av] : rv = {}, ++ov;
  }
  return canNotTraverseDeeper(rv) ? {} : {
    obj: rv,
    k: cleanKey(iv[ov])
  };
}, setPath = (rv, tv, ev) => {
  const {
    obj: iv,
    k: ov
  } = getLastOfPath(rv, tv, Object);
  if (iv !== void 0 || tv.length === 1) {
    iv[ov] = ev;
    return;
  }
  let av = tv[tv.length - 1], sv = tv.slice(0, tv.length - 1), lv = getLastOfPath(rv, sv, Object);
  for (; lv.obj === void 0 && sv.length; )
    av = `${sv[sv.length - 1]}.${av}`, sv = sv.slice(0, sv.length - 1), lv = getLastOfPath(rv, sv, Object), lv && lv.obj && typeof lv.obj[`${lv.k}.${av}`] < "u" && (lv.obj = void 0);
  lv.obj[`${lv.k}.${av}`] = ev;
}, pushPath = (rv, tv, ev, iv) => {
  const {
    obj: ov,
    k: av
  } = getLastOfPath(rv, tv, Object);
  ov[av] = ov[av] || [], ov[av].push(ev);
}, getPath = (rv, tv) => {
  const {
    obj: ev,
    k: iv
  } = getLastOfPath(rv, tv);
  if (ev)
    return ev[iv];
}, getPathWithDefaults = (rv, tv, ev) => {
  const iv = getPath(rv, ev);
  return iv !== void 0 ? iv : getPath(tv, ev);
}, deepExtend = (rv, tv, ev) => {
  for (const iv in tv)
    iv !== "__proto__" && iv !== "constructor" && (iv in rv ? typeof rv[iv] == "string" || rv[iv] instanceof String || typeof tv[iv] == "string" || tv[iv] instanceof String ? ev && (rv[iv] = tv[iv]) : deepExtend(rv[iv], tv[iv], ev) : rv[iv] = tv[iv]);
  return rv;
}, regexEscape = (rv) => rv.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
var _entityMap = {
  "&": "&amp;",
  "<": "&lt;",
  ">": "&gt;",
  '"': "&quot;",
  "'": "&#39;",
  "/": "&#x2F;"
};
const escape$1 = (rv) => typeof rv == "string" ? rv.replace(/[&<>"'\/]/g, (tv) => _entityMap[tv]) : rv;
class RegExpCache {
  constructor(tv) {
    this.capacity = tv, this.regExpMap = /* @__PURE__ */ new Map(), this.regExpQueue = [];
  }
  getRegExp(tv) {
    const ev = this.regExpMap.get(tv);
    if (ev !== void 0)
      return ev;
    const iv = new RegExp(tv);
    return this.regExpQueue.length === this.capacity && this.regExpMap.delete(this.regExpQueue.shift()), this.regExpMap.set(tv, iv), this.regExpQueue.push(tv), iv;
  }
}
const chars = [" ", ",", "?", "!", ";"], looksLikeObjectPathRegExpCache = new RegExpCache(20), looksLikeObjectPath = (rv, tv, ev) => {
  tv = tv || "", ev = ev || "";
  const iv = chars.filter((sv) => tv.indexOf(sv) < 0 && ev.indexOf(sv) < 0);
  if (iv.length === 0)
    return !0;
  const ov = looksLikeObjectPathRegExpCache.getRegExp(`(${iv.map((sv) => sv === "?" ? "\\?" : sv).join("|")})`);
  let av = !ov.test(rv);
  if (!av) {
    const sv = rv.indexOf(ev);
    sv > 0 && !ov.test(rv.substring(0, sv)) && (av = !0);
  }
  return av;
}, deepFind = function(rv, tv) {
  let ev = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ".";
  if (!rv)
    return;
  if (rv[tv])
    return rv[tv];
  const iv = tv.split(ev);
  let ov = rv;
  for (let av = 0; av < iv.length; ) {
    if (!ov || typeof ov != "object")
      return;
    let sv, lv = "";
    for (let uv = av; uv < iv.length; ++uv)
      if (uv !== av && (lv += ev), lv += iv[uv], sv = ov[lv], sv !== void 0) {
        if (["string", "number", "boolean"].indexOf(typeof sv) > -1 && uv < iv.length - 1)
          continue;
        av += uv - av + 1;
        break;
      }
    ov = sv;
  }
  return ov;
}, getCleanedCode = (rv) => rv && rv.indexOf("_") > 0 ? rv.replace("_", "-") : rv;
class ResourceStore extends EventEmitter$1 {
  constructor(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
      ns: ["translation"],
      defaultNS: "translation"
    };
    super(), this.data = tv || {}, this.options = ev, this.options.keySeparator === void 0 && (this.options.keySeparator = "."), this.options.ignoreJSONStructure === void 0 && (this.options.ignoreJSONStructure = !0);
  }
  addNamespaces(tv) {
    this.options.ns.indexOf(tv) < 0 && this.options.ns.push(tv);
  }
  removeNamespaces(tv) {
    const ev = this.options.ns.indexOf(tv);
    ev > -1 && this.options.ns.splice(ev, 1);
  }
  getResource(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
    const av = ov.keySeparator !== void 0 ? ov.keySeparator : this.options.keySeparator, sv = ov.ignoreJSONStructure !== void 0 ? ov.ignoreJSONStructure : this.options.ignoreJSONStructure;
    let lv;
    tv.indexOf(".") > -1 ? lv = tv.split(".") : (lv = [tv, ev], iv && (Array.isArray(iv) ? lv.push(...iv) : typeof iv == "string" && av ? lv.push(...iv.split(av)) : lv.push(iv)));
    const uv = getPath(this.data, lv);
    return !uv && !ev && !iv && tv.indexOf(".") > -1 && (tv = lv[0], ev = lv[1], iv = lv.slice(2).join(".")), uv || !sv || typeof iv != "string" ? uv : deepFind(this.data && this.data[tv] && this.data[tv][ev], iv, av);
  }
  addResource(tv, ev, iv, ov) {
    let av = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : {
      silent: !1
    };
    const sv = av.keySeparator !== void 0 ? av.keySeparator : this.options.keySeparator;
    let lv = [tv, ev];
    iv && (lv = lv.concat(sv ? iv.split(sv) : iv)), tv.indexOf(".") > -1 && (lv = tv.split("."), ov = ev, ev = lv[1]), this.addNamespaces(ev), setPath(this.data, lv, ov), av.silent || this.emit("added", tv, ev, iv, ov);
  }
  addResources(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {
      silent: !1
    };
    for (const av in iv)
      (typeof iv[av] == "string" || Array.isArray(iv[av])) && this.addResource(tv, ev, av, iv[av], {
        silent: !0
      });
    ov.silent || this.emit("added", tv, ev, iv);
  }
  addResourceBundle(tv, ev, iv, ov, av) {
    let sv = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : {
      silent: !1,
      skipCopy: !1
    }, lv = [tv, ev];
    tv.indexOf(".") > -1 && (lv = tv.split("."), ov = iv, iv = ev, ev = lv[1]), this.addNamespaces(ev);
    let uv = getPath(this.data, lv) || {};
    sv.skipCopy || (iv = JSON.parse(JSON.stringify(iv))), ov ? deepExtend(uv, iv, av) : uv = {
      ...uv,
      ...iv
    }, setPath(this.data, lv, uv), sv.silent || this.emit("added", tv, ev, iv);
  }
  removeResourceBundle(tv, ev) {
    this.hasResourceBundle(tv, ev) && delete this.data[tv][ev], this.removeNamespaces(ev), this.emit("removed", tv, ev);
  }
  hasResourceBundle(tv, ev) {
    return this.getResource(tv, ev) !== void 0;
  }
  getResourceBundle(tv, ev) {
    return ev || (ev = this.options.defaultNS), this.options.compatibilityAPI === "v1" ? {
      ...this.getResource(tv, ev)
    } : this.getResource(tv, ev);
  }
  getDataByLanguage(tv) {
    return this.data[tv];
  }
  hasLanguageSomeTranslations(tv) {
    const ev = this.getDataByLanguage(tv);
    return !!(ev && Object.keys(ev) || []).find((ov) => ev[ov] && Object.keys(ev[ov]).length > 0);
  }
  toJSON() {
    return this.data;
  }
}
var postProcessor = {
  processors: {},
  addPostProcessor(rv) {
    this.processors[rv.name] = rv;
  },
  handle(rv, tv, ev, iv, ov) {
    return rv.forEach((av) => {
      this.processors[av] && (tv = this.processors[av].process(tv, ev, iv, ov));
    }), tv;
  }
};
const checkedLoadedFor = {};
class Translator extends EventEmitter$1 {
  constructor(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    super(), copy(["resourceStore", "languageUtils", "pluralResolver", "interpolator", "backendConnector", "i18nFormat", "utils"], tv, this), this.options = ev, this.options.keySeparator === void 0 && (this.options.keySeparator = "."), this.logger = baseLogger.create("translator");
  }
  changeLanguage(tv) {
    tv && (this.language = tv);
  }
  exists(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
      interpolation: {}
    };
    if (tv == null)
      return !1;
    const iv = this.resolve(tv, ev);
    return iv && iv.res !== void 0;
  }
  extractFromKey(tv, ev) {
    let iv = ev.nsSeparator !== void 0 ? ev.nsSeparator : this.options.nsSeparator;
    iv === void 0 && (iv = ":");
    const ov = ev.keySeparator !== void 0 ? ev.keySeparator : this.options.keySeparator;
    let av = ev.ns || this.options.defaultNS || [];
    const sv = iv && tv.indexOf(iv) > -1, lv = !this.options.userDefinedKeySeparator && !ev.keySeparator && !this.options.userDefinedNsSeparator && !ev.nsSeparator && !looksLikeObjectPath(tv, iv, ov);
    if (sv && !lv) {
      const uv = tv.match(this.interpolator.nestingRegexp);
      if (uv && uv.length > 0)
        return {
          key: tv,
          namespaces: av
        };
      const cv = tv.split(iv);
      (iv !== ov || iv === ov && this.options.ns.indexOf(cv[0]) > -1) && (av = cv.shift()), tv = cv.join(ov);
    }
    return typeof av == "string" && (av = [av]), {
      key: tv,
      namespaces: av
    };
  }
  translate(tv, ev, iv) {
    if (typeof ev != "object" && this.options.overloadTranslationOptionHandler && (ev = this.options.overloadTranslationOptionHandler(arguments)), typeof ev == "object" && (ev = {
      ...ev
    }), ev || (ev = {}), tv == null)
      return "";
    Array.isArray(tv) || (tv = [String(tv)]);
    const ov = ev.returnDetails !== void 0 ? ev.returnDetails : this.options.returnDetails, av = ev.keySeparator !== void 0 ? ev.keySeparator : this.options.keySeparator, {
      key: sv,
      namespaces: lv
    } = this.extractFromKey(tv[tv.length - 1], ev), uv = lv[lv.length - 1], cv = ev.lng || this.language, dv = ev.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;
    if (cv && cv.toLowerCase() === "cimode") {
      if (dv) {
        const Av = ev.nsSeparator || this.options.nsSeparator;
        return ov ? {
          res: `${uv}${Av}${sv}`,
          usedKey: sv,
          exactUsedKey: sv,
          usedLng: cv,
          usedNS: uv,
          usedParams: this.getUsedParamsDetails(ev)
        } : `${uv}${Av}${sv}`;
      }
      return ov ? {
        res: sv,
        usedKey: sv,
        exactUsedKey: sv,
        usedLng: cv,
        usedNS: uv,
        usedParams: this.getUsedParamsDetails(ev)
      } : sv;
    }
    const hv = this.resolve(tv, ev);
    let pv = hv && hv.res;
    const yv = hv && hv.usedKey || sv, Sv = hv && hv.exactUsedKey || sv, _v = Object.prototype.toString.apply(pv), Ev = ["[object Number]", "[object Function]", "[object RegExp]"], wv = ev.joinArrays !== void 0 ? ev.joinArrays : this.options.joinArrays, xv = !this.i18nFormat || this.i18nFormat.handleAsObject;
    if (xv && pv && (typeof pv != "string" && typeof pv != "boolean" && typeof pv != "number") && Ev.indexOf(_v) < 0 && !(typeof wv == "string" && Array.isArray(pv))) {
      if (!ev.returnObjects && !this.options.returnObjects) {
        this.options.returnedObjectHandler || this.logger.warn("accessing an object - but returnObjects options is not enabled!");
        const Av = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(yv, pv, {
          ...ev,
          ns: lv
        }) : `key '${sv} (${this.language})' returned an object instead of string.`;
        return ov ? (hv.res = Av, hv.usedParams = this.getUsedParamsDetails(ev), hv) : Av;
      }
      if (av) {
        const Av = Array.isArray(pv), Ov = Av ? [] : {}, Lv = Av ? Sv : yv;
        for (const jv in pv)
          if (Object.prototype.hasOwnProperty.call(pv, jv)) {
            const Dv = `${Lv}${av}${jv}`;
            Ov[jv] = this.translate(Dv, {
              ...ev,
              joinArrays: !1,
              ns: lv
            }), Ov[jv] === Dv && (Ov[jv] = pv[jv]);
          }
        pv = Ov;
      }
    } else if (xv && typeof wv == "string" && Array.isArray(pv))
      pv = pv.join(wv), pv && (pv = this.extendTranslation(pv, tv, ev, iv));
    else {
      let Av = !1, Ov = !1;
      const Lv = ev.count !== void 0 && typeof ev.count != "string", jv = Translator.hasDefaultValue(ev), Dv = Lv ? this.pluralResolver.getSuffix(cv, ev.count, ev) : "", Vv = ev.ordinal && Lv ? this.pluralResolver.getSuffix(cv, ev.count, {
        ordinal: !1
      }) : "", Gv = Lv && !ev.ordinal && ev.count === 0 && this.pluralResolver.shouldUseIntlApi(), Yv = Gv && ev[`defaultValue${this.options.pluralSeparator}zero`] || ev[`defaultValue${Dv}`] || ev[`defaultValue${Vv}`] || ev.defaultValue;
      !this.isValidLookup(pv) && jv && (Av = !0, pv = Yv), this.isValidLookup(pv) || (Ov = !0, pv = sv);
      const L1 = (ev.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey) && Ov ? void 0 : pv, Bv = jv && Yv !== pv && this.options.updateMissing;
      if (Ov || Av || Bv) {
        if (this.logger.log(Bv ? "updateKey" : "missingKey", cv, uv, sv, Bv ? Yv : pv), av) {
          const j1 = this.resolve(sv, {
            ...ev,
            keySeparator: !1
          });
          j1 && j1.res && this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.");
        }
        let Qv = [];
        const B1 = this.languageUtils.getFallbackCodes(this.options.fallbackLng, ev.lng || this.language);
        if (this.options.saveMissingTo === "fallback" && B1 && B1[0])
          for (let j1 = 0; j1 < B1.length; j1++)
            Qv.push(B1[j1]);
        else
          this.options.saveMissingTo === "all" ? Qv = this.languageUtils.toResolveHierarchy(ev.lng || this.language) : Qv.push(ev.lng || this.language);
        const K1 = (j1, P1, D1) => {
          const I1 = jv && D1 !== pv ? D1 : L1;
          this.options.missingKeyHandler ? this.options.missingKeyHandler(j1, uv, P1, I1, Bv, ev) : this.backendConnector && this.backendConnector.saveMissing && this.backendConnector.saveMissing(j1, uv, P1, I1, Bv, ev), this.emit("missingKey", j1, uv, P1, pv);
        };
        this.options.saveMissing && (this.options.saveMissingPlurals && Lv ? Qv.forEach((j1) => {
          const P1 = this.pluralResolver.getSuffixes(j1, ev);
          Gv && ev[`defaultValue${this.options.pluralSeparator}zero`] && P1.indexOf(`${this.options.pluralSeparator}zero`) < 0 && P1.push(`${this.options.pluralSeparator}zero`), P1.forEach((D1) => {
            K1([j1], sv + D1, ev[`defaultValue${D1}`] || Yv);
          });
        }) : K1(Qv, sv, Yv));
      }
      pv = this.extendTranslation(pv, tv, ev, hv, iv), Ov && pv === sv && this.options.appendNamespaceToMissingKey && (pv = `${uv}:${sv}`), (Ov || Av) && this.options.parseMissingKeyHandler && (this.options.compatibilityAPI !== "v1" ? pv = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${uv}:${sv}` : sv, Av ? pv : void 0) : pv = this.options.parseMissingKeyHandler(pv));
    }
    return ov ? (hv.res = pv, hv.usedParams = this.getUsedParamsDetails(ev), hv) : pv;
  }
  extendTranslation(tv, ev, iv, ov, av) {
    var sv = this;
    if (this.i18nFormat && this.i18nFormat.parse)
      tv = this.i18nFormat.parse(tv, {
        ...this.options.interpolation.defaultVariables,
        ...iv
      }, iv.lng || this.language || ov.usedLng, ov.usedNS, ov.usedKey, {
        resolved: ov
      });
    else if (!iv.skipInterpolation) {
      iv.interpolation && this.interpolator.init({
        ...iv,
        interpolation: {
          ...this.options.interpolation,
          ...iv.interpolation
        }
      });
      const cv = typeof tv == "string" && (iv && iv.interpolation && iv.interpolation.skipOnVariables !== void 0 ? iv.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);
      let dv;
      if (cv) {
        const pv = tv.match(this.interpolator.nestingRegexp);
        dv = pv && pv.length;
      }
      let hv = iv.replace && typeof iv.replace != "string" ? iv.replace : iv;
      if (this.options.interpolation.defaultVariables && (hv = {
        ...this.options.interpolation.defaultVariables,
        ...hv
      }), tv = this.interpolator.interpolate(tv, hv, iv.lng || this.language || ov.usedLng, iv), cv) {
        const pv = tv.match(this.interpolator.nestingRegexp), yv = pv && pv.length;
        dv < yv && (iv.nest = !1);
      }
      !iv.lng && this.options.compatibilityAPI !== "v1" && ov && ov.res && (iv.lng = this.language || ov.usedLng), iv.nest !== !1 && (tv = this.interpolator.nest(tv, function() {
        for (var pv = arguments.length, yv = new Array(pv), Sv = 0; Sv < pv; Sv++)
          yv[Sv] = arguments[Sv];
        return av && av[0] === yv[0] && !iv.context ? (sv.logger.warn(`It seems you are nesting recursively key: ${yv[0]} in key: ${ev[0]}`), null) : sv.translate(...yv, ev);
      }, iv)), iv.interpolation && this.interpolator.reset();
    }
    const lv = iv.postProcess || this.options.postProcess, uv = typeof lv == "string" ? [lv] : lv;
    return tv != null && uv && uv.length && iv.applyPostProcessor !== !1 && (tv = postProcessor.handle(uv, tv, ev, this.options && this.options.postProcessPassResolved ? {
      i18nResolved: {
        ...ov,
        usedParams: this.getUsedParamsDetails(iv)
      },
      ...iv
    } : iv, this)), tv;
  }
  resolve(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, iv, ov, av, sv, lv;
    return typeof tv == "string" && (tv = [tv]), tv.forEach((uv) => {
      if (this.isValidLookup(iv))
        return;
      const cv = this.extractFromKey(uv, ev), dv = cv.key;
      ov = dv;
      let hv = cv.namespaces;
      this.options.fallbackNS && (hv = hv.concat(this.options.fallbackNS));
      const pv = ev.count !== void 0 && typeof ev.count != "string", yv = pv && !ev.ordinal && ev.count === 0 && this.pluralResolver.shouldUseIntlApi(), Sv = ev.context !== void 0 && (typeof ev.context == "string" || typeof ev.context == "number") && ev.context !== "", _v = ev.lngs ? ev.lngs : this.languageUtils.toResolveHierarchy(ev.lng || this.language, ev.fallbackLng);
      hv.forEach((Ev) => {
        this.isValidLookup(iv) || (lv = Ev, !checkedLoadedFor[`${_v[0]}-${Ev}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(lv) && (checkedLoadedFor[`${_v[0]}-${Ev}`] = !0, this.logger.warn(`key "${ov}" for languages "${_v.join(", ")}" won't get resolved as namespace "${lv}" was not yet loaded`, "This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")), _v.forEach((wv) => {
          if (this.isValidLookup(iv))
            return;
          sv = wv;
          const xv = [dv];
          if (this.i18nFormat && this.i18nFormat.addLookupKeys)
            this.i18nFormat.addLookupKeys(xv, dv, wv, Ev, ev);
          else {
            let Av;
            pv && (Av = this.pluralResolver.getSuffix(wv, ev.count, ev));
            const Ov = `${this.options.pluralSeparator}zero`, Lv = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;
            if (pv && (xv.push(dv + Av), ev.ordinal && Av.indexOf(Lv) === 0 && xv.push(dv + Av.replace(Lv, this.options.pluralSeparator)), yv && xv.push(dv + Ov)), Sv) {
              const jv = `${dv}${this.options.contextSeparator}${ev.context}`;
              xv.push(jv), pv && (xv.push(jv + Av), ev.ordinal && Av.indexOf(Lv) === 0 && xv.push(jv + Av.replace(Lv, this.options.pluralSeparator)), yv && xv.push(jv + Ov));
            }
          }
          let Cv;
          for (; Cv = xv.pop(); )
            this.isValidLookup(iv) || (av = Cv, iv = this.getResource(wv, Ev, Cv, ev));
        }));
      });
    }), {
      res: iv,
      usedKey: ov,
      exactUsedKey: av,
      usedLng: sv,
      usedNS: lv
    };
  }
  isValidLookup(tv) {
    return tv !== void 0 && !(!this.options.returnNull && tv === null) && !(!this.options.returnEmptyString && tv === "");
  }
  getResource(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
    return this.i18nFormat && this.i18nFormat.getResource ? this.i18nFormat.getResource(tv, ev, iv, ov) : this.resourceStore.getResource(tv, ev, iv, ov);
  }
  getUsedParamsDetails() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    const ev = ["defaultValue", "ordinal", "context", "replace", "lng", "lngs", "fallbackLng", "ns", "keySeparator", "nsSeparator", "returnObjects", "returnDetails", "joinArrays", "postProcess", "interpolation"], iv = tv.replace && typeof tv.replace != "string";
    let ov = iv ? tv.replace : tv;
    if (iv && typeof tv.count < "u" && (ov.count = tv.count), this.options.interpolation.defaultVariables && (ov = {
      ...this.options.interpolation.defaultVariables,
      ...ov
    }), !iv) {
      ov = {
        ...ov
      };
      for (const av of ev)
        delete ov[av];
    }
    return ov;
  }
  static hasDefaultValue(tv) {
    const ev = "defaultValue";
    for (const iv in tv)
      if (Object.prototype.hasOwnProperty.call(tv, iv) && ev === iv.substring(0, ev.length) && tv[iv] !== void 0)
        return !0;
    return !1;
  }
}
const capitalize = (rv) => rv.charAt(0).toUpperCase() + rv.slice(1);
class LanguageUtil {
  constructor(tv) {
    this.options = tv, this.supportedLngs = this.options.supportedLngs || !1, this.logger = baseLogger.create("languageUtils");
  }
  getScriptPartFromCode(tv) {
    if (tv = getCleanedCode(tv), !tv || tv.indexOf("-") < 0)
      return null;
    const ev = tv.split("-");
    return ev.length === 2 || (ev.pop(), ev[ev.length - 1].toLowerCase() === "x") ? null : this.formatLanguageCode(ev.join("-"));
  }
  getLanguagePartFromCode(tv) {
    if (tv = getCleanedCode(tv), !tv || tv.indexOf("-") < 0)
      return tv;
    const ev = tv.split("-");
    return this.formatLanguageCode(ev[0]);
  }
  formatLanguageCode(tv) {
    if (typeof tv == "string" && tv.indexOf("-") > -1) {
      const ev = ["hans", "hant", "latn", "cyrl", "cans", "mong", "arab"];
      let iv = tv.split("-");
      return this.options.lowerCaseLng ? iv = iv.map((ov) => ov.toLowerCase()) : iv.length === 2 ? (iv[0] = iv[0].toLowerCase(), iv[1] = iv[1].toUpperCase(), ev.indexOf(iv[1].toLowerCase()) > -1 && (iv[1] = capitalize(iv[1].toLowerCase()))) : iv.length === 3 && (iv[0] = iv[0].toLowerCase(), iv[1].length === 2 && (iv[1] = iv[1].toUpperCase()), iv[0] !== "sgn" && iv[2].length === 2 && (iv[2] = iv[2].toUpperCase()), ev.indexOf(iv[1].toLowerCase()) > -1 && (iv[1] = capitalize(iv[1].toLowerCase())), ev.indexOf(iv[2].toLowerCase()) > -1 && (iv[2] = capitalize(iv[2].toLowerCase()))), iv.join("-");
    }
    return this.options.cleanCode || this.options.lowerCaseLng ? tv.toLowerCase() : tv;
  }
  isSupportedCode(tv) {
    return (this.options.load === "languageOnly" || this.options.nonExplicitSupportedLngs) && (tv = this.getLanguagePartFromCode(tv)), !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(tv) > -1;
  }
  getBestMatchFromCodes(tv) {
    if (!tv)
      return null;
    let ev;
    return tv.forEach((iv) => {
      if (ev)
        return;
      const ov = this.formatLanguageCode(iv);
      (!this.options.supportedLngs || this.isSupportedCode(ov)) && (ev = ov);
    }), !ev && this.options.supportedLngs && tv.forEach((iv) => {
      if (ev)
        return;
      const ov = this.getLanguagePartFromCode(iv);
      if (this.isSupportedCode(ov))
        return ev = ov;
      ev = this.options.supportedLngs.find((av) => {
        if (av === ov)
          return av;
        if (!(av.indexOf("-") < 0 && ov.indexOf("-") < 0) && (av.indexOf("-") > 0 && ov.indexOf("-") < 0 && av.substring(0, av.indexOf("-")) === ov || av.indexOf(ov) === 0 && ov.length > 1))
          return av;
      });
    }), ev || (ev = this.getFallbackCodes(this.options.fallbackLng)[0]), ev;
  }
  getFallbackCodes(tv, ev) {
    if (!tv)
      return [];
    if (typeof tv == "function" && (tv = tv(ev)), typeof tv == "string" && (tv = [tv]), Array.isArray(tv))
      return tv;
    if (!ev)
      return tv.default || [];
    let iv = tv[ev];
    return iv || (iv = tv[this.getScriptPartFromCode(ev)]), iv || (iv = tv[this.formatLanguageCode(ev)]), iv || (iv = tv[this.getLanguagePartFromCode(ev)]), iv || (iv = tv.default), iv || [];
  }
  toResolveHierarchy(tv, ev) {
    const iv = this.getFallbackCodes(ev || this.options.fallbackLng || [], tv), ov = [], av = (sv) => {
      sv && (this.isSupportedCode(sv) ? ov.push(sv) : this.logger.warn(`rejecting language code not found in supportedLngs: ${sv}`));
    };
    return typeof tv == "string" && (tv.indexOf("-") > -1 || tv.indexOf("_") > -1) ? (this.options.load !== "languageOnly" && av(this.formatLanguageCode(tv)), this.options.load !== "languageOnly" && this.options.load !== "currentOnly" && av(this.getScriptPartFromCode(tv)), this.options.load !== "currentOnly" && av(this.getLanguagePartFromCode(tv))) : typeof tv == "string" && av(this.formatLanguageCode(tv)), iv.forEach((sv) => {
      ov.indexOf(sv) < 0 && av(this.formatLanguageCode(sv));
    }), ov;
  }
}
let sets = [{
  lngs: ["ach", "ak", "am", "arn", "br", "fil", "gun", "ln", "mfe", "mg", "mi", "oc", "pt", "pt-BR", "tg", "tl", "ti", "tr", "uz", "wa"],
  nr: [1, 2],
  fc: 1
}, {
  lngs: ["af", "an", "ast", "az", "bg", "bn", "ca", "da", "de", "dev", "el", "en", "eo", "es", "et", "eu", "fi", "fo", "fur", "fy", "gl", "gu", "ha", "hi", "hu", "hy", "ia", "it", "kk", "kn", "ku", "lb", "mai", "ml", "mn", "mr", "nah", "nap", "nb", "ne", "nl", "nn", "no", "nso", "pa", "pap", "pms", "ps", "pt-PT", "rm", "sco", "se", "si", "so", "son", "sq", "sv", "sw", "ta", "te", "tk", "ur", "yo"],
  nr: [1, 2],
  fc: 2
}, {
  lngs: ["ay", "bo", "cgg", "fa", "ht", "id", "ja", "jbo", "ka", "km", "ko", "ky", "lo", "ms", "sah", "su", "th", "tt", "ug", "vi", "wo", "zh"],
  nr: [1],
  fc: 3
}, {
  lngs: ["be", "bs", "cnr", "dz", "hr", "ru", "sr", "uk"],
  nr: [1, 2, 5],
  fc: 4
}, {
  lngs: ["ar"],
  nr: [0, 1, 2, 3, 11, 100],
  fc: 5
}, {
  lngs: ["cs", "sk"],
  nr: [1, 2, 5],
  fc: 6
}, {
  lngs: ["csb", "pl"],
  nr: [1, 2, 5],
  fc: 7
}, {
  lngs: ["cy"],
  nr: [1, 2, 3, 8],
  fc: 8
}, {
  lngs: ["fr"],
  nr: [1, 2],
  fc: 9
}, {
  lngs: ["ga"],
  nr: [1, 2, 3, 7, 11],
  fc: 10
}, {
  lngs: ["gd"],
  nr: [1, 2, 3, 20],
  fc: 11
}, {
  lngs: ["is"],
  nr: [1, 2],
  fc: 12
}, {
  lngs: ["jv"],
  nr: [0, 1],
  fc: 13
}, {
  lngs: ["kw"],
  nr: [1, 2, 3, 4],
  fc: 14
}, {
  lngs: ["lt"],
  nr: [1, 2, 10],
  fc: 15
}, {
  lngs: ["lv"],
  nr: [1, 2, 0],
  fc: 16
}, {
  lngs: ["mk"],
  nr: [1, 2],
  fc: 17
}, {
  lngs: ["mnk"],
  nr: [0, 1, 2],
  fc: 18
}, {
  lngs: ["mt"],
  nr: [1, 2, 11, 20],
  fc: 19
}, {
  lngs: ["or"],
  nr: [2, 1],
  fc: 2
}, {
  lngs: ["ro"],
  nr: [1, 2, 20],
  fc: 20
}, {
  lngs: ["sl"],
  nr: [5, 1, 2, 3],
  fc: 21
}, {
  lngs: ["he", "iw"],
  nr: [1, 2, 20, 21],
  fc: 22
}], _rulesPluralsTypes = {
  1: (rv) => +(rv > 1),
  2: (rv) => +(rv != 1),
  3: (rv) => 0,
  4: (rv) => rv % 10 == 1 && rv % 100 != 11 ? 0 : rv % 10 >= 2 && rv % 10 <= 4 && (rv % 100 < 10 || rv % 100 >= 20) ? 1 : 2,
  5: (rv) => rv == 0 ? 0 : rv == 1 ? 1 : rv == 2 ? 2 : rv % 100 >= 3 && rv % 100 <= 10 ? 3 : rv % 100 >= 11 ? 4 : 5,
  6: (rv) => rv == 1 ? 0 : rv >= 2 && rv <= 4 ? 1 : 2,
  7: (rv) => rv == 1 ? 0 : rv % 10 >= 2 && rv % 10 <= 4 && (rv % 100 < 10 || rv % 100 >= 20) ? 1 : 2,
  8: (rv) => rv == 1 ? 0 : rv == 2 ? 1 : rv != 8 && rv != 11 ? 2 : 3,
  9: (rv) => +(rv >= 2),
  10: (rv) => rv == 1 ? 0 : rv == 2 ? 1 : rv < 7 ? 2 : rv < 11 ? 3 : 4,
  11: (rv) => rv == 1 || rv == 11 ? 0 : rv == 2 || rv == 12 ? 1 : rv > 2 && rv < 20 ? 2 : 3,
  12: (rv) => +(rv % 10 != 1 || rv % 100 == 11),
  13: (rv) => +(rv !== 0),
  14: (rv) => rv == 1 ? 0 : rv == 2 ? 1 : rv == 3 ? 2 : 3,
  15: (rv) => rv % 10 == 1 && rv % 100 != 11 ? 0 : rv % 10 >= 2 && (rv % 100 < 10 || rv % 100 >= 20) ? 1 : 2,
  16: (rv) => rv % 10 == 1 && rv % 100 != 11 ? 0 : rv !== 0 ? 1 : 2,
  17: (rv) => rv == 1 || rv % 10 == 1 && rv % 100 != 11 ? 0 : 1,
  18: (rv) => rv == 0 ? 0 : rv == 1 ? 1 : 2,
  19: (rv) => rv == 1 ? 0 : rv == 0 || rv % 100 > 1 && rv % 100 < 11 ? 1 : rv % 100 > 10 && rv % 100 < 20 ? 2 : 3,
  20: (rv) => rv == 1 ? 0 : rv == 0 || rv % 100 > 0 && rv % 100 < 20 ? 1 : 2,
  21: (rv) => rv % 100 == 1 ? 1 : rv % 100 == 2 ? 2 : rv % 100 == 3 || rv % 100 == 4 ? 3 : 0,
  22: (rv) => rv == 1 ? 0 : rv == 2 ? 1 : (rv < 0 || rv > 10) && rv % 10 == 0 ? 2 : 3
};
const nonIntlVersions = ["v1", "v2", "v3"], intlVersions = ["v4"], suffixesOrder = {
  zero: 0,
  one: 1,
  two: 2,
  few: 3,
  many: 4,
  other: 5
}, createRules = () => {
  const rv = {};
  return sets.forEach((tv) => {
    tv.lngs.forEach((ev) => {
      rv[ev] = {
        numbers: tv.nr,
        plurals: _rulesPluralsTypes[tv.fc]
      };
    });
  }), rv;
};
class PluralResolver {
  constructor(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.languageUtils = tv, this.options = ev, this.logger = baseLogger.create("pluralResolver"), (!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl > "u" || !Intl.PluralRules) && (this.options.compatibilityJSON = "v3", this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")), this.rules = createRules(), this.pluralRulesCache = {};
  }
  addRule(tv, ev) {
    this.rules[tv] = ev;
  }
  clearCache() {
    this.pluralRulesCache = {};
  }
  getRule(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    if (this.shouldUseIntlApi())
      try {
        const iv = getCleanedCode(tv === "dev" ? "en" : tv), ov = ev.ordinal ? "ordinal" : "cardinal", av = JSON.stringify({
          cleanedCode: iv,
          type: ov
        });
        if (av in this.pluralRulesCache)
          return this.pluralRulesCache[av];
        const sv = new Intl.PluralRules(iv, {
          type: ov
        });
        return this.pluralRulesCache[av] = sv, sv;
      } catch {
        return;
      }
    return this.rules[tv] || this.rules[this.languageUtils.getLanguagePartFromCode(tv)];
  }
  needsPlural(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    const iv = this.getRule(tv, ev);
    return this.shouldUseIntlApi() ? iv && iv.resolvedOptions().pluralCategories.length > 1 : iv && iv.numbers.length > 1;
  }
  getPluralFormsOfKey(tv, ev) {
    let iv = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    return this.getSuffixes(tv, iv).map((ov) => `${ev}${ov}`);
  }
  getSuffixes(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    const iv = this.getRule(tv, ev);
    return iv ? this.shouldUseIntlApi() ? iv.resolvedOptions().pluralCategories.sort((ov, av) => suffixesOrder[ov] - suffixesOrder[av]).map((ov) => `${this.options.prepend}${ev.ordinal ? `ordinal${this.options.prepend}` : ""}${ov}`) : iv.numbers.map((ov) => this.getSuffix(tv, ov, ev)) : [];
  }
  getSuffix(tv, ev) {
    let iv = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    const ov = this.getRule(tv, iv);
    return ov ? this.shouldUseIntlApi() ? `${this.options.prepend}${iv.ordinal ? `ordinal${this.options.prepend}` : ""}${ov.select(ev)}` : this.getSuffixRetroCompatible(ov, ev) : (this.logger.warn(`no plural rule found for: ${tv}`), "");
  }
  getSuffixRetroCompatible(tv, ev) {
    const iv = tv.noAbs ? tv.plurals(ev) : tv.plurals(Math.abs(ev));
    let ov = tv.numbers[iv];
    this.options.simplifyPluralSuffix && tv.numbers.length === 2 && tv.numbers[0] === 1 && (ov === 2 ? ov = "plural" : ov === 1 && (ov = ""));
    const av = () => this.options.prepend && ov.toString() ? this.options.prepend + ov.toString() : ov.toString();
    return this.options.compatibilityJSON === "v1" ? ov === 1 ? "" : typeof ov == "number" ? `_plural_${ov.toString()}` : av() : this.options.compatibilityJSON === "v2" || this.options.simplifyPluralSuffix && tv.numbers.length === 2 && tv.numbers[0] === 1 ? av() : this.options.prepend && iv.toString() ? this.options.prepend + iv.toString() : iv.toString();
  }
  shouldUseIntlApi() {
    return !nonIntlVersions.includes(this.options.compatibilityJSON);
  }
}
const deepFindWithDefaults = function(rv, tv, ev) {
  let iv = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : ".", ov = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, av = getPathWithDefaults(rv, tv, ev);
  return !av && ov && typeof ev == "string" && (av = deepFind(rv, ev, iv), av === void 0 && (av = deepFind(tv, ev, iv))), av;
}, regexSafe = (rv) => rv.replace(/\$/g, "$$$$");
class Interpolator {
  constructor() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    this.logger = baseLogger.create("interpolator"), this.options = tv, this.format = tv.interpolation && tv.interpolation.format || ((ev) => ev), this.init(tv);
  }
  init() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    tv.interpolation || (tv.interpolation = {
      escapeValue: !0
    });
    const {
      escape: ev,
      escapeValue: iv,
      useRawValueToEscape: ov,
      prefix: av,
      prefixEscaped: sv,
      suffix: lv,
      suffixEscaped: uv,
      formatSeparator: cv,
      unescapeSuffix: dv,
      unescapePrefix: hv,
      nestingPrefix: pv,
      nestingPrefixEscaped: yv,
      nestingSuffix: Sv,
      nestingSuffixEscaped: _v,
      nestingOptionsSeparator: Ev,
      maxReplaces: wv,
      alwaysFormat: xv
    } = tv.interpolation;
    this.escape = ev !== void 0 ? ev : escape$1, this.escapeValue = iv !== void 0 ? iv : !0, this.useRawValueToEscape = ov !== void 0 ? ov : !1, this.prefix = av ? regexEscape(av) : sv || "{{", this.suffix = lv ? regexEscape(lv) : uv || "}}", this.formatSeparator = cv || ",", this.unescapePrefix = dv ? "" : hv || "-", this.unescapeSuffix = this.unescapePrefix ? "" : dv || "", this.nestingPrefix = pv ? regexEscape(pv) : yv || regexEscape("$t("), this.nestingSuffix = Sv ? regexEscape(Sv) : _v || regexEscape(")"), this.nestingOptionsSeparator = Ev || ",", this.maxReplaces = wv || 1e3, this.alwaysFormat = xv !== void 0 ? xv : !1, this.resetRegExp();
  }
  reset() {
    this.options && this.init(this.options);
  }
  resetRegExp() {
    const tv = (ev, iv) => ev && ev.source === iv ? (ev.lastIndex = 0, ev) : new RegExp(iv, "g");
    this.regexp = tv(this.regexp, `${this.prefix}(.+?)${this.suffix}`), this.regexpUnescape = tv(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`), this.nestingRegexp = tv(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);
  }
  interpolate(tv, ev, iv, ov) {
    let av, sv, lv;
    const uv = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {}, cv = (yv) => {
      if (yv.indexOf(this.formatSeparator) < 0) {
        const wv = deepFindWithDefaults(ev, uv, yv, this.options.keySeparator, this.options.ignoreJSONStructure);
        return this.alwaysFormat ? this.format(wv, void 0, iv, {
          ...ov,
          ...ev,
          interpolationkey: yv
        }) : wv;
      }
      const Sv = yv.split(this.formatSeparator), _v = Sv.shift().trim(), Ev = Sv.join(this.formatSeparator).trim();
      return this.format(deepFindWithDefaults(ev, uv, _v, this.options.keySeparator, this.options.ignoreJSONStructure), Ev, iv, {
        ...ov,
        ...ev,
        interpolationkey: _v
      });
    };
    this.resetRegExp();
    const dv = ov && ov.missingInterpolationHandler || this.options.missingInterpolationHandler, hv = ov && ov.interpolation && ov.interpolation.skipOnVariables !== void 0 ? ov.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;
    return [{
      regex: this.regexpUnescape,
      safeValue: (yv) => regexSafe(yv)
    }, {
      regex: this.regexp,
      safeValue: (yv) => this.escapeValue ? regexSafe(this.escape(yv)) : regexSafe(yv)
    }].forEach((yv) => {
      for (lv = 0; av = yv.regex.exec(tv); ) {
        const Sv = av[1].trim();
        if (sv = cv(Sv), sv === void 0)
          if (typeof dv == "function") {
            const Ev = dv(tv, av, ov);
            sv = typeof Ev == "string" ? Ev : "";
          } else if (ov && Object.prototype.hasOwnProperty.call(ov, Sv))
            sv = "";
          else if (hv) {
            sv = av[0];
            continue;
          } else
            this.logger.warn(`missed to pass in variable ${Sv} for interpolating ${tv}`), sv = "";
        else
          typeof sv != "string" && !this.useRawValueToEscape && (sv = makeString(sv));
        const _v = yv.safeValue(sv);
        if (tv = tv.replace(av[0], _v), hv ? (yv.regex.lastIndex += sv.length, yv.regex.lastIndex -= av[0].length) : yv.regex.lastIndex = 0, lv++, lv >= this.maxReplaces)
          break;
      }
    }), tv;
  }
  nest(tv, ev) {
    let iv = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, ov, av, sv;
    const lv = (uv, cv) => {
      const dv = this.nestingOptionsSeparator;
      if (uv.indexOf(dv) < 0)
        return uv;
      const hv = uv.split(new RegExp(`${dv}[ ]*{`));
      let pv = `{${hv[1]}`;
      uv = hv[0], pv = this.interpolate(pv, sv);
      const yv = pv.match(/'/g), Sv = pv.match(/"/g);
      (yv && yv.length % 2 === 0 && !Sv || Sv.length % 2 !== 0) && (pv = pv.replace(/'/g, '"'));
      try {
        sv = JSON.parse(pv), cv && (sv = {
          ...cv,
          ...sv
        });
      } catch (_v) {
        return this.logger.warn(`failed parsing options string in nesting for key ${uv}`, _v), `${uv}${dv}${pv}`;
      }
      return sv.defaultValue && sv.defaultValue.indexOf(this.prefix) > -1 && delete sv.defaultValue, uv;
    };
    for (; ov = this.nestingRegexp.exec(tv); ) {
      let uv = [];
      sv = {
        ...iv
      }, sv = sv.replace && typeof sv.replace != "string" ? sv.replace : sv, sv.applyPostProcessor = !1, delete sv.defaultValue;
      let cv = !1;
      if (ov[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(ov[1])) {
        const dv = ov[1].split(this.formatSeparator).map((hv) => hv.trim());
        ov[1] = dv.shift(), uv = dv, cv = !0;
      }
      if (av = ev(lv.call(this, ov[1].trim(), sv), sv), av && ov[0] === tv && typeof av != "string")
        return av;
      typeof av != "string" && (av = makeString(av)), av || (this.logger.warn(`missed to resolve ${ov[1]} for nesting ${tv}`), av = ""), cv && (av = uv.reduce((dv, hv) => this.format(dv, hv, iv.lng, {
        ...iv,
        interpolationkey: ov[1].trim()
      }), av.trim())), tv = tv.replace(ov[0], av), this.regexp.lastIndex = 0;
    }
    return tv;
  }
}
const parseFormatStr = (rv) => {
  let tv = rv.toLowerCase().trim();
  const ev = {};
  if (rv.indexOf("(") > -1) {
    const iv = rv.split("(");
    tv = iv[0].toLowerCase().trim();
    const ov = iv[1].substring(0, iv[1].length - 1);
    tv === "currency" && ov.indexOf(":") < 0 ? ev.currency || (ev.currency = ov.trim()) : tv === "relativetime" && ov.indexOf(":") < 0 ? ev.range || (ev.range = ov.trim()) : ov.split(";").forEach((sv) => {
      if (sv) {
        const [lv, ...uv] = sv.split(":"), cv = uv.join(":").trim().replace(/^'+|'+$/g, ""), dv = lv.trim();
        ev[dv] || (ev[dv] = cv), cv === "false" && (ev[dv] = !1), cv === "true" && (ev[dv] = !0), isNaN(cv) || (ev[dv] = parseInt(cv, 10));
      }
    });
  }
  return {
    formatName: tv,
    formatOptions: ev
  };
}, createCachedFormatter = (rv) => {
  const tv = {};
  return (ev, iv, ov) => {
    let av = ov;
    ov && ov.interpolationkey && ov.formatParams && ov.formatParams[ov.interpolationkey] && ov[ov.interpolationkey] && (av = {
      ...av,
      [ov.interpolationkey]: void 0
    });
    const sv = iv + JSON.stringify(av);
    let lv = tv[sv];
    return lv || (lv = rv(getCleanedCode(iv), ov), tv[sv] = lv), lv(ev);
  };
};
class Formatter {
  constructor() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    this.logger = baseLogger.create("formatter"), this.options = tv, this.formats = {
      number: createCachedFormatter((ev, iv) => {
        const ov = new Intl.NumberFormat(ev, {
          ...iv
        });
        return (av) => ov.format(av);
      }),
      currency: createCachedFormatter((ev, iv) => {
        const ov = new Intl.NumberFormat(ev, {
          ...iv,
          style: "currency"
        });
        return (av) => ov.format(av);
      }),
      datetime: createCachedFormatter((ev, iv) => {
        const ov = new Intl.DateTimeFormat(ev, {
          ...iv
        });
        return (av) => ov.format(av);
      }),
      relativetime: createCachedFormatter((ev, iv) => {
        const ov = new Intl.RelativeTimeFormat(ev, {
          ...iv
        });
        return (av) => ov.format(av, iv.range || "day");
      }),
      list: createCachedFormatter((ev, iv) => {
        const ov = new Intl.ListFormat(ev, {
          ...iv
        });
        return (av) => ov.format(av);
      })
    }, this.init(tv);
  }
  init(tv) {
    const iv = (arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
      interpolation: {}
    }).interpolation;
    this.formatSeparator = iv.formatSeparator ? iv.formatSeparator : iv.formatSeparator || ",";
  }
  add(tv, ev) {
    this.formats[tv.toLowerCase().trim()] = ev;
  }
  addCached(tv, ev) {
    this.formats[tv.toLowerCase().trim()] = createCachedFormatter(ev);
  }
  format(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
    const av = ev.split(this.formatSeparator);
    if (av.length > 1 && av[0].indexOf("(") > 1 && av[0].indexOf(")") < 0 && av.find((lv) => lv.indexOf(")") > -1)) {
      const lv = av.findIndex((uv) => uv.indexOf(")") > -1);
      av[0] = [av[0], ...av.splice(1, lv)].join(this.formatSeparator);
    }
    return av.reduce((lv, uv) => {
      const {
        formatName: cv,
        formatOptions: dv
      } = parseFormatStr(uv);
      if (this.formats[cv]) {
        let hv = lv;
        try {
          const pv = ov && ov.formatParams && ov.formatParams[ov.interpolationkey] || {}, yv = pv.locale || pv.lng || ov.locale || ov.lng || iv;
          hv = this.formats[cv](lv, yv, {
            ...dv,
            ...ov,
            ...pv
          });
        } catch (pv) {
          this.logger.warn(pv);
        }
        return hv;
      } else
        this.logger.warn(`there was no format function for ${cv}`);
      return lv;
    }, tv);
  }
}
const removePending = (rv, tv) => {
  rv.pending[tv] !== void 0 && (delete rv.pending[tv], rv.pendingCount--);
};
class Connector extends EventEmitter$1 {
  constructor(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
    super(), this.backend = tv, this.store = ev, this.services = iv, this.languageUtils = iv.languageUtils, this.options = ov, this.logger = baseLogger.create("backendConnector"), this.waitingReads = [], this.maxParallelReads = ov.maxParallelReads || 10, this.readingCalls = 0, this.maxRetries = ov.maxRetries >= 0 ? ov.maxRetries : 5, this.retryTimeout = ov.retryTimeout >= 1 ? ov.retryTimeout : 350, this.state = {}, this.queue = [], this.backend && this.backend.init && this.backend.init(iv, ov.backend, ov);
  }
  queueLoad(tv, ev, iv, ov) {
    const av = {}, sv = {}, lv = {}, uv = {};
    return tv.forEach((cv) => {
      let dv = !0;
      ev.forEach((hv) => {
        const pv = `${cv}|${hv}`;
        !iv.reload && this.store.hasResourceBundle(cv, hv) ? this.state[pv] = 2 : this.state[pv] < 0 || (this.state[pv] === 1 ? sv[pv] === void 0 && (sv[pv] = !0) : (this.state[pv] = 1, dv = !1, sv[pv] === void 0 && (sv[pv] = !0), av[pv] === void 0 && (av[pv] = !0), uv[hv] === void 0 && (uv[hv] = !0)));
      }), dv || (lv[cv] = !0);
    }), (Object.keys(av).length || Object.keys(sv).length) && this.queue.push({
      pending: sv,
      pendingCount: Object.keys(sv).length,
      loaded: {},
      errors: [],
      callback: ov
    }), {
      toLoad: Object.keys(av),
      pending: Object.keys(sv),
      toLoadLanguages: Object.keys(lv),
      toLoadNamespaces: Object.keys(uv)
    };
  }
  loaded(tv, ev, iv) {
    const ov = tv.split("|"), av = ov[0], sv = ov[1];
    ev && this.emit("failedLoading", av, sv, ev), !ev && iv && this.store.addResourceBundle(av, sv, iv, void 0, void 0, {
      skipCopy: !0
    }), this.state[tv] = ev ? -1 : 2, ev && iv && (this.state[tv] = 0);
    const lv = {};
    this.queue.forEach((uv) => {
      pushPath(uv.loaded, [av], sv), removePending(uv, tv), ev && uv.errors.push(ev), uv.pendingCount === 0 && !uv.done && (Object.keys(uv.loaded).forEach((cv) => {
        lv[cv] || (lv[cv] = {});
        const dv = uv.loaded[cv];
        dv.length && dv.forEach((hv) => {
          lv[cv][hv] === void 0 && (lv[cv][hv] = !0);
        });
      }), uv.done = !0, uv.errors.length ? uv.callback(uv.errors) : uv.callback());
    }), this.emit("loaded", lv), this.queue = this.queue.filter((uv) => !uv.done);
  }
  read(tv, ev, iv) {
    let ov = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0, av = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : this.retryTimeout, sv = arguments.length > 5 ? arguments[5] : void 0;
    if (!tv.length)
      return sv(null, {});
    if (this.readingCalls >= this.maxParallelReads) {
      this.waitingReads.push({
        lng: tv,
        ns: ev,
        fcName: iv,
        tried: ov,
        wait: av,
        callback: sv
      });
      return;
    }
    this.readingCalls++;
    const lv = (cv, dv) => {
      if (this.readingCalls--, this.waitingReads.length > 0) {
        const hv = this.waitingReads.shift();
        this.read(hv.lng, hv.ns, hv.fcName, hv.tried, hv.wait, hv.callback);
      }
      if (cv && dv && ov < this.maxRetries) {
        setTimeout(() => {
          this.read.call(this, tv, ev, iv, ov + 1, av * 2, sv);
        }, av);
        return;
      }
      sv(cv, dv);
    }, uv = this.backend[iv].bind(this.backend);
    if (uv.length === 2) {
      try {
        const cv = uv(tv, ev);
        cv && typeof cv.then == "function" ? cv.then((dv) => lv(null, dv)).catch(lv) : lv(null, cv);
      } catch (cv) {
        lv(cv);
      }
      return;
    }
    return uv(tv, ev, lv);
  }
  prepareLoading(tv, ev) {
    let iv = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, ov = arguments.length > 3 ? arguments[3] : void 0;
    if (!this.backend)
      return this.logger.warn("No backend was added via i18next.use. Will not load resources."), ov && ov();
    typeof tv == "string" && (tv = this.languageUtils.toResolveHierarchy(tv)), typeof ev == "string" && (ev = [ev]);
    const av = this.queueLoad(tv, ev, iv, ov);
    if (!av.toLoad.length)
      return av.pending.length || ov(), null;
    av.toLoad.forEach((sv) => {
      this.loadOne(sv);
    });
  }
  load(tv, ev, iv) {
    this.prepareLoading(tv, ev, {}, iv);
  }
  reload(tv, ev, iv) {
    this.prepareLoading(tv, ev, {
      reload: !0
    }, iv);
  }
  loadOne(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
    const iv = tv.split("|"), ov = iv[0], av = iv[1];
    this.read(ov, av, "read", void 0, void 0, (sv, lv) => {
      sv && this.logger.warn(`${ev}loading namespace ${av} for language ${ov} failed`, sv), !sv && lv && this.logger.log(`${ev}loaded namespace ${av} for language ${ov}`, lv), this.loaded(tv, sv, lv);
    });
  }
  saveMissing(tv, ev, iv, ov, av) {
    let sv = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : {}, lv = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : () => {
    };
    if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(ev)) {
      this.logger.warn(`did not save key "${iv}" as the namespace "${ev}" was not yet loaded`, "This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");
      return;
    }
    if (!(iv == null || iv === "")) {
      if (this.backend && this.backend.create) {
        const uv = {
          ...sv,
          isUpdate: av
        }, cv = this.backend.create.bind(this.backend);
        if (cv.length < 6)
          try {
            let dv;
            cv.length === 5 ? dv = cv(tv, ev, iv, ov, uv) : dv = cv(tv, ev, iv, ov), dv && typeof dv.then == "function" ? dv.then((hv) => lv(null, hv)).catch(lv) : lv(null, dv);
          } catch (dv) {
            lv(dv);
          }
        else
          cv(tv, ev, iv, ov, lv, uv);
      }
      !tv || !tv[0] || this.store.addResource(tv[0], ev, iv, ov);
    }
  }
}
const get$1 = () => ({
  debug: !1,
  initImmediate: !0,
  ns: ["translation"],
  defaultNS: ["translation"],
  fallbackLng: ["dev"],
  fallbackNS: !1,
  supportedLngs: !1,
  nonExplicitSupportedLngs: !1,
  load: "all",
  preload: !1,
  simplifyPluralSuffix: !0,
  keySeparator: ".",
  nsSeparator: ":",
  pluralSeparator: "_",
  contextSeparator: "_",
  partialBundledLanguages: !1,
  saveMissing: !1,
  updateMissing: !1,
  saveMissingTo: "fallback",
  saveMissingPlurals: !0,
  missingKeyHandler: !1,
  missingInterpolationHandler: !1,
  postProcess: !1,
  postProcessPassResolved: !1,
  returnNull: !1,
  returnEmptyString: !0,
  returnObjects: !1,
  joinArrays: !1,
  returnedObjectHandler: !1,
  parseMissingKeyHandler: !1,
  appendNamespaceToMissingKey: !1,
  appendNamespaceToCIMode: !1,
  overloadTranslationOptionHandler: (rv) => {
    let tv = {};
    if (typeof rv[1] == "object" && (tv = rv[1]), typeof rv[1] == "string" && (tv.defaultValue = rv[1]), typeof rv[2] == "string" && (tv.tDescription = rv[2]), typeof rv[2] == "object" || typeof rv[3] == "object") {
      const ev = rv[3] || rv[2];
      Object.keys(ev).forEach((iv) => {
        tv[iv] = ev[iv];
      });
    }
    return tv;
  },
  interpolation: {
    escapeValue: !0,
    format: (rv) => rv,
    prefix: "{{",
    suffix: "}}",
    formatSeparator: ",",
    unescapePrefix: "-",
    nestingPrefix: "$t(",
    nestingSuffix: ")",
    nestingOptionsSeparator: ",",
    maxReplaces: 1e3,
    skipOnVariables: !0
  }
}), transformOptions = (rv) => (typeof rv.ns == "string" && (rv.ns = [rv.ns]), typeof rv.fallbackLng == "string" && (rv.fallbackLng = [rv.fallbackLng]), typeof rv.fallbackNS == "string" && (rv.fallbackNS = [rv.fallbackNS]), rv.supportedLngs && rv.supportedLngs.indexOf("cimode") < 0 && (rv.supportedLngs = rv.supportedLngs.concat(["cimode"])), rv), noop$1 = () => {
}, bindMemberFunctions = (rv) => {
  Object.getOwnPropertyNames(Object.getPrototypeOf(rv)).forEach((ev) => {
    typeof rv[ev] == "function" && (rv[ev] = rv[ev].bind(rv));
  });
};
class I18n extends EventEmitter$1 {
  constructor() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, ev = arguments.length > 1 ? arguments[1] : void 0;
    if (super(), this.options = transformOptions(tv), this.services = {}, this.logger = baseLogger, this.modules = {
      external: []
    }, bindMemberFunctions(this), ev && !this.isInitialized && !tv.isClone) {
      if (!this.options.initImmediate)
        return this.init(tv, ev), this;
      setTimeout(() => {
        this.init(tv, ev);
      }, 0);
    }
  }
  init() {
    var tv = this;
    let ev = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, iv = arguments.length > 1 ? arguments[1] : void 0;
    this.isInitializing = !0, typeof ev == "function" && (iv = ev, ev = {}), !ev.defaultNS && ev.defaultNS !== !1 && ev.ns && (typeof ev.ns == "string" ? ev.defaultNS = ev.ns : ev.ns.indexOf("translation") < 0 && (ev.defaultNS = ev.ns[0]));
    const ov = get$1();
    this.options = {
      ...ov,
      ...this.options,
      ...transformOptions(ev)
    }, this.options.compatibilityAPI !== "v1" && (this.options.interpolation = {
      ...ov.interpolation,
      ...this.options.interpolation
    }), ev.keySeparator !== void 0 && (this.options.userDefinedKeySeparator = ev.keySeparator), ev.nsSeparator !== void 0 && (this.options.userDefinedNsSeparator = ev.nsSeparator);
    const av = (dv) => dv ? typeof dv == "function" ? new dv() : dv : null;
    if (!this.options.isClone) {
      this.modules.logger ? baseLogger.init(av(this.modules.logger), this.options) : baseLogger.init(null, this.options);
      let dv;
      this.modules.formatter ? dv = this.modules.formatter : typeof Intl < "u" && (dv = Formatter);
      const hv = new LanguageUtil(this.options);
      this.store = new ResourceStore(this.options.resources, this.options);
      const pv = this.services;
      pv.logger = baseLogger, pv.resourceStore = this.store, pv.languageUtils = hv, pv.pluralResolver = new PluralResolver(hv, {
        prepend: this.options.pluralSeparator,
        compatibilityJSON: this.options.compatibilityJSON,
        simplifyPluralSuffix: this.options.simplifyPluralSuffix
      }), dv && (!this.options.interpolation.format || this.options.interpolation.format === ov.interpolation.format) && (pv.formatter = av(dv), pv.formatter.init(pv, this.options), this.options.interpolation.format = pv.formatter.format.bind(pv.formatter)), pv.interpolator = new Interpolator(this.options), pv.utils = {
        hasLoadedNamespace: this.hasLoadedNamespace.bind(this)
      }, pv.backendConnector = new Connector(av(this.modules.backend), pv.resourceStore, pv, this.options), pv.backendConnector.on("*", function(yv) {
        for (var Sv = arguments.length, _v = new Array(Sv > 1 ? Sv - 1 : 0), Ev = 1; Ev < Sv; Ev++)
          _v[Ev - 1] = arguments[Ev];
        tv.emit(yv, ..._v);
      }), this.modules.languageDetector && (pv.languageDetector = av(this.modules.languageDetector), pv.languageDetector.init && pv.languageDetector.init(pv, this.options.detection, this.options)), this.modules.i18nFormat && (pv.i18nFormat = av(this.modules.i18nFormat), pv.i18nFormat.init && pv.i18nFormat.init(this)), this.translator = new Translator(this.services, this.options), this.translator.on("*", function(yv) {
        for (var Sv = arguments.length, _v = new Array(Sv > 1 ? Sv - 1 : 0), Ev = 1; Ev < Sv; Ev++)
          _v[Ev - 1] = arguments[Ev];
        tv.emit(yv, ..._v);
      }), this.modules.external.forEach((yv) => {
        yv.init && yv.init(this);
      });
    }
    if (this.format = this.options.interpolation.format, iv || (iv = noop$1), this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
      const dv = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
      dv.length > 0 && dv[0] !== "dev" && (this.options.lng = dv[0]);
    }
    !this.services.languageDetector && !this.options.lng && this.logger.warn("init: no languageDetector is used and no lng is defined"), ["getResource", "hasResourceBundle", "getResourceBundle", "getDataByLanguage"].forEach((dv) => {
      this[dv] = function() {
        return tv.store[dv](...arguments);
      };
    }), ["addResource", "addResources", "addResourceBundle", "removeResourceBundle"].forEach((dv) => {
      this[dv] = function() {
        return tv.store[dv](...arguments), tv;
      };
    });
    const uv = defer(), cv = () => {
      const dv = (hv, pv) => {
        this.isInitializing = !1, this.isInitialized && !this.initializedStoreOnce && this.logger.warn("init: i18next is already initialized. You should call init just once!"), this.isInitialized = !0, this.options.isClone || this.logger.log("initialized", this.options), this.emit("initialized", this.options), uv.resolve(pv), iv(hv, pv);
      };
      if (this.languages && this.options.compatibilityAPI !== "v1" && !this.isInitialized)
        return dv(null, this.t.bind(this));
      this.changeLanguage(this.options.lng, dv);
    };
    return this.options.resources || !this.options.initImmediate ? cv() : setTimeout(cv, 0), uv;
  }
  loadResources(tv) {
    let iv = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : noop$1;
    const ov = typeof tv == "string" ? tv : this.language;
    if (typeof tv == "function" && (iv = tv), !this.options.resources || this.options.partialBundledLanguages) {
      if (ov && ov.toLowerCase() === "cimode" && (!this.options.preload || this.options.preload.length === 0))
        return iv();
      const av = [], sv = (lv) => {
        if (!lv || lv === "cimode")
          return;
        this.services.languageUtils.toResolveHierarchy(lv).forEach((cv) => {
          cv !== "cimode" && av.indexOf(cv) < 0 && av.push(cv);
        });
      };
      ov ? sv(ov) : this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((uv) => sv(uv)), this.options.preload && this.options.preload.forEach((lv) => sv(lv)), this.services.backendConnector.load(av, this.options.ns, (lv) => {
        !lv && !this.resolvedLanguage && this.language && this.setResolvedLanguage(this.language), iv(lv);
      });
    } else
      iv(null);
  }
  reloadResources(tv, ev, iv) {
    const ov = defer();
    return typeof tv == "function" && (iv = tv, tv = void 0), typeof ev == "function" && (iv = ev, ev = void 0), tv || (tv = this.languages), ev || (ev = this.options.ns), iv || (iv = noop$1), this.services.backendConnector.reload(tv, ev, (av) => {
      ov.resolve(), iv(av);
    }), ov;
  }
  use(tv) {
    if (!tv)
      throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");
    if (!tv.type)
      throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");
    return tv.type === "backend" && (this.modules.backend = tv), (tv.type === "logger" || tv.log && tv.warn && tv.error) && (this.modules.logger = tv), tv.type === "languageDetector" && (this.modules.languageDetector = tv), tv.type === "i18nFormat" && (this.modules.i18nFormat = tv), tv.type === "postProcessor" && postProcessor.addPostProcessor(tv), tv.type === "formatter" && (this.modules.formatter = tv), tv.type === "3rdParty" && this.modules.external.push(tv), this;
  }
  setResolvedLanguage(tv) {
    if (!(!tv || !this.languages) && !(["cimode", "dev"].indexOf(tv) > -1))
      for (let ev = 0; ev < this.languages.length; ev++) {
        const iv = this.languages[ev];
        if (!(["cimode", "dev"].indexOf(iv) > -1) && this.store.hasLanguageSomeTranslations(iv)) {
          this.resolvedLanguage = iv;
          break;
        }
      }
  }
  changeLanguage(tv, ev) {
    var iv = this;
    this.isLanguageChangingTo = tv;
    const ov = defer();
    this.emit("languageChanging", tv);
    const av = (uv) => {
      this.language = uv, this.languages = this.services.languageUtils.toResolveHierarchy(uv), this.resolvedLanguage = void 0, this.setResolvedLanguage(uv);
    }, sv = (uv, cv) => {
      cv ? (av(cv), this.translator.changeLanguage(cv), this.isLanguageChangingTo = void 0, this.emit("languageChanged", cv), this.logger.log("languageChanged", cv)) : this.isLanguageChangingTo = void 0, ov.resolve(function() {
        return iv.t(...arguments);
      }), ev && ev(uv, function() {
        return iv.t(...arguments);
      });
    }, lv = (uv) => {
      !tv && !uv && this.services.languageDetector && (uv = []);
      const cv = typeof uv == "string" ? uv : this.services.languageUtils.getBestMatchFromCodes(uv);
      cv && (this.language || av(cv), this.translator.language || this.translator.changeLanguage(cv), this.services.languageDetector && this.services.languageDetector.cacheUserLanguage && this.services.languageDetector.cacheUserLanguage(cv)), this.loadResources(cv, (dv) => {
        sv(dv, cv);
      });
    };
    return !tv && this.services.languageDetector && !this.services.languageDetector.async ? lv(this.services.languageDetector.detect()) : !tv && this.services.languageDetector && this.services.languageDetector.async ? this.services.languageDetector.detect.length === 0 ? this.services.languageDetector.detect().then(lv) : this.services.languageDetector.detect(lv) : lv(tv), ov;
  }
  getFixedT(tv, ev, iv) {
    var ov = this;
    const av = function(sv, lv) {
      let uv;
      if (typeof lv != "object") {
        for (var cv = arguments.length, dv = new Array(cv > 2 ? cv - 2 : 0), hv = 2; hv < cv; hv++)
          dv[hv - 2] = arguments[hv];
        uv = ov.options.overloadTranslationOptionHandler([sv, lv].concat(dv));
      } else
        uv = {
          ...lv
        };
      uv.lng = uv.lng || av.lng, uv.lngs = uv.lngs || av.lngs, uv.ns = uv.ns || av.ns, uv.keyPrefix !== "" && (uv.keyPrefix = uv.keyPrefix || iv || av.keyPrefix);
      const pv = ov.options.keySeparator || ".";
      let yv;
      return uv.keyPrefix && Array.isArray(sv) ? yv = sv.map((Sv) => `${uv.keyPrefix}${pv}${Sv}`) : yv = uv.keyPrefix ? `${uv.keyPrefix}${pv}${sv}` : sv, ov.t(yv, uv);
    };
    return typeof tv == "string" ? av.lng = tv : av.lngs = tv, av.ns = ev, av.keyPrefix = iv, av;
  }
  t() {
    return this.translator && this.translator.translate(...arguments);
  }
  exists() {
    return this.translator && this.translator.exists(...arguments);
  }
  setDefaultNamespace(tv) {
    this.options.defaultNS = tv;
  }
  hasLoadedNamespace(tv) {
    let ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    if (!this.isInitialized)
      return this.logger.warn("hasLoadedNamespace: i18next was not initialized", this.languages), !1;
    if (!this.languages || !this.languages.length)
      return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty", this.languages), !1;
    const iv = ev.lng || this.resolvedLanguage || this.languages[0], ov = this.options ? this.options.fallbackLng : !1, av = this.languages[this.languages.length - 1];
    if (iv.toLowerCase() === "cimode")
      return !0;
    const sv = (lv, uv) => {
      const cv = this.services.backendConnector.state[`${lv}|${uv}`];
      return cv === -1 || cv === 0 || cv === 2;
    };
    if (ev.precheck) {
      const lv = ev.precheck(this, sv);
      if (lv !== void 0)
        return lv;
    }
    return !!(this.hasResourceBundle(iv, tv) || !this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages || sv(iv, tv) && (!ov || sv(av, tv)));
  }
  loadNamespaces(tv, ev) {
    const iv = defer();
    return this.options.ns ? (typeof tv == "string" && (tv = [tv]), tv.forEach((ov) => {
      this.options.ns.indexOf(ov) < 0 && this.options.ns.push(ov);
    }), this.loadResources((ov) => {
      iv.resolve(), ev && ev(ov);
    }), iv) : (ev && ev(), Promise.resolve());
  }
  loadLanguages(tv, ev) {
    const iv = defer();
    typeof tv == "string" && (tv = [tv]);
    const ov = this.options.preload || [], av = tv.filter((sv) => ov.indexOf(sv) < 0 && this.services.languageUtils.isSupportedCode(sv));
    return av.length ? (this.options.preload = ov.concat(av), this.loadResources((sv) => {
      iv.resolve(), ev && ev(sv);
    }), iv) : (ev && ev(), Promise.resolve());
  }
  dir(tv) {
    if (tv || (tv = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language)), !tv)
      return "rtl";
    const ev = ["ar", "shu", "sqr", "ssh", "xaa", "yhd", "yud", "aao", "abh", "abv", "acm", "acq", "acw", "acx", "acy", "adf", "ads", "aeb", "aec", "afb", "ajp", "apc", "apd", "arb", "arq", "ars", "ary", "arz", "auz", "avl", "ayh", "ayl", "ayn", "ayp", "bbz", "pga", "he", "iw", "ps", "pbt", "pbu", "pst", "prp", "prd", "ug", "ur", "ydd", "yds", "yih", "ji", "yi", "hbo", "men", "xmn", "fa", "jpr", "peo", "pes", "prs", "dv", "sam", "ckb"], iv = this.services && this.services.languageUtils || new LanguageUtil(get$1());
    return ev.indexOf(iv.getLanguagePartFromCode(tv)) > -1 || tv.toLowerCase().indexOf("-arab") > 1 ? "rtl" : "ltr";
  }
  static createInstance() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, ev = arguments.length > 1 ? arguments[1] : void 0;
    return new I18n(tv, ev);
  }
  cloneInstance() {
    let tv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, ev = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : noop$1;
    const iv = tv.forkResourceStore;
    iv && delete tv.forkResourceStore;
    const ov = {
      ...this.options,
      ...tv,
      isClone: !0
    }, av = new I18n(ov);
    return (tv.debug !== void 0 || tv.prefix !== void 0) && (av.logger = av.logger.clone(tv)), ["store", "services", "language"].forEach((lv) => {
      av[lv] = this[lv];
    }), av.services = {
      ...this.services
    }, av.services.utils = {
      hasLoadedNamespace: av.hasLoadedNamespace.bind(av)
    }, iv && (av.store = new ResourceStore(this.store.data, ov), av.services.resourceStore = av.store), av.translator = new Translator(av.services, ov), av.translator.on("*", function(lv) {
      for (var uv = arguments.length, cv = new Array(uv > 1 ? uv - 1 : 0), dv = 1; dv < uv; dv++)
        cv[dv - 1] = arguments[dv];
      av.emit(lv, ...cv);
    }), av.init(ov, ev), av.translator.options = ov, av.translator.backendConnector.services.utils = {
      hasLoadedNamespace: av.hasLoadedNamespace.bind(av)
    }, av;
  }
  toJSON() {
    return {
      options: this.options,
      store: this.store,
      language: this.language,
      languages: this.languages,
      resolvedLanguage: this.resolvedLanguage
    };
  }
}
const instance = I18n.createInstance();
instance.createInstance = I18n.createInstance;
instance.createInstance;
instance.dir;
instance.init;
instance.loadResources;
instance.reloadResources;
instance.use;
instance.changeLanguage;
instance.getFixedT;
instance.t;
instance.exists;
instance.setDefaultNamespace;
instance.hasLoadedNamespace;
instance.loadNamespaces;
instance.loadLanguages;
function _extends$7() {
  return _extends$7 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        Object.prototype.hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, _extends$7.apply(this, arguments);
}
function warn() {
  if (console && console.warn) {
    for (var rv = arguments.length, tv = new Array(rv), ev = 0; ev < rv; ev++)
      tv[ev] = arguments[ev];
    typeof tv[0] == "string" && (tv[0] = `react-i18next:: ${tv[0]}`), console.warn(...tv);
  }
}
const alreadyWarned = {};
function warnOnce() {
  for (var rv = arguments.length, tv = new Array(rv), ev = 0; ev < rv; ev++)
    tv[ev] = arguments[ev];
  typeof tv[0] == "string" && alreadyWarned[tv[0]] || (typeof tv[0] == "string" && (alreadyWarned[tv[0]] = /* @__PURE__ */ new Date()), warn(...tv));
}
const loadedClb = (rv, tv) => () => {
  if (rv.isInitialized)
    tv();
  else {
    const ev = () => {
      setTimeout(() => {
        rv.off("initialized", ev);
      }, 0), tv();
    };
    rv.on("initialized", ev);
  }
};
function loadNamespaces(rv, tv, ev) {
  rv.loadNamespaces(tv, loadedClb(rv, ev));
}
function loadLanguages(rv, tv, ev, iv) {
  typeof ev == "string" && (ev = [ev]), ev.forEach((ov) => {
    rv.options.ns.indexOf(ov) < 0 && rv.options.ns.push(ov);
  }), rv.loadLanguages(tv, loadedClb(rv, iv));
}
function oldI18nextHasLoadedNamespace(rv, tv) {
  let ev = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
  const iv = tv.languages[0], ov = tv.options ? tv.options.fallbackLng : !1, av = tv.languages[tv.languages.length - 1];
  if (iv.toLowerCase() === "cimode")
    return !0;
  const sv = (lv, uv) => {
    const cv = tv.services.backendConnector.state[`${lv}|${uv}`];
    return cv === -1 || cv === 2;
  };
  return ev.bindI18n && ev.bindI18n.indexOf("languageChanging") > -1 && tv.services.backendConnector.backend && tv.isLanguageChangingTo && !sv(tv.isLanguageChangingTo, rv) ? !1 : !!(tv.hasResourceBundle(iv, rv) || !tv.services.backendConnector.backend || tv.options.resources && !tv.options.partialBundledLanguages || sv(iv, rv) && (!ov || sv(av, rv)));
}
function hasLoadedNamespace(rv, tv) {
  let ev = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
  return !tv.languages || !tv.languages.length ? (warnOnce("i18n.languages were undefined or empty", tv.languages), !0) : tv.options.ignoreJSONStructure !== void 0 ? tv.hasLoadedNamespace(rv, {
    lng: ev.lng,
    precheck: (ov, av) => {
      if (ev.bindI18n && ev.bindI18n.indexOf("languageChanging") > -1 && ov.services.backendConnector.backend && ov.isLanguageChangingTo && !av(ov.isLanguageChangingTo, rv))
        return !1;
    }
  }) : oldI18nextHasLoadedNamespace(rv, tv, ev);
}
const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g, htmlEntities = {
  "&amp;": "&",
  "&#38;": "&",
  "&lt;": "<",
  "&#60;": "<",
  "&gt;": ">",
  "&#62;": ">",
  "&apos;": "'",
  "&#39;": "'",
  "&quot;": '"',
  "&#34;": '"',
  "&nbsp;": " ",
  "&#160;": " ",
  "&copy;": "©",
  "&#169;": "©",
  "&reg;": "®",
  "&#174;": "®",
  "&hellip;": "…",
  "&#8230;": "…",
  "&#x2F;": "/",
  "&#47;": "/"
}, unescapeHtmlEntity = (rv) => htmlEntities[rv], unescape$1 = (rv) => rv.replace(matchHtmlEntity, unescapeHtmlEntity);
let defaultOptions$1 = {
  bindI18n: "languageChanged",
  bindI18nStore: "",
  transEmptyNodeValue: "",
  transSupportBasicHtmlNodes: !0,
  transWrapTextNodes: "",
  transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"],
  useSuspense: !0,
  unescape: unescape$1
};
function setDefaults() {
  let rv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
  defaultOptions$1 = {
    ...defaultOptions$1,
    ...rv
  };
}
function getDefaults() {
  return defaultOptions$1;
}
let i18nInstance;
function setI18n(rv) {
  i18nInstance = rv;
}
function getI18n() {
  return i18nInstance;
}
const initReactI18next = {
  type: "3rdParty",
  init(rv) {
    setDefaults(rv.options.react), setI18n(rv);
  }
}, I18nContext = reactExports.createContext();
class ReportNamespaces {
  constructor() {
    this.usedNamespaces = {};
  }
  addUsedNamespaces(tv) {
    tv.forEach((ev) => {
      this.usedNamespaces[ev] || (this.usedNamespaces[ev] = !0);
    });
  }
  getUsedNamespaces() {
    return Object.keys(this.usedNamespaces);
  }
}
const usePrevious = (rv, tv) => {
  const ev = reactExports.useRef();
  return reactExports.useEffect(() => {
    ev.current = rv;
  }, [rv, tv]), ev.current;
};
function useTranslation(rv) {
  let tv = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
  const {
    i18n: ev
  } = tv, {
    i18n: iv,
    defaultNS: ov
  } = reactExports.useContext(I18nContext) || {}, av = ev || iv || getI18n();
  if (av && !av.reportNamespaces && (av.reportNamespaces = new ReportNamespaces()), !av) {
    warnOnce("You will need to pass in an i18next instance by using initReactI18next");
    const Cv = (Ov, Lv) => typeof Lv == "string" ? Lv : Lv && typeof Lv == "object" && typeof Lv.defaultValue == "string" ? Lv.defaultValue : Array.isArray(Ov) ? Ov[Ov.length - 1] : Ov, Av = [Cv, {}, !1];
    return Av.t = Cv, Av.i18n = {}, Av.ready = !1, Av;
  }
  av.options.react && av.options.react.wait !== void 0 && warnOnce("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");
  const sv = {
    ...getDefaults(),
    ...av.options.react,
    ...tv
  }, {
    useSuspense: lv,
    keyPrefix: uv
  } = sv;
  let cv = rv || ov || av.options && av.options.defaultNS;
  cv = typeof cv == "string" ? [cv] : cv || ["translation"], av.reportNamespaces.addUsedNamespaces && av.reportNamespaces.addUsedNamespaces(cv);
  const dv = (av.isInitialized || av.initializedStoreOnce) && cv.every((Cv) => hasLoadedNamespace(Cv, av, sv));
  function hv() {
    return av.getFixedT(tv.lng || null, sv.nsMode === "fallback" ? cv : cv[0], uv);
  }
  const [pv, yv] = reactExports.useState(hv);
  let Sv = cv.join();
  tv.lng && (Sv = `${tv.lng}${Sv}`);
  const _v = usePrevious(Sv), Ev = reactExports.useRef(!0);
  reactExports.useEffect(() => {
    const {
      bindI18n: Cv,
      bindI18nStore: Av
    } = sv;
    Ev.current = !0, !dv && !lv && (tv.lng ? loadLanguages(av, tv.lng, cv, () => {
      Ev.current && yv(hv);
    }) : loadNamespaces(av, cv, () => {
      Ev.current && yv(hv);
    })), dv && _v && _v !== Sv && Ev.current && yv(hv);
    function Ov() {
      Ev.current && yv(hv);
    }
    return Cv && av && av.on(Cv, Ov), Av && av && av.store.on(Av, Ov), () => {
      Ev.current = !1, Cv && av && Cv.split(" ").forEach((Lv) => av.off(Lv, Ov)), Av && av && Av.split(" ").forEach((Lv) => av.store.off(Lv, Ov));
    };
  }, [av, Sv]);
  const wv = reactExports.useRef(!0);
  reactExports.useEffect(() => {
    Ev.current && !wv.current && yv(hv), wv.current = !1;
  }, [av, uv]);
  const xv = [pv, av, dv];
  if (xv.t = pv, xv.i18n = av, xv.ready = dv, dv || !dv && !lv)
    return xv;
  throw new Promise((Cv) => {
    tv.lng ? loadLanguages(av, tv.lng, cv, () => Cv()) : loadNamespaces(av, cv, () => Cv());
  });
}
jp$1(instance, initReactI18next);
const registerTranslations = (rv) => wp$1(instance, rv), logger$2 = qe$1.withPrefix(logger$3, "VtexProductRestRepository");
class VtexProductRestRepository {
  constructor(tv) {
    this.httpClient = tv;
  }
  async get(tv) {
    const ev = ar$2();
    try {
      const { status: iv, msg: ov, data: av } = await this.httpClient.get(
        `personal/vtex/getProductByProductID?account=${tv.account}&productId=${tv.productId}`
      );
      if (iv === "error" || !av)
        return this.err(ev, `Failed to fetch VTEX product - ${ov}`, tv), null;
      const sv = _o$1(av, tv.accountHost, !0);
      return sv || (this.err(
        ev,
        "Failed to convert VTEX product to Nizza product",
        tv
      ), null);
    } catch (iv) {
      return this.err(ev, "Error fetching VTEX product", tv, iv), null;
    }
  }
  err(tv, ev, iv, ov) {
    const av = ov ? ` - ${ov.message}` : "";
    logger$2.error(`<${tv}> ${ev}${av}`, iv);
  }
}
class ProductService {
  constructor(tv) {
    T$(this, "account");
    this.productRepo = tv, getPerant((ev) => this.account = ev.account);
  }
  async get(tv) {
    this.validateAccount();
    try {
      const ev = await this.productRepo.get({
        productId: tv,
        account: this.account.account,
        accountHost: this.account.host
      });
      if (!ev)
        throw new as$2(tv);
      return ev;
    } catch (ev) {
      throw ev instanceof Et$2 ? ev : new xa$3(ev);
    }
  }
  validateAccount() {
    if (!this.account)
      throw new su$2();
  }
}
const perant$2 = getPerant(), httpClient$1 = new gv({
  baseUrl: environment$3.apiUrls.rest,
  logger: perant$2.coreLogger
}), productRepository = new VtexProductRestRepository(httpClient$1), productService = new ProductService(productRepository);
function initializePerantRuntime(rv) {
  return new Nv({
    ...rv,
    globalId: "perant",
    getStore: getPerant,
    bundler: {
      isProd: !0,
      stage: "prod",
      ...rv.bundler
    }
  });
}
const nps$2 = {
  sessionCompletedTitle: "Session Completed",
  sessionCompletedBody: "Before we finish, we'd love to hear from you! How satisfied are you with the recommendations you received? Rate from 0 to 5.",
  leastLikely: "Not satisfied at all",
  mostLikely: "Completely satisfied",
  submit: "Submit",
  skip: "Skip and Close",
  comments: "Anything else you'd like to share?",
  finish: "Close"
}, __vite_glob_0_0$1 = {
  "ps-client-call": {
    addToCartNotification: {
      success: "Added to cart!",
      error: "Error while adding to cart"
    },
    chat: {
      mainTitle: "Chat",
      attachment: {
        mainTitle: "Message Attachments"
      }
    }
  },
  "assistant-options": {
    bigTitle: "Hello",
    body: "How can we help you?",
    videoCallTitle: "Personal Shopper Video Call",
    videoCallDescription: "1:1 video call with an expert",
    supportTitle: "Chat With Us",
    supportDescription: "Contact support or a physical store"
  },
  "call-request": {
    title: "Talk to a personal shopper",
    description: "Complete the following information and join the call",
    name: "Name",
    email: "Email",
    phone: "Enter your phone, e.g., 112...",
    startCall: "Start Call",
    advisorsNotAvailable: "No personal shoppers currently available. Please try again later.",
    close: "Close"
  },
  "terms-and-conditions": {
    agree: "I agree with the",
    link: "privacy and personal data processing policies",
    complement: "for product recommendations"
  },
  "form-validations": {
    nameRequired: "Name is a required field",
    emailRequired: "Email is a required field",
    invalidEmail: "Invalid email",
    invalidPhone: "Invalid phone"
  },
  "call-wait": {
    waitMessage: "Your personal shopper is getting ready. The call will start in a few minutes."
  },
  "client-call": {
    newUserConnected: "A user has joined"
  },
  "message-form": {
    writeMessage: "Write your message here",
    emptyChat: "There are no messages yet",
    you: "You"
  },
  nps: nps$2,
  "join-call": {
    joinCallTitle: "Welcome to Your Personal Shopper Call",
    joinCallBody: "Please enter your name below to proceed with the call",
    name: "Name",
    startCall: "Start Call",
    cancel: "Cancel"
  },
  "nps-end": {
    title: "Call Ended",
    details: "Thank you for sharing your feedback!"
  }
}, nps$1 = {
  sessionCompletedTitle: "La sesión ha concluido",
  sessionCompletedBody: "Antes de finalizar, nos gustaría conocer tu opinión. ¿Cuál es tu nivel de satisfacción con las recomendaciones que has recibido? Por favor, califica de 0 a 5.",
  leastLikely: "Nada satisfecho(a)",
  mostLikely: "Completamente satisfecho(a)",
  submit: "Enviar",
  skip: "Omitir y cerrar",
  comments: "¿Deseas compartir algo más?",
  finish: "Cerrar"
}, __vite_glob_1_0 = {
  "ps-client-call": {
    addToCartNotification: {
      success: "¡Se agregó al carrito!",
      error: "Se produjo un error al agregar al carrito"
    },
    chat: {
      mainTitle: "Chat",
      attachment: {
        mainTitle: "Anexos del mensaje"
      }
    }
  },
  "assistant-options": {
    bigTitle: "¡Hola!",
    body: "¿Cómo podemos ayudarte?",
    videoCallTitle: "Llamada con personal shopper",
    videoCallDescription: "Videollamada individual con especialista",
    supportTitle: "Chatea con nosotros",
    supportDescription: "Contactar a soporte o tienda física"
  },
  "call-request": {
    title: "Hablar con personal shopper",
    description: "Rellena la siguiente información y únete a la llamada",
    name: "Nombre",
    email: "Email",
    phone: "Teléfono",
    startCall: "Iniciar llamada",
    advisorsNotAvailable: "En este momento no hay personal shoppers disponibles. Vuelve a intentarlo más tarde.",
    close: "Cerrar"
  },
  "terms-and-conditions": {
    agree: "Concuerdo con las",
    link: "políticas de privacidad y tratamiento de datos personales",
    complement: "para recibir recomendaciones de productos"
  },
  "form-validations": {
    nameRequired: "Nombre es un campo obligatorio",
    emailRequired: "Email es un campo obligatorio",
    invalidEmail: "Email no válido",
    invalidPhone: "Teléfono no válido"
  },
  "call-wait": {
    waitMessage: "Tu personal shopper se está preparando. La llamada comenzará en unos minutos."
  },
  "client-call": {
    newUserConnected: "Un usuario se ha unido"
  },
  "message-form": {
    writeMessage: "Escribe tu mensaje aquí",
    emptyChat: "Todavía no hay mensajes",
    you: "Tú"
  },
  nps: nps$1,
  "join-call": {
    joinCallTitle: "Te damos la bienvenida a esta sesión con un personal shopper",
    joinCallBody: "Por favor, ingresa tu nombre a continuación para acceder a la llamada",
    name: "Nombre",
    startCall: "Iniciar llamada",
    cancel: "Cancelar"
  },
  "nps-end": {
    title: "Llamada finalizada",
    details: "¡Gracias por tus comentarios!"
  }
}, nps = {
  sessionCompletedTitle: "Sessão finalizada",
  sessionCompletedBody: "Antes de terminarmos, gostaríamos de ouvir sua opinião! Qual é o seu grau de satisfação com as recomendações que recebeu? Avalie de 0 a 5.",
  leastLikely: "Nada satisfeito(a)",
  mostLikely: "Totalmente satisfeito(a)",
  submit: "Enviar",
  skip: "Pular e fechar",
  comments: "Gostaria de compartilhar mais alguma coisa?",
  finish: "Fechar"
}, __vite_glob_2_0 = {
  "ps-client-call": {
    addToCartNotification: {
      success: "Adicionado ao carrinho!",
      error: "Ocorreu um erro ao adicionar ao carrinho"
    },
    chat: {
      mainTitle: "Chat",
      attachment: {
        mainTitle: "Anexos da mensagem"
      }
    }
  },
  "assistant-options": {
    bigTitle: "Olá",
    body: "Como podemos ajudar?",
    videoCallTitle: "Videochamada com personal shopper",
    videoCallDescription: "Videochamada individual com um especialista",
    supportTitle: "Fale com a gente pelo chat",
    supportDescription: "Contate o suporte ou uma loja física"
  },
  "call-request": {
    title: "Fale com um personal shopper",
    description: "Preencha as informações a seguir e entre na chamada",
    name: "Nome",
    email: "Email",
    phone: "Telefone",
    startCall: "Iniciar chamada",
    advisorsNotAvailable: "Nenhum personal shopper disponível no momento. Tente novamente mais tarde.",
    close: "Fechar"
  },
  "terms-and-conditions": {
    agree: "Eu concordo com as",
    link: "políticas de privacidade e tratamento de dados pessoais",
    complement: "para recomendações de produtos"
  },
  "form-validations": {
    nameRequired: "Nome é um campo obrigatório",
    emailRequired: "Email é um campo obrigatório",
    invalidEmail: "Email inválido",
    invalidPhone: "Telefone inválido"
  },
  "call-wait": {
    waitMessage: "Seu personal shopper está se preparando. A chamada começará em alguns minutos."
  },
  "client-call": {
    newUserConnected: "Um usuário entrou"
  },
  "message-form": {
    writeMessage: "Digite sua mensagem aqui",
    emptyChat: "Ainda não há mensagens",
    you: "Você"
  },
  nps,
  "join-call": {
    joinCallTitle: "Bem-vindo(a) à sua chamada com um personal shopper",
    joinCallBody: "Digite seu nome abaixo para prosseguir com a chamada",
    name: "Nome",
    startCall: "Iniciar chamada",
    cancel: "Cancelar"
  },
  "nps-end": {
    title: "Chamada finalizada",
    details: "Agradecemos pelo feedback!"
  }
}, translationFiles = {
  [Pd$1.English]: /* @__PURE__ */ Object.assign({
    "./en/translation.json": __vite_glob_0_0$1
  }),
  [Pd$1.Spanish]: /* @__PURE__ */ Object.assign({
    "./es/translation.json": __vite_glob_1_0
  }),
  [Pd$1.Portuguese]: /* @__PURE__ */ Object.assign({
    "./pt/translation.json": __vite_glob_2_0
  })
};
registerTranslations(translationFiles);
/**
 * @license
 * Copyright 2019 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const t$3 = globalThis, e$4 = t$3.ShadowRoot && (t$3.ShadyCSS === void 0 || t$3.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s$3 = Symbol(), o$6 = /* @__PURE__ */ new WeakMap();
let n$4 = class {
  constructor(tv, ev, iv) {
    if (this._$cssResult$ = !0, iv !== s$3)
      throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
    this.cssText = tv, this.t = ev;
  }
  get styleSheet() {
    let tv = this.o;
    const ev = this.t;
    if (e$4 && tv === void 0) {
      const iv = ev !== void 0 && ev.length === 1;
      iv && (tv = o$6.get(ev)), tv === void 0 && ((this.o = tv = new CSSStyleSheet()).replaceSync(this.cssText), iv && o$6.set(ev, tv));
    }
    return tv;
  }
  toString() {
    return this.cssText;
  }
};
const r$6 = (rv) => new n$4(typeof rv == "string" ? rv : rv + "", void 0, s$3), S$1 = (rv, tv) => {
  if (e$4)
    rv.adoptedStyleSheets = tv.map((ev) => ev instanceof CSSStyleSheet ? ev : ev.styleSheet);
  else
    for (const ev of tv) {
      const iv = document.createElement("style"), ov = t$3.litNonce;
      ov !== void 0 && iv.setAttribute("nonce", ov), iv.textContent = ev.cssText, rv.appendChild(iv);
    }
}, c$3 = e$4 ? (rv) => rv : (rv) => rv instanceof CSSStyleSheet ? ((tv) => {
  let ev = "";
  for (const iv of tv.cssRules)
    ev += iv.cssText;
  return r$6(ev);
})(rv) : rv;
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const { is: i$4, defineProperty: e$3, getOwnPropertyDescriptor: r$5, getOwnPropertyNames: h$3, getOwnPropertySymbols: o$5, getPrototypeOf: n$3 } = Object, a$1 = globalThis, c$2 = a$1.trustedTypes, l$1 = c$2 ? c$2.emptyScript : "", p$1 = a$1.reactiveElementPolyfillSupport, d$1 = (rv, tv) => rv, u$1 = { toAttribute(rv, tv) {
  switch (tv) {
    case Boolean:
      rv = rv ? l$1 : null;
      break;
    case Object:
    case Array:
      rv = rv == null ? rv : JSON.stringify(rv);
  }
  return rv;
}, fromAttribute(rv, tv) {
  let ev = rv;
  switch (tv) {
    case Boolean:
      ev = rv !== null;
      break;
    case Number:
      ev = rv === null ? null : Number(rv);
      break;
    case Object:
    case Array:
      try {
        ev = JSON.parse(rv);
      } catch {
        ev = null;
      }
  }
  return ev;
} }, f$3 = (rv, tv) => !i$4(rv, tv), y$1 = { attribute: !0, type: String, converter: u$1, reflect: !1, hasChanged: f$3 };
Symbol.metadata ?? (Symbol.metadata = Symbol("metadata")), a$1.litPropertyMetadata ?? (a$1.litPropertyMetadata = /* @__PURE__ */ new WeakMap());
class b extends HTMLElement {
  static addInitializer(tv) {
    this._$Ei(), (this.l ?? (this.l = [])).push(tv);
  }
  static get observedAttributes() {
    return this.finalize(), this._$Eh && [...this._$Eh.keys()];
  }
  static createProperty(tv, ev = y$1) {
    if (ev.state && (ev.attribute = !1), this._$Ei(), this.elementProperties.set(tv, ev), !ev.noAccessor) {
      const iv = Symbol(), ov = this.getPropertyDescriptor(tv, iv, ev);
      ov !== void 0 && e$3(this.prototype, tv, ov);
    }
  }
  static getPropertyDescriptor(tv, ev, iv) {
    const { get: ov, set: av } = r$5(this.prototype, tv) ?? { get() {
      return this[ev];
    }, set(sv) {
      this[ev] = sv;
    } };
    return { get() {
      return ov == null ? void 0 : ov.call(this);
    }, set(sv) {
      const lv = ov == null ? void 0 : ov.call(this);
      av.call(this, sv), this.requestUpdate(tv, lv, iv);
    }, configurable: !0, enumerable: !0 };
  }
  static getPropertyOptions(tv) {
    return this.elementProperties.get(tv) ?? y$1;
  }
  static _$Ei() {
    if (this.hasOwnProperty(d$1("elementProperties")))
      return;
    const tv = n$3(this);
    tv.finalize(), tv.l !== void 0 && (this.l = [...tv.l]), this.elementProperties = new Map(tv.elementProperties);
  }
  static finalize() {
    if (this.hasOwnProperty(d$1("finalized")))
      return;
    if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(d$1("properties"))) {
      const ev = this.properties, iv = [...h$3(ev), ...o$5(ev)];
      for (const ov of iv)
        this.createProperty(ov, ev[ov]);
    }
    const tv = this[Symbol.metadata];
    if (tv !== null) {
      const ev = litPropertyMetadata.get(tv);
      if (ev !== void 0)
        for (const [iv, ov] of ev)
          this.elementProperties.set(iv, ov);
    }
    this._$Eh = /* @__PURE__ */ new Map();
    for (const [ev, iv] of this.elementProperties) {
      const ov = this._$Eu(ev, iv);
      ov !== void 0 && this._$Eh.set(ov, ev);
    }
    this.elementStyles = this.finalizeStyles(this.styles);
  }
  static finalizeStyles(tv) {
    const ev = [];
    if (Array.isArray(tv)) {
      const iv = new Set(tv.flat(1 / 0).reverse());
      for (const ov of iv)
        ev.unshift(c$3(ov));
    } else
      tv !== void 0 && ev.push(c$3(tv));
    return ev;
  }
  static _$Eu(tv, ev) {
    const iv = ev.attribute;
    return iv === !1 ? void 0 : typeof iv == "string" ? iv : typeof tv == "string" ? tv.toLowerCase() : void 0;
  }
  constructor() {
    super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
  }
  _$Ev() {
    var tv;
    this._$ES = new Promise((ev) => this.enableUpdating = ev), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), (tv = this.constructor.l) == null || tv.forEach((ev) => ev(this));
  }
  addController(tv) {
    var ev;
    (this._$EO ?? (this._$EO = /* @__PURE__ */ new Set())).add(tv), this.renderRoot !== void 0 && this.isConnected && ((ev = tv.hostConnected) == null || ev.call(tv));
  }
  removeController(tv) {
    var ev;
    (ev = this._$EO) == null || ev.delete(tv);
  }
  _$E_() {
    const tv = /* @__PURE__ */ new Map(), ev = this.constructor.elementProperties;
    for (const iv of ev.keys())
      this.hasOwnProperty(iv) && (tv.set(iv, this[iv]), delete this[iv]);
    tv.size > 0 && (this._$Ep = tv);
  }
  createRenderRoot() {
    const tv = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
    return S$1(tv, this.constructor.elementStyles), tv;
  }
  connectedCallback() {
    var tv;
    this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), (tv = this._$EO) == null || tv.forEach((ev) => {
      var iv;
      return (iv = ev.hostConnected) == null ? void 0 : iv.call(ev);
    });
  }
  enableUpdating(tv) {
  }
  disconnectedCallback() {
    var tv;
    (tv = this._$EO) == null || tv.forEach((ev) => {
      var iv;
      return (iv = ev.hostDisconnected) == null ? void 0 : iv.call(ev);
    });
  }
  attributeChangedCallback(tv, ev, iv) {
    this._$AK(tv, iv);
  }
  _$EC(tv, ev) {
    var av;
    const iv = this.constructor.elementProperties.get(tv), ov = this.constructor._$Eu(tv, iv);
    if (ov !== void 0 && iv.reflect === !0) {
      const sv = (((av = iv.converter) == null ? void 0 : av.toAttribute) !== void 0 ? iv.converter : u$1).toAttribute(ev, iv.type);
      this._$Em = tv, sv == null ? this.removeAttribute(ov) : this.setAttribute(ov, sv), this._$Em = null;
    }
  }
  _$AK(tv, ev) {
    var av;
    const iv = this.constructor, ov = iv._$Eh.get(tv);
    if (ov !== void 0 && this._$Em !== ov) {
      const sv = iv.getPropertyOptions(ov), lv = typeof sv.converter == "function" ? { fromAttribute: sv.converter } : ((av = sv.converter) == null ? void 0 : av.fromAttribute) !== void 0 ? sv.converter : u$1;
      this._$Em = ov, this[ov] = lv.fromAttribute(ev, sv.type), this._$Em = null;
    }
  }
  requestUpdate(tv, ev, iv) {
    if (tv !== void 0) {
      if (iv ?? (iv = this.constructor.getPropertyOptions(tv)), !(iv.hasChanged ?? f$3)(this[tv], ev))
        return;
      this.P(tv, ev, iv);
    }
    this.isUpdatePending === !1 && (this._$ES = this._$ET());
  }
  P(tv, ev, iv) {
    this._$AL.has(tv) || this._$AL.set(tv, ev), iv.reflect === !0 && this._$Em !== tv && (this._$Ej ?? (this._$Ej = /* @__PURE__ */ new Set())).add(tv);
  }
  async _$ET() {
    this.isUpdatePending = !0;
    try {
      await this._$ES;
    } catch (ev) {
      Promise.reject(ev);
    }
    const tv = this.scheduleUpdate();
    return tv != null && await tv, !this.isUpdatePending;
  }
  scheduleUpdate() {
    return this.performUpdate();
  }
  performUpdate() {
    var iv;
    if (!this.isUpdatePending)
      return;
    if (!this.hasUpdated) {
      if (this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this._$Ep) {
        for (const [av, sv] of this._$Ep)
          this[av] = sv;
        this._$Ep = void 0;
      }
      const ov = this.constructor.elementProperties;
      if (ov.size > 0)
        for (const [av, sv] of ov)
          sv.wrapped !== !0 || this._$AL.has(av) || this[av] === void 0 || this.P(av, this[av], sv);
    }
    let tv = !1;
    const ev = this._$AL;
    try {
      tv = this.shouldUpdate(ev), tv ? (this.willUpdate(ev), (iv = this._$EO) == null || iv.forEach((ov) => {
        var av;
        return (av = ov.hostUpdate) == null ? void 0 : av.call(ov);
      }), this.update(ev)) : this._$EU();
    } catch (ov) {
      throw tv = !1, this._$EU(), ov;
    }
    tv && this._$AE(ev);
  }
  willUpdate(tv) {
  }
  _$AE(tv) {
    var ev;
    (ev = this._$EO) == null || ev.forEach((iv) => {
      var ov;
      return (ov = iv.hostUpdated) == null ? void 0 : ov.call(iv);
    }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(tv)), this.updated(tv);
  }
  _$EU() {
    this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;
  }
  get updateComplete() {
    return this.getUpdateComplete();
  }
  getUpdateComplete() {
    return this._$ES;
  }
  shouldUpdate(tv) {
    return !0;
  }
  update(tv) {
    this._$Ej && (this._$Ej = this._$Ej.forEach((ev) => this._$EC(ev, this[ev]))), this._$EU();
  }
  updated(tv) {
  }
  firstUpdated(tv) {
  }
}
b.elementStyles = [], b.shadowRootOptions = { mode: "open" }, b[d$1("elementProperties")] = /* @__PURE__ */ new Map(), b[d$1("finalized")] = /* @__PURE__ */ new Map(), p$1 == null || p$1({ ReactiveElement: b }), (a$1.reactiveElementVersions ?? (a$1.reactiveElementVersions = [])).push("2.0.4");
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const t$2 = globalThis, i$3 = t$2.trustedTypes, s$2 = i$3 ? i$3.createPolicy("lit-html", { createHTML: (rv) => rv }) : void 0, e$2 = "$lit$", h$2 = `lit$${Math.random().toFixed(9).slice(2)}$`, o$4 = "?" + h$2, n$2 = `<${o$4}>`, r$4 = document, l = () => r$4.createComment(""), c$1 = (rv) => rv === null || typeof rv != "object" && typeof rv != "function", a = Array.isArray, u = (rv) => a(rv) || typeof (rv == null ? void 0 : rv[Symbol.iterator]) == "function", d = `[ 	
\f\r]`, f$2 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, v = /-->/g, _ = />/g, m$1 = RegExp(`>|${d}(?:([^\\s"'>=/]+)(${d}*=${d}*(?:[^ 	
\f\r"'\`<>=]|("|')|))|$)`, "g"), p = /'/g, g = /"/g, $ = /^(?:script|style|textarea|title)$/i, y = (rv) => (tv, ...ev) => ({ _$litType$: rv, strings: tv, values: ev }), x = y(1), T = Symbol.for("lit-noChange"), E = Symbol.for("lit-nothing"), A = /* @__PURE__ */ new WeakMap(), C = r$4.createTreeWalker(r$4, 129);
function P(rv, tv) {
  if (!a(rv) || !rv.hasOwnProperty("raw"))
    throw Error("invalid template strings array");
  return s$2 !== void 0 ? s$2.createHTML(tv) : tv;
}
const V = (rv, tv) => {
  const ev = rv.length - 1, iv = [];
  let ov, av = tv === 2 ? "<svg>" : tv === 3 ? "<math>" : "", sv = f$2;
  for (let lv = 0; lv < ev; lv++) {
    const uv = rv[lv];
    let cv, dv, hv = -1, pv = 0;
    for (; pv < uv.length && (sv.lastIndex = pv, dv = sv.exec(uv), dv !== null); )
      pv = sv.lastIndex, sv === f$2 ? dv[1] === "!--" ? sv = v : dv[1] !== void 0 ? sv = _ : dv[2] !== void 0 ? ($.test(dv[2]) && (ov = RegExp("</" + dv[2], "g")), sv = m$1) : dv[3] !== void 0 && (sv = m$1) : sv === m$1 ? dv[0] === ">" ? (sv = ov ?? f$2, hv = -1) : dv[1] === void 0 ? hv = -2 : (hv = sv.lastIndex - dv[2].length, cv = dv[1], sv = dv[3] === void 0 ? m$1 : dv[3] === '"' ? g : p) : sv === g || sv === p ? sv = m$1 : sv === v || sv === _ ? sv = f$2 : (sv = m$1, ov = void 0);
    const yv = sv === m$1 && rv[lv + 1].startsWith("/>") ? " " : "";
    av += sv === f$2 ? uv + n$2 : hv >= 0 ? (iv.push(cv), uv.slice(0, hv) + e$2 + uv.slice(hv) + h$2 + yv) : uv + h$2 + (hv === -2 ? lv : yv);
  }
  return [P(rv, av + (rv[ev] || "<?>") + (tv === 2 ? "</svg>" : tv === 3 ? "</math>" : "")), iv];
};
class N {
  constructor({ strings: tv, _$litType$: ev }, iv) {
    let ov;
    this.parts = [];
    let av = 0, sv = 0;
    const lv = tv.length - 1, uv = this.parts, [cv, dv] = V(tv, ev);
    if (this.el = N.createElement(cv, iv), C.currentNode = this.el.content, ev === 2 || ev === 3) {
      const hv = this.el.content.firstChild;
      hv.replaceWith(...hv.childNodes);
    }
    for (; (ov = C.nextNode()) !== null && uv.length < lv; ) {
      if (ov.nodeType === 1) {
        if (ov.hasAttributes())
          for (const hv of ov.getAttributeNames())
            if (hv.endsWith(e$2)) {
              const pv = dv[sv++], yv = ov.getAttribute(hv).split(h$2), Sv = /([.?@])?(.*)/.exec(pv);
              uv.push({ type: 1, index: av, name: Sv[2], strings: yv, ctor: Sv[1] === "." ? H : Sv[1] === "?" ? I : Sv[1] === "@" ? L : k }), ov.removeAttribute(hv);
            } else
              hv.startsWith(h$2) && (uv.push({ type: 6, index: av }), ov.removeAttribute(hv));
        if ($.test(ov.tagName)) {
          const hv = ov.textContent.split(h$2), pv = hv.length - 1;
          if (pv > 0) {
            ov.textContent = i$3 ? i$3.emptyScript : "";
            for (let yv = 0; yv < pv; yv++)
              ov.append(hv[yv], l()), C.nextNode(), uv.push({ type: 2, index: ++av });
            ov.append(hv[pv], l());
          }
        }
      } else if (ov.nodeType === 8)
        if (ov.data === o$4)
          uv.push({ type: 2, index: av });
        else {
          let hv = -1;
          for (; (hv = ov.data.indexOf(h$2, hv + 1)) !== -1; )
            uv.push({ type: 7, index: av }), hv += h$2.length - 1;
        }
      av++;
    }
  }
  static createElement(tv, ev) {
    const iv = r$4.createElement("template");
    return iv.innerHTML = tv, iv;
  }
}
function S(rv, tv, ev = rv, iv) {
  var sv, lv;
  if (tv === T)
    return tv;
  let ov = iv !== void 0 ? (sv = ev._$Co) == null ? void 0 : sv[iv] : ev._$Cl;
  const av = c$1(tv) ? void 0 : tv._$litDirective$;
  return (ov == null ? void 0 : ov.constructor) !== av && ((lv = ov == null ? void 0 : ov._$AO) == null || lv.call(ov, !1), av === void 0 ? ov = void 0 : (ov = new av(rv), ov._$AT(rv, ev, iv)), iv !== void 0 ? (ev._$Co ?? (ev._$Co = []))[iv] = ov : ev._$Cl = ov), ov !== void 0 && (tv = S(rv, ov._$AS(rv, tv.values), ov, iv)), tv;
}
class M {
  constructor(tv, ev) {
    this._$AV = [], this._$AN = void 0, this._$AD = tv, this._$AM = ev;
  }
  get parentNode() {
    return this._$AM.parentNode;
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  u(tv) {
    const { el: { content: ev }, parts: iv } = this._$AD, ov = ((tv == null ? void 0 : tv.creationScope) ?? r$4).importNode(ev, !0);
    C.currentNode = ov;
    let av = C.nextNode(), sv = 0, lv = 0, uv = iv[0];
    for (; uv !== void 0; ) {
      if (sv === uv.index) {
        let cv;
        uv.type === 2 ? cv = new R(av, av.nextSibling, this, tv) : uv.type === 1 ? cv = new uv.ctor(av, uv.name, uv.strings, this, tv) : uv.type === 6 && (cv = new z(av, this, tv)), this._$AV.push(cv), uv = iv[++lv];
      }
      sv !== (uv == null ? void 0 : uv.index) && (av = C.nextNode(), sv++);
    }
    return C.currentNode = r$4, ov;
  }
  p(tv) {
    let ev = 0;
    for (const iv of this._$AV)
      iv !== void 0 && (iv.strings !== void 0 ? (iv._$AI(tv, iv, ev), ev += iv.strings.length - 2) : iv._$AI(tv[ev])), ev++;
  }
}
class R {
  get _$AU() {
    var tv;
    return ((tv = this._$AM) == null ? void 0 : tv._$AU) ?? this._$Cv;
  }
  constructor(tv, ev, iv, ov) {
    this.type = 2, this._$AH = E, this._$AN = void 0, this._$AA = tv, this._$AB = ev, this._$AM = iv, this.options = ov, this._$Cv = (ov == null ? void 0 : ov.isConnected) ?? !0;
  }
  get parentNode() {
    let tv = this._$AA.parentNode;
    const ev = this._$AM;
    return ev !== void 0 && (tv == null ? void 0 : tv.nodeType) === 11 && (tv = ev.parentNode), tv;
  }
  get startNode() {
    return this._$AA;
  }
  get endNode() {
    return this._$AB;
  }
  _$AI(tv, ev = this) {
    tv = S(this, tv, ev), c$1(tv) ? tv === E || tv == null || tv === "" ? (this._$AH !== E && this._$AR(), this._$AH = E) : tv !== this._$AH && tv !== T && this._(tv) : tv._$litType$ !== void 0 ? this.$(tv) : tv.nodeType !== void 0 ? this.T(tv) : u(tv) ? this.k(tv) : this._(tv);
  }
  O(tv) {
    return this._$AA.parentNode.insertBefore(tv, this._$AB);
  }
  T(tv) {
    this._$AH !== tv && (this._$AR(), this._$AH = this.O(tv));
  }
  _(tv) {
    this._$AH !== E && c$1(this._$AH) ? this._$AA.nextSibling.data = tv : this.T(r$4.createTextNode(tv)), this._$AH = tv;
  }
  $(tv) {
    var av;
    const { values: ev, _$litType$: iv } = tv, ov = typeof iv == "number" ? this._$AC(tv) : (iv.el === void 0 && (iv.el = N.createElement(P(iv.h, iv.h[0]), this.options)), iv);
    if (((av = this._$AH) == null ? void 0 : av._$AD) === ov)
      this._$AH.p(ev);
    else {
      const sv = new M(ov, this), lv = sv.u(this.options);
      sv.p(ev), this.T(lv), this._$AH = sv;
    }
  }
  _$AC(tv) {
    let ev = A.get(tv.strings);
    return ev === void 0 && A.set(tv.strings, ev = new N(tv)), ev;
  }
  k(tv) {
    a(this._$AH) || (this._$AH = [], this._$AR());
    const ev = this._$AH;
    let iv, ov = 0;
    for (const av of tv)
      ov === ev.length ? ev.push(iv = new R(this.O(l()), this.O(l()), this, this.options)) : iv = ev[ov], iv._$AI(av), ov++;
    ov < ev.length && (this._$AR(iv && iv._$AB.nextSibling, ov), ev.length = ov);
  }
  _$AR(tv = this._$AA.nextSibling, ev) {
    var iv;
    for ((iv = this._$AP) == null ? void 0 : iv.call(this, !1, !0, ev); tv && tv !== this._$AB; ) {
      const ov = tv.nextSibling;
      tv.remove(), tv = ov;
    }
  }
  setConnected(tv) {
    var ev;
    this._$AM === void 0 && (this._$Cv = tv, (ev = this._$AP) == null || ev.call(this, tv));
  }
}
class k {
  get tagName() {
    return this.element.tagName;
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  constructor(tv, ev, iv, ov, av) {
    this.type = 1, this._$AH = E, this._$AN = void 0, this.element = tv, this.name = ev, this._$AM = ov, this.options = av, iv.length > 2 || iv[0] !== "" || iv[1] !== "" ? (this._$AH = Array(iv.length - 1).fill(new String()), this.strings = iv) : this._$AH = E;
  }
  _$AI(tv, ev = this, iv, ov) {
    const av = this.strings;
    let sv = !1;
    if (av === void 0)
      tv = S(this, tv, ev, 0), sv = !c$1(tv) || tv !== this._$AH && tv !== T, sv && (this._$AH = tv);
    else {
      const lv = tv;
      let uv, cv;
      for (tv = av[0], uv = 0; uv < av.length - 1; uv++)
        cv = S(this, lv[iv + uv], ev, uv), cv === T && (cv = this._$AH[uv]), sv || (sv = !c$1(cv) || cv !== this._$AH[uv]), cv === E ? tv = E : tv !== E && (tv += (cv ?? "") + av[uv + 1]), this._$AH[uv] = cv;
    }
    sv && !ov && this.j(tv);
  }
  j(tv) {
    tv === E ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, tv ?? "");
  }
}
class H extends k {
  constructor() {
    super(...arguments), this.type = 3;
  }
  j(tv) {
    this.element[this.name] = tv === E ? void 0 : tv;
  }
}
class I extends k {
  constructor() {
    super(...arguments), this.type = 4;
  }
  j(tv) {
    this.element.toggleAttribute(this.name, !!tv && tv !== E);
  }
}
class L extends k {
  constructor(tv, ev, iv, ov, av) {
    super(tv, ev, iv, ov, av), this.type = 5;
  }
  _$AI(tv, ev = this) {
    if ((tv = S(this, tv, ev, 0) ?? E) === T)
      return;
    const iv = this._$AH, ov = tv === E && iv !== E || tv.capture !== iv.capture || tv.once !== iv.once || tv.passive !== iv.passive, av = tv !== E && (iv === E || ov);
    ov && this.element.removeEventListener(this.name, this, iv), av && this.element.addEventListener(this.name, this, tv), this._$AH = tv;
  }
  handleEvent(tv) {
    var ev;
    typeof this._$AH == "function" ? this._$AH.call(((ev = this.options) == null ? void 0 : ev.host) ?? this.element, tv) : this._$AH.handleEvent(tv);
  }
}
class z {
  constructor(tv, ev, iv) {
    this.element = tv, this.type = 6, this._$AN = void 0, this._$AM = ev, this.options = iv;
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  _$AI(tv) {
    S(this, tv);
  }
}
const j = t$2.litHtmlPolyfillSupport;
j == null || j(N, R), (t$2.litHtmlVersions ?? (t$2.litHtmlVersions = [])).push("3.2.1");
const B = (rv, tv, ev) => {
  const iv = (ev == null ? void 0 : ev.renderBefore) ?? tv;
  let ov = iv._$litPart$;
  if (ov === void 0) {
    const av = (ev == null ? void 0 : ev.renderBefore) ?? null;
    iv._$litPart$ = ov = new R(tv.insertBefore(l(), av), av, void 0, ev ?? {});
  }
  return ov._$AI(rv), ov;
};
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
let r$3 = class extends b {
  constructor() {
    super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
  }
  createRenderRoot() {
    var ev;
    const tv = super.createRenderRoot();
    return (ev = this.renderOptions).renderBefore ?? (ev.renderBefore = tv.firstChild), tv;
  }
  update(tv) {
    const ev = this.render();
    this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(tv), this._$Do = B(ev, this.renderRoot, this.renderOptions);
  }
  connectedCallback() {
    var tv;
    super.connectedCallback(), (tv = this._$Do) == null || tv.setConnected(!0);
  }
  disconnectedCallback() {
    var tv;
    super.disconnectedCallback(), (tv = this._$Do) == null || tv.setConnected(!1);
  }
  render() {
    return T;
  }
};
var dN;
r$3._$litElement$ = !0, r$3.finalized = !0, (dN = globalThis.litElementHydrateSupport) == null || dN.call(globalThis, { LitElement: r$3 });
const i$2 = globalThis.litElementPolyfillSupport;
i$2 == null || i$2({ LitElement: r$3 });
(globalThis.litElementVersions ?? (globalThis.litElementVersions = [])).push("4.1.1");
/**
 * @license
 * Copyright 2020 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const f$1 = (rv) => rv.strings === void 0;
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const t$1 = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 }, e$1 = (rv) => (...tv) => ({ _$litDirective$: rv, values: tv });
let i$1 = class {
  constructor(tv) {
  }
  get _$AU() {
    return this._$AM._$AU;
  }
  _$AT(tv, ev, iv) {
    this._$Ct = tv, this._$AM = ev, this._$Ci = iv;
  }
  _$AS(tv, ev) {
    return this.update(tv, ev);
  }
  update(tv, ev) {
    return this.render(...ev);
  }
};
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const s$1 = (rv, tv) => {
  var iv;
  const ev = rv._$AN;
  if (ev === void 0)
    return !1;
  for (const ov of ev)
    (iv = ov._$AO) == null || iv.call(ov, tv, !1), s$1(ov, tv);
  return !0;
}, o$3 = (rv) => {
  let tv, ev;
  do {
    if ((tv = rv._$AM) === void 0)
      break;
    ev = tv._$AN, ev.delete(rv), rv = tv;
  } while ((ev == null ? void 0 : ev.size) === 0);
}, r$2 = (rv) => {
  for (let tv; tv = rv._$AM; rv = tv) {
    let ev = tv._$AN;
    if (ev === void 0)
      tv._$AN = ev = /* @__PURE__ */ new Set();
    else if (ev.has(rv))
      break;
    ev.add(rv), c(tv);
  }
};
function h$1(rv) {
  this._$AN !== void 0 ? (o$3(this), this._$AM = rv, r$2(this)) : this._$AM = rv;
}
function n$1(rv, tv = !1, ev = 0) {
  const iv = this._$AH, ov = this._$AN;
  if (ov !== void 0 && ov.size !== 0)
    if (tv)
      if (Array.isArray(iv))
        for (let av = ev; av < iv.length; av++)
          s$1(iv[av], !1), o$3(iv[av]);
      else
        iv != null && (s$1(iv, !1), o$3(iv));
    else
      s$1(this, rv);
}
const c = (rv) => {
  rv.type == t$1.CHILD && (rv._$AP ?? (rv._$AP = n$1), rv._$AQ ?? (rv._$AQ = h$1));
};
class f extends i$1 {
  constructor() {
    super(...arguments), this._$AN = void 0;
  }
  _$AT(tv, ev, iv) {
    super._$AT(tv, ev, iv), r$2(this), this.isConnected = tv._$AU;
  }
  _$AO(tv, ev = !0) {
    var iv, ov;
    tv !== this.isConnected && (this.isConnected = tv, tv ? (iv = this.reconnected) == null || iv.call(this) : (ov = this.disconnected) == null || ov.call(this)), ev && (s$1(this, tv), o$3(this));
  }
  setValue(tv) {
    if (f$1(this._$Ct))
      this._$Ct._$AI(tv, this);
    else {
      const ev = [...this._$Ct._$AH];
      ev[this._$Ci] = tv, this._$Ct._$AI(ev, this, 0);
    }
  }
  disconnected() {
  }
  reconnected() {
  }
}
/**
 * @license
 * Copyright 2020 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const e = () => new h();
class h {
}
const o$2 = /* @__PURE__ */ new WeakMap(), n = e$1(class extends f {
  render(rv) {
    return E;
  }
  update(rv, [tv]) {
    var iv;
    const ev = tv !== this.Y;
    return ev && this.Y !== void 0 && this.rt(void 0), (ev || this.lt !== this.ct) && (this.Y = tv, this.ht = (iv = rv.options) == null ? void 0 : iv.host, this.rt(this.ct = rv.element)), E;
  }
  rt(rv) {
    if (this.isConnected || (rv = void 0), typeof this.Y == "function") {
      const tv = this.ht ?? globalThis;
      let ev = o$2.get(tv);
      ev === void 0 && (ev = /* @__PURE__ */ new WeakMap(), o$2.set(tv, ev)), ev.get(this.Y) !== void 0 && this.Y.call(this.ht, void 0), ev.set(this.Y, rv), rv !== void 0 && this.Y.call(this.ht, rv);
    } else
      this.Y.value = rv;
  }
  get lt() {
    var rv, tv;
    return typeof this.Y == "function" ? (rv = o$2.get(this.ht ?? globalThis)) == null ? void 0 : rv.get(this.Y) : (tv = this.Y) == null ? void 0 : tv.value;
  }
  disconnected() {
    this.lt === this.ct && this.rt(void 0);
  }
  reconnected() {
    this.rt(this.ct);
  }
});
var createRoot, m = reactDomExports;
createRoot = m.createRoot, m.hydrateRoot;
const logger$1 = Xg("widget", getPerant);
/**
 * @remix-run/router v1.19.2
 *
 * Copyright (c) Remix Software Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE.md file in the root directory of this source tree.
 *
 * @license MIT
 */
function _extends$6() {
  return _extends$6 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        Object.prototype.hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, _extends$6.apply(this, arguments);
}
var Action;
(function(rv) {
  rv.Pop = "POP", rv.Push = "PUSH", rv.Replace = "REPLACE";
})(Action || (Action = {}));
const PopStateEventType = "popstate";
function createHashHistory(rv) {
  rv === void 0 && (rv = {});
  function tv(ov, av) {
    let {
      pathname: sv = "/",
      search: lv = "",
      hash: uv = ""
    } = parsePath(ov.location.hash.substr(1));
    return !sv.startsWith("/") && !sv.startsWith(".") && (sv = "/" + sv), createLocation(
      "",
      {
        pathname: sv,
        search: lv,
        hash: uv
      },
      // state defaults to `null` because `window.history.state` does
      av.state && av.state.usr || null,
      av.state && av.state.key || "default"
    );
  }
  function ev(ov, av) {
    let sv = ov.document.querySelector("base"), lv = "";
    if (sv && sv.getAttribute("href")) {
      let uv = ov.location.href, cv = uv.indexOf("#");
      lv = cv === -1 ? uv : uv.slice(0, cv);
    }
    return lv + "#" + (typeof av == "string" ? av : createPath(av));
  }
  function iv(ov, av) {
    warning(ov.pathname.charAt(0) === "/", "relative pathnames are not supported in hash history.push(" + JSON.stringify(av) + ")");
  }
  return getUrlBasedHistory(tv, ev, iv, rv);
}
function invariant$2(rv, tv) {
  if (rv === !1 || rv === null || typeof rv > "u")
    throw new Error(tv);
}
function warning(rv, tv) {
  if (!rv) {
    typeof console < "u" && console.warn(tv);
    try {
      throw new Error(tv);
    } catch {
    }
  }
}
function createKey() {
  return Math.random().toString(36).substr(2, 8);
}
function getHistoryState(rv, tv) {
  return {
    usr: rv.state,
    key: rv.key,
    idx: tv
  };
}
function createLocation(rv, tv, ev, iv) {
  return ev === void 0 && (ev = null), _extends$6({
    pathname: typeof rv == "string" ? rv : rv.pathname,
    search: "",
    hash: ""
  }, typeof tv == "string" ? parsePath(tv) : tv, {
    state: ev,
    // TODO: This could be cleaned up.  push/replace should probably just take
    // full Locations now and avoid the need to run through this flow at all
    // But that's a pretty big refactor to the current test suite so going to
    // keep as is for the time being and just let any incoming keys take precedence
    key: tv && tv.key || iv || createKey()
  });
}
function createPath(rv) {
  let {
    pathname: tv = "/",
    search: ev = "",
    hash: iv = ""
  } = rv;
  return ev && ev !== "?" && (tv += ev.charAt(0) === "?" ? ev : "?" + ev), iv && iv !== "#" && (tv += iv.charAt(0) === "#" ? iv : "#" + iv), tv;
}
function parsePath(rv) {
  let tv = {};
  if (rv) {
    let ev = rv.indexOf("#");
    ev >= 0 && (tv.hash = rv.substr(ev), rv = rv.substr(0, ev));
    let iv = rv.indexOf("?");
    iv >= 0 && (tv.search = rv.substr(iv), rv = rv.substr(0, iv)), rv && (tv.pathname = rv);
  }
  return tv;
}
function getUrlBasedHistory(rv, tv, ev, iv) {
  iv === void 0 && (iv = {});
  let {
    window: ov = document.defaultView,
    v5Compat: av = !1
  } = iv, sv = ov.history, lv = Action.Pop, uv = null, cv = dv();
  cv == null && (cv = 0, sv.replaceState(_extends$6({}, sv.state, {
    idx: cv
  }), ""));
  function dv() {
    return (sv.state || {
      idx: null
    }).idx;
  }
  function hv() {
    lv = Action.Pop;
    let Ev = dv(), wv = Ev == null ? null : Ev - cv;
    cv = Ev, uv && uv({
      action: lv,
      location: _v.location,
      delta: wv
    });
  }
  function pv(Ev, wv) {
    lv = Action.Push;
    let xv = createLocation(_v.location, Ev, wv);
    ev && ev(xv, Ev), cv = dv() + 1;
    let Cv = getHistoryState(xv, cv), Av = _v.createHref(xv);
    try {
      sv.pushState(Cv, "", Av);
    } catch (Ov) {
      if (Ov instanceof DOMException && Ov.name === "DataCloneError")
        throw Ov;
      ov.location.assign(Av);
    }
    av && uv && uv({
      action: lv,
      location: _v.location,
      delta: 1
    });
  }
  function yv(Ev, wv) {
    lv = Action.Replace;
    let xv = createLocation(_v.location, Ev, wv);
    ev && ev(xv, Ev), cv = dv();
    let Cv = getHistoryState(xv, cv), Av = _v.createHref(xv);
    sv.replaceState(Cv, "", Av), av && uv && uv({
      action: lv,
      location: _v.location,
      delta: 0
    });
  }
  function Sv(Ev) {
    let wv = ov.location.origin !== "null" ? ov.location.origin : ov.location.href, xv = typeof Ev == "string" ? Ev : createPath(Ev);
    return xv = xv.replace(/ $/, "%20"), invariant$2(wv, "No window.location.(origin|href) available to create URL for href: " + xv), new URL(xv, wv);
  }
  let _v = {
    get action() {
      return lv;
    },
    get location() {
      return rv(ov, sv);
    },
    listen(Ev) {
      if (uv)
        throw new Error("A history only accepts one active listener");
      return ov.addEventListener(PopStateEventType, hv), uv = Ev, () => {
        ov.removeEventListener(PopStateEventType, hv), uv = null;
      };
    },
    createHref(Ev) {
      return tv(ov, Ev);
    },
    createURL: Sv,
    encodeLocation(Ev) {
      let wv = Sv(Ev);
      return {
        pathname: wv.pathname,
        search: wv.search,
        hash: wv.hash
      };
    },
    push: pv,
    replace: yv,
    go(Ev) {
      return sv.go(Ev);
    }
  };
  return _v;
}
var ResultType;
(function(rv) {
  rv.data = "data", rv.deferred = "deferred", rv.redirect = "redirect", rv.error = "error";
})(ResultType || (ResultType = {}));
const immutableRouteKeys = /* @__PURE__ */ new Set(["lazy", "caseSensitive", "path", "id", "index", "children"]);
function isIndexRoute(rv) {
  return rv.index === !0;
}
function convertRoutesToDataRoutes(rv, tv, ev, iv) {
  return ev === void 0 && (ev = []), iv === void 0 && (iv = {}), rv.map((ov, av) => {
    let sv = [...ev, String(av)], lv = typeof ov.id == "string" ? ov.id : sv.join("-");
    if (invariant$2(ov.index !== !0 || !ov.children, "Cannot specify children on an index route"), invariant$2(!iv[lv], 'Found a route id collision on id "' + lv + `".  Route id's must be globally unique within Data Router usages`), isIndexRoute(ov)) {
      let uv = _extends$6({}, ov, tv(ov), {
        id: lv
      });
      return iv[lv] = uv, uv;
    } else {
      let uv = _extends$6({}, ov, tv(ov), {
        id: lv,
        children: void 0
      });
      return iv[lv] = uv, ov.children && (uv.children = convertRoutesToDataRoutes(ov.children, tv, sv, iv)), uv;
    }
  });
}
function matchRoutes(rv, tv, ev) {
  return ev === void 0 && (ev = "/"), matchRoutesImpl(rv, tv, ev, !1);
}
function matchRoutesImpl(rv, tv, ev, iv) {
  let ov = typeof tv == "string" ? parsePath(tv) : tv, av = stripBasename(ov.pathname || "/", ev);
  if (av == null)
    return null;
  let sv = flattenRoutes(rv);
  rankRouteBranches(sv);
  let lv = null;
  for (let uv = 0; lv == null && uv < sv.length; ++uv) {
    let cv = decodePath(av);
    lv = matchRouteBranch(sv[uv], cv, iv);
  }
  return lv;
}
function convertRouteMatchToUiMatch(rv, tv) {
  let {
    route: ev,
    pathname: iv,
    params: ov
  } = rv;
  return {
    id: ev.id,
    pathname: iv,
    params: ov,
    data: tv[ev.id],
    handle: ev.handle
  };
}
function flattenRoutes(rv, tv, ev, iv) {
  tv === void 0 && (tv = []), ev === void 0 && (ev = []), iv === void 0 && (iv = "");
  let ov = (av, sv, lv) => {
    let uv = {
      relativePath: lv === void 0 ? av.path || "" : lv,
      caseSensitive: av.caseSensitive === !0,
      childrenIndex: sv,
      route: av
    };
    uv.relativePath.startsWith("/") && (invariant$2(uv.relativePath.startsWith(iv), 'Absolute route path "' + uv.relativePath + '" nested under path ' + ('"' + iv + '" is not valid. An absolute child route path ') + "must start with the combined path of all its parent routes."), uv.relativePath = uv.relativePath.slice(iv.length));
    let cv = joinPaths([iv, uv.relativePath]), dv = ev.concat(uv);
    av.children && av.children.length > 0 && (invariant$2(
      // Our types know better, but runtime JS may not!
      // @ts-expect-error
      av.index !== !0,
      "Index routes must not have child routes. Please remove " + ('all child routes from route path "' + cv + '".')
    ), flattenRoutes(av.children, tv, dv, cv)), !(av.path == null && !av.index) && tv.push({
      path: cv,
      score: computeScore(cv, av.index),
      routesMeta: dv
    });
  };
  return rv.forEach((av, sv) => {
    var lv;
    if (av.path === "" || !((lv = av.path) != null && lv.includes("?")))
      ov(av, sv);
    else
      for (let uv of explodeOptionalSegments(av.path))
        ov(av, sv, uv);
  }), tv;
}
function explodeOptionalSegments(rv) {
  let tv = rv.split("/");
  if (tv.length === 0)
    return [];
  let [ev, ...iv] = tv, ov = ev.endsWith("?"), av = ev.replace(/\?$/, "");
  if (iv.length === 0)
    return ov ? [av, ""] : [av];
  let sv = explodeOptionalSegments(iv.join("/")), lv = [];
  return lv.push(...sv.map((uv) => uv === "" ? av : [av, uv].join("/"))), ov && lv.push(...sv), lv.map((uv) => rv.startsWith("/") && uv === "" ? "/" : uv);
}
function rankRouteBranches(rv) {
  rv.sort((tv, ev) => tv.score !== ev.score ? ev.score - tv.score : compareIndexes(tv.routesMeta.map((iv) => iv.childrenIndex), ev.routesMeta.map((iv) => iv.childrenIndex)));
}
const paramRe = /^:[\w-]+$/, dynamicSegmentValue = 3, indexRouteValue = 2, emptySegmentValue = 1, staticSegmentValue = 10, splatPenalty = -2, isSplat = (rv) => rv === "*";
function computeScore(rv, tv) {
  let ev = rv.split("/"), iv = ev.length;
  return ev.some(isSplat) && (iv += splatPenalty), tv && (iv += indexRouteValue), ev.filter((ov) => !isSplat(ov)).reduce((ov, av) => ov + (paramRe.test(av) ? dynamicSegmentValue : av === "" ? emptySegmentValue : staticSegmentValue), iv);
}
function compareIndexes(rv, tv) {
  return rv.length === tv.length && rv.slice(0, -1).every((iv, ov) => iv === tv[ov]) ? (
    // If two routes are siblings, we should try to match the earlier sibling
    // first. This allows people to have fine-grained control over the matching
    // behavior by simply putting routes with identical paths in the order they
    // want them tried.
    rv[rv.length - 1] - tv[tv.length - 1]
  ) : (
    // Otherwise, it doesn't really make sense to rank non-siblings by index,
    // so they sort equally.
    0
  );
}
function matchRouteBranch(rv, tv, ev) {
  ev === void 0 && (ev = !1);
  let {
    routesMeta: iv
  } = rv, ov = {}, av = "/", sv = [];
  for (let lv = 0; lv < iv.length; ++lv) {
    let uv = iv[lv], cv = lv === iv.length - 1, dv = av === "/" ? tv : tv.slice(av.length) || "/", hv = matchPath({
      path: uv.relativePath,
      caseSensitive: uv.caseSensitive,
      end: cv
    }, dv), pv = uv.route;
    if (!hv && cv && ev && !iv[iv.length - 1].route.index && (hv = matchPath({
      path: uv.relativePath,
      caseSensitive: uv.caseSensitive,
      end: !1
    }, dv)), !hv)
      return null;
    Object.assign(ov, hv.params), sv.push({
      // TODO: Can this as be avoided?
      params: ov,
      pathname: joinPaths([av, hv.pathname]),
      pathnameBase: normalizePathname(joinPaths([av, hv.pathnameBase])),
      route: pv
    }), hv.pathnameBase !== "/" && (av = joinPaths([av, hv.pathnameBase]));
  }
  return sv;
}
function matchPath(rv, tv) {
  typeof rv == "string" && (rv = {
    path: rv,
    caseSensitive: !1,
    end: !0
  });
  let [ev, iv] = compilePath(rv.path, rv.caseSensitive, rv.end), ov = tv.match(ev);
  if (!ov)
    return null;
  let av = ov[0], sv = av.replace(/(.)\/+$/, "$1"), lv = ov.slice(1);
  return {
    params: iv.reduce((cv, dv, hv) => {
      let {
        paramName: pv,
        isOptional: yv
      } = dv;
      if (pv === "*") {
        let _v = lv[hv] || "";
        sv = av.slice(0, av.length - _v.length).replace(/(.)\/+$/, "$1");
      }
      const Sv = lv[hv];
      return yv && !Sv ? cv[pv] = void 0 : cv[pv] = (Sv || "").replace(/%2F/g, "/"), cv;
    }, {}),
    pathname: av,
    pathnameBase: sv,
    pattern: rv
  };
}
function compilePath(rv, tv, ev) {
  tv === void 0 && (tv = !1), ev === void 0 && (ev = !0), warning(rv === "*" || !rv.endsWith("*") || rv.endsWith("/*"), 'Route path "' + rv + '" will be treated as if it were ' + ('"' + rv.replace(/\*$/, "/*") + '" because the `*` character must ') + "always follow a `/` in the pattern. To get rid of this warning, " + ('please change the route path to "' + rv.replace(/\*$/, "/*") + '".'));
  let iv = [], ov = "^" + rv.replace(/\/*\*?$/, "").replace(/^\/*/, "/").replace(/[\\.*+^${}|()[\]]/g, "\\$&").replace(/\/:([\w-]+)(\?)?/g, (sv, lv, uv) => (iv.push({
    paramName: lv,
    isOptional: uv != null
  }), uv ? "/?([^\\/]+)?" : "/([^\\/]+)"));
  return rv.endsWith("*") ? (iv.push({
    paramName: "*"
  }), ov += rv === "*" || rv === "/*" ? "(.*)$" : "(?:\\/(.+)|\\/*)$") : ev ? ov += "\\/*$" : rv !== "" && rv !== "/" && (ov += "(?:(?=\\/|$))"), [new RegExp(ov, tv ? void 0 : "i"), iv];
}
function decodePath(rv) {
  try {
    return rv.split("/").map((tv) => decodeURIComponent(tv).replace(/\//g, "%2F")).join("/");
  } catch (tv) {
    return warning(!1, 'The URL path "' + rv + '" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent ' + ("encoding (" + tv + ").")), rv;
  }
}
function stripBasename(rv, tv) {
  if (tv === "/")
    return rv;
  if (!rv.toLowerCase().startsWith(tv.toLowerCase()))
    return null;
  let ev = tv.endsWith("/") ? tv.length - 1 : tv.length, iv = rv.charAt(ev);
  return iv && iv !== "/" ? null : rv.slice(ev) || "/";
}
function resolvePath(rv, tv) {
  tv === void 0 && (tv = "/");
  let {
    pathname: ev,
    search: iv = "",
    hash: ov = ""
  } = typeof rv == "string" ? parsePath(rv) : rv;
  return {
    pathname: ev ? ev.startsWith("/") ? ev : resolvePathname(ev, tv) : tv,
    search: normalizeSearch(iv),
    hash: normalizeHash(ov)
  };
}
function resolvePathname(rv, tv) {
  let ev = tv.replace(/\/+$/, "").split("/");
  return rv.split("/").forEach((ov) => {
    ov === ".." ? ev.length > 1 && ev.pop() : ov !== "." && ev.push(ov);
  }), ev.length > 1 ? ev.join("/") : "/";
}
function getInvalidPathError(rv, tv, ev, iv) {
  return "Cannot include a '" + rv + "' character in a manually specified " + ("`to." + tv + "` field [" + JSON.stringify(iv) + "].  Please separate it out to the ") + ("`to." + ev + "` field. Alternatively you may provide the full path as ") + 'a string in <Link to="..."> and the router will parse it for you.';
}
function getPathContributingMatches(rv) {
  return rv.filter((tv, ev) => ev === 0 || tv.route.path && tv.route.path.length > 0);
}
function getResolveToMatches(rv, tv) {
  let ev = getPathContributingMatches(rv);
  return tv ? ev.map((iv, ov) => ov === ev.length - 1 ? iv.pathname : iv.pathnameBase) : ev.map((iv) => iv.pathnameBase);
}
function resolveTo(rv, tv, ev, iv) {
  iv === void 0 && (iv = !1);
  let ov;
  typeof rv == "string" ? ov = parsePath(rv) : (ov = _extends$6({}, rv), invariant$2(!ov.pathname || !ov.pathname.includes("?"), getInvalidPathError("?", "pathname", "search", ov)), invariant$2(!ov.pathname || !ov.pathname.includes("#"), getInvalidPathError("#", "pathname", "hash", ov)), invariant$2(!ov.search || !ov.search.includes("#"), getInvalidPathError("#", "search", "hash", ov)));
  let av = rv === "" || ov.pathname === "", sv = av ? "/" : ov.pathname, lv;
  if (sv == null)
    lv = ev;
  else {
    let hv = tv.length - 1;
    if (!iv && sv.startsWith("..")) {
      let pv = sv.split("/");
      for (; pv[0] === ".."; )
        pv.shift(), hv -= 1;
      ov.pathname = pv.join("/");
    }
    lv = hv >= 0 ? tv[hv] : "/";
  }
  let uv = resolvePath(ov, lv), cv = sv && sv !== "/" && sv.endsWith("/"), dv = (av || sv === ".") && ev.endsWith("/");
  return !uv.pathname.endsWith("/") && (cv || dv) && (uv.pathname += "/"), uv;
}
const joinPaths = (rv) => rv.join("/").replace(/\/\/+/g, "/"), normalizePathname = (rv) => rv.replace(/\/+$/, "").replace(/^\/*/, "/"), normalizeSearch = (rv) => !rv || rv === "?" ? "" : rv.startsWith("?") ? rv : "?" + rv, normalizeHash = (rv) => !rv || rv === "#" ? "" : rv.startsWith("#") ? rv : "#" + rv;
class ErrorResponseImpl {
  constructor(tv, ev, iv, ov) {
    ov === void 0 && (ov = !1), this.status = tv, this.statusText = ev || "", this.internal = ov, iv instanceof Error ? (this.data = iv.toString(), this.error = iv) : this.data = iv;
  }
}
function isRouteErrorResponse(rv) {
  return rv != null && typeof rv.status == "number" && typeof rv.statusText == "string" && typeof rv.internal == "boolean" && "data" in rv;
}
const validMutationMethodsArr = ["post", "put", "patch", "delete"], validMutationMethods = new Set(validMutationMethodsArr), validRequestMethodsArr = ["get", ...validMutationMethodsArr], validRequestMethods = new Set(validRequestMethodsArr), redirectStatusCodes = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]), redirectPreserveMethodStatusCodes = /* @__PURE__ */ new Set([307, 308]), IDLE_NAVIGATION = {
  state: "idle",
  location: void 0,
  formMethod: void 0,
  formAction: void 0,
  formEncType: void 0,
  formData: void 0,
  json: void 0,
  text: void 0
}, IDLE_FETCHER = {
  state: "idle",
  data: void 0,
  formMethod: void 0,
  formAction: void 0,
  formEncType: void 0,
  formData: void 0,
  json: void 0,
  text: void 0
}, IDLE_BLOCKER = {
  state: "unblocked",
  proceed: void 0,
  reset: void 0,
  location: void 0
}, ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i, defaultMapRouteProperties = (rv) => ({
  hasErrorBoundary: !!rv.hasErrorBoundary
}), TRANSITIONS_STORAGE_KEY = "remix-router-transitions";
function createRouter(rv) {
  const tv = rv.window ? rv.window : typeof window < "u" ? window : void 0, ev = typeof tv < "u" && typeof tv.document < "u" && typeof tv.document.createElement < "u", iv = !ev;
  invariant$2(rv.routes.length > 0, "You must provide a non-empty routes array to createRouter");
  let ov;
  if (rv.mapRouteProperties)
    ov = rv.mapRouteProperties;
  else if (rv.detectErrorBoundary) {
    let V1 = rv.detectErrorBoundary;
    ov = (z1) => ({
      hasErrorBoundary: V1(z1)
    });
  } else
    ov = defaultMapRouteProperties;
  let av = {}, sv = convertRoutesToDataRoutes(rv.routes, ov, void 0, av), lv, uv = rv.basename || "/", cv = rv.unstable_dataStrategy || defaultDataStrategy, dv = rv.unstable_patchRoutesOnNavigation, hv = _extends$6({
    v7_fetcherPersist: !1,
    v7_normalizeFormMethod: !1,
    v7_partialHydration: !1,
    v7_prependBasename: !1,
    v7_relativeSplatPath: !1,
    v7_skipActionErrorRevalidation: !1
  }, rv.future), pv = null, yv = /* @__PURE__ */ new Set(), Sv = 1e3, _v = /* @__PURE__ */ new Set(), Ev = null, wv = null, xv = null, Cv = rv.hydrationData != null, Av = matchRoutes(sv, rv.history.location, uv), Ov = null;
  if (Av == null && !dv) {
    let V1 = getInternalRouterError(404, {
      pathname: rv.history.location.pathname
    }), {
      matches: z1,
      route: J1
    } = getShortCircuitMatches(sv);
    Av = z1, Ov = {
      [J1.id]: V1
    };
  }
  Av && !rv.hydrationData && q$(Av, sv, rv.history.location.pathname).active && (Av = null);
  let Lv;
  if (Av)
    if (Av.some((V1) => V1.route.lazy))
      Lv = !1;
    else if (!Av.some((V1) => V1.route.loader))
      Lv = !0;
    else if (hv.v7_partialHydration) {
      let V1 = rv.hydrationData ? rv.hydrationData.loaderData : null, z1 = rv.hydrationData ? rv.hydrationData.errors : null, J1 = (n$) => n$.route.loader ? typeof n$.route.loader == "function" && n$.route.loader.hydrate === !0 ? !1 : V1 && V1[n$.route.id] !== void 0 || z1 && z1[n$.route.id] !== void 0 : !0;
      if (z1) {
        let n$ = Av.findIndex((u$) => z1[u$.route.id] !== void 0);
        Lv = Av.slice(0, n$ + 1).every(J1);
      } else
        Lv = Av.every(J1);
    } else
      Lv = rv.hydrationData != null;
  else if (Lv = !1, Av = [], hv.v7_partialHydration) {
    let V1 = q$(null, sv, rv.history.location.pathname);
    V1.active && V1.matches && (Av = V1.matches);
  }
  let jv, Dv = {
    historyAction: rv.history.action,
    location: rv.history.location,
    matches: Av,
    initialized: Lv,
    navigation: IDLE_NAVIGATION,
    // Don't restore on initial updateState() if we were SSR'd
    restoreScrollPosition: rv.hydrationData != null ? !1 : null,
    preventScrollReset: !1,
    revalidation: "idle",
    loaderData: rv.hydrationData && rv.hydrationData.loaderData || {},
    actionData: rv.hydrationData && rv.hydrationData.actionData || null,
    errors: rv.hydrationData && rv.hydrationData.errors || Ov,
    fetchers: /* @__PURE__ */ new Map(),
    blockers: /* @__PURE__ */ new Map()
  }, Vv = Action.Pop, Gv = !1, Yv, Xv = !1, L1 = /* @__PURE__ */ new Map(), Bv = null, Qv = !1, B1 = !1, K1 = [], j1 = /* @__PURE__ */ new Set(), P1 = /* @__PURE__ */ new Map(), D1 = 0, I1 = -1, F1 = /* @__PURE__ */ new Map(), M1 = /* @__PURE__ */ new Set(), U1 = /* @__PURE__ */ new Map(), H1 = /* @__PURE__ */ new Map(), k1 = /* @__PURE__ */ new Set(), Q1 = /* @__PURE__ */ new Map(), Y1 = /* @__PURE__ */ new Map(), r$ = /* @__PURE__ */ new Map(), a$;
  function S$() {
    if (pv = rv.history.listen((V1) => {
      let {
        action: z1,
        location: J1,
        delta: n$
      } = V1;
      if (a$) {
        a$(), a$ = void 0;
        return;
      }
      warning(Y1.size === 0 || n$ != null, "You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs.  This can also happen if you are using createHashRouter and the user manually changes the URL.");
      let u$ = D$({
        currentLocation: Dv.location,
        nextLocation: J1,
        historyAction: z1
      });
      if (u$ && n$ != null) {
        let v$ = new Promise((w$) => {
          a$ = w$;
        });
        rv.history.go(n$ * -1), V$(u$, {
          state: "blocked",
          location: J1,
          proceed() {
            V$(u$, {
              state: "proceeding",
              proceed: void 0,
              reset: void 0,
              location: J1
            }), v$.then(() => rv.history.go(n$));
          },
          reset() {
            let w$ = new Map(Dv.blockers);
            w$.set(u$, IDLE_BLOCKER), g$({
              blockers: w$
            });
          }
        });
        return;
      }
      return O1(z1, J1);
    }), ev) {
      restoreAppliedTransitions(tv, L1);
      let V1 = () => persistAppliedTransitions(tv, L1);
      tv.addEventListener("pagehide", V1), Bv = () => tv.removeEventListener("pagehide", V1);
    }
    return Dv.initialized || O1(Action.Pop, Dv.location, {
      initialHydration: !0
    }), jv;
  }
  function d$() {
    pv && pv(), Bv && Bv(), yv.clear(), Yv && Yv.abort(), Dv.fetchers.forEach((V1, z1) => q1(z1)), Dv.blockers.forEach((V1, z1) => y$(z1));
  }
  function x$(V1) {
    return yv.add(V1), () => yv.delete(V1);
  }
  function g$(V1, z1) {
    z1 === void 0 && (z1 = {}), Dv = _extends$6({}, Dv, V1);
    let J1 = [], n$ = [];
    hv.v7_fetcherPersist && Dv.fetchers.forEach((u$, v$) => {
      u$.state === "idle" && (k1.has(v$) ? n$.push(v$) : J1.push(v$));
    }), [...yv].forEach((u$) => u$(Dv, {
      deletedFetchers: n$,
      unstable_viewTransitionOpts: z1.viewTransitionOpts,
      unstable_flushSync: z1.flushSync === !0
    })), hv.v7_fetcherPersist && (J1.forEach((u$) => Dv.fetchers.delete(u$)), n$.forEach((u$) => q1(u$)));
  }
  function _$(V1, z1, J1) {
    var n$, u$;
    let {
      flushSync: v$
    } = J1 === void 0 ? {} : J1, w$ = Dv.actionData != null && Dv.navigation.formMethod != null && isMutationMethod(Dv.navigation.formMethod) && Dv.navigation.state === "loading" && ((n$ = V1.state) == null ? void 0 : n$._isRedirect) !== !0, s$;
    z1.actionData ? Object.keys(z1.actionData).length > 0 ? s$ = z1.actionData : s$ = null : w$ ? s$ = Dv.actionData : s$ = null;
    let $$ = z1.loaderData ? mergeLoaderData(Dv.loaderData, z1.loaderData, z1.matches || [], z1.errors) : Dv.loaderData, f$ = Dv.blockers;
    f$.size > 0 && (f$ = new Map(f$), f$.forEach((F$, j$) => f$.set(j$, IDLE_BLOCKER)));
    let G1 = Gv === !0 || Dv.navigation.formMethod != null && isMutationMethod(Dv.navigation.formMethod) && ((u$ = V1.state) == null ? void 0 : u$._isRedirect) !== !0;
    lv && (sv = lv, lv = void 0), Qv || Vv === Action.Pop || (Vv === Action.Push ? rv.history.push(V1, V1.state) : Vv === Action.Replace && rv.history.replace(V1, V1.state));
    let I$;
    if (Vv === Action.Pop) {
      let F$ = L1.get(Dv.location.pathname);
      F$ && F$.has(V1.pathname) ? I$ = {
        currentLocation: Dv.location,
        nextLocation: V1
      } : L1.has(V1.pathname) && (I$ = {
        currentLocation: V1,
        nextLocation: Dv.location
      });
    } else if (Xv) {
      let F$ = L1.get(Dv.location.pathname);
      F$ ? F$.add(V1.pathname) : (F$ = /* @__PURE__ */ new Set([V1.pathname]), L1.set(Dv.location.pathname, F$)), I$ = {
        currentLocation: Dv.location,
        nextLocation: V1
      };
    }
    g$(_extends$6({}, z1, {
      actionData: s$,
      loaderData: $$,
      historyAction: Vv,
      location: V1,
      initialized: !0,
      navigation: IDLE_NAVIGATION,
      revalidation: "idle",
      restoreScrollPosition: eE(V1, z1.matches || Dv.matches),
      preventScrollReset: G1,
      blockers: f$
    }), {
      viewTransitionOpts: I$,
      flushSync: v$ === !0
    }), Vv = Action.Pop, Gv = !1, Xv = !1, Qv = !1, B1 = !1, K1 = [];
  }
  async function O$(V1, z1) {
    if (typeof V1 == "number") {
      rv.history.go(V1);
      return;
    }
    let J1 = normalizeTo(Dv.location, Dv.matches, uv, hv.v7_prependBasename, V1, hv.v7_relativeSplatPath, z1 == null ? void 0 : z1.fromRouteId, z1 == null ? void 0 : z1.relative), {
      path: n$,
      submission: u$,
      error: v$
    } = normalizeNavigateOptions(hv.v7_normalizeFormMethod, !1, J1, z1), w$ = Dv.location, s$ = createLocation(Dv.location, n$, z1 && z1.state);
    s$ = _extends$6({}, s$, rv.history.encodeLocation(s$));
    let $$ = z1 && z1.replace != null ? z1.replace : void 0, f$ = Action.Push;
    $$ === !0 ? f$ = Action.Replace : $$ === !1 || u$ != null && isMutationMethod(u$.formMethod) && u$.formAction === Dv.location.pathname + Dv.location.search && (f$ = Action.Replace);
    let G1 = z1 && "preventScrollReset" in z1 ? z1.preventScrollReset === !0 : void 0, I$ = (z1 && z1.unstable_flushSync) === !0, F$ = D$({
      currentLocation: w$,
      nextLocation: s$,
      historyAction: f$
    });
    if (F$) {
      V$(F$, {
        state: "blocked",
        location: s$,
        proceed() {
          V$(F$, {
            state: "proceeding",
            proceed: void 0,
            reset: void 0,
            location: s$
          }), O$(V1, z1);
        },
        reset() {
          let j$ = new Map(Dv.blockers);
          j$.set(F$, IDLE_BLOCKER), g$({
            blockers: j$
          });
        }
      });
      return;
    }
    return await O1(f$, s$, {
      submission: u$,
      // Send through the formData serialization error if we have one so we can
      // render at the right error boundary after we match routes
      pendingError: v$,
      preventScrollReset: G1,
      replace: z1 && z1.replace,
      enableViewTransition: z1 && z1.unstable_viewTransition,
      flushSync: I$
    });
  }
  function E$() {
    if (e$(), g$({
      revalidation: "loading"
    }), Dv.navigation.state !== "submitting") {
      if (Dv.navigation.state === "idle") {
        O1(Dv.historyAction, Dv.location, {
          startUninterruptedRevalidation: !0
        });
        return;
      }
      O1(Vv || Dv.historyAction, Dv.navigation.location, {
        overrideNavigation: Dv.navigation,
        // Proxy through any rending view transition
        enableViewTransition: Xv === !0
      });
    }
  }
  async function O1(V1, z1, J1) {
    Yv && Yv.abort(), Yv = null, Vv = V1, Qv = (J1 && J1.startUninterruptedRevalidation) === !0, W$(Dv.location, Dv.matches), Gv = (J1 && J1.preventScrollReset) === !0, Xv = (J1 && J1.enableViewTransition) === !0;
    let n$ = lv || sv, u$ = J1 && J1.overrideNavigation, v$ = matchRoutes(n$, z1, uv), w$ = (J1 && J1.flushSync) === !0, s$ = q$(v$, n$, z1.pathname);
    if (s$.active && s$.matches && (v$ = s$.matches), !v$) {
      let {
        error: P$,
        notFoundMatches: Z$,
        route: K$
      } = A$(z1.pathname);
      _$(z1, {
        matches: Z$,
        loaderData: {},
        errors: {
          [K$.id]: P$
        }
      }, {
        flushSync: w$
      });
      return;
    }
    if (Dv.initialized && !B1 && isHashChangeOnly(Dv.location, z1) && !(J1 && J1.submission && isMutationMethod(J1.submission.formMethod))) {
      _$(z1, {
        matches: v$
      }, {
        flushSync: w$
      });
      return;
    }
    Yv = new AbortController();
    let $$ = createClientSideRequest(rv.history, z1, Yv.signal, J1 && J1.submission), f$;
    if (J1 && J1.pendingError)
      f$ = [findNearestBoundary(v$).route.id, {
        type: ResultType.error,
        error: J1.pendingError
      }];
    else if (J1 && J1.submission && isMutationMethod(J1.submission.formMethod)) {
      let P$ = await Z1($$, z1, J1.submission, v$, s$.active, {
        replace: J1.replace,
        flushSync: w$
      });
      if (P$.shortCircuited)
        return;
      if (P$.pendingActionResult) {
        let [Z$, K$] = P$.pendingActionResult;
        if (isErrorResult(K$) && isRouteErrorResponse(K$.error) && K$.error.status === 404) {
          Yv = null, _$(z1, {
            matches: P$.matches,
            loaderData: {},
            errors: {
              [Z$]: K$.error
            }
          });
          return;
        }
      }
      v$ = P$.matches || v$, f$ = P$.pendingActionResult, u$ = getLoadingNavigation(z1, J1.submission), w$ = !1, s$.active = !1, $$ = createClientSideRequest(rv.history, $$.url, $$.signal);
    }
    let {
      shortCircuited: G1,
      matches: I$,
      loaderData: F$,
      errors: j$
    } = await Hv($$, z1, v$, s$.active, u$, J1 && J1.submission, J1 && J1.fetcherSubmission, J1 && J1.replace, J1 && J1.initialHydration === !0, w$, f$);
    G1 || (Yv = null, _$(z1, _extends$6({
      matches: I$ || v$
    }, getActionDataForCommit(f$), {
      loaderData: F$,
      errors: j$
    })));
  }
  async function Z1(V1, z1, J1, n$, u$, v$) {
    v$ === void 0 && (v$ = {}), e$();
    let w$ = getSubmittingNavigation(z1, J1);
    if (g$({
      navigation: w$
    }, {
      flushSync: v$.flushSync === !0
    }), u$) {
      let f$ = await Hw(n$, z1.pathname, V1.signal);
      if (f$.type === "aborted")
        return {
          shortCircuited: !0
        };
      if (f$.type === "error") {
        let {
          boundaryId: G1,
          error: I$
        } = L$(z1.pathname, f$);
        return {
          matches: f$.partialMatches,
          pendingActionResult: [G1, {
            type: ResultType.error,
            error: I$
          }]
        };
      } else if (f$.matches)
        n$ = f$.matches;
      else {
        let {
          notFoundMatches: G1,
          error: I$,
          route: F$
        } = A$(z1.pathname);
        return {
          matches: G1,
          pendingActionResult: [F$.id, {
            type: ResultType.error,
            error: I$
          }]
        };
      }
    }
    let s$, $$ = getTargetMatch(n$, z1);
    if (!$$.route.action && !$$.route.lazy)
      s$ = {
        type: ResultType.error,
        error: getInternalRouterError(405, {
          method: V1.method,
          pathname: z1.pathname,
          routeId: $$.route.id
        })
      };
    else if (s$ = (await $1("action", Dv, V1, [$$], n$, null))[$$.route.id], V1.signal.aborted)
      return {
        shortCircuited: !0
      };
    if (isRedirectResult(s$)) {
      let f$;
      return v$ && v$.replace != null ? f$ = v$.replace : f$ = normalizeRedirectLocation(s$.response.headers.get("Location"), new URL(V1.url), uv) === Dv.location.pathname + Dv.location.search, await c1(V1, s$, !0, {
        submission: J1,
        replace: f$
      }), {
        shortCircuited: !0
      };
    }
    if (isDeferredResult(s$))
      throw getInternalRouterError(400, {
        type: "defer-action"
      });
    if (isErrorResult(s$)) {
      let f$ = findNearestBoundary(n$, $$.route.id);
      return (v$ && v$.replace) !== !0 && (Vv = Action.Push), {
        matches: n$,
        pendingActionResult: [f$.route.id, s$]
      };
    }
    return {
      matches: n$,
      pendingActionResult: [$$.route.id, s$]
    };
  }
  async function Hv(V1, z1, J1, n$, u$, v$, w$, s$, $$, f$, G1) {
    let I$ = u$ || getLoadingNavigation(z1, v$), F$ = v$ || w$ || getSubmissionFromNavigation(I$), j$ = !Qv && (!hv.v7_partialHydration || !$$);
    if (n$) {
      if (j$) {
        let z$ = Jv(G1);
        g$(_extends$6({
          navigation: I$
        }, z$ !== void 0 ? {
          actionData: z$
        } : {}), {
          flushSync: f$
        });
      }
      let R$ = await Hw(J1, z1.pathname, V1.signal);
      if (R$.type === "aborted")
        return {
          shortCircuited: !0
        };
      if (R$.type === "error") {
        let {
          boundaryId: z$,
          error: zw
        } = L$(z1.pathname, R$);
        return {
          matches: R$.partialMatches,
          loaderData: {},
          errors: {
            [z$]: zw
          }
        };
      } else if (R$.matches)
        J1 = R$.matches;
      else {
        let {
          error: z$,
          notFoundMatches: zw,
          route: G$
        } = A$(z1.pathname);
        return {
          matches: zw,
          loaderData: {},
          errors: {
            [G$.id]: z$
          }
        };
      }
    }
    let P$ = lv || sv, [Z$, K$] = getMatchesToLoad(rv.history, Dv, J1, F$, z1, hv.v7_partialHydration && $$ === !0, hv.v7_skipActionErrorRevalidation, B1, K1, j1, k1, U1, M1, P$, uv, G1);
    if (U$((R$) => !(J1 && J1.some((z$) => z$.route.id === R$)) || Z$ && Z$.some((z$) => z$.route.id === R$)), I1 = ++D1, Z$.length === 0 && K$.length === 0) {
      let R$ = l$();
      return _$(z1, _extends$6({
        matches: J1,
        loaderData: {},
        // Commit pending error if we're short circuiting
        errors: G1 && isErrorResult(G1[1]) ? {
          [G1[0]]: G1[1].error
        } : null
      }, getActionDataForCommit(G1), R$ ? {
        fetchers: new Map(Dv.fetchers)
      } : {}), {
        flushSync: f$
      }), {
        shortCircuited: !0
      };
    }
    if (j$) {
      let R$ = {};
      if (!n$) {
        R$.navigation = I$;
        let z$ = Jv(G1);
        z$ !== void 0 && (R$.actionData = z$);
      }
      K$.length > 0 && (R$.fetchers = Mv(K$)), g$(R$, {
        flushSync: f$
      });
    }
    K$.forEach((R$) => {
      P1.has(R$.key) && _b(R$.key), R$.controller && P1.set(R$.key, R$.controller);
    });
    let u3 = () => K$.forEach((R$) => _b(R$.key));
    Yv && Yv.signal.addEventListener("abort", u3);
    let {
      loaderResults: sO,
      fetcherResults: a3
    } = await N1(Dv, J1, Z$, K$, V1);
    if (V1.signal.aborted)
      return {
        shortCircuited: !0
      };
    Yv && Yv.signal.removeEventListener("abort", u3), K$.forEach((R$) => P1.delete(R$.key));
    let e3 = findRedirect(sO);
    if (e3)
      return await c1(V1, e3.result, !0, {
        replace: s$
      }), {
        shortCircuited: !0
      };
    if (e3 = findRedirect(a3), e3)
      return M1.add(e3.key), await c1(V1, e3.result, !0, {
        replace: s$
      }), {
        shortCircuited: !0
      };
    let {
      loaderData: d3,
      errors: n3
    } = processLoaderData(Dv, J1, Z$, sO, G1, K$, a3, Q1);
    Q1.forEach((R$, z$) => {
      R$.subscribe((zw) => {
        (zw || R$.done) && Q1.delete(z$);
      });
    }), hv.v7_partialHydration && $$ && Dv.errors && Object.entries(Dv.errors).filter((R$) => {
      let [z$] = R$;
      return !Z$.some((zw) => zw.route.id === z$);
    }).forEach((R$) => {
      let [z$, zw] = R$;
      n3 = Object.assign(n3 || {}, {
        [z$]: zw
      });
    });
    let o3 = l$(), f3 = p$(I1), r3 = o3 || f3 || K$.length > 0;
    return _extends$6({
      matches: J1,
      loaderData: d3,
      errors: n3
    }, r3 ? {
      fetchers: new Map(Dv.fetchers)
    } : {});
  }
  function Jv(V1) {
    if (V1 && !isErrorResult(V1[1]))
      return {
        [V1[0]]: V1[1].data
      };
    if (Dv.actionData)
      return Object.keys(Dv.actionData).length === 0 ? null : Dv.actionData;
  }
  function Mv(V1) {
    return V1.forEach((z1) => {
      let J1 = Dv.fetchers.get(z1.key), n$ = getLoadingFetcher(void 0, J1 ? J1.data : void 0);
      Dv.fetchers.set(z1.key, n$);
    }), new Map(Dv.fetchers);
  }
  function zv(V1, z1, J1, n$) {
    if (iv)
      throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");
    P1.has(V1) && _b(V1);
    let u$ = (n$ && n$.unstable_flushSync) === !0, v$ = lv || sv, w$ = normalizeTo(Dv.location, Dv.matches, uv, hv.v7_prependBasename, J1, hv.v7_relativeSplatPath, z1, n$ == null ? void 0 : n$.relative), s$ = matchRoutes(v$, w$, uv), $$ = q$(s$, v$, w$);
    if ($$.active && $$.matches && (s$ = $$.matches), !s$) {
      Zv(V1, z1, getInternalRouterError(404, {
        pathname: w$
      }), {
        flushSync: u$
      });
      return;
    }
    let {
      path: f$,
      submission: G1,
      error: I$
    } = normalizeNavigateOptions(hv.v7_normalizeFormMethod, !0, w$, n$);
    if (I$) {
      Zv(V1, z1, I$, {
        flushSync: u$
      });
      return;
    }
    let F$ = getTargetMatch(s$, f$);
    if (Gv = (n$ && n$.preventScrollReset) === !0, G1 && isMutationMethod(G1.formMethod)) {
      Wv(V1, z1, f$, F$, s$, $$.active, u$, G1);
      return;
    }
    U1.set(V1, {
      routeId: z1,
      path: f$
    }), Kv(V1, z1, f$, F$, s$, $$.active, u$, G1);
  }
  async function Wv(V1, z1, J1, n$, u$, v$, w$, s$) {
    e$(), U1.delete(V1);
    function $$(G$) {
      if (!G$.route.action && !G$.route.lazy) {
        let i3 = getInternalRouterError(405, {
          method: s$.formMethod,
          pathname: J1,
          routeId: z1
        });
        return Zv(V1, z1, i3, {
          flushSync: w$
        }), !0;
      }
      return !1;
    }
    if (!v$ && $$(n$))
      return;
    let f$ = Dv.fetchers.get(V1);
    R1(V1, getSubmittingFetcher(s$, f$), {
      flushSync: w$
    });
    let G1 = new AbortController(), I$ = createClientSideRequest(rv.history, J1, G1.signal, s$);
    if (v$) {
      let G$ = await Hw(u$, J1, I$.signal);
      if (G$.type === "aborted")
        return;
      if (G$.type === "error") {
        let {
          error: i3
        } = L$(J1, G$);
        Zv(V1, z1, i3, {
          flushSync: w$
        });
        return;
      } else if (G$.matches) {
        if (u$ = G$.matches, n$ = getTargetMatch(u$, J1), $$(n$))
          return;
      } else {
        Zv(V1, z1, getInternalRouterError(404, {
          pathname: J1
        }), {
          flushSync: w$
        });
        return;
      }
    }
    P1.set(V1, G1);
    let F$ = D1, P$ = (await $1("action", Dv, I$, [n$], u$, V1))[n$.route.id];
    if (I$.signal.aborted) {
      P1.get(V1) === G1 && P1.delete(V1);
      return;
    }
    if (hv.v7_fetcherPersist && k1.has(V1)) {
      if (isRedirectResult(P$) || isErrorResult(P$)) {
        R1(V1, getDoneFetcher(void 0));
        return;
      }
    } else {
      if (isRedirectResult(P$))
        if (P1.delete(V1), I1 > F$) {
          R1(V1, getDoneFetcher(void 0));
          return;
        } else
          return M1.add(V1), R1(V1, getLoadingFetcher(s$)), c1(I$, P$, !1, {
            fetcherSubmission: s$
          });
      if (isErrorResult(P$)) {
        Zv(V1, z1, P$.error);
        return;
      }
    }
    if (isDeferredResult(P$))
      throw getInternalRouterError(400, {
        type: "defer-action"
      });
    let Z$ = Dv.navigation.location || Dv.location, K$ = createClientSideRequest(rv.history, Z$, G1.signal), u3 = lv || sv, sO = Dv.navigation.state !== "idle" ? matchRoutes(u3, Dv.navigation.location, uv) : Dv.matches;
    invariant$2(sO, "Didn't find any matches after fetcher action");
    let a3 = ++D1;
    F1.set(V1, a3);
    let e3 = getLoadingFetcher(s$, P$.data);
    Dv.fetchers.set(V1, e3);
    let [d3, n3] = getMatchesToLoad(rv.history, Dv, sO, s$, Z$, !1, hv.v7_skipActionErrorRevalidation, B1, K1, j1, k1, U1, M1, u3, uv, [n$.route.id, P$]);
    n3.filter((G$) => G$.key !== V1).forEach((G$) => {
      let i3 = G$.key, S3 = Dv.fetchers.get(i3), A3 = getLoadingFetcher(void 0, S3 ? S3.data : void 0);
      Dv.fetchers.set(i3, A3), P1.has(i3) && _b(i3), G$.controller && P1.set(i3, G$.controller);
    }), g$({
      fetchers: new Map(Dv.fetchers)
    });
    let o3 = () => n3.forEach((G$) => _b(G$.key));
    G1.signal.addEventListener("abort", o3);
    let {
      loaderResults: f3,
      fetcherResults: r3
    } = await N1(Dv, sO, d3, n3, K$);
    if (G1.signal.aborted)
      return;
    G1.signal.removeEventListener("abort", o3), F1.delete(V1), P1.delete(V1), n3.forEach((G$) => P1.delete(G$.key));
    let R$ = findRedirect(f3);
    if (R$)
      return c1(K$, R$.result, !1);
    if (R$ = findRedirect(r3), R$)
      return M1.add(R$.key), c1(K$, R$.result, !1);
    let {
      loaderData: z$,
      errors: zw
    } = processLoaderData(Dv, sO, d3, f3, void 0, n3, r3, Q1);
    if (Dv.fetchers.has(V1)) {
      let G$ = getDoneFetcher(P$.data);
      Dv.fetchers.set(V1, G$);
    }
    p$(a3), Dv.navigation.state === "loading" && a3 > I1 ? (invariant$2(Vv, "Expected pending action"), Yv && Yv.abort(), _$(Dv.navigation.location, {
      matches: sO,
      loaderData: z$,
      errors: zw,
      fetchers: new Map(Dv.fetchers)
    })) : (g$({
      errors: zw,
      loaderData: mergeLoaderData(Dv.loaderData, z$, sO, zw),
      fetchers: new Map(Dv.fetchers)
    }), B1 = !1);
  }
  async function Kv(V1, z1, J1, n$, u$, v$, w$, s$) {
    let $$ = Dv.fetchers.get(V1);
    R1(V1, getLoadingFetcher(s$, $$ ? $$.data : void 0), {
      flushSync: w$
    });
    let f$ = new AbortController(), G1 = createClientSideRequest(rv.history, J1, f$.signal);
    if (v$) {
      let P$ = await Hw(u$, J1, G1.signal);
      if (P$.type === "aborted")
        return;
      if (P$.type === "error") {
        let {
          error: Z$
        } = L$(J1, P$);
        Zv(V1, z1, Z$, {
          flushSync: w$
        });
        return;
      } else if (P$.matches)
        u$ = P$.matches, n$ = getTargetMatch(u$, J1);
      else {
        Zv(V1, z1, getInternalRouterError(404, {
          pathname: J1
        }), {
          flushSync: w$
        });
        return;
      }
    }
    P1.set(V1, f$);
    let I$ = D1, j$ = (await $1("loader", Dv, G1, [n$], u$, V1))[n$.route.id];
    if (isDeferredResult(j$) && (j$ = await resolveDeferredData(j$, G1.signal, !0) || j$), P1.get(V1) === f$ && P1.delete(V1), !G1.signal.aborted) {
      if (k1.has(V1)) {
        R1(V1, getDoneFetcher(void 0));
        return;
      }
      if (isRedirectResult(j$))
        if (I1 > I$) {
          R1(V1, getDoneFetcher(void 0));
          return;
        } else {
          M1.add(V1), await c1(G1, j$, !1);
          return;
        }
      if (isErrorResult(j$)) {
        Zv(V1, z1, j$.error);
        return;
      }
      invariant$2(!isDeferredResult(j$), "Unhandled fetcher deferred data"), R1(V1, getDoneFetcher(j$.data));
    }
  }
  async function c1(V1, z1, J1, n$) {
    let {
      submission: u$,
      fetcherSubmission: v$,
      replace: w$
    } = n$ === void 0 ? {} : n$;
    z1.response.headers.has("X-Remix-Revalidate") && (B1 = !0);
    let s$ = z1.response.headers.get("Location");
    invariant$2(s$, "Expected a Location header on the redirect Response"), s$ = normalizeRedirectLocation(s$, new URL(V1.url), uv);
    let $$ = createLocation(Dv.location, s$, {
      _isRedirect: !0
    });
    if (ev) {
      let P$ = !1;
      if (z1.response.headers.has("X-Remix-Reload-Document"))
        P$ = !0;
      else if (ABSOLUTE_URL_REGEX.test(s$)) {
        const Z$ = rv.history.createURL(s$);
        P$ = // Hard reload if it's an absolute URL to a new origin
        Z$.origin !== tv.location.origin || // Hard reload if it's an absolute URL that does not match our basename
        stripBasename(Z$.pathname, uv) == null;
      }
      if (P$) {
        w$ ? tv.location.replace(s$) : tv.location.assign(s$);
        return;
      }
    }
    Yv = null;
    let f$ = w$ === !0 || z1.response.headers.has("X-Remix-Replace") ? Action.Replace : Action.Push, {
      formMethod: G1,
      formAction: I$,
      formEncType: F$
    } = Dv.navigation;
    !u$ && !v$ && G1 && I$ && F$ && (u$ = getSubmissionFromNavigation(Dv.navigation));
    let j$ = u$ || v$;
    if (redirectPreserveMethodStatusCodes.has(z1.response.status) && j$ && isMutationMethod(j$.formMethod))
      await O1(f$, $$, {
        submission: _extends$6({}, j$, {
          formAction: s$
        }),
        // Preserve these flags across redirects
        preventScrollReset: Gv,
        enableViewTransition: J1 ? Xv : void 0
      });
    else {
      let P$ = getLoadingNavigation($$, u$);
      await O1(f$, $$, {
        overrideNavigation: P$,
        // Send fetcher submissions through for shouldRevalidate
        fetcherSubmission: v$,
        // Preserve these flags across redirects
        preventScrollReset: Gv,
        enableViewTransition: J1 ? Xv : void 0
      });
    }
  }
  async function $1(V1, z1, J1, n$, u$, v$) {
    let w$, s$ = {};
    try {
      w$ = await callDataStrategyImpl(cv, V1, z1, J1, n$, u$, v$, av, ov);
    } catch ($$) {
      return n$.forEach((f$) => {
        s$[f$.route.id] = {
          type: ResultType.error,
          error: $$
        };
      }), s$;
    }
    for (let [$$, f$] of Object.entries(w$))
      if (isRedirectDataStrategyResultResult(f$)) {
        let G1 = f$.result;
        s$[$$] = {
          type: ResultType.redirect,
          response: normalizeRelativeRoutingRedirectResponse(G1, J1, $$, u$, uv, hv.v7_relativeSplatPath)
        };
      } else
        s$[$$] = await convertDataStrategyResultToDataResult(f$);
    return s$;
  }
  async function N1(V1, z1, J1, n$, u$) {
    let v$ = V1.matches, w$ = $1("loader", V1, u$, J1, z1, null), s$ = Promise.all(n$.map(async (G1) => {
      if (G1.matches && G1.match && G1.controller) {
        let F$ = (await $1("loader", V1, createClientSideRequest(rv.history, G1.path, G1.controller.signal), [G1.match], G1.matches, G1.key))[G1.match.route.id];
        return {
          [G1.key]: F$
        };
      } else
        return Promise.resolve({
          [G1.key]: {
            type: ResultType.error,
            error: getInternalRouterError(404, {
              pathname: G1.path
            })
          }
        });
    })), $$ = await w$, f$ = (await s$).reduce((G1, I$) => Object.assign(G1, I$), {});
    return await Promise.all([resolveNavigationDeferredResults(z1, $$, u$.signal, v$, V1.loaderData), resolveFetcherDeferredResults(z1, f$, n$)]), {
      loaderResults: $$,
      fetcherResults: f$
    };
  }
  function e$() {
    B1 = !0, K1.push(...U$()), U1.forEach((V1, z1) => {
      P1.has(z1) && (j1.add(z1), _b(z1));
    });
  }
  function R1(V1, z1, J1) {
    J1 === void 0 && (J1 = {}), Dv.fetchers.set(V1, z1), g$({
      fetchers: new Map(Dv.fetchers)
    }, {
      flushSync: (J1 && J1.flushSync) === !0
    });
  }
  function Zv(V1, z1, J1, n$) {
    n$ === void 0 && (n$ = {});
    let u$ = findNearestBoundary(Dv.matches, z1);
    q1(V1), g$({
      errors: {
        [u$.route.id]: J1
      },
      fetchers: new Map(Dv.fetchers)
    }, {
      flushSync: (n$ && n$.flushSync) === !0
    });
  }
  function C1(V1) {
    return hv.v7_fetcherPersist && (H1.set(V1, (H1.get(V1) || 0) + 1), k1.has(V1) && k1.delete(V1)), Dv.fetchers.get(V1) || IDLE_FETCHER;
  }
  function q1(V1) {
    let z1 = Dv.fetchers.get(V1);
    P1.has(V1) && !(z1 && z1.state === "loading" && F1.has(V1)) && _b(V1), U1.delete(V1), F1.delete(V1), M1.delete(V1), k1.delete(V1), j1.delete(V1), Dv.fetchers.delete(V1);
  }
  function t$(V1) {
    if (hv.v7_fetcherPersist) {
      let z1 = (H1.get(V1) || 0) - 1;
      z1 <= 0 ? (H1.delete(V1), k1.add(V1)) : H1.set(V1, z1);
    } else
      q1(V1);
    g$({
      fetchers: new Map(Dv.fetchers)
    });
  }
  function _b(V1) {
    let z1 = P1.get(V1);
    invariant$2(z1, "Expected fetch controller: " + V1), z1.abort(), P1.delete(V1);
  }
  function c$(V1) {
    for (let z1 of V1) {
      let J1 = C1(z1), n$ = getDoneFetcher(J1.data);
      Dv.fetchers.set(z1, n$);
    }
  }
  function l$() {
    let V1 = [], z1 = !1;
    for (let J1 of M1) {
      let n$ = Dv.fetchers.get(J1);
      invariant$2(n$, "Expected fetcher: " + J1), n$.state === "loading" && (M1.delete(J1), V1.push(J1), z1 = !0);
    }
    return c$(V1), z1;
  }
  function p$(V1) {
    let z1 = [];
    for (let [J1, n$] of F1)
      if (n$ < V1) {
        let u$ = Dv.fetchers.get(J1);
        invariant$2(u$, "Expected fetcher: " + J1), u$.state === "loading" && (_b(J1), F1.delete(J1), z1.push(J1));
      }
    return c$(z1), z1.length > 0;
  }
  function h$(V1, z1) {
    let J1 = Dv.blockers.get(V1) || IDLE_BLOCKER;
    return Y1.get(V1) !== z1 && Y1.set(V1, z1), J1;
  }
  function y$(V1) {
    Dv.blockers.delete(V1), Y1.delete(V1);
  }
  function V$(V1, z1) {
    let J1 = Dv.blockers.get(V1) || IDLE_BLOCKER;
    invariant$2(J1.state === "unblocked" && z1.state === "blocked" || J1.state === "blocked" && z1.state === "blocked" || J1.state === "blocked" && z1.state === "proceeding" || J1.state === "blocked" && z1.state === "unblocked" || J1.state === "proceeding" && z1.state === "unblocked", "Invalid blocker state transition: " + J1.state + " -> " + z1.state);
    let n$ = new Map(Dv.blockers);
    n$.set(V1, z1), g$({
      blockers: n$
    });
  }
  function D$(V1) {
    let {
      currentLocation: z1,
      nextLocation: J1,
      historyAction: n$
    } = V1;
    if (Y1.size === 0)
      return;
    Y1.size > 1 && warning(!1, "A router only supports one blocker at a time");
    let u$ = Array.from(Y1.entries()), [v$, w$] = u$[u$.length - 1], s$ = Dv.blockers.get(v$);
    if (!(s$ && s$.state === "proceeding") && w$({
      currentLocation: z1,
      nextLocation: J1,
      historyAction: n$
    }))
      return v$;
  }
  function A$(V1) {
    let z1 = getInternalRouterError(404, {
      pathname: V1
    }), J1 = lv || sv, {
      matches: n$,
      route: u$
    } = getShortCircuitMatches(J1);
    return U$(), {
      notFoundMatches: n$,
      route: u$,
      error: z1
    };
  }
  function L$(V1, z1) {
    return {
      boundaryId: findNearestBoundary(z1.partialMatches).route.id,
      error: getInternalRouterError(400, {
        type: "route-discovery",
        pathname: V1,
        message: z1.error != null && "message" in z1.error ? z1.error : String(z1.error)
      })
    };
  }
  function U$(V1) {
    let z1 = [];
    return Q1.forEach((J1, n$) => {
      (!V1 || V1(n$)) && (J1.cancel(), z1.push(n$), Q1.delete(n$));
    }), z1;
  }
  function jw(V1, z1, J1) {
    if (Ev = V1, xv = z1, wv = J1 || null, !Cv && Dv.navigation === IDLE_NAVIGATION) {
      Cv = !0;
      let n$ = eE(Dv.location, Dv.matches);
      n$ != null && g$({
        restoreScrollPosition: n$
      });
    }
    return () => {
      Ev = null, xv = null, wv = null;
    };
  }
  function Q$(V1, z1) {
    return wv && wv(V1, z1.map((n$) => convertRouteMatchToUiMatch(n$, Dv.loaderData))) || V1.key;
  }
  function W$(V1, z1) {
    if (Ev && xv) {
      let J1 = Q$(V1, z1);
      Ev[J1] = xv();
    }
  }
  function eE(V1, z1) {
    if (Ev) {
      let J1 = Q$(V1, z1), n$ = Ev[J1];
      if (typeof n$ == "number")
        return n$;
    }
    return null;
  }
  function q$(V1, z1, J1) {
    if (dv) {
      if (_v.has(J1))
        return {
          active: !1,
          matches: V1
        };
      if (V1) {
        if (Object.keys(V1[0].params).length > 0)
          return {
            active: !0,
            matches: matchRoutesImpl(z1, J1, uv, !0)
          };
      } else
        return {
          active: !0,
          matches: matchRoutesImpl(z1, J1, uv, !0) || []
        };
    }
    return {
      active: !1,
      matches: null
    };
  }
  async function Hw(V1, z1, J1) {
    let n$ = V1;
    for (; ; ) {
      let u$ = lv == null, v$ = lv || sv;
      try {
        await loadLazyRouteChildren(dv, z1, n$, v$, av, ov, r$, J1);
      } catch ($$) {
        return {
          type: "error",
          error: $$,
          partialMatches: n$
        };
      } finally {
        u$ && (sv = [...sv]);
      }
      if (J1.aborted)
        return {
          type: "aborted"
        };
      let w$ = matchRoutes(v$, z1, uv);
      if (w$)
        return J$(z1, _v), {
          type: "success",
          matches: w$
        };
      let s$ = matchRoutesImpl(v$, z1, uv, !0);
      if (!s$ || n$.length === s$.length && n$.every(($$, f$) => $$.route.id === s$[f$].route.id))
        return J$(z1, _v), {
          type: "success",
          matches: null
        };
      n$ = s$;
    }
  }
  function J$(V1, z1) {
    if (z1.size >= Sv) {
      let J1 = z1.values().next().value;
      z1.delete(J1);
    }
    z1.add(V1);
  }
  function Y$(V1) {
    av = {}, lv = convertRoutesToDataRoutes(V1, ov, void 0, av);
  }
  function ix(V1, z1) {
    let J1 = lv == null;
    patchRoutesImpl(V1, z1, lv || sv, av, ov), J1 && (sv = [...sv], g$({}));
  }
  return jv = {
    get basename() {
      return uv;
    },
    get future() {
      return hv;
    },
    get state() {
      return Dv;
    },
    get routes() {
      return sv;
    },
    get window() {
      return tv;
    },
    initialize: S$,
    subscribe: x$,
    enableScrollRestoration: jw,
    navigate: O$,
    fetch: zv,
    revalidate: E$,
    // Passthrough to history-aware createHref used by useHref so we get proper
    // hash-aware URLs in DOM paths
    createHref: (V1) => rv.history.createHref(V1),
    encodeLocation: (V1) => rv.history.encodeLocation(V1),
    getFetcher: C1,
    deleteFetcher: t$,
    dispose: d$,
    getBlocker: h$,
    deleteBlocker: y$,
    patchRoutes: ix,
    _internalFetchControllers: P1,
    _internalActiveDeferreds: Q1,
    // TODO: Remove setRoutes, it's temporary to avoid dealing with
    // updating the tree while validating the update algorithm.
    _internalSetRoutes: Y$
  }, jv;
}
function isSubmissionNavigation(rv) {
  return rv != null && ("formData" in rv && rv.formData != null || "body" in rv && rv.body !== void 0);
}
function normalizeTo(rv, tv, ev, iv, ov, av, sv, lv) {
  let uv, cv;
  if (sv) {
    uv = [];
    for (let hv of tv)
      if (uv.push(hv), hv.route.id === sv) {
        cv = hv;
        break;
      }
  } else
    uv = tv, cv = tv[tv.length - 1];
  let dv = resolveTo(ov || ".", getResolveToMatches(uv, av), stripBasename(rv.pathname, ev) || rv.pathname, lv === "path");
  return ov == null && (dv.search = rv.search, dv.hash = rv.hash), (ov == null || ov === "" || ov === ".") && cv && cv.route.index && !hasNakedIndexQuery(dv.search) && (dv.search = dv.search ? dv.search.replace(/^\?/, "?index&") : "?index"), iv && ev !== "/" && (dv.pathname = dv.pathname === "/" ? ev : joinPaths([ev, dv.pathname])), createPath(dv);
}
function normalizeNavigateOptions(rv, tv, ev, iv) {
  if (!iv || !isSubmissionNavigation(iv))
    return {
      path: ev
    };
  if (iv.formMethod && !isValidMethod(iv.formMethod))
    return {
      path: ev,
      error: getInternalRouterError(405, {
        method: iv.formMethod
      })
    };
  let ov = () => ({
    path: ev,
    error: getInternalRouterError(400, {
      type: "invalid-body"
    })
  }), av = iv.formMethod || "get", sv = rv ? av.toUpperCase() : av.toLowerCase(), lv = stripHashFromPath(ev);
  if (iv.body !== void 0) {
    if (iv.formEncType === "text/plain") {
      if (!isMutationMethod(sv))
        return ov();
      let pv = typeof iv.body == "string" ? iv.body : iv.body instanceof FormData || iv.body instanceof URLSearchParams ? (
        // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data
        Array.from(iv.body.entries()).reduce((yv, Sv) => {
          let [_v, Ev] = Sv;
          return "" + yv + _v + "=" + Ev + `
`;
        }, "")
      ) : String(iv.body);
      return {
        path: ev,
        submission: {
          formMethod: sv,
          formAction: lv,
          formEncType: iv.formEncType,
          formData: void 0,
          json: void 0,
          text: pv
        }
      };
    } else if (iv.formEncType === "application/json") {
      if (!isMutationMethod(sv))
        return ov();
      try {
        let pv = typeof iv.body == "string" ? JSON.parse(iv.body) : iv.body;
        return {
          path: ev,
          submission: {
            formMethod: sv,
            formAction: lv,
            formEncType: iv.formEncType,
            formData: void 0,
            json: pv,
            text: void 0
          }
        };
      } catch {
        return ov();
      }
    }
  }
  invariant$2(typeof FormData == "function", "FormData is not available in this environment");
  let uv, cv;
  if (iv.formData)
    uv = convertFormDataToSearchParams(iv.formData), cv = iv.formData;
  else if (iv.body instanceof FormData)
    uv = convertFormDataToSearchParams(iv.body), cv = iv.body;
  else if (iv.body instanceof URLSearchParams)
    uv = iv.body, cv = convertSearchParamsToFormData(uv);
  else if (iv.body == null)
    uv = new URLSearchParams(), cv = new FormData();
  else
    try {
      uv = new URLSearchParams(iv.body), cv = convertSearchParamsToFormData(uv);
    } catch {
      return ov();
    }
  let dv = {
    formMethod: sv,
    formAction: lv,
    formEncType: iv && iv.formEncType || "application/x-www-form-urlencoded",
    formData: cv,
    json: void 0,
    text: void 0
  };
  if (isMutationMethod(dv.formMethod))
    return {
      path: ev,
      submission: dv
    };
  let hv = parsePath(ev);
  return tv && hv.search && hasNakedIndexQuery(hv.search) && uv.append("index", ""), hv.search = "?" + uv, {
    path: createPath(hv),
    submission: dv
  };
}
function getLoaderMatchesUntilBoundary(rv, tv) {
  let ev = rv;
  if (tv) {
    let iv = rv.findIndex((ov) => ov.route.id === tv);
    iv >= 0 && (ev = rv.slice(0, iv));
  }
  return ev;
}
function getMatchesToLoad(rv, tv, ev, iv, ov, av, sv, lv, uv, cv, dv, hv, pv, yv, Sv, _v) {
  let Ev = _v ? isErrorResult(_v[1]) ? _v[1].error : _v[1].data : void 0, wv = rv.createURL(tv.location), xv = rv.createURL(ov), Cv = _v && isErrorResult(_v[1]) ? _v[0] : void 0, Av = Cv ? getLoaderMatchesUntilBoundary(ev, Cv) : ev, Ov = _v ? _v[1].statusCode : void 0, Lv = sv && Ov && Ov >= 400, jv = Av.filter((Vv, Gv) => {
    let {
      route: Yv
    } = Vv;
    if (Yv.lazy)
      return !0;
    if (Yv.loader == null)
      return !1;
    if (av)
      return typeof Yv.loader != "function" || Yv.loader.hydrate ? !0 : tv.loaderData[Yv.id] === void 0 && // Don't re-run if the loader ran and threw an error
      (!tv.errors || tv.errors[Yv.id] === void 0);
    if (isNewLoader(tv.loaderData, tv.matches[Gv], Vv) || uv.some((Bv) => Bv === Vv.route.id))
      return !0;
    let Xv = tv.matches[Gv], L1 = Vv;
    return shouldRevalidateLoader(Vv, _extends$6({
      currentUrl: wv,
      currentParams: Xv.params,
      nextUrl: xv,
      nextParams: L1.params
    }, iv, {
      actionResult: Ev,
      actionStatus: Ov,
      defaultShouldRevalidate: Lv ? !1 : (
        // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate
        lv || wv.pathname + wv.search === xv.pathname + xv.search || // Search params affect all loaders
        wv.search !== xv.search || isNewRouteInstance(Xv, L1)
      )
    }));
  }), Dv = [];
  return hv.forEach((Vv, Gv) => {
    if (av || !ev.some((Qv) => Qv.route.id === Vv.routeId) || dv.has(Gv))
      return;
    let Yv = matchRoutes(yv, Vv.path, Sv);
    if (!Yv) {
      Dv.push({
        key: Gv,
        routeId: Vv.routeId,
        path: Vv.path,
        matches: null,
        match: null,
        controller: null
      });
      return;
    }
    let Xv = tv.fetchers.get(Gv), L1 = getTargetMatch(Yv, Vv.path), Bv = !1;
    pv.has(Gv) ? Bv = !1 : cv.has(Gv) ? (cv.delete(Gv), Bv = !0) : Xv && Xv.state !== "idle" && Xv.data === void 0 ? Bv = lv : Bv = shouldRevalidateLoader(L1, _extends$6({
      currentUrl: wv,
      currentParams: tv.matches[tv.matches.length - 1].params,
      nextUrl: xv,
      nextParams: ev[ev.length - 1].params
    }, iv, {
      actionResult: Ev,
      actionStatus: Ov,
      defaultShouldRevalidate: Lv ? !1 : lv
    })), Bv && Dv.push({
      key: Gv,
      routeId: Vv.routeId,
      path: Vv.path,
      matches: Yv,
      match: L1,
      controller: new AbortController()
    });
  }), [jv, Dv];
}
function isNewLoader(rv, tv, ev) {
  let iv = (
    // [a] -> [a, b]
    !tv || // [a, b] -> [a, c]
    ev.route.id !== tv.route.id
  ), ov = rv[ev.route.id] === void 0;
  return iv || ov;
}
function isNewRouteInstance(rv, tv) {
  let ev = rv.route.path;
  return (
    // param change for this match, /users/123 -> /users/456
    rv.pathname !== tv.pathname || // splat param changed, which is not present in match.path
    // e.g. /files/images/avatar.jpg -> files/finances.xls
    ev != null && ev.endsWith("*") && rv.params["*"] !== tv.params["*"]
  );
}
function shouldRevalidateLoader(rv, tv) {
  if (rv.route.shouldRevalidate) {
    let ev = rv.route.shouldRevalidate(tv);
    if (typeof ev == "boolean")
      return ev;
  }
  return tv.defaultShouldRevalidate;
}
async function loadLazyRouteChildren(rv, tv, ev, iv, ov, av, sv, lv) {
  let uv = [tv, ...ev.map((cv) => cv.route.id)].join("-");
  try {
    let cv = sv.get(uv);
    cv || (cv = rv({
      path: tv,
      matches: ev,
      patch: (dv, hv) => {
        lv.aborted || patchRoutesImpl(dv, hv, iv, ov, av);
      }
    }), sv.set(uv, cv)), cv && isPromise$1(cv) && await cv;
  } finally {
    sv.delete(uv);
  }
}
function patchRoutesImpl(rv, tv, ev, iv, ov) {
  if (rv) {
    var av;
    let sv = iv[rv];
    invariant$2(sv, "No route found to patch children into: routeId = " + rv);
    let lv = convertRoutesToDataRoutes(tv, ov, [rv, "patch", String(((av = sv.children) == null ? void 0 : av.length) || "0")], iv);
    sv.children ? sv.children.push(...lv) : sv.children = lv;
  } else {
    let sv = convertRoutesToDataRoutes(tv, ov, ["patch", String(ev.length || "0")], iv);
    ev.push(...sv);
  }
}
async function loadLazyRouteModule(rv, tv, ev) {
  if (!rv.lazy)
    return;
  let iv = await rv.lazy();
  if (!rv.lazy)
    return;
  let ov = ev[rv.id];
  invariant$2(ov, "No route found in manifest");
  let av = {};
  for (let sv in iv) {
    let uv = ov[sv] !== void 0 && // This property isn't static since it should always be updated based
    // on the route updates
    sv !== "hasErrorBoundary";
    warning(!uv, 'Route "' + ov.id + '" has a static property "' + sv + '" defined but its lazy function is also returning a value for this property. ' + ('The lazy route property "' + sv + '" will be ignored.')), !uv && !immutableRouteKeys.has(sv) && (av[sv] = iv[sv]);
  }
  Object.assign(ov, av), Object.assign(ov, _extends$6({}, tv(ov), {
    lazy: void 0
  }));
}
async function defaultDataStrategy(rv) {
  let {
    matches: tv
  } = rv, ev = tv.filter((ov) => ov.shouldLoad);
  return (await Promise.all(ev.map((ov) => ov.resolve()))).reduce((ov, av, sv) => Object.assign(ov, {
    [ev[sv].route.id]: av
  }), {});
}
async function callDataStrategyImpl(rv, tv, ev, iv, ov, av, sv, lv, uv, cv) {
  let dv = av.map((yv) => yv.route.lazy ? loadLazyRouteModule(yv.route, uv, lv) : void 0), hv = av.map((yv, Sv) => {
    let _v = dv[Sv], Ev = ov.some((xv) => xv.route.id === yv.route.id);
    return _extends$6({}, yv, {
      shouldLoad: Ev,
      resolve: async (xv) => (xv && iv.method === "GET" && (yv.route.lazy || yv.route.loader) && (Ev = !0), Ev ? callLoaderOrAction(tv, iv, yv, _v, xv, cv) : Promise.resolve({
        type: ResultType.data,
        result: void 0
      }))
    });
  }), pv = await rv({
    matches: hv,
    request: iv,
    params: av[0].params,
    fetcherKey: sv,
    context: cv
  });
  try {
    await Promise.all(dv);
  } catch {
  }
  return pv;
}
async function callLoaderOrAction(rv, tv, ev, iv, ov, av) {
  let sv, lv, uv = (cv) => {
    let dv, hv = new Promise((Sv, _v) => dv = _v);
    lv = () => dv(), tv.signal.addEventListener("abort", lv);
    let pv = (Sv) => typeof cv != "function" ? Promise.reject(new Error("You cannot call the handler for a route which defines a boolean " + ('"' + rv + '" [routeId: ' + ev.route.id + "]"))) : cv({
      request: tv,
      params: ev.params,
      context: av
    }, ...Sv !== void 0 ? [Sv] : []), yv = (async () => {
      try {
        return {
          type: "data",
          result: await (ov ? ov((_v) => pv(_v)) : pv())
        };
      } catch (Sv) {
        return {
          type: "error",
          result: Sv
        };
      }
    })();
    return Promise.race([yv, hv]);
  };
  try {
    let cv = ev.route[rv];
    if (iv)
      if (cv) {
        let dv, [hv] = await Promise.all([
          // If the handler throws, don't let it immediately bubble out,
          // since we need to let the lazy() execution finish so we know if this
          // route has a boundary that can handle the error
          uv(cv).catch((pv) => {
            dv = pv;
          }),
          iv
        ]);
        if (dv !== void 0)
          throw dv;
        sv = hv;
      } else if (await iv, cv = ev.route[rv], cv)
        sv = await uv(cv);
      else if (rv === "action") {
        let dv = new URL(tv.url), hv = dv.pathname + dv.search;
        throw getInternalRouterError(405, {
          method: tv.method,
          pathname: hv,
          routeId: ev.route.id
        });
      } else
        return {
          type: ResultType.data,
          result: void 0
        };
    else if (cv)
      sv = await uv(cv);
    else {
      let dv = new URL(tv.url), hv = dv.pathname + dv.search;
      throw getInternalRouterError(404, {
        pathname: hv
      });
    }
    invariant$2(sv.result !== void 0, "You defined " + (rv === "action" ? "an action" : "a loader") + " for route " + ('"' + ev.route.id + "\" but didn't return anything from your `" + rv + "` ") + "function. Please return a value or `null`.");
  } catch (cv) {
    return {
      type: ResultType.error,
      result: cv
    };
  } finally {
    lv && tv.signal.removeEventListener("abort", lv);
  }
  return sv;
}
async function convertDataStrategyResultToDataResult(rv) {
  let {
    result: tv,
    type: ev
  } = rv;
  if (isResponse(tv)) {
    let cv;
    try {
      let dv = tv.headers.get("Content-Type");
      dv && /\bapplication\/json\b/.test(dv) ? tv.body == null ? cv = null : cv = await tv.json() : cv = await tv.text();
    } catch (dv) {
      return {
        type: ResultType.error,
        error: dv
      };
    }
    return ev === ResultType.error ? {
      type: ResultType.error,
      error: new ErrorResponseImpl(tv.status, tv.statusText, cv),
      statusCode: tv.status,
      headers: tv.headers
    } : {
      type: ResultType.data,
      data: cv,
      statusCode: tv.status,
      headers: tv.headers
    };
  }
  if (ev === ResultType.error) {
    if (isDataWithResponseInit(tv)) {
      var iv;
      if (tv.data instanceof Error) {
        var ov;
        return {
          type: ResultType.error,
          error: tv.data,
          statusCode: (ov = tv.init) == null ? void 0 : ov.status
        };
      }
      tv = new ErrorResponseImpl(((iv = tv.init) == null ? void 0 : iv.status) || 500, void 0, tv.data);
    }
    return {
      type: ResultType.error,
      error: tv,
      statusCode: isRouteErrorResponse(tv) ? tv.status : void 0
    };
  }
  if (isDeferredData(tv)) {
    var av, sv;
    return {
      type: ResultType.deferred,
      deferredData: tv,
      statusCode: (av = tv.init) == null ? void 0 : av.status,
      headers: ((sv = tv.init) == null ? void 0 : sv.headers) && new Headers(tv.init.headers)
    };
  }
  if (isDataWithResponseInit(tv)) {
    var lv, uv;
    return {
      type: ResultType.data,
      data: tv.data,
      statusCode: (lv = tv.init) == null ? void 0 : lv.status,
      headers: (uv = tv.init) != null && uv.headers ? new Headers(tv.init.headers) : void 0
    };
  }
  return {
    type: ResultType.data,
    data: tv
  };
}
function normalizeRelativeRoutingRedirectResponse(rv, tv, ev, iv, ov, av) {
  let sv = rv.headers.get("Location");
  if (invariant$2(sv, "Redirects returned/thrown from loaders/actions must have a Location header"), !ABSOLUTE_URL_REGEX.test(sv)) {
    let lv = iv.slice(0, iv.findIndex((uv) => uv.route.id === ev) + 1);
    sv = normalizeTo(new URL(tv.url), lv, ov, !0, sv, av), rv.headers.set("Location", sv);
  }
  return rv;
}
function normalizeRedirectLocation(rv, tv, ev) {
  if (ABSOLUTE_URL_REGEX.test(rv)) {
    let iv = rv, ov = iv.startsWith("//") ? new URL(tv.protocol + iv) : new URL(iv), av = stripBasename(ov.pathname, ev) != null;
    if (ov.origin === tv.origin && av)
      return ov.pathname + ov.search + ov.hash;
  }
  return rv;
}
function createClientSideRequest(rv, tv, ev, iv) {
  let ov = rv.createURL(stripHashFromPath(tv)).toString(), av = {
    signal: ev
  };
  if (iv && isMutationMethod(iv.formMethod)) {
    let {
      formMethod: sv,
      formEncType: lv
    } = iv;
    av.method = sv.toUpperCase(), lv === "application/json" ? (av.headers = new Headers({
      "Content-Type": lv
    }), av.body = JSON.stringify(iv.json)) : lv === "text/plain" ? av.body = iv.text : lv === "application/x-www-form-urlencoded" && iv.formData ? av.body = convertFormDataToSearchParams(iv.formData) : av.body = iv.formData;
  }
  return new Request(ov, av);
}
function convertFormDataToSearchParams(rv) {
  let tv = new URLSearchParams();
  for (let [ev, iv] of rv.entries())
    tv.append(ev, typeof iv == "string" ? iv : iv.name);
  return tv;
}
function convertSearchParamsToFormData(rv) {
  let tv = new FormData();
  for (let [ev, iv] of rv.entries())
    tv.append(ev, iv);
  return tv;
}
function processRouteLoaderData(rv, tv, ev, iv, ov) {
  let av = {}, sv = null, lv, uv = !1, cv = {}, dv = ev && isErrorResult(ev[1]) ? ev[1].error : void 0;
  return rv.forEach((hv) => {
    if (!(hv.route.id in tv))
      return;
    let pv = hv.route.id, yv = tv[pv];
    if (invariant$2(!isRedirectResult(yv), "Cannot handle redirect results in processLoaderData"), isErrorResult(yv)) {
      let Sv = yv.error;
      dv !== void 0 && (Sv = dv, dv = void 0), sv = sv || {};
      {
        let _v = findNearestBoundary(rv, pv);
        sv[_v.route.id] == null && (sv[_v.route.id] = Sv);
      }
      av[pv] = void 0, uv || (uv = !0, lv = isRouteErrorResponse(yv.error) ? yv.error.status : 500), yv.headers && (cv[pv] = yv.headers);
    } else
      isDeferredResult(yv) ? (iv.set(pv, yv.deferredData), av[pv] = yv.deferredData.data, yv.statusCode != null && yv.statusCode !== 200 && !uv && (lv = yv.statusCode), yv.headers && (cv[pv] = yv.headers)) : (av[pv] = yv.data, yv.statusCode && yv.statusCode !== 200 && !uv && (lv = yv.statusCode), yv.headers && (cv[pv] = yv.headers));
  }), dv !== void 0 && ev && (sv = {
    [ev[0]]: dv
  }, av[ev[0]] = void 0), {
    loaderData: av,
    errors: sv,
    statusCode: lv || 200,
    loaderHeaders: cv
  };
}
function processLoaderData(rv, tv, ev, iv, ov, av, sv, lv) {
  let {
    loaderData: uv,
    errors: cv
  } = processRouteLoaderData(tv, iv, ov, lv);
  return av.forEach((dv) => {
    let {
      key: hv,
      match: pv,
      controller: yv
    } = dv, Sv = sv[hv];
    if (invariant$2(Sv, "Did not find corresponding fetcher result"), !(yv && yv.signal.aborted))
      if (isErrorResult(Sv)) {
        let _v = findNearestBoundary(rv.matches, pv == null ? void 0 : pv.route.id);
        cv && cv[_v.route.id] || (cv = _extends$6({}, cv, {
          [_v.route.id]: Sv.error
        })), rv.fetchers.delete(hv);
      } else if (isRedirectResult(Sv))
        invariant$2(!1, "Unhandled fetcher revalidation redirect");
      else if (isDeferredResult(Sv))
        invariant$2(!1, "Unhandled fetcher deferred data");
      else {
        let _v = getDoneFetcher(Sv.data);
        rv.fetchers.set(hv, _v);
      }
  }), {
    loaderData: uv,
    errors: cv
  };
}
function mergeLoaderData(rv, tv, ev, iv) {
  let ov = _extends$6({}, tv);
  for (let av of ev) {
    let sv = av.route.id;
    if (tv.hasOwnProperty(sv) ? tv[sv] !== void 0 && (ov[sv] = tv[sv]) : rv[sv] !== void 0 && av.route.loader && (ov[sv] = rv[sv]), iv && iv.hasOwnProperty(sv))
      break;
  }
  return ov;
}
function getActionDataForCommit(rv) {
  return rv ? isErrorResult(rv[1]) ? {
    // Clear out prior actionData on errors
    actionData: {}
  } : {
    actionData: {
      [rv[0]]: rv[1].data
    }
  } : {};
}
function findNearestBoundary(rv, tv) {
  return (tv ? rv.slice(0, rv.findIndex((iv) => iv.route.id === tv) + 1) : [...rv]).reverse().find((iv) => iv.route.hasErrorBoundary === !0) || rv[0];
}
function getShortCircuitMatches(rv) {
  let tv = rv.length === 1 ? rv[0] : rv.find((ev) => ev.index || !ev.path || ev.path === "/") || {
    id: "__shim-error-route__"
  };
  return {
    matches: [{
      params: {},
      pathname: "",
      pathnameBase: "",
      route: tv
    }],
    route: tv
  };
}
function getInternalRouterError(rv, tv) {
  let {
    pathname: ev,
    routeId: iv,
    method: ov,
    type: av,
    message: sv
  } = tv === void 0 ? {} : tv, lv = "Unknown Server Error", uv = "Unknown @remix-run/router error";
  return rv === 400 ? (lv = "Bad Request", av === "route-discovery" ? uv = 'Unable to match URL "' + ev + '" - the `unstable_patchRoutesOnNavigation()` ' + (`function threw the following error:
` + sv) : ov && ev && iv ? uv = "You made a " + ov + ' request to "' + ev + '" but ' + ('did not provide a `loader` for route "' + iv + '", ') + "so there is no way to handle the request." : av === "defer-action" ? uv = "defer() is not supported in actions" : av === "invalid-body" && (uv = "Unable to encode submission body")) : rv === 403 ? (lv = "Forbidden", uv = 'Route "' + iv + '" does not match URL "' + ev + '"') : rv === 404 ? (lv = "Not Found", uv = 'No route matches URL "' + ev + '"') : rv === 405 && (lv = "Method Not Allowed", ov && ev && iv ? uv = "You made a " + ov.toUpperCase() + ' request to "' + ev + '" but ' + ('did not provide an `action` for route "' + iv + '", ') + "so there is no way to handle the request." : ov && (uv = 'Invalid request method "' + ov.toUpperCase() + '"')), new ErrorResponseImpl(rv || 500, lv, new Error(uv), !0);
}
function findRedirect(rv) {
  let tv = Object.entries(rv);
  for (let ev = tv.length - 1; ev >= 0; ev--) {
    let [iv, ov] = tv[ev];
    if (isRedirectResult(ov))
      return {
        key: iv,
        result: ov
      };
  }
}
function stripHashFromPath(rv) {
  let tv = typeof rv == "string" ? parsePath(rv) : rv;
  return createPath(_extends$6({}, tv, {
    hash: ""
  }));
}
function isHashChangeOnly(rv, tv) {
  return rv.pathname !== tv.pathname || rv.search !== tv.search ? !1 : rv.hash === "" ? tv.hash !== "" : rv.hash === tv.hash ? !0 : tv.hash !== "";
}
function isPromise$1(rv) {
  return typeof rv == "object" && rv != null && "then" in rv;
}
function isRedirectDataStrategyResultResult(rv) {
  return isResponse(rv.result) && redirectStatusCodes.has(rv.result.status);
}
function isDeferredResult(rv) {
  return rv.type === ResultType.deferred;
}
function isErrorResult(rv) {
  return rv.type === ResultType.error;
}
function isRedirectResult(rv) {
  return (rv && rv.type) === ResultType.redirect;
}
function isDataWithResponseInit(rv) {
  return typeof rv == "object" && rv != null && "type" in rv && "data" in rv && "init" in rv && rv.type === "DataWithResponseInit";
}
function isDeferredData(rv) {
  let tv = rv;
  return tv && typeof tv == "object" && typeof tv.data == "object" && typeof tv.subscribe == "function" && typeof tv.cancel == "function" && typeof tv.resolveData == "function";
}
function isResponse(rv) {
  return rv != null && typeof rv.status == "number" && typeof rv.statusText == "string" && typeof rv.headers == "object" && typeof rv.body < "u";
}
function isValidMethod(rv) {
  return validRequestMethods.has(rv.toLowerCase());
}
function isMutationMethod(rv) {
  return validMutationMethods.has(rv.toLowerCase());
}
async function resolveNavigationDeferredResults(rv, tv, ev, iv, ov) {
  let av = Object.entries(tv);
  for (let sv = 0; sv < av.length; sv++) {
    let [lv, uv] = av[sv], cv = rv.find((pv) => (pv == null ? void 0 : pv.route.id) === lv);
    if (!cv)
      continue;
    let dv = iv.find((pv) => pv.route.id === cv.route.id), hv = dv != null && !isNewRouteInstance(dv, cv) && (ov && ov[cv.route.id]) !== void 0;
    isDeferredResult(uv) && hv && await resolveDeferredData(uv, ev, !1).then((pv) => {
      pv && (tv[lv] = pv);
    });
  }
}
async function resolveFetcherDeferredResults(rv, tv, ev) {
  for (let iv = 0; iv < ev.length; iv++) {
    let {
      key: ov,
      routeId: av,
      controller: sv
    } = ev[iv], lv = tv[ov];
    rv.find((cv) => (cv == null ? void 0 : cv.route.id) === av) && isDeferredResult(lv) && (invariant$2(sv, "Expected an AbortController for revalidating fetcher deferred result"), await resolveDeferredData(lv, sv.signal, !0).then((cv) => {
      cv && (tv[ov] = cv);
    }));
  }
}
async function resolveDeferredData(rv, tv, ev) {
  if (ev === void 0 && (ev = !1), !await rv.deferredData.resolveData(tv)) {
    if (ev)
      try {
        return {
          type: ResultType.data,
          data: rv.deferredData.unwrappedData
        };
      } catch (ov) {
        return {
          type: ResultType.error,
          error: ov
        };
      }
    return {
      type: ResultType.data,
      data: rv.deferredData.data
    };
  }
}
function hasNakedIndexQuery(rv) {
  return new URLSearchParams(rv).getAll("index").some((tv) => tv === "");
}
function getTargetMatch(rv, tv) {
  let ev = typeof tv == "string" ? parsePath(tv).search : tv.search;
  if (rv[rv.length - 1].route.index && hasNakedIndexQuery(ev || ""))
    return rv[rv.length - 1];
  let iv = getPathContributingMatches(rv);
  return iv[iv.length - 1];
}
function getSubmissionFromNavigation(rv) {
  let {
    formMethod: tv,
    formAction: ev,
    formEncType: iv,
    text: ov,
    formData: av,
    json: sv
  } = rv;
  if (!(!tv || !ev || !iv)) {
    if (ov != null)
      return {
        formMethod: tv,
        formAction: ev,
        formEncType: iv,
        formData: void 0,
        json: void 0,
        text: ov
      };
    if (av != null)
      return {
        formMethod: tv,
        formAction: ev,
        formEncType: iv,
        formData: av,
        json: void 0,
        text: void 0
      };
    if (sv !== void 0)
      return {
        formMethod: tv,
        formAction: ev,
        formEncType: iv,
        formData: void 0,
        json: sv,
        text: void 0
      };
  }
}
function getLoadingNavigation(rv, tv) {
  return tv ? {
    state: "loading",
    location: rv,
    formMethod: tv.formMethod,
    formAction: tv.formAction,
    formEncType: tv.formEncType,
    formData: tv.formData,
    json: tv.json,
    text: tv.text
  } : {
    state: "loading",
    location: rv,
    formMethod: void 0,
    formAction: void 0,
    formEncType: void 0,
    formData: void 0,
    json: void 0,
    text: void 0
  };
}
function getSubmittingNavigation(rv, tv) {
  return {
    state: "submitting",
    location: rv,
    formMethod: tv.formMethod,
    formAction: tv.formAction,
    formEncType: tv.formEncType,
    formData: tv.formData,
    json: tv.json,
    text: tv.text
  };
}
function getLoadingFetcher(rv, tv) {
  return rv ? {
    state: "loading",
    formMethod: rv.formMethod,
    formAction: rv.formAction,
    formEncType: rv.formEncType,
    formData: rv.formData,
    json: rv.json,
    text: rv.text,
    data: tv
  } : {
    state: "loading",
    formMethod: void 0,
    formAction: void 0,
    formEncType: void 0,
    formData: void 0,
    json: void 0,
    text: void 0,
    data: tv
  };
}
function getSubmittingFetcher(rv, tv) {
  return {
    state: "submitting",
    formMethod: rv.formMethod,
    formAction: rv.formAction,
    formEncType: rv.formEncType,
    formData: rv.formData,
    json: rv.json,
    text: rv.text,
    data: tv ? tv.data : void 0
  };
}
function getDoneFetcher(rv) {
  return {
    state: "idle",
    formMethod: void 0,
    formAction: void 0,
    formEncType: void 0,
    formData: void 0,
    json: void 0,
    text: void 0,
    data: rv
  };
}
function restoreAppliedTransitions(rv, tv) {
  try {
    let ev = rv.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);
    if (ev) {
      let iv = JSON.parse(ev);
      for (let [ov, av] of Object.entries(iv || {}))
        av && Array.isArray(av) && tv.set(ov, new Set(av || []));
    }
  } catch {
  }
}
function persistAppliedTransitions(rv, tv) {
  if (tv.size > 0) {
    let ev = {};
    for (let [iv, ov] of tv)
      ev[iv] = [...ov];
    try {
      rv.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(ev));
    } catch (iv) {
      warning(!1, "Failed to save applied view transitions in sessionStorage (" + iv + ").");
    }
  }
}
/**
 * React Router v6.26.2
 *
 * Copyright (c) Remix Software Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE.md file in the root directory of this source tree.
 *
 * @license MIT
 */
function _extends$5() {
  return _extends$5 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        Object.prototype.hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, _extends$5.apply(this, arguments);
}
const DataRouterContext = /* @__PURE__ */ reactExports.createContext(null), DataRouterStateContext = /* @__PURE__ */ reactExports.createContext(null), NavigationContext = /* @__PURE__ */ reactExports.createContext(null), LocationContext = /* @__PURE__ */ reactExports.createContext(null), RouteContext = /* @__PURE__ */ reactExports.createContext({
  outlet: null,
  matches: [],
  isDataRoute: !1
}), RouteErrorContext = /* @__PURE__ */ reactExports.createContext(null);
function useInRouterContext() {
  return reactExports.useContext(LocationContext) != null;
}
function useLocation() {
  return useInRouterContext() || invariant$2(!1), reactExports.useContext(LocationContext).location;
}
function useIsomorphicLayoutEffect(rv) {
  reactExports.useContext(NavigationContext).static || reactExports.useLayoutEffect(rv);
}
function useNavigate() {
  let {
    isDataRoute: rv
  } = reactExports.useContext(RouteContext);
  return rv ? useNavigateStable() : useNavigateUnstable();
}
function useNavigateUnstable() {
  useInRouterContext() || invariant$2(!1);
  let rv = reactExports.useContext(DataRouterContext), {
    basename: tv,
    future: ev,
    navigator: iv
  } = reactExports.useContext(NavigationContext), {
    matches: ov
  } = reactExports.useContext(RouteContext), {
    pathname: av
  } = useLocation(), sv = JSON.stringify(getResolveToMatches(ov, ev.v7_relativeSplatPath)), lv = reactExports.useRef(!1);
  return useIsomorphicLayoutEffect(() => {
    lv.current = !0;
  }), reactExports.useCallback(function(cv, dv) {
    if (dv === void 0 && (dv = {}), !lv.current)
      return;
    if (typeof cv == "number") {
      iv.go(cv);
      return;
    }
    let hv = resolveTo(cv, JSON.parse(sv), av, dv.relative === "path");
    rv == null && tv !== "/" && (hv.pathname = hv.pathname === "/" ? tv : joinPaths([tv, hv.pathname])), (dv.replace ? iv.replace : iv.push)(hv, dv.state, dv);
  }, [tv, iv, sv, av, rv]);
}
const OutletContext = /* @__PURE__ */ reactExports.createContext(null);
function useOutlet(rv) {
  let tv = reactExports.useContext(RouteContext).outlet;
  return tv && /* @__PURE__ */ reactExports.createElement(OutletContext.Provider, {
    value: rv
  }, tv);
}
function useRoutesImpl(rv, tv, ev, iv) {
  useInRouterContext() || invariant$2(!1);
  let {
    navigator: ov
  } = reactExports.useContext(NavigationContext), {
    matches: av
  } = reactExports.useContext(RouteContext), sv = av[av.length - 1], lv = sv ? sv.params : {};
  sv && sv.pathname;
  let uv = sv ? sv.pathnameBase : "/";
  sv && sv.route;
  let cv = useLocation(), dv;
  dv = cv;
  let hv = dv.pathname || "/", pv = hv;
  if (uv !== "/") {
    let _v = uv.replace(/^\//, "").split("/");
    pv = "/" + hv.replace(/^\//, "").split("/").slice(_v.length).join("/");
  }
  let yv = matchRoutes(rv, {
    pathname: pv
  });
  return _renderMatches(yv && yv.map((_v) => Object.assign({}, _v, {
    params: Object.assign({}, lv, _v.params),
    pathname: joinPaths([
      uv,
      // Re-encode pathnames that were decoded inside matchRoutes
      ov.encodeLocation ? ov.encodeLocation(_v.pathname).pathname : _v.pathname
    ]),
    pathnameBase: _v.pathnameBase === "/" ? uv : joinPaths([
      uv,
      // Re-encode pathnames that were decoded inside matchRoutes
      ov.encodeLocation ? ov.encodeLocation(_v.pathnameBase).pathname : _v.pathnameBase
    ])
  })), av, ev, iv);
}
function DefaultErrorComponent() {
  let rv = useRouteError(), tv = isRouteErrorResponse(rv) ? rv.status + " " + rv.statusText : rv instanceof Error ? rv.message : JSON.stringify(rv), ev = rv instanceof Error ? rv.stack : null, ov = {
    padding: "0.5rem",
    backgroundColor: "rgba(200,200,200, 0.5)"
  };
  return /* @__PURE__ */ reactExports.createElement(reactExports.Fragment, null, /* @__PURE__ */ reactExports.createElement("h2", null, "Unexpected Application Error!"), /* @__PURE__ */ reactExports.createElement("h3", {
    style: {
      fontStyle: "italic"
    }
  }, tv), ev ? /* @__PURE__ */ reactExports.createElement("pre", {
    style: ov
  }, ev) : null, null);
}
const defaultErrorElement = /* @__PURE__ */ reactExports.createElement(DefaultErrorComponent, null);
class RenderErrorBoundary extends reactExports.Component {
  constructor(tv) {
    super(tv), this.state = {
      location: tv.location,
      revalidation: tv.revalidation,
      error: tv.error
    };
  }
  static getDerivedStateFromError(tv) {
    return {
      error: tv
    };
  }
  static getDerivedStateFromProps(tv, ev) {
    return ev.location !== tv.location || ev.revalidation !== "idle" && tv.revalidation === "idle" ? {
      error: tv.error,
      location: tv.location,
      revalidation: tv.revalidation
    } : {
      error: tv.error !== void 0 ? tv.error : ev.error,
      location: ev.location,
      revalidation: tv.revalidation || ev.revalidation
    };
  }
  componentDidCatch(tv, ev) {
    console.error("React Router caught the following error during render", tv, ev);
  }
  render() {
    return this.state.error !== void 0 ? /* @__PURE__ */ reactExports.createElement(RouteContext.Provider, {
      value: this.props.routeContext
    }, /* @__PURE__ */ reactExports.createElement(RouteErrorContext.Provider, {
      value: this.state.error,
      children: this.props.component
    })) : this.props.children;
  }
}
function RenderedRoute(rv) {
  let {
    routeContext: tv,
    match: ev,
    children: iv
  } = rv, ov = reactExports.useContext(DataRouterContext);
  return ov && ov.static && ov.staticContext && (ev.route.errorElement || ev.route.ErrorBoundary) && (ov.staticContext._deepestRenderedBoundaryId = ev.route.id), /* @__PURE__ */ reactExports.createElement(RouteContext.Provider, {
    value: tv
  }, iv);
}
function _renderMatches(rv, tv, ev, iv) {
  var ov;
  if (tv === void 0 && (tv = []), ev === void 0 && (ev = null), iv === void 0 && (iv = null), rv == null) {
    var av;
    if (!ev)
      return null;
    if (ev.errors)
      rv = ev.matches;
    else if ((av = iv) != null && av.v7_partialHydration && tv.length === 0 && !ev.initialized && ev.matches.length > 0)
      rv = ev.matches;
    else
      return null;
  }
  let sv = rv, lv = (ov = ev) == null ? void 0 : ov.errors;
  if (lv != null) {
    let dv = sv.findIndex((hv) => hv.route.id && (lv == null ? void 0 : lv[hv.route.id]) !== void 0);
    dv >= 0 || invariant$2(!1), sv = sv.slice(0, Math.min(sv.length, dv + 1));
  }
  let uv = !1, cv = -1;
  if (ev && iv && iv.v7_partialHydration)
    for (let dv = 0; dv < sv.length; dv++) {
      let hv = sv[dv];
      if ((hv.route.HydrateFallback || hv.route.hydrateFallbackElement) && (cv = dv), hv.route.id) {
        let {
          loaderData: pv,
          errors: yv
        } = ev, Sv = hv.route.loader && pv[hv.route.id] === void 0 && (!yv || yv[hv.route.id] === void 0);
        if (hv.route.lazy || Sv) {
          uv = !0, cv >= 0 ? sv = sv.slice(0, cv + 1) : sv = [sv[0]];
          break;
        }
      }
    }
  return sv.reduceRight((dv, hv, pv) => {
    let yv, Sv = !1, _v = null, Ev = null;
    ev && (yv = lv && hv.route.id ? lv[hv.route.id] : void 0, _v = hv.route.errorElement || defaultErrorElement, uv && (cv < 0 && pv === 0 ? (Sv = !0, Ev = null) : cv === pv && (Sv = !0, Ev = hv.route.hydrateFallbackElement || null)));
    let wv = tv.concat(sv.slice(0, pv + 1)), xv = () => {
      let Cv;
      return yv ? Cv = _v : Sv ? Cv = Ev : hv.route.Component ? Cv = /* @__PURE__ */ reactExports.createElement(hv.route.Component, null) : hv.route.element ? Cv = hv.route.element : Cv = dv, /* @__PURE__ */ reactExports.createElement(RenderedRoute, {
        match: hv,
        routeContext: {
          outlet: dv,
          matches: wv,
          isDataRoute: ev != null
        },
        children: Cv
      });
    };
    return ev && (hv.route.ErrorBoundary || hv.route.errorElement || pv === 0) ? /* @__PURE__ */ reactExports.createElement(RenderErrorBoundary, {
      location: ev.location,
      revalidation: ev.revalidation,
      component: _v,
      error: yv,
      children: xv(),
      routeContext: {
        outlet: null,
        matches: wv,
        isDataRoute: !0
      }
    }) : xv();
  }, null);
}
var DataRouterHook$1 = /* @__PURE__ */ function(rv) {
  return rv.UseBlocker = "useBlocker", rv.UseRevalidator = "useRevalidator", rv.UseNavigateStable = "useNavigate", rv;
}(DataRouterHook$1 || {}), DataRouterStateHook$1 = /* @__PURE__ */ function(rv) {
  return rv.UseBlocker = "useBlocker", rv.UseLoaderData = "useLoaderData", rv.UseActionData = "useActionData", rv.UseRouteError = "useRouteError", rv.UseNavigation = "useNavigation", rv.UseRouteLoaderData = "useRouteLoaderData", rv.UseMatches = "useMatches", rv.UseRevalidator = "useRevalidator", rv.UseNavigateStable = "useNavigate", rv.UseRouteId = "useRouteId", rv;
}(DataRouterStateHook$1 || {});
function useDataRouterContext(rv) {
  let tv = reactExports.useContext(DataRouterContext);
  return tv || invariant$2(!1), tv;
}
function useDataRouterState(rv) {
  let tv = reactExports.useContext(DataRouterStateContext);
  return tv || invariant$2(!1), tv;
}
function useRouteContext(rv) {
  let tv = reactExports.useContext(RouteContext);
  return tv || invariant$2(!1), tv;
}
function useCurrentRouteId(rv) {
  let tv = useRouteContext(), ev = tv.matches[tv.matches.length - 1];
  return ev.route.id || invariant$2(!1), ev.route.id;
}
function useRouteError() {
  var rv;
  let tv = reactExports.useContext(RouteErrorContext), ev = useDataRouterState(DataRouterStateHook$1.UseRouteError), iv = useCurrentRouteId(DataRouterStateHook$1.UseRouteError);
  return tv !== void 0 ? tv : (rv = ev.errors) == null ? void 0 : rv[iv];
}
function useNavigateStable() {
  let {
    router: rv
  } = useDataRouterContext(DataRouterHook$1.UseNavigateStable), tv = useCurrentRouteId(DataRouterStateHook$1.UseNavigateStable), ev = reactExports.useRef(!1);
  return useIsomorphicLayoutEffect(() => {
    ev.current = !0;
  }), reactExports.useCallback(function(ov, av) {
    av === void 0 && (av = {}), ev.current && (typeof ov == "number" ? rv.navigate(ov) : rv.navigate(ov, _extends$5({
      fromRouteId: tv
    }, av)));
  }, [rv, tv]);
}
function Navigate(rv) {
  let {
    to: tv,
    replace: ev,
    state: iv,
    relative: ov
  } = rv;
  useInRouterContext() || invariant$2(!1);
  let {
    future: av,
    static: sv
  } = reactExports.useContext(NavigationContext), {
    matches: lv
  } = reactExports.useContext(RouteContext), {
    pathname: uv
  } = useLocation(), cv = useNavigate(), dv = resolveTo(tv, getResolveToMatches(lv, av.v7_relativeSplatPath), uv, ov === "path"), hv = JSON.stringify(dv);
  return reactExports.useEffect(() => cv(JSON.parse(hv), {
    replace: ev,
    state: iv,
    relative: ov
  }), [cv, hv, ov, ev, iv]), null;
}
function Outlet(rv) {
  return useOutlet(rv.context);
}
function Router(rv) {
  let {
    basename: tv = "/",
    children: ev = null,
    location: iv,
    navigationType: ov = Action.Pop,
    navigator: av,
    static: sv = !1,
    future: lv
  } = rv;
  useInRouterContext() && invariant$2(!1);
  let uv = tv.replace(/^\/*/, "/"), cv = reactExports.useMemo(() => ({
    basename: uv,
    navigator: av,
    static: sv,
    future: _extends$5({
      v7_relativeSplatPath: !1
    }, lv)
  }), [uv, lv, av, sv]);
  typeof iv == "string" && (iv = parsePath(iv));
  let {
    pathname: dv = "/",
    search: hv = "",
    hash: pv = "",
    state: yv = null,
    key: Sv = "default"
  } = iv, _v = reactExports.useMemo(() => {
    let Ev = stripBasename(dv, uv);
    return Ev == null ? null : {
      location: {
        pathname: Ev,
        search: hv,
        hash: pv,
        state: yv,
        key: Sv
      },
      navigationType: ov
    };
  }, [uv, dv, hv, pv, yv, Sv, ov]);
  return _v == null ? null : /* @__PURE__ */ reactExports.createElement(NavigationContext.Provider, {
    value: cv
  }, /* @__PURE__ */ reactExports.createElement(LocationContext.Provider, {
    children: ev,
    value: _v
  }));
}
new Promise(() => {
});
function mapRouteProperties(rv) {
  let tv = {
    // Note: this check also occurs in createRoutesFromChildren so update
    // there if you change this -- please and thank you!
    hasErrorBoundary: rv.ErrorBoundary != null || rv.errorElement != null
  };
  return rv.Component && Object.assign(tv, {
    element: /* @__PURE__ */ reactExports.createElement(rv.Component),
    Component: void 0
  }), rv.HydrateFallback && Object.assign(tv, {
    hydrateFallbackElement: /* @__PURE__ */ reactExports.createElement(rv.HydrateFallback),
    HydrateFallback: void 0
  }), rv.ErrorBoundary && Object.assign(tv, {
    errorElement: /* @__PURE__ */ reactExports.createElement(rv.ErrorBoundary),
    ErrorBoundary: void 0
  }), tv;
}
/**
 * React Router DOM v6.26.2
 *
 * Copyright (c) Remix Software Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE.md file in the root directory of this source tree.
 *
 * @license MIT
 */
function _extends$4() {
  return _extends$4 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        Object.prototype.hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, _extends$4.apply(this, arguments);
}
const REACT_ROUTER_VERSION = "6";
try {
  window.__reactRouterVersion = REACT_ROUTER_VERSION;
} catch {
}
function createHashRouter(rv, tv) {
  return createRouter({
    basename: void 0,
    future: _extends$4({}, void 0, {
      v7_prependBasename: !0
    }),
    history: createHashHistory({
      window: void 0
    }),
    hydrationData: parseHydrationData(),
    routes: rv,
    mapRouteProperties,
    unstable_dataStrategy: void 0,
    unstable_patchRoutesOnNavigation: void 0,
    window: void 0
  }).initialize();
}
function parseHydrationData() {
  var rv;
  let tv = (rv = window) == null ? void 0 : rv.__staticRouterHydrationData;
  return tv && tv.errors && (tv = _extends$4({}, tv, {
    errors: deserializeErrors(tv.errors)
  })), tv;
}
function deserializeErrors(rv) {
  if (!rv)
    return null;
  let tv = Object.entries(rv), ev = {};
  for (let [iv, ov] of tv)
    if (ov && ov.__type === "RouteErrorResponse")
      ev[iv] = new ErrorResponseImpl(ov.status, ov.statusText, ov.data, ov.internal === !0);
    else if (ov && ov.__type === "Error") {
      if (ov.__subType) {
        let av = window[ov.__subType];
        if (typeof av == "function")
          try {
            let sv = new av(ov.message);
            sv.stack = "", ev[iv] = sv;
          } catch {
          }
      }
      if (ev[iv] == null) {
        let av = new Error(ov.message);
        av.stack = "", ev[iv] = av;
      }
    } else
      ev[iv] = ov;
  return ev;
}
const ViewTransitionContext = /* @__PURE__ */ reactExports.createContext({
  isTransitioning: !1
}), FetchersContext = /* @__PURE__ */ reactExports.createContext(/* @__PURE__ */ new Map()), START_TRANSITION = "startTransition", startTransitionImpl = React$1[START_TRANSITION], FLUSH_SYNC = "flushSync", flushSyncImpl = ReactDOM$1[FLUSH_SYNC];
function startTransitionSafe(rv) {
  startTransitionImpl ? startTransitionImpl(rv) : rv();
}
function flushSyncSafe(rv) {
  flushSyncImpl ? flushSyncImpl(rv) : rv();
}
class Deferred {
  constructor() {
    this.status = "pending", this.promise = new Promise((tv, ev) => {
      this.resolve = (iv) => {
        this.status === "pending" && (this.status = "resolved", tv(iv));
      }, this.reject = (iv) => {
        this.status === "pending" && (this.status = "rejected", ev(iv));
      };
    });
  }
}
function RouterProvider(rv) {
  let {
    fallbackElement: tv,
    router: ev,
    future: iv
  } = rv, [ov, av] = reactExports.useState(ev.state), [sv, lv] = reactExports.useState(), [uv, cv] = reactExports.useState({
    isTransitioning: !1
  }), [dv, hv] = reactExports.useState(), [pv, yv] = reactExports.useState(), [Sv, _v] = reactExports.useState(), Ev = reactExports.useRef(/* @__PURE__ */ new Map()), {
    v7_startTransition: wv
  } = iv || {}, xv = reactExports.useCallback((Dv) => {
    wv ? startTransitionSafe(Dv) : Dv();
  }, [wv]), Cv = reactExports.useCallback((Dv, Vv) => {
    let {
      deletedFetchers: Gv,
      unstable_flushSync: Yv,
      unstable_viewTransitionOpts: Xv
    } = Vv;
    Gv.forEach((Bv) => Ev.current.delete(Bv)), Dv.fetchers.forEach((Bv, Qv) => {
      Bv.data !== void 0 && Ev.current.set(Qv, Bv.data);
    });
    let L1 = ev.window == null || ev.window.document == null || typeof ev.window.document.startViewTransition != "function";
    if (!Xv || L1) {
      Yv ? flushSyncSafe(() => av(Dv)) : xv(() => av(Dv));
      return;
    }
    if (Yv) {
      flushSyncSafe(() => {
        pv && (dv && dv.resolve(), pv.skipTransition()), cv({
          isTransitioning: !0,
          flushSync: !0,
          currentLocation: Xv.currentLocation,
          nextLocation: Xv.nextLocation
        });
      });
      let Bv = ev.window.document.startViewTransition(() => {
        flushSyncSafe(() => av(Dv));
      });
      Bv.finished.finally(() => {
        flushSyncSafe(() => {
          hv(void 0), yv(void 0), lv(void 0), cv({
            isTransitioning: !1
          });
        });
      }), flushSyncSafe(() => yv(Bv));
      return;
    }
    pv ? (dv && dv.resolve(), pv.skipTransition(), _v({
      state: Dv,
      currentLocation: Xv.currentLocation,
      nextLocation: Xv.nextLocation
    })) : (lv(Dv), cv({
      isTransitioning: !0,
      flushSync: !1,
      currentLocation: Xv.currentLocation,
      nextLocation: Xv.nextLocation
    }));
  }, [ev.window, pv, dv, Ev, xv]);
  reactExports.useLayoutEffect(() => ev.subscribe(Cv), [ev, Cv]), reactExports.useEffect(() => {
    uv.isTransitioning && !uv.flushSync && hv(new Deferred());
  }, [uv]), reactExports.useEffect(() => {
    if (dv && sv && ev.window) {
      let Dv = sv, Vv = dv.promise, Gv = ev.window.document.startViewTransition(async () => {
        xv(() => av(Dv)), await Vv;
      });
      Gv.finished.finally(() => {
        hv(void 0), yv(void 0), lv(void 0), cv({
          isTransitioning: !1
        });
      }), yv(Gv);
    }
  }, [xv, sv, dv, ev.window]), reactExports.useEffect(() => {
    dv && sv && ov.location.key === sv.location.key && dv.resolve();
  }, [dv, pv, ov.location, sv]), reactExports.useEffect(() => {
    !uv.isTransitioning && Sv && (lv(Sv.state), cv({
      isTransitioning: !0,
      flushSync: !1,
      currentLocation: Sv.currentLocation,
      nextLocation: Sv.nextLocation
    }), _v(void 0));
  }, [uv.isTransitioning, Sv]), reactExports.useEffect(() => {
  }, []);
  let Av = reactExports.useMemo(() => ({
    createHref: ev.createHref,
    encodeLocation: ev.encodeLocation,
    go: (Dv) => ev.navigate(Dv),
    push: (Dv, Vv, Gv) => ev.navigate(Dv, {
      state: Vv,
      preventScrollReset: Gv == null ? void 0 : Gv.preventScrollReset
    }),
    replace: (Dv, Vv, Gv) => ev.navigate(Dv, {
      replace: !0,
      state: Vv,
      preventScrollReset: Gv == null ? void 0 : Gv.preventScrollReset
    })
  }), [ev]), Ov = ev.basename || "/", Lv = reactExports.useMemo(() => ({
    router: ev,
    navigator: Av,
    static: !1,
    basename: Ov
  }), [ev, Av, Ov]), jv = reactExports.useMemo(() => ({
    v7_relativeSplatPath: ev.future.v7_relativeSplatPath
  }), [ev.future.v7_relativeSplatPath]);
  return /* @__PURE__ */ reactExports.createElement(reactExports.Fragment, null, /* @__PURE__ */ reactExports.createElement(DataRouterContext.Provider, {
    value: Lv
  }, /* @__PURE__ */ reactExports.createElement(DataRouterStateContext.Provider, {
    value: ov
  }, /* @__PURE__ */ reactExports.createElement(FetchersContext.Provider, {
    value: Ev.current
  }, /* @__PURE__ */ reactExports.createElement(ViewTransitionContext.Provider, {
    value: uv
  }, /* @__PURE__ */ reactExports.createElement(Router, {
    basename: Ov,
    location: ov.location,
    navigationType: ov.historyAction,
    navigator: Av,
    future: jv
  }, ov.initialized || ev.future.v7_partialHydration ? /* @__PURE__ */ reactExports.createElement(MemoizedDataRoutes, {
    routes: ev.routes,
    future: ev.future,
    state: ov
  }) : tv))))), null);
}
const MemoizedDataRoutes = /* @__PURE__ */ reactExports.memo(DataRoutes);
function DataRoutes(rv) {
  let {
    routes: tv,
    future: ev,
    state: iv
  } = rv;
  return useRoutesImpl(tv, void 0, iv, ev);
}
var DataRouterHook;
(function(rv) {
  rv.UseScrollRestoration = "useScrollRestoration", rv.UseSubmit = "useSubmit", rv.UseSubmitFetcher = "useSubmitFetcher", rv.UseFetcher = "useFetcher", rv.useViewTransitionState = "useViewTransitionState";
})(DataRouterHook || (DataRouterHook = {}));
var DataRouterStateHook;
(function(rv) {
  rv.UseFetcher = "useFetcher", rv.UseFetchers = "useFetchers", rv.UseScrollRestoration = "useScrollRestoration";
})(DataRouterStateHook || (DataRouterStateHook = {}));
const Fb = {
  relativeDate: {
    justNow: "Just now",
    minute: "A minute ago",
    minutePlural: "{{count}} minutes ago",
    hour: "An hour ago",
    hourPlural: "{{count}} hours ago",
    day: "A day ago",
    dayPlural: "{{count}} days ago"
  },
  accessDenied: {
    title: "Access Denied",
    message: "You do not have permission to access this module. Please contact the VTEX team to upgrade your plan."
  },
  protectedRoute: {
    error: "An error occurred. Please try again."
  },
  share: {
    share: "Share:",
    facebook: "Share on Facebook",
    x: "Share on X",
    whatsapp: "Share on WhatsApp",
    copyUrl: "Copy URL",
    copiedToClipboard: "URL copied to clipboard!"
  }
}, Mb = {
  ui: Fb
}, $b = {
  relativeDate: {
    justNow: "Justo ahora",
    minute: "Hace un minuto",
    minutePlural: "Hace {{count}} minutos",
    hour: "Hace una hora",
    hourPlural: "Hace {{count}} horas",
    day: "Hace un día",
    dayPlural: "Hace {{count}} días"
  },
  accessDenied: {
    title: "Acceso Denegado",
    message: "No tienes permiso para acceder a este módulo. Por favor, contacta al equipo de VTEX para actualizar tu plan."
  },
  protectedRoute: {
    error: "Ocurrió un error. Por favor, intenta de nuevo."
  },
  share: {
    share: "Compartir:",
    facebook: "Compartir en Facebook",
    x: "Compartir en X",
    whatsapp: "Compartir en WhatsApp",
    copyUrl: "Copiar URL",
    copiedToClipboard: "¡URL copiada al portapapeles!"
  }
}, Bb = {
  ui: $b
}, Ub = {
  relativeDate: {
    justNow: "Agora mesmo",
    minute: "Há um minuto",
    minutePlural: "Há {{count}} minutos",
    hour: "Há uma hora",
    hourPlural: "Há {{count}} horas",
    day: "Há um dia",
    dayPlural: "Há {{count}} días"
  },
  accessDenied: {
    title: "Acesso Negado",
    message: "Você não tem permissão para acessar este módulo. Por favor, entre em contato com a equipe da VTEX para atualizar seu plano."
  },
  protectedRoute: {
    error: "Ocorreu um erro. Por favor, tente novamente."
  },
  share: {
    share: "Compartilhar:",
    facebook: "Compartilhar no Facebook",
    x: "Compartilhar no X",
    whatsapp: "Compartilhar no WhatsApp",
    copyUrl: "Copiar URL",
    copiedToClipboard: "URL copiada para a área de transferência!"
  }
}, jb = {
  ui: Ub
}, Hb = {
  [Pd$1.English]: /* @__PURE__ */ Object.assign({
    "./en/translation.json": Mb
  }),
  [Pd$1.Spanish]: /* @__PURE__ */ Object.assign({
    "./es/translation.json": Bb
  }),
  [Pd$1.Portuguese]: /* @__PURE__ */ Object.assign({
    "./pt/translation.json": jb
  })
};
vv(Hb);
var su = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function Ci(rv) {
  return rv && rv.__esModule && Object.prototype.hasOwnProperty.call(rv, "default") ? rv.default : rv;
}
function Gb() {
  if (console && console.warn) {
    for (var rv = arguments.length, tv = new Array(rv), ev = 0; ev < rv; ev++)
      tv[ev] = arguments[ev];
    typeof tv[0] == "string" && (tv[0] = `react-i18next:: ${tv[0]}`), console.warn(...tv);
  }
}
const Fc = {};
function yl() {
  for (var rv = arguments.length, tv = new Array(rv), ev = 0; ev < rv; ev++)
    tv[ev] = arguments[ev];
  typeof tv[0] == "string" && Fc[tv[0]] || (typeof tv[0] == "string" && (Fc[tv[0]] = /* @__PURE__ */ new Date()), Gb(...tv));
}
const fh = (rv, tv) => () => {
  if (rv.isInitialized)
    tv();
  else {
    const ev = () => {
      setTimeout(() => {
        rv.off("initialized", ev);
      }, 0), tv();
    };
    rv.on("initialized", ev);
  }
};
function Mc(rv, tv, ev) {
  rv.loadNamespaces(tv, fh(rv, ev));
}
function $c(rv, tv, ev, iv) {
  typeof ev == "string" && (ev = [ev]), ev.forEach((ov) => {
    rv.options.ns.indexOf(ov) < 0 && rv.options.ns.push(ov);
  }), rv.loadLanguages(tv, fh(rv, iv));
}
function zb(rv, tv) {
  let ev = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
  const iv = tv.languages[0], ov = tv.options ? tv.options.fallbackLng : !1, av = tv.languages[tv.languages.length - 1];
  if (iv.toLowerCase() === "cimode")
    return !0;
  const sv = (lv, uv) => {
    const cv = tv.services.backendConnector.state[`${lv}|${uv}`];
    return cv === -1 || cv === 2;
  };
  return ev.bindI18n && ev.bindI18n.indexOf("languageChanging") > -1 && tv.services.backendConnector.backend && tv.isLanguageChangingTo && !sv(tv.isLanguageChangingTo, rv) ? !1 : !!(tv.hasResourceBundle(iv, rv) || !tv.services.backendConnector.backend || tv.options.resources && !tv.options.partialBundledLanguages || sv(iv, rv) && (!ov || sv(av, rv)));
}
function Vb(rv, tv) {
  let ev = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
  return !tv.languages || !tv.languages.length ? (yl("i18n.languages were undefined or empty", tv.languages), !0) : tv.options.ignoreJSONStructure !== void 0 ? tv.hasLoadedNamespace(rv, {
    lng: ev.lng,
    precheck: (iv, ov) => {
      if (ev.bindI18n && ev.bindI18n.indexOf("languageChanging") > -1 && iv.services.backendConnector.backend && iv.isLanguageChangingTo && !ov(iv.isLanguageChangingTo, rv))
        return !1;
    }
  }) : zb(rv, tv, ev);
}
const Wb = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g, Kb = {
  "&amp;": "&",
  "&#38;": "&",
  "&lt;": "<",
  "&#60;": "<",
  "&gt;": ">",
  "&#62;": ">",
  "&apos;": "'",
  "&#39;": "'",
  "&quot;": '"',
  "&#34;": '"',
  "&nbsp;": " ",
  "&#160;": " ",
  "&copy;": "©",
  "&#169;": "©",
  "&reg;": "®",
  "&#174;": "®",
  "&hellip;": "…",
  "&#8230;": "…",
  "&#x2F;": "/",
  "&#47;": "/"
}, Yb = (rv) => Kb[rv], Xb = (rv) => rv.replace(Wb, Yb);
let qb = {
  bindI18n: "languageChanged",
  bindI18nStore: "",
  transEmptyNodeValue: "",
  transSupportBasicHtmlNodes: !0,
  transWrapTextNodes: "",
  transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"],
  useSuspense: !0,
  unescape: Xb
};
function Zb() {
  return qb;
}
let Jb;
function Qb() {
  return Jb;
}
const ey = reactExports.createContext();
class ty {
  constructor() {
    this.usedNamespaces = {};
  }
  addUsedNamespaces(tv) {
    tv.forEach((ev) => {
      this.usedNamespaces[ev] || (this.usedNamespaces[ev] = !0);
    });
  }
  getUsedNamespaces() {
    return Object.keys(this.usedNamespaces);
  }
}
const ry = (rv, tv) => {
  const ev = reactExports.useRef();
  return reactExports.useEffect(() => {
    ev.current = rv;
  }, [rv, tv]), ev.current;
};
function Wo(rv) {
  let tv = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
  const {
    i18n: ev
  } = tv, {
    i18n: iv,
    defaultNS: ov
  } = reactExports.useContext(ey) || {}, av = ev || iv || Qb();
  if (av && !av.reportNamespaces && (av.reportNamespaces = new ty()), !av) {
    yl("You will need to pass in an i18next instance by using initReactI18next");
    const Cv = (Ov, Lv) => typeof Lv == "string" ? Lv : Lv && typeof Lv == "object" && typeof Lv.defaultValue == "string" ? Lv.defaultValue : Array.isArray(Ov) ? Ov[Ov.length - 1] : Ov, Av = [Cv, {}, !1];
    return Av.t = Cv, Av.i18n = {}, Av.ready = !1, Av;
  }
  av.options.react && av.options.react.wait !== void 0 && yl("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");
  const sv = {
    ...Zb(),
    ...av.options.react,
    ...tv
  }, {
    useSuspense: lv,
    keyPrefix: uv
  } = sv;
  let cv = rv;
  cv = typeof cv == "string" ? [cv] : cv || ["translation"], av.reportNamespaces.addUsedNamespaces && av.reportNamespaces.addUsedNamespaces(cv);
  const dv = (av.isInitialized || av.initializedStoreOnce) && cv.every((Cv) => Vb(Cv, av, sv));
  function hv() {
    return av.getFixedT(tv.lng || null, sv.nsMode === "fallback" ? cv : cv[0], uv);
  }
  const [pv, yv] = reactExports.useState(hv);
  let Sv = cv.join();
  tv.lng && (Sv = `${tv.lng}${Sv}`);
  const _v = ry(Sv), Ev = reactExports.useRef(!0);
  reactExports.useEffect(() => {
    const {
      bindI18n: Cv,
      bindI18nStore: Av
    } = sv;
    Ev.current = !0, !dv && !lv && (tv.lng ? $c(av, tv.lng, cv, () => {
      Ev.current && yv(hv);
    }) : Mc(av, cv, () => {
      Ev.current && yv(hv);
    })), dv && _v && _v !== Sv && Ev.current && yv(hv);
    function Ov() {
      Ev.current && yv(hv);
    }
    return Cv && av && av.on(Cv, Ov), Av && av && av.store.on(Av, Ov), () => {
      Ev.current = !1, Cv && av && Cv.split(" ").forEach((Lv) => av.off(Lv, Ov)), Av && av && Av.split(" ").forEach((Lv) => av.store.off(Lv, Ov));
    };
  }, [av, Sv]);
  const wv = reactExports.useRef(!0);
  reactExports.useEffect(() => {
    Ev.current && !wv.current && yv(hv), wv.current = !1;
  }, [av, uv]);
  const xv = [pv, av, dv];
  if (xv.t = pv, xv.i18n = av, xv.ready = dv, dv || !dv && !lv)
    return xv;
  throw new Promise((Cv) => {
    tv.lng ? $c(av, tv.lng, cv, () => Cv()) : Mc(av, cv, () => Cv());
  });
}
const ny = "_container_eseo4_1", iy = "_alert_eseo4_8", ay = "_title_eseo4_16", oy = "_message_eseo4_22", Xa = {
  container: ny,
  alert: iy,
  title: ay,
  message: oy
}, sy = reactExports.memo(({ message: rv }) => {
  const { t: tv } = Wo("translation"), ev = tv("ui.accessDenied.title"), iv = tv("ui.accessDenied.message");
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: Xa.container, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: Xa.alert, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: Xa.title, children: ev }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: Xa.message, children: rv || iv })
  ] }) });
});
var hh = { exports: {} }, St = {};
/**
 * @license React
 * react-is.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var lu = Symbol.for("react.element"), uu = Symbol.for("react.portal"), Ko = Symbol.for("react.fragment"), Yo = Symbol.for("react.strict_mode"), Xo = Symbol.for("react.profiler"), qo = Symbol.for("react.provider"), Zo = Symbol.for("react.context"), ly = Symbol.for("react.server_context"), Jo = Symbol.for("react.forward_ref"), Qo = Symbol.for("react.suspense"), es$1 = Symbol.for("react.suspense_list"), ts = Symbol.for("react.memo"), rs = Symbol.for("react.lazy"), uy = Symbol.for("react.offscreen"), mh;
mh = Symbol.for("react.module.reference");
function Gr(rv) {
  if (typeof rv == "object" && rv !== null) {
    var tv = rv.$$typeof;
    switch (tv) {
      case lu:
        switch (rv = rv.type, rv) {
          case Ko:
          case Xo:
          case Yo:
          case Qo:
          case es$1:
            return rv;
          default:
            switch (rv = rv && rv.$$typeof, rv) {
              case ly:
              case Zo:
              case Jo:
              case rs:
              case ts:
              case qo:
                return rv;
              default:
                return tv;
            }
        }
      case uu:
        return tv;
    }
  }
}
St.ContextConsumer = Zo;
St.ContextProvider = qo;
St.Element = lu;
St.ForwardRef = Jo;
St.Fragment = Ko;
St.Lazy = rs;
St.Memo = ts;
St.Portal = uu;
St.Profiler = Xo;
St.StrictMode = Yo;
St.Suspense = Qo;
St.SuspenseList = es$1;
St.isAsyncMode = function() {
  return !1;
};
St.isConcurrentMode = function() {
  return !1;
};
St.isContextConsumer = function(rv) {
  return Gr(rv) === Zo;
};
St.isContextProvider = function(rv) {
  return Gr(rv) === qo;
};
St.isElement = function(rv) {
  return typeof rv == "object" && rv !== null && rv.$$typeof === lu;
};
St.isForwardRef = function(rv) {
  return Gr(rv) === Jo;
};
St.isFragment = function(rv) {
  return Gr(rv) === Ko;
};
St.isLazy = function(rv) {
  return Gr(rv) === rs;
};
St.isMemo = function(rv) {
  return Gr(rv) === ts;
};
St.isPortal = function(rv) {
  return Gr(rv) === uu;
};
St.isProfiler = function(rv) {
  return Gr(rv) === Xo;
};
St.isStrictMode = function(rv) {
  return Gr(rv) === Yo;
};
St.isSuspense = function(rv) {
  return Gr(rv) === Qo;
};
St.isSuspenseList = function(rv) {
  return Gr(rv) === es$1;
};
St.isValidElementType = function(rv) {
  return typeof rv == "string" || typeof rv == "function" || rv === Ko || rv === Xo || rv === Yo || rv === Qo || rv === es$1 || rv === uy || typeof rv == "object" && rv !== null && (rv.$$typeof === rs || rv.$$typeof === ts || rv.$$typeof === qo || rv.$$typeof === Zo || rv.$$typeof === Jo || rv.$$typeof === mh || rv.getModuleId !== void 0);
};
St.typeOf = Gr;
hh.exports = St;
var ph = hh.exports;
function cy(rv) {
  function tv(F1, M1, U1, H1, k1) {
    for (var Q1 = 0, Y1 = 0, r$ = 0, a$ = 0, S$, d$, x$ = 0, g$ = 0, _$, O$ = _$ = S$ = 0, E$ = 0, O1 = 0, Z1 = 0, Hv = 0, Jv = U1.length, Mv = Jv - 1, zv, Wv = "", Kv = "", c1 = "", $1 = "", N1; E$ < Jv; ) {
      if (d$ = U1.charCodeAt(E$), E$ === Mv && Y1 + a$ + r$ + Q1 !== 0 && (Y1 !== 0 && (d$ = Y1 === 47 ? 10 : 47), a$ = r$ = Q1 = 0, Jv++, Mv++), Y1 + a$ + r$ + Q1 === 0) {
        if (E$ === Mv && (0 < O1 && (Wv = Wv.replace(pv, "")), 0 < Wv.trim().length)) {
          switch (d$) {
            case 32:
            case 9:
            case 59:
            case 13:
            case 10:
              break;
            default:
              Wv += U1.charAt(E$);
          }
          d$ = 59;
        }
        switch (d$) {
          case 123:
            for (Wv = Wv.trim(), S$ = Wv.charCodeAt(0), _$ = 1, Hv = ++E$; E$ < Jv; ) {
              switch (d$ = U1.charCodeAt(E$)) {
                case 123:
                  _$++;
                  break;
                case 125:
                  _$--;
                  break;
                case 47:
                  switch (d$ = U1.charCodeAt(E$ + 1)) {
                    case 42:
                    case 47:
                      e: {
                        for (O$ = E$ + 1; O$ < Mv; ++O$)
                          switch (U1.charCodeAt(O$)) {
                            case 47:
                              if (d$ === 42 && U1.charCodeAt(O$ - 1) === 42 && E$ + 2 !== O$) {
                                E$ = O$ + 1;
                                break e;
                              }
                              break;
                            case 10:
                              if (d$ === 47) {
                                E$ = O$ + 1;
                                break e;
                              }
                          }
                        E$ = O$;
                      }
                  }
                  break;
                case 91:
                  d$++;
                case 40:
                  d$++;
                case 34:
                case 39:
                  for (; E$++ < Mv && U1.charCodeAt(E$) !== d$; )
                    ;
              }
              if (_$ === 0)
                break;
              E$++;
            }
            switch (_$ = U1.substring(Hv, E$), S$ === 0 && (S$ = (Wv = Wv.replace(hv, "").trim()).charCodeAt(0)), S$) {
              case 64:
                switch (0 < O1 && (Wv = Wv.replace(pv, "")), d$ = Wv.charCodeAt(1), d$) {
                  case 100:
                  case 109:
                  case 115:
                  case 45:
                    O1 = M1;
                    break;
                  default:
                    O1 = B1;
                }
                if (_$ = tv(M1, O1, _$, d$, k1 + 1), Hv = _$.length, 0 < j1 && (O1 = ev(B1, Wv, Z1), N1 = lv(3, _$, O1, M1, L1, Xv, Hv, d$, k1, H1), Wv = O1.join(""), N1 !== void 0 && (Hv = (_$ = N1.trim()).length) === 0 && (d$ = 0, _$ = "")), 0 < Hv)
                  switch (d$) {
                    case 115:
                      Wv = Wv.replace(Lv, sv);
                    case 100:
                    case 109:
                    case 45:
                      _$ = Wv + "{" + _$ + "}";
                      break;
                    case 107:
                      Wv = Wv.replace(xv, "$1 $2"), _$ = Wv + "{" + _$ + "}", _$ = Qv === 1 || Qv === 2 && av("@" + _$, 3) ? "@-webkit-" + _$ + "@" + _$ : "@" + _$;
                      break;
                    default:
                      _$ = Wv + _$, H1 === 112 && (_$ = (Kv += _$, ""));
                  }
                else
                  _$ = "";
                break;
              default:
                _$ = tv(M1, ev(M1, Wv, Z1), _$, H1, k1 + 1);
            }
            c1 += _$, _$ = Z1 = O1 = O$ = S$ = 0, Wv = "", d$ = U1.charCodeAt(++E$);
            break;
          case 125:
          case 59:
            if (Wv = (0 < O1 ? Wv.replace(pv, "") : Wv).trim(), 1 < (Hv = Wv.length))
              switch (O$ === 0 && (S$ = Wv.charCodeAt(0), S$ === 45 || 96 < S$ && 123 > S$) && (Hv = (Wv = Wv.replace(" ", ":")).length), 0 < j1 && (N1 = lv(1, Wv, M1, F1, L1, Xv, Kv.length, H1, k1, H1)) !== void 0 && (Hv = (Wv = N1.trim()).length) === 0 && (Wv = "\0\0"), S$ = Wv.charCodeAt(0), d$ = Wv.charCodeAt(1), S$) {
                case 0:
                  break;
                case 64:
                  if (d$ === 105 || d$ === 99) {
                    $1 += Wv + U1.charAt(E$);
                    break;
                  }
                default:
                  Wv.charCodeAt(Hv - 1) !== 58 && (Kv += ov(Wv, S$, d$, Wv.charCodeAt(2)));
              }
            Z1 = O1 = O$ = S$ = 0, Wv = "", d$ = U1.charCodeAt(++E$);
        }
      }
      switch (d$) {
        case 13:
        case 10:
          Y1 === 47 ? Y1 = 0 : 1 + S$ === 0 && H1 !== 107 && 0 < Wv.length && (O1 = 1, Wv += "\0"), 0 < j1 * D1 && lv(0, Wv, M1, F1, L1, Xv, Kv.length, H1, k1, H1), Xv = 1, L1++;
          break;
        case 59:
        case 125:
          if (Y1 + a$ + r$ + Q1 === 0) {
            Xv++;
            break;
          }
        default:
          switch (Xv++, zv = U1.charAt(E$), d$) {
            case 9:
            case 32:
              if (a$ + Q1 + Y1 === 0)
                switch (x$) {
                  case 44:
                  case 58:
                  case 9:
                  case 32:
                    zv = "";
                    break;
                  default:
                    d$ !== 32 && (zv = " ");
                }
              break;
            case 0:
              zv = "\\0";
              break;
            case 12:
              zv = "\\f";
              break;
            case 11:
              zv = "\\v";
              break;
            case 38:
              a$ + Y1 + Q1 === 0 && (O1 = Z1 = 1, zv = "\f" + zv);
              break;
            case 108:
              if (a$ + Y1 + Q1 + Bv === 0 && 0 < O$)
                switch (E$ - O$) {
                  case 2:
                    x$ === 112 && U1.charCodeAt(E$ - 3) === 58 && (Bv = x$);
                  case 8:
                    g$ === 111 && (Bv = g$);
                }
              break;
            case 58:
              a$ + Y1 + Q1 === 0 && (O$ = E$);
              break;
            case 44:
              Y1 + r$ + a$ + Q1 === 0 && (O1 = 1, zv += "\r");
              break;
            case 34:
            case 39:
              Y1 === 0 && (a$ = a$ === d$ ? 0 : a$ === 0 ? d$ : a$);
              break;
            case 91:
              a$ + Y1 + r$ === 0 && Q1++;
              break;
            case 93:
              a$ + Y1 + r$ === 0 && Q1--;
              break;
            case 41:
              a$ + Y1 + Q1 === 0 && r$--;
              break;
            case 40:
              if (a$ + Y1 + Q1 === 0) {
                if (S$ === 0)
                  switch (2 * x$ + 3 * g$) {
                    case 533:
                      break;
                    default:
                      S$ = 1;
                  }
                r$++;
              }
              break;
            case 64:
              Y1 + r$ + a$ + Q1 + O$ + _$ === 0 && (_$ = 1);
              break;
            case 42:
            case 47:
              if (!(0 < a$ + Q1 + r$))
                switch (Y1) {
                  case 0:
                    switch (2 * d$ + 3 * U1.charCodeAt(E$ + 1)) {
                      case 235:
                        Y1 = 47;
                        break;
                      case 220:
                        Hv = E$, Y1 = 42;
                    }
                    break;
                  case 42:
                    d$ === 47 && x$ === 42 && Hv + 2 !== E$ && (U1.charCodeAt(Hv + 2) === 33 && (Kv += U1.substring(Hv, E$ + 1)), zv = "", Y1 = 0);
                }
          }
          Y1 === 0 && (Wv += zv);
      }
      g$ = x$, x$ = d$, E$++;
    }
    if (Hv = Kv.length, 0 < Hv) {
      if (O1 = M1, 0 < j1 && (N1 = lv(2, Kv, O1, F1, L1, Xv, Hv, H1, k1, H1), N1 !== void 0 && (Kv = N1).length === 0))
        return $1 + Kv + c1;
      if (Kv = O1.join(",") + "{" + Kv + "}", Qv * Bv !== 0) {
        switch (Qv !== 2 || av(Kv, 2) || (Bv = 0), Bv) {
          case 111:
            Kv = Kv.replace(Av, ":-moz-$1") + Kv;
            break;
          case 112:
            Kv = Kv.replace(Cv, "::-webkit-input-$1") + Kv.replace(Cv, "::-moz-$1") + Kv.replace(Cv, ":-ms-input-$1") + Kv;
        }
        Bv = 0;
      }
    }
    return $1 + Kv + c1;
  }
  function ev(F1, M1, U1) {
    var H1 = M1.trim().split(Ev);
    M1 = H1;
    var k1 = H1.length, Q1 = F1.length;
    switch (Q1) {
      case 0:
      case 1:
        var Y1 = 0;
        for (F1 = Q1 === 0 ? "" : F1[0] + " "; Y1 < k1; ++Y1)
          M1[Y1] = iv(F1, M1[Y1], U1).trim();
        break;
      default:
        var r$ = Y1 = 0;
        for (M1 = []; Y1 < k1; ++Y1)
          for (var a$ = 0; a$ < Q1; ++a$)
            M1[r$++] = iv(F1[a$] + " ", H1[Y1], U1).trim();
    }
    return M1;
  }
  function iv(F1, M1, U1) {
    var H1 = M1.charCodeAt(0);
    switch (33 > H1 && (H1 = (M1 = M1.trim()).charCodeAt(0)), H1) {
      case 38:
        return M1.replace(wv, "$1" + F1.trim());
      case 58:
        return F1.trim() + M1.replace(wv, "$1" + F1.trim());
      default:
        if (0 < 1 * U1 && 0 < M1.indexOf("\f"))
          return M1.replace(wv, (F1.charCodeAt(0) === 58 ? "" : "$1") + F1.trim());
    }
    return F1 + M1;
  }
  function ov(F1, M1, U1, H1) {
    var k1 = F1 + ";", Q1 = 2 * M1 + 3 * U1 + 4 * H1;
    if (Q1 === 944) {
      F1 = k1.indexOf(":", 9) + 1;
      var Y1 = k1.substring(F1, k1.length - 1).trim();
      return Y1 = k1.substring(0, F1).trim() + Y1 + ";", Qv === 1 || Qv === 2 && av(Y1, 1) ? "-webkit-" + Y1 + Y1 : Y1;
    }
    if (Qv === 0 || Qv === 2 && !av(k1, 1))
      return k1;
    switch (Q1) {
      case 1015:
        return k1.charCodeAt(10) === 97 ? "-webkit-" + k1 + k1 : k1;
      case 951:
        return k1.charCodeAt(3) === 116 ? "-webkit-" + k1 + k1 : k1;
      case 963:
        return k1.charCodeAt(5) === 110 ? "-webkit-" + k1 + k1 : k1;
      case 1009:
        if (k1.charCodeAt(4) !== 100)
          break;
      case 969:
      case 942:
        return "-webkit-" + k1 + k1;
      case 978:
        return "-webkit-" + k1 + "-moz-" + k1 + k1;
      case 1019:
      case 983:
        return "-webkit-" + k1 + "-moz-" + k1 + "-ms-" + k1 + k1;
      case 883:
        if (k1.charCodeAt(8) === 45)
          return "-webkit-" + k1 + k1;
        if (0 < k1.indexOf("image-set(", 11))
          return k1.replace(Yv, "$1-webkit-$2") + k1;
        break;
      case 932:
        if (k1.charCodeAt(4) === 45)
          switch (k1.charCodeAt(5)) {
            case 103:
              return "-webkit-box-" + k1.replace("-grow", "") + "-webkit-" + k1 + "-ms-" + k1.replace("grow", "positive") + k1;
            case 115:
              return "-webkit-" + k1 + "-ms-" + k1.replace("shrink", "negative") + k1;
            case 98:
              return "-webkit-" + k1 + "-ms-" + k1.replace("basis", "preferred-size") + k1;
          }
        return "-webkit-" + k1 + "-ms-" + k1 + k1;
      case 964:
        return "-webkit-" + k1 + "-ms-flex-" + k1 + k1;
      case 1023:
        if (k1.charCodeAt(8) !== 99)
          break;
        return Y1 = k1.substring(k1.indexOf(":", 15)).replace("flex-", "").replace("space-between", "justify"), "-webkit-box-pack" + Y1 + "-webkit-" + k1 + "-ms-flex-pack" + Y1 + k1;
      case 1005:
        return Sv.test(k1) ? k1.replace(yv, ":-webkit-") + k1.replace(yv, ":-moz-") + k1 : k1;
      case 1e3:
        switch (Y1 = k1.substring(13).trim(), M1 = Y1.indexOf("-") + 1, Y1.charCodeAt(0) + Y1.charCodeAt(M1)) {
          case 226:
            Y1 = k1.replace(Ov, "tb");
            break;
          case 232:
            Y1 = k1.replace(Ov, "tb-rl");
            break;
          case 220:
            Y1 = k1.replace(Ov, "lr");
            break;
          default:
            return k1;
        }
        return "-webkit-" + k1 + "-ms-" + Y1 + k1;
      case 1017:
        if (k1.indexOf("sticky", 9) === -1)
          break;
      case 975:
        switch (M1 = (k1 = F1).length - 10, Y1 = (k1.charCodeAt(M1) === 33 ? k1.substring(0, M1) : k1).substring(F1.indexOf(":", 7) + 1).trim(), Q1 = Y1.charCodeAt(0) + (Y1.charCodeAt(7) | 0)) {
          case 203:
            if (111 > Y1.charCodeAt(8))
              break;
          case 115:
            k1 = k1.replace(Y1, "-webkit-" + Y1) + ";" + k1;
            break;
          case 207:
          case 102:
            k1 = k1.replace(Y1, "-webkit-" + (102 < Q1 ? "inline-" : "") + "box") + ";" + k1.replace(Y1, "-webkit-" + Y1) + ";" + k1.replace(Y1, "-ms-" + Y1 + "box") + ";" + k1;
        }
        return k1 + ";";
      case 938:
        if (k1.charCodeAt(5) === 45)
          switch (k1.charCodeAt(6)) {
            case 105:
              return Y1 = k1.replace("-items", ""), "-webkit-" + k1 + "-webkit-box-" + Y1 + "-ms-flex-" + Y1 + k1;
            case 115:
              return "-webkit-" + k1 + "-ms-flex-item-" + k1.replace(Dv, "") + k1;
            default:
              return "-webkit-" + k1 + "-ms-flex-line-pack" + k1.replace("align-content", "").replace(Dv, "") + k1;
          }
        break;
      case 973:
      case 989:
        if (k1.charCodeAt(3) !== 45 || k1.charCodeAt(4) === 122)
          break;
      case 931:
      case 953:
        if (Gv.test(F1) === !0)
          return (Y1 = F1.substring(F1.indexOf(":") + 1)).charCodeAt(0) === 115 ? ov(F1.replace("stretch", "fill-available"), M1, U1, H1).replace(":fill-available", ":stretch") : k1.replace(Y1, "-webkit-" + Y1) + k1.replace(Y1, "-moz-" + Y1.replace("fill-", "")) + k1;
        break;
      case 962:
        if (k1 = "-webkit-" + k1 + (k1.charCodeAt(5) === 102 ? "-ms-" + k1 : "") + k1, U1 + H1 === 211 && k1.charCodeAt(13) === 105 && 0 < k1.indexOf("transform", 10))
          return k1.substring(0, k1.indexOf(";", 27) + 1).replace(_v, "$1-webkit-$2") + k1;
    }
    return k1;
  }
  function av(F1, M1) {
    var U1 = F1.indexOf(M1 === 1 ? ":" : "{"), H1 = F1.substring(0, M1 !== 3 ? U1 : 10);
    return U1 = F1.substring(U1 + 1, F1.length - 1), P1(M1 !== 2 ? H1 : H1.replace(Vv, "$1"), U1, M1);
  }
  function sv(F1, M1) {
    var U1 = ov(M1, M1.charCodeAt(0), M1.charCodeAt(1), M1.charCodeAt(2));
    return U1 !== M1 + ";" ? U1.replace(jv, " or ($1)").substring(4) : "(" + M1 + ")";
  }
  function lv(F1, M1, U1, H1, k1, Q1, Y1, r$, a$, S$) {
    for (var d$ = 0, x$ = M1, g$; d$ < j1; ++d$)
      switch (g$ = K1[d$].call(dv, F1, x$, U1, H1, k1, Q1, Y1, r$, a$, S$)) {
        case void 0:
        case !1:
        case !0:
        case null:
          break;
        default:
          x$ = g$;
      }
    if (x$ !== M1)
      return x$;
  }
  function uv(F1) {
    switch (F1) {
      case void 0:
      case null:
        j1 = K1.length = 0;
        break;
      default:
        if (typeof F1 == "function")
          K1[j1++] = F1;
        else if (typeof F1 == "object")
          for (var M1 = 0, U1 = F1.length; M1 < U1; ++M1)
            uv(F1[M1]);
        else
          D1 = !!F1 | 0;
    }
    return uv;
  }
  function cv(F1) {
    return F1 = F1.prefix, F1 !== void 0 && (P1 = null, F1 ? typeof F1 != "function" ? Qv = 1 : (Qv = 2, P1 = F1) : Qv = 0), cv;
  }
  function dv(F1, M1) {
    var U1 = F1;
    if (33 > U1.charCodeAt(0) && (U1 = U1.trim()), I1 = U1, U1 = [I1], 0 < j1) {
      var H1 = lv(-1, M1, U1, U1, L1, Xv, 0, 0, 0, 0);
      H1 !== void 0 && typeof H1 == "string" && (M1 = H1);
    }
    var k1 = tv(B1, U1, M1, 0, 0);
    return 0 < j1 && (H1 = lv(-2, k1, U1, U1, L1, Xv, k1.length, 0, 0, 0), H1 !== void 0 && (k1 = H1)), I1 = "", Bv = 0, Xv = L1 = 1, k1;
  }
  var hv = /^\0+/g, pv = /[\0\r\f]/g, yv = /: */g, Sv = /zoo|gra/, _v = /([,: ])(transform)/g, Ev = /,\r+?/g, wv = /([\t\r\n ])*\f?&/g, xv = /@(k\w+)\s*(\S*)\s*/, Cv = /::(place)/g, Av = /:(read-only)/g, Ov = /[svh]\w+-[tblr]{2}/, Lv = /\(\s*(.*)\s*\)/g, jv = /([\s\S]*?);/g, Dv = /-self|flex-/g, Vv = /[^]*?(:[rp][el]a[\w-]+)[^]*/, Gv = /stretch|:\s*\w+\-(?:conte|avail)/, Yv = /([^-])(image-set\()/, Xv = 1, L1 = 1, Bv = 0, Qv = 1, B1 = [], K1 = [], j1 = 0, P1 = null, D1 = 0, I1 = "";
  return dv.use = uv, dv.set = cv, rv !== void 0 && cv(rv), dv;
}
var dy = {
  animationIterationCount: 1,
  borderImageOutset: 1,
  borderImageSlice: 1,
  borderImageWidth: 1,
  boxFlex: 1,
  boxFlexGroup: 1,
  boxOrdinalGroup: 1,
  columnCount: 1,
  columns: 1,
  flex: 1,
  flexGrow: 1,
  flexPositive: 1,
  flexShrink: 1,
  flexNegative: 1,
  flexOrder: 1,
  gridRow: 1,
  gridRowEnd: 1,
  gridRowSpan: 1,
  gridRowStart: 1,
  gridColumn: 1,
  gridColumnEnd: 1,
  gridColumnSpan: 1,
  gridColumnStart: 1,
  msGridRow: 1,
  msGridRowSpan: 1,
  msGridColumn: 1,
  msGridColumnSpan: 1,
  fontWeight: 1,
  lineHeight: 1,
  opacity: 1,
  order: 1,
  orphans: 1,
  tabSize: 1,
  widows: 1,
  zIndex: 1,
  zoom: 1,
  WebkitLineClamp: 1,
  // SVG-related properties
  fillOpacity: 1,
  floodOpacity: 1,
  stopOpacity: 1,
  strokeDasharray: 1,
  strokeDashoffset: 1,
  strokeMiterlimit: 1,
  strokeOpacity: 1,
  strokeWidth: 1
};
function fy(rv) {
  var tv = /* @__PURE__ */ Object.create(null);
  return function(ev) {
    return tv[ev] === void 0 && (tv[ev] = rv(ev)), tv[ev];
  };
}
var hy = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/, Bc = /* @__PURE__ */ fy(
  function(rv) {
    return hy.test(rv) || rv.charCodeAt(0) === 111 && rv.charCodeAt(1) === 110 && rv.charCodeAt(2) < 91;
  }
  /* Z+1 */
), gh = { exports: {} }, At = {};
/** @license React v16.13.1
 * react-is.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var rr = typeof Symbol == "function" && Symbol.for, cu = rr ? Symbol.for("react.element") : 60103, du = rr ? Symbol.for("react.portal") : 60106, ns = rr ? Symbol.for("react.fragment") : 60107, is = rr ? Symbol.for("react.strict_mode") : 60108, as = rr ? Symbol.for("react.profiler") : 60114, os = rr ? Symbol.for("react.provider") : 60109, ss = rr ? Symbol.for("react.context") : 60110, fu = rr ? Symbol.for("react.async_mode") : 60111, ls = rr ? Symbol.for("react.concurrent_mode") : 60111, us = rr ? Symbol.for("react.forward_ref") : 60112, cs = rr ? Symbol.for("react.suspense") : 60113, my = rr ? Symbol.for("react.suspense_list") : 60120, ds = rr ? Symbol.for("react.memo") : 60115, fs = rr ? Symbol.for("react.lazy") : 60116, py = rr ? Symbol.for("react.block") : 60121, gy = rr ? Symbol.for("react.fundamental") : 60117, vy = rr ? Symbol.for("react.responder") : 60118, by = rr ? Symbol.for("react.scope") : 60119;
function Br(rv) {
  if (typeof rv == "object" && rv !== null) {
    var tv = rv.$$typeof;
    switch (tv) {
      case cu:
        switch (rv = rv.type, rv) {
          case fu:
          case ls:
          case ns:
          case as:
          case is:
          case cs:
            return rv;
          default:
            switch (rv = rv && rv.$$typeof, rv) {
              case ss:
              case us:
              case fs:
              case ds:
              case os:
                return rv;
              default:
                return tv;
            }
        }
      case du:
        return tv;
    }
  }
}
function vh(rv) {
  return Br(rv) === ls;
}
At.AsyncMode = fu;
At.ConcurrentMode = ls;
At.ContextConsumer = ss;
At.ContextProvider = os;
At.Element = cu;
At.ForwardRef = us;
At.Fragment = ns;
At.Lazy = fs;
At.Memo = ds;
At.Portal = du;
At.Profiler = as;
At.StrictMode = is;
At.Suspense = cs;
At.isAsyncMode = function(rv) {
  return vh(rv) || Br(rv) === fu;
};
At.isConcurrentMode = vh;
At.isContextConsumer = function(rv) {
  return Br(rv) === ss;
};
At.isContextProvider = function(rv) {
  return Br(rv) === os;
};
At.isElement = function(rv) {
  return typeof rv == "object" && rv !== null && rv.$$typeof === cu;
};
At.isForwardRef = function(rv) {
  return Br(rv) === us;
};
At.isFragment = function(rv) {
  return Br(rv) === ns;
};
At.isLazy = function(rv) {
  return Br(rv) === fs;
};
At.isMemo = function(rv) {
  return Br(rv) === ds;
};
At.isPortal = function(rv) {
  return Br(rv) === du;
};
At.isProfiler = function(rv) {
  return Br(rv) === as;
};
At.isStrictMode = function(rv) {
  return Br(rv) === is;
};
At.isSuspense = function(rv) {
  return Br(rv) === cs;
};
At.isValidElementType = function(rv) {
  return typeof rv == "string" || typeof rv == "function" || rv === ns || rv === ls || rv === as || rv === is || rv === cs || rv === my || typeof rv == "object" && rv !== null && (rv.$$typeof === fs || rv.$$typeof === ds || rv.$$typeof === os || rv.$$typeof === ss || rv.$$typeof === us || rv.$$typeof === gy || rv.$$typeof === vy || rv.$$typeof === by || rv.$$typeof === py);
};
At.typeOf = Br;
gh.exports = At;
var yy = gh.exports, hu = yy, Ey = {
  childContextTypes: !0,
  contextType: !0,
  contextTypes: !0,
  defaultProps: !0,
  displayName: !0,
  getDefaultProps: !0,
  getDerivedStateFromError: !0,
  getDerivedStateFromProps: !0,
  mixins: !0,
  propTypes: !0,
  type: !0
}, xy = {
  name: !0,
  length: !0,
  prototype: !0,
  caller: !0,
  callee: !0,
  arguments: !0,
  arity: !0
}, wy = {
  $$typeof: !0,
  render: !0,
  defaultProps: !0,
  displayName: !0,
  propTypes: !0
}, bh = {
  $$typeof: !0,
  compare: !0,
  defaultProps: !0,
  displayName: !0,
  propTypes: !0,
  type: !0
}, mu = {};
mu[hu.ForwardRef] = wy;
mu[hu.Memo] = bh;
function Uc(rv) {
  return hu.isMemo(rv) ? bh : mu[rv.$$typeof] || Ey;
}
var Ty = Object.defineProperty, Sy = Object.getOwnPropertyNames, jc = Object.getOwnPropertySymbols, Ay = Object.getOwnPropertyDescriptor, Cy = Object.getPrototypeOf, Hc = Object.prototype;
function yh(rv, tv, ev) {
  if (typeof tv != "string") {
    if (Hc) {
      var iv = Cy(tv);
      iv && iv !== Hc && yh(rv, iv, ev);
    }
    var ov = Sy(tv);
    jc && (ov = ov.concat(jc(tv)));
    for (var av = Uc(rv), sv = Uc(tv), lv = 0; lv < ov.length; ++lv) {
      var uv = ov[lv];
      if (!xy[uv] && !(ev && ev[uv]) && !(sv && sv[uv]) && !(av && av[uv])) {
        var cv = Ay(tv, uv);
        try {
          Ty(rv, uv, cv);
        } catch {
        }
      }
    }
  }
  return rv;
}
var Ry = yh;
const _y = /* @__PURE__ */ Ci(Ry);
function pn() {
  return (pn = Object.assign || function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        Object.prototype.hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }).apply(this, arguments);
}
var Gc = function(rv, tv) {
  for (var ev = [rv[0]], iv = 0, ov = tv.length; iv < ov; iv += 1)
    ev.push(tv[iv], rv[iv + 1]);
  return ev;
}, El = function(rv) {
  return rv !== null && typeof rv == "object" && (rv.toString ? rv.toString() : Object.prototype.toString.call(rv)) === "[object Object]" && !ph.typeOf(rv);
}, Io = Object.freeze([]), kn = Object.freeze({});
function ha(rv) {
  return typeof rv == "function";
}
function zc(rv) {
  return rv.displayName || rv.name || "Component";
}
function pu(rv) {
  return rv && typeof rv.styledComponentId == "string";
}
var bi = typeof process < "u" && process.env !== void 0 && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || "data-styled", gu = typeof window < "u" && "HTMLElement" in window, Iy = !!(typeof SC_DISABLE_SPEEDY == "boolean" ? SC_DISABLE_SPEEDY : typeof process < "u" && process.env !== void 0 && (process.env.REACT_APP_SC_DISABLE_SPEEDY !== void 0 && process.env.REACT_APP_SC_DISABLE_SPEEDY !== "" ? process.env.REACT_APP_SC_DISABLE_SPEEDY !== "false" && process.env.REACT_APP_SC_DISABLE_SPEEDY : process.env.SC_DISABLE_SPEEDY !== void 0 && process.env.SC_DISABLE_SPEEDY !== "" && process.env.SC_DISABLE_SPEEDY !== "false" && process.env.SC_DISABLE_SPEEDY));
function Sa(rv) {
  for (var tv = arguments.length, ev = new Array(tv > 1 ? tv - 1 : 0), iv = 1; iv < tv; iv++)
    ev[iv - 1] = arguments[iv];
  throw new Error("An error occurred. See https://git.io/JUIaE#" + rv + " for more information." + (ev.length > 0 ? " Args: " + ev.join(", ") : ""));
}
var Py = function() {
  function rv(ev) {
    this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = ev;
  }
  var tv = rv.prototype;
  return tv.indexOfGroup = function(ev) {
    for (var iv = 0, ov = 0; ov < ev; ov++)
      iv += this.groupSizes[ov];
    return iv;
  }, tv.insertRules = function(ev, iv) {
    if (ev >= this.groupSizes.length) {
      for (var ov = this.groupSizes, av = ov.length, sv = av; ev >= sv; )
        (sv <<= 1) < 0 && Sa(16, "" + ev);
      this.groupSizes = new Uint32Array(sv), this.groupSizes.set(ov), this.length = sv;
      for (var lv = av; lv < sv; lv++)
        this.groupSizes[lv] = 0;
    }
    for (var uv = this.indexOfGroup(ev + 1), cv = 0, dv = iv.length; cv < dv; cv++)
      this.tag.insertRule(uv, iv[cv]) && (this.groupSizes[ev]++, uv++);
  }, tv.clearGroup = function(ev) {
    if (ev < this.length) {
      var iv = this.groupSizes[ev], ov = this.indexOfGroup(ev), av = ov + iv;
      this.groupSizes[ev] = 0;
      for (var sv = ov; sv < av; sv++)
        this.tag.deleteRule(ov);
    }
  }, tv.getGroup = function(ev) {
    var iv = "";
    if (ev >= this.length || this.groupSizes[ev] === 0)
      return iv;
    for (var ov = this.groupSizes[ev], av = this.indexOfGroup(ev), sv = av + ov, lv = av; lv < sv; lv++)
      iv += this.tag.getRule(lv) + `/*!sc*/
`;
    return iv;
  }, rv;
}(), yo = /* @__PURE__ */ new Map(), Po = /* @__PURE__ */ new Map(), aa = 1, qa = function(rv) {
  if (yo.has(rv))
    return yo.get(rv);
  for (; Po.has(aa); )
    aa++;
  var tv = aa++;
  return yo.set(rv, tv), Po.set(tv, rv), tv;
}, Oy = function(rv) {
  return Po.get(rv);
}, Ly = function(rv, tv) {
  tv >= aa && (aa = tv + 1), yo.set(rv, tv), Po.set(tv, rv);
}, ky = "style[" + bi + '][data-styled-version="5.3.11"]', Dy = new RegExp("^" + bi + '\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'), Ny = function(rv, tv, ev) {
  for (var iv, ov = ev.split(","), av = 0, sv = ov.length; av < sv; av++)
    (iv = ov[av]) && rv.registerName(tv, iv);
}, Fy = function(rv, tv) {
  for (var ev = (tv.textContent || "").split(`/*!sc*/
`), iv = [], ov = 0, av = ev.length; ov < av; ov++) {
    var sv = ev[ov].trim();
    if (sv) {
      var lv = sv.match(Dy);
      if (lv) {
        var uv = 0 | parseInt(lv[1], 10), cv = lv[2];
        uv !== 0 && (Ly(cv, uv), Ny(rv, cv, lv[3]), rv.getTag().insertRules(uv, iv)), iv.length = 0;
      } else
        iv.push(sv);
    }
  }
}, My = function() {
  return typeof __webpack_nonce__ < "u" ? __webpack_nonce__ : null;
}, Eh = function(rv) {
  var tv = document.head, ev = rv || tv, iv = document.createElement("style"), ov = function(lv) {
    for (var uv = lv.childNodes, cv = uv.length; cv >= 0; cv--) {
      var dv = uv[cv];
      if (dv && dv.nodeType === 1 && dv.hasAttribute(bi))
        return dv;
    }
  }(ev), av = ov !== void 0 ? ov.nextSibling : null;
  iv.setAttribute(bi, "active"), iv.setAttribute("data-styled-version", "5.3.11");
  var sv = My();
  return sv && iv.setAttribute("nonce", sv), ev.insertBefore(iv, av), iv;
}, $y = function() {
  function rv(ev) {
    var iv = this.element = Eh(ev);
    iv.appendChild(document.createTextNode("")), this.sheet = function(ov) {
      if (ov.sheet)
        return ov.sheet;
      for (var av = document.styleSheets, sv = 0, lv = av.length; sv < lv; sv++) {
        var uv = av[sv];
        if (uv.ownerNode === ov)
          return uv;
      }
      Sa(17);
    }(iv), this.length = 0;
  }
  var tv = rv.prototype;
  return tv.insertRule = function(ev, iv) {
    try {
      return this.sheet.insertRule(iv, ev), this.length++, !0;
    } catch {
      return !1;
    }
  }, tv.deleteRule = function(ev) {
    this.sheet.deleteRule(ev), this.length--;
  }, tv.getRule = function(ev) {
    var iv = this.sheet.cssRules[ev];
    return iv !== void 0 && typeof iv.cssText == "string" ? iv.cssText : "";
  }, rv;
}(), By = function() {
  function rv(ev) {
    var iv = this.element = Eh(ev);
    this.nodes = iv.childNodes, this.length = 0;
  }
  var tv = rv.prototype;
  return tv.insertRule = function(ev, iv) {
    if (ev <= this.length && ev >= 0) {
      var ov = document.createTextNode(iv), av = this.nodes[ev];
      return this.element.insertBefore(ov, av || null), this.length++, !0;
    }
    return !1;
  }, tv.deleteRule = function(ev) {
    this.element.removeChild(this.nodes[ev]), this.length--;
  }, tv.getRule = function(ev) {
    return ev < this.length ? this.nodes[ev].textContent : "";
  }, rv;
}(), Uy = function() {
  function rv(ev) {
    this.rules = [], this.length = 0;
  }
  var tv = rv.prototype;
  return tv.insertRule = function(ev, iv) {
    return ev <= this.length && (this.rules.splice(ev, 0, iv), this.length++, !0);
  }, tv.deleteRule = function(ev) {
    this.rules.splice(ev, 1), this.length--;
  }, tv.getRule = function(ev) {
    return ev < this.length ? this.rules[ev] : "";
  }, rv;
}(), Vc = gu, jy = { isServer: !gu, useCSSOMInjection: !Iy }, xh = function() {
  function rv(ev, iv, ov) {
    ev === void 0 && (ev = kn), iv === void 0 && (iv = {}), this.options = pn({}, jy, {}, ev), this.gs = iv, this.names = new Map(ov), this.server = !!ev.isServer, !this.server && gu && Vc && (Vc = !1, function(av) {
      for (var sv = document.querySelectorAll(ky), lv = 0, uv = sv.length; lv < uv; lv++) {
        var cv = sv[lv];
        cv && cv.getAttribute(bi) !== "active" && (Fy(av, cv), cv.parentNode && cv.parentNode.removeChild(cv));
      }
    }(this));
  }
  rv.registerId = function(ev) {
    return qa(ev);
  };
  var tv = rv.prototype;
  return tv.reconstructWithOptions = function(ev, iv) {
    return iv === void 0 && (iv = !0), new rv(pn({}, this.options, {}, ev), this.gs, iv && this.names || void 0);
  }, tv.allocateGSInstance = function(ev) {
    return this.gs[ev] = (this.gs[ev] || 0) + 1;
  }, tv.getTag = function() {
    return this.tag || (this.tag = (ov = (iv = this.options).isServer, av = iv.useCSSOMInjection, sv = iv.target, ev = ov ? new Uy(sv) : av ? new $y(sv) : new By(sv), new Py(ev)));
    var ev, iv, ov, av, sv;
  }, tv.hasNameForId = function(ev, iv) {
    return this.names.has(ev) && this.names.get(ev).has(iv);
  }, tv.registerName = function(ev, iv) {
    if (qa(ev), this.names.has(ev))
      this.names.get(ev).add(iv);
    else {
      var ov = /* @__PURE__ */ new Set();
      ov.add(iv), this.names.set(ev, ov);
    }
  }, tv.insertRules = function(ev, iv, ov) {
    this.registerName(ev, iv), this.getTag().insertRules(qa(ev), ov);
  }, tv.clearNames = function(ev) {
    this.names.has(ev) && this.names.get(ev).clear();
  }, tv.clearRules = function(ev) {
    this.getTag().clearGroup(qa(ev)), this.clearNames(ev);
  }, tv.clearTag = function() {
    this.tag = void 0;
  }, tv.toString = function() {
    return function(ev) {
      for (var iv = ev.getTag(), ov = iv.length, av = "", sv = 0; sv < ov; sv++) {
        var lv = Oy(sv);
        if (lv !== void 0) {
          var uv = ev.names.get(lv), cv = iv.getGroup(sv);
          if (uv && cv && uv.size) {
            var dv = bi + ".g" + sv + '[id="' + lv + '"]', hv = "";
            uv !== void 0 && uv.forEach(function(pv) {
              pv.length > 0 && (hv += pv + ",");
            }), av += "" + cv + dv + '{content:"' + hv + `"}/*!sc*/
`;
          }
        }
      }
      return av;
    }(this);
  }, rv;
}(), Hy = /(a)(d)/gi, Wc = function(rv) {
  return String.fromCharCode(rv + (rv > 25 ? 39 : 97));
};
function xl(rv) {
  var tv, ev = "";
  for (tv = Math.abs(rv); tv > 52; tv = tv / 52 | 0)
    ev = Wc(tv % 52) + ev;
  return (Wc(tv % 52) + ev).replace(Hy, "$1-$2");
}
var fi = function(rv, tv) {
  for (var ev = tv.length; ev; )
    rv = 33 * rv ^ tv.charCodeAt(--ev);
  return rv;
}, wh = function(rv) {
  return fi(5381, rv);
};
function Gy(rv) {
  for (var tv = 0; tv < rv.length; tv += 1) {
    var ev = rv[tv];
    if (ha(ev) && !pu(ev))
      return !1;
  }
  return !0;
}
var zy = wh("5.3.11"), Vy = function() {
  function rv(tv, ev, iv) {
    this.rules = tv, this.staticRulesId = "", this.isStatic = (iv === void 0 || iv.isStatic) && Gy(tv), this.componentId = ev, this.baseHash = fi(zy, ev), this.baseStyle = iv, xh.registerId(ev);
  }
  return rv.prototype.generateAndInjectStyles = function(tv, ev, iv) {
    var ov = this.componentId, av = [];
    if (this.baseStyle && av.push(this.baseStyle.generateAndInjectStyles(tv, ev, iv)), this.isStatic && !iv.hash)
      if (this.staticRulesId && ev.hasNameForId(ov, this.staticRulesId))
        av.push(this.staticRulesId);
      else {
        var sv = yi(this.rules, tv, ev, iv).join(""), lv = xl(fi(this.baseHash, sv) >>> 0);
        if (!ev.hasNameForId(ov, lv)) {
          var uv = iv(sv, "." + lv, void 0, ov);
          ev.insertRules(ov, lv, uv);
        }
        av.push(lv), this.staticRulesId = lv;
      }
    else {
      for (var cv = this.rules.length, dv = fi(this.baseHash, iv.hash), hv = "", pv = 0; pv < cv; pv++) {
        var yv = this.rules[pv];
        if (typeof yv == "string")
          hv += yv;
        else if (yv) {
          var Sv = yi(yv, tv, ev, iv), _v = Array.isArray(Sv) ? Sv.join("") : Sv;
          dv = fi(dv, _v + pv), hv += _v;
        }
      }
      if (hv) {
        var Ev = xl(dv >>> 0);
        if (!ev.hasNameForId(ov, Ev)) {
          var wv = iv(hv, "." + Ev, void 0, ov);
          ev.insertRules(ov, Ev, wv);
        }
        av.push(Ev);
      }
    }
    return av.join(" ");
  }, rv;
}(), Wy = /^\s*\/\/.*$/gm, Ky = [":", "[", ".", "#"];
function Yy(rv) {
  var tv, ev, iv, ov, av = kn, sv = av.options, lv = sv === void 0 ? kn : sv, uv = av.plugins, cv = uv === void 0 ? Io : uv, dv = new cy(lv), hv = [], pv = /* @__PURE__ */ function(_v) {
    function Ev(wv) {
      if (wv)
        try {
          _v(wv + "}");
        } catch {
        }
    }
    return function(wv, xv, Cv, Av, Ov, Lv, jv, Dv, Vv, Gv) {
      switch (wv) {
        case 1:
          if (Vv === 0 && xv.charCodeAt(0) === 64)
            return _v(xv + ";"), "";
          break;
        case 2:
          if (Dv === 0)
            return xv + "/*|*/";
          break;
        case 3:
          switch (Dv) {
            case 102:
            case 112:
              return _v(Cv[0] + xv), "";
            default:
              return xv + (Gv === 0 ? "/*|*/" : "");
          }
        case -2:
          xv.split("/*|*/}").forEach(Ev);
      }
    };
  }(function(_v) {
    hv.push(_v);
  }), yv = function(_v, Ev, wv) {
    return Ev === 0 && Ky.indexOf(wv[ev.length]) !== -1 || wv.match(ov) ? _v : "." + tv;
  };
  function Sv(_v, Ev, wv, xv) {
    xv === void 0 && (xv = "&");
    var Cv = _v.replace(Wy, ""), Av = Ev && wv ? wv + " " + Ev + " { " + Cv + " }" : Cv;
    return tv = xv, ev = Ev, iv = new RegExp("\\" + ev + "\\b", "g"), ov = new RegExp("(\\" + ev + "\\b){2,}"), dv(wv || !Ev ? "" : Ev, Av);
  }
  return dv.use([].concat(cv, [function(_v, Ev, wv) {
    _v === 2 && wv.length && wv[0].lastIndexOf(ev) > 0 && (wv[0] = wv[0].replace(iv, yv));
  }, pv, function(_v) {
    if (_v === -2) {
      var Ev = hv;
      return hv = [], Ev;
    }
  }])), Sv.hash = cv.length ? cv.reduce(function(_v, Ev) {
    return Ev.name || Sa(15), fi(_v, Ev.name);
  }, 5381).toString() : "", Sv;
}
var Th = React.createContext();
Th.Consumer;
var Sh = React.createContext(), Xy = (Sh.Consumer, new xh()), wl = Yy();
function qy() {
  return reactExports.useContext(Th) || Xy;
}
function Zy() {
  return reactExports.useContext(Sh) || wl;
}
var Jy = function() {
  function rv(tv, ev) {
    var iv = this;
    this.inject = function(ov, av) {
      av === void 0 && (av = wl);
      var sv = iv.name + av.hash;
      ov.hasNameForId(iv.id, sv) || ov.insertRules(iv.id, sv, av(iv.rules, sv, "@keyframes"));
    }, this.toString = function() {
      return Sa(12, String(iv.name));
    }, this.name = tv, this.id = "sc-keyframes-" + tv, this.rules = ev;
  }
  return rv.prototype.getName = function(tv) {
    return tv === void 0 && (tv = wl), this.name + tv.hash;
  }, rv;
}(), Qy = /([A-Z])/, e1 = /([A-Z])/g, t1 = /^ms-/, r1 = function(rv) {
  return "-" + rv.toLowerCase();
};
function Kc(rv) {
  return Qy.test(rv) ? rv.replace(e1, r1).replace(t1, "-ms-") : rv;
}
var Yc = function(rv) {
  return rv == null || rv === !1 || rv === "";
};
function yi(rv, tv, ev, iv) {
  if (Array.isArray(rv)) {
    for (var ov, av = [], sv = 0, lv = rv.length; sv < lv; sv += 1)
      (ov = yi(rv[sv], tv, ev, iv)) !== "" && (Array.isArray(ov) ? av.push.apply(av, ov) : av.push(ov));
    return av;
  }
  if (Yc(rv))
    return "";
  if (pu(rv))
    return "." + rv.styledComponentId;
  if (ha(rv)) {
    if (typeof (cv = rv) != "function" || cv.prototype && cv.prototype.isReactComponent || !tv)
      return rv;
    var uv = rv(tv);
    return yi(uv, tv, ev, iv);
  }
  var cv;
  return rv instanceof Jy ? ev ? (rv.inject(ev, iv), rv.getName(iv)) : rv : El(rv) ? function dv(hv, pv) {
    var yv, Sv, _v = [];
    for (var Ev in hv)
      hv.hasOwnProperty(Ev) && !Yc(hv[Ev]) && (Array.isArray(hv[Ev]) && hv[Ev].isCss || ha(hv[Ev]) ? _v.push(Kc(Ev) + ":", hv[Ev], ";") : El(hv[Ev]) ? _v.push.apply(_v, dv(hv[Ev], Ev)) : _v.push(Kc(Ev) + ": " + (yv = Ev, (Sv = hv[Ev]) == null || typeof Sv == "boolean" || Sv === "" ? "" : typeof Sv != "number" || Sv === 0 || yv in dy || yv.startsWith("--") ? String(Sv).trim() : Sv + "px") + ";"));
    return pv ? [pv + " {"].concat(_v, ["}"]) : _v;
  }(rv) : rv.toString();
}
var Xc = function(rv) {
  return Array.isArray(rv) && (rv.isCss = !0), rv;
};
function n1(rv) {
  for (var tv = arguments.length, ev = new Array(tv > 1 ? tv - 1 : 0), iv = 1; iv < tv; iv++)
    ev[iv - 1] = arguments[iv];
  return ha(rv) || El(rv) ? Xc(yi(Gc(Io, [rv].concat(ev)))) : ev.length === 0 && rv.length === 1 && typeof rv[0] == "string" ? rv : Xc(yi(Gc(rv, ev)));
}
var i1 = function(rv, tv, ev) {
  return ev === void 0 && (ev = kn), rv.theme !== ev.theme && rv.theme || tv || ev.theme;
}, a1 = /[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g, o1 = /(^-|-$)/g;
function Bs(rv) {
  return rv.replace(a1, "-").replace(o1, "");
}
var s1 = function(rv) {
  return xl(wh(rv) >>> 0);
};
function Za(rv) {
  return typeof rv == "string" && !0;
}
var Tl = function(rv) {
  return typeof rv == "function" || typeof rv == "object" && rv !== null && !Array.isArray(rv);
}, l1 = function(rv) {
  return rv !== "__proto__" && rv !== "constructor" && rv !== "prototype";
};
function u1(rv, tv, ev) {
  var iv = rv[ev];
  Tl(tv) && Tl(iv) ? Ah(iv, tv) : rv[ev] = tv;
}
function Ah(rv) {
  for (var tv = arguments.length, ev = new Array(tv > 1 ? tv - 1 : 0), iv = 1; iv < tv; iv++)
    ev[iv - 1] = arguments[iv];
  for (var ov = 0, av = ev; ov < av.length; ov++) {
    var sv = av[ov];
    if (Tl(sv))
      for (var lv in sv)
        l1(lv) && u1(rv, sv[lv], lv);
  }
  return rv;
}
var Ch = React.createContext();
Ch.Consumer;
var Us = {};
function Rh(rv, tv, ev) {
  var iv = pu(rv), ov = !Za(rv), av = tv.attrs, sv = av === void 0 ? Io : av, lv = tv.componentId, uv = lv === void 0 ? function(xv, Cv) {
    var Av = typeof xv != "string" ? "sc" : Bs(xv);
    Us[Av] = (Us[Av] || 0) + 1;
    var Ov = Av + "-" + s1("5.3.11" + Av + Us[Av]);
    return Cv ? Cv + "-" + Ov : Ov;
  }(tv.displayName, tv.parentComponentId) : lv, cv = tv.displayName, dv = cv === void 0 ? function(xv) {
    return Za(xv) ? "styled." + xv : "Styled(" + zc(xv) + ")";
  }(rv) : cv, hv = tv.displayName && tv.componentId ? Bs(tv.displayName) + "-" + tv.componentId : tv.componentId || uv, pv = iv && rv.attrs ? Array.prototype.concat(rv.attrs, sv).filter(Boolean) : sv, yv = tv.shouldForwardProp;
  iv && rv.shouldForwardProp && (yv = tv.shouldForwardProp ? function(xv, Cv, Av) {
    return rv.shouldForwardProp(xv, Cv, Av) && tv.shouldForwardProp(xv, Cv, Av);
  } : rv.shouldForwardProp);
  var Sv, _v = new Vy(ev, hv, iv ? rv.componentStyle : void 0), Ev = _v.isStatic && sv.length === 0, wv = function(xv, Cv) {
    return function(Av, Ov, Lv, jv) {
      var Dv = Av.attrs, Vv = Av.componentStyle, Gv = Av.defaultProps, Yv = Av.foldedComponentIds, Xv = Av.shouldForwardProp, L1 = Av.styledComponentId, Bv = Av.target, Qv = function(H1, k1, Q1) {
        H1 === void 0 && (H1 = kn);
        var Y1 = pn({}, k1, { theme: H1 }), r$ = {};
        return Q1.forEach(function(a$) {
          var S$, d$, x$, g$ = a$;
          for (S$ in ha(g$) && (g$ = g$(Y1)), g$)
            Y1[S$] = r$[S$] = S$ === "className" ? (d$ = r$[S$], x$ = g$[S$], d$ && x$ ? d$ + " " + x$ : d$ || x$) : g$[S$];
        }), [Y1, r$];
      }(i1(Ov, reactExports.useContext(Ch), Gv) || kn, Ov, Dv), B1 = Qv[0], K1 = Qv[1], j1 = function(H1, k1, Q1, Y1) {
        var r$ = qy(), a$ = Zy(), S$ = k1 ? H1.generateAndInjectStyles(kn, r$, a$) : H1.generateAndInjectStyles(Q1, r$, a$);
        return S$;
      }(Vv, jv, B1), P1 = Lv, D1 = K1.$as || Ov.$as || K1.as || Ov.as || Bv, I1 = Za(D1), F1 = K1 !== Ov ? pn({}, Ov, {}, K1) : Ov, M1 = {};
      for (var U1 in F1)
        U1[0] !== "$" && U1 !== "as" && (U1 === "forwardedAs" ? M1.as = F1[U1] : (Xv ? Xv(U1, Bc, D1) : !I1 || Bc(U1)) && (M1[U1] = F1[U1]));
      return Ov.style && K1.style !== Ov.style && (M1.style = pn({}, Ov.style, {}, K1.style)), M1.className = Array.prototype.concat(Yv, L1, j1 !== L1 ? j1 : null, Ov.className, K1.className).filter(Boolean).join(" "), M1.ref = P1, reactExports.createElement(D1, M1);
    }(Sv, xv, Cv, Ev);
  };
  return wv.displayName = dv, (Sv = React.forwardRef(wv)).attrs = pv, Sv.componentStyle = _v, Sv.displayName = dv, Sv.shouldForwardProp = yv, Sv.foldedComponentIds = iv ? Array.prototype.concat(rv.foldedComponentIds, rv.styledComponentId) : Io, Sv.styledComponentId = hv, Sv.target = iv ? rv.target : rv, Sv.withComponent = function(xv) {
    var Cv = tv.componentId, Av = function(Lv, jv) {
      if (Lv == null)
        return {};
      var Dv, Vv, Gv = {}, Yv = Object.keys(Lv);
      for (Vv = 0; Vv < Yv.length; Vv++)
        Dv = Yv[Vv], jv.indexOf(Dv) >= 0 || (Gv[Dv] = Lv[Dv]);
      return Gv;
    }(tv, ["componentId"]), Ov = Cv && Cv + "-" + (Za(xv) ? xv : Bs(zc(xv)));
    return Rh(xv, pn({}, Av, { attrs: pv, componentId: Ov }), ev);
  }, Object.defineProperty(Sv, "defaultProps", { get: function() {
    return this._foldedDefaultProps;
  }, set: function(xv) {
    this._foldedDefaultProps = iv ? Ah({}, rv.defaultProps, xv) : xv;
  } }), Object.defineProperty(Sv, "toString", { value: function() {
    return "." + Sv.styledComponentId;
  } }), ov && _y(Sv, rv, { attrs: !0, componentStyle: !0, displayName: !0, foldedComponentIds: !0, shouldForwardProp: !0, styledComponentId: !0, target: !0, withComponent: !0 }), Sv;
}
var Oo = function(rv) {
  return function tv(ev, iv, ov) {
    if (ov === void 0 && (ov = kn), !ph.isValidElementType(iv))
      return Sa(1, String(iv));
    var av = function() {
      return ev(iv, ov, n1.apply(void 0, arguments));
    };
    return av.withConfig = function(sv) {
      return tv(ev, iv, pn({}, ov, {}, sv));
    }, av.attrs = function(sv) {
      return tv(ev, iv, pn({}, ov, { attrs: Array.prototype.concat(ov.attrs, sv).filter(Boolean) }));
    }, av;
  }(Rh, rv);
};
["a", "abbr", "address", "area", "article", "aside", "audio", "b", "base", "bdi", "bdo", "big", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "marquee", "menu", "menuitem", "meta", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "script", "section", "select", "small", "source", "span", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "u", "ul", "var", "video", "wbr", "circle", "clipPath", "defs", "ellipse", "foreignObject", "g", "image", "line", "linearGradient", "marker", "mask", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "svg", "text", "textPath", "tspan"].forEach(function(rv) {
  Oo[rv] = Oo(rv);
});
Oo.div`
  position: relative;
  width: 29px;
  height: 50px;
  border: 2px black solid;
  border-top-width: 2px;
  border-bottom-width: 2px;
  border-radius: 3px;
  overflow: hidden;
  min-width: 29px;
`;
Oo.div`
  width: 100%;
  height: 100%;
  background: black;
  display: flex;
  justify-content: center;
  align-items: center;
  width: ${({ isVertical: rv }) => rv ? "88px" : "100%"};
  margin-left: ${({ isVertical: rv }) => rv ? "-30px" : "0"};
  & > * {
    width: 100%;
  }
`;
const f1 = reactExports.memo(() => /* @__PURE__ */ jsxRuntimeExports.jsx(
  "svg",
  {
    width: "800px",
    height: "800px",
    viewBox: "0 0 24 24",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      "path",
      {
        d: "M4 12.6111L8.92308 17.5L20 6.5",
        stroke: "#000000",
        "stroke-width": "2",
        "stroke-linecap": "round",
        "stroke-linejoin": "round"
      }
    )
  }
)), h1 = reactExports.memo(() => /* @__PURE__ */ jsxRuntimeExports.jsx(
  "svg",
  {
    width: "800px",
    height: "800px",
    viewBox: "0 0 24 24",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      "path",
      {
        "fill-rule": "evenodd",
        "clip-rule": "evenodd",
        d: "M19.5 16.5L19.5 4.5L18.75 3.75H9L8.25 4.5L8.25 7.5L5.25 7.5L4.5 8.25V20.25L5.25 21H15L15.75 20.25V17.25H18.75L19.5 16.5ZM15.75 15.75L15.75 8.25L15 7.5L9.75 7.5V5.25L18 5.25V15.75H15.75ZM6 9L14.25 9L14.25 19.5L6 19.5L6 9Z",
        fill: "#080341"
      }
    )
  }
)), m1 = reactExports.memo(() => /* @__PURE__ */ jsxRuntimeExports.jsx(
  "svg",
  {
    id: "Capa_1",
    version: "1.1",
    viewBox: "0 0 430.1 430.1",
    xmlns: "http://www.w3.org/2000/svg",
    children: /* @__PURE__ */ jsxRuntimeExports.jsx("g", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("g", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      "path",
      {
        d: "M158.1,83.3c0,10.8,0,59.2,0,59.2h-43.4v72.4h43.4v215.2h89.1V214.9H307c0,0,5.6-34.7,8.3-72.7     c-7.8,0-67.8,0-67.8,0s0-42.1,0-49.5c0-7.4,9.7-17.4,19.3-17.4c9.6,0,29.8,0,48.6,0c0-9.9,0-43.9,0-75.4c-25,0-53.5,0-66,0     C155.9,0,158.1,72.5,158.1,83.3z",
        id: "Facebook"
      }
    ) }) })
  }
));
function _h(rv) {
  var tv, ev, iv = "";
  if (typeof rv == "string" || typeof rv == "number")
    iv += rv;
  else if (typeof rv == "object")
    if (Array.isArray(rv)) {
      var ov = rv.length;
      for (tv = 0; tv < ov; tv++)
        rv[tv] && (ev = _h(rv[tv])) && (iv && (iv += " "), iv += ev);
    } else
      for (ev in rv)
        rv[ev] && (iv && (iv += " "), iv += ev);
  return iv;
}
function hs() {
  for (var rv, tv, ev = 0, iv = "", ov = arguments.length; ev < ov; ev++)
    (rv = arguments[ev]) && (tv = _h(rv)) && (iv && (iv += " "), iv += tv);
  return iv;
}
const p1 = reactExports.memo(() => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { viewBox: "0 0 512 512", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { children: [
  /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M10.8,507.9c6.9-20.7,13.4-40.1,19.9-59.5c6.5-19.2,12.3-38.7,19.7-57.6c3.8-9.6,2.6-16.8-2.2-25.8   c-26.2-48.6-34-100.7-24.9-154.9c7.7-45.9,27.2-86.5,58.7-121C133.9,32.4,198.7,5.2,275.3,8.4c56.1,2.3,105.7,22.8,148,59.9   c39.4,34.5,65.1,77.4,77,128.4c9.6,41.1,8.5,82-3.3,122.5c-15,51.3-43.7,93.6-86.4,125.8c-59.3,44.8-125.8,58.7-198.3,44.6   c-21.8-4.2-42.6-12-62.2-22.6c-3.2-1.7-5.9-2.1-9.4-0.9c-37.2,12-74.5,23.9-111.7,35.8C23.4,503.7,17.7,505.6,10.8,507.9z    M74.1,445.2c2-0.5,2.9-0.7,3.8-1c23.3-7.4,46.6-14.9,70-22.1c2.2-0.7,5.2-0.1,7.3,0.9c10.1,5,19.8,11,30.2,15.4   c42.8,18.1,86.9,21,131.5,8.6c53.2-14.9,94-46.6,121.9-94.5c23.9-41,32.1-85.3,24.7-131.9c-9.4-59.3-39.8-105.9-90.1-139   C329.8,53,281.8,43.3,230.6,51.4c-44.1,7-81.8,27.1-112.9,59.3c-26.7,27.6-44.6,60.2-52.4,97.7c-11.1,53.7-2.9,104.5,26.9,150.8   c6,9.3,5.8,16.4,2.2,25.9C87.1,404.6,81,424.5,74.1,445.2z" }),
  /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M389.3,321.8c-0.3,19.3-9.4,34-27.8,43.2c-18.1,9-36.5,11.3-55.4,3.9c-17-6.7-34.2-13.2-50.6-21.3   c-21.6-10.7-39.3-26.7-55.5-44.4c-17.9-19.6-33.1-41.4-45.6-64.7c-8.9-16.5-14.3-34-12.4-53.2c2-20.4,11.5-36.7,27.5-49   c3.2-2.4,8-3.5,12.1-3.9c5.3-0.4,10.6,0.4,15.9,0.8c4.4,0.4,6.8,3.5,8.3,7.1c3.9,9.6,7.4,19.2,11.1,28.9c2.5,6.5,4.4,13.3,7.4,19.6   c3.7,7.8,1.4,14.3-3.4,20.3c-4.1,5.1-8.4,10-13.1,14.4c-3.9,3.7-4.6,7.5-2,12c11.5,20.5,25.5,38.9,44,53.8   c12.2,9.8,25.7,17.1,39.7,23.9c4.1,2,8.1,1.7,11.3-2c6.9-7.9,13.9-15.7,20.7-23.7c4.4-5.1,6.6-6.1,12.5-3.1   c17.1,8.6,34,17.5,51,26.4C389,313,390,316.6,389.3,321.8z" })
] }) })), g1 = reactExports.memo(() => /* @__PURE__ */ jsxRuntimeExports.jsxs(
  "svg",
  {
    xmlns: "http://www.w3.org/2000/svg",
    width: "1200",
    height: "1227",
    viewBox: "0 0 1200 1227",
    fill: "none",
    children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("g", { "clip-path": "url(#clip0_1_2)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z",
          fill: "black"
        }
      ) }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_1_2", children: /* @__PURE__ */ jsxRuntimeExports.jsx("rect", { width: "1200", height: "1227", fill: "white" }) }) })
    ]
  }
)), v1 = "_spinner_r5y0u_1", b1 = "_spin_r5y0u_1", y1 = {
  spinner: v1,
  spin: b1
}, E1 = reactExports.memo(
  ({ size: rv = "40px", color: tv = "#000" }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      className: y1.spinner,
      style: {
        width: rv,
        height: rv,
        borderColor: `${tv} ${tv} ${tv} transparent`
      }
    }
  )
), x1 = "_main_17mhp_1", w1 = "_error_17mhp_13", T1 = "_content_17mhp_18", Ja = {
  main: x1,
  error: w1,
  content: T1
};
reactExports.memo(
  ({ isValid: rv, isLoading: tv, isError: ev, children: iv }) => {
    const { t: ov } = Wo("translation", {
      keyPrefix: "ui.protectedRoute"
    });
    return tv ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: Ja.main, children: /* @__PURE__ */ jsxRuntimeExports.jsx(E1, { size: "50px" }) }) : ev ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: Ja.main, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: Ja.error, children: ov("error") }) }) : rv ? iv : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: Ja.main, children: /* @__PURE__ */ jsxRuntimeExports.jsx(sy, {}) });
  }
);
const S1 = "_button_bjib9_1", A1 = {
  button: S1
}, Eo = reactExports.memo(
  ({ icon: rv, shareUrl: tv, ariaLabel: ev }) => {
    const iv = () => {
      window.open(tv, "_blank");
    };
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      "button",
      {
        className: A1.button,
        onClick: () => iv(),
        "aria-label": ev,
        children: rv
      }
    );
  }
);
Eo.displayName = "ShareButton";
function tE(rv, tv) {
  const ev = {};
  return Object.keys(rv).forEach((iv) => {
    tv.includes(iv) || (ev[iv] = rv[iv]);
  }), ev;
}
function rE(rv, tv) {
  const ev = {};
  return tv.forEach((iv) => {
    iv in rv && (ev[iv] = rv[iv]);
  }), ev;
}
function pt(rv, tv, ev, iv) {
  if (!rv)
    return ev;
  const ov = typeof tv == "string" ? tv.split(".") : [tv];
  for (iv = 0; iv < ov.length && rv; iv += 1)
    rv = rv[ov[iv]];
  return rv === void 0 ? ev : rv;
}
function Fr(...rv) {
  return function(tv) {
    rv.some((ev) => (ev == null || ev(tv), tv == null ? void 0 : tv.defaultPrevented));
  };
}
function Fh(rv) {
  return typeof rv == "function";
}
const nE = (rv) => rv ? "" : void 0, ti = (rv) => !!rv || void 0;
function Mh() {
  return !(typeof window > "u" || !window.document || !window.document.createElement);
}
const $h = Mh();
function iE() {
  return !!Mh() && ("ontouchstart" in window || window.navigator.maxTouchPoints > 0 || pt(window.navigator, "msMaxTouchPoints", 0) > 0);
}
function td(rv) {
  return rv ? rv.ownerDocument || rv : document;
}
function aE(rv) {
  return rv.tagName === "IFRAME";
}
function Bh(rv, tv = !1) {
  const { activeElement: ev } = td(rv);
  if (!(ev != null && ev.nodeName))
    return null;
  if (aE(ev) && ev.contentDocument)
    return Bh(ev.contentDocument.body, tv);
  if (tv) {
    const iv = ev.getAttribute("aria-activedescendant");
    if (iv) {
      const ov = td(ev).getElementById(iv);
      if (ov)
        return ov;
    }
  }
  return ev;
}
function oE(rv) {
  const tv = Bh(rv);
  if (!tv)
    return !1;
  if (tv === rv)
    return !0;
  const ev = tv.getAttribute("aria-activedescendant");
  return !!ev && ev === rv.id;
}
function sE(rv, { preventScroll: tv, isActive: ev = oE } = {}) {
  return ev(rv) ? -1 : (rv.focus({ preventScroll: tv }), ev(rv) ? -1 : requestAnimationFrame(() => {
    rv.focus({ preventScroll: tv });
  }));
}
function lE(rv) {
  return React.forwardRef(rv);
}
function uE(rv) {
  if (window.queueMicrotask && typeof window.queueMicrotask == "function")
    return window.queueMicrotask(rv);
  Promise.resolve().then(rv).catch((tv) => setTimeout(() => {
    throw tv;
  }));
}
var _t = "colors", vr = "sizes", Ge = "space", cE = { gap: Ge, gridGap: Ge, columnGap: Ge, gridColumnGap: Ge, rowGap: Ge, gridRowGap: Ge, inset: Ge, insetBlock: Ge, insetBlockEnd: Ge, insetBlockStart: Ge, insetInline: Ge, insetInlineEnd: Ge, insetInlineStart: Ge, margin: Ge, marginTop: Ge, marginRight: Ge, marginBottom: Ge, marginLeft: Ge, marginBlock: Ge, marginBlockEnd: Ge, marginBlockStart: Ge, marginInline: Ge, marginInlineEnd: Ge, marginInlineStart: Ge, padding: Ge, paddingTop: Ge, paddingRight: Ge, paddingBottom: Ge, paddingLeft: Ge, paddingBlock: Ge, paddingBlockEnd: Ge, paddingBlockStart: Ge, paddingInline: Ge, paddingInlineEnd: Ge, paddingInlineStart: Ge, top: Ge, right: Ge, bottom: Ge, left: Ge, scrollMargin: Ge, scrollMarginTop: Ge, scrollMarginRight: Ge, scrollMarginBottom: Ge, scrollMarginLeft: Ge, scrollMarginX: Ge, scrollMarginY: Ge, scrollMarginBlock: Ge, scrollMarginBlockEnd: Ge, scrollMarginBlockStart: Ge, scrollMarginInline: Ge, scrollMarginInlineEnd: Ge, scrollMarginInlineStart: Ge, scrollPadding: Ge, scrollPaddingTop: Ge, scrollPaddingRight: Ge, scrollPaddingBottom: Ge, scrollPaddingLeft: Ge, scrollPaddingX: Ge, scrollPaddingY: Ge, scrollPaddingBlock: Ge, scrollPaddingBlockEnd: Ge, scrollPaddingBlockStart: Ge, scrollPaddingInline: Ge, scrollPaddingInlineEnd: Ge, scrollPaddingInlineStart: Ge, fontSize: "fontSizes", background: _t, backgroundColor: _t, backgroundImage: _t, borderImage: _t, border: _t, borderBlock: _t, borderBlockEnd: _t, borderBlockStart: _t, borderBottom: _t, borderBottomColor: _t, borderColor: _t, borderInline: _t, borderInlineEnd: _t, borderInlineStart: _t, borderLeft: _t, borderLeftColor: _t, borderRight: _t, borderRightColor: _t, borderTop: _t, borderTopColor: _t, caretColor: _t, color: _t, columnRuleColor: _t, fill: _t, outline: _t, outlineColor: _t, stroke: _t, textDecorationColor: _t, fontFamily: "fonts", fontWeight: "fontWeights", lineHeight: "lineHeights", letterSpacing: "letterSpacings", blockSize: vr, minBlockSize: vr, maxBlockSize: vr, inlineSize: vr, minInlineSize: vr, maxInlineSize: vr, width: vr, minWidth: vr, maxWidth: vr, height: vr, minHeight: vr, maxHeight: vr, flexBasis: vr, gridTemplateColumns: vr, gridTemplateRows: vr, borderWidth: "borderWidths", borderTopWidth: "borderWidths", borderRightWidth: "borderWidths", borderBottomWidth: "borderWidths", borderLeftWidth: "borderWidths", borderStyle: "borderStyles", borderTopStyle: "borderStyles", borderRightStyle: "borderStyles", borderBottomStyle: "borderStyles", borderLeftStyle: "borderStyles", borderRadius: "radii", borderTopLeftRadius: "radii", borderTopRightRadius: "radii", borderBottomRightRadius: "radii", borderBottomLeftRadius: "radii", boxShadow: "shadows", textShadow: "shadows", transition: "transitions", zIndex: "zIndices" }, dE = (rv, tv) => typeof tv == "function" ? { "()": Function.prototype.toString.call(tv) } : tv, Ri = () => {
  const rv = /* @__PURE__ */ Object.create(null);
  return (tv, ev, ...iv) => {
    const ov = ((av) => JSON.stringify(av, dE))(tv);
    return ov in rv ? rv[ov] : rv[ov] = ev(tv, ...iv);
  };
}, Jn = Symbol.for("sxs.internal"), bu = (rv, tv) => Object.defineProperties(rv, Object.getOwnPropertyDescriptors(tv)), rd = (rv) => {
  for (const tv in rv)
    return !0;
  return !1;
}, { hasOwnProperty: fE } = Object.prototype, Sl = (rv) => rv.includes("-") ? rv : rv.replace(/[A-Z]/g, (tv) => "-" + tv.toLowerCase()), hE = /\s+(?![^()]*\))/, li = (rv) => (tv) => rv(...typeof tv == "string" ? String(tv).split(hE) : [tv]), nd = { appearance: (rv) => ({ WebkitAppearance: rv, appearance: rv }), backfaceVisibility: (rv) => ({ WebkitBackfaceVisibility: rv, backfaceVisibility: rv }), backdropFilter: (rv) => ({ WebkitBackdropFilter: rv, backdropFilter: rv }), backgroundClip: (rv) => ({ WebkitBackgroundClip: rv, backgroundClip: rv }), boxDecorationBreak: (rv) => ({ WebkitBoxDecorationBreak: rv, boxDecorationBreak: rv }), clipPath: (rv) => ({ WebkitClipPath: rv, clipPath: rv }), content: (rv) => ({ content: rv.includes('"') || rv.includes("'") || /^([A-Za-z]+\([^]*|[^]*-quote|inherit|initial|none|normal|revert|unset)$/.test(rv) ? rv : `"${rv}"` }), hyphens: (rv) => ({ WebkitHyphens: rv, hyphens: rv }), maskImage: (rv) => ({ WebkitMaskImage: rv, maskImage: rv }), maskSize: (rv) => ({ WebkitMaskSize: rv, maskSize: rv }), tabSize: (rv) => ({ MozTabSize: rv, tabSize: rv }), textSizeAdjust: (rv) => ({ WebkitTextSizeAdjust: rv, textSizeAdjust: rv }), userSelect: (rv) => ({ WebkitUserSelect: rv, userSelect: rv }), marginBlock: li((rv, tv) => ({ marginBlockStart: rv, marginBlockEnd: tv || rv })), marginInline: li((rv, tv) => ({ marginInlineStart: rv, marginInlineEnd: tv || rv })), maxSize: li((rv, tv) => ({ maxBlockSize: rv, maxInlineSize: tv || rv })), minSize: li((rv, tv) => ({ minBlockSize: rv, minInlineSize: tv || rv })), paddingBlock: li((rv, tv) => ({ paddingBlockStart: rv, paddingBlockEnd: tv || rv })), paddingInline: li((rv, tv) => ({ paddingInlineStart: rv, paddingInlineEnd: tv || rv })) }, Gs = /([\d.]+)([^]*)/, mE = (rv, tv) => rv.length ? rv.reduce((ev, iv) => (ev.push(...tv.map((ov) => ov.includes("&") ? ov.replace(/&/g, /[ +>|~]/.test(iv) && /&.*&/.test(ov) ? `:is(${iv})` : iv) : iv + " " + ov)), ev), []) : tv, pE = (rv, tv) => rv in gE && typeof tv == "string" ? tv.replace(/^((?:[^]*[^\w-])?)(fit-content|stretch)((?:[^\w-][^]*)?)$/, (ev, iv, ov, av) => iv + (ov === "stretch" ? `-moz-available${av};${Sl(rv)}:${iv}-webkit-fill-available` : `-moz-fit-content${av};${Sl(rv)}:${iv}fit-content`) + av) : String(tv), gE = { blockSize: 1, height: 1, inlineSize: 1, maxBlockSize: 1, maxHeight: 1, maxInlineSize: 1, maxWidth: 1, minBlockSize: 1, minHeight: 1, minInlineSize: 1, minWidth: 1, width: 1 }, bn = (rv) => rv ? rv + "-" : "", Uh = (rv, tv, ev) => rv.replace(/([+-])?((?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?)?(\$|--)([$\w-]+)/g, (iv, ov, av, sv, lv) => sv == "$" == !!av ? iv : (ov || sv == "--" ? "calc(" : "") + "var(--" + (sv === "$" ? bn(tv) + (lv.includes("$") ? "" : bn(ev)) + lv.replace(/\$/g, "-") : lv) + ")" + (ov || sv == "--" ? "*" + (ov || "") + (av || "1") + ")" : "")), vE = /\s*,\s*(?![^()]*\))/, bE = Object.prototype.toString, hi = (rv, tv, ev, iv, ov) => {
  let av, sv, lv;
  const uv = (cv, dv, hv) => {
    let pv, yv;
    const Sv = (_v) => {
      for (pv in _v) {
        const xv = pv.charCodeAt(0) === 64, Cv = xv && Array.isArray(_v[pv]) ? _v[pv] : [_v[pv]];
        for (yv of Cv) {
          const Av = /[A-Z]/.test(wv = pv) ? wv : wv.replace(/-[^]/g, (Lv) => Lv[1].toUpperCase()), Ov = typeof yv == "object" && yv && yv.toString === bE && (!iv.utils[Av] || !dv.length);
          if (Av in iv.utils && !Ov) {
            const Lv = iv.utils[Av];
            if (Lv !== sv) {
              sv = Lv, Sv(Lv(yv)), sv = null;
              continue;
            }
          } else if (Av in nd) {
            const Lv = nd[Av];
            if (Lv !== lv) {
              lv = Lv, Sv(Lv(yv)), lv = null;
              continue;
            }
          }
          if (xv && (Ev = pv.slice(1) in iv.media ? "@media " + iv.media[pv.slice(1)] : pv, pv = Ev.replace(/\(\s*([\w-]+)\s*(=|<|<=|>|>=)\s*([\w-]+)\s*(?:(<|<=|>|>=)\s*([\w-]+)\s*)?\)/g, (Lv, jv, Dv, Vv, Gv, Yv) => {
            const Xv = Gs.test(jv), L1 = 0.0625 * (Xv ? -1 : 1), [Bv, Qv] = Xv ? [Vv, jv] : [jv, Vv];
            return "(" + (Dv[0] === "=" ? "" : Dv[0] === ">" === Xv ? "max-" : "min-") + Bv + ":" + (Dv[0] !== "=" && Dv.length === 1 ? Qv.replace(Gs, (B1, K1, j1) => Number(K1) + L1 * (Dv === ">" ? 1 : -1) + j1) : Qv) + (Gv ? ") and (" + (Gv[0] === ">" ? "min-" : "max-") + Bv + ":" + (Gv.length === 1 ? Yv.replace(Gs, (B1, K1, j1) => Number(K1) + L1 * (Gv === ">" ? -1 : 1) + j1) : Yv) : "") + ")";
          })), Ov) {
            const Lv = xv ? hv.concat(pv) : [...hv], jv = xv ? [...dv] : mE(dv, pv.split(vE));
            av !== void 0 && ov(id(...av)), av = void 0, uv(yv, jv, Lv);
          } else
            av === void 0 && (av = [[], dv, hv]), pv = xv || pv.charCodeAt(0) !== 36 ? pv : `--${bn(iv.prefix)}${pv.slice(1).replace(/\$/g, "-")}`, yv = Ov ? yv : typeof yv == "number" ? yv && Av in yE ? String(yv) + "px" : String(yv) : Uh(pE(Av, yv ?? ""), iv.prefix, iv.themeMap[Av]), av[0].push(`${xv ? `${pv} ` : `${Sl(pv)}:`}${yv}`);
        }
      }
      var Ev, wv;
    };
    Sv(cv), av !== void 0 && ov(id(...av)), av = void 0;
  };
  uv(rv, tv, ev);
}, id = (rv, tv, ev) => `${ev.map((iv) => `${iv}{`).join("")}${tv.length ? `${tv.join(",")}{` : ""}${rv.join(";")}${tv.length ? "}" : ""}${Array(ev.length ? ev.length + 1 : 0).join("}")}`, yE = { animationDelay: 1, animationDuration: 1, backgroundSize: 1, blockSize: 1, border: 1, borderBlock: 1, borderBlockEnd: 1, borderBlockEndWidth: 1, borderBlockStart: 1, borderBlockStartWidth: 1, borderBlockWidth: 1, borderBottom: 1, borderBottomLeftRadius: 1, borderBottomRightRadius: 1, borderBottomWidth: 1, borderEndEndRadius: 1, borderEndStartRadius: 1, borderInlineEnd: 1, borderInlineEndWidth: 1, borderInlineStart: 1, borderInlineStartWidth: 1, borderInlineWidth: 1, borderLeft: 1, borderLeftWidth: 1, borderRadius: 1, borderRight: 1, borderRightWidth: 1, borderSpacing: 1, borderStartEndRadius: 1, borderStartStartRadius: 1, borderTop: 1, borderTopLeftRadius: 1, borderTopRightRadius: 1, borderTopWidth: 1, borderWidth: 1, bottom: 1, columnGap: 1, columnRule: 1, columnRuleWidth: 1, columnWidth: 1, containIntrinsicSize: 1, flexBasis: 1, fontSize: 1, gap: 1, gridAutoColumns: 1, gridAutoRows: 1, gridTemplateColumns: 1, gridTemplateRows: 1, height: 1, inlineSize: 1, inset: 1, insetBlock: 1, insetBlockEnd: 1, insetBlockStart: 1, insetInline: 1, insetInlineEnd: 1, insetInlineStart: 1, left: 1, letterSpacing: 1, margin: 1, marginBlock: 1, marginBlockEnd: 1, marginBlockStart: 1, marginBottom: 1, marginInline: 1, marginInlineEnd: 1, marginInlineStart: 1, marginLeft: 1, marginRight: 1, marginTop: 1, maxBlockSize: 1, maxHeight: 1, maxInlineSize: 1, maxWidth: 1, minBlockSize: 1, minHeight: 1, minInlineSize: 1, minWidth: 1, offsetDistance: 1, offsetRotate: 1, outline: 1, outlineOffset: 1, outlineWidth: 1, overflowClipMargin: 1, padding: 1, paddingBlock: 1, paddingBlockEnd: 1, paddingBlockStart: 1, paddingBottom: 1, paddingInline: 1, paddingInlineEnd: 1, paddingInlineStart: 1, paddingLeft: 1, paddingRight: 1, paddingTop: 1, perspective: 1, right: 1, rowGap: 1, scrollMargin: 1, scrollMarginBlock: 1, scrollMarginBlockEnd: 1, scrollMarginBlockStart: 1, scrollMarginBottom: 1, scrollMarginInline: 1, scrollMarginInlineEnd: 1, scrollMarginInlineStart: 1, scrollMarginLeft: 1, scrollMarginRight: 1, scrollMarginTop: 1, scrollPadding: 1, scrollPaddingBlock: 1, scrollPaddingBlockEnd: 1, scrollPaddingBlockStart: 1, scrollPaddingBottom: 1, scrollPaddingInline: 1, scrollPaddingInlineEnd: 1, scrollPaddingInlineStart: 1, scrollPaddingLeft: 1, scrollPaddingRight: 1, scrollPaddingTop: 1, shapeMargin: 1, textDecoration: 1, textDecorationThickness: 1, textIndent: 1, textUnderlineOffset: 1, top: 1, transitionDelay: 1, transitionDuration: 1, verticalAlign: 1, width: 1, wordSpacing: 1 }, ad = (rv) => String.fromCharCode(rv + (rv > 25 ? 39 : 97)), Qn = (rv) => ((tv) => {
  let ev, iv = "";
  for (ev = Math.abs(tv); ev > 52; ev = ev / 52 | 0)
    iv = ad(ev % 52) + iv;
  return ad(ev % 52) + iv;
})(((tv, ev) => {
  let iv = ev.length;
  for (; iv; )
    tv = 33 * tv ^ ev.charCodeAt(--iv);
  return tv;
})(5381, JSON.stringify(rv)) >>> 0), ea = ["themed", "global", "styled", "onevar", "resonevar", "allvar", "inline"], EE = (rv) => {
  if (rv.href && !rv.href.startsWith(location.origin))
    return !1;
  try {
    return !!rv.cssRules;
  } catch {
    return !1;
  }
}, xE = (rv) => {
  let tv;
  const ev = () => {
    const { cssRules: ov } = tv.sheet;
    return [].map.call(ov, (av, sv) => {
      const { cssText: lv } = av;
      let uv = "";
      if (lv.startsWith("--sxs"))
        return "";
      if (ov[sv - 1] && (uv = ov[sv - 1].cssText).startsWith("--sxs")) {
        if (!av.cssRules.length)
          return "";
        for (const cv in tv.rules)
          if (tv.rules[cv].group === av)
            return `--sxs{--sxs:${[...tv.rules[cv].cache].join(" ")}}${lv}`;
        return av.cssRules.length ? `${uv}${lv}` : "";
      }
      return lv;
    }).join("");
  }, iv = () => {
    if (tv) {
      const { rules: lv, sheet: uv } = tv;
      if (!uv.deleteRule) {
        for (; Object(Object(uv.cssRules)[0]).type === 3; )
          uv.cssRules.splice(0, 1);
        uv.cssRules = [];
      }
      for (const cv in lv)
        delete lv[cv];
    }
    const ov = Object(rv).styleSheets || [];
    for (const lv of ov)
      if (EE(lv)) {
        for (let uv = 0, cv = lv.cssRules; cv[uv]; ++uv) {
          const dv = Object(cv[uv]);
          if (dv.type !== 1)
            continue;
          const hv = Object(cv[uv + 1]);
          if (hv.type !== 4)
            continue;
          ++uv;
          const { cssText: pv } = dv;
          if (!pv.startsWith("--sxs"))
            continue;
          const yv = pv.slice(14, -3).trim().split(/\s+/), Sv = ea[yv[0]];
          Sv && (tv || (tv = { sheet: lv, reset: iv, rules: {}, toString: ev }), tv.rules[Sv] = { group: hv, index: uv, cache: new Set(yv) });
        }
        if (tv)
          break;
      }
    if (!tv) {
      const lv = (uv, cv) => ({ type: cv, cssRules: [], insertRule(dv, hv) {
        this.cssRules.splice(hv, 0, lv(dv, { import: 3, undefined: 1 }[(dv.toLowerCase().match(/^@([a-z]+)/) || [])[1]] || 4));
      }, get cssText() {
        return uv === "@media{}" ? `@media{${[].map.call(this.cssRules, (dv) => dv.cssText).join("")}}` : uv;
      } });
      tv = { sheet: rv ? (rv.head || rv).appendChild(document.createElement("style")).sheet : lv("", "text/css"), rules: {}, reset: iv, toString: ev };
    }
    const { sheet: av, rules: sv } = tv;
    for (let lv = ea.length - 1; lv >= 0; --lv) {
      const uv = ea[lv];
      if (!sv[uv]) {
        const cv = ea[lv + 1], dv = sv[cv] ? sv[cv].index : av.cssRules.length;
        av.insertRule("@media{}", dv), av.insertRule(`--sxs{--sxs:${lv}}`, dv), sv[uv] = { group: av.cssRules[dv + 1], index: dv, cache: /* @__PURE__ */ new Set([lv]) };
      }
      wE(sv[uv]);
    }
  };
  return iv(), tv;
}, wE = (rv) => {
  const tv = rv.group;
  let ev = tv.cssRules.length;
  rv.apply = (iv) => {
    try {
      tv.insertRule(iv, ev), ++ev;
    } catch {
    }
  };
}, Vi = Symbol(), TE = Ri(), od = (rv, tv) => TE(rv, () => (...ev) => {
  let iv = { type: null, composers: /* @__PURE__ */ new Set() };
  for (const ov of ev)
    if (ov != null)
      if (ov[Jn]) {
        iv.type == null && (iv.type = ov[Jn].type);
        for (const av of ov[Jn].composers)
          iv.composers.add(av);
      } else
        ov.constructor !== Object || ov.$$typeof ? iv.type == null && (iv.type = ov) : iv.composers.add(SE(ov, rv));
  return iv.type == null && (iv.type = "span"), iv.composers.size || iv.composers.add(["PJLV", {}, [], [], {}, []]), AE(rv, iv, tv);
}), SE = ({ variants: rv, compoundVariants: tv, defaultVariants: ev, ...iv }, ov) => {
  const av = `${bn(ov.prefix)}c-${Qn(iv)}`, sv = [], lv = [], uv = /* @__PURE__ */ Object.create(null), cv = [];
  for (const pv in ev)
    uv[pv] = String(ev[pv]);
  if (typeof rv == "object" && rv)
    for (const pv in rv) {
      dv = uv, hv = pv, fE.call(dv, hv) || (uv[pv] = "undefined");
      const yv = rv[pv];
      for (const Sv in yv) {
        const _v = { [pv]: String(Sv) };
        String(Sv) === "undefined" && cv.push(pv);
        const Ev = yv[Sv], wv = [_v, Ev, !rd(Ev)];
        sv.push(wv);
      }
    }
  var dv, hv;
  if (typeof tv == "object" && tv)
    for (const pv of tv) {
      let { css: yv, ...Sv } = pv;
      yv = typeof yv == "object" && yv || {};
      for (const Ev in Sv)
        Sv[Ev] = String(Sv[Ev]);
      const _v = [Sv, yv, !rd(yv)];
      lv.push(_v);
    }
  return [av, iv, sv, lv, uv, cv];
}, AE = (rv, tv, ev) => {
  const [iv, ov, av, sv] = CE(tv.composers), lv = typeof tv.type == "function" || tv.type.$$typeof ? ((hv) => {
    function pv() {
      for (let yv = 0; yv < pv[Vi].length; yv++) {
        const [Sv, _v] = pv[Vi][yv];
        hv.rules[Sv].apply(_v);
      }
      return pv[Vi] = [], null;
    }
    return pv[Vi] = [], pv.rules = {}, ea.forEach((yv) => pv.rules[yv] = { apply: (Sv) => pv[Vi].push([yv, Sv]) }), pv;
  })(ev) : null, uv = (lv || ev).rules, cv = `.${iv}${ov.length > 1 ? `:where(.${ov.slice(1).join(".")})` : ""}`, dv = (hv) => {
    hv = typeof hv == "object" && hv || RE;
    const { css: pv, ...yv } = hv, Sv = {};
    for (const wv in av)
      if (delete yv[wv], wv in hv) {
        let xv = hv[wv];
        typeof xv == "object" && xv ? Sv[wv] = { "@initial": av[wv], ...xv } : (xv = String(xv), Sv[wv] = xv !== "undefined" || sv.has(wv) ? xv : av[wv]);
      } else
        Sv[wv] = av[wv];
    const _v = /* @__PURE__ */ new Set([...ov]);
    for (const [wv, xv, Cv, Av] of tv.composers) {
      ev.rules.styled.cache.has(wv) || (ev.rules.styled.cache.add(wv), hi(xv, [`.${wv}`], [], rv, (jv) => {
        uv.styled.apply(jv);
      }));
      const Ov = sd(Cv, Sv, rv.media), Lv = sd(Av, Sv, rv.media, !0);
      for (const jv of Ov)
        if (jv !== void 0)
          for (const [Dv, Vv, Gv] of jv) {
            const Yv = `${wv}-${Qn(Vv)}-${Dv}`;
            _v.add(Yv);
            const Xv = (Gv ? ev.rules.resonevar : ev.rules.onevar).cache, L1 = Gv ? uv.resonevar : uv.onevar;
            Xv.has(Yv) || (Xv.add(Yv), hi(Vv, [`.${Yv}`], [], rv, (Bv) => {
              L1.apply(Bv);
            }));
          }
      for (const jv of Lv)
        if (jv !== void 0)
          for (const [Dv, Vv] of jv) {
            const Gv = `${wv}-${Qn(Vv)}-${Dv}`;
            _v.add(Gv), ev.rules.allvar.cache.has(Gv) || (ev.rules.allvar.cache.add(Gv), hi(Vv, [`.${Gv}`], [], rv, (Yv) => {
              uv.allvar.apply(Yv);
            }));
          }
    }
    if (typeof pv == "object" && pv) {
      const wv = `${iv}-i${Qn(pv)}-css`;
      _v.add(wv), ev.rules.inline.cache.has(wv) || (ev.rules.inline.cache.add(wv), hi(pv, [`.${wv}`], [], rv, (xv) => {
        uv.inline.apply(xv);
      }));
    }
    for (const wv of String(hv.className || "").trim().split(/\s+/))
      wv && _v.add(wv);
    const Ev = yv.className = [..._v].join(" ");
    return { type: tv.type, className: Ev, selector: cv, props: yv, toString: () => Ev, deferredInjector: lv };
  };
  return bu(dv, { className: iv, selector: cv, [Jn]: tv, toString: () => (ev.rules.styled.cache.has(iv) || dv(), iv) });
}, CE = (rv) => {
  let tv = "";
  const ev = [], iv = {}, ov = [];
  for (const [av, , , , sv, lv] of rv) {
    tv === "" && (tv = av), ev.push(av), ov.push(...lv);
    for (const uv in sv) {
      const cv = sv[uv];
      (iv[uv] === void 0 || cv !== "undefined" || lv.includes(cv)) && (iv[uv] = cv);
    }
  }
  return [tv, ev, iv, new Set(ov)];
}, sd = (rv, tv, ev, iv) => {
  const ov = [];
  e:
    for (let [av, sv, lv] of rv) {
      if (lv)
        continue;
      let uv, cv = 0, dv = !1;
      for (uv in av) {
        const hv = av[uv];
        let pv = tv[uv];
        if (pv !== hv) {
          if (typeof pv != "object" || !pv)
            continue e;
          {
            let yv, Sv, _v = 0;
            for (const Ev in pv) {
              if (hv === String(pv[Ev])) {
                if (Ev !== "@initial") {
                  const wv = Ev.slice(1);
                  (Sv = Sv || []).push(wv in ev ? ev[wv] : Ev.replace(/^@media ?/, "")), dv = !0;
                }
                cv += _v, yv = !0;
              }
              ++_v;
            }
            if (Sv && Sv.length && (sv = { ["@media " + Sv.join(", ")]: sv }), !yv)
              continue e;
          }
        }
      }
      (ov[cv] = ov[cv] || []).push([iv ? "cv" : `${uv}-${av[uv]}`, sv, dv]);
    }
  return ov;
}, RE = {}, _E = Ri(), IE = (rv, tv) => _E(rv, () => (...ev) => {
  const iv = () => {
    for (let ov of ev) {
      ov = typeof ov == "object" && ov || {};
      let av = Qn(ov);
      if (!tv.rules.global.cache.has(av)) {
        if (tv.rules.global.cache.add(av), "@import" in ov) {
          let sv = [].indexOf.call(tv.sheet.cssRules, tv.rules.themed.group) - 1;
          for (let lv of [].concat(ov["@import"]))
            lv = lv.includes('"') || lv.includes("'") ? lv : `"${lv}"`, tv.sheet.insertRule(`@import ${lv};`, sv++);
          delete ov["@import"];
        }
        hi(ov, [], [], rv, (sv) => {
          tv.rules.global.apply(sv);
        });
      }
    }
    return "";
  };
  return bu(iv, { toString: iv });
}), PE = Ri(), OE = (rv, tv) => PE(rv, () => (ev) => {
  const iv = `${bn(rv.prefix)}k-${Qn(ev)}`, ov = () => {
    if (!tv.rules.global.cache.has(iv)) {
      tv.rules.global.cache.add(iv);
      const av = [];
      hi(ev, [], [], rv, (lv) => av.push(lv));
      const sv = `@keyframes ${iv}{${av.join("")}}`;
      tv.rules.global.apply(sv);
    }
    return iv;
  };
  return bu(ov, { get name() {
    return ov();
  }, toString: ov });
}), LE = class {
  constructor(rv, tv, ev, iv) {
    this.token = rv == null ? "" : String(rv), this.value = tv == null ? "" : String(tv), this.scale = ev == null ? "" : String(ev), this.prefix = iv == null ? "" : String(iv);
  }
  get computedValue() {
    return "var(" + this.variable + ")";
  }
  get variable() {
    return "--" + bn(this.prefix) + bn(this.scale) + this.token;
  }
  toString() {
    return this.computedValue;
  }
}, kE = Ri(), DE = (rv, tv) => kE(rv, () => (ev, iv) => {
  iv = typeof ev == "object" && ev || Object(iv);
  const ov = `.${ev = (ev = typeof ev == "string" ? ev : "") || `${bn(rv.prefix)}t-${Qn(iv)}`}`, av = {}, sv = [];
  for (const uv in iv) {
    av[uv] = {};
    for (const cv in iv[uv]) {
      const dv = `--${bn(rv.prefix)}${uv}-${cv}`, hv = Uh(String(iv[uv][cv]), rv.prefix, uv);
      av[uv][cv] = new LE(cv, hv, uv, rv.prefix), sv.push(`${dv}:${hv}`);
    }
  }
  const lv = () => {
    if (sv.length && !tv.rules.themed.cache.has(ev)) {
      tv.rules.themed.cache.add(ev);
      const uv = `${iv === rv.theme ? ":root," : ""}.${ev}{${sv.join(";")}}`;
      tv.rules.themed.apply(uv);
    }
    return ev;
  };
  return { ...av, get className() {
    return lv();
  }, selector: ov, toString: lv };
}), NE = Ri(), FE = Ri(), ME = (rv) => {
  const tv = ((ev) => {
    let iv = !1;
    const ov = NE(ev, (av) => {
      iv = !0;
      const sv = "prefix" in (av = typeof av == "object" && av || {}) ? String(av.prefix) : "", lv = typeof av.media == "object" && av.media || {}, uv = typeof av.root == "object" ? av.root || null : globalThis.document || null, cv = typeof av.theme == "object" && av.theme || {}, dv = { prefix: sv, media: lv, theme: cv, themeMap: typeof av.themeMap == "object" && av.themeMap || { ...cE }, utils: typeof av.utils == "object" && av.utils || {} }, hv = xE(uv), pv = { css: od(dv, hv), globalCss: IE(dv, hv), keyframes: OE(dv, hv), createTheme: DE(dv, hv), reset() {
        hv.reset(), pv.theme.toString();
      }, theme: {}, sheet: hv, config: dv, prefix: sv, getCssText: hv.toString, toString: hv.toString };
      return String(pv.theme = pv.createTheme(cv)), pv;
    });
    return iv || ov.reset(), ov;
  })(rv);
  return tv.styled = (({ config: ev, sheet: iv }) => FE(ev, () => {
    const ov = od(ev, iv);
    return (...av) => {
      const sv = ov(...av), lv = sv[Jn].type, uv = React.forwardRef((cv, dv) => {
        const hv = cv && cv.as || lv, { props: pv, deferredInjector: yv } = sv(cv);
        return delete pv.as, pv.ref = dv, yv ? React.createElement(React.Fragment, null, React.createElement(hv, pv), React.createElement(yv, null)) : React.createElement(hv, pv);
      });
      return uv.className = sv.className, uv.displayName = `Styled.${lv.displayName || lv.name || lv}`, uv.selector = sv.selector, uv.toString = () => sv.selector, uv[Jn] = sv[Jn], uv;
    };
  }))(tv), tv;
};
const Le = { transparent: "transparent", white: "#FFFFFF", black: "#000000", blue05: "#F1F4FC", blue10: "#DDE5F7", blue20: "#BBCBF0", blue30: "#96B2F2", blue40: "#2953B2", blue50: "#20408C", blue60: "#172F66", lightBlue05: "#EDF5FB", lightBlue10: "#DEECF7", lightBlue20: "#B9DAF3", lightBlue30: "#7CBBEA", lightBlue40: "#2978B5", lightBlue50: "#216090", lightBlue60: "#143C5C", red05: "#FBF2F2", red10: "#F8E3E3", red20: "#EDBABA", red30: "#F49494", red40: "#CC3D3D", red50: "#962828", red60: "#782020", green05: "#ECF7EC", green10: "#DFF1E0", green20: "#AEDDB0", green30: "#83D187", green40: "#38853C", green50: "#285F2B", green60: "#1C431E", orange05: "#FFF5EC", orange10: "#FFEBD7", orange20: "#FFCD9B", orange30: "#F5AE70", orange40: "#D56A00", orange50: "#A65200", orange60: "#5C2C00", cyan05: "#EFF9FB", cyan10: "#D5EFF4", cyan20: "#A4DEE9", cyan30: "#63CBDB", cyan40: "#1C99A8", cyan50: "#207883", cyan60: "#093F46", purple05: "#F6F3FA", purple10: "#EDE8F4", purple20: "#D3C4E4", purple30: "#C6A5EA", purple40: "#835AB3", purple50: "#684391", purple60: "#462D63", pink05: "#FBF2F5", pink10: "#F5E0E7", pink20: "#EAB2C4", pink30: "#F48AAB", pink40: "#DA3561", pink50: "#B1204B", pink60: "#850D35", teal05: "#E8F7F3", teal10: "#CDEFE7", teal20: "#A6E0D2", teal30: "#66CBB7", teal40: "#007969", teal50: "#006053", teal60: "#00463C", gray05: "#F4F4F4", gray10: "#E6E6E6", gray20: "#DDDDDD", gray30: "#B9B9B9", gray40: "#747474", gray50: "#545454", gray60: "#3B3B3B", grayTransparent05: "rgba(0, 0, 0, 0.05)", grayTransparent10: "rgba(0, 0, 0, 0.1)", grayTransparent20: "rgba(0, 0, 0, 0.2)", grayTransparent30: "rgba(0, 0, 0, 0.3)", grayTransparent40: "rgba(0, 0, 0, 0.4)", grayTransparent50: "rgba(0, 0, 0, 0.5)", grayTransparent60: "rgba(0, 0, 0, 0.6)", grayTransparent70: "rgba(0, 0, 0, 0.7)", grayTransparent80: "rgba(0, 0, 0, 0.8)", grayTransparent90: "rgba(0, 0, 0, 0.9)" }, $E = Object.assign(Object.assign({}, Le), { primary: Le.white, secondary: Le.gray05, disabled: Le.gray10, positive: Le.green10, critical: Le.red10, warning: Le.orange10, info: Le.lightBlue10, inverted: Le.black, overlay: Le.grayTransparent50, skeleton: `linear-gradient(90deg, transparent, ${Le.gray10}, transparent)`, action: { neutral: { secondary: Le.gray05, secondaryHover: Le.gray10, secondaryPressed: Le.gray20, tertiary: "transparent", tertiaryHover: Le.grayTransparent05, tertiaryPressed: Le.grayTransparent10 }, main: { primary: Le.blue40, primaryHover: Le.blue50, primaryPressed: Le.blue60, secondary: Le.blue10, secondaryHover: Le.blue20, secondaryPressed: Le.blue30, tertiary: "transparent", tertiaryHover: Le.blue05, tertiaryPressed: Le.blue10, tertiarySelected: Le.blue05 }, critical: { primary: Le.red40, primaryHover: Le.red50, primaryPressed: Le.red60, secondary: Le.red10, secondaryHover: Le.red20, secondaryPressed: Le.red30, tertiary: "transparent", tertiaryHover: Le.red05, tertiaryPressed: Le.red10, tertiarySelected: Le.red05 } }, form: { neutral: "transparent", neutralHover: Le.gray10, neutralPressed: Le.gray30, neutralChecked: Le.black, neutralCheckedHover: Le.gray60, neutralCheckedPressed: Le.gray50, neutralInactive: Le.gray30, neutralInactiveHover: Le.gray50, neutralInactivePressed: Le.gray60, neutralActive: Le.black, neutralActiveHover: Le.gray60, neutralActivePressed: Le.gray50, controlHover: "transparent", controlChecked: Le.blue40, controlCheckedHover: Le.blue50, controlCheckedFocus: Le.blue50, controlActive: Le.green40, controlActiveHover: Le.green50, controlInactive: Le.gray30, controlInactiveHover: Le.gray40 } }), ld = { critical: "red", warning: "orange", positive: "green", neutral: "gray", info: "lightBlue", main: "blue" }, BE = "$";
function gi(rv) {
  return `${`0rem 0rem 0rem 0.0625rem ${pt(Le, `${ld[rv]}05`)}`}, ${`0rem 0rem 0rem 0.1875rem ${pt(Le, `${ld[rv]}30`)}`}`;
}
function UE(rv) {
  return { background: pt(Le, `${rv}10`, ""), color: pt(Le, `${rv}60`, "") };
}
function jh(rv) {
  return pt(Le, yu(rv), "");
}
function Er(rv, tv) {
  return { ":focus": Object.assign({ outline: "none", boxShadow: gi(rv) }, tv == null ? void 0 : tv.focus), ":focus:not([data-focus-visible-added])": Object.assign({ outline: "none", boxShadow: "none" }, tv == null ? void 0 : tv.polyfill) };
}
function Ht(rv, tv = 1) {
  return `${tv}px solid ${pt(Le, yu(rv))}`;
}
function jE(rv) {
  return typeof rv == "string" && rv.startsWith(BE);
}
function yu(rv) {
  return jE(rv) ? rv.substring(1) : rv;
}
const Pe = (...rv) => rv.join(" "), HE = { neutral: Ht("$gray20"), mainSelected: Ht("$blue40", 2), positive: Ht("$green30"), info: Ht("$lightBlue30"), critical: Ht("$red30"), warning: Ht("$orange30"), disabled: Ht("$gray40"), form: { neutral: Ht("$gray30"), neutralHover: Ht("$gray50"), neutralFocus: Ht("$gray60"), neutralPressed: Ht("$gray60"), neutralChecked: Ht("$black"), neutralCheckedHover: Ht("$gray60"), neutralCheckedPressed: Ht("$gray50"), critical: Ht("$red40"), criticalHover: Ht("$red50"), criticalFocus: Ht("$red60"), control: Ht("$gray30"), controlHover: Ht("$gray50"), controlFocus: Ht("$gray50"), controlChecked: Ht("$blue40"), controlCheckedHover: Ht("$blue50"), controlCheckedFocus: Ht("$blue50") } }, Hh = { mobile: "40em", tablet: "48em", desktop: "64em", widescreen: "75em" }, GE = Object.assign(Object.assign({}, Le), { primary: Le.black, secondary: Le.gray50, disabled: Le.gray40, inverted: Le.white, positive: Le.green40, info: Le.lightBlue40, critical: Le.red40, warning: Le.orange40, action: { neutral: { tertiary: Le.gray50, tertiaryHover: Le.gray60, tertiaryPressed: Le.black }, main: { primary: Le.white, primaryHover: Le.white, primaryPressed: Le.white, secondary: Le.blue40, secondaryHover: Le.blue50, secondaryPressed: Le.blue60, tertiary: Le.blue40, tertiaryHover: Le.blue50, tertiaryPressed: Le.blue60, tertiarySelected: Le.blue40 }, critical: { primary: Le.white, primaryHover: Le.white, primaryPressed: Le.white, secondary: Le.red40, secondaryHover: Le.red50, secondaryPressed: Le.red60, tertiary: Le.red40, tertiaryHover: Le.red50, tertiaryPressed: Le.red60, tertiarySelected: Le.red40 } }, form: { neutral: Le.black, neutralChecked: Le.white, controlNeutral: Le.black, controlChecked: Le.white, control: Le.white } }), zE = { "@font-face": { fontFamily: "VTEX Trust", fontDisplay: "swap", fontStyle: "normal", src: "url('https://io.vtex.com.br/fonts/vtex-trust/VTEXTrust-VF-May-5-2022.woff2')", unicodeRange: `U+0020-007E, U+00A0-0107, U+010A-0113, U+0116-011B,
          U+011E-0123, U+0126-0127, U+012A-012B, U+012E-0131, U+0136-0137,
          U+0139-0148, U+014A-014D, U+0150-015B, U+015E-0167, U+016A-016B,
          U+016E-017E, U+0192, U+01EA-01EB, U+0218-021B, U+0237, U+02C6-02C7,
          U+02D8-02DD, U+0300-0304, U+0306-0308, U+030A-030C, U+0312,
          U+0326-0328, U+0335, U+0337-0338, U+0394, U+03A9, U+03BC, U+03C0,
          U+0E3F, U+1E80-1E85, U+1E9E, U+1EF2-1EF3, U+2000-200B, U+2013-2014,
          U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+202F-2030,
          U+2032-2033, U+2039-203A, U+2044, U+205F, U+2070, U+2074-2079,
          U+2080-2089, U+20A1, U+20A4, U+20A9-20AE, U+20B1, U+20B4, U+20B8-20BA,
          U+20BF, U+2117, U+2122, U+215D, U+2202, U+220F, U+2211-2212, U+221A,
          U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25CA, U+FB01-FB02` }, body: { margin: "$space-0", bg: "$primary", color: "$primary" }, "html, body": { text: "$body", fontSize: "100%", "-webkit-font-smoothing": "antialiased", "-moz-osx-font-smoothing": "grayscale" }, "pre, code": { text: "$code" }, "*": { text: "$body", "-webkit-font-smoothing": "antialiased", "-moz-osx-font-smoothing": "grayscale" }, "*, ::before, ::after": { boxSizing: "border-box", borderWidth: 0, borderStyle: "solid" }, "html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, a, abbr, acronym, address, big, cite, del, dfn, em, img, ins, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video": { margin: "$space-0", padding: "$space-0", border: 0, verticalAlign: "baseline" }, "article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section": { display: "block" }, "blockquote, q": { quotes: "none" }, "blockquote:before, blockquote:after, q:before, q:after": { content: "''" }, table: { borderCollapse: "collapse", borderSpacing: 0 }, "@tablet": { "blockquote:before, blockquote:after, q:before, q:after": { content: "none" } } }, VE = { ring: { critical: gi("critical"), neutral: gi("neutral"), main: gi("main") }, overlay: { center: "0rem 0rem 1rem 0rem rgba(0,0,0,0.10)", bottom: "0rem 0rem 1.5rem 0rem rgba(0,0,0,0.05)" } }, wn = '"VTEX Trust", -apple-system, system-ui, BlinkMacSystemFont, sans-serif', Wi = "'WGHT' 400, 'WDTH' 300", zs = "'WGHT' 500, 'WDTH' 300", ud = "0.875rem", cd = "1rem", WE = { pageTitle: { fontFamily: wn, fontVariationSettings: Wi, fontSize: "1.25rem", lineHeight: 1.2, letterSpacing: "-0.004em" }, title1: { fontFamily: wn, fontVariationSettings: zs, fontSize: cd, lineHeight: 1.5, letterSpacing: "0em" }, title2: { fontFamily: wn, fontVariationSettings: Wi, fontSize: cd, lineHeight: 1.5, letterSpacing: "0em" }, action1: { fontFamily: wn, fontVariationSettings: zs, fontSize: ud, lineHeight: 1.1428571429, letterSpacing: "0.01em" }, action2: { fontFamily: wn, fontVariationSettings: Wi, fontSize: ud, lineHeight: 1.1428571429, letterSpacing: "0.01em" }, display: { fontFamily: wn, fontVariationSettings: zs, fontSize: "1.5rem", lineHeight: 1.3333333333, letterSpacing: "-0.004em" }, body: { fontFamily: wn, fontVariationSettings: Wi, fontSize: "0.875rem", lineHeight: 1.4285714286, letterSpacing: "0.002em" }, detail: { fontFamily: wn, fontVariationSettings: Wi, fontSize: "0.75rem", lineHeight: 1.3333333333, letterSpacing: "0.004em" }, code: { fontFamily: '"MonoLisa", "Operator Mono", "Fira Code Retina", "Fira Code", "FiraCode-Retina", "Dank Mono", "Consolas", "Monaco", "Menlo", monospace' } }, Tn = '"VTEX Trust", -apple-system, system-ui, BlinkMacSystemFont, sans-serif', KE = { lineHeights: { pageTitle: 1.2, title1: 1.5, title2: 1.5, action1: 1.1428571429, action2: 1.1428571429, display: 1.3333333333, body: 1.4285714286, detail: 1.3333333333, code: "normal" }, letterSpacings: { pageTitle: "-0.004em", title1: "0em", title2: "0em", action1: "0.01em", action2: "0.01em", display: "-0.004em", body: "0.002em", detail: "0.004em", code: "inherit" }, fontWeights: { pageTitle: "'WGHT' 400, 'WDTH' 300", title1: "'WGHT' 500, 'WDTH' 300", title2: "'WGHT' 400, 'WDTH' 300", action1: "'WGHT' 500, 'WDTH' 300", action2: "'WGHT' 400, 'WDTH' 300", display: "'WGHT' 500, 'WDTH' 300", body: "'WGHT' 400, 'WDTH' 300", detail: "'WGHT' 400, 'WDTH' 300", code: "inherit" }, fontSizes: { pageTitle: "1.25rem", title1: "1rem", title2: "1rem", action1: "0.875rem", action2: "0.875rem", display: "1.5rem", body: "0.875rem", detail: "0.75rem", code: "inherit" }, fonts: { pageTitle: Tn, title1: Tn, title2: Tn, action1: Tn, action2: Tn, display: Tn, body: Tn, detail: Tn, code: '"MonoLisa", "Operator Mono", "Fira Code Retina", "Fira Code", "FiraCode-Retina", "Dank Mono", "Consolas", "Monaco", "Menlo", monospace' } }, Gh = Object.assign(Object.assign({ colors: Le, bg: $E, border: HE, borderRadius: { none: "0rem", base: "0.25rem", pill: "100%" }, breakpoints: Hh, fg: GE, global: zE, shadow: VE, sizes: { sm: "20rem", md: "48rem", lg: "56rem", xl: "64rem", "1/2": "50%", "1/4": "25%", "2/4": "50%", "3/4": "75%", "1/8": "12.5%", "2/8": "25%", "3/8": "37.5%", "4/8": "50%", "5/8": "62.5%", "6/8": "75%", "7/8": "87.5%", "1/12": "8.333333%", "2/12": "16.666667%", "3/12": "25%", "4/12": "33.333333%", "5/12": "41.666667%", "6/12": "50%", "7/12": "58.333333%", "8/12": "66.666667%", "9/12": "75%", "10/12": "83.333333%", "11/12": "91.666667%", full: "100%", screenHeight: "100vh", screenWidth: "100vw" }, space: { "space-0": "0rem", "space-05": "0.125rem", "space-1": "0.25rem", "space-2": "0.5rem", "space-3": "0.75rem", "space-4": "1rem", "space-5": "1.25rem", "space-6": "1.5rem", "space-7": "1.75rem", "space-8": "2rem", "space-10": "2.5rem", "space-12": "3rem", "space-16": "4rem", "space-20": "5rem", "space-24": "6rem", "space-28": "7rem", "space-32": "8rem" }, text: WE }, KE), { transitions: { snap: "all 70ms cubic-bezier(0.2, 0.2, 0.38, 0.9)", fade: "all 110ms cubic-bezier(0.2, 0.2, 0.38, 0.9)", pop: "all 150ms cubic-bezier(0.4, 0.14, 0.3, 1)", callout: "all 240ms cubic-bezier(0.4, 0.14, 0.3, 1)" }, zIndices: { "z-1": 0, "z-2": 100, "z-3": 200, "z-4": 300, "z-5": 400, "z-6": 500, "z-7": 600, "z-8": 700, "z-9": 800, "z-10": 900 } }), { getCssText: M3, css: YE, keyframes: Eu, globalCss: XE } = ME({ prefix: "admin-ui" }), { tablet: dd, desktop: Vs, widescreen: fd } = Hh, qE = { bg: "background", fg: "color", "@tablet": `@media (min-width: ${dd})`, "@tabletOnly": `@media (min-width: ${dd}) and (max-width: ${Vs})`, "@desktop": `@media (min-width: ${Vs})`, "@desktopOnly": `@media (min-width: ${Vs}) and (max-width: ${fd})`, "@widescreen": `@media (min-width: ${fd})` };
function ZE(rv) {
  const tv = function(ev) {
    const iv = "&", ov = ev.charAt(0);
    return { "[": `${iv}${ev}`, ":": `${iv}${ev}`, ".": `${iv} ${ev}`, "+": `${iv} ${ev}` }[ov] ?? ev;
  }(rv);
  return pt(qE, tv, tv);
}
const JE = { opacity: "opacities", transition: "transitions", border: "border", borderTop: "border", borderRight: "border", borderBottom: "border", borderLeft: "border", borderWidth: "borderWidths", borderStyle: "borderStyles", borderRadius: "borderRadius", borderTopRightRadius: "borderRadius", borderTopLeftRadius: "borderRadius", borderBottomRightRadius: "borderRadius", borderBottomLeftRadius: "borderRadius", borderTopWidth: "borderWidths", borderTopStyle: "borderStyles", borderBottomWidth: "borderWidths", borderBottomStyle: "borderStyles", borderLeftWidth: "borderWidths", borderLeftStyle: "borderStyles", borderRightWidth: "borderWidths", borderRightStyle: "borderStyles", borderBlock: "border", borderBlockEnd: "border", borderBlockEndStyle: "borderStyles", borderBlockEndWidth: "borderWidths", borderBlockStart: "border", borderBlockStartStyle: "borderStyles", borderBlockStartWidth: "borderWidths", borderBlockStyle: "borderStyles", borderBlockWidth: "borderWidths", borderEndEndRadius: "borderRadius", borderEndStartRadius: "borderRadius", borderInline: "border", borderInlineEnd: "border", borderInlineEndStyle: "borderStyles", borderInlineEndWidth: "borderWidths", borderInlineStart: "border", borderInlineStartStyle: "borderStyles", borderInlineStartWidth: "borderWidths", borderInlineStyle: "borderStyles", borderInlineWidth: "borderWidths", borderStartEndRadius: "borderRadius", borderStartStartRadius: "borderRadius", color: "fg", backgroundColor: "bg", background: "bg", borderColor: "borderColor", caretColor: "colors", columnRuleColor: "colors", borderTopColor: "borderColor", borderBottomColor: "borderColor", borderLeftColor: "borderColor", borderRightColor: "borderColor", fill: "colors", stroke: "colors", outlineColor: "colors", boxShadow: "shadow", textShadow: "shadow", zIndex: "zIndices", width: "sizes", minWidth: "sizes", maxWidth: "sizes", height: "sizes", minHeight: "sizes", maxHeight: "sizes", flexBasis: "sizes", blockSize: "sizes", inlineSize: "sizes", maxBlockSize: "sizes", maxInlineSize: "sizes", minBlockSize: "sizes", minInlineSize: "sizes", size: "sizes", minSize: "sizes", maxSize: "sizes", absoluteSize: "sizes", margin: "space", padding: "space", marginBlock: "space", marginBlockEnd: "space", marginBlockStart: "space", marginInline: "space", marginInlineEnd: "space", marginInlineStart: "space", paddingBlock: "space", paddingBlockEnd: "space", paddingBlockStart: "space", paddingInline: "space", paddingInlineEnd: "space", paddingInlineStart: "space", scrollPadding: "space", inset: "space", insetBlock: "space", insetBlockEnd: "space", insetBlockStart: "space", insetInline: "space", insetInlineEnd: "space", insetInlineStart: "space", gridGap: "space", gap: "space", columnGap: "space", rowGap: "space", gridColumnGap: "space", marginRight: "space", marginLeft: "space", marginX: "space", paddingRight: "space", paddingLeft: "space", paddingX: "space", scrollPaddingRight: "space", scrollPaddingLeft: "space", scrollPaddingX: "space", right: "space", left: "space", gridRowGap: "space", marginTop: "space", marginBottom: "space", marginY: "space", paddingTop: "space", paddingBottom: "space", paddingY: "space", scrollPaddingTop: "space", scrollPaddingBottom: "space", scrollPaddingY: "space", top: "space", bottom: "space", text: "text", fontFamily: "fonts", fontSize: "fontSizes", lineHeight: "lineHeights", letterSpacing: "letterSpacings", fontVariationSettings: "fontWeights" }, zh = { marginX: (rv) => ({ marginLeft: rv, marginRight: rv }), marginY: (rv) => ({ marginTop: rv, marginBottom: rv }), paddingX: (rv) => ({ paddingLeft: rv, paddingRight: rv }), paddingY: (rv) => ({ paddingTop: rv, paddingBottom: rv }), size: (rv) => ({ width: rv, height: rv }), minSize: (rv) => ({ minWidth: rv, minHeight: rv }), maxSize: (rv) => ({ maxWidth: rv, maxHeight: rv }), absoluteSize: (rv) => ({ minWidth: rv, minHeight: rv, maxWidth: rv, maxHeight: rv }), text: (rv) => ({ fontFamily: rv.fontFamily, fontVariationSettings: rv.fontVariationSettings, fontSize: rv.fontSize, lineHeight: rv.lineHeight, letterSpacing: rv.letterSpacing }), colorTheme: (rv) => UE(rv) };
function QE(rv, tv) {
  return pt(zh, rv, () => {
  })(tv);
}
const Lo = { colorNamespaces: ["bg", "border", "fg", "shadows"], reservedNamespaces: ["global", "modes", "shadows", "sizes", "space", "hspace", "vspace", "breakpoints", "transitions", "border", "zIndices", "borderRadius"], prefix: "admin-ui", mainModeLabel: "main", rootElement: "body" }, Vh = (rv) => `--${Lo.prefix}-${rv}`, Wh = (rv, tv) => `var(${Vh(rv)})`, Kh = (...rv) => rv.filter(Boolean).join("-");
function Yh(rv, tv) {
  const ev = Array.isArray(rv) ? [] : {};
  for (const iv in rv) {
    const ov = rv[iv], av = Kh(tv, iv);
    ov && typeof ov == "object" ? ev[iv] = Yh(ov, av) : ev[iv] = Wh(av);
  }
  return ev;
}
function ex(rv, tv, ev) {
  if (!Lo.colorNamespaces.includes(tv))
    return rv;
  const iv = pt(ev, "colors", {}), ov = Object.keys(iv);
  let av = rv;
  return ov.forEach((sv) => {
    const lv = pt(iv, sv);
    av.includes(lv) && (av = av.replace(new RegExp(lv, "g"), Wh(`colors-${sv}`)));
  }), av;
}
function Xh(rv, tv = {}, ev = "", iv = "") {
  const ov = {}, av = !iv, sv = av ? rv : tv;
  for (const lv in rv) {
    const uv = av ? lv : ev, cv = Kh(iv, lv), dv = rv[lv];
    dv && typeof dv == "object" ? Object.assign(ov, Xh(dv, sv, uv, cv)) : Object.assign(ov, { [Vh(cv)]: ex(dv, uv, sv) });
  }
  return ov;
}
const { theme: sn, cssVariables: tx } = function(rv) {
  if (!rv)
    return { theme: { global: {} }, cssVariables: {} };
  const tv = pt(rv, "global", {}), { staticTheme: ev, dynamicTheme: iv } = function(sv) {
    return { dynamicTheme: tE(sv, Lo.reservedNamespaces), staticTheme: rE(sv, Lo.reservedNamespaces) };
  }(rv), ov = Yh(iv), av = Xh(iv);
  return { theme: Object.assign(Object.assign({ global: tv }, ov), ev), cssVariables: av };
}(Gh), rx = { padding: !0, margin: !0 }, hd = " ";
function xu(rv = {}, tv = sn) {
  const ev = {};
  for (const iv in rv) {
    const ov = ZE(iv), av = rv[iv], sv = Fh(av) ? av(tv, ov) : av;
    if (sv && typeof sv == "object") {
      ev[ov] = xu(sv, tv);
      continue;
    }
    const lv = Ca(tv, ov, sv);
    ov in zh ? Object.assign(ev, QE(ov, lv)) : ev[ov] = lv;
  }
  return ev;
}
function md(rv, tv) {
  const ev = yu(rv);
  return pt(tv, ev, ev);
}
function Ca(rv, tv, ev) {
  const iv = function(ov, av) {
    const sv = pt(JE, ov);
    return pt(av, sv, pt(av, ov, {}));
  }(tv, rv);
  return function(ov, av) {
    return ov in rx && typeof av == "string";
  }(tv, ev) ? function(ov, av) {
    return ov.split(hd).map((sv) => md(sv, av)).join(hd);
  }(ev, iv) : md(ev, iv);
}
function nx(rv) {
  return function(tv) {
    const ev = xu(tv, rv);
    return YE(ev)().toString();
  };
}
const te = nx(sn);
function Hr(rv) {
  return (tv, ev) => `-${Ca(tv, ev, rv)}`;
}
function oe(rv, tv) {
  return typeof rv == "string" ? `[data-${rv}="${String(tv ?? "")}"]` : Object.keys(rv).reduce((ev, iv) => `${ev}[data-${iv}="${String(rv[iv])}"]`, "");
}
var ax = "Invariant failed";
function qh(rv, tv) {
  if (!rv)
    throw new Error(ax);
}
reactExports.createContext(null);
function ox(rv) {
  const { onTimeout: tv, duration: ev } = rv, [iv, ov] = reactExports.useState(!0), av = reactExports.useRef(), sv = reactExports.useCallback(() => {
    window.clearTimeout(av.current), ov(!1);
  }, []);
  reactExports.useEffect(() => {
    if (iv)
      return av.current = window.setTimeout(() => {
        tv();
      }, ev), () => {
        sv();
      };
  }, [tv, iv, ev, sv]);
  const lv = reactExports.useCallback(() => {
    ov(!0);
  }, []);
  return { stopTimeout: sv, startTimeout: lv };
}
const ga = $h ? reactExports.useLayoutEffect : reactExports.useEffect;
function Zh({ keyMap: rv, onKey: tv, stopPropagation: ev, onKeyDown: iv, preventDefault: ov = !0 }) {
  return (av) => {
    var sv;
    if (!rv)
      return;
    const lv = rv(av);
    if (av.key in lv) {
      const uv = lv[av.key];
      if (Fh(uv))
        return ov && av.preventDefault(), ev && av.stopPropagation(), tv && tv(av), void uv(av);
    }
    iv && "current" in iv ? (sv = iv.current) === null || sv === void 0 || sv.call(iv, av) : iv == null || iv(av);
  };
}
function sx(rv, tv) {
  typeof rv == "function" ? rv(tv) : rv && (rv.current = tv);
}
function ln(...rv) {
  return reactExports.useMemo(() => {
    if (rv.some(Boolean))
      return (tv) => {
        rv.forEach((ev) => {
          sx(ev, tv);
        });
      };
  }, rv);
}
function yn(rv) {
  const [tv, ev] = reactExports.useState(rv);
  return ga(() => {
    if (rv || tv)
      return;
    const iv = Math.random().toString(36).substr(2, 6);
    ev(`id-${iv}`);
  }, [rv, tv]), rv || tv;
}
function Ra() {
  const rv = reactExports.useRef(null);
  return [rv, () => {
    rv.current && uE(() => {
      var tv;
      (tv = rv == null ? void 0 : rv.current) === null || tv === void 0 || tv.focus();
    });
  }];
}
function lx() {
  const rv = reactExports.useRef(), tv = reactExports.useRef(document.createElement("div")), ev = document.body;
  reactExports.useEffect(() => {
    tv.current || (tv.current = document.createElement("div"));
  }, [tv]), reactExports.useEffect(() => {
    if (!(ev instanceof HTMLElement && tv.current instanceof HTMLElement))
      return;
    const ov = tv.current;
    return ev.appendChild(tv.current), () => {
      ev.removeChild(ov);
    };
  }, [ev, tv]);
  const iv = reactExports.useCallback(({ children: ov }) => tv.current != null ? reactDomExports.createPortal(ov, tv.current) : null, [tv]);
  return Object.assign([iv, rv, tv], { ref: rv, Portal: iv, portalRef: tv });
}
function ux(rv) {
  const { root: tv = null, rootMargin: ev, threshold: iv = 0, callback: ov } = rv, [av, sv] = reactExports.useState(), lv = reactExports.useRef();
  return reactExports.useEffect(() => {
    if (!av)
      return;
    lv.current = new IntersectionObserver(([cv]) => {
      ov(cv);
    }, { root: tv, rootMargin: ev, threshold: iv });
    const { current: uv } = lv;
    return uv.observe(av), () => uv.disconnect();
  }, [av, tv, ev, iv, ov]), { setNode: sv };
}
function cx(rv, tv, ev) {
  return tv in rv ? Object.defineProperty(rv, tv, {
    value: ev,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : rv[tv] = ev, rv;
}
function pd(rv, tv) {
  var ev = Object.keys(rv);
  if (Object.getOwnPropertySymbols) {
    var iv = Object.getOwnPropertySymbols(rv);
    tv && (iv = iv.filter(function(ov) {
      return Object.getOwnPropertyDescriptor(rv, ov).enumerable;
    })), ev.push.apply(ev, iv);
  }
  return ev;
}
function wt(rv) {
  for (var tv = 1; tv < arguments.length; tv++) {
    var ev = arguments[tv] != null ? arguments[tv] : {};
    tv % 2 ? pd(Object(ev), !0).forEach(function(iv) {
      cx(rv, iv, ev[iv]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(rv, Object.getOwnPropertyDescriptors(ev)) : pd(Object(ev)).forEach(function(iv) {
      Object.defineProperty(rv, iv, Object.getOwnPropertyDescriptor(ev, iv));
    });
  }
  return rv;
}
function Jt(rv, tv) {
  if (rv == null)
    return {};
  var ev = {}, iv = Object.keys(rv), ov, av;
  for (av = 0; av < iv.length; av++)
    ov = iv[av], !(tv.indexOf(ov) >= 0) && (ev[ov] = rv[ov]);
  return ev;
}
function dx(rv, tv) {
  if (rv) {
    if (typeof rv == "string")
      return gd(rv, tv);
    var ev = Object.prototype.toString.call(rv).slice(8, -1);
    if (ev === "Object" && rv.constructor && (ev = rv.constructor.name), ev === "Map" || ev === "Set")
      return Array.from(rv);
    if (ev === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ev))
      return gd(rv, tv);
  }
}
function gd(rv, tv) {
  (tv == null || tv > rv.length) && (tv = rv.length);
  for (var ev = 0, iv = new Array(tv); ev < tv; ev++)
    iv[ev] = rv[ev];
  return iv;
}
function wu(rv, tv) {
  var ev;
  if (typeof Symbol > "u" || rv[Symbol.iterator] == null) {
    if (Array.isArray(rv) || (ev = dx(rv)) || tv) {
      ev && (rv = ev);
      var iv = 0;
      return function() {
        return iv >= rv.length ? {
          done: !0
        } : {
          done: !1,
          value: rv[iv++]
        };
      };
    }
    throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
  }
  return ev = rv[Symbol.iterator](), ev.next.bind(ev);
}
var Jh = /* @__PURE__ */ reactExports.createContext({});
function fx(rv, tv, ev) {
  return tv in rv ? Object.defineProperty(rv, tv, {
    value: ev,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : rv[tv] = ev, rv;
}
function vd(rv, tv) {
  var ev = Object.keys(rv);
  if (Object.getOwnPropertySymbols) {
    var iv = Object.getOwnPropertySymbols(rv);
    tv && (iv = iv.filter(function(ov) {
      return Object.getOwnPropertyDescriptor(rv, ov).enumerable;
    })), ev.push.apply(ev, iv);
  }
  return ev;
}
function mi(rv) {
  for (var tv = 1; tv < arguments.length; tv++) {
    var ev = arguments[tv] != null ? arguments[tv] : {};
    tv % 2 ? vd(Object(ev), !0).forEach(function(iv) {
      fx(rv, iv, ev[iv]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(rv, Object.getOwnPropertyDescriptors(ev)) : vd(Object(ev)).forEach(function(iv) {
      Object.defineProperty(rv, iv, Object.getOwnPropertyDescriptor(ev, iv));
    });
  }
  return rv;
}
function Al(rv, tv) {
  if (rv == null)
    return {};
  var ev = {}, iv = Object.keys(rv), ov, av;
  for (av = 0; av < iv.length; av++)
    ov = iv[av], !(tv.indexOf(ov) >= 0) && (ev[ov] = rv[ov]);
  return ev;
}
function hx(rv, tv) {
  if (rv) {
    if (typeof rv == "string")
      return bd(rv, tv);
    var ev = Object.prototype.toString.call(rv).slice(8, -1);
    if (ev === "Object" && rv.constructor && (ev = rv.constructor.name), ev === "Map" || ev === "Set")
      return Array.from(rv);
    if (ev === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ev))
      return bd(rv, tv);
  }
}
function bd(rv, tv) {
  (tv == null || tv > rv.length) && (tv = rv.length);
  for (var ev = 0, iv = new Array(tv); ev < tv; ev++)
    iv[ev] = rv[ev];
  return iv;
}
function yd(rv, tv) {
  var ev;
  if (typeof Symbol > "u" || rv[Symbol.iterator] == null) {
    if (Array.isArray(rv) || (ev = hx(rv)) || tv) {
      ev && (rv = ev);
      var iv = 0;
      return function() {
        return iv >= rv.length ? {
          done: !0
        } : {
          done: !1,
          value: rv[iv++]
        };
      };
    }
    throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
  }
  return ev = rv[Symbol.iterator](), ev.next.bind(ev);
}
function mx(rv) {
  return typeof rv == "function";
}
var _a = function(rv, tv, ev) {
  ev === void 0 && (ev = tv.children);
  var iv = reactExports.useContext(Jh);
  if (iv.useCreateElement)
    return iv.useCreateElement(rv, tv, ev);
  if (typeof rv == "string" && mx(ev)) {
    tv.children;
    var ov = Al(tv, ["children"]);
    return ev(ov);
  }
  return /* @__PURE__ */ reactExports.createElement(rv, tv, ev);
};
function px(rv, tv, ev) {
  return tv in rv ? Object.defineProperty(rv, tv, {
    value: ev,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : rv[tv] = ev, rv;
}
function Ed(rv, tv) {
  var ev = Object.keys(rv);
  if (Object.getOwnPropertySymbols) {
    var iv = Object.getOwnPropertySymbols(rv);
    tv && (iv = iv.filter(function(ov) {
      return Object.getOwnPropertyDescriptor(rv, ov).enumerable;
    })), ev.push.apply(ev, iv);
  }
  return ev;
}
function Pn(rv) {
  for (var tv = 1; tv < arguments.length; tv++) {
    var ev = arguments[tv] != null ? arguments[tv] : {};
    tv % 2 ? Ed(Object(ev), !0).forEach(function(iv) {
      px(rv, iv, ev[iv]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(rv, Object.getOwnPropertyDescriptors(ev)) : Ed(Object(ev)).forEach(function(iv) {
      Object.defineProperty(rv, iv, Object.getOwnPropertyDescriptor(ev, iv));
    });
  }
  return rv;
}
function gx(rv, tv) {
  if (rv == null)
    return {};
  var ev = {}, iv = Object.keys(rv), ov, av;
  for (av = 0; av < iv.length; av++)
    ov = iv[av], !(tv.indexOf(ov) >= 0) && (ev[ov] = rv[ov]);
  return ev;
}
function Qh(rv) {
  return typeof rv == "object" && rv != null;
}
function Cl(rv) {
  var tv;
  if (!Qh(rv))
    return !1;
  var ev = Object.getPrototypeOf(rv);
  return ev == null ? !0 : ((tv = ev.constructor) === null || tv === void 0 ? void 0 : tv.toString()) === Object.toString();
}
function xd(rv, tv) {
  for (var ev = Object.keys(rv), iv = {}, ov = {}, av = 0, sv = ev; av < sv.length; av++) {
    var lv = sv[av];
    tv.indexOf(lv) >= 0 ? iv[lv] = rv[lv] : ov[lv] = rv[lv];
  }
  return [iv, ov];
}
function wd(rv, tv) {
  if (tv === void 0 && (tv = []), !Cl(rv.state))
    return xd(rv, tv);
  var ev = xd(rv, [].concat(tv, ["state"])), iv = ev[0], ov = ev[1], av = iv.state, sv = gx(iv, ["state"]);
  return [Pn(Pn({}, av), sv), ov];
}
function ko(rv, tv) {
  if (rv === tv)
    return !0;
  if (!rv || !tv || typeof rv != "object" || typeof tv != "object")
    return !1;
  var ev = Object.keys(rv), iv = Object.keys(tv), ov = ev.length;
  if (iv.length !== ov)
    return !1;
  for (var av = 0, sv = ev; av < sv.length; av++) {
    var lv = sv[av];
    if (rv[lv] !== tv[lv])
      return !1;
  }
  return !0;
}
function Td(rv) {
  return rv.name === "normalizePropsAreEqualInner" ? rv : function(tv, ev) {
    return !Cl(tv.state) || !Cl(ev.state) ? rv(tv, ev) : rv(Pn(Pn({}, tv.state), tv), Pn(Pn({}, ev.state), ev));
  };
}
function vx(rv) {
  return /* @__PURE__ */ reactExports.forwardRef(rv);
}
function bx(rv, tv) {
  return /* @__PURE__ */ reactExports.memo(rv, tv);
}
function Tr(rv) {
  var tv = rv.as, ev = rv.useHook, iv = rv.memo, ov = rv.propsAreEqual, av = ov === void 0 ? ev == null ? void 0 : ev.unstable_propsAreEqual : ov, sv = rv.keys, lv = sv === void 0 ? (ev == null ? void 0 : ev.__keys) || [] : sv, uv = rv.useCreateElement, cv = uv === void 0 ? _a : uv, dv = function(hv, pv) {
    var yv = hv.as, Sv = yv === void 0 ? tv : yv, _v = Al(hv, ["as"]);
    if (ev) {
      var Ev, wv = wd(_v, lv), xv = wv[0], Cv = wv[1], Av = ev(xv, mi({
        ref: pv
      }, Cv)), Ov = Av.wrapElement, Lv = Al(Av, ["wrapElement"]), jv = ((Ev = Sv.render) === null || Ev === void 0 ? void 0 : Ev.__keys) || Sv.__keys, Dv = jv && wd(_v, jv)[0], Vv = Dv ? mi(mi({}, Lv), Dv) : Lv, Gv = cv(Sv, Vv);
      return Ov ? Ov(Gv) : Gv;
    }
    return cv(Sv, mi({
      ref: pv
    }, _v));
  };
  return dv = vx(dv), iv && (dv = bx(dv, av && Td(av))), dv.__keys = lv, dv.unstable_propsAreEqual = Td(av || ko), dv;
}
function em(rv, tv) {
  reactExports.useDebugValue(rv);
  var ev = reactExports.useContext(Jh);
  return ev[rv] != null ? ev[rv] : tv;
}
function yx(rv, tv, ev) {
  tv === void 0 && (tv = {}), ev === void 0 && (ev = {});
  var iv = "use" + rv + "Props";
  reactExports.useDebugValue(iv);
  var ov = em(iv);
  return ov ? ov(tv, ev) : ev;
}
function Ex(rv, tv, ev) {
  tv === void 0 && (tv = {}), ev === void 0 && (ev = {});
  var iv = "use" + rv + "Options";
  reactExports.useDebugValue(iv);
  var ov = em(iv);
  return ov ? mi(mi({}, tv), ov(tv, ev)) : tv;
}
function xx(rv) {
  return Array.isArray(rv) ? rv : typeof rv < "u" ? [rv] : [];
}
function Sr(rv) {
  var tv, ev, iv = xx(rv.compose), ov = function(lv, uv) {
    if (rv.useOptions && (lv = rv.useOptions(lv, uv)), rv.name && (lv = Ex(rv.name, lv, uv)), rv.compose)
      for (var cv = yd(iv), dv; !(dv = cv()).done; ) {
        var hv = dv.value;
        lv = hv.__useOptions(lv, uv);
      }
    return lv;
  }, av = function(lv, uv, cv) {
    if (lv === void 0 && (lv = {}), uv === void 0 && (uv = {}), cv === void 0 && (cv = !1), cv || (lv = ov(lv, uv)), rv.useProps && (uv = rv.useProps(lv, uv)), rv.name && (uv = yx(rv.name, lv, uv)), rv.compose)
      if (rv.useComposeOptions && (lv = rv.useComposeOptions(lv, uv)), rv.useComposeProps)
        uv = rv.useComposeProps(lv, uv);
      else
        for (var dv = yd(iv), hv; !(hv = dv()).done; ) {
          var pv = hv.value;
          uv = pv(lv, uv, !0);
        }
    var yv = {}, Sv = uv || {};
    for (var _v in Sv)
      Sv[_v] !== void 0 && (yv[_v] = Sv[_v]);
    return yv;
  };
  av.__useOptions = ov;
  var sv = iv.reduce(function(lv, uv) {
    return lv.push.apply(lv, uv.__keys || []), lv;
  }, []);
  return av.__keys = [].concat(sv, ((tv = rv.useState) === null || tv === void 0 ? void 0 : tv.__keys) || [], rv.keys || []), av.unstable_propsAreEqual = rv.propsAreEqual || ((ev = iv[0]) === null || ev === void 0 ? void 0 : ev.unstable_propsAreEqual) || ko, av;
}
function Sd(rv, tv) {
  tv === void 0 && (tv = null), rv && (typeof rv == "function" ? rv(tv) : rv.current = tv);
}
function $n(rv, tv) {
  return reactExports.useMemo(function() {
    return rv == null && tv == null ? null : function(ev) {
      Sd(rv, ev), Sd(tv, ev);
    };
  }, [rv, tv]);
}
var wx = ["button", "color", "file", "image", "reset", "submit"];
function ms(rv) {
  if (rv.tagName === "BUTTON")
    return !0;
  if (rv.tagName === "INPUT") {
    var tv = rv;
    return wx.indexOf(tv.type) !== -1;
  }
  return !1;
}
function hr(rv) {
  return rv ? rv.ownerDocument || rv : document;
}
var Rl;
try {
  Rl = window;
} catch {
}
function tm(rv) {
  return rv && hr(rv).defaultView || Rl;
}
function Tx() {
  var rv = tm();
  return !!(typeof rv < "u" && rv.document && rv.document.createElement);
}
var _i = Tx(), Ia = _i ? reactExports.useLayoutEffect : reactExports.useEffect;
function Ft(rv) {
  var tv = reactExports.useRef(rv);
  return Ia(function() {
    tv.current = rv;
  }), tv;
}
function Jr(rv) {
  return rv.target === rv.currentTarget;
}
function Ii(rv) {
  var tv = hr(rv), ev = tv.activeElement;
  return ev != null && ev.nodeName ? ev : null;
}
function Nn(rv, tv) {
  return rv === tv || rv.contains(tv);
}
function Tu(rv) {
  var tv = Ii(rv);
  if (!tv)
    return !1;
  if (Nn(rv, tv))
    return !0;
  var ev = tv.getAttribute("aria-activedescendant");
  return ev ? ev === rv.id ? !0 : !!rv.querySelector("#" + ev) : !1;
}
function rm(rv) {
  return !Nn(rv.currentTarget, rv.target);
}
function Qa(rv) {
  return _i ? window.navigator.userAgent.indexOf(rv) !== -1 : !1;
}
function nm(rv, tv) {
  return "matches" in rv ? rv.matches(tv) : "msMatchesSelector" in rv ? rv.msMatchesSelector(tv) : rv.webkitMatchesSelector(tv);
}
function Sx(rv, tv) {
  if ("closest" in rv)
    return rv.closest(tv);
  do {
    if (nm(rv, tv))
      return rv;
    rv = rv.parentElement || rv.parentNode;
  } while (rv !== null && rv.nodeType === 1);
  return null;
}
var im = "input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])";
function Ax(rv) {
  var tv = rv;
  return tv.offsetWidth > 0 || tv.offsetHeight > 0 || rv.getClientRects().length > 0;
}
function Cx(rv) {
  var tv = parseInt(rv.getAttribute("tabindex") || "0", 10);
  return tv < 0;
}
function am(rv) {
  return nm(rv, im) && Ax(rv);
}
function _l(rv) {
  return am(rv) && !Cx(rv);
}
function om(rv, tv) {
  var ev = Array.from(rv.querySelectorAll(im)), iv = ev.filter(_l);
  return _l(rv) && iv.unshift(rv), !iv.length && tv ? ev : iv;
}
function sm(rv, tv) {
  var ev = om(rv, tv), iv = ev[0];
  return iv || null;
}
function Rx(rv, tv) {
  var ev = om(rv, tv);
  return ev[ev.length - 1] || null;
}
var _x = ["unstable_system"], Pa = Sr({
  name: "Role",
  keys: _x,
  propsAreEqual: function(rv, tv) {
    var ev = rv.unstable_system, iv = Jt(rv, ["unstable_system"]), ov = tv.unstable_system, av = Jt(tv, ["unstable_system"]);
    return ev !== ov && !ko(ev, ov) ? !1 : ko(iv, av);
  }
});
Tr({
  as: "div",
  useHook: Pa
});
var Ix = ["disabled", "focusable"], Px = Qa("Mac") && !Qa("Chrome") && (Qa("Safari") || Qa("Firefox"));
function Ad(rv) {
  !Tu(rv) && am(rv) && rv.focus();
}
function Ox(rv) {
  return ["BUTTON", "INPUT", "SELECT", "TEXTAREA", "A"].includes(rv.tagName);
}
function Lx(rv) {
  return ["BUTTON", "INPUT", "SELECT", "TEXTAREA"].includes(rv.tagName);
}
function kx(rv, tv, ev, iv) {
  return rv ? tv && !ev ? -1 : void 0 : tv ? iv : iv || 0;
}
function Ws(rv, tv) {
  return reactExports.useCallback(function(ev) {
    var iv;
    (iv = rv.current) === null || iv === void 0 || iv.call(rv, ev), !ev.defaultPrevented && tv && (ev.stopPropagation(), ev.preventDefault());
  }, [rv, tv]);
}
var Do = Sr({
  name: "Tabbable",
  compose: Pa,
  keys: Ix,
  useOptions: function(rv, tv) {
    var ev = tv.disabled;
    return wt({
      disabled: ev
    }, rv);
  },
  useProps: function(rv, tv) {
    var ev = tv.ref, iv = tv.tabIndex, ov = tv.onClickCapture, av = tv.onMouseDownCapture, sv = tv.onMouseDown, lv = tv.onKeyPressCapture, uv = tv.style, cv = Jt(tv, ["ref", "tabIndex", "onClickCapture", "onMouseDownCapture", "onMouseDown", "onKeyPressCapture", "style"]), dv = reactExports.useRef(null), hv = Ft(ov), pv = Ft(av), yv = Ft(sv), Sv = Ft(lv), _v = !!rv.disabled && !rv.focusable, Ev = reactExports.useState(!0), wv = Ev[0], xv = Ev[1], Cv = reactExports.useState(!0), Av = Cv[0], Ov = Cv[1], Lv = rv.disabled ? wt({
      pointerEvents: "none"
    }, uv) : uv;
    Ia(function() {
      var Yv = dv.current;
      Yv && (Ox(Yv) || xv(!1), Lx(Yv) || Ov(!1));
    }, []);
    var jv = Ws(hv, rv.disabled), Dv = Ws(pv, rv.disabled), Vv = Ws(Sv, rv.disabled), Gv = reactExports.useCallback(function(Yv) {
      var Xv;
      (Xv = yv.current) === null || Xv === void 0 || Xv.call(yv, Yv);
      var L1 = Yv.currentTarget;
      if (!Yv.defaultPrevented && Px && !rm(Yv) && ms(L1)) {
        var Bv = requestAnimationFrame(function() {
          L1.removeEventListener("mouseup", Qv, !0), Ad(L1);
        }), Qv = function() {
          cancelAnimationFrame(Bv), Ad(L1);
        };
        L1.addEventListener("mouseup", Qv, {
          once: !0,
          capture: !0
        });
      }
    }, []);
    return wt({
      ref: $n(dv, ev),
      style: Lv,
      tabIndex: kx(_v, wv, Av, iv),
      disabled: _v && Av ? !0 : void 0,
      "aria-disabled": rv.disabled ? !0 : void 0,
      onClickCapture: jv,
      onMouseDownCapture: Dv,
      onMouseDown: Gv,
      onKeyPressCapture: Vv
    }, cv);
  }
});
Tr({
  as: "div",
  useHook: Do
});
var Dx = ["unstable_clickOnEnter", "unstable_clickOnSpace"];
function Nx(rv) {
  var tv = rv.currentTarget;
  return rv.isTrusted ? ms(tv) || tv.tagName === "INPUT" || tv.tagName === "TEXTAREA" || tv.tagName === "A" || tv.tagName === "SELECT" : !1;
}
var oa = Sr({
  name: "Clickable",
  compose: Do,
  keys: Dx,
  useOptions: function(rv) {
    var tv = rv.unstable_clickOnEnter, ev = tv === void 0 ? !0 : tv, iv = rv.unstable_clickOnSpace, ov = iv === void 0 ? !0 : iv, av = Jt(rv, ["unstable_clickOnEnter", "unstable_clickOnSpace"]);
    return wt({
      unstable_clickOnEnter: ev,
      unstable_clickOnSpace: ov
    }, av);
  },
  useProps: function(rv, tv) {
    var ev = tv.onKeyDown, iv = tv.onKeyUp, ov = Jt(tv, ["onKeyDown", "onKeyUp"]), av = reactExports.useState(!1), sv = av[0], lv = av[1], uv = Ft(ev), cv = Ft(iv), dv = reactExports.useCallback(function(pv) {
      var yv;
      if ((yv = uv.current) === null || yv === void 0 || yv.call(uv, pv), !pv.defaultPrevented && !rv.disabled && !pv.metaKey && Jr(pv)) {
        var Sv = rv.unstable_clickOnEnter && pv.key === "Enter", _v = rv.unstable_clickOnSpace && pv.key === " ";
        if (Sv || _v) {
          if (Nx(pv))
            return;
          pv.preventDefault(), Sv ? pv.currentTarget.click() : _v && lv(!0);
        }
      }
    }, [rv.disabled, rv.unstable_clickOnEnter, rv.unstable_clickOnSpace]), hv = reactExports.useCallback(function(pv) {
      var yv;
      if ((yv = cv.current) === null || yv === void 0 || yv.call(cv, pv), !pv.defaultPrevented && !rv.disabled && !pv.metaKey) {
        var Sv = rv.unstable_clickOnSpace && pv.key === " ";
        sv && Sv && (lv(!1), pv.currentTarget.click());
      }
    }, [rv.disabled, rv.unstable_clickOnSpace, sv]);
    return wt({
      "data-active": sv || void 0,
      onKeyDown: dv,
      onKeyUp: hv
    }, ov);
  }
}), lm = Tr({
  as: "button",
  memo: !0,
  useHook: oa
}), Fx = [], um = Sr({
  name: "Button",
  compose: oa,
  keys: Fx,
  useProps: function(rv, tv) {
    var ev = tv.ref, iv = Jt(tv, ["ref"]), ov = reactExports.useRef(null), av = reactExports.useState(void 0), sv = av[0], lv = av[1], uv = reactExports.useState("button"), cv = uv[0], dv = uv[1];
    return reactExports.useEffect(function() {
      var hv = ov.current;
      hv && (ms(hv) || (hv.tagName !== "A" && lv("button"), dv(void 0)));
    }, []), wt({
      ref: $n(ov, ev),
      role: sv,
      type: cv
    }, iv);
  }
});
Tr({
  as: "button",
  memo: !0,
  useHook: um
});
function cm(rv, tv) {
  var ev = reactExports.useRef(!1);
  reactExports.useEffect(function() {
    if (ev.current)
      return rv();
    ev.current = !0;
  }, tv);
}
var Mx = _i && "msCrypto" in window;
function dm(rv) {
  if (Mx) {
    var tv = Ii(rv.currentTarget);
    return tv;
  }
  return rv.relatedTarget;
}
function $x(rv) {
  var tv = Ii(rv);
  if (!tv)
    return !1;
  if (tv === rv)
    return !0;
  var ev = tv.getAttribute("aria-activedescendant");
  return ev ? ev === rv.id : !1;
}
function va(rv, tv) {
  var ev = tv === void 0 ? {} : tv, iv = ev.preventScroll, ov = ev.isActive, av = ov === void 0 ? $x : ov;
  return av(rv) || (rv.focus({
    preventScroll: iv
  }), av(rv)) ? -1 : requestAnimationFrame(function() {
    rv.focus({
      preventScroll: iv
    });
  });
}
var Bx = "id";
function Ux(rv) {
  return rv === void 0 && (rv = Bx), (rv ? rv + "-" : "") + Math.random().toString(32).substr(2, 6);
}
var jx = /* @__PURE__ */ reactExports.createContext(Ux), Hx = ["baseId", "unstable_idCountRef", "visible", "animated", "animating", "setBaseId", "show", "hide", "toggle", "setVisible", "setAnimated", "stopAnimation"], fm = Hx, Gx = fm, hm = Sr({
  name: "DisclosureContent",
  compose: Pa,
  keys: Gx,
  useProps: function(rv, tv) {
    var ev = tv.onTransitionEnd, iv = tv.onAnimationEnd, ov = tv.style, av = Jt(tv, ["onTransitionEnd", "onAnimationEnd", "style"]), sv = rv.animated && rv.animating, lv = reactExports.useState(null), uv = lv[0], cv = lv[1], dv = !rv.visible && !sv, hv = dv ? wt({
      display: "none"
    }, ov) : ov, pv = Ft(ev), yv = Ft(iv), Sv = reactExports.useRef(0);
    reactExports.useEffect(function() {
      if (rv.animated)
        return Sv.current = window.requestAnimationFrame(function() {
          Sv.current = window.requestAnimationFrame(function() {
            rv.visible ? cv("enter") : cv(sv ? "leave" : null);
          });
        }), function() {
          return window.cancelAnimationFrame(Sv.current);
        };
    }, [rv.animated, rv.visible, sv]);
    var _v = reactExports.useCallback(function(xv) {
      if (Jr(xv) && sv && rv.animated === !0) {
        var Cv;
        (Cv = rv.stopAnimation) === null || Cv === void 0 || Cv.call(rv);
      }
    }, [rv.animated, sv, rv.stopAnimation]), Ev = reactExports.useCallback(function(xv) {
      var Cv;
      (Cv = pv.current) === null || Cv === void 0 || Cv.call(pv, xv), _v(xv);
    }, [_v]), wv = reactExports.useCallback(function(xv) {
      var Cv;
      (Cv = yv.current) === null || Cv === void 0 || Cv.call(yv, xv), _v(xv);
    }, [_v]);
    return wt({
      id: rv.baseId,
      "data-enter": uv === "enter" ? "" : void 0,
      "data-leave": uv === "leave" ? "" : void 0,
      onTransitionEnd: Ev,
      onAnimationEnd: wv,
      hidden: dv,
      style: hv
    }, av);
  }
});
Tr({
  as: "div",
  useHook: hm
});
function mm() {
  return _i ? document.body : null;
}
var Cd = /* @__PURE__ */ reactExports.createContext(mm());
function Ei(rv) {
  var tv = rv.children, ev = reactExports.useContext(Cd) || mm(), iv = reactExports.useState(function() {
    if (_i) {
      var av = document.createElement("div");
      return av.className = Ei.__className, av;
    }
    return null;
  }), ov = iv[0];
  return Ia(function() {
    if (!(!ov || !ev))
      return ev.appendChild(ov), function() {
        ev.removeChild(ov);
      };
  }, [ov, ev]), ov ? /* @__PURE__ */ reactDomExports.createPortal(/* @__PURE__ */ reactExports.createElement(Cd.Provider, {
    value: ov
  }, tv), ov) : null;
}
Ei.__className = "__reakit-portal";
Ei.__selector = "." + Ei.__className;
function zx(rv, tv) {
  return tv === -1 ? rv : [].concat(rv.slice(0, tv), rv.slice(tv + 1));
}
function Rd(rv, tv) {
  var ev = rv.indexOf(tv);
  return zx(rv, ev);
}
var Vx = /* @__PURE__ */ reactExports.createContext(null);
function Wx(rv) {
  if (Array.isArray(rv)) {
    for (var tv = 0, ev = Array(rv.length); tv < rv.length; tv++)
      ev[tv] = rv[tv];
    return ev;
  } else
    return Array.from(rv);
}
var Su = !1;
if (typeof window < "u") {
  var _d = {
    get passive() {
      Su = !0;
    }
  };
  window.addEventListener("testPassive", null, _d), window.removeEventListener("testPassive", null, _d);
}
var pm = typeof window < "u" && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === "MacIntel" && window.navigator.maxTouchPoints > 1), On = [], No = !1, gm = -1, sa = void 0, la = void 0, vm = function(rv) {
  return On.some(function(tv) {
    return !!(tv.options.allowTouchMove && tv.options.allowTouchMove(rv));
  });
}, Fo = function(rv) {
  var tv = rv || window.event;
  return vm(tv.target) || tv.touches.length > 1 ? !0 : (tv.preventDefault && tv.preventDefault(), !1);
}, Kx = function(rv) {
  if (la === void 0) {
    var tv = !!rv && rv.reserveScrollBarGap === !0, ev = window.innerWidth - document.documentElement.clientWidth;
    tv && ev > 0 && (la = document.body.style.paddingRight, document.body.style.paddingRight = ev + "px");
  }
  sa === void 0 && (sa = document.body.style.overflow, document.body.style.overflow = "hidden");
}, Yx = function() {
  la !== void 0 && (document.body.style.paddingRight = la, la = void 0), sa !== void 0 && (document.body.style.overflow = sa, sa = void 0);
}, Xx = function(rv) {
  return rv ? rv.scrollHeight - rv.scrollTop <= rv.clientHeight : !1;
}, qx = function(rv, tv) {
  var ev = rv.targetTouches[0].clientY - gm;
  return vm(rv.target) ? !1 : tv && tv.scrollTop === 0 && ev > 0 || Xx(tv) && ev < 0 ? Fo(rv) : (rv.stopPropagation(), !0);
}, Zx = function(rv, tv) {
  if (!rv) {
    console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");
    return;
  }
  if (!On.some(function(iv) {
    return iv.targetElement === rv;
  })) {
    var ev = {
      targetElement: rv,
      options: tv || {}
    };
    On = [].concat(Wx(On), [ev]), pm ? (rv.ontouchstart = function(iv) {
      iv.targetTouches.length === 1 && (gm = iv.targetTouches[0].clientY);
    }, rv.ontouchmove = function(iv) {
      iv.targetTouches.length === 1 && qx(iv, rv);
    }, No || (document.addEventListener("touchmove", Fo, Su ? { passive: !1 } : void 0), No = !0)) : Kx(tv);
  }
}, Jx = function(rv) {
  if (!rv) {
    console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.");
    return;
  }
  On = On.filter(function(tv) {
    return tv.targetElement !== rv;
  }), pm ? (rv.ontouchstart = null, rv.ontouchmove = null, No && On.length === 0 && (document.removeEventListener("touchmove", Fo, Su ? { passive: !1 } : void 0), No = !1)) : On.length || Yx();
}, Qx = /* @__PURE__ */ reactExports.createContext(void 0);
function ew(rv) {
  return Array.isArray(rv) ? !rv.length : Qh(rv) ? !Object.keys(rv).length : rv == null || rv === "";
}
var bm = ["baseId", "unstable_idCountRef", "visible", "animated", "animating", "setBaseId", "show", "hide", "toggle", "setVisible", "setAnimated", "stopAnimation", "modal", "unstable_disclosureRef", "setModal"], tw = [].concat(bm, ["hideOnEsc", "hideOnClickOutside", "preventBodyScroll", "unstable_initialFocusRef", "unstable_finalFocusRef", "unstable_orphan", "unstable_autoFocusOnShow", "unstable_autoFocusOnHide"]), rw = bm, nw = rw;
function iw(rv, tv) {
  var ev = reactExports.useRef(null), iv = !!(tv.animated && tv.animating);
  return reactExports.useEffect(function() {
    if (!(tv.visible || iv)) {
      var ov = function(sv) {
        var lv = sv.target;
        "focus" in lv && (ev.current = lv, tv.unstable_disclosureRef && (tv.unstable_disclosureRef.current = lv));
      }, av = hr(rv.current);
      return av.addEventListener("focusin", ov), function() {
        return av.removeEventListener("focusin", ov);
      };
    }
  }, [tv.visible, iv, tv.unstable_disclosureRef, rv]), reactExports.useEffect(function() {
    var ov;
    if (!(!tv.visible || iv)) {
      var av = function(lv) {
        var uv = lv.currentTarget;
        ms(uv) && (lv.preventDefault(), uv.focus());
      }, sv = ((ov = tv.unstable_disclosureRef) === null || ov === void 0 ? void 0 : ov.current) || ev.current;
      return sv == null || sv.addEventListener("mousedown", av), function() {
        return sv == null ? void 0 : sv.removeEventListener("mousedown", av);
      };
    }
  }, [tv.visible, iv, tv.unstable_disclosureRef]), tv.unstable_disclosureRef || ev;
}
function aw(rv, tv) {
  var ev = !!(tv.preventBodyScroll && tv.visible);
  reactExports.useEffect(function() {
    var iv = rv.current;
    if (!(!iv || !ev))
      return Zx(iv, {
        reserveScrollBarGap: !0
      }), function() {
        return Jx(iv);
      };
  }, [rv, ev]);
}
function ow(rv, tv, ev) {
  var iv = ev.unstable_initialFocusRef, ov = ev.visible && ev.unstable_autoFocusOnShow, av = !!(ev.animated && ev.animating);
  cm(function() {
    var sv = rv.current;
    if (ov && sv && !av && !tv.some(function(cv) {
      return cv.current && !cv.current.hidden;
    }))
      if (iv != null && iv.current)
        iv.current.focus({
          preventScroll: !0
        });
      else {
        var lv = sm(sv, !0), uv = function() {
          return Tu(sv);
        };
        lv ? va(lv, {
          preventScroll: !0,
          isActive: uv
        }) : va(sv, {
          preventScroll: !0,
          isActive: uv
        });
      }
  }, [rv, ov, av, tv, iv]);
}
function sw(rv, tv) {
  var ev = reactExports.useRef(null);
  return reactExports.useEffect(function() {
    var iv = rv.current;
    !iv || !tv.visible || (ev.current = Sx(iv, Ei.__selector));
  }, [rv, tv.visible]), ev;
}
function Id(rv) {
  rv.parentNode != null && rv.parentNode.removeChild(rv);
}
var ym = "__reakit-focus-trap";
function lw(rv) {
  var tv;
  return (tv = rv.classList) === null || tv === void 0 ? void 0 : tv.contains(ym);
}
function uw(rv, tv, ev) {
  var iv = sw(rv, ev), ov = ev.visible && ev.modal, av = reactExports.useRef(null), sv = reactExports.useRef(null);
  reactExports.useEffect(function() {
    if (ov) {
      var lv = iv.current;
      if (lv) {
        if (!av.current) {
          var uv = hr(lv);
          av.current = uv.createElement("div"), av.current.className = ym, av.current.tabIndex = 0, av.current.style.position = "fixed", av.current.setAttribute("aria-hidden", "true");
        }
        return sv.current || (sv.current = av.current.cloneNode()), lv.insertAdjacentElement("beforebegin", av.current), lv.insertAdjacentElement("afterend", sv.current), function() {
          av.current && Id(av.current), sv.current && Id(sv.current);
        };
      }
    }
  }, [iv, ov]), reactExports.useEffect(function() {
    var lv = av.current, uv = sv.current;
    if (!(!ov || !lv || !uv)) {
      var cv = function(dv) {
        var hv = rv.current;
        if (!(!hv || tv.length)) {
          dv.preventDefault();
          var pv = dv.target === uv, yv = pv ? sm(hv) : Rx(hv);
          yv ? yv.focus() : hv.focus();
        }
      };
      return lv.addEventListener("focus", cv), uv.addEventListener("focus", cv), function() {
        lv.removeEventListener("focus", cv), uv.removeEventListener("focus", cv);
      };
    }
  }, [rv, tv, ov]);
}
function cw(rv) {
  var tv = rv.current;
  if (!tv)
    return !1;
  var ev = Ii(tv);
  return !ev || Nn(tv, ev) ? !1 : !!(_l(ev) || ev.getAttribute("data-dialog") === "true");
}
function dw(rv, tv, ev) {
  var iv = ev.unstable_autoFocusOnHide && !ev.visible, ov = !!(ev.animated && ev.animating);
  cm(function() {
    var av;
    if (iv && !ov && !cw(rv)) {
      var sv = ((av = ev.unstable_finalFocusRef) === null || av === void 0 ? void 0 : av.current) || tv.current;
      if (sv) {
        if (sv.id) {
          var lv = hr(sv), uv = lv.querySelector("[aria-activedescendant='" + sv.id + "']");
          if (uv) {
            va(uv);
            return;
          }
        }
        va(sv);
        return;
      }
    }
  }, [iv, ov, rv, tv]);
}
var Pd = /* @__PURE__ */ reactExports.createContext({});
function fw(rv, tv) {
  var ev = reactExports.useContext(Pd), iv = reactExports.useState([]), ov = iv[0], av = iv[1], sv = reactExports.useState(ov), lv = sv[0], uv = sv[1], cv = reactExports.useCallback(function(_v) {
    var Ev;
    (Ev = ev.addDialog) === null || Ev === void 0 || Ev.call(ev, _v), av(function(wv) {
      return [].concat(wv, [_v]);
    });
  }, [ev.addDialog]), dv = reactExports.useCallback(function(_v) {
    var Ev;
    (Ev = ev.removeDialog) === null || Ev === void 0 || Ev.call(ev, _v), av(function(wv) {
      return Rd(wv, _v);
    });
  }, [ev.removeDialog]), hv = reactExports.useCallback(function(_v) {
    var Ev;
    (Ev = ev.showDialog) === null || Ev === void 0 || Ev.call(ev, _v), uv(function(wv) {
      return [].concat(wv, [_v]);
    });
  }, [ev.showDialog]), pv = reactExports.useCallback(function(_v) {
    var Ev;
    (Ev = ev.hideDialog) === null || Ev === void 0 || Ev.call(ev, _v), uv(function(wv) {
      return Rd(wv, _v);
    });
  }, [ev.hideDialog]);
  reactExports.useEffect(function() {
    var _v;
    if (!tv.unstable_orphan)
      return (_v = ev.addDialog) === null || _v === void 0 || _v.call(ev, rv), function() {
        var Ev;
        (Ev = ev.removeDialog) === null || Ev === void 0 || Ev.call(ev, rv);
      };
  }, [tv.unstable_orphan, ev.addDialog, rv, ev.removeDialog]), reactExports.useEffect(function() {
    var _v;
    if (!tv.unstable_orphan && tv.modal && tv.visible)
      return (_v = ev.showDialog) === null || _v === void 0 || _v.call(ev, rv), function() {
        var Ev;
        (Ev = ev.hideDialog) === null || Ev === void 0 || Ev.call(ev, rv);
      };
  }, [tv.unstable_orphan, tv.modal, tv.visible, ev.showDialog, rv, ev.hideDialog]), reactExports.useEffect(function() {
    if (ev.visible === !1 && tv.visible && !tv.unstable_orphan) {
      var _v;
      (_v = tv.hide) === null || _v === void 0 || _v.call(tv);
    }
  }, [ev.visible, tv.visible, tv.hide, tv.unstable_orphan]);
  var yv = reactExports.useMemo(function() {
    return {
      visible: tv.visible,
      addDialog: cv,
      removeDialog: dv,
      showDialog: hv,
      hideDialog: pv
    };
  }, [tv.visible, cv, dv, hv, pv]), Sv = reactExports.useCallback(function(_v) {
    return /* @__PURE__ */ reactExports.createElement(Pd.Provider, {
      value: yv
    }, _v);
  }, [yv]);
  return {
    dialogs: ov,
    visibleModals: lv,
    wrap: Sv
  };
}
function hw(rv) {
  return function(tv) {
    var ev = tv.current;
    if (!ev)
      return !1;
    if (Nn(ev, rv))
      return !0;
    var iv = hr(ev), ov = iv.querySelector('[data-dialog-ref="' + ev.id + '"]');
    return ov ? Nn(ov, rv) : !1;
  };
}
function mw(rv, tv) {
  return Nn(tv, rv);
}
function pw(rv) {
  var tv = hr(rv);
  return rv.tagName === "HTML" ? !0 : Nn(tv.body, rv);
}
function Il(rv, tv, ev, iv, ov, av, sv) {
  var lv = Ft(ov);
  reactExports.useEffect(function() {
    if (av) {
      var uv = function(dv) {
        if (lv.current) {
          var hv = rv.current, pv = tv.current, yv = dv.target;
          hv && pw(yv) && (Nn(hv, yv) || pv && mw(yv, pv) || lw(yv) || ev.some(hw(yv)) || lv.current(dv));
        }
      }, cv = hr(rv.current);
      return cv.addEventListener(iv, uv, sv), function() {
        return cv.removeEventListener(iv, uv, sv);
      };
    }
  }, [rv, tv, ev, iv, av, lv]);
}
function gw(rv, tv) {
  var ev = reactExports.useRef();
  return reactExports.useEffect(function() {
    if (tv.visible && tv.hideOnClickOutside) {
      var iv = hr(rv.current), ov = function(av) {
        ev.current = av.target;
      };
      return iv.addEventListener("mousedown", ov), function() {
        return iv.removeEventListener("mousedown", ov);
      };
    }
  }, [tv.visible, tv.hideOnClickOutside, rv]), ev;
}
function vw(rv, tv, ev, iv) {
  var ov = gw(rv, iv);
  Il(rv, tv, ev, "click", function(av) {
    if (ov.current === av.target) {
      var sv;
      (sv = iv.hide) === null || sv === void 0 || sv.call(iv);
    }
  }, iv.visible && iv.hideOnClickOutside), Il(rv, tv, ev, "focusin", function(av) {
    var sv = hr(rv.current);
    if (av.target !== sv && av.target !== sv.body) {
      var lv;
      (lv = iv.hide) === null || lv === void 0 || lv.call(iv);
    }
  }, iv.visible && iv.hideOnClickOutside);
}
function bw(rv, tv, ev) {
  var iv = function(ov) {
    return Il(rv, {
      current: null
    }, tv, ov, function(av) {
      av.stopPropagation(), av.preventDefault();
    }, ev.visible && ev.modal, !0);
  };
  iv("mouseover"), iv("mousemove"), iv("mouseout");
}
function yw(rv, tv) {
  reactExports.useEffect(function() {
    var ev = rv.current;
    if (!(!tv.visible || !ev)) {
      var iv = new MutationObserver(function(ov) {
        var av = ov[0].target;
        if (av === ev) {
          var sv = hr(ev), lv = Ii(ev);
          (lv === sv.body || ew(lv)) && ev.focus();
        }
      });
      return iv.observe(ev, {
        childList: !0,
        subtree: !0
      }), function() {
        iv.disconnect();
      };
    }
  }, [tv.visible, rv]);
}
function Od(rv) {
  return rv && rv.tagName && rv.tagName !== "HTML" && rv !== hr(rv).body;
}
function Ew(rv, tv) {
  var ev = reactExports.useReducer(function(sv) {
    return sv + 1;
  }, 0), iv = ev[0], ov = ev[1];
  Ia(function() {
    var sv = rv.current;
    tv.visible && iv && (Od(Ii(sv)) || sv == null || sv.focus());
  }, [iv, rv]);
  var av = reactExports.useCallback(function(sv) {
    if (tv.visible) {
      var lv = dm(sv);
      Od(lv) || ov();
    }
  }, [tv.visible]);
  return av;
}
var Em = Sr({
  name: "Dialog",
  compose: hm,
  keys: tw,
  useOptions: function(rv) {
    var tv = rv.modal, ev = tv === void 0 ? !0 : tv, iv = rv.hideOnEsc, ov = iv === void 0 ? !0 : iv, av = rv.hideOnClickOutside, sv = av === void 0 ? !0 : av, lv = rv.preventBodyScroll, uv = lv === void 0 ? ev : lv, cv = rv.unstable_autoFocusOnShow, dv = cv === void 0 ? !0 : cv, hv = rv.unstable_autoFocusOnHide, pv = hv === void 0 ? !0 : hv, yv = rv.unstable_orphan, Sv = Jt(rv, ["modal", "hideOnEsc", "hideOnClickOutside", "preventBodyScroll", "unstable_autoFocusOnShow", "unstable_autoFocusOnHide", "unstable_orphan"]);
    return wt({
      modal: ev,
      hideOnEsc: ov,
      hideOnClickOutside: sv,
      preventBodyScroll: ev && uv,
      unstable_autoFocusOnShow: dv,
      unstable_autoFocusOnHide: pv,
      unstable_orphan: ev && yv
    }, Sv);
  },
  useProps: function(rv, tv) {
    var ev = tv.ref, iv = tv.onKeyDown, ov = tv.onBlur, av = tv.wrapElement, sv = tv.tabIndex, lv = Jt(tv, ["ref", "onKeyDown", "onBlur", "wrapElement", "tabIndex"]), uv = reactExports.useRef(null), cv = reactExports.useContext(Qx), dv = cv && cv === rv.baseId, hv = iw(uv, rv), pv = Ft(iv), yv = Ft(ov), Sv = Ew(uv, rv), _v = fw(uv, rv), Ev = _v.dialogs, wv = _v.visibleModals, xv = _v.wrap, Cv = rv.modal && !wv.length ? !0 : void 0;
    aw(uv, rv), uw(uv, wv, rv), yw(uv, rv), ow(uv, Ev, rv), dw(uv, hv, rv), vw(uv, hv, Ev, rv), bw(uv, Ev, rv);
    var Av = reactExports.useCallback(function(jv) {
      var Dv;
      (Dv = pv.current) === null || Dv === void 0 || Dv.call(pv, jv), !jv.defaultPrevented && jv.key === "Escape" && rv.hideOnEsc && rv.hide && (jv.stopPropagation(), rv.hide());
    }, [rv.hideOnEsc, rv.hide]), Ov = reactExports.useCallback(function(jv) {
      var Dv;
      (Dv = yv.current) === null || Dv === void 0 || Dv.call(yv, jv), Sv(jv);
    }, [Sv]), Lv = reactExports.useCallback(function(jv) {
      return jv = xv(jv), rv.modal && !dv && (jv = /* @__PURE__ */ reactExports.createElement(Ei, null, jv)), av && (jv = av(jv)), // Prevents Menu > Dialog > Menu to behave as a sub menu
      /* @__PURE__ */ reactExports.createElement(Vx.Provider, {
        value: null
      }, jv);
    }, [xv, rv.modal, dv, av]);
    return wt({
      ref: $n(uv, ev),
      role: "dialog",
      tabIndex: sv ?? -1,
      "aria-modal": Cv,
      "data-dialog": !0,
      onKeyDown: Av,
      onBlur: Ov,
      wrapElement: Lv
    }, lv);
  }
});
Tr({
  as: "div",
  useHook: Em,
  useCreateElement: function(rv, tv, ev) {
    return _a(rv, tv, ev);
  }
});
var xw = ["baseId", "unstable_idCountRef", "visible", "animated", "animating", "setBaseId", "show", "hide", "toggle", "setVisible", "setAnimated", "stopAnimation", "modal", "unstable_disclosureRef", "setModal", "unstable_referenceRef", "unstable_popoverRef", "unstable_arrowRef", "unstable_popoverStyles", "unstable_arrowStyles", "unstable_originalPlacement", "unstable_update", "placement", "place"], xm = xw, ww = xm, Tw = ww, Sw = Sr({
  name: "Popover",
  compose: Em,
  keys: xm,
  useOptions: function(rv) {
    var tv = rv.modal, ev = tv === void 0 ? !1 : tv, iv = Jt(rv, ["modal"]);
    return wt({
      modal: ev
    }, iv);
  },
  useProps: function(rv, tv) {
    var ev = tv.ref, iv = tv.style, ov = Jt(tv, ["ref", "style"]);
    return wt({
      ref: $n(rv.unstable_popoverRef, ev),
      style: wt(wt({}, rv.unstable_popoverStyles), iv)
    }, ov);
  }
}), Aw = Tr({
  as: "div",
  useHook: Sw,
  useCreateElement: function(rv, tv, ev) {
    return _a(rv, tv, ev);
  }
}), wm = Sr({
  name: "Disclosure",
  compose: um,
  keys: fm,
  useProps: function(rv, tv) {
    var ev = tv.onClick, iv = tv["aria-controls"], ov = Jt(tv, ["onClick", "aria-controls"]), av = Ft(ev), sv = iv ? iv + " " + rv.baseId : rv.baseId, lv = reactExports.useCallback(function(uv) {
      var cv, dv;
      (cv = av.current) === null || cv === void 0 || cv.call(av, uv), !uv.defaultPrevented && ((dv = rv.toggle) === null || dv === void 0 || dv.call(rv));
    }, [rv.toggle]);
    return wt({
      "aria-expanded": !!rv.visible,
      "aria-controls": sv,
      onClick: lv
    }, ov);
  }
});
Tr({
  as: "button",
  memo: !0,
  useHook: wm
});
var Tm = Sr({
  name: "DialogDisclosure",
  compose: wm,
  keys: nw,
  useProps: function(rv, tv) {
    var ev = tv.ref, iv = tv.onClick, ov = Jt(tv, ["ref", "onClick"]), av = reactExports.useRef(null), sv = Ft(iv), lv = reactExports.useState(!1), uv = lv[0], cv = lv[1], dv = rv.unstable_disclosureRef;
    Ia(function() {
      var pv = av.current;
      dv && !dv.current && (dv.current = pv);
      var yv = !(dv != null && dv.current) || dv.current === pv;
      cv(!!rv.visible && yv);
    }, [rv.visible, dv]);
    var hv = reactExports.useCallback(function(pv) {
      var yv;
      (yv = sv.current) === null || yv === void 0 || yv.call(sv, pv), !pv.defaultPrevented && dv && (dv.current = pv.currentTarget);
    }, [dv]);
    return wt({
      ref: $n(av, ev),
      "aria-haspopup": "dialog",
      "aria-expanded": uv,
      onClick: hv
    }, ov);
  }
});
Tr({
  as: "button",
  memo: !0,
  useHook: Tm
});
var Cw = Sr({
  name: "PopoverDisclosure",
  compose: Tm,
  keys: Tw,
  useProps: function(rv, tv) {
    var ev = tv.ref, iv = Jt(tv, ["ref"]);
    return wt({
      ref: $n(rv.unstable_referenceRef, ev)
    }, iv);
  }
}), Rw = Tr({
  as: "button",
  memo: !0,
  useHook: Cw
}), _w = ["baseId", "unstable_idCountRef", "setBaseId"], Iw = [].concat(_w, ["id"]), Au = Sr({
  keys: Iw,
  useOptions: function(rv, tv) {
    var ev = reactExports.useContext(jx), iv = reactExports.useState(function() {
      return rv.unstable_idCountRef ? (rv.unstable_idCountRef.current += 1, "-" + rv.unstable_idCountRef.current) : rv.baseId ? "-" + ev("") : "";
    }), ov = iv[0], av = reactExports.useMemo(function() {
      return rv.baseId || ev();
    }, [rv.baseId, ev]), sv = tv.id || rv.id || "" + av + ov;
    return wt(wt({}, rv), {}, {
      id: sv
    });
  },
  useProps: function(rv, tv) {
    return wt({
      id: rv.id
    }, tv);
  }
});
Tr({
  as: "div",
  useHook: Au
});
function Pw(rv, tv) {
  if (rv == null)
    return {};
  var ev = {}, iv = Object.keys(rv), ov, av;
  for (av = 0; av < iv.length; av++)
    ov = iv[av], !(tv.indexOf(ov) >= 0) && (ev[ov] = rv[ov]);
  return ev;
}
var Ow = ["width", "height", "weight", "mirrored", "title", "children", "renderPath"], ur = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev = rv.width, iv = ev === void 0 ? "1.25rem" : ev, ov = rv.height, av = ov === void 0 ? "1.25rem" : ov, sv = rv.weight, lv = sv === void 0 ? "outline" : sv, uv = rv.mirrored, cv = uv === void 0 ? !1 : uv, dv = rv.title, hv = rv.children, pv = rv.renderPath, yv = Pw(rv, Ow);
  return React.createElement("svg", Object.assign({
    ref: tv,
    xmlns: "http://www.w3.org/2000/svg",
    width: iv,
    height: av,
    fill: "currentColor",
    viewBox: "0 0 256 256",
    transform: cv ? "scale(-1, 1)" : void 0
  }, yv), dv ? React.createElement("title", null, dv) : null, React.createElement("rect", {
    width: "16rem",
    height: "16rem",
    fill: "none"
  }), hv, pv(lv, "currentColor"));
}), Sm = /* @__PURE__ */ reactExports.createContext({
  useIconProps: function(rv) {
    return rv;
  }
});
function cr() {
  var rv = reactExports.useContext(Sm);
  return rv || qh(!1), rv;
}
function Lw(rv) {
  var tv = rv.useIconProps;
  function ev(iv) {
    var ov = iv.children;
    return React.createElement(Sm.Provider, {
      value: {
        useIconProps: tv
      }
    }, ov);
  }
  return ev;
}
var kw = ["outline", "fill"], dr = function(rv, tv) {
  return kw.includes(rv) ? tv() : (console.error('Unsupported icon weight. Choose from "outline" or "fill".'), null);
}, Dw = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M205.65674,149.65723l-72,72a8.00063,8.00063,0,0,1-11.31348,0l-72-72A8.0001,8.0001,0,0,1,56,136h64V40a8,8,0,0,1,16,0v96h64a8.0001,8.0001,0,0,1,5.65674,13.65723Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("line", {
          x1: "128",
          y1: "40",
          x2: "128",
          y2: "216",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("polyline", {
          points: "56 144 128 216 200 144",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Nw = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M224,128a8.00039,8.00039,0,0,1-8,8H120v64a8.00018,8.00018,0,0,1-13.65674,5.65723l-72-72a8.00034,8.00034,0,0,1,0-11.31446l72-72A8.00037,8.00037,0,0,1,120,56v64h96A8.00039,8.00039,0,0,1,224,128Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("line", {
          x1: "216",
          y1: "128",
          x2: "40",
          y2: "128",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("polyline", {
          points: "112 56 40 128 112 200",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Fw = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M207.39111,115.06152A8.00065,8.00065,0,0,1,200,120H136v96a8,8,0,0,1-16,0V120H56a8.0001,8.0001,0,0,1-5.65674-13.65723l72-72a8.00182,8.00182,0,0,1,11.31348,0l72,72A8.00148,8.00148,0,0,1,207.39111,115.06152Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("line", {
          x1: "128",
          y1: "216",
          x2: "128",
          y2: "40",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("polyline", {
          points: "56 112 128 40 200 112",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Am = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M220.81445,175.9397c-5.93457-10.21582-13.00976-29.60157-13.00976-63.93946v-7.09668c0-44.28515-35.52735-80.57715-79.19629-80.90136-.2041-.001-.40625-.002-.61035-.002a79.89891,79.89891,0,0,0-79.79493,80v8c0,34.33594-7.0791,53.72071-13.0166,63.93555A15.99885,15.99885,0,0,0,48.9834,200.00024H88a40,40,0,0,0,80,0h39.0166a15.99808,15.99808,0,0,0,13.79785-24.06054ZM128,224.00024a24.0275,24.0275,0,0,1-24-24h48A24.0275,24.0275,0,0,1,128,224.00024Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M56.20305,104A71.899,71.899,0,0,1,128.5484,32.002c39.58967.29432,71.25651,33.20133,71.25651,72.90185V112c0,35.81563,7.49325,56.59893,14.093,67.95814A7.999,7.999,0,0,1,207.01628,192H48.98365A7.99908,7.99908,0,0,1,42.103,179.95641c6.60328-11.35959,14.1-32.1426,14.1-67.95641Z",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("path", {
          d: "M96,192v8a32,32,0,0,0,64,0v-8",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Mw = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M207.99414,31.9971h-24v-8a8,8,0,1,0-16,0v8h-80v-8a8,8,0,0,0-16,0v8h-24a16.01583,16.01583,0,0,0-16,16v160a16.01582,16.01582,0,0,0,16,16h160a16.01581,16.01581,0,0,0,16-16v-160A16.01582,16.01582,0,0,0,207.99414,31.9971Zm0,48h-160v-32h24v8a8,8,0,0,0,16,0v-8h80v8a8,8,0,1,0,16,0v-8h24Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("rect", {
          x: "40",
          y: "40",
          width: "176",
          height: "176",
          rx: "8",
          strokeWidth: "18",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          fill: "none"
        }), React.createElement("line", {
          x1: "176",
          y1: "24",
          x2: "176",
          y2: "56",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("line", {
          x1: "80",
          y1: "24",
          x2: "80",
          y2: "56",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("line", {
          x1: "40",
          y1: "88",
          x2: "216",
          y2: "88",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Cu = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M215.39111,92.93848A8.00015,8.00015,0,0,0,208,88H48a8,8,0,0,0-5.65674,13.657l80,79.99976a7.99945,7.99945,0,0,0,11.31348,0l80-79.99976A8.00011,8.00011,0,0,0,215.39111,92.93848Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("polyline", {
          points: "208 96 128 176 48 96",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Cm = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M163.06152,40.60889a8.00159,8.00159,0,0,0-8.71826,1.73388l-80,80a8.00034,8.00034,0,0,0,0,11.31446l80,80A8.0001,8.0001,0,0,0,168,208V48A8.00065,8.00065,0,0,0,163.06152,40.60889Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("polyline", {
          points: "160 208 80 128 160 48",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Rm = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M181.65674,122.34277l-80-80A8.0001,8.0001,0,0,0,88,48V208a8.00018,8.00018,0,0,0,13.65674,5.65723l80-80A8.00034,8.00034,0,0,0,181.65674,122.34277Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("polyline", {
          points: "96 48 176 128 96 208",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), ps = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M213.65674,154.34326l-80-80a8,8,0,0,0-11.31348,0l-80,80A7.99981,7.99981,0,0,0,48,168H208a7.99981,7.99981,0,0,0,5.65674-13.65674Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("polyline", {
          points: "48 160 128 80 208 160",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), $w = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("polyline", {
          points: "216 72.005 104 184 48 128.005",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), _m = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M128,24A104,104,0,1,0,232,128,104.12041,104.12041,0,0,0,128,24Zm49.53125,85.78906-58.67187,56a8.02441,8.02441,0,0,1-11.0625,0l-29.32813-28a8.00675,8.00675,0,0,1,11.0625-11.57812l23.79687,22.72656,53.14063-50.72656a8.00675,8.00675,0,0,1,11.0625,11.57812Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("polyline", {
          points: "172 104 113.333 160 84 132",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("circle", {
          cx: "128",
          cy: "128",
          r: "96",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Bw = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("circle", {
          cx: "128",
          cy: "58",
          r: "20"
        }), React.createElement("circle", {
          cx: "128",
          cy: "128",
          r: "20"
        }), React.createElement("circle", {
          cx: "128",
          cy: "198",
          r: "20"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Im = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M175.99609,116a60,60,0,1,1-60-60A60.06812,60.06812,0,0,1,175.99609,116Zm53.65137,113.65771a8.0006,8.0006,0,0,1-11.31445,0l-43.2229-43.2229a92.11513,92.11513,0,1,1,11.31445-11.31347l43.2229,43.2229A8,8,0,0,1,229.64746,229.65771ZM115.99609,192a76,76,0,1,0-76-76A76.08614,76.08614,0,0,0,115.99609,192Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("circle", {
          cx: "116",
          cy: "116",
          r: "84",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("line", {
          x1: "175.39356",
          y1: "175.40039",
          x2: "223.99414",
          y2: "224.00098",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Pm = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M236.74414,187.96585l-87.96875-152a24.012,24.012,0,0,0-41.54687,0v.00782L19.25977,187.96585a23.9982,23.9982,0,0,0,20.76562,36.02344H215.97852a23.9982,23.9982,0,0,0,20.76562-36.02344Zm-116.75-83.96875a8,8,0,1,1,16,0v40a8,8,0,1,1-16,0ZM128,192a12,12,0,1,1,12-12A12.00059,12.00059,0,0,1,128,192Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("line", {
          x1: "128",
          y1: "104",
          x2: "128",
          y2: "144",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("path", {
          d: "M114.15243,39.98472,26.17616,191.977a16.00005,16.00005,0,0,0,13.84762,24.01535H215.97625A16,16,0,0,0,229.82386,191.977L141.84757,39.98472A16,16,0,0,0,114.15243,39.98472Z",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("circle", {
          cx: "128",
          cy: "180",
          r: "12"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), gs = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M139.31348,128l66.34326-66.34326a7.99984,7.99984,0,0,0-11.31348-11.31348L128,116.68652,61.65674,50.34326A7.99984,7.99984,0,0,0,50.34326,61.65674L116.68652,128,50.34326,194.34326a7.99984,7.99984,0,1,0,11.31348,11.31348L128,139.31348l66.34326,66.34326a7.99984,7.99984,0,0,0,11.31348-11.31348Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("line", {
          x1: "200",
          y1: "56",
          x2: "56",
          y2: "200",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("line", {
          x1: "200",
          y1: "200",
          x2: "56",
          y2: "56",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Ru = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M128,24A104,104,0,1,0,232,128,104.12041,104.12041,0,0,0,128,24Zm37.65625,130.34375a7.99915,7.99915,0,1,1-11.3125,11.3125L128,139.3125l-26.34375,26.34375a7.99915,7.99915,0,0,1-11.3125-11.3125L116.6875,128,90.34375,101.65625a7.99915,7.99915,0,0,1,11.3125-11.3125L128,116.6875l26.34375-26.34375a7.99915,7.99915,0,0,1,11.3125,11.3125L139.3125,128Z"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("circle", {
          cx: "128",
          cy: "128",
          r: "96",
          fill: "none",
          stroke: "currentColor",
          strokeMiterlimit: "10",
          strokeWidth: "18"
        }), React.createElement("line", {
          x1: "160",
          y1: "96",
          x2: "96",
          y2: "160",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }), React.createElement("line", {
          x1: "160",
          y1: "160",
          x2: "96",
          y2: "96",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "18"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
}), Om = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev;
  switch (rv.weight) {
    case "fill":
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          fillRule: "evenodd",
          clipRule: "evenodd",
          d: "M175.766 28.6875L227.312 80.2344C230.303 83.2416 231.987 87.3064 232 91.5472V164.453C231.987 168.694 230.303 172.758 227.312 175.766L175.766 227.313C172.759 230.302 168.694 231.987 164.453 232H91.5466C87.3058 231.987 83.2418 230.302 80.2346 227.313L28.6874 175.766C25.6974 172.758 24.0131 168.694 24 164.453V91.5472C24.0131 87.3064 25.6974 83.2416 28.6874 80.2344L80.2346 28.6875C83.2418 25.6974 87.3058 24.0132 91.5466 24H164.453C168.694 24.0132 172.759 25.6974 175.766 28.6875ZM167.387 156.932C166.984 155.962 166.393 155.079 165.649 154.337L139.306 127.993L165.649 101.65C167.147 100.149 167.987 98.1152 167.986 95.9952C167.985 93.8752 167.143 91.8416 165.643 90.3432C164.144 88.844 162.111 88.0008 159.991 88C157.871 87.9992 155.838 88.8392 154.337 90.3368L127.993 116.681L101.649 90.3368C100.149 88.8392 98.1146 87.9992 95.9946 88C93.8746 88.0008 91.8418 88.844 90.3426 90.3432C88.8434 91.8416 88.001 93.8752 88.0002 95.9952C87.9986 98.1152 88.8394 100.149 90.337 101.65L116.68 127.993L90.337 154.337C88.8394 155.838 87.9986 157.871 88.0002 159.991C88.001 162.111 88.8434 164.144 90.3426 165.643C91.8418 167.142 93.8746 167.985 95.9946 167.986C98.1146 167.987 100.149 167.147 101.649 165.65L127.993 139.306L154.337 165.65C155.079 166.394 155.961 166.984 156.932 167.387C157.903 167.79 158.943 167.998 159.995 167.998C161.046 167.999 162.087 167.792 163.059 167.39C164.03 166.988 164.912 166.398 165.655 165.655C166.399 164.912 166.988 164.03 167.39 163.058C167.792 162.087 167.999 161.046 167.999 159.995C167.998 158.944 167.79 157.903 167.387 156.932Z",
          fill: "currentColor"
        }));
      };
      break;
    default:
      ev = function() {
        return React.createElement(React.Fragment, null, React.createElement("path", {
          d: "M164.45 32H91.5496C90.4984 32 89.4584 32.207 88.488 32.609C87.5168 33.011 86.6352 33.6003 85.892 34.3431L34.3431 85.892C33.6003 86.6352 33.011 87.5168 32.609 88.488C32.207 89.4584 32 90.4984 32 91.5496V164.45C32 165.502 32.207 166.542 32.609 167.512C33.011 168.483 33.6003 169.365 34.3431 170.108L85.892 221.657C86.6352 222.4 87.5168 222.989 88.488 223.391C89.4584 223.793 90.4984 224 91.5496 224H164.45C165.502 224 166.542 223.793 167.512 223.391C168.483 222.989 169.365 222.4 170.108 221.657L221.657 170.108C222.4 169.365 222.989 168.483 223.391 167.512C223.793 166.542 224 165.502 224 164.45V91.5496C224 90.4984 223.793 89.4584 223.391 88.488C222.989 87.5168 222.4 86.6352 221.657 85.892L170.108 34.3431C169.365 33.6003 168.483 33.011 167.512 32.609C166.542 32.207 165.502 32 164.45 32Z",
          fill: "none",
          stroke: "currentColor",
          strokeWidth: "18",
          strokeMiterlimit: "10"
        }), React.createElement("path", {
          d: "M160 96L96 160",
          fill: "none",
          stroke: "currentColor",
          strokeWidth: "18",
          strokeLinecap: "round",
          strokeLinejoin: "round"
        }), React.createElement("path", {
          d: "M160 160L96 96",
          fill: "none",
          stroke: "currentColor",
          strokeWidth: "18",
          strokeLinecap: "round",
          strokeLinejoin: "round"
        }));
      };
      break;
  }
  var iv = function(lv) {
    return dr(lv, ev);
  }, ov = cr(), av = ov.useIconProps, sv = av(rv);
  return React.createElement(ur, Object.assign({
    ref: tv
  }, sv, {
    renderPath: iv
  }));
});
const Uw = /* @__PURE__ */ React.createContext(!1);
React.useId;
function Vw() {
  return !1;
}
function Ww() {
  return !0;
}
function Kw(rv) {
  return () => {
  };
}
function km() {
  return typeof React.useSyncExternalStore == "function" ? React.useSyncExternalStore(Kw, Vw, Ww) : reactExports.useContext(Uw);
}
const Yw = Symbol.for("react-aria.i18n.locale"), Xw = Symbol.for("react-aria.i18n.strings");
let ui;
class vs {
  /** Returns a localized string for the given key and locale. */
  getStringForLocale(tv, ev) {
    let iv = this.getStringsForLocale(ev)[tv];
    if (!iv)
      throw new Error(`Could not find intl message ${tv} in ${ev} locale`);
    return iv;
  }
  /** Returns all localized strings for the given locale. */
  getStringsForLocale(tv) {
    let ev = this.strings[tv];
    return ev || (ev = qw(tv, this.strings, this.defaultLocale), this.strings[tv] = ev), ev;
  }
  static getGlobalDictionaryForPackage(tv) {
    if (typeof window > "u")
      return null;
    let ev = window[Yw];
    if (ui === void 0) {
      let ov = window[Xw];
      if (!ov)
        return null;
      ui = {};
      for (let av in ov)
        ui[av] = new vs({
          [ev]: ov[av]
        }, ev);
    }
    let iv = ui == null ? void 0 : ui[tv];
    if (!iv)
      throw new Error(`Strings for package "${tv}" were not included by LocalizedStringProvider. Please add it to the list passed to createLocalizedStringDictionary.`);
    return iv;
  }
  constructor(tv, ev = "en-US") {
    this.strings = {
      ...tv
    }, this.defaultLocale = ev;
  }
}
function qw(rv, tv, ev = "en-US") {
  if (tv[rv])
    return tv[rv];
  let iv = Zw(rv);
  if (tv[iv])
    return tv[iv];
  for (let ov in tv)
    if (ov.startsWith(iv + "-"))
      return tv[ov];
  return tv[ev];
}
function Zw(rv) {
  return Intl.Locale ? new Intl.Locale(rv).language : rv.split("-")[0];
}
const Ld = /* @__PURE__ */ new Map(), kd = /* @__PURE__ */ new Map();
class Jw {
  /** Formats a localized string for the given key with the provided variables. */
  format(tv, ev) {
    let iv = this.strings.getStringForLocale(tv, this.locale);
    return typeof iv == "function" ? iv(ev, this) : iv;
  }
  plural(tv, ev, iv = "cardinal") {
    let ov = ev["=" + tv];
    if (ov)
      return typeof ov == "function" ? ov() : ov;
    let av = this.locale + ":" + iv, sv = Ld.get(av);
    sv || (sv = new Intl.PluralRules(this.locale, {
      type: iv
    }), Ld.set(av, sv));
    let lv = sv.select(tv);
    return ov = ev[lv] || ev.other, typeof ov == "function" ? ov() : ov;
  }
  number(tv) {
    let ev = kd.get(this.locale);
    return ev || (ev = new Intl.NumberFormat(this.locale), kd.set(this.locale, ev)), ev.format(tv);
  }
  select(tv, ev) {
    let iv = tv[ev] || tv.other;
    return typeof iv == "function" ? iv() : iv;
  }
  constructor(tv, ev) {
    this.locale = tv, this.strings = ev;
  }
}
let Ys = /* @__PURE__ */ new Map();
class Qw {
  /** Formats a date as a string according to the locale and format options passed to the constructor. */
  format(tv) {
    return this.formatter.format(tv);
  }
  /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */
  formatToParts(tv) {
    return this.formatter.formatToParts(tv);
  }
  /** Formats a date range as a string. */
  formatRange(tv, ev) {
    if (typeof this.formatter.formatRange == "function")
      return this.formatter.formatRange(tv, ev);
    if (ev < tv)
      throw new RangeError("End date must be >= start date");
    return `${this.formatter.format(tv)} – ${this.formatter.format(ev)}`;
  }
  /** Formats a date range as an array of parts. */
  formatRangeToParts(tv, ev) {
    if (typeof this.formatter.formatRangeToParts == "function")
      return this.formatter.formatRangeToParts(tv, ev);
    if (ev < tv)
      throw new RangeError("End date must be >= start date");
    let iv = this.formatter.formatToParts(tv), ov = this.formatter.formatToParts(ev);
    return [
      ...iv.map((av) => ({
        ...av,
        source: "startRange"
      })),
      {
        type: "literal",
        value: " – ",
        source: "shared"
      },
      ...ov.map((av) => ({
        ...av,
        source: "endRange"
      }))
    ];
  }
  /** Returns the resolved formatting options based on the values passed to the constructor. */
  resolvedOptions() {
    let tv = this.formatter.resolvedOptions();
    return rT() && (this.resolvedHourCycle || (this.resolvedHourCycle = nT(tv.locale, this.options)), tv.hourCycle = this.resolvedHourCycle, tv.hour12 = this.resolvedHourCycle === "h11" || this.resolvedHourCycle === "h12"), tv.calendar === "ethiopic-amete-alem" && (tv.calendar = "ethioaa"), tv;
  }
  constructor(tv, ev = {}) {
    this.formatter = Dm(tv, ev), this.options = ev;
  }
}
const eT = {
  true: {
    // Only Japanese uses the h11 style for 12 hour time. All others use h12.
    ja: "h11"
  },
  false: {}
};
function Dm(rv, tv = {}) {
  if (typeof tv.hour12 == "boolean" && tT()) {
    tv = {
      ...tv
    };
    let ov = eT[String(tv.hour12)][rv.split("-")[0]], av = tv.hour12 ? "h12" : "h23";
    tv.hourCycle = ov ?? av, delete tv.hour12;
  }
  let ev = rv + (tv ? Object.entries(tv).sort((ov, av) => ov[0] < av[0] ? -1 : 1).join() : "");
  if (Ys.has(ev))
    return Ys.get(ev);
  let iv = new Intl.DateTimeFormat(rv, tv);
  return Ys.set(ev, iv), iv;
}
let Xs = null;
function tT() {
  return Xs == null && (Xs = new Intl.DateTimeFormat("en-US", {
    hour: "numeric",
    hour12: !1
  }).format(new Date(2020, 2, 3, 0)) === "24"), Xs;
}
let qs = null;
function rT() {
  return qs == null && (qs = new Intl.DateTimeFormat("fr", {
    hour: "numeric",
    hour12: !1
  }).resolvedOptions().hourCycle === "h12"), qs;
}
function nT(rv, tv) {
  if (!tv.timeStyle && !tv.hour)
    return;
  rv = rv.replace(/(-u-)?-nu-[a-zA-Z0-9]+/, ""), rv += (rv.includes("-u-") ? "" : "-u") + "-nu-latn";
  let ev = Dm(rv, {
    ...tv,
    timeZone: void 0
    // use local timezone
  }), iv = parseInt(ev.formatToParts(new Date(2020, 2, 3, 0)).find((av) => av.type === "hour").value, 10), ov = parseInt(ev.formatToParts(new Date(2020, 2, 3, 23)).find((av) => av.type === "hour").value, 10);
  if (iv === 0 && ov === 23)
    return "h23";
  if (iv === 24 && ov === 23)
    return "h24";
  if (iv === 0 && ov === 11)
    return "h11";
  if (iv === 12 && ov === 11)
    return "h12";
  throw new Error("Unexpected hour cycle result");
}
const iT = typeof document < "u" ? React.useLayoutEffect : () => {
};
function Dd(rv) {
  const tv = reactExports.useRef(null);
  return iT(() => {
    tv.current = rv;
  }, [
    rv
  ]), reactExports.useCallback((...ev) => {
    const iv = tv.current;
    return iv == null ? void 0 : iv(...ev);
  }, []);
}
let Nd = /* @__PURE__ */ new Map();
function aT(rv, tv) {
  if (rv === tv)
    return rv;
  let ev = Nd.get(rv);
  if (ev)
    return ev(tv), tv;
  let iv = Nd.get(tv);
  return iv ? (iv(rv), rv) : tv;
}
function oT(...rv) {
  return (...tv) => {
    for (let ev of rv)
      typeof ev == "function" && ev(...tv);
  };
}
function sT(...rv) {
  let tv = {
    ...rv[0]
  };
  for (let ev = 1; ev < rv.length; ev++) {
    let iv = rv[ev];
    for (let ov in iv) {
      let av = tv[ov], sv = iv[ov];
      typeof av == "function" && typeof sv == "function" && // This is a lot faster than a regex.
      ov[0] === "o" && ov[1] === "n" && ov.charCodeAt(2) >= /* 'A' */
      65 && ov.charCodeAt(2) <= /* 'Z' */
      90 ? tv[ov] = oT(av, sv) : (ov === "className" || ov === "UNSAFE_className") && typeof av == "string" && typeof sv == "string" ? tv[ov] = hs(av, sv) : ov === "id" && av && sv ? tv.id = aT(av, sv) : tv[ov] = sv !== void 0 ? sv : av;
    }
  }
  return tv;
}
let Ki = /* @__PURE__ */ new Map(), Fd = /* @__PURE__ */ new Set();
function Md() {
  if (typeof window > "u")
    return;
  function rv(iv) {
    return "propertyName" in iv;
  }
  let tv = (iv) => {
    if (!rv(iv) || !iv.target)
      return;
    let ov = Ki.get(iv.target);
    ov || (ov = /* @__PURE__ */ new Set(), Ki.set(iv.target, ov), iv.target.addEventListener("transitioncancel", ev, {
      once: !0
    })), ov.add(iv.propertyName);
  }, ev = (iv) => {
    if (!rv(iv) || !iv.target)
      return;
    let ov = Ki.get(iv.target);
    if (ov && (ov.delete(iv.propertyName), ov.size === 0 && (iv.target.removeEventListener("transitioncancel", ev), Ki.delete(iv.target)), Ki.size === 0)) {
      for (let av of Fd)
        av();
      Fd.clear();
    }
  };
  document.body.addEventListener("transitionrun", tv), document.body.addEventListener("transitionend", ev);
}
typeof document < "u" && (document.readyState !== "loading" ? Md() : document.addEventListener("DOMContentLoaded", Md));
function lT() {
  let rv = reactExports.useRef(/* @__PURE__ */ new Map()), tv = reactExports.useCallback((ov, av, sv, lv) => {
    let uv = lv != null && lv.once ? (...cv) => {
      rv.current.delete(sv), sv(...cv);
    } : sv;
    rv.current.set(sv, {
      type: av,
      eventTarget: ov,
      fn: uv,
      options: lv
    }), ov.addEventListener(av, sv, lv);
  }, []), ev = reactExports.useCallback((ov, av, sv, lv) => {
    var uv;
    let cv = ((uv = rv.current.get(sv)) === null || uv === void 0 ? void 0 : uv.fn) || sv;
    ov.removeEventListener(av, cv, lv), rv.current.delete(sv);
  }, []), iv = reactExports.useCallback(() => {
    rv.current.forEach((ov, av) => {
      ev(ov.eventTarget, ov.type, av, ov.options);
    });
  }, [
    ev
  ]);
  return reactExports.useEffect(() => iv, [
    iv
  ]), {
    addGlobalListener: tv,
    removeGlobalListener: ev,
    removeAllGlobalListeners: iv
  };
}
function uT(rv, tv) {
  let ev = reactExports.useRef(null);
  return rv && ev.current && tv(rv, ev.current) && (rv = ev.current), ev.current = rv, rv;
}
const cT = /* @__PURE__ */ new Set([
  "Arab",
  "Syrc",
  "Samr",
  "Mand",
  "Thaa",
  "Mend",
  "Nkoo",
  "Adlm",
  "Rohg",
  "Hebr"
]), dT = /* @__PURE__ */ new Set([
  "ae",
  "ar",
  "arc",
  "bcc",
  "bqi",
  "ckb",
  "dv",
  "fa",
  "glk",
  "he",
  "ku",
  "mzn",
  "nqo",
  "pnb",
  "ps",
  "sd",
  "ug",
  "ur",
  "yi"
]);
function fT(rv) {
  if (Intl.Locale) {
    let ev = new Intl.Locale(rv).maximize(), iv = typeof ev.getTextInfo == "function" ? ev.getTextInfo() : ev.textInfo;
    if (iv)
      return iv.direction === "rtl";
    if (ev.script)
      return cT.has(ev.script);
  }
  let tv = rv.split("-")[0];
  return dT.has(tv);
}
const hT = Symbol.for("react-aria.i18n.locale");
function Nm() {
  let rv = typeof window < "u" && window[hT] || typeof navigator < "u" && (navigator.language || navigator.userLanguage) || "en-US";
  try {
    Intl.DateTimeFormat.supportedLocalesOf([
      rv
    ]);
  } catch {
    rv = "en-US";
  }
  return {
    locale: rv,
    direction: fT(rv) ? "rtl" : "ltr"
  };
}
let Pl = Nm(), ta = /* @__PURE__ */ new Set();
function $d() {
  Pl = Nm();
  for (let rv of ta)
    rv(Pl);
}
function mT() {
  let rv = km(), [tv, ev] = reactExports.useState(Pl);
  return reactExports.useEffect(() => (ta.size === 0 && window.addEventListener("languagechange", $d), ta.add(ev), () => {
    ta.delete(ev), ta.size === 0 && window.removeEventListener("languagechange", $d);
  }), []), rv ? {
    locale: "en-US",
    direction: "ltr"
  } : tv;
}
const pT = /* @__PURE__ */ React.createContext(null);
function _u() {
  let rv = mT();
  return reactExports.useContext(pT) || rv;
}
const Bd = /* @__PURE__ */ new WeakMap();
function gT(rv) {
  let tv = Bd.get(rv);
  return tv || (tv = new vs(rv), Bd.set(rv, tv)), tv;
}
function vT(rv, tv) {
  return vs.getGlobalDictionaryForPackage(tv) || gT(rv);
}
function bT(rv, tv) {
  let { locale: ev } = _u(), iv = vT(rv, tv);
  return reactExports.useMemo(() => new Jw(ev, iv), [
    ev,
    iv
  ]);
}
function ba(rv) {
  rv = uT(rv ?? {}, yT);
  let { locale: tv } = _u();
  return reactExports.useMemo(() => new Qw(tv, rv), [
    tv,
    rv
  ]);
}
function yT(rv, tv) {
  if (rv === tv)
    return !0;
  let ev = Object.keys(rv), iv = Object.keys(tv);
  if (ev.length !== iv.length)
    return !1;
  for (let ov of ev)
    if (tv[ov] !== rv[ov])
      return !1;
  return !0;
}
var Ol = function(rv, tv) {
  return Ol = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(ev, iv) {
    ev.__proto__ = iv;
  } || function(ev, iv) {
    for (var ov in iv)
      Object.prototype.hasOwnProperty.call(iv, ov) && (ev[ov] = iv[ov]);
  }, Ol(rv, tv);
};
function bs(rv, tv) {
  if (typeof tv != "function" && tv !== null)
    throw new TypeError("Class extends value " + String(tv) + " is not a constructor or null");
  Ol(rv, tv);
  function ev() {
    this.constructor = rv;
  }
  rv.prototype = tv === null ? Object.create(tv) : (ev.prototype = tv.prototype, new ev());
}
var xt = function() {
  return xt = Object.assign || function(rv) {
    for (var tv, ev = 1, iv = arguments.length; ev < iv; ev++) {
      tv = arguments[ev];
      for (var ov in tv)
        Object.prototype.hasOwnProperty.call(tv, ov) && (rv[ov] = tv[ov]);
    }
    return rv;
  }, xt.apply(this, arguments);
};
function ET(rv, tv) {
  var ev = {};
  for (var iv in rv)
    Object.prototype.hasOwnProperty.call(rv, iv) && tv.indexOf(iv) < 0 && (ev[iv] = rv[iv]);
  if (rv != null && typeof Object.getOwnPropertySymbols == "function")
    for (var ov = 0, iv = Object.getOwnPropertySymbols(rv); ov < iv.length; ov++)
      tv.indexOf(iv[ov]) < 0 && Object.prototype.propertyIsEnumerable.call(rv, iv[ov]) && (ev[iv[ov]] = rv[iv[ov]]);
  return ev;
}
function Zs(rv, tv, ev) {
  if (arguments.length === 2)
    for (var iv = 0, ov = tv.length, av; iv < ov; iv++)
      (av || !(iv in tv)) && (av || (av = Array.prototype.slice.call(tv, 0, iv)), av[iv] = tv[iv]);
  return rv.concat(av || Array.prototype.slice.call(tv));
}
var ft;
(function(rv) {
  rv[rv.EXPECT_ARGUMENT_CLOSING_BRACE = 1] = "EXPECT_ARGUMENT_CLOSING_BRACE", rv[rv.EMPTY_ARGUMENT = 2] = "EMPTY_ARGUMENT", rv[rv.MALFORMED_ARGUMENT = 3] = "MALFORMED_ARGUMENT", rv[rv.EXPECT_ARGUMENT_TYPE = 4] = "EXPECT_ARGUMENT_TYPE", rv[rv.INVALID_ARGUMENT_TYPE = 5] = "INVALID_ARGUMENT_TYPE", rv[rv.EXPECT_ARGUMENT_STYLE = 6] = "EXPECT_ARGUMENT_STYLE", rv[rv.INVALID_NUMBER_SKELETON = 7] = "INVALID_NUMBER_SKELETON", rv[rv.INVALID_DATE_TIME_SKELETON = 8] = "INVALID_DATE_TIME_SKELETON", rv[rv.EXPECT_NUMBER_SKELETON = 9] = "EXPECT_NUMBER_SKELETON", rv[rv.EXPECT_DATE_TIME_SKELETON = 10] = "EXPECT_DATE_TIME_SKELETON", rv[rv.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE = 11] = "UNCLOSED_QUOTE_IN_ARGUMENT_STYLE", rv[rv.EXPECT_SELECT_ARGUMENT_OPTIONS = 12] = "EXPECT_SELECT_ARGUMENT_OPTIONS", rv[rv.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE = 13] = "EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE", rv[rv.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE = 14] = "INVALID_PLURAL_ARGUMENT_OFFSET_VALUE", rv[rv.EXPECT_SELECT_ARGUMENT_SELECTOR = 15] = "EXPECT_SELECT_ARGUMENT_SELECTOR", rv[rv.EXPECT_PLURAL_ARGUMENT_SELECTOR = 16] = "EXPECT_PLURAL_ARGUMENT_SELECTOR", rv[rv.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT = 17] = "EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT", rv[rv.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT = 18] = "EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT", rv[rv.INVALID_PLURAL_ARGUMENT_SELECTOR = 19] = "INVALID_PLURAL_ARGUMENT_SELECTOR", rv[rv.DUPLICATE_PLURAL_ARGUMENT_SELECTOR = 20] = "DUPLICATE_PLURAL_ARGUMENT_SELECTOR", rv[rv.DUPLICATE_SELECT_ARGUMENT_SELECTOR = 21] = "DUPLICATE_SELECT_ARGUMENT_SELECTOR", rv[rv.MISSING_OTHER_CLAUSE = 22] = "MISSING_OTHER_CLAUSE", rv[rv.INVALID_TAG = 23] = "INVALID_TAG", rv[rv.INVALID_TAG_NAME = 25] = "INVALID_TAG_NAME", rv[rv.UNMATCHED_CLOSING_TAG = 26] = "UNMATCHED_CLOSING_TAG", rv[rv.UNCLOSED_TAG = 27] = "UNCLOSED_TAG";
})(ft || (ft = {}));
var $t;
(function(rv) {
  rv[rv.literal = 0] = "literal", rv[rv.argument = 1] = "argument", rv[rv.number = 2] = "number", rv[rv.date = 3] = "date", rv[rv.time = 4] = "time", rv[rv.select = 5] = "select", rv[rv.plural = 6] = "plural", rv[rv.pound = 7] = "pound", rv[rv.tag = 8] = "tag";
})($t || ($t = {}));
var xi;
(function(rv) {
  rv[rv.number = 0] = "number", rv[rv.dateTime = 1] = "dateTime";
})(xi || (xi = {}));
function Ud(rv) {
  return rv.type === $t.literal;
}
function xT(rv) {
  return rv.type === $t.argument;
}
function Fm(rv) {
  return rv.type === $t.number;
}
function Mm(rv) {
  return rv.type === $t.date;
}
function $m(rv) {
  return rv.type === $t.time;
}
function Bm(rv) {
  return rv.type === $t.select;
}
function Um(rv) {
  return rv.type === $t.plural;
}
function wT(rv) {
  return rv.type === $t.pound;
}
function jm(rv) {
  return rv.type === $t.tag;
}
function Hm(rv) {
  return !!(rv && typeof rv == "object" && rv.type === xi.number);
}
function Ll(rv) {
  return !!(rv && typeof rv == "object" && rv.type === xi.dateTime);
}
var Gm = /[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/, TT = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;
function ST(rv) {
  var tv = {};
  return rv.replace(TT, function(ev) {
    var iv = ev.length;
    switch (ev[0]) {
      case "G":
        tv.era = iv === 4 ? "long" : iv === 5 ? "narrow" : "short";
        break;
      case "y":
        tv.year = iv === 2 ? "2-digit" : "numeric";
        break;
      case "Y":
      case "u":
      case "U":
      case "r":
        throw new RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead");
      case "q":
      case "Q":
        throw new RangeError("`q/Q` (quarter) patterns are not supported");
      case "M":
      case "L":
        tv.month = ["numeric", "2-digit", "short", "long", "narrow"][iv - 1];
        break;
      case "w":
      case "W":
        throw new RangeError("`w/W` (week) patterns are not supported");
      case "d":
        tv.day = ["numeric", "2-digit"][iv - 1];
        break;
      case "D":
      case "F":
      case "g":
        throw new RangeError("`D/F/g` (day) patterns are not supported, use `d` instead");
      case "E":
        tv.weekday = iv === 4 ? "long" : iv === 5 ? "narrow" : "short";
        break;
      case "e":
        if (iv < 4)
          throw new RangeError("`e..eee` (weekday) patterns are not supported");
        tv.weekday = ["short", "long", "narrow", "short"][iv - 4];
        break;
      case "c":
        if (iv < 4)
          throw new RangeError("`c..ccc` (weekday) patterns are not supported");
        tv.weekday = ["short", "long", "narrow", "short"][iv - 4];
        break;
      case "a":
        tv.hour12 = !0;
        break;
      case "b":
      case "B":
        throw new RangeError("`b/B` (period) patterns are not supported, use `a` instead");
      case "h":
        tv.hourCycle = "h12", tv.hour = ["numeric", "2-digit"][iv - 1];
        break;
      case "H":
        tv.hourCycle = "h23", tv.hour = ["numeric", "2-digit"][iv - 1];
        break;
      case "K":
        tv.hourCycle = "h11", tv.hour = ["numeric", "2-digit"][iv - 1];
        break;
      case "k":
        tv.hourCycle = "h24", tv.hour = ["numeric", "2-digit"][iv - 1];
        break;
      case "j":
      case "J":
      case "C":
        throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");
      case "m":
        tv.minute = ["numeric", "2-digit"][iv - 1];
        break;
      case "s":
        tv.second = ["numeric", "2-digit"][iv - 1];
        break;
      case "S":
      case "A":
        throw new RangeError("`S/A` (second) patterns are not supported, use `s` instead");
      case "z":
        tv.timeZoneName = iv < 4 ? "short" : "long";
        break;
      case "Z":
      case "O":
      case "v":
      case "V":
      case "X":
      case "x":
        throw new RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead");
    }
    return "";
  }), tv;
}
var AT = /[\t-\r \x85\u200E\u200F\u2028\u2029]/i;
function CT(rv) {
  if (rv.length === 0)
    throw new Error("Number skeleton cannot be empty");
  for (var tv = rv.split(AT).filter(function(pv) {
    return pv.length > 0;
  }), ev = [], iv = 0, ov = tv; iv < ov.length; iv++) {
    var av = ov[iv], sv = av.split("/");
    if (sv.length === 0)
      throw new Error("Invalid number skeleton");
    for (var lv = sv[0], uv = sv.slice(1), cv = 0, dv = uv; cv < dv.length; cv++) {
      var hv = dv[cv];
      if (hv.length === 0)
        throw new Error("Invalid number skeleton");
    }
    ev.push({ stem: lv, options: uv });
  }
  return ev;
}
function RT(rv) {
  return rv.replace(/^(.*?)-/, "");
}
var jd = /^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g, zm = /^(@+)?(\+|#+)?[rs]?$/g, _T = /(\*)(0+)|(#+)(0+)|(0+)/g, Vm = /^(0+)$/;
function Hd(rv) {
  var tv = {};
  return rv[rv.length - 1] === "r" ? tv.roundingPriority = "morePrecision" : rv[rv.length - 1] === "s" && (tv.roundingPriority = "lessPrecision"), rv.replace(zm, function(ev, iv, ov) {
    return typeof ov != "string" ? (tv.minimumSignificantDigits = iv.length, tv.maximumSignificantDigits = iv.length) : ov === "+" ? tv.minimumSignificantDigits = iv.length : iv[0] === "#" ? tv.maximumSignificantDigits = iv.length : (tv.minimumSignificantDigits = iv.length, tv.maximumSignificantDigits = iv.length + (typeof ov == "string" ? ov.length : 0)), "";
  }), tv;
}
function Wm(rv) {
  switch (rv) {
    case "sign-auto":
      return {
        signDisplay: "auto"
      };
    case "sign-accounting":
    case "()":
      return {
        currencySign: "accounting"
      };
    case "sign-always":
    case "+!":
      return {
        signDisplay: "always"
      };
    case "sign-accounting-always":
    case "()!":
      return {
        signDisplay: "always",
        currencySign: "accounting"
      };
    case "sign-except-zero":
    case "+?":
      return {
        signDisplay: "exceptZero"
      };
    case "sign-accounting-except-zero":
    case "()?":
      return {
        signDisplay: "exceptZero",
        currencySign: "accounting"
      };
    case "sign-never":
    case "+_":
      return {
        signDisplay: "never"
      };
  }
}
function IT(rv) {
  var tv;
  if (rv[0] === "E" && rv[1] === "E" ? (tv = {
    notation: "engineering"
  }, rv = rv.slice(2)) : rv[0] === "E" && (tv = {
    notation: "scientific"
  }, rv = rv.slice(1)), tv) {
    var ev = rv.slice(0, 2);
    if (ev === "+!" ? (tv.signDisplay = "always", rv = rv.slice(2)) : ev === "+?" && (tv.signDisplay = "exceptZero", rv = rv.slice(2)), !Vm.test(rv))
      throw new Error("Malformed concise eng/scientific notation");
    tv.minimumIntegerDigits = rv.length;
  }
  return tv;
}
function Gd(rv) {
  var tv = {}, ev = Wm(rv);
  return ev || tv;
}
function PT(rv) {
  for (var tv = {}, ev = 0, iv = rv; ev < iv.length; ev++) {
    var ov = iv[ev];
    switch (ov.stem) {
      case "percent":
      case "%":
        tv.style = "percent";
        continue;
      case "%x100":
        tv.style = "percent", tv.scale = 100;
        continue;
      case "currency":
        tv.style = "currency", tv.currency = ov.options[0];
        continue;
      case "group-off":
      case ",_":
        tv.useGrouping = !1;
        continue;
      case "precision-integer":
      case ".":
        tv.maximumFractionDigits = 0;
        continue;
      case "measure-unit":
      case "unit":
        tv.style = "unit", tv.unit = RT(ov.options[0]);
        continue;
      case "compact-short":
      case "K":
        tv.notation = "compact", tv.compactDisplay = "short";
        continue;
      case "compact-long":
      case "KK":
        tv.notation = "compact", tv.compactDisplay = "long";
        continue;
      case "scientific":
        tv = xt(xt(xt({}, tv), { notation: "scientific" }), ov.options.reduce(function(uv, cv) {
          return xt(xt({}, uv), Gd(cv));
        }, {}));
        continue;
      case "engineering":
        tv = xt(xt(xt({}, tv), { notation: "engineering" }), ov.options.reduce(function(uv, cv) {
          return xt(xt({}, uv), Gd(cv));
        }, {}));
        continue;
      case "notation-simple":
        tv.notation = "standard";
        continue;
      case "unit-width-narrow":
        tv.currencyDisplay = "narrowSymbol", tv.unitDisplay = "narrow";
        continue;
      case "unit-width-short":
        tv.currencyDisplay = "code", tv.unitDisplay = "short";
        continue;
      case "unit-width-full-name":
        tv.currencyDisplay = "name", tv.unitDisplay = "long";
        continue;
      case "unit-width-iso-code":
        tv.currencyDisplay = "symbol";
        continue;
      case "scale":
        tv.scale = parseFloat(ov.options[0]);
        continue;
      case "rounding-mode-floor":
        tv.roundingMode = "floor";
        continue;
      case "rounding-mode-ceiling":
        tv.roundingMode = "ceil";
        continue;
      case "rounding-mode-down":
        tv.roundingMode = "trunc";
        continue;
      case "rounding-mode-up":
        tv.roundingMode = "expand";
        continue;
      case "rounding-mode-half-even":
        tv.roundingMode = "halfEven";
        continue;
      case "rounding-mode-half-down":
        tv.roundingMode = "halfTrunc";
        continue;
      case "rounding-mode-half-up":
        tv.roundingMode = "halfExpand";
        continue;
      case "integer-width":
        if (ov.options.length > 1)
          throw new RangeError("integer-width stems only accept a single optional option");
        ov.options[0].replace(_T, function(uv, cv, dv, hv, pv, yv) {
          if (cv)
            tv.minimumIntegerDigits = dv.length;
          else {
            if (hv && pv)
              throw new Error("We currently do not support maximum integer digits");
            if (yv)
              throw new Error("We currently do not support exact integer digits");
          }
          return "";
        });
        continue;
    }
    if (Vm.test(ov.stem)) {
      tv.minimumIntegerDigits = ov.stem.length;
      continue;
    }
    if (jd.test(ov.stem)) {
      if (ov.options.length > 1)
        throw new RangeError("Fraction-precision stems only accept a single optional option");
      ov.stem.replace(jd, function(uv, cv, dv, hv, pv, yv) {
        return dv === "*" ? tv.minimumFractionDigits = cv.length : hv && hv[0] === "#" ? tv.maximumFractionDigits = hv.length : pv && yv ? (tv.minimumFractionDigits = pv.length, tv.maximumFractionDigits = pv.length + yv.length) : (tv.minimumFractionDigits = cv.length, tv.maximumFractionDigits = cv.length), "";
      });
      var av = ov.options[0];
      av === "w" ? tv = xt(xt({}, tv), { trailingZeroDisplay: "stripIfInteger" }) : av && (tv = xt(xt({}, tv), Hd(av)));
      continue;
    }
    if (zm.test(ov.stem)) {
      tv = xt(xt({}, tv), Hd(ov.stem));
      continue;
    }
    var sv = Wm(ov.stem);
    sv && (tv = xt(xt({}, tv), sv));
    var lv = IT(ov.stem);
    lv && (tv = xt(xt({}, tv), lv));
  }
  return tv;
}
var eo = {
  "001": [
    "H",
    "h"
  ],
  AC: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  AD: [
    "H",
    "hB"
  ],
  AE: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  AF: [
    "H",
    "hb",
    "hB",
    "h"
  ],
  AG: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  AI: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  AL: [
    "h",
    "H",
    "hB"
  ],
  AM: [
    "H",
    "hB"
  ],
  AO: [
    "H",
    "hB"
  ],
  AR: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  AS: [
    "h",
    "H"
  ],
  AT: [
    "H",
    "hB"
  ],
  AU: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  AW: [
    "H",
    "hB"
  ],
  AX: [
    "H"
  ],
  AZ: [
    "H",
    "hB",
    "h"
  ],
  BA: [
    "H",
    "hB",
    "h"
  ],
  BB: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  BD: [
    "h",
    "hB",
    "H"
  ],
  BE: [
    "H",
    "hB"
  ],
  BF: [
    "H",
    "hB"
  ],
  BG: [
    "H",
    "hB",
    "h"
  ],
  BH: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  BI: [
    "H",
    "h"
  ],
  BJ: [
    "H",
    "hB"
  ],
  BL: [
    "H",
    "hB"
  ],
  BM: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  BN: [
    "hb",
    "hB",
    "h",
    "H"
  ],
  BO: [
    "H",
    "hB",
    "h",
    "hb"
  ],
  BQ: [
    "H"
  ],
  BR: [
    "H",
    "hB"
  ],
  BS: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  BT: [
    "h",
    "H"
  ],
  BW: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  BY: [
    "H",
    "h"
  ],
  BZ: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  CA: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  CC: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  CD: [
    "hB",
    "H"
  ],
  CF: [
    "H",
    "h",
    "hB"
  ],
  CG: [
    "H",
    "hB"
  ],
  CH: [
    "H",
    "hB",
    "h"
  ],
  CI: [
    "H",
    "hB"
  ],
  CK: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  CL: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  CM: [
    "H",
    "h",
    "hB"
  ],
  CN: [
    "H",
    "hB",
    "hb",
    "h"
  ],
  CO: [
    "h",
    "H",
    "hB",
    "hb"
  ],
  CP: [
    "H"
  ],
  CR: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  CU: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  CV: [
    "H",
    "hB"
  ],
  CW: [
    "H",
    "hB"
  ],
  CX: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  CY: [
    "h",
    "H",
    "hb",
    "hB"
  ],
  CZ: [
    "H"
  ],
  DE: [
    "H",
    "hB"
  ],
  DG: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  DJ: [
    "h",
    "H"
  ],
  DK: [
    "H"
  ],
  DM: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  DO: [
    "h",
    "H",
    "hB",
    "hb"
  ],
  DZ: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  EA: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  EC: [
    "H",
    "hB",
    "h",
    "hb"
  ],
  EE: [
    "H",
    "hB"
  ],
  EG: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  EH: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  ER: [
    "h",
    "H"
  ],
  ES: [
    "H",
    "hB",
    "h",
    "hb"
  ],
  ET: [
    "hB",
    "hb",
    "h",
    "H"
  ],
  FI: [
    "H"
  ],
  FJ: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  FK: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  FM: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  FO: [
    "H",
    "h"
  ],
  FR: [
    "H",
    "hB"
  ],
  GA: [
    "H",
    "hB"
  ],
  GB: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  GD: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  GE: [
    "H",
    "hB",
    "h"
  ],
  GF: [
    "H",
    "hB"
  ],
  GG: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  GH: [
    "h",
    "H"
  ],
  GI: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  GL: [
    "H",
    "h"
  ],
  GM: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  GN: [
    "H",
    "hB"
  ],
  GP: [
    "H",
    "hB"
  ],
  GQ: [
    "H",
    "hB",
    "h",
    "hb"
  ],
  GR: [
    "h",
    "H",
    "hb",
    "hB"
  ],
  GT: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  GU: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  GW: [
    "H",
    "hB"
  ],
  GY: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  HK: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  HN: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  HR: [
    "H",
    "hB"
  ],
  HU: [
    "H",
    "h"
  ],
  IC: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  ID: [
    "H"
  ],
  IE: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  IL: [
    "H",
    "hB"
  ],
  IM: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  IN: [
    "h",
    "H"
  ],
  IO: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  IQ: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  IR: [
    "hB",
    "H"
  ],
  IS: [
    "H"
  ],
  IT: [
    "H",
    "hB"
  ],
  JE: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  JM: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  JO: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  JP: [
    "H",
    "K",
    "h"
  ],
  KE: [
    "hB",
    "hb",
    "H",
    "h"
  ],
  KG: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  KH: [
    "hB",
    "h",
    "H",
    "hb"
  ],
  KI: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  KM: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  KN: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  KP: [
    "h",
    "H",
    "hB",
    "hb"
  ],
  KR: [
    "h",
    "H",
    "hB",
    "hb"
  ],
  KW: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  KY: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  KZ: [
    "H",
    "hB"
  ],
  LA: [
    "H",
    "hb",
    "hB",
    "h"
  ],
  LB: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  LC: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  LI: [
    "H",
    "hB",
    "h"
  ],
  LK: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  LR: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  LS: [
    "h",
    "H"
  ],
  LT: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  LU: [
    "H",
    "h",
    "hB"
  ],
  LV: [
    "H",
    "hB",
    "hb",
    "h"
  ],
  LY: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  MA: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  MC: [
    "H",
    "hB"
  ],
  MD: [
    "H",
    "hB"
  ],
  ME: [
    "H",
    "hB",
    "h"
  ],
  MF: [
    "H",
    "hB"
  ],
  MG: [
    "H",
    "h"
  ],
  MH: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  MK: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  ML: [
    "H"
  ],
  MM: [
    "hB",
    "hb",
    "H",
    "h"
  ],
  MN: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  MO: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  MP: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  MQ: [
    "H",
    "hB"
  ],
  MR: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  MS: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  MT: [
    "H",
    "h"
  ],
  MU: [
    "H",
    "h"
  ],
  MV: [
    "H",
    "h"
  ],
  MW: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  MX: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  MY: [
    "hb",
    "hB",
    "h",
    "H"
  ],
  MZ: [
    "H",
    "hB"
  ],
  NA: [
    "h",
    "H",
    "hB",
    "hb"
  ],
  NC: [
    "H",
    "hB"
  ],
  NE: [
    "H"
  ],
  NF: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  NG: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  NI: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  NL: [
    "H",
    "hB"
  ],
  NO: [
    "H",
    "h"
  ],
  NP: [
    "H",
    "h",
    "hB"
  ],
  NR: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  NU: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  NZ: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  OM: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  PA: [
    "h",
    "H",
    "hB",
    "hb"
  ],
  PE: [
    "H",
    "hB",
    "h",
    "hb"
  ],
  PF: [
    "H",
    "h",
    "hB"
  ],
  PG: [
    "h",
    "H"
  ],
  PH: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  PK: [
    "h",
    "hB",
    "H"
  ],
  PL: [
    "H",
    "h"
  ],
  PM: [
    "H",
    "hB"
  ],
  PN: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  PR: [
    "h",
    "H",
    "hB",
    "hb"
  ],
  PS: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  PT: [
    "H",
    "hB"
  ],
  PW: [
    "h",
    "H"
  ],
  PY: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  QA: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  RE: [
    "H",
    "hB"
  ],
  RO: [
    "H",
    "hB"
  ],
  RS: [
    "H",
    "hB",
    "h"
  ],
  RU: [
    "H"
  ],
  RW: [
    "H",
    "h"
  ],
  SA: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  SB: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  SC: [
    "H",
    "h",
    "hB"
  ],
  SD: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  SE: [
    "H"
  ],
  SG: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  SH: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  SI: [
    "H",
    "hB"
  ],
  SJ: [
    "H"
  ],
  SK: [
    "H"
  ],
  SL: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  SM: [
    "H",
    "h",
    "hB"
  ],
  SN: [
    "H",
    "h",
    "hB"
  ],
  SO: [
    "h",
    "H"
  ],
  SR: [
    "H",
    "hB"
  ],
  SS: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  ST: [
    "H",
    "hB"
  ],
  SV: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  SX: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  SY: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  SZ: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  TA: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  TC: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  TD: [
    "h",
    "H",
    "hB"
  ],
  TF: [
    "H",
    "h",
    "hB"
  ],
  TG: [
    "H",
    "hB"
  ],
  TH: [
    "H",
    "h"
  ],
  TJ: [
    "H",
    "h"
  ],
  TL: [
    "H",
    "hB",
    "hb",
    "h"
  ],
  TM: [
    "H",
    "h"
  ],
  TN: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  TO: [
    "h",
    "H"
  ],
  TR: [
    "H",
    "hB"
  ],
  TT: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  TW: [
    "hB",
    "hb",
    "h",
    "H"
  ],
  TZ: [
    "hB",
    "hb",
    "H",
    "h"
  ],
  UA: [
    "H",
    "hB",
    "h"
  ],
  UG: [
    "hB",
    "hb",
    "H",
    "h"
  ],
  UM: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  US: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  UY: [
    "H",
    "h",
    "hB",
    "hb"
  ],
  UZ: [
    "H",
    "hB",
    "h"
  ],
  VA: [
    "H",
    "h",
    "hB"
  ],
  VC: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  VE: [
    "h",
    "H",
    "hB",
    "hb"
  ],
  VG: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  VI: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  VN: [
    "H",
    "h"
  ],
  VU: [
    "h",
    "H"
  ],
  WF: [
    "H",
    "hB"
  ],
  WS: [
    "h",
    "H"
  ],
  XK: [
    "H",
    "hB",
    "h"
  ],
  YE: [
    "h",
    "hB",
    "hb",
    "H"
  ],
  YT: [
    "H",
    "hB"
  ],
  ZA: [
    "H",
    "h",
    "hb",
    "hB"
  ],
  ZM: [
    "h",
    "hb",
    "H",
    "hB"
  ],
  ZW: [
    "H",
    "h"
  ],
  "af-ZA": [
    "H",
    "h",
    "hB",
    "hb"
  ],
  "ar-001": [
    "h",
    "hB",
    "hb",
    "H"
  ],
  "ca-ES": [
    "H",
    "h",
    "hB"
  ],
  "en-001": [
    "h",
    "hb",
    "H",
    "hB"
  ],
  "es-BO": [
    "H",
    "h",
    "hB",
    "hb"
  ],
  "es-BR": [
    "H",
    "h",
    "hB",
    "hb"
  ],
  "es-EC": [
    "H",
    "h",
    "hB",
    "hb"
  ],
  "es-ES": [
    "H",
    "h",
    "hB",
    "hb"
  ],
  "es-GQ": [
    "H",
    "h",
    "hB",
    "hb"
  ],
  "es-PE": [
    "H",
    "h",
    "hB",
    "hb"
  ],
  "fr-CA": [
    "H",
    "h",
    "hB"
  ],
  "gl-ES": [
    "H",
    "h",
    "hB"
  ],
  "gu-IN": [
    "hB",
    "hb",
    "h",
    "H"
  ],
  "hi-IN": [
    "hB",
    "h",
    "H"
  ],
  "it-CH": [
    "H",
    "h",
    "hB"
  ],
  "it-IT": [
    "H",
    "h",
    "hB"
  ],
  "kn-IN": [
    "hB",
    "h",
    "H"
  ],
  "ml-IN": [
    "hB",
    "h",
    "H"
  ],
  "mr-IN": [
    "hB",
    "hb",
    "h",
    "H"
  ],
  "pa-IN": [
    "hB",
    "hb",
    "h",
    "H"
  ],
  "ta-IN": [
    "hB",
    "h",
    "hb",
    "H"
  ],
  "te-IN": [
    "hB",
    "h",
    "H"
  ],
  "zu-ZA": [
    "H",
    "hB",
    "hb",
    "h"
  ]
};
function OT(rv, tv) {
  for (var ev = "", iv = 0; iv < rv.length; iv++) {
    var ov = rv.charAt(iv);
    if (ov === "j") {
      for (var av = 0; iv + 1 < rv.length && rv.charAt(iv + 1) === ov; )
        av++, iv++;
      var sv = 1 + (av & 1), lv = av < 2 ? 1 : 3 + (av >> 1), uv = "a", cv = LT(tv);
      for ((cv == "H" || cv == "k") && (lv = 0); lv-- > 0; )
        ev += uv;
      for (; sv-- > 0; )
        ev = cv + ev;
    } else
      ov === "J" ? ev += "H" : ev += ov;
  }
  return ev;
}
function LT(rv) {
  var tv = rv.hourCycle;
  if (tv === void 0 && // @ts-ignore hourCycle(s) is not identified yet
  rv.hourCycles && // @ts-ignore
  rv.hourCycles.length && (tv = rv.hourCycles[0]), tv)
    switch (tv) {
      case "h24":
        return "k";
      case "h23":
        return "H";
      case "h12":
        return "h";
      case "h11":
        return "K";
      default:
        throw new Error("Invalid hourCycle");
    }
  var ev = rv.language, iv;
  ev !== "root" && (iv = rv.maximize().region);
  var ov = eo[iv || ""] || eo[ev || ""] || eo["".concat(ev, "-001")] || eo["001"];
  return ov[0];
}
var Js, kT = new RegExp("^".concat(Gm.source, "*")), DT = new RegExp("".concat(Gm.source, "*$"));
function mt(rv, tv) {
  return { start: rv, end: tv };
}
var NT = !!String.prototype.startsWith && "_a".startsWith("a", 1), FT = !!String.fromCodePoint, MT = !!Object.fromEntries, $T = !!String.prototype.codePointAt, BT = !!String.prototype.trimStart, UT = !!String.prototype.trimEnd, jT = !!Number.isSafeInteger, HT = jT ? Number.isSafeInteger : function(rv) {
  return typeof rv == "number" && isFinite(rv) && Math.floor(rv) === rv && Math.abs(rv) <= 9007199254740991;
}, kl = !0;
try {
  var GT = Ym("([^\\p{White_Space}\\p{Pattern_Syntax}]*)", "yu");
  kl = ((Js = GT.exec("a")) === null || Js === void 0 ? void 0 : Js[0]) === "a";
} catch {
  kl = !1;
}
var zd = NT ? (
  // Native
  function(rv, tv, ev) {
    return rv.startsWith(tv, ev);
  }
) : (
  // For IE11
  function(rv, tv, ev) {
    return rv.slice(ev, ev + tv.length) === tv;
  }
), Dl = FT ? String.fromCodePoint : (
  // IE11
  function() {
    for (var rv = [], tv = 0; tv < arguments.length; tv++)
      rv[tv] = arguments[tv];
    for (var ev = "", iv = rv.length, ov = 0, av; iv > ov; ) {
      if (av = rv[ov++], av > 1114111)
        throw RangeError(av + " is not a valid code point");
      ev += av < 65536 ? String.fromCharCode(av) : String.fromCharCode(((av -= 65536) >> 10) + 55296, av % 1024 + 56320);
    }
    return ev;
  }
), Vd = (
  // native
  MT ? Object.fromEntries : (
    // Ponyfill
    function(rv) {
      for (var tv = {}, ev = 0, iv = rv; ev < iv.length; ev++) {
        var ov = iv[ev], av = ov[0], sv = ov[1];
        tv[av] = sv;
      }
      return tv;
    }
  )
), Km = $T ? (
  // Native
  function(rv, tv) {
    return rv.codePointAt(tv);
  }
) : (
  // IE 11
  function(rv, tv) {
    var ev = rv.length;
    if (!(tv < 0 || tv >= ev)) {
      var iv = rv.charCodeAt(tv), ov;
      return iv < 55296 || iv > 56319 || tv + 1 === ev || (ov = rv.charCodeAt(tv + 1)) < 56320 || ov > 57343 ? iv : (iv - 55296 << 10) + (ov - 56320) + 65536;
    }
  }
), zT = BT ? (
  // Native
  function(rv) {
    return rv.trimStart();
  }
) : (
  // Ponyfill
  function(rv) {
    return rv.replace(kT, "");
  }
), VT = UT ? (
  // Native
  function(rv) {
    return rv.trimEnd();
  }
) : (
  // Ponyfill
  function(rv) {
    return rv.replace(DT, "");
  }
);
function Ym(rv, tv) {
  return new RegExp(rv, tv);
}
var Nl;
if (kl) {
  var Wd = Ym("([^\\p{White_Space}\\p{Pattern_Syntax}]*)", "yu");
  Nl = function(rv, tv) {
    var ev;
    Wd.lastIndex = tv;
    var iv = Wd.exec(rv);
    return (ev = iv[1]) !== null && ev !== void 0 ? ev : "";
  };
} else
  Nl = function(rv, tv) {
    for (var ev = []; ; ) {
      var iv = Km(rv, tv);
      if (iv === void 0 || Xm(iv) || XT(iv))
        break;
      ev.push(iv), tv += iv >= 65536 ? 2 : 1;
    }
    return Dl.apply(void 0, ev);
  };
var WT = (
  /** @class */
  function() {
    function rv(tv, ev) {
      ev === void 0 && (ev = {}), this.message = tv, this.position = { offset: 0, line: 1, column: 1 }, this.ignoreTag = !!ev.ignoreTag, this.locale = ev.locale, this.requiresOtherClause = !!ev.requiresOtherClause, this.shouldParseSkeletons = !!ev.shouldParseSkeletons;
    }
    return rv.prototype.parse = function() {
      if (this.offset() !== 0)
        throw Error("parser can only be used once");
      return this.parseMessage(0, "", !1);
    }, rv.prototype.parseMessage = function(tv, ev, iv) {
      for (var ov = []; !this.isEOF(); ) {
        var av = this.char();
        if (av === 123) {
          var sv = this.parseArgument(tv, iv);
          if (sv.err)
            return sv;
          ov.push(sv.val);
        } else {
          if (av === 125 && tv > 0)
            break;
          if (av === 35 && (ev === "plural" || ev === "selectordinal")) {
            var lv = this.clonePosition();
            this.bump(), ov.push({
              type: $t.pound,
              location: mt(lv, this.clonePosition())
            });
          } else if (av === 60 && !this.ignoreTag && this.peek() === 47) {
            if (iv)
              break;
            return this.error(ft.UNMATCHED_CLOSING_TAG, mt(this.clonePosition(), this.clonePosition()));
          } else if (av === 60 && !this.ignoreTag && Fl(this.peek() || 0)) {
            var sv = this.parseTag(tv, ev);
            if (sv.err)
              return sv;
            ov.push(sv.val);
          } else {
            var sv = this.parseLiteral(tv, ev);
            if (sv.err)
              return sv;
            ov.push(sv.val);
          }
        }
      }
      return { val: ov, err: null };
    }, rv.prototype.parseTag = function(tv, ev) {
      var iv = this.clonePosition();
      this.bump();
      var ov = this.parseTagName();
      if (this.bumpSpace(), this.bumpIf("/>"))
        return {
          val: {
            type: $t.literal,
            value: "<".concat(ov, "/>"),
            location: mt(iv, this.clonePosition())
          },
          err: null
        };
      if (this.bumpIf(">")) {
        var av = this.parseMessage(tv + 1, ev, !0);
        if (av.err)
          return av;
        var sv = av.val, lv = this.clonePosition();
        if (this.bumpIf("</")) {
          if (this.isEOF() || !Fl(this.char()))
            return this.error(ft.INVALID_TAG, mt(lv, this.clonePosition()));
          var uv = this.clonePosition(), cv = this.parseTagName();
          return ov !== cv ? this.error(ft.UNMATCHED_CLOSING_TAG, mt(uv, this.clonePosition())) : (this.bumpSpace(), this.bumpIf(">") ? {
            val: {
              type: $t.tag,
              value: ov,
              children: sv,
              location: mt(iv, this.clonePosition())
            },
            err: null
          } : this.error(ft.INVALID_TAG, mt(lv, this.clonePosition())));
        } else
          return this.error(ft.UNCLOSED_TAG, mt(iv, this.clonePosition()));
      } else
        return this.error(ft.INVALID_TAG, mt(iv, this.clonePosition()));
    }, rv.prototype.parseTagName = function() {
      var tv = this.offset();
      for (this.bump(); !this.isEOF() && YT(this.char()); )
        this.bump();
      return this.message.slice(tv, this.offset());
    }, rv.prototype.parseLiteral = function(tv, ev) {
      for (var iv = this.clonePosition(), ov = ""; ; ) {
        var av = this.tryParseQuote(ev);
        if (av) {
          ov += av;
          continue;
        }
        var sv = this.tryParseUnquoted(tv, ev);
        if (sv) {
          ov += sv;
          continue;
        }
        var lv = this.tryParseLeftAngleBracket();
        if (lv) {
          ov += lv;
          continue;
        }
        break;
      }
      var uv = mt(iv, this.clonePosition());
      return {
        val: { type: $t.literal, value: ov, location: uv },
        err: null
      };
    }, rv.prototype.tryParseLeftAngleBracket = function() {
      return !this.isEOF() && this.char() === 60 && (this.ignoreTag || // If at the opening tag or closing tag position, bail.
      !KT(this.peek() || 0)) ? (this.bump(), "<") : null;
    }, rv.prototype.tryParseQuote = function(tv) {
      if (this.isEOF() || this.char() !== 39)
        return null;
      switch (this.peek()) {
        case 39:
          return this.bump(), this.bump(), "'";
        case 123:
        case 60:
        case 62:
        case 125:
          break;
        case 35:
          if (tv === "plural" || tv === "selectordinal")
            break;
          return null;
        default:
          return null;
      }
      this.bump();
      var ev = [this.char()];
      for (this.bump(); !this.isEOF(); ) {
        var iv = this.char();
        if (iv === 39)
          if (this.peek() === 39)
            ev.push(39), this.bump();
          else {
            this.bump();
            break;
          }
        else
          ev.push(iv);
        this.bump();
      }
      return Dl.apply(void 0, ev);
    }, rv.prototype.tryParseUnquoted = function(tv, ev) {
      if (this.isEOF())
        return null;
      var iv = this.char();
      return iv === 60 || iv === 123 || iv === 35 && (ev === "plural" || ev === "selectordinal") || iv === 125 && tv > 0 ? null : (this.bump(), Dl(iv));
    }, rv.prototype.parseArgument = function(tv, ev) {
      var iv = this.clonePosition();
      if (this.bump(), this.bumpSpace(), this.isEOF())
        return this.error(ft.EXPECT_ARGUMENT_CLOSING_BRACE, mt(iv, this.clonePosition()));
      if (this.char() === 125)
        return this.bump(), this.error(ft.EMPTY_ARGUMENT, mt(iv, this.clonePosition()));
      var ov = this.parseIdentifierIfPossible().value;
      if (!ov)
        return this.error(ft.MALFORMED_ARGUMENT, mt(iv, this.clonePosition()));
      if (this.bumpSpace(), this.isEOF())
        return this.error(ft.EXPECT_ARGUMENT_CLOSING_BRACE, mt(iv, this.clonePosition()));
      switch (this.char()) {
        case 125:
          return this.bump(), {
            val: {
              type: $t.argument,
              // value does not include the opening and closing braces.
              value: ov,
              location: mt(iv, this.clonePosition())
            },
            err: null
          };
        case 44:
          return this.bump(), this.bumpSpace(), this.isEOF() ? this.error(ft.EXPECT_ARGUMENT_CLOSING_BRACE, mt(iv, this.clonePosition())) : this.parseArgumentOptions(tv, ev, ov, iv);
        default:
          return this.error(ft.MALFORMED_ARGUMENT, mt(iv, this.clonePosition()));
      }
    }, rv.prototype.parseIdentifierIfPossible = function() {
      var tv = this.clonePosition(), ev = this.offset(), iv = Nl(this.message, ev), ov = ev + iv.length;
      this.bumpTo(ov);
      var av = this.clonePosition(), sv = mt(tv, av);
      return { value: iv, location: sv };
    }, rv.prototype.parseArgumentOptions = function(tv, ev, iv, ov) {
      var av, sv = this.clonePosition(), lv = this.parseIdentifierIfPossible().value, uv = this.clonePosition();
      switch (lv) {
        case "":
          return this.error(ft.EXPECT_ARGUMENT_TYPE, mt(sv, uv));
        case "number":
        case "date":
        case "time": {
          this.bumpSpace();
          var cv = null;
          if (this.bumpIf(",")) {
            this.bumpSpace();
            var dv = this.clonePosition(), hv = this.parseSimpleArgStyleIfPossible();
            if (hv.err)
              return hv;
            var pv = VT(hv.val);
            if (pv.length === 0)
              return this.error(ft.EXPECT_ARGUMENT_STYLE, mt(this.clonePosition(), this.clonePosition()));
            var yv = mt(dv, this.clonePosition());
            cv = { style: pv, styleLocation: yv };
          }
          var Sv = this.tryParseArgumentClose(ov);
          if (Sv.err)
            return Sv;
          var _v = mt(ov, this.clonePosition());
          if (cv && zd(cv == null ? void 0 : cv.style, "::", 0)) {
            var Ev = zT(cv.style.slice(2));
            if (lv === "number") {
              var hv = this.parseNumberSkeletonFromString(Ev, cv.styleLocation);
              return hv.err ? hv : {
                val: { type: $t.number, value: iv, location: _v, style: hv.val },
                err: null
              };
            } else {
              if (Ev.length === 0)
                return this.error(ft.EXPECT_DATE_TIME_SKELETON, _v);
              var wv = Ev;
              this.locale && (wv = OT(Ev, this.locale));
              var pv = {
                type: xi.dateTime,
                pattern: wv,
                location: cv.styleLocation,
                parsedOptions: this.shouldParseSkeletons ? ST(wv) : {}
              }, xv = lv === "date" ? $t.date : $t.time;
              return {
                val: { type: xv, value: iv, location: _v, style: pv },
                err: null
              };
            }
          }
          return {
            val: {
              type: lv === "number" ? $t.number : lv === "date" ? $t.date : $t.time,
              value: iv,
              location: _v,
              style: (av = cv == null ? void 0 : cv.style) !== null && av !== void 0 ? av : null
            },
            err: null
          };
        }
        case "plural":
        case "selectordinal":
        case "select": {
          var Cv = this.clonePosition();
          if (this.bumpSpace(), !this.bumpIf(","))
            return this.error(ft.EXPECT_SELECT_ARGUMENT_OPTIONS, mt(Cv, xt({}, Cv)));
          this.bumpSpace();
          var Av = this.parseIdentifierIfPossible(), Ov = 0;
          if (lv !== "select" && Av.value === "offset") {
            if (!this.bumpIf(":"))
              return this.error(ft.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, mt(this.clonePosition(), this.clonePosition()));
            this.bumpSpace();
            var hv = this.tryParseDecimalInteger(ft.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ft.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);
            if (hv.err)
              return hv;
            this.bumpSpace(), Av = this.parseIdentifierIfPossible(), Ov = hv.val;
          }
          var Lv = this.tryParsePluralOrSelectOptions(tv, lv, ev, Av);
          if (Lv.err)
            return Lv;
          var Sv = this.tryParseArgumentClose(ov);
          if (Sv.err)
            return Sv;
          var jv = mt(ov, this.clonePosition());
          return lv === "select" ? {
            val: {
              type: $t.select,
              value: iv,
              options: Vd(Lv.val),
              location: jv
            },
            err: null
          } : {
            val: {
              type: $t.plural,
              value: iv,
              options: Vd(Lv.val),
              offset: Ov,
              pluralType: lv === "plural" ? "cardinal" : "ordinal",
              location: jv
            },
            err: null
          };
        }
        default:
          return this.error(ft.INVALID_ARGUMENT_TYPE, mt(sv, uv));
      }
    }, rv.prototype.tryParseArgumentClose = function(tv) {
      return this.isEOF() || this.char() !== 125 ? this.error(ft.EXPECT_ARGUMENT_CLOSING_BRACE, mt(tv, this.clonePosition())) : (this.bump(), { val: !0, err: null });
    }, rv.prototype.parseSimpleArgStyleIfPossible = function() {
      for (var tv = 0, ev = this.clonePosition(); !this.isEOF(); ) {
        var iv = this.char();
        switch (iv) {
          case 39: {
            this.bump();
            var ov = this.clonePosition();
            if (!this.bumpUntil("'"))
              return this.error(ft.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, mt(ov, this.clonePosition()));
            this.bump();
            break;
          }
          case 123: {
            tv += 1, this.bump();
            break;
          }
          case 125: {
            if (tv > 0)
              tv -= 1;
            else
              return {
                val: this.message.slice(ev.offset, this.offset()),
                err: null
              };
            break;
          }
          default:
            this.bump();
            break;
        }
      }
      return {
        val: this.message.slice(ev.offset, this.offset()),
        err: null
      };
    }, rv.prototype.parseNumberSkeletonFromString = function(tv, ev) {
      var iv = [];
      try {
        iv = CT(tv);
      } catch {
        return this.error(ft.INVALID_NUMBER_SKELETON, ev);
      }
      return {
        val: {
          type: xi.number,
          tokens: iv,
          location: ev,
          parsedOptions: this.shouldParseSkeletons ? PT(iv) : {}
        },
        err: null
      };
    }, rv.prototype.tryParsePluralOrSelectOptions = function(tv, ev, iv, ov) {
      for (var av, sv = !1, lv = [], uv = /* @__PURE__ */ new Set(), cv = ov.value, dv = ov.location; ; ) {
        if (cv.length === 0) {
          var hv = this.clonePosition();
          if (ev !== "select" && this.bumpIf("=")) {
            var pv = this.tryParseDecimalInteger(ft.EXPECT_PLURAL_ARGUMENT_SELECTOR, ft.INVALID_PLURAL_ARGUMENT_SELECTOR);
            if (pv.err)
              return pv;
            dv = mt(hv, this.clonePosition()), cv = this.message.slice(hv.offset, this.offset());
          } else
            break;
        }
        if (uv.has(cv))
          return this.error(ev === "select" ? ft.DUPLICATE_SELECT_ARGUMENT_SELECTOR : ft.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, dv);
        cv === "other" && (sv = !0), this.bumpSpace();
        var yv = this.clonePosition();
        if (!this.bumpIf("{"))
          return this.error(ev === "select" ? ft.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT : ft.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, mt(this.clonePosition(), this.clonePosition()));
        var Sv = this.parseMessage(tv + 1, ev, iv);
        if (Sv.err)
          return Sv;
        var _v = this.tryParseArgumentClose(yv);
        if (_v.err)
          return _v;
        lv.push([
          cv,
          {
            value: Sv.val,
            location: mt(yv, this.clonePosition())
          }
        ]), uv.add(cv), this.bumpSpace(), av = this.parseIdentifierIfPossible(), cv = av.value, dv = av.location;
      }
      return lv.length === 0 ? this.error(ev === "select" ? ft.EXPECT_SELECT_ARGUMENT_SELECTOR : ft.EXPECT_PLURAL_ARGUMENT_SELECTOR, mt(this.clonePosition(), this.clonePosition())) : this.requiresOtherClause && !sv ? this.error(ft.MISSING_OTHER_CLAUSE, mt(this.clonePosition(), this.clonePosition())) : { val: lv, err: null };
    }, rv.prototype.tryParseDecimalInteger = function(tv, ev) {
      var iv = 1, ov = this.clonePosition();
      this.bumpIf("+") || this.bumpIf("-") && (iv = -1);
      for (var av = !1, sv = 0; !this.isEOF(); ) {
        var lv = this.char();
        if (lv >= 48 && lv <= 57)
          av = !0, sv = sv * 10 + (lv - 48), this.bump();
        else
          break;
      }
      var uv = mt(ov, this.clonePosition());
      return av ? (sv *= iv, HT(sv) ? { val: sv, err: null } : this.error(ev, uv)) : this.error(tv, uv);
    }, rv.prototype.offset = function() {
      return this.position.offset;
    }, rv.prototype.isEOF = function() {
      return this.offset() === this.message.length;
    }, rv.prototype.clonePosition = function() {
      return {
        offset: this.position.offset,
        line: this.position.line,
        column: this.position.column
      };
    }, rv.prototype.char = function() {
      var tv = this.position.offset;
      if (tv >= this.message.length)
        throw Error("out of bound");
      var ev = Km(this.message, tv);
      if (ev === void 0)
        throw Error("Offset ".concat(tv, " is at invalid UTF-16 code unit boundary"));
      return ev;
    }, rv.prototype.error = function(tv, ev) {
      return {
        val: null,
        err: {
          kind: tv,
          message: this.message,
          location: ev
        }
      };
    }, rv.prototype.bump = function() {
      if (!this.isEOF()) {
        var tv = this.char();
        tv === 10 ? (this.position.line += 1, this.position.column = 1, this.position.offset += 1) : (this.position.column += 1, this.position.offset += tv < 65536 ? 1 : 2);
      }
    }, rv.prototype.bumpIf = function(tv) {
      if (zd(this.message, tv, this.offset())) {
        for (var ev = 0; ev < tv.length; ev++)
          this.bump();
        return !0;
      }
      return !1;
    }, rv.prototype.bumpUntil = function(tv) {
      var ev = this.offset(), iv = this.message.indexOf(tv, ev);
      return iv >= 0 ? (this.bumpTo(iv), !0) : (this.bumpTo(this.message.length), !1);
    }, rv.prototype.bumpTo = function(tv) {
      if (this.offset() > tv)
        throw Error("targetOffset ".concat(tv, " must be greater than or equal to the current offset ").concat(this.offset()));
      for (tv = Math.min(tv, this.message.length); ; ) {
        var ev = this.offset();
        if (ev === tv)
          break;
        if (ev > tv)
          throw Error("targetOffset ".concat(tv, " is at invalid UTF-16 code unit boundary"));
        if (this.bump(), this.isEOF())
          break;
      }
    }, rv.prototype.bumpSpace = function() {
      for (; !this.isEOF() && Xm(this.char()); )
        this.bump();
    }, rv.prototype.peek = function() {
      if (this.isEOF())
        return null;
      var tv = this.char(), ev = this.offset(), iv = this.message.charCodeAt(ev + (tv >= 65536 ? 2 : 1));
      return iv ?? null;
    }, rv;
  }()
);
function Fl(rv) {
  return rv >= 97 && rv <= 122 || rv >= 65 && rv <= 90;
}
function KT(rv) {
  return Fl(rv) || rv === 47;
}
function YT(rv) {
  return rv === 45 || rv === 46 || rv >= 48 && rv <= 57 || rv === 95 || rv >= 97 && rv <= 122 || rv >= 65 && rv <= 90 || rv == 183 || rv >= 192 && rv <= 214 || rv >= 216 && rv <= 246 || rv >= 248 && rv <= 893 || rv >= 895 && rv <= 8191 || rv >= 8204 && rv <= 8205 || rv >= 8255 && rv <= 8256 || rv >= 8304 && rv <= 8591 || rv >= 11264 && rv <= 12271 || rv >= 12289 && rv <= 55295 || rv >= 63744 && rv <= 64975 || rv >= 65008 && rv <= 65533 || rv >= 65536 && rv <= 983039;
}
function Xm(rv) {
  return rv >= 9 && rv <= 13 || rv === 32 || rv === 133 || rv >= 8206 && rv <= 8207 || rv === 8232 || rv === 8233;
}
function XT(rv) {
  return rv >= 33 && rv <= 35 || rv === 36 || rv >= 37 && rv <= 39 || rv === 40 || rv === 41 || rv === 42 || rv === 43 || rv === 44 || rv === 45 || rv >= 46 && rv <= 47 || rv >= 58 && rv <= 59 || rv >= 60 && rv <= 62 || rv >= 63 && rv <= 64 || rv === 91 || rv === 92 || rv === 93 || rv === 94 || rv === 96 || rv === 123 || rv === 124 || rv === 125 || rv === 126 || rv === 161 || rv >= 162 && rv <= 165 || rv === 166 || rv === 167 || rv === 169 || rv === 171 || rv === 172 || rv === 174 || rv === 176 || rv === 177 || rv === 182 || rv === 187 || rv === 191 || rv === 215 || rv === 247 || rv >= 8208 && rv <= 8213 || rv >= 8214 && rv <= 8215 || rv === 8216 || rv === 8217 || rv === 8218 || rv >= 8219 && rv <= 8220 || rv === 8221 || rv === 8222 || rv === 8223 || rv >= 8224 && rv <= 8231 || rv >= 8240 && rv <= 8248 || rv === 8249 || rv === 8250 || rv >= 8251 && rv <= 8254 || rv >= 8257 && rv <= 8259 || rv === 8260 || rv === 8261 || rv === 8262 || rv >= 8263 && rv <= 8273 || rv === 8274 || rv === 8275 || rv >= 8277 && rv <= 8286 || rv >= 8592 && rv <= 8596 || rv >= 8597 && rv <= 8601 || rv >= 8602 && rv <= 8603 || rv >= 8604 && rv <= 8607 || rv === 8608 || rv >= 8609 && rv <= 8610 || rv === 8611 || rv >= 8612 && rv <= 8613 || rv === 8614 || rv >= 8615 && rv <= 8621 || rv === 8622 || rv >= 8623 && rv <= 8653 || rv >= 8654 && rv <= 8655 || rv >= 8656 && rv <= 8657 || rv === 8658 || rv === 8659 || rv === 8660 || rv >= 8661 && rv <= 8691 || rv >= 8692 && rv <= 8959 || rv >= 8960 && rv <= 8967 || rv === 8968 || rv === 8969 || rv === 8970 || rv === 8971 || rv >= 8972 && rv <= 8991 || rv >= 8992 && rv <= 8993 || rv >= 8994 && rv <= 9e3 || rv === 9001 || rv === 9002 || rv >= 9003 && rv <= 9083 || rv === 9084 || rv >= 9085 && rv <= 9114 || rv >= 9115 && rv <= 9139 || rv >= 9140 && rv <= 9179 || rv >= 9180 && rv <= 9185 || rv >= 9186 && rv <= 9254 || rv >= 9255 && rv <= 9279 || rv >= 9280 && rv <= 9290 || rv >= 9291 && rv <= 9311 || rv >= 9472 && rv <= 9654 || rv === 9655 || rv >= 9656 && rv <= 9664 || rv === 9665 || rv >= 9666 && rv <= 9719 || rv >= 9720 && rv <= 9727 || rv >= 9728 && rv <= 9838 || rv === 9839 || rv >= 9840 && rv <= 10087 || rv === 10088 || rv === 10089 || rv === 10090 || rv === 10091 || rv === 10092 || rv === 10093 || rv === 10094 || rv === 10095 || rv === 10096 || rv === 10097 || rv === 10098 || rv === 10099 || rv === 10100 || rv === 10101 || rv >= 10132 && rv <= 10175 || rv >= 10176 && rv <= 10180 || rv === 10181 || rv === 10182 || rv >= 10183 && rv <= 10213 || rv === 10214 || rv === 10215 || rv === 10216 || rv === 10217 || rv === 10218 || rv === 10219 || rv === 10220 || rv === 10221 || rv === 10222 || rv === 10223 || rv >= 10224 && rv <= 10239 || rv >= 10240 && rv <= 10495 || rv >= 10496 && rv <= 10626 || rv === 10627 || rv === 10628 || rv === 10629 || rv === 10630 || rv === 10631 || rv === 10632 || rv === 10633 || rv === 10634 || rv === 10635 || rv === 10636 || rv === 10637 || rv === 10638 || rv === 10639 || rv === 10640 || rv === 10641 || rv === 10642 || rv === 10643 || rv === 10644 || rv === 10645 || rv === 10646 || rv === 10647 || rv === 10648 || rv >= 10649 && rv <= 10711 || rv === 10712 || rv === 10713 || rv === 10714 || rv === 10715 || rv >= 10716 && rv <= 10747 || rv === 10748 || rv === 10749 || rv >= 10750 && rv <= 11007 || rv >= 11008 && rv <= 11055 || rv >= 11056 && rv <= 11076 || rv >= 11077 && rv <= 11078 || rv >= 11079 && rv <= 11084 || rv >= 11085 && rv <= 11123 || rv >= 11124 && rv <= 11125 || rv >= 11126 && rv <= 11157 || rv === 11158 || rv >= 11159 && rv <= 11263 || rv >= 11776 && rv <= 11777 || rv === 11778 || rv === 11779 || rv === 11780 || rv === 11781 || rv >= 11782 && rv <= 11784 || rv === 11785 || rv === 11786 || rv === 11787 || rv === 11788 || rv === 11789 || rv >= 11790 && rv <= 11798 || rv === 11799 || rv >= 11800 && rv <= 11801 || rv === 11802 || rv === 11803 || rv === 11804 || rv === 11805 || rv >= 11806 && rv <= 11807 || rv === 11808 || rv === 11809 || rv === 11810 || rv === 11811 || rv === 11812 || rv === 11813 || rv === 11814 || rv === 11815 || rv === 11816 || rv === 11817 || rv >= 11818 && rv <= 11822 || rv === 11823 || rv >= 11824 && rv <= 11833 || rv >= 11834 && rv <= 11835 || rv >= 11836 && rv <= 11839 || rv === 11840 || rv === 11841 || rv === 11842 || rv >= 11843 && rv <= 11855 || rv >= 11856 && rv <= 11857 || rv === 11858 || rv >= 11859 && rv <= 11903 || rv >= 12289 && rv <= 12291 || rv === 12296 || rv === 12297 || rv === 12298 || rv === 12299 || rv === 12300 || rv === 12301 || rv === 12302 || rv === 12303 || rv === 12304 || rv === 12305 || rv >= 12306 && rv <= 12307 || rv === 12308 || rv === 12309 || rv === 12310 || rv === 12311 || rv === 12312 || rv === 12313 || rv === 12314 || rv === 12315 || rv === 12316 || rv === 12317 || rv >= 12318 && rv <= 12319 || rv === 12320 || rv === 12336 || rv === 64830 || rv === 64831 || rv >= 65093 && rv <= 65094;
}
function Ml(rv) {
  rv.forEach(function(tv) {
    if (delete tv.location, Bm(tv) || Um(tv))
      for (var ev in tv.options)
        delete tv.options[ev].location, Ml(tv.options[ev].value);
    else
      Fm(tv) && Hm(tv.style) || (Mm(tv) || $m(tv)) && Ll(tv.style) ? delete tv.style.location : jm(tv) && Ml(tv.children);
  });
}
function qT(rv, tv) {
  tv === void 0 && (tv = {}), tv = xt({ shouldParseSkeletons: !0, requiresOtherClause: !0 }, tv);
  var ev = new WT(rv, tv).parse();
  if (ev.err) {
    var iv = SyntaxError(ft[ev.err.kind]);
    throw iv.location = ev.err.location, iv.originalMessage = ev.err.message, iv;
  }
  return tv != null && tv.captureLocation || Ml(ev.val), ev.val;
}
function Qs(rv, tv) {
  var ev = tv && tv.cache ? tv.cache : rS, iv = tv && tv.serializer ? tv.serializer : tS, ov = tv && tv.strategy ? tv.strategy : JT;
  return ov(rv, {
    cache: ev,
    serializer: iv
  });
}
function ZT(rv) {
  return rv == null || typeof rv == "number" || typeof rv == "boolean";
}
function qm(rv, tv, ev, iv) {
  var ov = ZT(iv) ? iv : ev(iv), av = tv.get(ov);
  return typeof av > "u" && (av = rv.call(this, iv), tv.set(ov, av)), av;
}
function Zm(rv, tv, ev) {
  var iv = Array.prototype.slice.call(arguments, 3), ov = ev(iv), av = tv.get(ov);
  return typeof av > "u" && (av = rv.apply(this, iv), tv.set(ov, av)), av;
}
function Iu(rv, tv, ev, iv, ov) {
  return ev.bind(tv, rv, iv, ov);
}
function JT(rv, tv) {
  var ev = rv.length === 1 ? qm : Zm;
  return Iu(rv, this, ev, tv.cache.create(), tv.serializer);
}
function QT(rv, tv) {
  return Iu(rv, this, Zm, tv.cache.create(), tv.serializer);
}
function eS(rv, tv) {
  return Iu(rv, this, qm, tv.cache.create(), tv.serializer);
}
var tS = function() {
  return JSON.stringify(arguments);
};
function Pu() {
  this.cache = /* @__PURE__ */ Object.create(null);
}
Pu.prototype.get = function(rv) {
  return this.cache[rv];
};
Pu.prototype.set = function(rv, tv) {
  this.cache[rv] = tv;
};
var rS = {
  create: function() {
    return new Pu();
  }
}, el = {
  variadic: QT,
  monadic: eS
}, wi;
(function(rv) {
  rv.MISSING_VALUE = "MISSING_VALUE", rv.INVALID_VALUE = "INVALID_VALUE", rv.MISSING_INTL_API = "MISSING_INTL_API";
})(wi || (wi = {}));
var ys = (
  /** @class */
  function(rv) {
    bs(tv, rv);
    function tv(ev, iv, ov) {
      var av = rv.call(this, ev) || this;
      return av.code = iv, av.originalMessage = ov, av;
    }
    return tv.prototype.toString = function() {
      return "[formatjs Error: ".concat(this.code, "] ").concat(this.message);
    }, tv;
  }(Error)
), Kd = (
  /** @class */
  function(rv) {
    bs(tv, rv);
    function tv(ev, iv, ov, av) {
      return rv.call(this, 'Invalid values for "'.concat(ev, '": "').concat(iv, '". Options are "').concat(Object.keys(ov).join('", "'), '"'), wi.INVALID_VALUE, av) || this;
    }
    return tv;
  }(ys)
), nS = (
  /** @class */
  function(rv) {
    bs(tv, rv);
    function tv(ev, iv, ov) {
      return rv.call(this, 'Value for "'.concat(ev, '" must be of type ').concat(iv), wi.INVALID_VALUE, ov) || this;
    }
    return tv;
  }(ys)
), iS = (
  /** @class */
  function(rv) {
    bs(tv, rv);
    function tv(ev, iv) {
      return rv.call(this, 'The intl string context variable "'.concat(ev, '" was not provided to the string "').concat(iv, '"'), wi.MISSING_VALUE, iv) || this;
    }
    return tv;
  }(ys)
), br;
(function(rv) {
  rv[rv.literal = 0] = "literal", rv[rv.object = 1] = "object";
})(br || (br = {}));
function aS(rv) {
  return rv.length < 2 ? rv : rv.reduce(function(tv, ev) {
    var iv = tv[tv.length - 1];
    return !iv || iv.type !== br.literal || ev.type !== br.literal ? tv.push(ev) : iv.value += ev.value, tv;
  }, []);
}
function oS(rv) {
  return typeof rv == "function";
}
function xo(rv, tv, ev, iv, ov, av, sv) {
  if (rv.length === 1 && Ud(rv[0]))
    return [
      {
        type: br.literal,
        value: rv[0].value
      }
    ];
  for (var lv = [], uv = 0, cv = rv; uv < cv.length; uv++) {
    var dv = cv[uv];
    if (Ud(dv)) {
      lv.push({
        type: br.literal,
        value: dv.value
      });
      continue;
    }
    if (wT(dv)) {
      typeof av == "number" && lv.push({
        type: br.literal,
        value: ev.getNumberFormat(tv).format(av)
      });
      continue;
    }
    var hv = dv.value;
    if (!(ov && hv in ov))
      throw new iS(hv, sv);
    var pv = ov[hv];
    if (xT(dv)) {
      (!pv || typeof pv == "string" || typeof pv == "number") && (pv = typeof pv == "string" || typeof pv == "number" ? String(pv) : ""), lv.push({
        type: typeof pv == "string" ? br.literal : br.object,
        value: pv
      });
      continue;
    }
    if (Mm(dv)) {
      var yv = typeof dv.style == "string" ? iv.date[dv.style] : Ll(dv.style) ? dv.style.parsedOptions : void 0;
      lv.push({
        type: br.literal,
        value: ev.getDateTimeFormat(tv, yv).format(pv)
      });
      continue;
    }
    if ($m(dv)) {
      var yv = typeof dv.style == "string" ? iv.time[dv.style] : Ll(dv.style) ? dv.style.parsedOptions : iv.time.medium;
      lv.push({
        type: br.literal,
        value: ev.getDateTimeFormat(tv, yv).format(pv)
      });
      continue;
    }
    if (Fm(dv)) {
      var yv = typeof dv.style == "string" ? iv.number[dv.style] : Hm(dv.style) ? dv.style.parsedOptions : void 0;
      yv && yv.scale && (pv = pv * (yv.scale || 1)), lv.push({
        type: br.literal,
        value: ev.getNumberFormat(tv, yv).format(pv)
      });
      continue;
    }
    if (jm(dv)) {
      var Sv = dv.children, _v = dv.value, Ev = ov[_v];
      if (!oS(Ev))
        throw new nS(_v, "function", sv);
      var wv = xo(Sv, tv, ev, iv, ov, av), xv = Ev(wv.map(function(Ov) {
        return Ov.value;
      }));
      Array.isArray(xv) || (xv = [xv]), lv.push.apply(lv, xv.map(function(Ov) {
        return {
          type: typeof Ov == "string" ? br.literal : br.object,
          value: Ov
        };
      }));
    }
    if (Bm(dv)) {
      var Cv = dv.options[pv] || dv.options.other;
      if (!Cv)
        throw new Kd(dv.value, pv, Object.keys(dv.options), sv);
      lv.push.apply(lv, xo(Cv.value, tv, ev, iv, ov));
      continue;
    }
    if (Um(dv)) {
      var Cv = dv.options["=".concat(pv)];
      if (!Cv) {
        if (!Intl.PluralRules)
          throw new ys(`Intl.PluralRules is not available in this environment.
Try polyfilling it using "@formatjs/intl-pluralrules"
`, wi.MISSING_INTL_API, sv);
        var Av = ev.getPluralRules(tv, { type: dv.pluralType }).select(pv - (dv.offset || 0));
        Cv = dv.options[Av] || dv.options.other;
      }
      if (!Cv)
        throw new Kd(dv.value, pv, Object.keys(dv.options), sv);
      lv.push.apply(lv, xo(Cv.value, tv, ev, iv, ov, pv - (dv.offset || 0)));
      continue;
    }
  }
  return aS(lv);
}
function sS(rv, tv) {
  return tv ? xt(xt(xt({}, rv || {}), tv || {}), Object.keys(rv).reduce(function(ev, iv) {
    return ev[iv] = xt(xt({}, rv[iv]), tv[iv] || {}), ev;
  }, {})) : rv;
}
function lS(rv, tv) {
  return tv ? Object.keys(rv).reduce(function(ev, iv) {
    return ev[iv] = sS(rv[iv], tv[iv]), ev;
  }, xt({}, rv)) : rv;
}
function tl(rv) {
  return {
    create: function() {
      return {
        get: function(tv) {
          return rv[tv];
        },
        set: function(tv, ev) {
          rv[tv] = ev;
        }
      };
    }
  };
}
function uS(rv) {
  return rv === void 0 && (rv = {
    number: {},
    dateTime: {},
    pluralRules: {}
  }), {
    getNumberFormat: Qs(function() {
      for (var tv, ev = [], iv = 0; iv < arguments.length; iv++)
        ev[iv] = arguments[iv];
      return new ((tv = Intl.NumberFormat).bind.apply(tv, Zs([void 0], ev, !1)))();
    }, {
      cache: tl(rv.number),
      strategy: el.variadic
    }),
    getDateTimeFormat: Qs(function() {
      for (var tv, ev = [], iv = 0; iv < arguments.length; iv++)
        ev[iv] = arguments[iv];
      return new ((tv = Intl.DateTimeFormat).bind.apply(tv, Zs([void 0], ev, !1)))();
    }, {
      cache: tl(rv.dateTime),
      strategy: el.variadic
    }),
    getPluralRules: Qs(function() {
      for (var tv, ev = [], iv = 0; iv < arguments.length; iv++)
        ev[iv] = arguments[iv];
      return new ((tv = Intl.PluralRules).bind.apply(tv, Zs([void 0], ev, !1)))();
    }, {
      cache: tl(rv.pluralRules),
      strategy: el.variadic
    })
  };
}
var cS = (
  /** @class */
  function() {
    function rv(tv, ev, iv, ov) {
      var av = this;
      if (ev === void 0 && (ev = rv.defaultLocale), this.formatterCache = {
        number: {},
        dateTime: {},
        pluralRules: {}
      }, this.format = function(uv) {
        var cv = av.formatToParts(uv);
        if (cv.length === 1)
          return cv[0].value;
        var dv = cv.reduce(function(hv, pv) {
          return !hv.length || pv.type !== br.literal || typeof hv[hv.length - 1] != "string" ? hv.push(pv.value) : hv[hv.length - 1] += pv.value, hv;
        }, []);
        return dv.length <= 1 ? dv[0] || "" : dv;
      }, this.formatToParts = function(uv) {
        return xo(av.ast, av.locales, av.formatters, av.formats, uv, void 0, av.message);
      }, this.resolvedOptions = function() {
        var uv;
        return {
          locale: ((uv = av.resolvedLocale) === null || uv === void 0 ? void 0 : uv.toString()) || Intl.NumberFormat.supportedLocalesOf(av.locales)[0]
        };
      }, this.getAst = function() {
        return av.ast;
      }, this.locales = ev, this.resolvedLocale = rv.resolveLocale(ev), typeof tv == "string") {
        if (this.message = tv, !rv.__parse)
          throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");
        var sv = ov || {};
        sv.formatters;
        var lv = ET(sv, ["formatters"]);
        this.ast = rv.__parse(tv, xt(xt({}, lv), { locale: this.resolvedLocale }));
      } else
        this.ast = tv;
      if (!Array.isArray(this.ast))
        throw new TypeError("A message must be provided as a String or AST.");
      this.formats = lS(rv.formats, iv), this.formatters = ov && ov.formatters || uS(this.formatterCache);
    }
    return Object.defineProperty(rv, "defaultLocale", {
      get: function() {
        return rv.memoizedDefaultLocale || (rv.memoizedDefaultLocale = new Intl.NumberFormat().resolvedOptions().locale), rv.memoizedDefaultLocale;
      },
      enumerable: !1,
      configurable: !0
    }), rv.memoizedDefaultLocale = null, rv.resolveLocale = function(tv) {
      if (!(typeof Intl.Locale > "u")) {
        var ev = Intl.NumberFormat.supportedLocalesOf(tv);
        return ev.length > 0 ? new Intl.Locale(ev[0]) : new Intl.Locale(typeof tv == "string" ? tv : tv[0]);
      }
    }, rv.__parse = qT, rv.formats = {
      number: {
        integer: {
          maximumFractionDigits: 0
        },
        currency: {
          style: "currency"
        },
        percent: {
          style: "percent"
        }
      },
      date: {
        short: {
          month: "numeric",
          day: "numeric",
          year: "2-digit"
        },
        medium: {
          month: "short",
          day: "numeric",
          year: "numeric"
        },
        long: {
          month: "long",
          day: "numeric",
          year: "numeric"
        },
        full: {
          weekday: "long",
          month: "long",
          day: "numeric",
          year: "numeric"
        }
      },
      time: {
        short: {
          hour: "numeric",
          minute: "numeric"
        },
        medium: {
          hour: "numeric",
          minute: "numeric",
          second: "numeric"
        },
        long: {
          hour: "numeric",
          minute: "numeric",
          second: "numeric",
          timeZoneName: "short"
        },
        full: {
          hour: "numeric",
          minute: "numeric",
          second: "numeric",
          timeZoneName: "short"
        }
      }
    }, rv;
  }()
);
class dS {
  getStringForLocale(tv, ev) {
    let iv = this.messages[ev];
    iv || (iv = fS(ev, this.messages, this.defaultLocale), this.messages[ev] = iv);
    let ov = iv[tv];
    if (!ov)
      throw new Error(`Could not find intl message ${tv} in ${ev} locale`);
    return ov;
  }
  constructor(tv, ev = "en-US") {
    this.messages = {
      ...tv
    }, this.defaultLocale = ev;
  }
}
function fS(rv, tv, ev = "en-US") {
  if (tv[rv])
    return tv[rv];
  let iv = hS(rv);
  if (tv[iv])
    return tv[iv];
  for (let ov in tv)
    if (ov.startsWith(iv + "-"))
      return tv[ov];
  return tv[ev];
}
function hS(rv) {
  return Intl.Locale ? new Intl.Locale(rv).language : rv.split("-")[0];
}
class mS {
  format(tv, ev) {
    let iv = this.cache[tv];
    if (!iv) {
      let av = this.messages.getStringForLocale(tv, this.locale);
      if (!av)
        throw new Error(`Could not find intl message ${tv} in ${this.locale} locale`);
      iv = new cS(av, this.locale), this.cache[tv] = iv;
    }
    let ov;
    return ev && (ov = Object.keys(ev).reduce((av, sv) => (av[sv] = ev[sv] == null ? !1 : ev[sv], av), {})), iv.format(ov);
  }
  constructor(tv, ev) {
    this.locale = tv, this.messages = ev, this.cache = {};
  }
}
const Yd = /* @__PURE__ */ new WeakMap();
function pS(rv) {
  let tv = Yd.get(rv);
  return tv || (tv = new dS(rv), Yd.set(rv, tv)), tv;
}
function mr(rv) {
  let {
    locale: tv
  } = _u(), ev = reactExports.useMemo(() => pS(rv), [rv]), iv = reactExports.useMemo(() => new mS(tv, ev), [tv, ev]);
  return reactExports.useCallback((ov, av) => iv.format(ov, av), [iv]);
}
function $l(rv) {
  "@babel/helpers - typeof";
  return $l = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(tv) {
    return typeof tv;
  } : function(tv) {
    return tv && typeof Symbol == "function" && tv.constructor === Symbol && tv !== Symbol.prototype ? "symbol" : typeof tv;
  }, $l(rv);
}
function Es(rv, tv) {
  if (tv.length < rv)
    throw new TypeError(rv + " argument" + (rv > 1 ? "s" : "") + " required, but only " + tv.length + " present");
}
function Jm(rv) {
  Es(1, arguments);
  var tv = Object.prototype.toString.call(rv);
  return rv instanceof Date || $l(rv) === "object" && tv === "[object Date]" ? new Date(rv.getTime()) : typeof rv == "number" || tv === "[object Number]" ? new Date(rv) : ((typeof rv == "string" || tv === "[object String]") && typeof console < "u" && (console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"), console.warn(new Error().stack)), /* @__PURE__ */ new Date(NaN));
}
function gS(rv) {
  Es(1, arguments);
  var tv = Jm(rv), ev = tv.getDay();
  return ev === 0 || ev === 6;
}
function Xd(rv) {
  Es(1, arguments);
  var tv = Jm(rv);
  return tv.setHours(0, 0, 0, 0), tv;
}
function ra(rv, tv) {
  Es(2, arguments);
  var ev = Xd(rv), iv = Xd(tv);
  return ev.getTime() === iv.getTime();
}
function Qm(rv, tv, ev) {
  if (typeof Event == "function")
    return new Event(tv, ev);
  var iv = hr(rv).createEvent("Event");
  return iv.initEvent(tv, ev == null ? void 0 : ev.bubbles, ev == null ? void 0 : ev.cancelable), iv;
}
function qd(rv, tv, ev) {
  return ev === void 0 && (ev = {}), typeof FocusEvent == "function" ? new FocusEvent(tv, ev) : Qm(rv, tv, ev);
}
function rl(rv, tv) {
  var ev = qd(rv, "blur", tv), iv = rv.dispatchEvent(ev), ov = Pn(Pn({}, tv), {}, {
    bubbles: !0
  });
  return rv.dispatchEvent(qd(rv, "focusout", ov)), iv;
}
function vS(rv, tv, ev) {
  if (ev === void 0 && (ev = {}), typeof KeyboardEvent == "function")
    return new KeyboardEvent(tv, ev);
  var iv = hr(rv).createEvent("KeyboardEvent");
  return iv.initKeyboardEvent(tv, ev.bubbles, ev.cancelable, tm(rv), ev.key, ev.location, ev.ctrlKey, ev.altKey, ev.shiftKey, ev.metaKey), iv;
}
function bS(rv, tv, ev) {
  return rv.dispatchEvent(vS(rv, tv, ev));
}
function yS(rv) {
  for (var tv = [[]], ev = function() {
    var av = ov.value, sv = tv.find(function(lv) {
      return !lv[0] || lv[0].groupId === av.groupId;
    });
    sv ? sv.push(av) : tv.push([av]);
  }, iv = wu(rv), ov; !(ov = iv()).done; )
    ev();
  return tv;
}
function ES(rv) {
  for (var tv = [], ev = wu(rv), iv; !(iv = ev()).done; ) {
    var ov = iv.value;
    tv.push.apply(tv, ov);
  }
  return tv;
}
function xS(rv) {
  return rv.slice().reverse();
}
function ep(rv, tv) {
  return rv.find(function(ev) {
    return !ev.disabled;
  });
}
function tp(rv, tv) {
  var ev;
  return rv.currentId || rv.currentId === null ? rv.currentId : (ev = ep(rv.items || [])) === null || ev === void 0 ? void 0 : ev.id;
}
function wS(rv, tv) {
  if (tv)
    return rv == null ? void 0 : rv.find(function(ev) {
      return ev.id === tv && !ev.disabled;
    });
}
var TS = ["baseId", "unstable_idCountRef", "setBaseId", "unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "shift", "unstable_moves", "unstable_hasActiveWidget", "unstable_includesBaseElement", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "setShift", "reset", "unstable_setIncludesBaseElement", "unstable_setHasActiveWidget"], rp = TS, SS = rp, AS = SS;
function np(rv) {
  rv.userFocus = !0, rv.focus(), rv.userFocus = !1;
}
function CS(rv) {
  return !!rv.userFocus;
}
function Zd(rv, tv) {
  rv.userFocus = tv;
}
var RS = _i && "msCrypto" in window;
function _S(rv) {
  return !(!Jr(rv) || rv.metaKey || rv.key === "Tab");
}
function Jd(rv, tv, ev) {
  var iv = Ft(ev);
  return reactExports.useCallback(function(ov) {
    var av;
    if ((av = iv.current) === null || av === void 0 || av.call(iv, ov), !ov.defaultPrevented && rv && _S(ov)) {
      var sv = tv == null ? void 0 : tv.ref.current;
      sv && (bS(sv, ov.type, ov) || ov.preventDefault(), ov.currentTarget.contains(sv) && ov.stopPropagation());
    }
  }, [rv, tv]);
}
function IS(rv) {
  var tv = reactExports.useRef(null);
  return reactExports.useEffect(function() {
    var ev = hr(rv.current), iv = function(ov) {
      var av = ov.target;
      tv.current = av;
    };
    return ev.addEventListener("focus", iv, !0), function() {
      ev.removeEventListener("focus", iv, !0);
    };
  }, []), tv;
}
function PS(rv) {
  return ep(ES(xS(yS(rv))));
}
function nl(rv, tv) {
  return rv == null ? void 0 : rv.some(function(ev) {
    return !!tv && ev.ref.current === tv;
  });
}
function OS$1(rv) {
  var tv = Ft(rv), ev = reactExports.useReducer(function(av) {
    return av + 1;
  }, 0), iv = ev[0], ov = ev[1];
  return reactExports.useEffect(function() {
    var av, sv = (av = tv.current) === null || av === void 0 ? void 0 : av.ref.current;
    iv && sv && np(sv);
  }, [iv]), ov;
}
var ip = Sr({
  name: "Composite",
  compose: [Do],
  keys: rp,
  useOptions: function(rv) {
    return wt(wt({}, rv), {}, {
      currentId: tp(rv)
    });
  },
  useProps: function(rv, tv) {
    var ev = tv.ref, iv = tv.onFocusCapture, ov = tv.onFocus, av = tv.onBlurCapture, sv = tv.onKeyDown, lv = tv.onKeyDownCapture, uv = tv.onKeyUpCapture, cv = Jt(tv, ["ref", "onFocusCapture", "onFocus", "onBlurCapture", "onKeyDown", "onKeyDownCapture", "onKeyUpCapture"]), dv = reactExports.useRef(null), hv = wS(rv.items, rv.currentId), pv = reactExports.useRef(null), yv = Ft(iv), Sv = Ft(ov), _v = Ft(av), Ev = Ft(sv), wv = OS$1(hv), xv = RS ? IS(dv) : void 0;
    reactExports.useEffect(function() {
      var Vv = dv.current;
      rv.unstable_moves && !hv && (Vv == null || Vv.focus());
    }, [rv.unstable_moves, hv]);
    var Cv = Jd(rv.unstable_virtual, hv, lv), Av = Jd(rv.unstable_virtual, hv, uv), Ov = reactExports.useCallback(function(Vv) {
      var Gv;
      if ((Gv = yv.current) === null || Gv === void 0 || Gv.call(yv, Vv), !Vv.defaultPrevented && rv.unstable_virtual) {
        var Yv = (xv == null ? void 0 : xv.current) || Vv.relatedTarget, Xv = nl(rv.items, Yv);
        Jr(Vv) && Xv && (Vv.stopPropagation(), pv.current = Yv);
      }
    }, [rv.unstable_virtual, rv.items]), Lv = reactExports.useCallback(function(Vv) {
      var Gv;
      if ((Gv = Sv.current) === null || Gv === void 0 || Gv.call(Sv, Vv), !Vv.defaultPrevented) {
        if (rv.unstable_virtual)
          Jr(Vv) && wv();
        else if (Jr(Vv)) {
          var Yv;
          (Yv = rv.setCurrentId) === null || Yv === void 0 || Yv.call(rv, null);
        }
      }
    }, [rv.unstable_virtual, rv.setCurrentId]), jv = reactExports.useCallback(function(Vv) {
      var Gv;
      if ((Gv = _v.current) === null || Gv === void 0 || Gv.call(_v, Vv), !Vv.defaultPrevented && rv.unstable_virtual) {
        var Yv = (hv == null ? void 0 : hv.ref.current) || null, Xv = dm(Vv), L1 = nl(rv.items, Xv);
        if (Jr(Vv) && L1)
          Xv === Yv ? pv.current && pv.current !== Xv && rl(pv.current, Vv) : Yv && rl(Yv, Vv), Vv.stopPropagation();
        else {
          var Bv = nl(rv.items, Vv.target);
          !Bv && Yv && rl(Yv, Vv);
        }
      }
    }, [rv.unstable_virtual, rv.items, hv]), Dv = reactExports.useCallback(function(Vv) {
      var Gv, Yv;
      if ((Gv = Ev.current) === null || Gv === void 0 || Gv.call(Ev, Vv), !Vv.defaultPrevented && rv.currentId === null && Jr(Vv)) {
        var Xv = rv.orientation !== "horizontal", L1 = rv.orientation !== "vertical", Bv = !!((Yv = rv.groups) !== null && Yv !== void 0 && Yv.length), Qv = function() {
          if (Bv) {
            var j1 = PS(rv.items);
            if (j1 != null && j1.id) {
              var P1;
              (P1 = rv.move) === null || P1 === void 0 || P1.call(rv, j1.id);
            }
          } else {
            var D1;
            (D1 = rv.last) === null || D1 === void 0 || D1.call(rv);
          }
        }, B1 = {
          ArrowUp: (Bv || Xv) && Qv,
          ArrowRight: (Bv || L1) && rv.first,
          ArrowDown: (Bv || Xv) && rv.first,
          ArrowLeft: (Bv || L1) && rv.last,
          Home: rv.first,
          End: rv.last,
          PageUp: rv.first,
          PageDown: rv.last
        }, K1 = B1[Vv.key];
        K1 && (Vv.preventDefault(), K1());
      }
    }, [rv.currentId, rv.orientation, rv.groups, rv.items, rv.move, rv.last, rv.first]);
    return wt({
      ref: $n(dv, ev),
      id: rv.baseId,
      onFocus: Lv,
      onFocusCapture: Ov,
      onBlurCapture: jv,
      onKeyDownCapture: Cv,
      onKeyDown: Dv,
      onKeyUpCapture: Av,
      "aria-activedescendant": rv.unstable_virtual && (hv == null ? void 0 : hv.id) || void 0
    }, cv);
  },
  useComposeProps: function(rv, tv) {
    tv = Pa(rv, tv, !0);
    var ev = Do(rv, tv, !0);
    return rv.unstable_virtual || rv.currentId === null ? wt({
      tabIndex: 0
    }, ev) : wt(wt({}, tv), {}, {
      ref: ev.ref
    });
  }
}), LS = Tr({
  as: "div",
  useHook: ip,
  useCreateElement: function(rv, tv, ev) {
    return _a(rv, tv, ev);
  }
});
function Qd(rv) {
  try {
    var tv = rv instanceof HTMLInputElement && rv.selectionStart !== null, ev = rv.tagName === "TEXTAREA", iv = rv.contentEditable === "true";
    return tv || ev || iv || !1;
  } catch {
    return !1;
  }
}
function kS(rv, tv, ev) {
  return rv.dispatchEvent(Qm(rv, tv, ev));
}
function ef(rv, tv) {
  if (rv instanceof HTMLInputElement || rv instanceof HTMLTextAreaElement) {
    var ev, iv = Object.getPrototypeOf(rv), ov = (ev = Object.getOwnPropertyDescriptor(iv, "value")) === null || ev === void 0 ? void 0 : ev.set;
    ov && (ov.call(rv, tv), kS(rv, "input", {
      bubbles: !0
    }));
  }
}
function il(rv) {
  return rv.querySelector("[data-composite-item-widget]");
}
function DS(rv) {
  return reactExports.useMemo(function() {
    var tv;
    return (tv = rv.items) === null || tv === void 0 ? void 0 : tv.find(function(ev) {
      return rv.id && ev.id === rv.id;
    });
  }, [rv.items, rv.id]);
}
function NS(rv, tv) {
  if (Jr(rv))
    return !1;
  for (var ev = wu(tv), iv; !(iv = ev()).done; ) {
    var ov = iv.value;
    if (ov.ref.current === rv.target)
      return !0;
  }
  return !1;
}
var FS = Sr({
  name: "CompositeItem",
  compose: [oa, Au],
  keys: AS,
  propsAreEqual: function(rv, tv) {
    if (!tv.id || rv.id !== tv.id)
      return oa.unstable_propsAreEqual(rv, tv);
    var ev = rv.currentId, iv = rv.unstable_moves, ov = Jt(rv, ["currentId", "unstable_moves"]), av = tv.currentId, sv = tv.unstable_moves, lv = Jt(tv, ["currentId", "unstable_moves"]);
    if (av !== ev) {
      if (tv.id === av || tv.id === ev)
        return !1;
    } else if (iv !== sv)
      return !1;
    return oa.unstable_propsAreEqual(ov, lv);
  },
  useOptions: function(rv) {
    return wt(wt({}, rv), {}, {
      id: rv.id,
      currentId: tp(rv),
      unstable_clickOnSpace: rv.unstable_hasActiveWidget ? !1 : rv.unstable_clickOnSpace
    });
  },
  useProps: function(rv, tv) {
    var ev, iv = tv.ref, ov = tv.tabIndex, av = ov === void 0 ? 0 : ov, sv = tv.onMouseDown, lv = tv.onFocus, uv = tv.onBlurCapture, cv = tv.onKeyDown, dv = tv.onClick, hv = Jt(tv, ["ref", "tabIndex", "onMouseDown", "onFocus", "onBlurCapture", "onKeyDown", "onClick"]), pv = reactExports.useRef(null), yv = rv.id, Sv = rv.disabled && !rv.focusable, _v = rv.currentId === yv, Ev = Ft(_v), wv = reactExports.useRef(!1), xv = DS(rv), Cv = Ft(sv), Av = Ft(lv), Ov = Ft(uv), Lv = Ft(cv), jv = Ft(dv), Dv = !rv.unstable_virtual && !rv.unstable_hasActiveWidget && _v || // We don't want to set tabIndex="-1" when using CompositeItem as a
    // standalone component, without state props.
    !((ev = rv.items) !== null && ev !== void 0 && ev.length);
    reactExports.useEffect(function() {
      var Bv;
      if (yv)
        return (Bv = rv.registerItem) === null || Bv === void 0 || Bv.call(rv, {
          id: yv,
          ref: pv,
          disabled: !!Sv
        }), function() {
          var Qv;
          (Qv = rv.unregisterItem) === null || Qv === void 0 || Qv.call(rv, yv);
        };
    }, [yv, Sv, rv.registerItem, rv.unregisterItem]), reactExports.useEffect(function() {
      var Bv = pv.current;
      Bv && rv.unstable_moves && Ev.current && np(Bv);
    }, [rv.unstable_moves]);
    var Vv = reactExports.useCallback(function(Bv) {
      var Qv;
      (Qv = Cv.current) === null || Qv === void 0 || Qv.call(Cv, Bv), Zd(Bv.currentTarget, !0);
    }, []), Gv = reactExports.useCallback(function(Bv) {
      var Qv, B1, K1 = CS(Bv.currentTarget);
      if (Zd(Bv.currentTarget, !1), (Qv = Av.current) === null || Qv === void 0 || Qv.call(Av, Bv), !Bv.defaultPrevented && !rm(Bv) && yv && !NS(Bv, rv.items) && ((B1 = rv.setCurrentId) === null || B1 === void 0 || B1.call(rv, yv), K1 && rv.unstable_virtual && rv.baseId && Jr(Bv))) {
        var j1 = Bv.target, P1 = hr(j1).getElementById(rv.baseId);
        P1 && (wv.current = !0, va(P1));
      }
    }, [yv, rv.items, rv.setCurrentId, rv.unstable_virtual, rv.baseId]), Yv = reactExports.useCallback(function(Bv) {
      var Qv;
      (Qv = Ov.current) === null || Qv === void 0 || Qv.call(Ov, Bv), !Bv.defaultPrevented && rv.unstable_virtual && wv.current && (wv.current = !1, Bv.preventDefault(), Bv.stopPropagation());
    }, [rv.unstable_virtual]), Xv = reactExports.useCallback(function(Bv) {
      var Qv;
      if (Jr(Bv)) {
        var B1 = rv.orientation !== "horizontal", K1 = rv.orientation !== "vertical", j1 = !!(xv != null && xv.groupId), P1 = {
          ArrowUp: (j1 || B1) && rv.up,
          ArrowRight: (j1 || K1) && rv.next,
          ArrowDown: (j1 || B1) && rv.down,
          ArrowLeft: (j1 || K1) && rv.previous,
          Home: function() {
            if (!j1 || Bv.ctrlKey) {
              var M1;
              (M1 = rv.first) === null || M1 === void 0 || M1.call(rv);
            } else {
              var U1;
              (U1 = rv.previous) === null || U1 === void 0 || U1.call(rv, !0);
            }
          },
          End: function() {
            if (!j1 || Bv.ctrlKey) {
              var M1;
              (M1 = rv.last) === null || M1 === void 0 || M1.call(rv);
            } else {
              var U1;
              (U1 = rv.next) === null || U1 === void 0 || U1.call(rv, !0);
            }
          },
          PageUp: function() {
            if (j1) {
              var M1;
              (M1 = rv.up) === null || M1 === void 0 || M1.call(rv, !0);
            } else {
              var U1;
              (U1 = rv.first) === null || U1 === void 0 || U1.call(rv);
            }
          },
          PageDown: function() {
            if (j1) {
              var M1;
              (M1 = rv.down) === null || M1 === void 0 || M1.call(rv, !0);
            } else {
              var U1;
              (U1 = rv.last) === null || U1 === void 0 || U1.call(rv);
            }
          }
        }, D1 = P1[Bv.key];
        if (D1) {
          Bv.preventDefault(), D1();
          return;
        }
        if ((Qv = Lv.current) === null || Qv === void 0 || Qv.call(Lv, Bv), !Bv.defaultPrevented) {
          if (Bv.key.length === 1 && Bv.key !== " ") {
            var I1 = il(Bv.currentTarget);
            I1 && Qd(I1) && (I1.focus(), ef(I1, ""));
          } else if (Bv.key === "Delete" || Bv.key === "Backspace") {
            var F1 = il(Bv.currentTarget);
            F1 && Qd(F1) && (Bv.preventDefault(), ef(F1, ""));
          }
        }
      }
    }, [rv.orientation, xv, rv.up, rv.next, rv.down, rv.previous, rv.first, rv.last]), L1 = reactExports.useCallback(function(Bv) {
      var Qv;
      if ((Qv = jv.current) === null || Qv === void 0 || Qv.call(jv, Bv), !Bv.defaultPrevented) {
        var B1 = Bv.currentTarget, K1 = il(B1);
        K1 && !Tu(K1) && K1.focus();
      }
    }, []);
    return wt({
      ref: $n(pv, iv),
      id: yv,
      tabIndex: Dv ? av : -1,
      "aria-selected": rv.unstable_virtual && _v ? !0 : void 0,
      onMouseDown: Vv,
      onFocus: Gv,
      onBlurCapture: Yv,
      onKeyDown: Xv,
      onClick: L1
    }, hv);
  }
}), MS = Tr({
  as: "button",
  memo: !0,
  useHook: FS
}), ap = {};
ap = {
  Empty: "فارغ"
};
var op = {};
op = {
  Empty: "Изпразни"
};
var sp = {};
sp = {
  Empty: "Prázdné"
};
var lp = {};
lp = {
  Empty: "Tom"
};
var up = {};
up = {
  Empty: "Leer"
};
var cp = {};
cp = {
  Empty: "Άδειο"
};
var dp = {};
dp = {
  Empty: "Empty"
};
var fp = {};
fp = {
  Empty: "Vacío"
};
var hp = {};
hp = {
  Empty: "Tühjenda"
};
var mp = {};
mp = {
  Empty: "Tyhjä"
};
var pp = {};
pp = {
  Empty: "Vide"
};
var gp = {};
gp = {
  Empty: "ריק"
};
var vp = {};
vp = {
  Empty: "Prazno"
};
var bp = {};
bp = {
  Empty: "Ãœres"
};
var yp = {};
yp = {
  Empty: "Vuoto"
};
var Ep = {};
Ep = {
  Empty: "空"
};
var xp = {};
xp = {
  Empty: "비어 있음"
};
var wp = {};
wp = {
  Empty: "Tuščias"
};
var Tp = {};
Tp = {
  Empty: "Tukšs"
};
var Sp = {};
Sp = {
  Empty: "Tom"
};
var Ap = {};
Ap = {
  Empty: "Leeg"
};
var Cp = {};
Cp = {
  Empty: "Pusty"
};
var Rp = {};
Rp = {
  Empty: "Vazio"
};
var _p = {};
_p = {
  Empty: "Vazio"
};
var Ip = {};
Ip = {
  Empty: "Gol"
};
var Pp = {};
Pp = {
  Empty: "Не заполнено"
};
var Op$1 = {};
Op$1 = {
  Empty: "Prázdne"
};
var Lp = {};
Lp = {
  Empty: "Prazen"
};
var kp = {};
kp = {
  Empty: "Prazno"
};
var Dp = {};
Dp = {
  Empty: "Tomt"
};
var Np = {};
Np = {
  Empty: "BoÅŸ"
};
var Fp = {};
Fp = {
  Empty: "Пусто"
};
var Mp = {};
Mp = {
  Empty: "空"
};
var $p = {};
$p = {
  Empty: "空白"
};
const Bp = 7e3;
let ua = null;
function $S(rv, tv = "assertive", ev = Bp) {
  ua || (ua = new US()), ua.announce(rv, tv, ev);
}
function BS(rv) {
  ua && ua.clear(rv);
}
class US {
  createLog(tv) {
    let ev = document.createElement("div");
    return ev.setAttribute("role", "log"), ev.setAttribute("aria-live", tv), ev.setAttribute("aria-relevant", "additions"), ev;
  }
  destroy() {
    this.node && (document.body.removeChild(this.node), this.node = null);
  }
  announce(tv, ev = "assertive", iv = Bp) {
    if (!this.node)
      return;
    let ov = document.createElement("div");
    ov.textContent = tv, ev === "assertive" ? this.assertiveLog.appendChild(ov) : this.politeLog.appendChild(ov), tv !== "" && setTimeout(() => {
      ov.remove();
    }, iv);
  }
  clear(tv) {
    this.node && ((!tv || tv === "assertive") && (this.assertiveLog.innerHTML = ""), (!tv || tv === "polite") && (this.politeLog.innerHTML = ""));
  }
  constructor() {
    this.node = document.createElement("div"), this.node.dataset.liveAnnouncer = "true", Object.assign(this.node.style, {
      border: 0,
      clip: "rect(0 0 0 0)",
      clipPath: "inset(50%)",
      height: "1px",
      margin: "-1px",
      overflow: "hidden",
      padding: 0,
      position: "absolute",
      width: "1px",
      whiteSpace: "nowrap"
    }), this.assertiveLog = this.createLog("assertive"), this.node.appendChild(this.assertiveLog), this.politeLog = this.createLog("polite"), this.node.appendChild(this.politeLog), document.body.prepend(this.node);
  }
}
function jS(rv) {
  return rv && rv.__esModule ? rv.default : rv;
}
var Up = {};
Up = {
  "ar-AE": ap,
  "bg-BG": op,
  "cs-CZ": sp,
  "da-DK": lp,
  "de-DE": up,
  "el-GR": cp,
  "en-US": dp,
  "es-ES": fp,
  "et-EE": hp,
  "fi-FI": mp,
  "fr-FR": pp,
  "he-IL": gp,
  "hr-HR": vp,
  "hu-HU": bp,
  "it-IT": yp,
  "ja-JP": Ep,
  "ko-KR": xp,
  "lt-LT": wp,
  "lv-LV": Tp,
  "nb-NO": Sp,
  "nl-NL": Ap,
  "pl-PL": Cp,
  "pt-BR": Rp,
  "pt-PT": _p,
  "ro-RO": Ip,
  "ru-RU": Pp,
  "sk-SK": Op$1,
  "sl-SI": Lp,
  "sr-SP": kp,
  "sv-SE": Dp,
  "tr-TR": Np,
  "uk-UA": Fp,
  "zh-CN": Mp,
  "zh-TW": $p
};
function HS(rv) {
  const tv = reactExports.useRef();
  let { value: ev, textValue: iv, minValue: ov, maxValue: av, isDisabled: sv, isReadOnly: lv, isRequired: uv, onIncrement: cv, onIncrementPage: dv, onDecrement: hv, onDecrementPage: pv, onDecrementToMin: yv, onIncrementToMax: Sv } = rv;
  const _v = bT(/* @__PURE__ */ jS(Up), "@react-aria/spinbutton"), Ev = () => clearTimeout(tv.current);
  reactExports.useEffect(() => () => Ev(), []);
  let wv = (Yv) => {
    if (!(Yv.ctrlKey || Yv.metaKey || Yv.shiftKey || Yv.altKey || lv))
      switch (Yv.key) {
        case "PageUp":
          if (dv) {
            Yv.preventDefault(), dv == null || dv();
            break;
          }
        case "ArrowUp":
        case "Up":
          cv && (Yv.preventDefault(), cv == null || cv());
          break;
        case "PageDown":
          if (pv) {
            Yv.preventDefault(), pv == null || pv();
            break;
          }
        case "ArrowDown":
        case "Down":
          hv && (Yv.preventDefault(), hv == null || hv());
          break;
        case "Home":
          yv && (Yv.preventDefault(), yv == null || yv());
          break;
        case "End":
          Sv && (Yv.preventDefault(), Sv == null || Sv());
          break;
      }
  }, xv = reactExports.useRef(!1), Cv = () => {
    xv.current = !0;
  }, Av = () => {
    xv.current = !1;
  }, Ov = iv === "" ? _v.format("Empty") : (iv || `${ev}`).replace("-", "−");
  reactExports.useEffect(() => {
    xv.current && (BS("assertive"), $S(Ov, "assertive"));
  }, [
    Ov
  ]);
  const Lv = Dd((Yv) => {
    Ev(), cv == null || cv(), tv.current = window.setTimeout(() => {
      (av === void 0 || isNaN(av) || ev === void 0 || isNaN(ev) || ev < av) && Lv(60);
    }, Yv);
  }), jv = Dd((Yv) => {
    Ev(), hv == null || hv(), tv.current = window.setTimeout(() => {
      (ov === void 0 || isNaN(ov) || ev === void 0 || isNaN(ev) || ev > ov) && jv(60);
    }, Yv);
  });
  let Dv = (Yv) => {
    Yv.preventDefault();
  }, { addGlobalListener: Vv, removeAllGlobalListeners: Gv } = lT();
  return {
    spinButtonProps: {
      role: "spinbutton",
      "aria-valuenow": ev !== void 0 && !isNaN(ev) ? ev : void 0,
      "aria-valuetext": Ov,
      "aria-valuemin": ov,
      "aria-valuemax": av,
      "aria-disabled": sv || void 0,
      "aria-readonly": lv || void 0,
      "aria-required": uv || void 0,
      onKeyDown: wv,
      onFocus: Cv,
      onBlur: Av
    },
    incrementButtonProps: {
      onPressStart: () => {
        Lv(400), Vv(window, "contextmenu", Dv);
      },
      onPressEnd: () => {
        Ev(), Gv();
      },
      onFocus: Cv,
      onBlur: Av
    },
    decrementButtonProps: {
      onPressStart: () => {
        jv(400), Vv(window, "contextmenu", Dv);
      },
      onPressEnd: () => {
        Ev(), Gv();
      },
      onFocus: Cv,
      onBlur: Av
    }
  };
}
const Oa = GS();
function GS() {
  var rv;
  return typeof window < "u" && !!((rv = window.document) != null && rv.createElement);
}
function sr(rv) {
  return rv ? rv.ownerDocument || rv : document;
}
function zS(rv) {
  return sr(rv).defaultView || window;
}
function on(rv, tv) {
  tv === void 0 && (tv = !1);
  const {
    activeElement: ev
  } = sr(rv);
  if (!(ev != null && ev.nodeName))
    return null;
  if (Ou(ev) && ev.contentDocument)
    return on(ev.contentDocument.body, tv);
  if (tv) {
    const iv = ev.getAttribute("aria-activedescendant");
    if (iv) {
      const ov = sr(ev).getElementById(iv);
      if (ov)
        return ov;
    }
  }
  return ev;
}
function Xt(rv, tv) {
  return rv === tv || rv.contains(tv);
}
function Ou(rv) {
  return rv.tagName === "IFRAME";
}
function Fn(rv) {
  const tv = rv.tagName.toLowerCase();
  return tv === "button" ? !0 : tv === "input" && rv.type ? VS.indexOf(rv.type) !== -1 : !1;
}
const VS = ["button", "color", "file", "image", "reset", "submit"];
function Lu(rv, tv) {
  return "matches" in rv ? rv.matches(tv) : "msMatchesSelector" in rv ? rv.msMatchesSelector(tv) : rv.webkitMatchesSelector(tv);
}
function WS(rv) {
  const tv = rv;
  return tv.offsetWidth > 0 || tv.offsetHeight > 0 || rv.getClientRects().length > 0;
}
function jp(rv, tv) {
  if ("closest" in rv)
    return rv.closest(tv);
  do {
    if (Lu(rv, tv))
      return rv;
    rv = rv.parentElement || rv.parentNode;
  } while (rv !== null && rv.nodeType === 1);
  return null;
}
function La(rv) {
  try {
    const tv = rv instanceof HTMLInputElement && rv.selectionStart !== null, ev = rv.tagName === "TEXTAREA";
    return tv || ev || !1;
  } catch {
    return !1;
  }
}
function ku(rv, tv) {
  const ev = ["dialog", "menu", "listbox", "tree", "grid"], iv = rv == null ? void 0 : rv.getAttribute("role");
  return iv && ev.indexOf(iv) !== -1 ? iv : tv;
}
function Du(rv, tv) {
  var ev;
  const iv = {
    menu: "menuitem",
    listbox: "option",
    tree: "treeitem",
    grid: "gridcell"
  }, ov = ku(rv);
  return ov && (ev = iv[ov]) != null ? ev : tv;
}
function Hp(rv) {
  if (!rv)
    return null;
  if (rv.clientHeight && rv.scrollHeight > rv.clientHeight) {
    const {
      overflowY: tv
    } = getComputedStyle(rv);
    if (tv !== "visible" && tv !== "hidden")
      return rv;
  }
  return Hp(rv.parentElement) || document.scrollingElement || document.body;
}
function KS() {
  return Oa && !!navigator.maxTouchPoints;
}
function Nu() {
  return Oa ? /mac|iphone|ipad|ipod/i.test(navigator.platform) : !1;
}
function Fu() {
  return Oa && Nu() && /apple/i.test(navigator.vendor);
}
function YS() {
  return Oa && navigator.platform.startsWith("Mac") && !KS();
}
function Gp(rv) {
  return !Xt(rv.currentTarget, rv.target);
}
function yr(rv) {
  return rv.target === rv.currentTarget;
}
function zp(rv) {
  const tv = rv.target;
  if (!tv)
    return null;
  const ev = Nu();
  if (ev && !rv.metaKey || !ev && !rv.ctrlKey)
    return !1;
  const iv = tv.tagName.toLowerCase();
  return iv === "a" || iv === "button" && tv.type === "submit" || iv === "input" && tv.type === "submit";
}
function Yi(rv, tv) {
  const ev = new FocusEvent("blur", tv), iv = rv.dispatchEvent(ev), ov = {
    ...tv,
    bubbles: !0
  };
  return rv.dispatchEvent(new FocusEvent("focusout", ov)), iv;
}
function XS(rv, tv) {
  const ev = new FocusEvent("focus", tv), iv = rv.dispatchEvent(ev), ov = {
    ...tv,
    bubbles: !0
  };
  return rv.dispatchEvent(new FocusEvent("focusin", ov)), iv;
}
function qS(rv, tv, ev) {
  const iv = new KeyboardEvent(tv, ev);
  return rv.dispatchEvent(iv);
}
function tf(rv, tv) {
  const ev = new MouseEvent("click", tv);
  return rv.dispatchEvent(ev);
}
function qn(rv, tv) {
  const ev = tv || rv.currentTarget, iv = rv.relatedTarget;
  return !iv || !Xt(ev, iv);
}
function ya(rv, tv, ev) {
  const iv = requestAnimationFrame(() => {
    rv.removeEventListener(tv, ov, !0), ev();
  }), ov = () => {
    cancelAnimationFrame(iv), ev();
  };
  return rv.addEventListener(tv, ov, {
    once: !0,
    capture: !0
  }), iv;
}
function er(rv, tv, ev, iv) {
  iv === void 0 && (iv = window);
  try {
    iv.document.addEventListener(rv, tv, ev);
  } catch {
  }
  const ov = [];
  for (let sv = 0; sv < ((av = iv.frames) == null ? void 0 : av.length); sv += 1) {
    var av;
    const lv = iv.frames[sv];
    lv && ov.push(er(rv, tv, ev, lv));
  }
  return () => {
    try {
      iv.document.removeEventListener(rv, tv, ev);
    } catch {
    }
    ov.forEach((sv) => sv());
  };
}
function Vp() {
}
function ZS(rv, tv) {
  if (rv === tv)
    return !0;
  if (!rv || !tv || typeof rv != "object" || typeof tv != "object")
    return !1;
  const ev = Object.keys(rv), iv = Object.keys(tv), {
    length: ov
  } = ev;
  if (iv.length !== ov)
    return !1;
  for (const av of ev)
    if (rv[av] !== tv[av])
      return !1;
  return !0;
}
function JS(rv, tv) {
  if (QS(rv)) {
    const ev = eA(tv) ? tv() : tv;
    return rv(ev);
  }
  return rv;
}
function QS(rv) {
  return typeof rv == "function";
}
function eA(rv) {
  return typeof rv == "function";
}
function Bl(rv, tv) {
  typeof rv == "function" ? rv(tv) : rv && (rv.current = tv);
}
function tA(rv, tv) {
  return Object.prototype.hasOwnProperty.call(rv, tv);
}
function Mu() {
  for (var rv = arguments.length, tv = new Array(rv), ev = 0; ev < rv; ev++)
    tv[ev] = arguments[ev];
  return function() {
    for (const iv of tv)
      typeof iv == "function" && iv(...arguments);
  };
}
function Wp(rv) {
  return rv.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
}
function xs(rv) {
  if (window.queueMicrotask)
    return window.queueMicrotask(rv);
  Promise.resolve().then(rv);
}
const rf = reactExports.useId, nf = reactExports.useInsertionEffect, Tt = Oa ? reactExports.useLayoutEffect : reactExports.useEffect;
function Kp(rv) {
  const [tv] = reactExports.useState(rv);
  return tv;
}
function rA(rv) {
  const tv = reactExports.useRef();
  return tv.current === void 0 && (tv.current = rv()), tv.current;
}
function en(rv) {
  const tv = reactExports.useRef(rv);
  return Tt(() => {
    tv.current = rv;
  }), tv;
}
function nA(rv) {
  const [tv, ev] = reactExports.useState(rv);
  return rv !== tv && ev(rv), tv;
}
function Ze(rv) {
  const tv = reactExports.useRef(() => {
    throw new Error("Cannot call an event handler while rendering.");
  });
  return nf ? nf(() => {
    tv.current = rv;
  }) : tv.current = rv, reactExports.useCallback(function() {
    for (var ev = arguments.length, iv = new Array(ev), ov = 0; ov < ev; ov++)
      iv[ov] = arguments[ov];
    return tv.current == null ? void 0 : tv.current(...iv);
  }, []);
}
function Ut() {
  for (var rv = arguments.length, tv = new Array(rv), ev = 0; ev < rv; ev++)
    tv[ev] = arguments[ev];
  return reactExports.useMemo(() => {
    if (tv.some(Boolean))
      return (iv) => {
        tv.forEach((ov) => {
          Bl(ov, iv);
        });
      };
  }, tv);
}
function iA(rv, tv) {
  const [ev, iv] = reactExports.useState(void 0);
  return Tt(() => {
    var ov;
    iv(rv == null || (ov = rv.current) == null ? void 0 : ov.id);
  }, tv), ev;
}
function tn(rv) {
  if (rf) {
    const iv = rf();
    return rv || iv;
  }
  const [tv, ev] = reactExports.useState(rv);
  return Tt(() => {
    if (rv || tv)
      return;
    const iv = Math.random().toString(36).substr(2, 6);
    ev("id-" + iv);
  }, [rv, tv]), rv || tv;
}
function Pi(rv, tv) {
  const [ev, iv] = reactExports.useState(() => af(tv));
  return Tt(() => {
    var ov;
    iv((rv == null || (ov = rv.current) == null ? void 0 : ov.tagName.toLowerCase()) || af(tv));
  }, [rv, tv]), ev;
}
function af(rv) {
  if (typeof rv == "string")
    return rv;
}
function of(rv, tv) {
  const ev = reactExports.useRef(!1);
  reactExports.useEffect(() => {
    if (ev.current)
      return rv();
    ev.current = !0;
  }, tv), reactExports.useEffect(() => () => {
    ev.current = !1;
  }, []);
}
function Ti(rv, tv, ev) {
  const [iv, ov] = reactExports.useState(rv), av = tv !== void 0 ? tv : iv, sv = en(tv), lv = en(ev), uv = en(av), cv = reactExports.useCallback((dv) => {
    const hv = lv.current;
    if (hv)
      if (Xp(hv))
        hv(dv);
      else {
        const pv = JS(dv, uv.current);
        uv.current = pv, hv(pv);
      }
    sv.current === void 0 && ov(dv);
  }, []);
  return aA(cv), [av, cv];
}
const Yp = Symbol("setNextState");
function Xp(rv) {
  return rv[Yp] === !0;
}
function aA(rv) {
  Xp(rv) || Object.defineProperty(rv, Yp, {
    value: !0
  });
}
function qp() {
  return reactExports.useReducer(() => [], []);
}
function Vt(rv) {
  return Ze(typeof rv == "function" ? rv : () => rv);
}
function _r(rv, tv, ev) {
  ev === void 0 && (ev = []);
  const iv = reactExports.useCallback((ov) => (rv.wrapElement && (ov = rv.wrapElement(ov)), tv(ov)), [...ev, rv.wrapElement]);
  return {
    ...rv,
    wrapElement: iv
  };
}
function $u(rv, tv) {
  rv === void 0 && (rv = !1);
  const [ev, iv] = reactExports.useState(null);
  return {
    portalRef: Ut(iv, tv),
    portalNode: ev,
    domReady: !rv || ev
  };
}
function Zp() {
  return reactExports.useEffect(() => {
    er("mousemove", sA, !0), er("mousedown", to, !0), er("mouseup", to, !0), er("keydown", to, !0), er("scroll", to, !0);
  }, []), Ze(() => Bu);
}
let Bu = !1, sf = 0, lf = 0;
function oA(rv) {
  const tv = rv.movementX || rv.screenX - sf, ev = rv.movementY || rv.screenY - lf;
  return sf = rv.screenX, lf = rv.screenY, tv || ev || !1;
}
function sA(rv) {
  oA(rv) && (Bu = !0);
}
function to() {
  Bu = !1;
}
function lA(rv) {
  return typeof rv == "function";
}
function Wt(rv) {
  return /* @__PURE__ */ reactExports.forwardRef((tv, ev) => rv({
    ref: ev,
    ...tv
  }));
}
function Lt(rv, tv) {
  const {
    as: ev,
    wrapElement: iv,
    ...ov
  } = tv;
  let av;
  if (ev && typeof ev != "string")
    av = /* @__PURE__ */ jsxRuntimeExports.jsx(ev, {
      ...ov
    });
  else if (lA(tv.children)) {
    const {
      children: sv,
      ...lv
    } = ov;
    av = tv.children(lv);
  } else
    ev ? av = /* @__PURE__ */ jsxRuntimeExports.jsx(ev, {
      ...ov
    }) : av = /* @__PURE__ */ jsxRuntimeExports.jsx(rv, {
      ...ov
    });
  return iv ? iv(av) : av;
}
function it(rv) {
  return function(tv) {
    tv === void 0 && (tv = {});
    const ev = rv(tv), iv = {};
    for (const ov in ev)
      tA(ev, ov) && ev[ov] !== void 0 && (iv[ov] = ev[ov]);
    return iv;
  };
}
const Uu = "input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])";
function uA(rv) {
  return parseInt(rv.getAttribute("tabindex") || "0", 10) < 0;
}
function Oi(rv) {
  return Lu(rv, Uu) && WS(rv);
}
function $o(rv) {
  return Oi(rv) && !uA(rv);
}
function ju(rv, tv) {
  const ev = Array.from(rv.querySelectorAll(Uu));
  tv && ev.unshift(rv);
  const iv = ev.filter(Oi);
  return iv.forEach((ov, av) => {
    if (Ou(ov) && ov.contentDocument) {
      const sv = ov.contentDocument.body;
      iv.splice(av, 1, ...ju(sv));
    }
  }), iv;
}
function ka(rv, tv, ev) {
  const iv = Array.from(rv.querySelectorAll(Uu)), ov = iv.filter($o);
  return tv && $o(rv) && ov.unshift(rv), ov.forEach((av, sv) => {
    if (Ou(av) && av.contentDocument) {
      const lv = av.contentDocument.body, uv = ka(lv, !1, ev);
      ov.splice(sv, 1, ...uv);
    }
  }), !ov.length && ev ? iv : ov;
}
function cA(rv, tv, ev) {
  const [iv] = ka(rv, tv, ev);
  return iv || null;
}
function dA(rv, tv, ev, iv) {
  const ov = on(rv), av = ju(rv, tv), sv = av.indexOf(ov);
  return av.slice(sv + 1).find($o) || null || null || null;
}
function uf(rv, tv) {
  return dA(document.body, !1);
}
function fA(rv, tv, ev, iv) {
  const ov = on(rv), av = ju(rv, tv).reverse(), sv = av.indexOf(ov);
  return av.slice(sv + 1).find($o) || null || null || null;
}
function cf(rv, tv) {
  return fA(document.body, !1);
}
function Jp(rv) {
  const tv = on(rv);
  if (!tv)
    return !1;
  if (tv === rv)
    return !0;
  const ev = tv.getAttribute("aria-activedescendant");
  return ev ? ev === rv.id : !1;
}
function ws(rv) {
  const tv = on(rv);
  if (!tv)
    return !1;
  if (Xt(rv, tv))
    return !0;
  const ev = tv.getAttribute("aria-activedescendant");
  return !ev || !("id" in rv) ? !1 : ev === rv.id ? !0 : !!rv.querySelector("#" + CSS.escape(ev));
}
function Qp(rv) {
  !ws(rv) && Oi(rv) && rv.focus();
}
function hA(rv) {
  var tv;
  const ev = (tv = rv.getAttribute("tabindex")) != null ? tv : "";
  rv.setAttribute("data-tabindex", ev), rv.setAttribute("tabindex", "-1");
}
function mA(rv, tv) {
  ka(rv, tv).forEach(hA);
}
function pA(rv) {
  const tv = rv.querySelectorAll("[data-tabindex]"), ev = (iv) => {
    const ov = iv.getAttribute("data-tabindex");
    iv.removeAttribute("data-tabindex"), ov ? iv.setAttribute("tabindex", ov) : iv.removeAttribute("tabindex");
  };
  rv.hasAttribute("data-tabindex") && ev(rv), tv.forEach(ev);
}
function gA(rv, tv) {
  "scrollIntoView" in rv ? (rv.focus({
    preventScroll: !0
  }), rv.scrollIntoView({
    block: "nearest",
    inline: "nearest",
    ...tv
  })) : rv.focus();
}
const df = Fu(), vA = ["text", "search", "url", "tel", "email", "password", "number", "date", "month", "week", "time", "datetime", "datetime-local"];
function bA(rv) {
  const {
    tagName: tv,
    readOnly: ev,
    type: iv
  } = rv;
  return tv === "TEXTAREA" && !ev || tv === "SELECT" && !ev ? !0 : tv === "INPUT" && !ev ? vA.includes(iv) : !!rv.isContentEditable;
}
function yA(rv) {
  return rv.getAttribute("role") === "combobox";
}
function EA(rv) {
  return "labels" in rv ? rv.labels : null;
}
function ff(rv) {
  return rv.tagName.toLowerCase() === "input" && rv.type ? rv.type === "radio" || rv.type === "checkbox" : !1;
}
function xA(rv) {
  return rv ? rv === "button" || rv === "input" || rv === "select" || rv === "textarea" || rv === "a" : !0;
}
function wA(rv) {
  return rv ? rv === "button" || rv === "input" || rv === "select" || rv === "textarea" : !0;
}
function TA(rv, tv, ev, iv, ov) {
  return rv ? tv ? ev && !iv ? -1 : void 0 : ev ? ov : ov || 0 : ov;
}
function al(rv, tv) {
  return Ze((ev) => {
    rv == null || rv(ev), !ev.defaultPrevented && tv && (ev.stopPropagation(), ev.preventDefault());
  });
}
let Hu = !0;
function SA(rv) {
  const tv = rv.target;
  tv && "hasAttribute" in tv && (tv.hasAttribute("data-focus-visible") || (Hu = !1));
}
function AA(rv) {
  rv.metaKey || rv.ctrlKey || (Hu = !0);
}
const Li = it((rv) => {
  let {
    focusable: tv = !0,
    accessibleWhenDisabled: ev,
    autoFocus: iv,
    onFocusVisible: ov,
    ...av
  } = rv;
  const sv = reactExports.useRef(null);
  reactExports.useEffect(() => {
    tv && (er("mousedown", SA, !0), er("keydown", AA, !0));
  }, [tv]), df && reactExports.useEffect(() => {
    if (!tv)
      return;
    const Xv = sv.current;
    if (!Xv || !ff(Xv))
      return;
    const L1 = EA(Xv);
    if (!L1)
      return;
    const Bv = () => xs(() => Xv.focus());
    return L1.forEach((Qv) => Qv.addEventListener("mouseup", Bv)), () => {
      L1.forEach((Qv) => Qv.removeEventListener("mouseup", Bv));
    };
  }, [tv]);
  const lv = tv && av.disabled, uv = !!lv && !ev, [cv, dv] = reactExports.useState(!1);
  reactExports.useEffect(() => {
    tv && uv && cv && dv(!1);
  }, [tv, uv, cv]), reactExports.useEffect(() => {
    if (!tv || !cv)
      return;
    const Xv = sv.current;
    if (!Xv || typeof IntersectionObserver > "u")
      return;
    const L1 = new IntersectionObserver(() => {
      Oi(Xv) || dv(!1);
    });
    return L1.observe(Xv), () => L1.disconnect();
  }, [tv, cv]);
  const hv = al(av.onKeyPressCapture, lv), pv = al(av.onMouseDownCapture, lv), yv = al(av.onClickCapture, lv), Sv = av.onMouseDown, _v = Ze((Xv) => {
    if (Sv == null || Sv(Xv), Xv.defaultPrevented || !tv)
      return;
    const L1 = Xv.currentTarget;
    if (!df || Gp(Xv) || !Fn(L1) && !ff(L1))
      return;
    let Bv = !1;
    const Qv = () => {
      Bv = !0;
    }, B1 = {
      capture: !0,
      once: !0
    };
    L1.addEventListener("focusin", Qv, B1), ya(L1, "mouseup", () => {
      L1.removeEventListener("focusin", Qv, !0), !Bv && Qp(L1);
    });
  }), Ev = ov, wv = Ze((Xv) => {
    Ev == null || Ev(Xv), !Xv.defaultPrevented && tv && dv(!0);
  }), xv = av.onKeyDownCapture, Cv = Ze((Xv) => {
    xv == null || xv(Xv), tv && (Xv.metaKey || Xv.altKey || Xv.ctrlKey || yr(Xv) && !cv && !Xv.defaultPrevented && wv(Xv));
  }), Av = av.onFocusCapture, Ov = Ze((Xv) => {
    if (Av == null || Av(Xv), !Xv.defaultPrevented && tv) {
      if (!yr(Xv)) {
        dv(!1);
        return;
      }
      Hu || bA(Xv.target) ? wv(Xv) : yA(Xv.target) ? ya(Xv.target, "focusout", () => wv(Xv)) : dv(!1);
    }
  }), Lv = av.onBlur, jv = Ze((Xv) => {
    Lv == null || Lv(Xv), tv && qn(Xv) && dv(!1);
  });
  Tt(() => {
    if (tv && iv) {
      var Xv;
      (Xv = sv.current) == null || Xv.focus();
    }
  }, [tv, iv]);
  const Dv = Pi(sv, av.as), Vv = tv && xA(Dv), Gv = tv && wA(Dv), Yv = uv ? {
    pointerEvents: "none",
    ...av.style
  } : av.style;
  return av = {
    "data-focus-visible": tv && cv ? "" : void 0,
    "aria-disabled": lv ? !0 : void 0,
    ...av,
    ref: Ut(sv, av.ref),
    style: Yv,
    tabIndex: TA(tv, uv, Vv, Gv, av.tabIndex),
    disabled: Gv && uv ? !0 : void 0,
    // TODO: Test Focusable contentEditable.
    contentEditable: lv ? void 0 : av.contentEditable,
    onKeyPressCapture: hv,
    onClickCapture: yv,
    onMouseDownCapture: pv,
    onMouseDown: _v,
    onKeyDownCapture: Cv,
    onFocusCapture: Ov,
    onBlur: jv
  }, av;
}), CA = Wt((rv) => (rv = Li(rv), Lt("div", rv)));
function hf(rv) {
  if (!rv.isTrusted)
    return !1;
  const tv = rv.currentTarget;
  return Fn(tv) || tv.tagName === "SUMMARY" || tv.tagName === "INPUT" || tv.tagName === "TEXTAREA" || tv.tagName === "A" || tv.tagName === "SELECT";
}
const Gu = it((rv) => {
  let {
    clickOnEnter: tv = !0,
    clickOnSpace: ev = !0,
    ...iv
  } = rv;
  const ov = reactExports.useRef(null), av = Pi(ov, iv.as), [sv, lv] = reactExports.useState(() => !!av && Fn({
    tagName: av,
    type: iv.type
  }));
  reactExports.useEffect(() => {
    ov.current && lv(Fn(ov.current));
  }, []);
  const [uv, cv] = reactExports.useState(!1), dv = reactExports.useRef(!1), hv = "data-command" in iv, pv = iv.onKeyDown, yv = Ze((Ev) => {
    pv == null || pv(Ev);
    const wv = Ev.currentTarget;
    if (Ev.defaultPrevented || hv || iv.disabled || !yr(Ev) || La(wv) || wv.isContentEditable)
      return;
    const xv = tv && Ev.key === "Enter", Cv = ev && Ev.key === " ", Av = Ev.key === "Enter" && !tv, Ov = Ev.key === " " && !ev;
    if (Av || Ov) {
      Ev.preventDefault();
      return;
    }
    if (xv || Cv) {
      const Lv = hf(Ev);
      if (xv) {
        if (!Lv) {
          Ev.preventDefault();
          const {
            view: jv,
            ...Dv
          } = Ev;
          ya(wv, "keyup", () => (
            // Fire a click event instead of calling element.click() directly
            // so we can pass the modifier state to the click event.
            tf(wv, Dv)
          ));
        }
      } else
        Cv && (dv.current = !0, Lv || (Ev.preventDefault(), cv(!0)));
    }
  }), Sv = iv.onKeyUp, _v = Ze((Ev) => {
    if (Sv == null || Sv(Ev), Ev.defaultPrevented || hv || iv.disabled || Ev.metaKey)
      return;
    const wv = ev && Ev.key === " ";
    if (dv.current && wv && (dv.current = !1, !hf(Ev))) {
      cv(!1);
      const xv = Ev.currentTarget, {
        view: Cv,
        ...Av
      } = Ev;
      requestAnimationFrame(() => tf(xv, Av));
    }
  });
  return iv = {
    "data-command": "",
    "data-active": uv ? "" : void 0,
    type: sv ? "button" : void 0,
    ...iv,
    ref: Ut(ov, iv.ref),
    onKeyDown: yv,
    onKeyUp: _v
  }, iv = Li(iv), iv;
}), zu = it((rv) => {
  const tv = reactExports.useRef(null), ev = Pi(tv, rv.as || "button"), [iv, ov] = reactExports.useState(() => !!ev && Fn({
    tagName: ev,
    type: rv.type
  }));
  return reactExports.useEffect(() => {
    tv.current && ov(Fn(tv.current));
  }, []), rv = {
    role: !iv && ev !== "a" ? "button" : void 0,
    ...rv,
    ref: Ut(tv, rv.ref)
  }, rv = Gu(rv), rv;
}), RA = /* @__PURE__ */ jsxRuntimeExports.jsxs("svg", {
  "aria-hidden": "true",
  display: "block",
  viewBox: "0 0 16 16",
  fill: "none",
  stroke: "currentColor",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: "1pt",
  width: "1em",
  height: "1em",
  pointerEvents: "none",
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx("line", {
    x1: "5",
    y1: "5",
    x2: "11",
    y2: "11"
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("line", {
    x1: "5",
    y1: "11",
    x2: "11",
    y2: "5"
  })]
}), _A = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  const iv = ev.onClick, ov = Ze((sv) => {
    iv == null || iv(sv), !sv.defaultPrevented && (tv.setValue(""), tv.move(null));
  }), av = iA(tv.baseRef);
  return ev = {
    children: RA,
    "aria-label": "Clear input",
    // This aria-controls will ensure the combobox popup remains visible when
    // this element gets focused. This logic is done in the ComboboxPopover
    // component.
    "aria-controls": av,
    ...ev,
    onClick: ov
  }, ev = zu(ev), ev;
}), IA = Wt((rv) => {
  const tv = _A(rv);
  return Lt("button", tv);
}), PA = it((rv) => {
  var tv;
  let {
    state: ev,
    toggleOnClick: iv = !0,
    ...ov
  } = rv;
  const av = reactExports.useRef(null), [sv, lv] = reactExports.useState(!1);
  Tt(() => {
    const Sv = ev.disclosureRef.current;
    (!Sv || !Sv.isConnected) && (ev.disclosureRef.current = av.current);
    const _v = ev.disclosureRef.current === av.current;
    lv(ev.open && _v);
  }, [ev.disclosureRef, ev.open]);
  const uv = ov.onMouseDown, cv = Ze((Sv) => {
    ev.disclosureRef.current = Sv.currentTarget, uv == null || uv(Sv);
  }), dv = ov.onClick, hv = Vt(iv), pv = "data-disclosure" in ov, yv = Ze((Sv) => {
    ev.disclosureRef.current = Sv.currentTarget, dv == null || dv(Sv), !Sv.defaultPrevented && (pv || hv(Sv) && ev.toggle());
  });
  return ov = {
    "data-disclosure": "",
    "aria-expanded": sv,
    "aria-controls": (tv = ev.contentElement) == null ? void 0 : tv.id,
    ...ov,
    ref: Ut(av, ov.ref),
    onMouseDown: cv,
    onClick: yv
  }, ov = zu(ov), ov;
}), OA = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  return ev = PA({
    state: tv,
    ...ev
  }), ev;
});
function LA(rv) {
  return Array.isArray(rv) ? rv : typeof rv < "u" ? [rv] : [];
}
function kA(rv, tv, ev) {
  return ev === void 0 && (ev = -1), ev in rv ? [...rv.slice(0, ev), tv, ...rv.slice(ev)] : [...rv, tv];
}
function Ul(rv) {
  const tv = [];
  for (const ev of rv)
    tv.push(...ev);
  return tv;
}
function na(rv) {
  return rv.slice().reverse();
}
const e0 = Symbol("getState"), Bo = Symbol("subscribe"), Zn = Symbol("timestamp"), Vu = Symbol("initialContext");
function DA(rv) {
  if (!rv)
    return rv;
  const tv = rv[e0];
  return tv ? tv() : rv;
}
function Uo(rv) {
  return rv ? !!rv[Bo] : !1;
}
function NA(rv) {
  if (rv)
    return rv[Bo];
}
function FA(rv, tv) {
  return tv ? rv ? Zn in tv ? Zn in rv && rv[Zn] >= tv[Zn] ? rv : tv : rv : tv : rv;
}
function t0(rv, tv) {
  tv === void 0 && (tv = rv), Object.defineProperty(rv, e0, {
    value: () => tv,
    writable: !0
  });
}
function MA(rv, tv) {
  Bo in rv || Object.defineProperty(rv, Bo, {
    value: tv
  });
}
function $A(rv) {
  Zn in rv || Object.defineProperty(rv, Zn, {
    value: Date.now(),
    writable: !0
  });
}
function BA(rv) {
  Object.defineProperty(rv, Zn, {
    value: Date.now(),
    writable: !0
  });
}
function UA(rv) {
  const tv = /* @__PURE__ */ reactExports.createContext(void 0);
  return Object.defineProperty(rv, Vu, {
    value: tv
  }), tv;
}
function Wu(rv) {
  return rv && Vu in rv;
}
function r0(rv) {
  return Wu(rv) ? rv[Vu] : void 0;
}
function ki() {
  const rv = /* @__PURE__ */ reactExports.createContext(void 0);
  return UA(rv), rv;
}
function Di(rv, tv) {
  tv === void 0 && (tv = ZS);
  const ev = Wt(rv);
  return /* @__PURE__ */ reactExports.memo(ev, (iv, ov) => {
    const {
      state: av,
      ...sv
    } = iv, {
      state: lv,
      ...uv
    } = ov;
    return lv && Uo(lv) ? tv(sv, uv) : tv(iv, ov);
  });
}
function Da(rv, tv) {
  let {
    state: ev,
    ...iv
  } = rv;
  const ov = Kp(ev), av = ev && Uo(ev) ? ov : ev;
  t0(av, ev);
  const sv = r0(tv);
  return _r(iv, (lv) => (av && sv && (lv = /* @__PURE__ */ jsxRuntimeExports.jsx(sv.Provider, {
    value: av,
    children: lv
  })), ev && (lv = /* @__PURE__ */ jsxRuntimeExports.jsx(tv.Provider, {
    value: ev,
    children: lv
  })), lv), [av, sv, ev, tv]);
}
function n0(rv) {
  const tv = rA(() => /* @__PURE__ */ new Set());
  Tt(() => {
    BA(rv);
    for (const iv of tv)
      iv(rv);
  }, [rv]);
  const ev = reactExports.useCallback((iv) => (tv.add(iv), () => tv.delete(iv)), []);
  return MA(rv, ev), t0(rv), $A(rv), rv;
}
function xr(rv, tv) {
  const ev = reactExports.useContext(HA(rv, tv)), iv = Wu(rv) ? ev : rv, [ov, av] = reactExports.useState(() => DA(iv)), sv = Uo(iv) && Uo(ov) ? FA(ov, iv) : iv, lv = NA(iv), uv = reactExports.useRef(null), cv = LA(tv), dv = !tv;
  return Tt(() => {
    if (!(!lv || !av)) {
      if (dv)
        return lv(av);
      if (cv.length)
        return lv((hv) => {
          const pv = uv.current;
          uv.current = hv;
          const yv = (Sv) => {
            if (typeof Sv == "function") {
              const Ev = Sv(hv);
              return typeof Ev == "boolean" ? Ev || pv && Sv(pv) : pv ? Ev !== Sv(pv) : Ev;
            }
            const _v = Sv;
            return (pv == null ? void 0 : pv[_v]) !== hv[_v];
          };
          cv.some(yv) && av(hv);
        });
    }
  }, [lv, av, dv, ...cv]), sv;
}
const jA = /* @__PURE__ */ reactExports.createContext(void 0);
function HA(rv, tv) {
  return Wu(rv) ? tv ? r0(rv) : rv : jA;
}
const i0 = ki(), GA = /* @__PURE__ */ reactExports.createContext(void 0), zA = {
  id: null,
  ref: {
    current: null
  }
};
function a0(rv) {
  let tv = 0;
  for (const {
    length: ev
  } of rv)
    ev > tv && (tv = ev);
  return tv;
}
function VA(rv, tv) {
  return rv.filter((ev) => tv ? !ev.disabled && ev.id !== tv : !ev.disabled);
}
function Zr(rv, tv) {
  return rv.find((ev) => tv ? !ev.disabled && ev.id !== tv : !ev.disabled);
}
function mf(rv, tv, ev) {
  const iv = a0(rv);
  for (const ov of rv)
    for (let av = 0; av < iv; av += 1) {
      const sv = ov[av];
      if (!sv || ev && sv.disabled) {
        const lv = av === 0 && ev ? Zr(ov) : ov[av - 1];
        ov[av] = lv && tv !== lv.id && ev ? lv : WA(lv == null ? void 0 : lv.rowId);
      }
    }
  return rv;
}
function WA(rv) {
  return {
    id: "__EMPTY_ITEM__",
    disabled: !0,
    ref: {
      current: null
    },
    rowId: rv
  };
}
function o0(rv, tv) {
  if (tv)
    return rv.find((ev) => ev.id === tv && !ev.disabled);
}
function KA(rv, tv, ev) {
  var iv;
  return tv !== void 0 ? tv : (iv = Zr(rv)) == null ? void 0 : iv.id;
}
function pf(rv, tv) {
  return rv.filter((ev) => ev.rowId === tv);
}
function YA(rv) {
  if (rv === "vertical")
    return "horizontal";
  if (rv === "horizontal")
    return "vertical";
}
function jo(rv) {
  const tv = [];
  for (const ev of rv) {
    const iv = tv.find((ov) => {
      var av;
      return ((av = ov[0]) == null ? void 0 : av.rowId) === ev.rowId;
    });
    iv ? iv.push(ev) : tv.push([ev]);
  }
  return tv;
}
function s0(rv, tv, ev) {
  ev === void 0 && (ev = !1);
  const iv = rv.findIndex((ov) => ov.id === tv);
  return [...rv.slice(iv + 1), ...ev ? [zA] : [], ...rv.slice(0, iv)];
}
function gf(rv) {
  const tv = jo(rv), ev = a0(tv), iv = [];
  for (let ov = 0; ov < ev; ov += 1)
    for (const av of tv) {
      const sv = av[ov];
      sv && iv.push({
        ...sv,
        // If there's no rowId, it means that it's not a grid composite, but
        // a single row instead. So, instead of verticalizing it, that is,
        // assigning a different rowId based on the column index, we keep it
        // undefined so they will be part of the same row. This is useful
        // when using up/down on one-dimensional composites.
        rowId: sv.rowId ? "" + ov : void 0
      });
    }
  return iv;
}
function XA(rv, tv) {
  return tv != null && tv.baseRef && tv.baseRef === (rv == null ? void 0 : rv.baseRef) ? tv.id : void 0;
}
const jl = Symbol("FOCUS_SILENTLY");
function qA(rv) {
  rv[jl] = !0, rv.focus();
}
function ZA(rv) {
  const tv = rv[jl];
  return delete rv[jl], tv;
}
function ca(rv, tv, ev) {
  return tv ? rv.some((iv) => ev && iv.ref.current === ev ? !1 : iv.ref.current === tv) : !1;
}
const Na = ki(), JA = /* @__PURE__ */ reactExports.createContext(void 0), QA = /* @__PURE__ */ reactExports.createContext(void 0);
function l0(rv) {
  const tv = rv.relatedTarget;
  return (tv == null ? void 0 : tv.nodeType) === Node.ELEMENT_NODE ? tv : null;
}
function e2(rv) {
  const tv = l0(rv);
  return tv ? Xt(rv.currentTarget, tv) : !1;
}
function t2(rv) {
  const tv = l0(rv);
  return tv ? !!jp(tv, "[data-composite-hover]") : !1;
}
const Ku = it((rv) => {
  let {
    state: tv,
    focusOnHover: ev = !0,
    ...iv
  } = rv;
  tv = xr(tv || Na, ["setActiveId", "baseRef"]);
  const ov = Zp(), av = iv.onMouseMove, sv = Vt(ev), lv = Ze((dv) => {
    var hv;
    if (av == null || av(dv), !dv.defaultPrevented && ov() && sv(dv)) {
      if (!ws(dv.currentTarget)) {
        var pv, yv;
        (pv = tv) == null || (yv = pv.baseRef.current) == null || yv.focus();
      }
      (hv = tv) == null || hv.setActiveId(dv.currentTarget.id);
    }
  }), uv = iv.onMouseLeave, cv = Ze((dv) => {
    var hv, pv, yv;
    uv == null || uv(dv), !dv.defaultPrevented && ov() && (e2(dv) || t2(dv) || sv(dv) && ((hv = tv) == null || hv.setActiveId(null), (pv = tv) == null || (yv = pv.baseRef.current) == null || yv.focus()));
  });
  return iv = {
    "data-composite-hover": "",
    ...iv,
    onMouseMove: lv,
    onMouseLeave: cv
  }, iv;
});
Di((rv) => {
  const tv = Ku(rv);
  return Lt("div", tv);
});
const r2 = /* @__PURE__ */ reactExports.createContext(void 0);
function n2(rv) {
  return rv;
}
const u0 = it((rv) => {
  var tv;
  let {
    state: ev,
    shouldRegisterItem: iv = !0,
    getItem: ov = n2,
    ...av
  } = rv;
  ev = xr(ev, ["registerItem"]);
  const sv = reactExports.useContext(r2), lv = ((tv = ev) == null ? void 0 : tv.registerItem) || sv, uv = reactExports.useRef(null);
  return Tt(() => {
    if (iv)
      return lv == null ? void 0 : lv(ov({
        ref: uv
      }));
  }, [iv, ov, lv]), av = {
    ...av,
    ref: Ut(uv, av.ref)
  }, av;
});
function i2(rv) {
  return rv.isContentEditable || La(rv) ? !0 : rv.tagName === "INPUT" && !Fn(rv);
}
function a2(rv, tv) {
  tv === void 0 && (tv = !1);
  const ev = rv.clientHeight, {
    top: iv
  } = rv.getBoundingClientRect(), ov = Math.max(ev * 0.875, ev - 40) * 1.5, av = tv ? ev - ov + iv : ov + iv;
  return rv.tagName === "HTML" ? av + rv.scrollTop : av;
}
function o2(rv, tv) {
  tv === void 0 && (tv = !1);
  const {
    top: ev
  } = rv.getBoundingClientRect();
  return tv ? ev + rv.clientHeight : ev;
}
function vf(rv, tv, ev, iv) {
  if (iv === void 0 && (iv = !1), !tv || !ev)
    return;
  const ov = Hp(rv);
  if (!ov)
    return;
  const av = a2(ov, iv);
  let sv, lv;
  for (let uv = 0; uv < tv.length; uv += 1) {
    const cv = sv;
    if (sv = ev(uv), !sv)
      break;
    if (sv === cv)
      continue;
    const dv = o0(tv, sv), hv = dv == null ? void 0 : dv.ref.current;
    if (!hv)
      continue;
    const pv = o2(hv, iv) - av, yv = Math.abs(pv);
    if (iv && pv <= 0 || !iv && pv >= 0) {
      lv !== void 0 && lv < yv && (sv = cv);
      break;
    }
    lv = yv;
  }
  return sv;
}
function s2(rv, tv) {
  return reactExports.useMemo(() => {
    if (tv)
      return rv == null ? void 0 : rv.find((ev) => ev.id === tv);
  }, [rv, tv]);
}
function l2(rv, tv) {
  if (yr(rv))
    return !1;
  const ev = rv.target;
  return ca(tv, ev, rv.currentTarget);
}
function u2(rv, tv) {
  const [ev, iv] = reactExports.useState(tv.role);
  return Tt(() => {
    const ov = rv.current;
    ov && iv(ov.getAttribute("role") || tv.role);
  }, [tv.role]), ev;
}
function c2(rv) {
  return rv === "option" || rv === "treeitem";
}
function d2(rv) {
  return rv === "option" || rv === "tab" || rv === "treeitem" || rv === "gridcell" || rv === "row" || rv === "columnheader" || rv === "rowheader";
}
const Fa = it((rv) => {
  var tv, ev, iv, ov, av;
  let {
    state: sv,
    rowId: lv,
    preventScrollOnKeyDown: uv = !1,
    getItem: cv,
    ...dv
  } = rv;
  const hv = tn(dv.id);
  sv = xr(sv || Na, [reactExports.useCallback((K1) => K1.activeId === hv, [hv]), "baseRef", "items", "virtualFocus", "registerItem", "setActiveId", "orientation", "up", "next", "down", "previous", "first", "last", "move"]);
  const pv = reactExports.useRef(null), yv = reactExports.useContext(JA), Sv = lv ?? XA(sv, yv), _v = dv.disabled && !dv.accessibleWhenDisabled, Ev = reactExports.useCallback((K1) => {
    const j1 = {
      ...K1,
      id: hv,
      rowId: Sv,
      disabled: !!_v
    };
    return cv ? cv(j1) : j1;
  }, [hv, Sv, _v, cv]), wv = dv.onFocus, xv = reactExports.useRef(!1), Cv = Ze((K1) => {
    var j1, P1, D1;
    if (wv == null || wv(K1), K1.defaultPrevented || Gp(K1) || !hv || (j1 = sv) != null && j1.items && l2(K1, sv.items))
      return;
    if (((P1 = sv) == null ? void 0 : P1.activeId) !== hv) {
      var I1;
      (I1 = sv) == null || I1.setActiveId(hv);
    }
    if (!((D1 = sv) != null && D1.virtualFocus) || !yr(K1) || i2(K1.currentTarget))
      return;
    const F1 = sv.baseRef.current;
    F1 && (xv.current = !0, K1.relatedTarget === F1 || ca(sv.items, K1.relatedTarget) ? qA(F1) : F1.focus());
  }), Av = dv.onBlurCapture, Ov = Ze((K1) => {
    var j1;
    Av == null || Av(K1), !K1.defaultPrevented && (j1 = sv) != null && j1.virtualFocus && xv.current && (xv.current = !1, K1.preventDefault(), K1.stopPropagation());
  }), Lv = dv.onKeyDown, jv = Vt(uv), Dv = s2((tv = sv) == null ? void 0 : tv.items, hv), Vv = !!(Dv != null && Dv.rowId), Gv = Ze((K1) => {
    var j1, P1, D1, I1, F1, M1;
    if (Lv == null || Lv(K1), K1.defaultPrevented || !yr(K1))
      return;
    const U1 = ((j1 = sv) == null ? void 0 : j1.orientation) !== "horizontal", H1 = ((P1 = sv) == null ? void 0 : P1.orientation) !== "vertical", k1 = {
      ArrowUp: (Vv || U1) && ((D1 = sv) == null ? void 0 : D1.up),
      ArrowRight: (Vv || H1) && ((I1 = sv) == null ? void 0 : I1.next),
      ArrowDown: (Vv || U1) && ((F1 = sv) == null ? void 0 : F1.down),
      ArrowLeft: (Vv || H1) && ((M1 = sv) == null ? void 0 : M1.previous),
      Home: () => {
        var Y1;
        if (!Vv || K1.ctrlKey) {
          var r$;
          return (r$ = sv) == null ? void 0 : r$.first();
        }
        return (Y1 = sv) == null ? void 0 : Y1.previous(-1);
      },
      End: () => {
        var Y1;
        if (!Vv || K1.ctrlKey) {
          var r$;
          return (r$ = sv) == null ? void 0 : r$.last();
        }
        return (Y1 = sv) == null ? void 0 : Y1.next(-1);
      },
      PageUp: () => {
        var Y1, r$;
        return vf(K1.currentTarget, (Y1 = sv) == null ? void 0 : Y1.items, (r$ = sv) == null ? void 0 : r$.up, !0);
      },
      PageDown: () => {
        var Y1, r$;
        return vf(K1.currentTarget, (Y1 = sv) == null ? void 0 : Y1.items, (r$ = sv) == null ? void 0 : r$.down);
      }
    }[K1.key];
    if (k1) {
      const Y1 = k1();
      if (jv(K1) || Y1 !== void 0) {
        var Q1;
        K1.preventDefault(), (Q1 = sv) == null || Q1.move(Y1);
      }
    }
  }), Yv = reactExports.useMemo(() => {
    var K1;
    return {
      id: hv,
      baseRef: (K1 = sv) == null ? void 0 : K1.baseRef
    };
  }, [hv, (ev = sv) == null ? void 0 : ev.baseRef]);
  dv = _r(dv, (K1) => /* @__PURE__ */ jsxRuntimeExports.jsx(QA.Provider, {
    value: Yv,
    children: K1
  }), [Yv]);
  const Xv = ((iv = sv) == null ? void 0 : iv.activeId) === hv, L1 = u2(pv, dv);
  let Bv;
  if (Xv) {
    var Qv;
    (c2(L1) || (Qv = sv) != null && Qv.virtualFocus && d2(L1)) && (Bv = !0);
  }
  const B1 = !((ov = sv) != null && ov.virtualFocus) && Xv || // We don't want to set tabIndex="-1" when using CompositeItem as a
  // standalone component, without state props.
  !((av = sv) != null && av.items.length);
  return dv = {
    id: hv,
    "aria-selected": Bv,
    "data-active-item": Xv ? "" : void 0,
    ...dv,
    ref: Ut(pv, dv.ref),
    tabIndex: B1 ? dv.tabIndex : -1,
    onFocus: Cv,
    onBlurCapture: Ov,
    onKeyDown: Gv
  }, dv = Gu(dv), dv = u0({
    state: sv,
    ...dv,
    getItem: Ev,
    shouldRegisterItem: hv ? dv.shouldRegisterItem : !1
  }), dv;
}), f2 = Di((rv) => {
  const tv = Fa(rv);
  return Lt("button", tv);
}), h2 = it((rv) => {
  var tv, ev;
  let {
    state: iv,
    value: ov,
    hideOnClick: av = ov != null,
    setValueOnClick: sv = !0,
    shouldRegisterItem: lv = !0,
    focusOnHover: uv = !1,
    getItem: cv,
    ...dv
  } = rv;
  iv = xr(iv || i0, ["setValue", "move", "hide", "baseRef", "contentElement", "mounted"]);
  const hv = reactExports.useCallback((xv) => {
    const Cv = {
      ...xv,
      value: ov
    };
    return cv ? cv(Cv) : Cv;
  }, [ov, cv]), pv = dv.onClick, yv = Vt(sv), Sv = Vt(av), _v = Ze((xv) => {
    if (pv == null || pv(xv), !xv.defaultPrevented && !zp(xv)) {
      if (ov != null && yv(xv)) {
        var Cv;
        (Cv = iv) == null || Cv.setValue(ov);
      }
      if (Sv(xv)) {
        var Av, Ov;
        (Av = iv) == null || Av.move(null), (Ov = iv) == null || Ov.hide();
      }
    }
  }), Ev = dv.onKeyDown, wv = Ze((xv) => {
    var Cv;
    if (Ev == null || Ev(xv), xv.defaultPrevented)
      return;
    const Av = (Cv = iv) == null ? void 0 : Cv.baseRef.current;
    if (!(!Av || Jp(Av)) && (xv.key.length === 1 || xv.key === "Backspace" || xv.key === "Delete") && (xs(() => Av.focus()), La(Av))) {
      var Ov;
      (Ov = iv) == null || Ov.setValue(Av.value);
    }
  });
  return dv = _r(dv, (xv) => /* @__PURE__ */ jsxRuntimeExports.jsx(GA.Provider, {
    value: ov,
    children: xv
  }), [ov]), dv = {
    role: Du((tv = iv) == null ? void 0 : tv.contentElement),
    children: ov,
    ...dv,
    onClick: _v,
    onKeyDown: wv
  }, dv = Fa({
    state: iv,
    ...dv,
    getItem: hv,
    // We only register the item on the state when the popover is open so we
    // don't try to move focus to hidden items when pressing arrow keys.
    shouldRegisterItem: ((ev = iv) == null ? void 0 : ev.mounted) && lv
  }), dv = Ku({
    state: iv,
    focusOnHover: uv,
    ...dv
  }), dv;
}), Ts = Di((rv) => {
  const tv = h2(rv);
  return Lt("div", tv);
}), c0 = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  const iv = reactExports.useRef(null), ov = tn(ev.id), av = ev.onKeyDown, sv = Ze((uv) => {
    av == null || av(uv), !uv.defaultPrevented && uv.key === "Escape" && tv.move(null);
  });
  ev = Da({
    state: tv,
    ...ev
  }, i0);
  const lv = tv.mounted ? ev.style : {
    ...ev.style,
    display: "none"
  };
  return ev = {
    id: ov,
    role: "listbox",
    hidden: !tv.mounted,
    ...ev,
    ref: Ut(ov ? tv.setContentElement : null, iv, ev.ref),
    style: lv,
    onKeyDown: sv
  }, ev;
}), m2 = Wt((rv) => {
  const tv = c0(rv);
  return Lt("div", tv);
});
function bf(rv, tv) {
  const ev = setTimeout(tv, rv);
  return () => clearTimeout(ev);
}
function p2(rv) {
  let tv = requestAnimationFrame(() => {
    tv = requestAnimationFrame(rv);
  });
  return () => cancelAnimationFrame(tv);
}
function yf() {
  for (var rv = arguments.length, tv = new Array(rv), ev = 0; ev < rv; ev++)
    tv[ev] = arguments[ev];
  return tv.join(", ").split(", ").reduce((iv, ov) => {
    const av = parseFloat(ov || "0s") * 1e3;
    return av > iv ? av : iv;
  }, 0);
}
const Yu = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  const iv = tn(ev.id), [ov, av] = reactExports.useState(null);
  Tt(() => {
    var lv;
    if (tv.animated) {
      if (!((lv = tv.contentElement) != null && lv.isConnected)) {
        av(null);
        return;
      }
      return p2(() => {
        av(tv.open ? "enter" : "leave");
      });
    }
  }, [tv.animated, tv.contentElement, tv.open]), Tt(() => {
    if (!tv.animated || !tv.contentElement || !ov || ov === "enter" && !tv.open || ov === "leave" && tv.open)
      return;
    if (typeof tv.animated == "number") {
      const Sv = tv.animated;
      return bf(Sv, () => reactDomExports.flushSync(tv.stopAnimation));
    }
    const {
      transitionDuration: lv,
      animationDuration: uv,
      transitionDelay: cv,
      animationDelay: dv
    } = getComputedStyle(tv.contentElement), hv = yf(cv, dv), pv = yf(lv, uv), yv = hv + pv;
    if (yv)
      return bf(yv, () => reactDomExports.flushSync(tv.stopAnimation));
  }, [tv.animated, tv.contentElement, ov, tv.open, tv.stopAnimation]);
  const sv = tv.mounted || ev.hidden === !1 ? ev.style : {
    ...ev.style,
    display: "none"
  };
  return ev = {
    id: iv,
    "data-enter": ov === "enter" ? "" : void 0,
    "data-leave": ov === "leave" ? "" : void 0,
    hidden: !tv.mounted,
    ...ev,
    ref: Ut(iv ? tv.setContentElement : null, ev.ref),
    style: sv
  }, ev;
}), d0 = it((rv) => (rv = {
  ...rv,
  style: {
    border: 0,
    clip: "rect(0 0 0 0)",
    height: "1px",
    margin: "-1px",
    overflow: "hidden",
    padding: 0,
    position: "absolute",
    whiteSpace: "nowrap",
    width: "1px",
    ...rv.style
  }
}, rv)), f0 = Wt((rv) => {
  const tv = d0(rv);
  return Lt("span", tv);
}), g2 = it((rv) => (rv = {
  "data-focus-trap": "",
  tabIndex: 0,
  "aria-hidden": !0,
  ...rv,
  style: {
    // Prevents unintended scroll jumps.
    position: "fixed",
    top: 0,
    left: 0,
    ...rv.style
  }
}, rv = d0(rv), rv)), ia = Wt((rv) => {
  const tv = g2(rv);
  return Lt("span", tv);
}), v2 = it((rv) => {
  let {
    enabled: tv = !1,
    ...ev
  } = rv;
  const iv = reactExports.useRef(null);
  return ev = _r(ev, (ov) => {
    const av = () => tv ? /* @__PURE__ */ jsxRuntimeExports.jsx(ia, {
      onFocus: (sv) => {
        const lv = iv.current;
        if (!lv)
          return;
        const uv = ka(lv, !0), cv = uv[0], dv = uv[uv.length - 1];
        if (!uv.length) {
          lv.focus();
          return;
        }
        sv.relatedTarget === cv ? dv == null || dv.focus() : cv == null || cv.focus();
      }
    }) : null;
    return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
      children: [av(), ov, av()]
    });
  }, [tv]), ev = {
    ...ev,
    ref: Ut(iv, ev.ref)
  }, ev;
}), Hl = /* @__PURE__ */ reactExports.createContext(0);
function b2(rv) {
  let {
    level: tv,
    children: ev
  } = rv;
  const iv = reactExports.useContext(Hl), ov = Math.max(Math.min(tv || iv + 1, 6), 1);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Hl.Provider, {
    value: ov,
    children: ev
  });
}
const Ef = /* @__PURE__ */ reactExports.createContext(null);
function y2(rv) {
  return sr(rv).body;
}
function E2(rv, tv) {
  return tv ? typeof tv == "function" ? tv(rv) : tv : sr(rv).createElement("div");
}
function x2(rv) {
  return rv === void 0 && (rv = "id"), (rv ? rv + "-" : "") + Math.random().toString(36).substr(2, 6);
}
function Sn(rv) {
  xs(() => {
    rv == null || rv.focus();
  });
}
const h0 = it((rv) => {
  let {
    preserveTabOrder: tv,
    portalElement: ev,
    portalRef: iv,
    portal: ov = !0,
    ...av
  } = rv;
  const sv = reactExports.useRef(null), lv = Ut(sv, av.ref), uv = reactExports.useContext(Ef), [cv, dv] = reactExports.useState(null), hv = reactExports.useRef(null), pv = reactExports.useRef(null), yv = reactExports.useRef(null), Sv = reactExports.useRef(null);
  return Tt(() => {
    const _v = sv.current;
    if (!_v || !ov) {
      dv(null);
      return;
    }
    const Ev = E2(_v, ev);
    if (!Ev) {
      dv(null);
      return;
    }
    const wv = Ev.isConnected;
    if (wv || (uv || y2(_v)).appendChild(Ev), Ev.id || (Ev.id = _v.id ? _v.id + "-portal" : x2()), dv(Ev), Bl(iv, Ev), !wv)
      return () => {
        Ev.remove(), Bl(iv, null);
      };
  }, [ov, ev, uv, iv]), reactExports.useEffect(() => {
    if (!cv || !tv)
      return;
    let _v = 0;
    const Ev = (wv) => {
      if (qn(wv)) {
        if (wv.type === "focusin")
          return pA(cv);
        cancelAnimationFrame(_v), _v = requestAnimationFrame(() => {
          mA(cv, !0);
        });
      }
    };
    return cv.addEventListener("focusin", Ev, !0), cv.addEventListener("focusout", Ev, !0), () => {
      cv.removeEventListener("focusin", Ev, !0), cv.removeEventListener("focusout", Ev, !0);
    };
  }, [cv, tv]), av = _r(av, (_v) => (_v = // While the portal node is not in the DOM, we need to pass the
  // current context to the portal context, otherwise it's going to
  // reset to the body element on nested portals.
  /* @__PURE__ */ jsxRuntimeExports.jsx(Ef.Provider, {
    value: cv || uv,
    children: _v
  }), ov ? cv ? (_v = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
    children: [tv && cv && /* @__PURE__ */ jsxRuntimeExports.jsx(ia, {
      ref: pv,
      onFocus: (Ev) => {
        qn(Ev, cv) ? Sn(uf()) : Sn(hv.current);
      }
    }), _v, tv && cv && /* @__PURE__ */ jsxRuntimeExports.jsx(ia, {
      ref: yv,
      onFocus: (Ev) => {
        qn(Ev, cv) ? Sn(cf()) : Sn(Sv.current);
      }
    })]
  }), cv && (_v = /* @__PURE__ */ reactDomExports.createPortal(_v, cv)), _v = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
    children: [tv && cv && /* @__PURE__ */ jsxRuntimeExports.jsx(ia, {
      ref: hv,
      onFocus: (Ev) => {
        qn(Ev, cv) ? Sn(pv.current) : Sn(cf());
      }
    }), tv && // We're using position: fixed here so that the browser doesn't
    // add margin to the element when setting gap on a parent element.
    /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
      "aria-owns": cv == null ? void 0 : cv.id,
      style: {
        position: "fixed"
      }
    }), _v, tv && cv && /* @__PURE__ */ jsxRuntimeExports.jsx(ia, {
      ref: Sv,
      onFocus: (Ev) => {
        qn(Ev, cv) ? Sn(yv.current) : Sn(uf());
      }
    })]
  }), _v) : /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
    ref: lv,
    id: av.id,
    style: {
      position: "fixed"
    }
  }) : _v), [cv, uv, ov, av.id, tv]), av = {
    ...av,
    ref: lv
  }, av;
}), w2 = Wt((rv) => {
  const tv = h0(rv);
  return Lt("div", tv);
}), m0 = /* @__PURE__ */ reactExports.createContext(void 0), p0 = /* @__PURE__ */ reactExports.createContext(void 0), T2 = /* @__PURE__ */ reactExports.createContext(void 0);
function g0(rv) {
  const tv = reactExports.useRef();
  return reactExports.useEffect(() => {
    if (!rv) {
      tv.current = null;
      return;
    }
    return er("mousedown", (ev) => {
      tv.current = ev.target;
    }, !0);
  }, [rv]), tv;
}
function S2(rv) {
  var tv;
  let {
    state: ev,
    backdrop: iv,
    backdropProps: ov,
    hideOnInteractOutside: av = !0,
    hideOnEscape: sv = !0,
    hidden: lv,
    children: uv
  } = rv;
  const cv = reactExports.useRef(null);
  ev = reactExports.useMemo(() => ({
    ...ev,
    // Override the setContentElement method to prevent the backdrop from
    // overwriting the dialog's content element.
    setContentElement: Vp
  }), [ev]), Tt(() => {
    const xv = cv.current, Cv = ev.contentElement;
    xv && Cv && (xv.style.zIndex = getComputedStyle(Cv).zIndex);
  }, [ev.contentElement]);
  const dv = ov == null ? void 0 : ov.onClick, hv = Vt(av), pv = g0(ev.mounted), yv = Ze((xv) => {
    dv == null || dv(xv), !xv.defaultPrevented && yr(xv) && pv.current === xv.currentTarget && hv(xv) && (xv.stopPropagation(), ev.hide());
  }), Sv = ov == null ? void 0 : ov.onKeyDown, _v = Vt(sv), Ev = Ze((xv) => {
    Sv == null || Sv(xv), !xv.defaultPrevented && xv.key === "Escape" && yr(xv) && _v(xv) && ev.hide();
  }), wv = Yu({
    state: ev,
    id: void 0,
    role: "presentation",
    tabIndex: -1,
    hidden: lv,
    ...ov,
    ref: Ut(ov == null ? void 0 : ov.ref, cv),
    onClick: yv,
    onKeyDown: Ev,
    style: {
      position: "fixed",
      top: 0,
      right: 0,
      bottom: 0,
      left: 0,
      ...ov == null ? void 0 : ov.style
    }
  });
  return /* @__PURE__ */ jsxRuntimeExports.jsx(typeof iv != "boolean" && iv || "div", {
    ...wv,
    "data-backdrop": (tv = ev.contentElement) == null ? void 0 : tv.id,
    children: uv
  });
}
const A2 = ["SCRIPT", "STYLE"];
function C2(rv, tv) {
  return A2.includes(rv.tagName) ? !1 : !tv.some((ev) => ev && Xt(rv, ev));
}
function v0(rv, tv) {
  for (let iv of rv) {
    const ov = sr(iv);
    for (; (ev = iv) != null && ev.parentElement && iv !== ov.body; ) {
      var ev;
      for (const av of iv.parentElement.children)
        C2(av, rv) && tv(av);
      iv = iv.parentElement;
    }
  }
}
function R2(rv) {
  const tv = rv.getAttribute("aria-hidden") || "";
  return rv.setAttribute("aria-hidden", "true"), () => {
    tv ? rv.setAttribute("aria-hidden", tv) : rv.removeAttribute("aria-hidden");
  };
}
function xf() {
  const rv = [];
  for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
    ev[iv] = arguments[iv];
  return v0(ev, (ov) => {
    rv.unshift(R2(ov));
  }), () => {
    rv.forEach((ov) => ov());
  };
}
function _2(rv) {
  if (!("style" in rv))
    return Vp;
  const tv = rv.style.pointerEvents;
  return rv.style.pointerEvents = "none", () => {
    rv.style.pointerEvents = tv ?? "";
  };
}
function I2() {
  const rv = [];
  for (var tv = arguments.length, ev = new Array(tv), iv = 0; iv < tv; iv++)
    ev[iv] = arguments[iv];
  return v0(ev, (ov) => {
    rv.unshift(_2(ov));
  }), () => {
    rv.forEach((ov) => ov());
  };
}
function P2(rv, tv) {
  const ev = sr(rv).createElement("button");
  return ev.type = "button", ev.tabIndex = -1, ev.textContent = "Dismiss popup", ev.style.border = "0px", ev.style.clip = "rect(0 0 0 0)", ev.style.height = "1px", ev.style.margin = "-1px", ev.style.overflow = "hidden", ev.style.padding = "0px", ev.style.position = "absolute", ev.style.whiteSpace = "nowrap", ev.style.width = "1px", ev.addEventListener("click", tv), rv.prepend(ev), () => {
    ev.removeEventListener("click", tv), ev.remove();
  };
}
function b0(rv, tv, ev) {
  const [iv, ov] = qp(), av = reactExports.useCallback(() => {
    if (!ev)
      return !1;
    const sv = rv.current;
    if (!sv)
      return !1;
    const {
      body: lv
    } = sr(sv), uv = lv.getAttribute(tv);
    return !uv || uv === sv.id;
  }, [iv, ev, tv]);
  return Tt(() => {
    const sv = rv.current;
    if (!sv || !ev)
      return;
    const {
      body: lv
    } = sr(sv);
    if (!av()) {
      const uv = new MutationObserver(() => reactDomExports.flushSync(ov));
      return uv.observe(lv, {
        attributeFilter: [tv]
      }), () => uv.disconnect();
    }
    return lv.setAttribute(tv, sv.id), () => {
      lv.removeAttribute(tv);
    };
  }, [iv, rv, ev, av, tv]), av;
}
function O2(rv, tv) {
  reactExports.useEffect(() => {
    if (!tv.open)
      return;
    const ev = rv.current;
    if (!ev)
      return;
    const iv = new MutationObserver((ov) => {
      let [av] = ov;
      if (!av || av.target !== ev)
        return;
      const sv = sr(ev);
      on(ev) === sv.body && ev.focus();
    });
    return iv.observe(ev, {
      childList: !0,
      subtree: !0
    }), () => iv.disconnect();
  }, [tv.open, rv]);
}
function L2(rv) {
  return rv.tagName === "HTML" ? !0 : Xt(sr(rv).body, rv);
}
function k2(rv, tv) {
  if (Xt(rv, tv))
    return !0;
  const ev = tv.getAttribute("aria-activedescendant");
  if (ev) {
    const iv = sr(rv).getElementById(ev);
    if (iv)
      return Xt(rv, iv);
  }
  return !1;
}
function D2(rv, tv) {
  return !rv || !tv ? !1 : tv.hasAttribute("data-backdrop") && tv.getAttribute("data-backdrop") === rv.id;
}
function N2(rv) {
  return (tv) => {
    const ev = tv.current;
    return ev ? !!(Xt(ev, rv) || D2(ev, rv)) : !1;
  };
}
function ro(rv) {
  let {
    type: tv,
    listener: ev,
    dialogRef: iv,
    nestedDialogs: ov,
    disclosureRef: av,
    enabled: sv,
    capture: lv
  } = rv;
  const uv = Ze(ev), cv = en(ov);
  reactExports.useEffect(() => sv ? er(tv, (dv) => {
    const hv = iv.current, pv = av == null ? void 0 : av.current, yv = dv.target;
    hv && yv && L2(yv) && (Xt(hv, yv) || pv && k2(pv, yv) || yv.hasAttribute("data-focus-trap") || cv.current.some(N2(yv)) || uv(dv));
  }, lv) : void 0, [sv, iv, av, uv, lv]);
}
function no(rv, tv) {
  return typeof rv == "function" ? rv(tv) : !!rv;
}
function F2(rv, tv, ev) {
  let {
    state: iv,
    modal: ov,
    hideOnInteractOutside: av,
    enabled: sv = iv.open
  } = ev;
  const lv = g0(sv), uv = {
    disclosureRef: iv.disclosureRef,
    enabled: sv,
    dialogRef: rv,
    nestedDialogs: tv,
    capture: !0
  };
  ro({
    ...uv,
    type: "mousedown",
    listener: (cv) => {
      const dv = rv.current;
      dv && ov && !no(av, cv) && (dv.focus(), cv.preventDefault(), cv.stopPropagation());
    }
  }), ro({
    ...uv,
    type: "click",
    listener: (cv) => {
      const dv = lv.current;
      if (!dv)
        return;
      if (!no(av, cv)) {
        if (!ov)
          return;
        cv.preventDefault(), cv.stopPropagation();
        return;
      }
      const hv = rv.current;
      hv && Xt(hv, dv) || iv.hide();
    }
  }), ro({
    ...uv,
    type: "focusin",
    listener: (cv) => {
      const dv = rv.current;
      if (dv) {
        if (!no(av, cv)) {
          if (!ov)
            return;
          dv.focus(), cv.preventDefault(), cv.stopPropagation();
          return;
        }
        cv.target !== sr(dv) && iv.hide();
      }
    }
  }), ro({
    ...uv,
    type: "contextmenu",
    listener: (cv) => {
      const dv = rv.current;
      if (dv) {
        if (!no(av, cv)) {
          if (!ov)
            return;
          dv.focus(), cv.preventDefault(), cv.stopPropagation();
          return;
        }
        iv.hide();
      }
    }
  });
}
const wf = /* @__PURE__ */ reactExports.createContext({});
function M2(rv, tv) {
  let {
    state: ev,
    modal: iv
  } = tv;
  const ov = reactExports.useContext(wf), [av, sv] = reactExports.useState([]), [lv, uv] = reactExports.useState([]), cv = reactExports.useCallback((yv) => {
    const Sv = ov.addDialog == null ? void 0 : ov.addDialog(yv);
    return uv((_v) => [..._v, yv]), () => {
      Sv == null || Sv(), uv((_v) => _v.filter((Ev) => Ev !== yv));
    };
  }, [ov.addDialog]), dv = reactExports.useCallback((yv) => {
    const Sv = ov.showModal == null ? void 0 : ov.showModal(yv);
    return sv((_v) => [..._v, yv]), () => {
      Sv == null || Sv(), sv((_v) => _v.filter((Ev) => Ev !== yv));
    };
  }, [ov.showModal]);
  Tt(() => ov.addDialog == null ? void 0 : ov.addDialog(rv), [ov.addDialog, rv]), Tt(() => {
    if (iv && ev.open)
      return ov.showModal == null ? void 0 : ov.showModal(rv);
  }, [iv, ev.open, ov.showModal, rv]), Tt(() => {
    ov.open === !1 && ev.open && ev.hide();
  }, [ov.open, ev.open, ev.hide]);
  const hv = reactExports.useMemo(() => ({
    open: ev.open,
    addDialog: cv,
    showModal: dv
  }), [ev.open, cv, dv]), pv = reactExports.useCallback((yv) => /* @__PURE__ */ jsxRuntimeExports.jsx(wf.Provider, {
    value: hv,
    children: yv
  }), [hv]);
  return {
    nestedDialogs: lv,
    openModals: av,
    wrapElement: pv
  };
}
function Tf(rv, tv) {
  if (!rv)
    return () => {
    };
  const ev = rv.style.cssText;
  return Object.assign(rv.style, tv), () => {
    rv.style.cssText = ev;
  };
}
function $2(rv, tv, ev) {
  if (!rv)
    return () => {
    };
  const iv = rv.style.getPropertyValue(tv);
  return rv.style.setProperty(tv, ev), () => {
    iv ? rv.style.setProperty(tv, iv) : rv.style.removeProperty(tv);
  };
}
function B2(rv) {
  const tv = rv.getBoundingClientRect().left;
  return Math.round(tv) + rv.scrollLeft ? "paddingLeft" : "paddingRight";
}
function U2(rv, tv) {
  const ev = b0(rv, "data-dialog-body-scroll", tv);
  Tt(() => {
    const iv = rv.current;
    if (!iv || !ev())
      return;
    const ov = sr(iv), av = zS(iv), {
      documentElement: sv,
      body: lv
    } = ov, uv = av.innerWidth - sv.clientWidth, cv = () => $2(sv, "--scrollbar-width", uv + "px"), dv = B2(sv), hv = () => Tf(lv, {
      overflow: "hidden",
      [dv]: uv + "px"
    }), pv = () => {
      var Sv, _v;
      const {
        scrollX: Ev,
        scrollY: wv,
        visualViewport: xv
      } = av, Cv = (Sv = xv == null ? void 0 : xv.offsetLeft) != null ? Sv : 0, Av = (_v = xv == null ? void 0 : xv.offsetTop) != null ? _v : 0, Ov = Tf(lv, {
        position: "fixed",
        overflow: "hidden",
        top: -(wv - Math.floor(Av)) + "px",
        left: -(Ev - Math.floor(Cv)) + "px",
        right: "0",
        [dv]: uv + "px"
      });
      return () => {
        Ov(), av.scrollTo(Ev, wv);
      };
    }, yv = Nu() && !YS();
    return Mu(cv(), yv ? pv() : hv());
  }, [rv, ev]);
}
const j2 = Fu();
function H2(rv, tv) {
  const ev = rv.id;
  if (ev)
    return tv.getAttribute("data-backdrop") === ev;
}
function y0(rv) {
  return (tv) => tv.current && Xt(tv.current, rv);
}
function G2(rv, tv) {
  const ev = on();
  return !ev || Xt(rv, ev) || H2(rv, ev) || tv != null && tv.some(y0(ev)) ? !1 : !!Oi(ev);
}
const E0 = it((rv) => {
  let {
    state: tv,
    focusable: ev = !0,
    modal: iv = !0,
    portal: ov = !!iv,
    backdrop: av = !!iv,
    backdropProps: sv,
    hideOnEscape: lv = !0,
    hideOnInteractOutside: uv = !0,
    preventBodyScroll: cv = !!iv,
    autoFocusOnShow: dv = !0,
    autoFocusOnHide: hv = !0,
    initialFocusRef: pv,
    finalFocusRef: yv,
    ...Sv
  } = rv;
  const _v = reactExports.useRef(null), Ev = reactExports.useRef(tv.open), {
    portalRef: wv,
    portalNode: xv,
    domReady: Cv
  } = $u(ov, Sv.portalRef), Av = Sv.preserveTabOrder && !iv && tv.mounted, Ov = tv.open && !tv.animating, Lv = iv || ov && Av && Fu(), jv = tn(Sv.id);
  Tt(() => {
    if (!Ov)
      return;
    const H1 = _v.current, k1 = on(H1, !0);
    k1 && k1.tagName !== "BODY" && (H1 && Xt(H1, k1) || (tv.disclosureRef.current = k1));
  }, [Ov]);
  const Dv = M2(_v, {
    state: tv,
    modal: iv
  }), {
    nestedDialogs: Vv,
    openModals: Gv,
    wrapElement: Yv
  } = Dv, Xv = en(Vv);
  U2(_v, cv && tv.mounted), O2(_v, tv), F2(_v, Vv, {
    state: tv,
    modal: iv,
    hideOnInteractOutside: uv,
    enabled: tv.open
  }), j2 && reactExports.useEffect(() => {
    if (!tv.mounted)
      return;
    const H1 = tv.disclosureRef.current;
    if (!H1 || !Fn(H1))
      return;
    const k1 = () => {
      let Q1 = !1;
      const Y1 = () => {
        Q1 = !0;
      }, r$ = {
        capture: !0,
        once: !0
      };
      H1.addEventListener("focusin", Y1, r$), ya(H1, "mouseup", () => {
        H1.removeEventListener("focusin", Y1, !0), !Q1 && Qp(H1);
      });
    };
    return H1.addEventListener("mousedown", k1), () => {
      H1.removeEventListener("mousedown", k1);
    };
  }, [tv.mounted, tv.disclosureRef]), reactExports.useEffect(() => {
    if (!tv.mounted || !Cv)
      return;
    const H1 = _v.current;
    if (H1 && Lv)
      return H1.querySelector("[data-dialog-dismiss]") ? void 0 : P2(H1, tv.hide);
  }, [tv.mounted, Cv, Lv, tv.hide]);
  const L1 = b0(_v, "data-dialog-disable-outside", Ov && !Gv.length && Lv);
  Tt(() => {
    if (!L1())
      return;
    const H1 = ov ? xv : _v.current;
    return iv ? Mu(
      xf(H1),
      // When the backdrop is not visible, we also need to disable pointer
      // events outside of the modal dialog.
      av ? null : I2(H1)
    ) : xf(H1);
  }, [L1, ov, xv, iv, av]);
  const Bv = reactExports.useRef(), Qv = !!dv, B1 = Vt(dv);
  reactExports.useEffect(() => {
    var H1;
    if (!Ov || !Qv || !Cv || (H1 = Xv.current) != null && H1.some((a$) => a$.current && !a$.current.hidden))
      return;
    const k1 = tv.contentElement;
    if (!(k1 != null && k1.isConnected))
      return;
    const Q1 = pv == null ? void 0 : pv.current, Y1 = Q1 || // We have to fallback to the first focusable element otherwise portaled
    // dialogs with preserveTabOrder set to true will not receive focus
    // properly because the elements aren't tabbable until the dialog
    // receives focus.
    cA(k1, !0, ov && Av) || k1, r$ = Bv.current;
    if (Bv.current = Q1, Q1 === r$) {
      const a$ = on(k1, !0);
      if (a$ && Xt(k1, a$))
        return;
    }
    B1(Y1) && Y1.focus();
  }, [Ov, Qv, Cv, tv.contentElement, pv, ov, Av, B1]);
  const K1 = !!hv, j1 = Vt(hv);
  reactExports.useEffect(() => {
    const H1 = _v.current, k1 = Ev.current;
    if (Ev.current = tv.open, !k1 || !K1 || !H1)
      return;
    const Q1 = () => {
      const Y1 = Xv.current;
      if (G2(H1, Y1))
        return;
      let r$ = (yv == null ? void 0 : yv.current) || tv.disclosureRef.current;
      if (r$) {
        if (r$.id) {
          const a$ = sr(r$), S$ = '[aria-activedescendant="' + r$.id + '"]', d$ = a$.querySelector(S$);
          d$ && (r$ = d$);
        }
        if (!Oi(r$)) {
          const a$ = jp(r$, "[data-dialog]");
          if (a$ && a$.id) {
            const S$ = sr(a$), d$ = '[aria-controls~="' + a$.id + '"]', x$ = S$.querySelector(d$);
            x$ && (r$ = x$);
          }
        }
        if (!j1(r$))
          return;
        r$.focus();
      }
    };
    return tv.open ? Q1 : Q1();
  }, [K1, tv.open, yv, tv.disclosureRef, j1]);
  const P1 = Vt(lv);
  reactExports.useEffect(() => !Cv || !tv.mounted ? void 0 : er("keydown", (H1) => {
    const k1 = _v.current;
    if (!k1)
      return;
    const Q1 = H1.target, Y1 = tv.disclosureRef.current;
    H1.key !== "Escape" || H1.defaultPrevented || !Q1 || (Xt(k1, Q1) ? !Xv.current.some(y0(Q1)) : Y1 && Xt(Y1, Q1)) && P1(H1) && tv.hide();
  }), [Cv, tv.mounted, tv.disclosureRef, P1, tv.hide]), Sv = _r(Sv, Yv, [Yv]), Sv = _r(Sv, (H1) => /* @__PURE__ */ jsxRuntimeExports.jsx(b2, {
    level: iv ? 1 : void 0,
    children: H1
  }), [iv]), Sv = v2({
    ...Sv,
    enabled: tv.open && iv && !Gv.length
  });
  const D1 = Sv.hidden;
  Sv = _r(Sv, (H1) => av ? /* @__PURE__ */ jsxRuntimeExports.jsx(S2, {
    state: tv,
    backdrop: av,
    backdropProps: sv,
    hideOnInteractOutside: uv,
    hideOnEscape: lv,
    hidden: D1,
    children: H1
  }) : H1, [tv, av, sv, uv, lv, D1]);
  const [I1, F1] = reactExports.useState(), [M1, U1] = reactExports.useState();
  return Sv = _r(Sv, (H1) => /* @__PURE__ */ jsxRuntimeExports.jsx(m0.Provider, {
    value: tv,
    children: /* @__PURE__ */ jsxRuntimeExports.jsx(p0.Provider, {
      value: F1,
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(T2.Provider, {
        value: U1,
        children: H1
      })
    })
  }), [tv]), Sv = {
    id: jv,
    "data-dialog": "",
    role: "dialog",
    tabIndex: ev ? -1 : void 0,
    "aria-labelledby": I1,
    "aria-describedby": M1,
    ...Sv,
    ref: Ut(_v, Sv.ref)
  }, Sv = Yu({
    state: tv,
    ...Sv
  }), Sv = Li({
    ...Sv,
    focusable: ev
  }), Sv = h0({
    portal: ov,
    ...Sv,
    portalRef: wv,
    preserveTabOrder: Av
  }), Sv;
}), z2 = Wt((rv) => {
  const tv = E0(rv);
  return Lt("div", tv);
}), x0 = /* @__PURE__ */ reactExports.createContext(void 0), w0 = it((rv) => {
  let {
    state: tv,
    modal: ev = !1,
    portal: iv = !!ev,
    preserveTabOrder: ov = !0,
    autoFocusOnShow: av = !0,
    wrapperProps: sv,
    ...lv
  } = rv;
  const uv = tv.popoverRef;
  Tt(() => {
    const yv = uv.current, Sv = tv.contentElement;
    yv && Sv && (yv.style.zIndex = getComputedStyle(Sv).zIndex);
  }, [uv, tv.contentElement]);
  const [cv, dv] = reactExports.useState(!1), {
    portalRef: hv,
    domReady: pv
  } = $u(iv, lv.portalRef);
  return Tt(() => {
    var yv;
    if (!pv || !tv.mounted || !((yv = tv.contentElement) != null && yv.isConnected))
      return;
    const Sv = requestAnimationFrame(() => {
      dv(!0);
    });
    return () => {
      cancelAnimationFrame(Sv);
    };
  }, [pv, tv.mounted, tv.contentElement]), lv = _r(lv, (yv) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
    role: "presentation",
    ...sv,
    style: {
      position: tv.fixed ? "fixed" : "absolute",
      top: 0,
      left: 0,
      ...sv == null ? void 0 : sv.style
    },
    ref: uv,
    children: yv
  }), [tv.fixed, uv, sv]), lv = _r(lv, (yv) => /* @__PURE__ */ jsxRuntimeExports.jsx(x0.Provider, {
    value: tv,
    children: yv
  }), [tv]), lv = {
    ...lv,
    style: {
      position: "relative",
      ...lv.style
    }
  }, lv = E0({
    state: tv,
    modal: ev,
    preserveTabOrder: ov,
    portal: iv,
    autoFocusOnShow: cv && av,
    ...lv,
    portalRef: hv
  }), lv;
});
function V2(rv) {
  if (!rv)
    return !1;
  if ("id" in rv) {
    for (var tv = arguments.length, ev = new Array(tv > 1 ? tv - 1 : 0), iv = 1; iv < tv; iv++)
      ev[iv - 1] = arguments[iv];
    const ov = ev.filter(Boolean).map((av) => '[aria-controls="' + av + '"]').join(", ");
    return ov ? Lu(rv, ov) : !1;
  }
  return !1;
}
const W2 = it((rv) => {
  let {
    state: tv,
    tabIndex: ev,
    hideOnInteractOutside: iv = !0,
    ...ov
  } = rv;
  return ov = c0({
    state: tv,
    ...ov
  }), ov = w0({
    state: tv,
    autoFocusOnShow: !1,
    autoFocusOnHide: !1,
    finalFocusRef: tv.baseRef,
    ...ov,
    // Combobox popovers can't be modal because the focus may be (and is by
    // default) outside of it on the combobox input element.
    modal: !1,
    // Make sure we don't hide the popover when the user interacts with the
    // combobox cancel or the combobox disclosure buttons. They will have the
    // aria-controls attribute pointing to either the combobox input or the
    // comboobx popover elements.
    hideOnInteractOutside: (av) => {
      var sv, lv;
      const uv = (sv = tv.contentElement) == null ? void 0 : sv.id, cv = (lv = tv.baseRef.current) == null ? void 0 : lv.id;
      return V2(av.target, uv, cv) ? !1 : typeof iv == "function" ? iv(av) : iv;
    }
  }), ov;
}), K2 = Wt((rv) => {
  const tv = W2(rv);
  return Lt("div", tv);
}), Y2 = it((rv) => {
  let {
    orientation: tv = "horizontal",
    ...ev
  } = rv;
  return ev = {
    role: "separator",
    "aria-orientation": tv,
    ...ev
  }, ev;
}), X2 = it((rv) => {
  var tv;
  let {
    state: ev,
    ...iv
  } = rv;
  ev = xr(ev || Na, ["orientation"]);
  const ov = ((tv = ev) == null ? void 0 : tv.orientation) === "horizontal" ? "vertical" : "horizontal";
  return iv = Y2({
    ...iv,
    orientation: ov
  }), iv;
});
function T0(rv, tv) {
  return !!(tv.compareDocumentPosition(rv) & Node.DOCUMENT_POSITION_PRECEDING);
}
function q2(rv, tv) {
  const ev = tv.ref.current;
  if (!ev)
    return -1;
  let iv = rv.length;
  if (!iv)
    return -1;
  for (; iv--; ) {
    const ov = rv[iv];
    if (ov != null && ov.ref.current && T0(ov.ref.current, ev))
      return iv + 1;
  }
  return 0;
}
function Z2(rv) {
  const tv = rv.map((iv, ov) => [ov, iv]);
  let ev = !1;
  return tv.sort((iv, ov) => {
    let [av, sv] = iv, [lv, uv] = ov;
    const cv = sv.ref.current, dv = uv.ref.current;
    return cv === dv || !cv || !dv ? 0 : T0(cv, dv) ? (av > lv && (ev = !0), -1) : (av < lv && (ev = !0), 1);
  }), ev ? tv.map((iv) => {
    let [ov, av] = iv;
    return av;
  }) : rv;
}
function S0(rv, tv) {
  const ev = Z2(rv);
  rv !== ev && tv(ev);
}
function J2(rv) {
  var tv;
  const ev = rv[0], iv = rv[rv.length - 1];
  let ov = ev == null || (tv = ev.ref.current) == null ? void 0 : tv.parentElement;
  for (; ov; ) {
    if (iv && ov.contains(iv.ref.current))
      return ov;
    ov = ov.parentElement;
  }
  return sr(ov).body;
}
function Q2(rv, tv) {
  reactExports.useEffect(() => {
    const ev = setTimeout(() => S0(rv, tv));
    return () => clearTimeout(ev);
  });
}
function eC(rv, tv) {
  if (typeof IntersectionObserver != "function") {
    Q2(rv, tv);
    return;
  }
  const ev = reactExports.useRef([]);
  reactExports.useEffect(() => {
    const iv = () => {
      const sv = !!ev.current.length;
      ev.current = rv, sv && S0(rv, tv);
    }, ov = J2(rv), av = new IntersectionObserver(iv, {
      root: ov
    });
    return rv.forEach((sv) => {
      sv.ref.current && av.observe(sv.ref.current);
    }), () => av.disconnect();
  }, [rv, tv]);
}
function A0(rv) {
  rv === void 0 && (rv = {});
  const [tv, ev] = Ti([], rv.items, rv.setItems);
  eC(tv, ev);
  const iv = reactExports.useCallback((ov) => (ev((av) => {
    const sv = q2(av, ov);
    return kA(av, ov, sv);
  }), () => {
    ev((av) => {
      const sv = av.filter((lv) => {
        let {
          ref: uv
        } = lv;
        return uv !== ov.ref;
      });
      return av.length === sv.length ? av : sv;
    });
  }), []);
  return reactExports.useMemo(() => ({
    items: tv,
    setItems: ev,
    registerItem: iv
  }), [tv, ev, iv]);
}
function C0(rv) {
  var tv;
  let {
    orientation: ev = "both",
    rtl: iv = !1,
    virtualFocus: ov = !1,
    focusLoop: av = !1,
    focusWrap: sv = !1,
    focusShift: lv = !1,
    ...uv
  } = rv === void 0 ? {} : rv;
  const cv = A0(uv), dv = reactExports.useRef(null), [hv, pv] = Ti(0, uv.moves, uv.setMoves), [yv, Sv] = Ti(uv.defaultActiveId, uv.activeId, uv.setActiveId), _v = reactExports.useMemo(() => KA(cv.items, yv), [cv.items, yv]), Ev = Kp(_v), wv = (tv = uv.includesBaseElement) != null ? tv : Ev === null, xv = en(_v), Cv = reactExports.useCallback((Xv) => {
    Xv !== void 0 && (pv((L1) => L1 + 1), Sv(Xv));
  }, []), Av = reactExports.useCallback(() => {
    const Xv = Zr(cv.items);
    return Xv == null ? void 0 : Xv.id;
  }, [cv.items]), Ov = reactExports.useCallback(() => {
    const Xv = Zr(na(cv.items));
    return Xv == null ? void 0 : Xv.id;
  }, [cv.items]), Lv = reactExports.useCallback((Xv, L1, Bv, Qv) => {
    const B1 = iv && L1 !== "vertical" ? na(Xv) : Xv;
    if (xv.current == null) {
      var K1;
      return (K1 = Zr(B1)) == null ? void 0 : K1.id;
    }
    const j1 = B1.find((Y1) => Y1.id === xv.current);
    if (!j1) {
      var P1;
      return (P1 = Zr(B1)) == null ? void 0 : P1.id;
    }
    const D1 = !!j1.rowId, I1 = B1.indexOf(j1), F1 = B1.slice(I1 + 1), M1 = pf(F1, j1.rowId);
    if (Qv !== void 0) {
      const Y1 = VA(M1, xv.current), r$ = Y1.slice(Qv)[0] || // If we can't find an item, just return the last one.
      Y1[Y1.length - 1];
      return r$ == null ? void 0 : r$.id;
    }
    const U1 = YA(
      // If it's a grid and orientation is not set, it's a next/previous
      // call, which is inherently horizontal. up/down will call next with
      // orientation set to vertical by default (see below on up/down
      // methods).
      D1 ? L1 || "horizontal" : L1
    ), H1 = av && av !== U1, k1 = D1 && sv && sv !== U1;
    if (Bv = Bv || !D1 && H1 && wv, H1) {
      const Y1 = k1 && !Bv ? B1 : pf(B1, j1.rowId), r$ = s0(Y1, xv.current, Bv), a$ = Zr(r$, xv.current);
      return a$ == null ? void 0 : a$.id;
    }
    if (k1) {
      const Y1 = Zr(
        // We can use nextItems, which contains all the next items, including
        // items from other rows, to wrap between rows. However, if there is
        // a null item (the composite container), we'll only use the next
        // items in the row. So moving next from the last item will focus on
        // the composite container. On grid composites, horizontal navigation
        // never focuses on the composite container, only vertical.
        Bv ? M1 : F1,
        xv.current
      );
      return Bv ? (Y1 == null ? void 0 : Y1.id) || null : Y1 == null ? void 0 : Y1.id;
    }
    const Q1 = Zr(M1, xv.current);
    return !Q1 && Bv ? null : Q1 == null ? void 0 : Q1.id;
  }, [av, sv, wv]), jv = reactExports.useCallback((Xv) => Lv(cv.items, ev, !1, Xv), [Lv, cv.items, ev]), Dv = reactExports.useCallback((Xv) => {
    var L1;
    const Bv = !((L1 = Zr(cv.items)) != null && L1.rowId) && wv;
    return Lv(na(cv.items), ev, Bv, Xv);
  }, [cv.items, Lv, ev, wv]), Vv = reactExports.useCallback((Xv) => {
    const L1 = lv && !Xv, Bv = gf(Ul(mf(jo(cv.items), xv.current, L1)));
    return Lv(Bv, "vertical", av && av !== "horizontal" && wv, Xv);
  }, [cv.items, Lv, lv, av]), Gv = reactExports.useCallback((Xv) => {
    const L1 = lv && !Xv, Bv = gf(na(Ul(mf(jo(cv.items), xv.current, L1))));
    return Lv(Bv, "vertical", wv, Xv);
  }, [cv.items, Lv, lv]), Yv = reactExports.useMemo(() => ({
    ...cv,
    baseRef: dv,
    orientation: ev,
    rtl: iv,
    virtualFocus: ov,
    focusLoop: av,
    focusWrap: sv,
    focusShift: lv,
    moves: hv,
    setMoves: pv,
    includesBaseElement: wv,
    activeId: _v,
    setActiveId: Sv,
    move: Cv,
    next: jv,
    previous: Dv,
    up: Gv,
    down: Vv,
    first: Av,
    last: Ov
  }), [cv, dv, ev, iv, ov, av, sv, lv, hv, pv, wv, _v, Sv, Cv, jv, Dv, Gv, Vv, Av, Ov]);
  return n0(Yv);
}
function tC(rv) {
  var tv;
  let {
    animated: ev = !1,
    ...iv
  } = rv === void 0 ? {} : rv;
  const ov = reactExports.useRef(null), [av, sv] = Ti((tv = iv.defaultOpen) != null ? tv : !1, iv.open, iv.setOpen), [lv, uv] = reactExports.useState(null), [cv, dv] = reactExports.useState(!!ev && av), hv = nA(av), pv = av || cv;
  ev && !cv && hv !== av && dv(!0);
  const yv = reactExports.useCallback(() => sv(!0), [sv]), Sv = reactExports.useCallback(() => sv(!1), [sv]), _v = reactExports.useCallback(() => sv((wv) => !wv), [sv]), Ev = reactExports.useCallback(() => dv(!1), []);
  return reactExports.useMemo(() => ({
    disclosureRef: ov,
    open: av,
    mounted: pv,
    animated: ev,
    animating: cv,
    contentElement: lv,
    setContentElement: uv,
    setOpen: sv,
    show: yv,
    hide: Sv,
    toggle: _v,
    stopAnimation: Ev
  }), [av, pv, ev, cv, lv, uv, sv, yv, Sv, _v, Ev]);
}
function R0(rv) {
  return rv.some((tv) => !!tv.rowId);
}
function rC(rv) {
  return rv.key.length === 1 && !rv.ctrlKey && !rv.metaKey;
}
function nC(rv, tv) {
  if (!yr(rv))
    return !1;
  const ev = rv.target;
  if (!ev)
    return !0;
  if (La(ev)) {
    if (rC(rv))
      return !1;
    const iv = R0(tv.items), ov = tv.activeId === null, av = iv && !ov, sv = rv.key === "Home" || rv.key === "End";
    if (!av && sv)
      return !1;
  }
  return !rv.isPropagationStopped();
}
function Sf(rv, tv, ev, iv) {
  return Ze((ov) => {
    if (ev == null || ev(ov), ov.defaultPrevented || !nC(ov, rv))
      return;
    const av = tv == null ? void 0 : tv.ref.current;
    if (!av)
      return;
    const {
      view: sv,
      ...lv
    } = ov, uv = iv == null ? void 0 : iv.current;
    av !== uv && av.focus(), qS(av, ov.type, lv) || ov.preventDefault(), ov.currentTarget.contains(av) && ov.stopPropagation();
  });
}
function iC(rv) {
  return Zr(Ul(na(jo(rv))));
}
function aC(rv) {
  const [tv, ev] = reactExports.useState(!1), iv = reactExports.useCallback(() => ev(!0), []);
  return reactExports.useEffect(() => {
    const ov = rv == null ? void 0 : rv.ref.current;
    tv && ov && (ev(!1), gA(ov));
  }, [rv, tv]), iv;
}
const Ma = it((rv) => {
  let {
    state: tv,
    composite: ev = !0,
    focusOnMove: iv = ev,
    ...ov
  } = rv;
  const av = reactExports.useRef(null), sv = ev && tv.virtualFocus, lv = reactExports.useMemo(() => o0(tv.items, tv.activeId), [tv.items, tv.activeId]), uv = en(lv), cv = reactExports.useRef(null), dv = tv.activeId === null, hv = en(dv), pv = aC(lv);
  Tt(() => {
    var Vv;
    !ev || !iv || !tv.moves || !((Vv = uv.current) != null && Vv.ref.current) || pv();
  }, [ev, iv, tv.moves]), Tt(() => {
    if (!ev || !tv.moves || !hv.current)
      return;
    const Vv = av.current;
    if (!Vv)
      return;
    const Gv = cv.current;
    cv.current = null, Gv && Yi(Gv, {
      relatedTarget: Vv
    }), Jp(Vv) ? XS(Vv, {
      relatedTarget: Gv
    }) : Vv.focus();
  }, [ev, tv.moves]), Tt(() => {
    var Vv;
    if (!sv || !ev)
      return;
    const Gv = cv.current;
    if (cv.current = null, !Gv)
      return;
    const Yv = ((Vv = uv.current) == null ? void 0 : Vv.ref.current) || on(Gv);
    Yi(Gv, {
      relatedTarget: Yv
    });
  }, [sv, ev, tv.activeId]);
  const yv = Sf(tv, lv, ov.onKeyDownCapture, cv), Sv = Sf(tv, lv, ov.onKeyUpCapture, cv), _v = ov.onFocusCapture, Ev = Ze((Vv) => {
    if (_v == null || _v(Vv), Vv.defaultPrevented || !sv)
      return;
    const Gv = Vv.relatedTarget, Yv = ZA(Vv.currentTarget);
    yr(Vv) && Yv && (Vv.stopPropagation(), cv.current = Gv);
  }), wv = ov.onFocus, xv = Ze((Vv) => {
    wv == null || wv(Vv), !Vv.defaultPrevented && ev && (sv ? yr(Vv) && !ca(tv.items, Vv.relatedTarget) && xs(pv) : yr(Vv) && tv.setActiveId(null));
  }), Cv = ov.onBlurCapture, Av = Ze((Vv) => {
    if (Cv == null || Cv(Vv), Vv.defaultPrevented || !sv)
      return;
    const Gv = (lv == null ? void 0 : lv.ref.current) || null, Yv = Vv.relatedTarget, Xv = ca(tv.items, Yv), L1 = cv.current;
    cv.current = null, yr(Vv) && Xv ? (Yv === Gv ? L1 && L1 !== Yv && Yi(L1, Vv) : Gv && Yi(Gv, Vv), Vv.stopPropagation()) : !ca(tv.items, Vv.target) && Gv && Yi(Gv, Vv);
  }), Ov = ov.onKeyDown, Lv = Ze((Vv) => {
    if (Ov == null || Ov(Vv), Vv.defaultPrevented || !yr(Vv) || uv.current)
      return;
    const Gv = tv.orientation !== "horizontal", Yv = tv.orientation !== "vertical", Xv = R0(tv.items), L1 = {
      ArrowUp: (Xv || Gv) && (() => {
        if (Xv) {
          const Bv = tv.items && iC(tv.items);
          return Bv == null ? void 0 : Bv.id;
        }
        return tv.last();
      }),
      ArrowRight: (Xv || Yv) && tv.first,
      ArrowDown: (Xv || Gv) && tv.first,
      ArrowLeft: (Xv || Yv) && tv.last,
      Home: tv.first,
      End: tv.last,
      PageUp: tv.first,
      PageDown: tv.last
    }[Vv.key];
    if (L1) {
      const Bv = L1();
      Bv !== void 0 && (Vv.preventDefault(), tv.move(Bv));
    }
  });
  ov = Da({
    state: tv,
    ...ov
  }, Na);
  const jv = (lv == null ? void 0 : lv.id) || void 0;
  ov = {
    "aria-activedescendant": sv ? jv : void 0,
    ...ov,
    ref: Ut(av, ev ? tv.baseRef : void 0, ov.ref),
    onKeyDownCapture: yv,
    onKeyUpCapture: Sv,
    onFocusCapture: Ev,
    onFocus: xv,
    onBlurCapture: Av,
    onKeyDown: Lv
  };
  const Dv = ev && (sv || tv.activeId === null);
  return ov = Li({
    focusable: Dv,
    ...ov
  }), ov;
}), oC = Wt((rv) => {
  const tv = Ma(rv);
  return Lt("div", tv);
}), _0 = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  return ev = {
    ...ev,
    ref: Ut(tv.anchorRef, ev.ref)
  }, ev;
});
function Af(rv, tv, ev) {
  if (!ev)
    return !1;
  const iv = rv.find((ov) => !ov.disabled && ov.value);
  return (iv == null ? void 0 : iv.value) === tv;
}
function Cf(rv, tv) {
  return !tv || rv == null ? !1 : (rv = Wp(rv), tv.length > rv.length && tv.toLowerCase().indexOf(rv.toLowerCase()) === 0);
}
function sC(rv) {
  return rv.type === "input";
}
const lC = it((rv) => {
  var tv;
  let {
    state: ev,
    focusable: iv = !0,
    autoSelect: ov = !1,
    showOnChange: av = !0,
    setValueOnChange: sv = !0,
    showOnMouseDown: lv = !0,
    setValueOnClick: uv = !0,
    showOnKeyDown: cv = !0,
    autoComplete: dv = ev.list.length ? "list" : "none",
    ...hv
  } = rv;
  const pv = reactExports.useRef(null), [yv, Sv] = qp(), _v = reactExports.useRef(!1);
  ov = !!ov && ev.virtualFocus;
  const Ev = dv === "inline" || dv === "both", wv = reactExports.useMemo(() => {
    if (!Ev)
      return ev.value;
    if (Af(ev.items, ev.activeValue, ov)) {
      if (Cf(ev.value, ev.activeValue)) {
        var P1;
        const D1 = ((P1 = ev.activeValue) == null ? void 0 : P1.slice(ev.value.length)) || "";
        return ev.value + D1;
      }
      return ev.value;
    }
    return ev.activeValue || ev.value;
  }, [Ev, ev.value, ev.items, ov, ev.activeValue]);
  reactExports.useEffect(() => {
    if (!Ev || !ev.activeValue || !Af(ev.items, ev.activeValue, ov) || !Cf(ev.value, ev.activeValue))
      return;
    const P1 = pv.current;
    P1 && P1.setSelectionRange(ev.value.length, ev.activeValue.length);
  }, [yv, Ev, ev.activeValue, ev.items, ov, ev.value]), Tt(() => {
    ev.open || (_v.current = !1);
  }, [ev.open]), of(() => {
    ov && ev.items.length && _v.current && ev.move(ev.first());
  }, [yv, ev.value, ov, ev.items, ev.move, ev.first]), of(() => {
    ov || ev.setActiveId(null);
  }, [yv, ov, ev.setActiveId]), reactExports.useEffect(() => {
    if (!Ev)
      return;
    const P1 = pv.current;
    if (!P1)
      return;
    const D1 = [P1, ev.contentElement].filter(Boolean), I1 = (F1) => {
      D1.every((M1) => qn(F1, M1)) && ev.setValue(wv);
    };
    return D1.forEach((F1) => F1 == null ? void 0 : F1.addEventListener("focusout", I1)), () => {
      D1.forEach((F1) => F1 == null ? void 0 : F1.removeEventListener("focusout", I1));
    };
  }, [Ev, ev.contentElement, ev.setValue, wv]);
  const xv = hv.onChange, Cv = Vt(av), Av = Vt(sv), Ov = Ze((P1) => {
    if (xv == null || xv(P1), P1.defaultPrevented)
      return;
    const D1 = P1.nativeEvent;
    sC(D1) && (_v.current = D1.inputType === "insertText"), Cv(P1) && ev.show(), Av(P1) && ev.setValue(P1.target.value), Ev && ov && Sv(), (!ov || !_v.current) && ev.setActiveId(null);
  }), Lv = hv.onCompositionEnd, jv = Ze((P1) => {
    Lv == null || Lv(P1), !P1.defaultPrevented && (_v.current = !0, ov && Sv());
  }), Dv = hv.onMouseDown, Vv = Vt(lv), Gv = Ze((P1) => {
    Dv == null || Dv(P1), !P1.defaultPrevented && (P1.button || P1.ctrlKey || Vv(P1) && ya(P1.currentTarget, "mouseup", ev.show));
  }), Yv = hv.onClick, Xv = Vt(uv), L1 = Ze((P1) => {
    Yv == null || Yv(P1), !P1.defaultPrevented && (ev.setActiveId(null), Xv(P1) && ev.setValue(wv));
  }), Bv = hv.onKeyDown, Qv = Vt(cv), B1 = Ze((P1) => {
    Bv == null || Bv(P1), _v.current = !1, !P1.defaultPrevented && (P1.ctrlKey || P1.altKey || P1.shiftKey || P1.metaKey || ev.open || ev.activeId === null && (P1.key === "ArrowUp" || P1.key === "ArrowDown") && Qv(P1) && (P1.preventDefault(), ev.show()));
  }), K1 = hv.onBlur, j1 = Ze((P1) => {
    K1 == null || K1(P1), !P1.defaultPrevented && (_v.current = !1);
  });
  return hv = {
    id: tn(hv.id),
    role: "combobox",
    "aria-autocomplete": dv,
    "aria-haspopup": ku(ev.contentElement, "listbox"),
    "aria-expanded": ev.open,
    "aria-controls": (tv = ev.contentElement) == null ? void 0 : tv.id,
    value: wv,
    ...hv,
    ref: Ut(pv, hv.ref),
    onChange: Ov,
    onCompositionEnd: jv,
    onMouseDown: Gv,
    onClick: L1,
    onKeyDown: B1,
    onBlur: j1
  }, hv = Ma({
    state: ev,
    focusable: iv,
    ...hv
  }), hv = _0({
    state: ev,
    ...hv
  }), {
    autoComplete: "off",
    ...hv
  };
}), I0 = Wt((rv) => {
  const tv = lC(rv);
  return Lt("input", tv);
}), P0 = /* @__PURE__ */ reactExports.createContext(!1), uC = /* @__PURE__ */ jsxRuntimeExports.jsx("svg", {
  display: "block",
  fill: "none",
  stroke: "currentColor",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: "1.5pt",
  viewBox: "0 0 16 16",
  height: "1em",
  width: "1em",
  children: /* @__PURE__ */ jsxRuntimeExports.jsx("polyline", {
    points: "4,8 7,12 12,4"
  })
});
function cC(rv) {
  return rv.checked ? rv.children || uC : typeof rv.children == "function" ? rv.children : null;
}
const dC = it((rv) => {
  var tv;
  let {
    state: ev,
    checked: iv,
    ...ov
  } = rv;
  const av = reactExports.useContext(P0);
  iv = (tv = iv) != null ? tv : av;
  const sv = cC({
    checked: iv,
    children: ov.children
  });
  return ov = {
    "aria-hidden": !0,
    ...ov,
    children: sv,
    style: {
      width: "1em",
      height: "1em",
      pointerEvents: "none",
      ...ov.style
    }
  }, ov;
}), fC = Wt((rv) => {
  const tv = dC(rv);
  return Lt("span", tv);
});
function hC(rv, tv) {
  if (rv !== void 0)
    return tv ? Array.isArray(rv) ? rv.includes(tv) : rv === tv : Array.isArray(rv) ? !1 : typeof rv == "boolean" ? rv : !1;
}
function Rf(rv, tv) {
  tv ? rv.indeterminate = !0 : rv.indeterminate && (rv.indeterminate = !1);
}
function mC(rv, tv) {
  return rv === "input" && (!tv || tv === "checkbox");
}
const pC = it((rv) => {
  let {
    state: tv,
    value: ev,
    checked: iv,
    defaultChecked: ov,
    ...av
  } = rv;
  const [sv, lv] = Ti(ov ?? !1, iv ?? hC(tv == null ? void 0 : tv.value, ev)), uv = reactExports.useRef(null), cv = Pi(uv, av.as || "input"), dv = mC(cv, av.type), hv = sv ? sv === "mixed" : void 0, pv = sv === "mixed" ? !1 : sv;
  reactExports.useEffect(() => {
    const wv = uv.current;
    wv && (Rf(wv, hv), wv.checked = pv);
  }, [hv, pv]);
  const yv = av.onChange, Sv = Ze((wv) => {
    if (av.disabled) {
      wv.stopPropagation(), wv.preventDefault();
      return;
    }
    if (Rf(wv.currentTarget, hv), dv || (wv.currentTarget.checked = !wv.currentTarget.checked), yv == null || yv(wv), wv.defaultPrevented)
      return;
    const xv = wv.currentTarget.checked;
    lv(xv), tv == null || tv.setValue((Cv) => ev ? Array.isArray(Cv) ? xv ? [...Cv, ev] : Cv.filter((Av) => Av !== ev) : ev : xv);
  }), _v = av.onClick, Ev = Ze((wv) => {
    _v == null || _v(wv), !wv.defaultPrevented && (dv || Sv(wv));
  });
  return av = _r(av, (wv) => /* @__PURE__ */ jsxRuntimeExports.jsx(P0.Provider, {
    value: pv,
    children: wv
  }), [pv]), av = {
    role: dv ? void 0 : "checkbox",
    type: dv ? "checkbox" : void 0,
    "aria-checked": sv,
    ...av,
    ref: Ut(uv, av.ref),
    onChange: Sv,
    onClick: Ev
  }, av = Gu({
    clickOnEnter: !dv,
    ...av
  }), {
    value: dv ? ev : void 0,
    checked: pv,
    ...av
  };
}), O0 = Wt((rv) => {
  const tv = pC(rv);
  return Lt("input", tv);
}), gC = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  const iv = ev.onClick, ov = Ze((av) => {
    tv.anchorRef.current = av.currentTarget, iv == null || iv(av);
  });
  return ev = _r(ev, (av) => /* @__PURE__ */ jsxRuntimeExports.jsx(x0.Provider, {
    value: tv,
    children: av
  }), [tv]), ev = {
    ...ev,
    onClick: ov
  }, ev = _0({
    state: tv,
    ...ev
  }), ev = OA({
    state: tv,
    ...ev
  }), ev;
});
let gn = "";
function ol() {
  gn = "";
}
function vC(rv) {
  const tv = rv.target;
  return tv && La(tv) ? !1 : rv.key === " " && gn.length ? !0 : rv.key.length === 1 && !rv.ctrlKey && !rv.altKey && !rv.metaKey && // Matches any letter or number of any language.
  /^[\p{Letter}\p{Number}]$/u.test(rv.key);
}
function bC(rv, tv) {
  if (yr(rv))
    return !0;
  const ev = rv.target;
  return ev ? tv.some((iv) => iv.ref.current === ev) : !1;
}
function yC(rv) {
  return rv.filter((tv) => !tv.disabled);
}
function wo(rv, tv) {
  var ev;
  const iv = (ev = rv.ref.current) == null ? void 0 : ev.textContent;
  return iv ? Wp(iv).toLowerCase().startsWith(tv.toLowerCase()) : !1;
}
function EC(rv, tv, ev) {
  if (!ev)
    return rv;
  const iv = rv.find((ov) => ov.id === ev);
  return !iv || !wo(iv, tv) || gn !== tv && wo(iv, gn) ? rv : (gn = tv, s0(rv.filter((ov) => wo(ov, gn)), ev).filter((ov) => ov.id !== ev));
}
const L0 = it((rv) => {
  let {
    state: tv,
    typeahead: ev = !0,
    ...iv
  } = rv;
  const ov = reactExports.useContext(Na);
  tv = tv || ov;
  const av = iv.onKeyDownCapture, sv = reactExports.useRef(0), lv = Ze((uv) => {
    var cv, dv;
    if (av == null || av(uv), uv.defaultPrevented || !ev || !((cv = tv) != null && cv.items))
      return;
    if (!vC(uv))
      return ol();
    let hv = yC(tv.items);
    if (!bC(uv, hv))
      return ol();
    uv.preventDefault(), window.clearTimeout(sv.current), sv.current = window.setTimeout(() => {
      gn = "";
    }, 500);
    const pv = uv.key.toLowerCase();
    gn += pv, hv = EC(hv, pv, (dv = tv) == null ? void 0 : dv.activeId);
    const yv = hv.find((Sv) => wo(Sv, gn));
    yv ? tv.move(yv.id) : ol();
  });
  return iv = {
    ...iv,
    onKeyDownCapture: lv
  }, iv;
});
var k0 = { exports: {} }, xC = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED", wC = xC, TC = wC;
function D0() {
}
function N0() {
}
N0.resetWarningCache = D0;
var SC = function() {
  function rv(iv, ov, av, sv, lv, uv) {
    if (uv !== TC) {
      var cv = new Error(
        "Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types"
      );
      throw cv.name = "Invariant Violation", cv;
    }
  }
  rv.isRequired = rv;
  function tv() {
    return rv;
  }
  var ev = {
    array: rv,
    bigint: rv,
    bool: rv,
    func: rv,
    number: rv,
    object: rv,
    string: rv,
    symbol: rv,
    any: rv,
    arrayOf: tv,
    element: rv,
    elementType: rv,
    instanceOf: tv,
    node: rv,
    objectOf: tv,
    oneOf: tv,
    oneOfType: tv,
    shape: tv,
    exact: tv,
    checkPropTypes: N0,
    resetWarningCache: D0
  };
  return ev.PropTypes = ev, ev;
};
k0.exports = SC();
var AC = k0.exports;
const Mt = /* @__PURE__ */ Ci(AC);
function CC(rv) {
  return rv && typeof rv == "object" && "default" in rv ? rv.default : rv;
}
var F0 = React, RC = CC(F0);
function _f(rv, tv, ev) {
  return tv in rv ? Object.defineProperty(rv, tv, {
    value: ev,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : rv[tv] = ev, rv;
}
function _C(rv, tv) {
  rv.prototype = Object.create(tv.prototype), rv.prototype.constructor = rv, rv.__proto__ = tv;
}
var IC = !!(typeof window < "u" && window.document && window.document.createElement);
function PC(rv, tv, ev) {
  if (typeof rv != "function")
    throw new Error("Expected reducePropsToState to be a function.");
  if (typeof tv != "function")
    throw new Error("Expected handleStateChangeOnClient to be a function.");
  if (typeof ev < "u" && typeof ev != "function")
    throw new Error("Expected mapStateOnServer to either be undefined or a function.");
  function iv(ov) {
    return ov.displayName || ov.name || "Component";
  }
  return function(ov) {
    if (typeof ov != "function")
      throw new Error("Expected WrappedComponent to be a React component.");
    var av = [], sv;
    function lv() {
      sv = rv(av.map(function(cv) {
        return cv.props;
      })), uv.canUseDOM ? tv(sv) : ev && (sv = ev(sv));
    }
    var uv = /* @__PURE__ */ function(cv) {
      _C(dv, cv);
      function dv() {
        return cv.apply(this, arguments) || this;
      }
      dv.peek = function() {
        return sv;
      }, dv.rewind = function() {
        if (dv.canUseDOM)
          throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");
        var pv = sv;
        return sv = void 0, av = [], pv;
      };
      var hv = dv.prototype;
      return hv.UNSAFE_componentWillMount = function() {
        av.push(this), lv();
      }, hv.componentDidUpdate = function() {
        lv();
      }, hv.componentWillUnmount = function() {
        var pv = av.indexOf(this);
        av.splice(pv, 1), lv();
      }, hv.render = function() {
        return RC.createElement(ov, this.props);
      }, dv;
    }(F0.PureComponent);
    return _f(uv, "displayName", "SideEffect(" + iv(ov) + ")"), _f(uv, "canUseDOM", IC), uv;
  };
}
var OC = PC;
const LC = /* @__PURE__ */ Ci(OC);
var kC = typeof Element < "u", DC = typeof Map == "function", NC = typeof Set == "function", FC = typeof ArrayBuffer == "function" && !!ArrayBuffer.isView;
function To(rv, tv) {
  if (rv === tv)
    return !0;
  if (rv && tv && typeof rv == "object" && typeof tv == "object") {
    if (rv.constructor !== tv.constructor)
      return !1;
    var ev, iv, ov;
    if (Array.isArray(rv)) {
      if (ev = rv.length, ev != tv.length)
        return !1;
      for (iv = ev; iv-- !== 0; )
        if (!To(rv[iv], tv[iv]))
          return !1;
      return !0;
    }
    var av;
    if (DC && rv instanceof Map && tv instanceof Map) {
      if (rv.size !== tv.size)
        return !1;
      for (av = rv.entries(); !(iv = av.next()).done; )
        if (!tv.has(iv.value[0]))
          return !1;
      for (av = rv.entries(); !(iv = av.next()).done; )
        if (!To(iv.value[1], tv.get(iv.value[0])))
          return !1;
      return !0;
    }
    if (NC && rv instanceof Set && tv instanceof Set) {
      if (rv.size !== tv.size)
        return !1;
      for (av = rv.entries(); !(iv = av.next()).done; )
        if (!tv.has(iv.value[0]))
          return !1;
      return !0;
    }
    if (FC && ArrayBuffer.isView(rv) && ArrayBuffer.isView(tv)) {
      if (ev = rv.length, ev != tv.length)
        return !1;
      for (iv = ev; iv-- !== 0; )
        if (rv[iv] !== tv[iv])
          return !1;
      return !0;
    }
    if (rv.constructor === RegExp)
      return rv.source === tv.source && rv.flags === tv.flags;
    if (rv.valueOf !== Object.prototype.valueOf && typeof rv.valueOf == "function" && typeof tv.valueOf == "function")
      return rv.valueOf() === tv.valueOf();
    if (rv.toString !== Object.prototype.toString && typeof rv.toString == "function" && typeof tv.toString == "function")
      return rv.toString() === tv.toString();
    if (ov = Object.keys(rv), ev = ov.length, ev !== Object.keys(tv).length)
      return !1;
    for (iv = ev; iv-- !== 0; )
      if (!Object.prototype.hasOwnProperty.call(tv, ov[iv]))
        return !1;
    if (kC && rv instanceof Element)
      return !1;
    for (iv = ev; iv-- !== 0; )
      if (!((ov[iv] === "_owner" || ov[iv] === "__v" || ov[iv] === "__o") && rv.$$typeof) && !To(rv[ov[iv]], tv[ov[iv]]))
        return !1;
    return !0;
  }
  return rv !== rv && tv !== tv;
}
var MC = function(rv, tv) {
  try {
    return To(rv, tv);
  } catch (ev) {
    if ((ev.message || "").match(/stack|recursion/i))
      return console.warn("react-fast-compare cannot handle circular refs"), !1;
    throw ev;
  }
};
const $C = /* @__PURE__ */ Ci(MC);
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
var If = Object.getOwnPropertySymbols, BC = Object.prototype.hasOwnProperty, UC = Object.prototype.propertyIsEnumerable;
function jC(rv) {
  if (rv == null)
    throw new TypeError("Object.assign cannot be called with null or undefined");
  return Object(rv);
}
function HC() {
  try {
    if (!Object.assign)
      return !1;
    var rv = new String("abc");
    if (rv[5] = "de", Object.getOwnPropertyNames(rv)[0] === "5")
      return !1;
    for (var tv = {}, ev = 0; ev < 10; ev++)
      tv["_" + String.fromCharCode(ev)] = ev;
    var iv = Object.getOwnPropertyNames(tv).map(function(av) {
      return tv[av];
    });
    if (iv.join("") !== "0123456789")
      return !1;
    var ov = {};
    return "abcdefghijklmnopqrst".split("").forEach(function(av) {
      ov[av] = av;
    }), Object.keys(Object.assign({}, ov)).join("") === "abcdefghijklmnopqrst";
  } catch {
    return !1;
  }
}
var GC = HC() ? Object.assign : function(rv, tv) {
  for (var ev, iv = jC(rv), ov, av = 1; av < arguments.length; av++) {
    ev = Object(arguments[av]);
    for (var sv in ev)
      BC.call(ev, sv) && (iv[sv] = ev[sv]);
    if (If) {
      ov = If(ev);
      for (var lv = 0; lv < ov.length; lv++)
        UC.call(ev, ov[lv]) && (iv[ov[lv]] = ev[ov[lv]]);
    }
  }
  return iv;
};
const zC = /* @__PURE__ */ Ci(GC);
var ei = {
  BODY: "bodyAttributes",
  HTML: "htmlAttributes",
  TITLE: "titleAttributes"
}, nt = {
  BASE: "base",
  BODY: "body",
  HEAD: "head",
  HTML: "html",
  LINK: "link",
  META: "meta",
  NOSCRIPT: "noscript",
  SCRIPT: "script",
  STYLE: "style",
  TITLE: "title"
};
Object.keys(nt).map(function(rv) {
  return nt[rv];
});
var Bt = {
  CHARSET: "charset",
  CSS_TEXT: "cssText",
  HREF: "href",
  HTTPEQUIV: "http-equiv",
  INNER_HTML: "innerHTML",
  ITEM_PROP: "itemprop",
  NAME: "name",
  PROPERTY: "property",
  REL: "rel",
  SRC: "src",
  TARGET: "target"
}, Ho = {
  accesskey: "accessKey",
  charset: "charSet",
  class: "className",
  contenteditable: "contentEditable",
  contextmenu: "contextMenu",
  "http-equiv": "httpEquiv",
  itemprop: "itemProp",
  tabindex: "tabIndex"
}, Ea = {
  DEFAULT_TITLE: "defaultTitle",
  DEFER: "defer",
  ENCODE_SPECIAL_CHARACTERS: "encodeSpecialCharacters",
  ON_CHANGE_CLIENT_STATE: "onChangeClientState",
  TITLE_TEMPLATE: "titleTemplate"
}, VC = Object.keys(Ho).reduce(function(rv, tv) {
  return rv[Ho[tv]] = tv, rv;
}, {}), WC = [nt.NOSCRIPT, nt.SCRIPT, nt.STYLE], Qr = "data-react-helmet", KC = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(rv) {
  return typeof rv;
} : function(rv) {
  return rv && typeof Symbol == "function" && rv.constructor === Symbol && rv !== Symbol.prototype ? "symbol" : typeof rv;
}, YC = function(rv, tv) {
  if (!(rv instanceof tv))
    throw new TypeError("Cannot call a class as a function");
}, XC = /* @__PURE__ */ function() {
  function rv(tv, ev) {
    for (var iv = 0; iv < ev.length; iv++) {
      var ov = ev[iv];
      ov.enumerable = ov.enumerable || !1, ov.configurable = !0, "value" in ov && (ov.writable = !0), Object.defineProperty(tv, ov.key, ov);
    }
  }
  return function(tv, ev, iv) {
    return ev && rv(tv.prototype, ev), iv && rv(tv, iv), tv;
  };
}(), Cr = Object.assign || function(rv) {
  for (var tv = 1; tv < arguments.length; tv++) {
    var ev = arguments[tv];
    for (var iv in ev)
      Object.prototype.hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
  }
  return rv;
}, qC = function(rv, tv) {
  if (typeof tv != "function" && tv !== null)
    throw new TypeError("Super expression must either be null or a function, not " + typeof tv);
  rv.prototype = Object.create(tv && tv.prototype, {
    constructor: {
      value: rv,
      enumerable: !1,
      writable: !0,
      configurable: !0
    }
  }), tv && (Object.setPrototypeOf ? Object.setPrototypeOf(rv, tv) : rv.__proto__ = tv);
}, Pf = function(rv, tv) {
  var ev = {};
  for (var iv in rv)
    tv.indexOf(iv) >= 0 || Object.prototype.hasOwnProperty.call(rv, iv) && (ev[iv] = rv[iv]);
  return ev;
}, ZC = function(rv, tv) {
  if (!rv)
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  return tv && (typeof tv == "object" || typeof tv == "function") ? tv : rv;
}, Gl = function(rv) {
  var tv = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
  return tv === !1 ? String(rv) : String(rv).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#x27;");
}, JC = function(rv) {
  var tv = vi(rv, nt.TITLE), ev = vi(rv, Ea.TITLE_TEMPLATE);
  if (ev && tv)
    return ev.replace(/%s/g, function() {
      return Array.isArray(tv) ? tv.join("") : tv;
    });
  var iv = vi(rv, Ea.DEFAULT_TITLE);
  return tv || iv || void 0;
}, QC = function(rv) {
  return vi(rv, Ea.ON_CHANGE_CLIENT_STATE) || function() {
  };
}, sl = function(rv, tv) {
  return tv.filter(function(ev) {
    return typeof ev[rv] < "u";
  }).map(function(ev) {
    return ev[rv];
  }).reduce(function(ev, iv) {
    return Cr({}, ev, iv);
  }, {});
}, eR = function(rv, tv) {
  return tv.filter(function(ev) {
    return typeof ev[nt.BASE] < "u";
  }).map(function(ev) {
    return ev[nt.BASE];
  }).reverse().reduce(function(ev, iv) {
    if (!ev.length)
      for (var ov = Object.keys(iv), av = 0; av < ov.length; av++) {
        var sv = ov[av], lv = sv.toLowerCase();
        if (rv.indexOf(lv) !== -1 && iv[lv])
          return ev.concat(iv);
      }
    return ev;
  }, []);
}, Xi = function(rv, tv, ev) {
  var iv = {};
  return ev.filter(function(ov) {
    return Array.isArray(ov[rv]) ? !0 : (typeof ov[rv] < "u" && iR("Helmet: " + rv + ' should be of type "Array". Instead found type "' + KC(ov[rv]) + '"'), !1);
  }).map(function(ov) {
    return ov[rv];
  }).reverse().reduce(function(ov, av) {
    var sv = {};
    av.filter(function(hv) {
      for (var pv = void 0, yv = Object.keys(hv), Sv = 0; Sv < yv.length; Sv++) {
        var _v = yv[Sv], Ev = _v.toLowerCase();
        tv.indexOf(Ev) !== -1 && !(pv === Bt.REL && hv[pv].toLowerCase() === "canonical") && !(Ev === Bt.REL && hv[Ev].toLowerCase() === "stylesheet") && (pv = Ev), tv.indexOf(_v) !== -1 && (_v === Bt.INNER_HTML || _v === Bt.CSS_TEXT || _v === Bt.ITEM_PROP) && (pv = _v);
      }
      if (!pv || !hv[pv])
        return !1;
      var wv = hv[pv].toLowerCase();
      return iv[pv] || (iv[pv] = {}), sv[pv] || (sv[pv] = {}), iv[pv][wv] ? !1 : (sv[pv][wv] = !0, !0);
    }).reverse().forEach(function(hv) {
      return ov.push(hv);
    });
    for (var lv = Object.keys(sv), uv = 0; uv < lv.length; uv++) {
      var cv = lv[uv], dv = zC({}, iv[cv], sv[cv]);
      iv[cv] = dv;
    }
    return ov;
  }, []).reverse();
}, vi = function(rv, tv) {
  for (var ev = rv.length - 1; ev >= 0; ev--) {
    var iv = rv[ev];
    if (iv.hasOwnProperty(tv))
      return iv[tv];
  }
  return null;
}, tR = function(rv) {
  return {
    baseTag: eR([Bt.HREF, Bt.TARGET], rv),
    bodyAttributes: sl(ei.BODY, rv),
    defer: vi(rv, Ea.DEFER),
    encode: vi(rv, Ea.ENCODE_SPECIAL_CHARACTERS),
    htmlAttributes: sl(ei.HTML, rv),
    linkTags: Xi(nt.LINK, [Bt.REL, Bt.HREF], rv),
    metaTags: Xi(nt.META, [Bt.NAME, Bt.CHARSET, Bt.HTTPEQUIV, Bt.PROPERTY, Bt.ITEM_PROP], rv),
    noscriptTags: Xi(nt.NOSCRIPT, [Bt.INNER_HTML], rv),
    onChangeClientState: QC(rv),
    scriptTags: Xi(nt.SCRIPT, [Bt.SRC, Bt.INNER_HTML], rv),
    styleTags: Xi(nt.STYLE, [Bt.CSS_TEXT], rv),
    title: JC(rv),
    titleAttributes: sl(ei.TITLE, rv)
  };
}, zl = function() {
  var rv = Date.now();
  return function(tv) {
    var ev = Date.now();
    ev - rv > 16 ? (rv = ev, tv(ev)) : setTimeout(function() {
      zl(tv);
    }, 0);
  };
}(), Of = function(rv) {
  return clearTimeout(rv);
}, rR = typeof window < "u" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || zl : global.requestAnimationFrame || zl, nR = typeof window < "u" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || Of : global.cancelAnimationFrame || Of, iR = function(rv) {
  return console && typeof console.warn == "function" && console.warn(rv);
}, qi = null, aR = function(rv) {
  qi && nR(qi), rv.defer ? qi = rR(function() {
    Lf(rv, function() {
      qi = null;
    });
  }) : (Lf(rv), qi = null);
}, Lf = function(rv, tv) {
  var ev = rv.baseTag, iv = rv.bodyAttributes, ov = rv.htmlAttributes, av = rv.linkTags, sv = rv.metaTags, lv = rv.noscriptTags, uv = rv.onChangeClientState, cv = rv.scriptTags, dv = rv.styleTags, hv = rv.title, pv = rv.titleAttributes;
  Vl(nt.BODY, iv), Vl(nt.HTML, ov), oR(hv, pv);
  var yv = {
    baseTag: ci(nt.BASE, ev),
    linkTags: ci(nt.LINK, av),
    metaTags: ci(nt.META, sv),
    noscriptTags: ci(nt.NOSCRIPT, lv),
    scriptTags: ci(nt.SCRIPT, cv),
    styleTags: ci(nt.STYLE, dv)
  }, Sv = {}, _v = {};
  Object.keys(yv).forEach(function(Ev) {
    var wv = yv[Ev], xv = wv.newTags, Cv = wv.oldTags;
    xv.length && (Sv[Ev] = xv), Cv.length && (_v[Ev] = yv[Ev].oldTags);
  }), tv && tv(), uv(rv, Sv, _v);
}, M0 = function(rv) {
  return Array.isArray(rv) ? rv.join("") : rv;
}, oR = function(rv, tv) {
  typeof rv < "u" && document.title !== rv && (document.title = M0(rv)), Vl(nt.TITLE, tv);
}, Vl = function(rv, tv) {
  var ev = document.getElementsByTagName(rv)[0];
  if (ev) {
    for (var iv = ev.getAttribute(Qr), ov = iv ? iv.split(",") : [], av = [].concat(ov), sv = Object.keys(tv), lv = 0; lv < sv.length; lv++) {
      var uv = sv[lv], cv = tv[uv] || "";
      ev.getAttribute(uv) !== cv && ev.setAttribute(uv, cv), ov.indexOf(uv) === -1 && ov.push(uv);
      var dv = av.indexOf(uv);
      dv !== -1 && av.splice(dv, 1);
    }
    for (var hv = av.length - 1; hv >= 0; hv--)
      ev.removeAttribute(av[hv]);
    ov.length === av.length ? ev.removeAttribute(Qr) : ev.getAttribute(Qr) !== sv.join(",") && ev.setAttribute(Qr, sv.join(","));
  }
}, ci = function(rv, tv) {
  var ev = document.head || document.querySelector(nt.HEAD), iv = ev.querySelectorAll(rv + "[" + Qr + "]"), ov = Array.prototype.slice.call(iv), av = [], sv = void 0;
  return tv && tv.length && tv.forEach(function(lv) {
    var uv = document.createElement(rv);
    for (var cv in lv)
      if (lv.hasOwnProperty(cv))
        if (cv === Bt.INNER_HTML)
          uv.innerHTML = lv.innerHTML;
        else if (cv === Bt.CSS_TEXT)
          uv.styleSheet ? uv.styleSheet.cssText = lv.cssText : uv.appendChild(document.createTextNode(lv.cssText));
        else {
          var dv = typeof lv[cv] > "u" ? "" : lv[cv];
          uv.setAttribute(cv, dv);
        }
    uv.setAttribute(Qr, "true"), ov.some(function(hv, pv) {
      return sv = pv, uv.isEqualNode(hv);
    }) ? ov.splice(sv, 1) : av.push(uv);
  }), ov.forEach(function(lv) {
    return lv.parentNode.removeChild(lv);
  }), av.forEach(function(lv) {
    return ev.appendChild(lv);
  }), {
    oldTags: ov,
    newTags: av
  };
}, $0 = function(rv) {
  return Object.keys(rv).reduce(function(tv, ev) {
    var iv = typeof rv[ev] < "u" ? ev + '="' + rv[ev] + '"' : "" + ev;
    return tv ? tv + " " + iv : iv;
  }, "");
}, sR = function(rv, tv, ev, iv) {
  var ov = $0(ev), av = M0(tv);
  return ov ? "<" + rv + " " + Qr + '="true" ' + ov + ">" + Gl(av, iv) + "</" + rv + ">" : "<" + rv + " " + Qr + '="true">' + Gl(av, iv) + "</" + rv + ">";
}, lR = function(rv, tv, ev) {
  return tv.reduce(function(iv, ov) {
    var av = Object.keys(ov).filter(function(uv) {
      return !(uv === Bt.INNER_HTML || uv === Bt.CSS_TEXT);
    }).reduce(function(uv, cv) {
      var dv = typeof ov[cv] > "u" ? cv : cv + '="' + Gl(ov[cv], ev) + '"';
      return uv ? uv + " " + dv : dv;
    }, ""), sv = ov.innerHTML || ov.cssText || "", lv = WC.indexOf(rv) === -1;
    return iv + "<" + rv + " " + Qr + '="true" ' + av + (lv ? "/>" : ">" + sv + "</" + rv + ">");
  }, "");
}, B0 = function(rv) {
  var tv = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
  return Object.keys(rv).reduce(function(ev, iv) {
    return ev[Ho[iv] || iv] = rv[iv], ev;
  }, tv);
}, uR = function(rv) {
  var tv = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
  return Object.keys(rv).reduce(function(ev, iv) {
    return ev[VC[iv] || iv] = rv[iv], ev;
  }, tv);
}, cR = function(rv, tv, ev) {
  var iv, ov = (iv = {
    key: tv
  }, iv[Qr] = !0, iv), av = B0(ev, ov);
  return [React.createElement(nt.TITLE, av, tv)];
}, dR = function(rv, tv) {
  return tv.map(function(ev, iv) {
    var ov, av = (ov = {
      key: iv
    }, ov[Qr] = !0, ov);
    return Object.keys(ev).forEach(function(sv) {
      var lv = Ho[sv] || sv;
      if (lv === Bt.INNER_HTML || lv === Bt.CSS_TEXT) {
        var uv = ev.innerHTML || ev.cssText;
        av.dangerouslySetInnerHTML = { __html: uv };
      } else
        av[lv] = ev[sv];
    }), React.createElement(rv, av);
  });
}, dn = function(rv, tv, ev) {
  switch (rv) {
    case nt.TITLE:
      return {
        toComponent: function() {
          return cR(rv, tv.title, tv.titleAttributes);
        },
        toString: function() {
          return sR(rv, tv.title, tv.titleAttributes, ev);
        }
      };
    case ei.BODY:
    case ei.HTML:
      return {
        toComponent: function() {
          return B0(tv);
        },
        toString: function() {
          return $0(tv);
        }
      };
    default:
      return {
        toComponent: function() {
          return dR(rv, tv);
        },
        toString: function() {
          return lR(rv, tv, ev);
        }
      };
  }
}, U0 = function(rv) {
  var tv = rv.baseTag, ev = rv.bodyAttributes, iv = rv.encode, ov = rv.htmlAttributes, av = rv.linkTags, sv = rv.metaTags, lv = rv.noscriptTags, uv = rv.scriptTags, cv = rv.styleTags, dv = rv.title, hv = dv === void 0 ? "" : dv, pv = rv.titleAttributes;
  return {
    base: dn(nt.BASE, tv, iv),
    bodyAttributes: dn(ei.BODY, ev, iv),
    htmlAttributes: dn(ei.HTML, ov, iv),
    link: dn(nt.LINK, av, iv),
    meta: dn(nt.META, sv, iv),
    noscript: dn(nt.NOSCRIPT, lv, iv),
    script: dn(nt.SCRIPT, uv, iv),
    style: dn(nt.STYLE, cv, iv),
    title: dn(nt.TITLE, { title: hv, titleAttributes: pv }, iv)
  };
}, fR = function(rv) {
  var tv, ev;
  return ev = tv = function(iv) {
    qC(ov, iv);
    function ov() {
      return YC(this, ov), ZC(this, iv.apply(this, arguments));
    }
    return ov.prototype.shouldComponentUpdate = function(av) {
      return !$C(this.props, av);
    }, ov.prototype.mapNestedChildrenToProps = function(av, sv) {
      if (!sv)
        return null;
      switch (av.type) {
        case nt.SCRIPT:
        case nt.NOSCRIPT:
          return {
            innerHTML: sv
          };
        case nt.STYLE:
          return {
            cssText: sv
          };
      }
      throw new Error("<" + av.type + " /> elements are self-closing and can not contain children. Refer to our API for more information.");
    }, ov.prototype.flattenArrayTypeChildren = function(av) {
      var sv, lv = av.child, uv = av.arrayTypeChildren, cv = av.newChildProps, dv = av.nestedChildren;
      return Cr({}, uv, (sv = {}, sv[lv.type] = [].concat(uv[lv.type] || [], [Cr({}, cv, this.mapNestedChildrenToProps(lv, dv))]), sv));
    }, ov.prototype.mapObjectTypeChildren = function(av) {
      var sv, lv, uv = av.child, cv = av.newProps, dv = av.newChildProps, hv = av.nestedChildren;
      switch (uv.type) {
        case nt.TITLE:
          return Cr({}, cv, (sv = {}, sv[uv.type] = hv, sv.titleAttributes = Cr({}, dv), sv));
        case nt.BODY:
          return Cr({}, cv, {
            bodyAttributes: Cr({}, dv)
          });
        case nt.HTML:
          return Cr({}, cv, {
            htmlAttributes: Cr({}, dv)
          });
      }
      return Cr({}, cv, (lv = {}, lv[uv.type] = Cr({}, dv), lv));
    }, ov.prototype.mapArrayTypeChildrenToProps = function(av, sv) {
      var lv = Cr({}, sv);
      return Object.keys(av).forEach(function(uv) {
        var cv;
        lv = Cr({}, lv, (cv = {}, cv[uv] = av[uv], cv));
      }), lv;
    }, ov.prototype.warnOnInvalidChildren = function(av, sv) {
      return !0;
    }, ov.prototype.mapChildrenToProps = function(av, sv) {
      var lv = this, uv = {};
      return React.Children.forEach(av, function(cv) {
        if (!(!cv || !cv.props)) {
          var dv = cv.props, hv = dv.children, pv = Pf(dv, ["children"]), yv = uR(pv);
          switch (lv.warnOnInvalidChildren(cv, hv), cv.type) {
            case nt.LINK:
            case nt.META:
            case nt.NOSCRIPT:
            case nt.SCRIPT:
            case nt.STYLE:
              uv = lv.flattenArrayTypeChildren({
                child: cv,
                arrayTypeChildren: uv,
                newChildProps: yv,
                nestedChildren: hv
              });
              break;
            default:
              sv = lv.mapObjectTypeChildren({
                child: cv,
                newProps: sv,
                newChildProps: yv,
                nestedChildren: hv
              });
              break;
          }
        }
      }), sv = this.mapArrayTypeChildrenToProps(uv, sv), sv;
    }, ov.prototype.render = function() {
      var av = this.props, sv = av.children, lv = Pf(av, ["children"]), uv = Cr({}, lv);
      return sv && (uv = this.mapChildrenToProps(sv, uv)), React.createElement(rv, uv);
    }, XC(ov, null, [{
      key: "canUseDOM",
      // Component.peek comes from react-side-effect:
      // For testing, you may use a static peek() method available on the returned component.
      // It lets you get the current state without resetting the mounted instance stack.
      // Don’t use it for anything other than testing.
      /**
       * @param {Object} base: {"target": "_blank", "href": "http://mysite.com/"}
       * @param {Object} bodyAttributes: {"className": "root"}
       * @param {String} defaultTitle: "Default Title"
       * @param {Boolean} defer: true
       * @param {Boolean} encodeSpecialCharacters: true
       * @param {Object} htmlAttributes: {"lang": "en", "amp": undefined}
       * @param {Array} link: [{"rel": "canonical", "href": "http://mysite.com/example"}]
       * @param {Array} meta: [{"name": "description", "content": "Test description"}]
       * @param {Array} noscript: [{"innerHTML": "<img src='http://mysite.com/js/test.js'"}]
       * @param {Function} onChangeClientState: "(newState) => console.log(newState)"
       * @param {Array} script: [{"type": "text/javascript", "src": "http://mysite.com/js/test.js"}]
       * @param {Array} style: [{"type": "text/css", "cssText": "div { display: block; color: blue; }"}]
       * @param {String} title: "Title"
       * @param {Object} titleAttributes: {"itemprop": "name"}
       * @param {String} titleTemplate: "MySite.com - %s"
       */
      set: function(av) {
        rv.canUseDOM = av;
      }
    }]), ov;
  }(React.Component), tv.propTypes = {
    base: Mt.object,
    bodyAttributes: Mt.object,
    children: Mt.oneOfType([Mt.arrayOf(Mt.node), Mt.node]),
    defaultTitle: Mt.string,
    defer: Mt.bool,
    encodeSpecialCharacters: Mt.bool,
    htmlAttributes: Mt.object,
    link: Mt.arrayOf(Mt.object),
    meta: Mt.arrayOf(Mt.object),
    noscript: Mt.arrayOf(Mt.object),
    onChangeClientState: Mt.func,
    script: Mt.arrayOf(Mt.object),
    style: Mt.arrayOf(Mt.object),
    title: Mt.string,
    titleAttributes: Mt.object,
    titleTemplate: Mt.string
  }, tv.defaultProps = {
    defer: !0,
    encodeSpecialCharacters: !0
  }, tv.peek = rv.peek, tv.rewind = function() {
    var iv = rv.rewind();
    return iv || (iv = U0({
      baseTag: [],
      bodyAttributes: {},
      encodeSpecialCharacters: !0,
      htmlAttributes: {},
      linkTags: [],
      metaTags: [],
      noscriptTags: [],
      scriptTags: [],
      styleTags: [],
      title: "",
      titleAttributes: {}
    })), iv;
  }, ev;
}, hR = function() {
  return null;
}, mR = LC(tR, aR, U0)(hR), Wl = fR(mR);
Wl.renderStatic = Wl.rewind;
(function(rv, tv) {
  (function(ev, iv) {
    iv();
  })(su, function() {
    function ev(ov) {
      var av = !0, sv = !1, lv = null, uv = {
        text: !0,
        search: !0,
        url: !0,
        tel: !0,
        email: !0,
        password: !0,
        number: !0,
        date: !0,
        month: !0,
        week: !0,
        time: !0,
        datetime: !0,
        "datetime-local": !0
      };
      function cv(Ov) {
        return !!(Ov && Ov !== document && Ov.nodeName !== "HTML" && Ov.nodeName !== "BODY" && "classList" in Ov && "contains" in Ov.classList);
      }
      function dv(Ov) {
        var Lv = Ov.type, jv = Ov.tagName;
        return !!(jv === "INPUT" && uv[Lv] && !Ov.readOnly || jv === "TEXTAREA" && !Ov.readOnly || Ov.isContentEditable);
      }
      function hv(Ov) {
        Ov.classList.contains("focus-visible") || (Ov.classList.add("focus-visible"), Ov.setAttribute("data-focus-visible-added", ""));
      }
      function pv(Ov) {
        Ov.hasAttribute("data-focus-visible-added") && (Ov.classList.remove("focus-visible"), Ov.removeAttribute("data-focus-visible-added"));
      }
      function yv(Ov) {
        Ov.metaKey || Ov.altKey || Ov.ctrlKey || (cv(ov.activeElement) && hv(ov.activeElement), av = !0);
      }
      function Sv(Ov) {
        av = !1;
      }
      function _v(Ov) {
        cv(Ov.target) && (av || dv(Ov.target)) && hv(Ov.target);
      }
      function Ev(Ov) {
        cv(Ov.target) && (Ov.target.classList.contains("focus-visible") || Ov.target.hasAttribute("data-focus-visible-added")) && (sv = !0, window.clearTimeout(lv), lv = window.setTimeout(function() {
          sv = !1;
        }, 100), pv(Ov.target));
      }
      function wv(Ov) {
        document.visibilityState === "hidden" && (sv && (av = !0), xv());
      }
      function xv() {
        document.addEventListener("mousemove", Av), document.addEventListener("mousedown", Av), document.addEventListener("mouseup", Av), document.addEventListener("pointermove", Av), document.addEventListener("pointerdown", Av), document.addEventListener("pointerup", Av), document.addEventListener("touchmove", Av), document.addEventListener("touchstart", Av), document.addEventListener("touchend", Av);
      }
      function Cv() {
        document.removeEventListener("mousemove", Av), document.removeEventListener("mousedown", Av), document.removeEventListener("mouseup", Av), document.removeEventListener("pointermove", Av), document.removeEventListener("pointerdown", Av), document.removeEventListener("pointerup", Av), document.removeEventListener("touchmove", Av), document.removeEventListener("touchstart", Av), document.removeEventListener("touchend", Av);
      }
      function Av(Ov) {
        Ov.target.nodeName && Ov.target.nodeName.toLowerCase() === "html" || (av = !1, Cv());
      }
      document.addEventListener("keydown", yv, !0), document.addEventListener("mousedown", Sv, !0), document.addEventListener("pointerdown", Sv, !0), document.addEventListener("touchstart", Sv, !0), document.addEventListener("visibilitychange", wv, !0), xv(), ov.addEventListener("focus", _v, !0), ov.addEventListener("blur", Ev, !0), ov.nodeType === Node.DOCUMENT_FRAGMENT_NODE && ov.host ? ov.host.setAttribute("data-js-focus-visible", "") : ov.nodeType === Node.DOCUMENT_NODE && (document.documentElement.classList.add("js-focus-visible"), document.documentElement.setAttribute("data-js-focus-visible", ""));
    }
    if (typeof window < "u" && typeof document < "u") {
      window.applyFocusVisiblePolyfill = ev;
      var iv;
      try {
        iv = new CustomEvent("focus-visible-polyfill-ready");
      } catch {
        iv = document.createEvent("CustomEvent"), iv.initCustomEvent("focus-visible-polyfill-ready", !1, !1, {});
      }
      window.dispatchEvent(iv);
    }
    typeof document < "u" && ev(document);
  });
})();
const j0 = ki(), pR = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  return ev = Da({
    state: tv,
    ...ev
  }, j0), ev = {
    role: "radiogroup",
    ...ev
  }, ev = Ma({
    state: tv,
    ...ev
  }), ev;
}), gR = Wt((rv) => {
  const tv = pR(rv);
  return Lt("div", tv);
});
function vR(rv, tv) {
  if (tv !== void 0)
    return rv != null && tv != null ? tv === rv : !!tv;
}
function bR(rv, tv) {
  return rv === "input" && (!tv || tv === "radio");
}
const yR = it((rv) => {
  var tv, ev, iv;
  let {
    state: ov,
    value: av,
    checked: sv,
    ...lv
  } = rv;
  const uv = tn(lv.id);
  ov = xr(ov || j0, [reactExports.useCallback((Av) => Av.activeId === uv, [uv]), reactExports.useCallback((Av) => Av.value === av, [av]), "setActiveId", "setValue"]);
  const cv = reactExports.useRef(null), dv = en(((tv = ov) == null ? void 0 : tv.activeId) === uv), hv = sv ?? vR(av, (ev = ov) == null ? void 0 : ev.value);
  reactExports.useEffect(() => {
    if (!dv.current && hv) {
      var Av;
      (Av = ov) == null || Av.setActiveId(uv);
    }
  }, [hv, (iv = ov) == null ? void 0 : iv.setActiveId, uv]);
  const pv = lv.onChange, yv = Pi(cv, lv.as || "input"), Sv = bR(yv, lv.type), _v = Ze((Av) => {
    var Ov;
    if (lv.disabled) {
      Av.preventDefault(), Av.stopPropagation();
      return;
    }
    Sv || (Av.currentTarget.checked = !0), pv == null || pv(Av), !Av.defaultPrevented && ((Ov = ov) == null || Ov.setValue(av));
  }), Ev = lv.onClick, wv = Ze((Av) => {
    Ev == null || Ev(Av), !Av.defaultPrevented && (Sv || _v(Av));
  }), xv = lv.onFocus, Cv = Ze((Av) => {
    var Ov;
    xv == null || xv(Av), !Av.defaultPrevented && Sv && (Ov = ov) != null && Ov.moves && dv.current && _v(Av);
  });
  return lv = {
    id: uv,
    role: Sv ? void 0 : "radio",
    type: Sv ? "radio" : void 0,
    "aria-checked": hv,
    ...lv,
    ref: Ut(cv, lv.ref),
    onChange: _v,
    onClick: wv,
    onFocus: Cv
  }, lv = Fa({
    state: ov,
    clickOnEnter: !Sv,
    ...lv
  }), {
    value: Sv ? av : void 0,
    checked: hv,
    ...lv
  };
}), ER = Di((rv) => {
  const tv = yR(rv);
  return Lt("input", tv);
}), xR = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  const iv = reactExports.useContext(m0);
  tv = tv || iv;
  const ov = ev.onClick, av = Ze((sv) => {
    var lv;
    ov == null || ov(sv), !sv.defaultPrevented && ((lv = tv) == null || lv.hide());
  });
  return ev = {
    "data-dialog-dismiss": "",
    children: reactExports.useMemo(() => /* @__PURE__ */ jsxRuntimeExports.jsxs("svg", {
      "aria-label": "Dismiss popup",
      display: "block",
      fill: "none",
      stroke: "currentColor",
      strokeLinecap: "round",
      strokeLinejoin: "round",
      strokeWidth: "1.5pt",
      viewBox: "0 0 16 16",
      height: "1em",
      width: "1em",
      children: [/* @__PURE__ */ jsxRuntimeExports.jsx("line", {
        x1: "4",
        y1: "4",
        x2: "12",
        y2: "12"
      }), /* @__PURE__ */ jsxRuntimeExports.jsx("line", {
        x1: "4",
        y1: "12",
        x2: "12",
        y2: "4"
      })]
    }), []),
    ...ev,
    onClick: av
  }, ev = zu(ev), ev;
}), H0 = it((rv) => {
  const tv = reactExports.useRef(null), ev = reactExports.useContext(Hl) || 1, iv = "h" + ev, ov = Pi(tv, rv.as || iv), av = reactExports.useMemo(() => !!ov && /^h\d$/.test(ov), [ov]);
  return rv = {
    as: iv,
    role: av ? void 0 : "heading",
    "aria-level": av ? void 0 : ev,
    ...rv,
    ref: Ut(tv, rv.ref)
  }, rv;
}), wR = Wt((rv) => {
  const tv = H0(rv);
  return Lt("h1", tv);
}), TR = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  const iv = reactExports.useContext(p0), ov = tn(ev.id);
  return Tt(() => (iv == null || iv(ov), () => iv == null ? void 0 : iv(void 0)), [iv, ov]), ev = {
    id: ov,
    ...ev
  }, ev = H0(ev), ev;
}), SR = Wt((rv) => {
  const tv = TR(rv);
  return Lt("h1", tv);
}), AR = it((rv) => {
  let {
    state: tv,
    showOnHover: ev = !0,
    ...iv
  } = rv;
  const ov = iv.disabled || iv["aria-disabled"] === !0 || iv["aria-disabled"] === "true", av = reactExports.useRef(0);
  reactExports.useEffect(() => () => window.clearTimeout(av.current), []), reactExports.useEffect(() => er("mouseleave", (dv) => {
    const hv = tv.anchorRef.current;
    hv && dv.target === hv && (window.clearTimeout(av.current), av.current = 0);
  }, !0), [tv.anchorRef]);
  const sv = iv.onMouseMove, lv = Vt(ev), uv = Zp(), cv = Ze((dv) => {
    tv.anchorRef.current = dv.currentTarget, sv == null || sv(dv), !ov && (dv.defaultPrevented || av.current || uv() && lv(dv) && (av.current = window.setTimeout(() => {
      av.current = 0, tv.show();
    }, tv.showTimeout)));
  });
  return iv = {
    ...iv,
    ref: Ut(tv.anchorRef, iv.ref),
    onMouseMove: cv
  }, iv = Li(iv), iv;
});
function ll(rv) {
  return [rv.clientX, rv.clientY];
}
function kf(rv, tv) {
  const [ev, iv] = rv;
  let ov = !1;
  const av = tv.length;
  for (let sv = 0, lv = av - 1; sv < av; lv = sv++) {
    const [uv, cv] = tv[sv] || [0, 0], [dv, hv] = tv[lv] || [0, 0];
    cv >= iv != hv >= iv && ev <= (dv - uv) * (iv - cv) / (hv - cv) + uv && (ov = !ov);
  }
  return ov;
}
function CR(rv, tv) {
  const {
    top: ev,
    right: iv,
    bottom: ov,
    left: av
  } = tv, [sv, lv] = rv, uv = sv < av ? "left" : sv > iv ? "right" : null, cv = lv < ev ? "top" : lv > ov ? "bottom" : null;
  return [uv, cv];
}
function Df(rv, tv) {
  const ev = rv.getBoundingClientRect(), {
    top: iv,
    right: ov,
    bottom: av,
    left: sv
  } = ev, [lv, uv] = CR(tv, ev), cv = [tv];
  return lv ? (uv !== "top" && cv.push([lv === "left" ? sv : ov, iv]), cv.push([lv === "left" ? ov : sv, iv]), cv.push([lv === "left" ? ov : sv, av]), uv !== "bottom" && cv.push([lv === "left" ? sv : ov, av])) : uv === "top" ? (cv.push([sv, iv]), cv.push([sv, av]), cv.push([ov, av]), cv.push([ov, iv])) : (cv.push([sv, av]), cv.push([sv, iv]), cv.push([ov, iv]), cv.push([ov, av])), cv;
}
function G0(rv, tv, ev, iv) {
  return ws(tv) ? !0 : rv ? !!(Xt(tv, rv) || ev && Xt(ev, rv) || iv != null && iv.some((ov) => G0(rv, ov, ev))) : !1;
}
function RR(rv) {
  let {
    state: tv,
    ...ev
  } = rv;
  const iv = en(tv.mounted);
  return reactExports.useEffect(() => {
    tv.mounted || tv.setAutoFocusOnShow(!1);
  }, [tv.mounted, tv.setAutoFocusOnShow]), reactExports.useEffect(() => () => {
    iv.current || tv.setAutoFocusOnShow(!1);
  }, [tv.setAutoFocusOnShow]), {
    // If the hovercard is modal, we should always autoFocus on show.
    autoFocusOnShow: !!ev.modal || tv.autoFocusOnShow,
    ...ev
  };
}
function _R(rv) {
  let {
    state: tv,
    ...ev
  } = rv;
  const [iv, ov] = reactExports.useState(!1);
  reactExports.useEffect(() => {
    tv.mounted || ov(!1);
  }, [tv.mounted]);
  const av = Ze(ev.onFocus), sv = reactExports.useCallback((lv) => {
    av(lv), !lv.defaultPrevented && ov(!0);
  }, [av]);
  return ev = {
    autoFocusOnHide: iv,
    finalFocusRef: tv.anchorRef,
    ...ev,
    onFocus: sv
  }, ev;
}
const Nf = /* @__PURE__ */ reactExports.createContext(null), IR = it((rv) => {
  let {
    state: tv,
    modal: ev = !1,
    portal: iv = !!ev,
    hideOnEscape: ov = !0,
    hideOnControl: av = !1,
    hideOnHoverOutside: sv = !0,
    disablePointerEventsOnApproach: lv = !!sv,
    ...uv
  } = rv;
  const cv = reactExports.useRef(null), [dv, hv] = reactExports.useState([]), pv = reactExports.useRef(0), yv = reactExports.useRef(null), {
    portalRef: Sv,
    domReady: _v
  } = $u(iv, uv.portalRef), Ev = Vt(ov), wv = Vt(av);
  reactExports.useEffect(() => {
    if (tv.open)
      return er("keydown", (Dv) => {
        if (Dv.defaultPrevented)
          return;
        const Vv = Dv.key === "Escape" && Ev(Dv), Gv = Dv.key === "Control" && wv(Dv);
        (Vv || Gv) && tv.hide();
      });
  }, [tv.open, Ev, wv, tv.hide]);
  const xv = !!sv, Cv = Vt(sv), Av = !!lv, Ov = Vt(lv);
  reactExports.useEffect(() => {
    if (!_v || !tv.mounted || !xv && !Av)
      return;
    const Dv = cv.current;
    return Dv ? er("mousemove", (Vv) => {
      const Gv = yv.current, Yv = Vv.target, Xv = tv.anchorRef.current;
      if (G0(Yv, Dv, Xv, dv)) {
        yv.current = Yv && Xv && Xt(Xv, Yv) ? ll(Vv) : null, window.clearTimeout(pv.current), pv.current = 0;
        return;
      }
      if (!pv.current) {
        if (Gv) {
          const L1 = ll(Vv), Bv = Df(Dv, Gv);
          if (kf(L1, Bv)) {
            if (yv.current = L1, !Ov(Vv))
              return;
            Vv.preventDefault(), Vv.stopPropagation();
            return;
          }
        }
        Cv(Vv) && (pv.current = window.setTimeout(() => {
          pv.current = 0, tv.hide();
        }, tv.hideTimeout));
      }
    }, !0) : void 0;
  }, [_v, tv.mounted, xv, Av, tv.anchorRef, dv, Ov, Cv, tv.hide, tv.hideTimeout]), reactExports.useEffect(() => {
    if (!_v || !tv.mounted || !Av)
      return;
    const Dv = (Vv) => {
      const Gv = cv.current;
      if (!Gv)
        return;
      const Yv = yv.current;
      if (!Yv)
        return;
      const Xv = Df(Gv, Yv);
      if (kf(ll(Vv), Xv)) {
        if (!Ov(Vv))
          return;
        Vv.preventDefault(), Vv.stopPropagation();
      }
    };
    return Mu(
      // Note: we may need to add pointer events here in the future.
      er("mouseenter", Dv, !0),
      er("mouseover", Dv, !0),
      er("mouseout", Dv, !0),
      er("mouseleave", Dv, !0)
    );
  }, [_v, tv.mounted, Av, Ov]);
  const Lv = reactExports.useContext(Nf);
  Tt(() => {
    if (ev || !iv || !tv.mounted || !_v)
      return;
    const Dv = cv.current;
    if (Dv)
      return Lv == null ? void 0 : Lv(Dv);
  }, [ev, iv, tv.mounted, _v]);
  const jv = reactExports.useCallback((Dv) => {
    hv((Gv) => [...Gv, Dv]);
    const Vv = Lv == null ? void 0 : Lv(Dv);
    return () => {
      hv((Gv) => Gv.filter((Yv) => Yv !== Dv)), Vv == null || Vv();
    };
  }, [Lv]);
  return uv = _r(uv, (Dv) => /* @__PURE__ */ jsxRuntimeExports.jsx(Nf.Provider, {
    value: jv,
    children: Dv
  }), [jv]), uv = {
    ...uv,
    ref: Ut(cv, uv.ref)
  }, uv = _R({
    state: tv,
    ...uv
  }), uv = RR({
    state: tv,
    ...uv
  }), uv = w0({
    hideOnEscape: ov,
    state: tv,
    modal: ev,
    portal: iv,
    ...uv,
    portalRef: Sv
  }), uv;
}), Ss = ki(), xa = ki();
function Kl(rv, tv) {
  return !!(rv != null && rv.filter((ev) => ev.ref.current !== tv).some((ev) => {
    var iv;
    return ((iv = ev.ref.current) == null ? void 0 : iv.getAttribute("aria-expanded")) === "true";
  }));
}
function PR(rv, tv) {
  return {
    ArrowDown: tv === "bottom" || tv === "top" ? "first" : !1,
    ArrowUp: tv === "bottom" || tv === "top" ? "last" : !1,
    ArrowRight: tv === "right" ? "first" : !1,
    ArrowLeft: tv === "left" ? "first" : !1
  }[rv.key];
}
const OR = it((rv) => {
  let {
    state: tv,
    focusable: ev,
    accessibleWhenDisabled: iv,
    showOnHover: ov,
    ...av
  } = rv;
  const sv = reactExports.useRef(null), lv = xr(xa, ["items", "move", "contentElement"]), uv = xr(Ss, ["items", "move"]), cv = !!lv, dv = !!uv && !cv, hv = av.disabled || av["aria-disabled"] === !0 || av["aria-disabled"] === "true";
  reactExports.useEffect(() => {
    tv.disclosureRef.current = sv.current;
  });
  const pv = av.onFocus, yv = Ze((Ov) => {
    pv == null || pv(Ov), !hv && (Ov.defaultPrevented || (tv.setAutoFocusOnShow(!1), tv.setActiveId(null), uv && dv && Kl(uv.items, Ov.currentTarget) && tv.show()));
  }), Sv = tv.placement.split("-")[0], _v = av.onKeyDown, Ev = Ze((Ov) => {
    if (_v == null || _v(Ov), hv || Ov.defaultPrevented)
      return;
    const Lv = PR(Ov, Sv);
    Lv && (Ov.preventDefault(), tv.show(), tv.setAutoFocusOnShow(!0), tv.setInitialFocus(Lv));
  }), wv = av.onClick, xv = Ze((Ov) => {
    if (wv == null || wv(Ov), Ov.defaultPrevented)
      return;
    const Lv = !Ov.detail;
    (!tv.open || Lv) && ((!cv || Lv) && tv.setAutoFocusOnShow(!0), tv.setInitialFocus(Lv ? "first" : "container")), cv && tv.show();
  });
  cv && (av = {
    as: "div",
    ...av
  });
  const Cv = tn(av.id), Av = cv || dv ? Du(lv == null ? void 0 : lv.contentElement, "menuitem") : void 0;
  return av = {
    id: Cv,
    role: Av,
    "aria-haspopup": ku(tv.contentElement, "menu"),
    ...av,
    ref: Ut(sv, av.ref),
    onFocus: yv,
    onKeyDown: Ev,
    onClick: xv
  }, av = AR({
    state: tv,
    focusable: ev,
    accessibleWhenDisabled: iv,
    ...av,
    showOnHover: (Ov) => typeof ov == "function" ? ov(Ov) : ov ?? (cv ? !0 : dv && Kl(uv.items))
  }), av = gC({
    state: tv,
    toggleOnClick: !cv,
    focusable: ev,
    accessibleWhenDisabled: iv,
    ...av
  }), av = L0({
    state: tv,
    typeahead: dv,
    ...av
  }), av;
}), Xu = Wt((rv) => {
  const tv = OR(rv);
  return Lt("button", tv);
}), LR = it((rv) => {
  let {
    state: tv,
    hideOnClick: ev = !0,
    preventScrollOnKeyDown: iv = !0,
    focusOnHover: ov,
    ...av
  } = rv;
  const sv = xr(tv || Ss, ["items"]);
  tv = xr(tv || xa, ["move", "hideAll", "contentElement"]) || sv;
  const lv = av.onClick, uv = Vt(ev), cv = tv && "hideAll" in tv ? tv.hideAll : void 0, dv = !!cv, hv = Ze((pv) => {
    lv == null || lv(pv), !(pv.defaultPrevented || zp(pv) || !cv || pv.currentTarget.getAttribute("aria-haspopup") === "menu") && uv(pv) && cv();
  });
  return av = {
    role: Du(tv && "contentElement" in tv ? tv.contentElement : null, "menuitem"),
    ...av,
    onClick: hv
  }, av = Fa({
    state: tv,
    preventScrollOnKeyDown: iv,
    ...av
  }), av = Ku({
    state: tv,
    ...av,
    focusOnHover: (pv) => {
      var yv;
      return typeof ov == "function" ? ov(pv) : ov ?? (pv.type === "mouseleave" ? dv : dv ? (pv.currentTarget.hasAttribute("aria-expanded") && pv.currentTarget.focus(), !0) : Kl((yv = tv) == null ? void 0 : yv.items, pv.currentTarget) ? (pv.currentTarget.focus(), !0) : !1);
    }
  }), av;
}), kR = Di((rv) => {
  const tv = LR(rv);
  return Lt("div", tv);
});
function DR(rv) {
  let {
    state: tv,
    ...ev
  } = rv;
  const [iv, ov] = reactExports.useState(void 0), av = ev["aria-label"];
  return reactExports.useEffect(() => {
    const sv = tv.disclosureRef.current;
    if (!sv)
      return;
    const lv = tv.contentElement;
    lv && (av || lv.hasAttribute("aria-label") ? ov(void 0) : sv.id && ov(sv.id));
  }, [av, tv.disclosureRef, tv.contentElement]), iv;
}
const NR = it((rv) => {
  let {
    state: tv,
    composite: ev = !0,
    ...iv
  } = rv;
  const ov = xr(xa, []), av = xr(Ss, ["items", "move", "next", "previous", "orientation"]), sv = !!ov, lv = tn(iv.id), uv = iv.onKeyDown, cv = tv.placement.split("-")[0], dv = tv.orientation === "both" ? void 0 : tv.orientation, hv = dv !== "vertical", pv = !!av && (av == null ? void 0 : av.orientation) !== "vertical", yv = Ze((Ev) => {
    if (uv == null || uv(Ev), !Ev.defaultPrevented) {
      if (sv || av && !hv) {
        const wv = {
          ArrowRight: () => cv === "left" && !hv,
          ArrowLeft: () => cv === "right" && !hv,
          ArrowUp: () => cv === "bottom" && hv,
          ArrowDown: () => cv === "top" && hv
        }[Ev.key];
        if (wv != null && wv())
          return Ev.stopPropagation(), Ev.preventDefault(), tv.hide();
      }
      if (av) {
        const wv = {
          ArrowRight: () => {
            if (pv)
              return av.next();
          },
          ArrowLeft: () => {
            if (pv)
              return av.previous();
          },
          ArrowDown: () => {
            if (!pv)
              return av.next();
          },
          ArrowUp: () => {
            if (!pv)
              return av.previous();
          }
        }[Ev.key], xv = wv == null ? void 0 : wv();
        xv !== void 0 && (Ev.stopPropagation(), Ev.preventDefault(), av.move(xv));
      }
    }
  });
  iv = Da({
    state: tv,
    ...iv
  }, xa);
  const Sv = DR({
    state: tv,
    ...iv
  }), _v = tv.mounted ? iv.style : {
    ...iv.style,
    display: "none"
  };
  return iv = {
    id: lv,
    "aria-labelledby": Sv,
    hidden: !tv.mounted,
    ...iv,
    ref: Ut(lv ? tv.setContentElement : null, iv.ref),
    style: _v,
    onKeyDown: yv
  }, ev && (iv = {
    role: "menu",
    "aria-orientation": dv,
    ...iv
  }), iv = Ma({
    state: tv,
    composite: ev,
    ...iv
  }), iv = L0({
    state: tv,
    ...iv
  }), iv;
}), FR = it((rv) => (rv = X2(rv), rv)), MR = Wt((rv) => {
  const tv = FR(rv);
  return Lt("hr", tv);
});
function Ff(rv, tv) {
  var ev;
  if (tv)
    return (ev = rv.find((iv) => iv.id === tv)) == null ? void 0 : ev.ref;
}
const $R = it((rv) => {
  let {
    state: tv,
    hideOnEscape: ev = !0,
    autoFocusOnShow: iv = !0,
    hideOnHoverOutside: ov,
    ...av
  } = rv;
  const sv = xr(xa, []), lv = xr(Ss, []), uv = !!sv, cv = !!lv && !uv, dv = av.onKeyDown, hv = Vt(ev), pv = Ze((Cv) => {
    if (dv == null || dv(Cv), !Cv.defaultPrevented && Cv.key === "Escape")
      return hv(Cv) ? (uv || Cv.stopPropagation(), tv.hide()) : void 0;
  });
  av = {
    ...av,
    onKeyDown: pv
  };
  const {
    "aria-labelledby": yv,
    ...Sv
  } = NR({
    state: tv,
    ...av
  });
  av = Sv;
  const [_v, Ev] = reactExports.useState();
  reactExports.useEffect(() => {
    let Cv = !1;
    return Ev((Av) => {
      if (!Cv && tv.autoFocusOnShow) {
        if (Av)
          return Av;
        switch (tv.initialFocus) {
          case "first":
            return Ff(tv.items, tv.first());
          case "last":
            return Ff(tv.items, tv.last());
          default:
            return tv.baseRef;
        }
      }
    }), () => {
      Cv = !0;
    };
  }, [tv.autoFocusOnShow, tv.initialFocus, tv.items, tv.first, tv.last, tv.baseRef]);
  const wv = !!iv, xv = !!_v || !!av.initialFocusRef || !!av.modal;
  return av = IR({
    state: tv,
    initialFocusRef: _v,
    autoFocusOnShow: wv ? xv && iv : tv.autoFocusOnShow || !!av.modal,
    ...av,
    hideOnHoverOutside: (Cv) => {
      if (typeof ov == "function")
        return ov(Cv);
      if (ov != null)
        return ov;
      if (uv)
        return sv.setActiveId(null), !0;
      if (!cv)
        return !1;
      const Av = tv.disclosureRef.current;
      return Av ? !ws(Av) : !0;
    },
    // If it's a submenu, it shouldn't behave like a modal dialog, nor display
    // a backdrop.
    modal: uv ? !1 : av.modal,
    backdrop: uv ? !1 : av.backdrop,
    // If it's a submenu, hide on esc will be handled differently. That is,
    // event.stopPropagation() won't be called, so the parent menus will also
    // be closed.
    hideOnEscape: uv ? !1 : ev
  }), av = {
    "aria-labelledby": yv,
    ...av
  }, av;
}), z0 = Wt((rv) => {
  const tv = $R(rv);
  return Lt("div", tv);
}), V0 = ki(), BR = it((rv) => {
  let {
    state: tv,
    ...ev
  } = rv;
  return ev = {
    role: "tablist",
    "aria-orientation": tv.orientation === "both" ? void 0 : tv.orientation,
    ...ev
  }, ev = Da({
    state: tv,
    ...ev
  }, V0), ev = Ma({
    state: tv,
    ...ev
  }), ev;
}), UR = Wt((rv) => {
  const tv = BR(rv);
  return Lt("div", tv);
});
function jR(rv, tv) {
  var ev;
  if (tv)
    return (ev = rv.items.find((iv) => iv.id === tv)) == null ? void 0 : ev.tabId;
}
const HR = it((rv) => {
  let {
    state: tv,
    tabId: ev,
    getItem: iv,
    ...ov
  } = rv;
  const av = reactExports.useRef(null), sv = tn(ov.id), [lv, uv] = reactExports.useState(!1);
  reactExports.useEffect(() => {
    const yv = av.current;
    if (!yv)
      return;
    const Sv = ka(yv);
    uv(!!Sv.length);
  }, []);
  const cv = reactExports.useCallback((yv) => {
    const Sv = {
      ...yv,
      id: sv,
      tabId: ev
    };
    return iv ? iv(Sv) : Sv;
  }, [sv, ev, iv]), dv = ev || jR(tv.panels, sv), hv = !!dv && tv.selectedId === dv;
  ov = {
    id: sv,
    role: "tabpanel",
    "aria-labelledby": dv || void 0,
    ...ov,
    ref: Ut(av, ov.ref)
  };
  const pv = tC({
    open: hv
  });
  return ov = Li({
    focusable: !lv,
    ...ov
  }), ov = Yu({
    state: pv,
    ...ov
  }), ov = u0({
    state: tv.panels,
    ...ov,
    getItem: cv
  }), ov;
}), GR = Wt((rv) => {
  const tv = HR(rv);
  return Lt("div", tv);
});
function Mf(rv, tv) {
  return rv.find((ev) => ev.id === tv && !ev.disabled && !ev.dimmed);
}
function zR(rv) {
  return rv.find((tv) => !tv.disabled && !tv.dimmed);
}
function VR(rv) {
  let {
    orientation: tv = "horizontal",
    focusLoop: ev = !0,
    selectOnMove: iv = !0,
    ...ov
  } = {};
  const [av, sv] = Ti(ov.defaultSelectedId, ov.selectedId, ov.setSelectedId), lv = C0({
    orientation: tv,
    focusLoop: ev,
    ...ov
  }), uv = A0(), cv = en(lv);
  reactExports.useEffect(() => {
    if (!iv)
      return;
    const {
      activeId: pv,
      items: yv
    } = cv.current;
    if (!pv)
      return;
    const Sv = Mf(yv, pv);
    Sv && sv(Sv.id);
  }, [lv.moves, iv, sv]), reactExports.useEffect(() => {
    av !== cv.current.activeId && lv.setActiveId(av);
  }, [av, lv.setActiveId]), reactExports.useEffect(() => {
    if (av !== void 0)
      return;
    const pv = cv.current.activeId;
    if (Mf(lv.items, pv))
      sv(pv);
    else {
      const yv = zR(lv.items);
      sv(yv == null ? void 0 : yv.id);
    }
  }, [av, lv.items, sv]), reactExports.useEffect(() => {
    lv.items.length && uv.setItems((pv) => pv.some((yv) => !yv.tabId) ? pv.map((yv, Sv) => {
      if (yv.tabId)
        return yv;
      const _v = lv.items[Sv];
      return {
        ...yv,
        tabId: _v == null ? void 0 : _v.id
      };
    }) : pv);
  }, [lv.items, uv.setItems]);
  const dv = reactExports.useCallback((pv) => {
    lv.move(pv), sv(pv);
  }, [lv.move, sv]), hv = reactExports.useMemo(() => ({
    ...lv,
    selectedId: av,
    setSelectedId: sv,
    select: dv,
    panels: uv
  }), [lv, av, sv, dv, uv]);
  return n0(hv);
}
function WR(rv, tv) {
  var ev;
  if (tv)
    return rv == null || (ev = rv.items.find((iv) => iv.tabId === tv)) == null ? void 0 : ev.id;
}
const KR = it((rv) => {
  var tv, ev;
  let {
    state: iv,
    accessibleWhenDisabled: ov = !0,
    getItem: av,
    ...sv
  } = rv;
  const lv = tn(), uv = sv.id || lv;
  iv = xr(iv || V0, [reactExports.useCallback((Sv) => uv && Sv.selectedId === uv, [uv]), "panels", "setSelectedId"]);
  const cv = sv.disabled, dv = reactExports.useCallback((Sv) => {
    const _v = {
      ...Sv,
      dimmed: cv
    };
    return av ? av(_v) : _v;
  }, [cv, av]), hv = sv.onClick, pv = Ze((Sv) => {
    var _v;
    hv == null || hv(Sv), !Sv.defaultPrevented && ((_v = iv) == null || _v.setSelectedId(uv));
  }), yv = WR((tv = iv) == null ? void 0 : tv.panels, uv);
  return sv = {
    id: uv,
    role: "tab",
    "aria-selected": !!uv && ((ev = iv) == null ? void 0 : ev.selectedId) === uv,
    "aria-controls": yv || void 0,
    ...sv,
    onClick: pv
  }, sv = Fa({
    state: iv,
    ...sv,
    accessibleWhenDisabled: ov,
    getItem: dv,
    shouldRegisterItem: lv ? sv.shouldRegisterItem : !1
  }), sv;
}), YR = Di((rv) => {
  const tv = KR(rv);
  return Lt("button", tv);
});
let XR = 0;
function qR(rv, tv) {
  const ev = `atom${++XR}`, iv = {
    toString: () => ev
  };
  return iv.init = rv, iv.read = (ov) => ov(iv), iv.write = (ov, av, sv) => av(
    iv,
    typeof sv == "function" ? sv(ov(iv)) : sv
  ), iv;
}
const Lr = { BASE_URL: "/", DEV: !1, MODE: "production", NZ_AWS_REGION: "us-east-1", PROD: !0, SSR: !1, STAGE: "prod" }, Mn = Symbol(), Yl = (rv) => !!rv[Mn], io = (rv) => !rv[Mn].c, Zi = (rv) => {
  var tv;
  const { b: ev, c: iv } = rv[Mn];
  iv && (iv(), (tv = JR.get(ev)) == null || tv());
}, So = (rv, tv) => {
  const ev = rv[Mn].o, iv = tv[Mn].o;
  return ev === iv || rv === iv || Yl(ev) && So(ev, tv);
}, Xl = (rv, tv) => {
  const ev = {
    b: rv,
    o: tv,
    c: null
  }, iv = new Promise((ov) => {
    ev.c = () => {
      ev.c = null, ov();
    }, tv.finally(ev.c);
  });
  return iv[Mn] = ev, iv;
}, ZR = (rv) => Xl(
  rv[Mn].b,
  rv[Mn].o
), JR = /* @__PURE__ */ new WeakMap(), ao = (rv) => "init" in rv, ql = "r", Zl = "w", wa = "c", Jl = "s", $f = "h", QR = "n", e_ = "l", t_ = "a", r_ = "m", n_ = (rv) => {
  const tv = /* @__PURE__ */ new WeakMap(), ev = /* @__PURE__ */ new WeakMap(), iv = /* @__PURE__ */ new Map();
  let ov, av;
  if ((Lr && "production") !== "production" && (ov = /* @__PURE__ */ new Set(), av = /* @__PURE__ */ new Set()), rv)
    for (const [D1, I1] of rv) {
      const F1 = {
        v: I1,
        r: 0,
        y: !0,
        // not invalidated
        d: /* @__PURE__ */ new Map()
      };
      (Lr && "production") !== "production" && (Object.freeze(F1), ao(D1) || console.warn(
        "Found initial value for derived atom which can cause unexpected behavior",
        D1
      )), tv.set(D1, F1);
    }
  const sv = /* @__PURE__ */ new WeakMap(), lv = (D1, I1, F1) => {
    let M1 = sv.get(I1);
    M1 || (M1 = /* @__PURE__ */ new Map(), sv.set(I1, M1)), F1.then(() => {
      M1.get(D1) === F1 && (M1.delete(D1), M1.size || sv.delete(I1));
    }), M1.set(D1, F1);
  }, uv = (D1) => {
    const I1 = /* @__PURE__ */ new Set(), F1 = sv.get(D1);
    return F1 && (sv.delete(D1), F1.forEach((M1, U1) => {
      Zi(M1), I1.add(U1);
    })), I1;
  }, cv = /* @__PURE__ */ new WeakMap(), dv = (D1) => {
    let I1 = cv.get(D1);
    return I1 || (I1 = /* @__PURE__ */ new Map(), cv.set(D1, I1)), I1;
  }, hv = (D1, I1) => {
    if (D1) {
      const F1 = dv(D1);
      let M1 = F1.get(I1);
      return M1 || (M1 = hv(D1.p, I1), M1 && "p" in M1 && io(M1.p) && (M1 = void 0), M1 && F1.set(I1, M1)), M1;
    }
    return tv.get(I1);
  }, pv = (D1, I1, F1) => {
    if ((Lr && "production") !== "production" && Object.freeze(F1), D1)
      dv(D1).set(I1, F1);
    else {
      const M1 = tv.get(I1);
      tv.set(I1, F1), iv.has(I1) || iv.set(I1, M1);
    }
  }, yv = (D1, I1 = /* @__PURE__ */ new Map(), F1) => {
    if (!F1)
      return I1;
    const M1 = /* @__PURE__ */ new Map();
    let U1 = !1;
    return F1.forEach((H1) => {
      var k1;
      const Q1 = ((k1 = hv(D1, H1)) == null ? void 0 : k1.r) || 0;
      M1.set(H1, Q1), I1.get(H1) !== Q1 && (U1 = !0);
    }), I1.size === M1.size && !U1 ? I1 : M1;
  }, Sv = (D1, I1, F1, M1, U1) => {
    const H1 = hv(D1, I1);
    if (H1) {
      if (U1 && (!("p" in H1) || !So(H1.p, U1)))
        return H1;
      "p" in H1 && Zi(H1.p);
    }
    const k1 = {
      v: F1,
      r: (H1 == null ? void 0 : H1.r) || 0,
      y: !0,
      // not invalidated
      d: yv(D1, H1 == null ? void 0 : H1.d, M1)
    };
    let Q1 = !(H1 != null && H1.y);
    return !H1 || !("v" in H1) || // new value, or
    !Object.is(H1.v, F1) ? (Q1 = !0, ++k1.r, k1.d.has(I1) && (k1.d = new Map(k1.d).set(I1, k1.r))) : k1.d !== H1.d && (k1.d.size !== H1.d.size || !Array.from(k1.d.keys()).every((Y1) => H1.d.has(Y1))) && (Q1 = !0, Promise.resolve().then(() => {
      Qv(D1);
    })), H1 && !Q1 ? H1 : (pv(D1, I1, k1), k1);
  }, _v = (D1, I1, F1, M1, U1) => {
    const H1 = hv(D1, I1);
    if (H1) {
      if (U1 && (!("p" in H1) || !So(H1.p, U1)))
        return H1;
      "p" in H1 && Zi(H1.p);
    }
    const k1 = {
      e: F1,
      // set read error
      r: ((H1 == null ? void 0 : H1.r) || 0) + 1,
      y: !0,
      // not invalidated
      d: yv(D1, H1 == null ? void 0 : H1.d, M1)
    };
    return pv(D1, I1, k1), k1;
  }, Ev = (D1, I1, F1, M1) => {
    const U1 = hv(D1, I1);
    if (U1 && "p" in U1) {
      if (So(U1.p, F1) && !io(U1.p))
        return U1.y ? U1 : { ...U1, y: !0 };
      Zi(U1.p);
    }
    lv(D1, I1, F1);
    const H1 = {
      p: F1,
      r: ((U1 == null ? void 0 : U1.r) || 0) + 1,
      y: !0,
      // not invalidated
      d: yv(D1, U1 == null ? void 0 : U1.d, M1)
    };
    return pv(D1, I1, H1), H1;
  }, wv = (D1, I1, F1, M1) => {
    if (F1 instanceof Promise) {
      const U1 = Xl(
        F1,
        F1.then((H1) => {
          Sv(D1, I1, H1, M1, U1);
        }).catch((H1) => {
          if (H1 instanceof Promise)
            return Yl(H1) ? H1.then(() => {
              Cv(D1, I1, !0);
            }) : H1;
          _v(D1, I1, H1, M1, U1);
        })
      );
      return Ev(
        D1,
        I1,
        U1,
        M1
      );
    }
    return Sv(
      D1,
      I1,
      F1,
      M1
    );
  }, xv = (D1, I1) => {
    const F1 = hv(D1, I1);
    if (F1) {
      const M1 = {
        ...F1,
        // copy everything
        y: !1
        // invalidated
      };
      pv(D1, I1, M1);
    } else
      (Lr && "production") !== "production" && console.warn("[Bug] could not invalidate non existing atom", I1);
  }, Cv = (D1, I1, F1) => {
    if (!F1) {
      const U1 = hv(D1, I1);
      if (U1) {
        if (U1.y && // not invalidated
        "p" in U1 && !io(U1.p))
          return U1;
        if (U1.d.forEach((H1, k1) => {
          if (k1 !== I1)
            if (!ev.has(k1))
              Cv(D1, k1);
            else {
              const Q1 = hv(D1, k1);
              Q1 && !Q1.y && Cv(D1, k1);
            }
        }), Array.from(U1.d).every(([H1, k1]) => {
          const Q1 = hv(D1, H1);
          return Q1 && !("p" in Q1) && // has no suspense promise
          Q1.r === k1;
        }))
          return U1.y ? U1 : { ...U1, y: !0 };
      }
    }
    const M1 = /* @__PURE__ */ new Set();
    try {
      const U1 = I1.read((H1) => {
        M1.add(H1);
        const k1 = H1 === I1 ? hv(D1, H1) : Cv(D1, H1);
        if (k1) {
          if ("e" in k1)
            throw k1.e;
          if ("p" in k1)
            throw k1.p;
          return k1.v;
        }
        if (ao(H1))
          return H1.init;
        throw new Error("no atom init");
      });
      return wv(D1, I1, U1, M1);
    } catch (U1) {
      if (U1 instanceof Promise) {
        const H1 = Yl(U1) && io(U1) ? ZR(U1) : Xl(U1, U1);
        return Ev(
          D1,
          I1,
          H1,
          M1
        );
      }
      return _v(D1, I1, U1, M1);
    }
  }, Av = (D1, I1) => Cv(I1, D1), Ov = (D1, I1) => {
    let F1 = ev.get(I1);
    return F1 || (F1 = Xv(D1, I1)), F1;
  }, Lv = (D1, I1) => !I1.l.size && (!I1.t.size || I1.t.size === 1 && I1.t.has(D1)), jv = (D1, I1) => {
    const F1 = ev.get(I1);
    F1 && Lv(I1, F1) && L1(D1, I1);
  }, Dv = (D1, I1) => {
    const F1 = ev.get(I1);
    F1 == null || F1.t.forEach((M1) => {
      M1 !== I1 && (xv(D1, M1), Dv(D1, M1));
    });
  }, Vv = (D1, I1, F1) => {
    let M1 = !0;
    const U1 = (Q1, Y1) => {
      const r$ = Cv(D1, Q1);
      if ("e" in r$)
        throw r$.e;
      if ("p" in r$) {
        if (Y1 != null && Y1.unstable_promise)
          return r$.p.then(() => {
            const a$ = hv(D1, Q1);
            return a$ && "p" in a$ && a$.p === r$.p ? new Promise((S$) => setTimeout(S$)).then(
              () => U1(Q1, Y1)
            ) : U1(Q1, Y1);
          });
        throw (Lr && "production") !== "production" && console.info(
          "Reading pending atom state in write operation. We throw a promise for now.",
          Q1
        ), r$.p;
      }
      if ("v" in r$)
        return r$.v;
      throw (Lr && "production") !== "production" && console.warn(
        "[Bug] no value found while reading atom in write operation. This is probably a bug.",
        Q1
      ), new Error("no value found");
    }, H1 = (Q1, Y1) => {
      let r$;
      if (Q1 === I1) {
        if (!ao(Q1))
          throw new Error("atom not writable");
        uv(Q1).forEach((d$) => {
          d$ !== D1 && wv(d$, Q1, Y1);
        });
        const a$ = hv(D1, Q1), S$ = wv(D1, Q1, Y1);
        a$ !== S$ && Dv(D1, Q1);
      } else
        r$ = Vv(D1, Q1, Y1);
      return M1 || Qv(D1), r$;
    }, k1 = I1.write(U1, H1, F1);
    return M1 = !1, k1;
  }, Gv = (D1, I1, F1) => {
    const M1 = Vv(F1, D1, I1);
    return Qv(F1), M1;
  }, Yv = (D1) => !!D1.write, Xv = (D1, I1, F1) => {
    const M1 = {
      t: new Set(F1 && [F1]),
      l: /* @__PURE__ */ new Set()
    };
    if (ev.set(I1, M1), (Lr && "production") !== "production" && av.add(I1), Cv(void 0, I1).d.forEach((U1, H1) => {
      const k1 = ev.get(H1);
      k1 ? k1.t.add(I1) : H1 !== I1 && Xv(D1, H1, I1);
    }), Yv(I1) && I1.onMount) {
      const U1 = (k1) => Gv(I1, k1, D1), H1 = I1.onMount(U1);
      D1 = void 0, H1 && (M1.u = H1);
    }
    return M1;
  }, L1 = (D1, I1) => {
    var F1;
    const M1 = (F1 = ev.get(I1)) == null ? void 0 : F1.u;
    M1 && M1(), ev.delete(I1), (Lr && "production") !== "production" && av.delete(I1);
    const U1 = hv(D1, I1);
    U1 ? ("p" in U1 && Zi(U1.p), U1.d.forEach((H1, k1) => {
      if (k1 !== I1) {
        const Q1 = ev.get(k1);
        Q1 && (Q1.t.delete(I1), Lv(k1, Q1) && L1(D1, k1));
      }
    })) : (Lr && "production") !== "production" && console.warn("[Bug] could not find atom state to unmount", I1);
  }, Bv = (D1, I1, F1, M1) => {
    const U1 = new Set(F1.d.keys());
    M1 == null || M1.forEach((H1, k1) => {
      if (U1.has(k1)) {
        U1.delete(k1);
        return;
      }
      const Q1 = ev.get(k1);
      Q1 && (Q1.t.delete(I1), Lv(k1, Q1) && L1(D1, k1));
    }), U1.forEach((H1) => {
      const k1 = ev.get(H1);
      k1 ? k1.t.add(I1) : ev.has(I1) && Xv(D1, H1, I1);
    });
  }, Qv = (D1) => {
    if (D1) {
      dv(D1).forEach((I1, F1) => {
        const M1 = tv.get(F1);
        if (I1 !== M1) {
          const U1 = ev.get(F1);
          U1 == null || U1.l.forEach((H1) => H1(D1));
        }
      });
      return;
    }
    for (; iv.size; ) {
      const I1 = Array.from(iv);
      iv.clear(), I1.forEach(([F1, M1]) => {
        const U1 = hv(void 0, F1);
        if (U1 && U1.d !== (M1 == null ? void 0 : M1.d) && Bv(void 0, F1, U1, M1 == null ? void 0 : M1.d), M1 && !M1.y && // invalidated
        U1 != null && U1.y)
          return;
        const H1 = ev.get(F1);
        H1 == null || H1.l.forEach((k1) => k1());
      });
    }
    (Lr && "production") !== "production" && ov.forEach((I1) => I1());
  }, B1 = (D1) => {
    dv(D1).forEach((I1, F1) => {
      const M1 = tv.get(F1);
      (!M1 || I1.r > M1.r || I1.y !== M1.y || I1.r === M1.r && I1.d !== M1.d) && (tv.set(F1, I1), I1.d !== (M1 == null ? void 0 : M1.d) && Bv(D1, F1, I1, M1 == null ? void 0 : M1.d));
    });
  }, K1 = (D1, I1) => {
    I1 && B1(I1), Qv(void 0);
  }, j1 = (D1, I1, F1) => {
    const M1 = Ov(F1, D1).l;
    return M1.add(I1), () => {
      M1.delete(I1), jv(F1, D1);
    };
  }, P1 = (D1, I1) => {
    for (const [F1, M1] of D1)
      ao(F1) && (wv(I1, F1, M1), Dv(I1, F1));
    Qv(I1);
  };
  return (Lr && "production") !== "production" ? {
    [ql]: Av,
    [Zl]: Gv,
    [wa]: K1,
    [Jl]: j1,
    [$f]: P1,
    [QR]: (D1) => (ov.add(D1), () => {
      ov.delete(D1);
    }),
    [e_]: () => av.values(),
    [t_]: (D1) => tv.get(D1),
    [r_]: (D1) => ev.get(D1)
  } : {
    [ql]: Av,
    [Zl]: Gv,
    [wa]: K1,
    [Jl]: j1,
    [$f]: P1
  };
}, W0 = (rv, tv) => ({ s: tv ? tv(rv).SECRET_INTERNAL_store : n_(rv) }), ul = /* @__PURE__ */ new Map(), qu = (rv) => (ul.has(rv) || ul.set(rv, reactExports.createContext(W0())), ul.get(rv)), i_ = ({
  children: rv,
  initialValues: tv,
  scope: ev,
  unstable_createStore: iv,
  unstable_enableVersionedWrite: ov
}) => {
  const [av, sv] = reactExports.useState({});
  reactExports.useEffect(() => {
    const cv = lv.current;
    cv.w && (cv.s[wa](null, av), delete av.p, cv.v = av);
  }, [av]);
  const lv = reactExports.useRef();
  if (!lv.current) {
    const cv = W0(
      tv,
      iv
    );
    if (ov) {
      let dv = 0;
      cv.w = (hv) => {
        sv((pv) => {
          const yv = dv ? pv : { p: pv };
          return hv(yv), yv;
        });
      }, cv.v = av, cv.r = (hv) => {
        ++dv, hv(), --dv;
      };
    }
    lv.current = cv;
  }
  const uv = qu(ev);
  return reactExports.createElement(
    uv.Provider,
    {
      value: lv.current
    },
    rv
  );
};
function K0(rv, tv) {
  return qR(rv);
}
function a_(rv, tv) {
  const ev = qu(tv), iv = reactExports.useContext(ev), { s: ov, v: av } = iv, sv = (pv) => {
    const yv = ov[ql](rv, pv);
    if ((Lr && "production") !== "production" && !yv.y)
      throw new Error("should not be invalidated");
    if ("e" in yv)
      throw yv.e;
    if ("p" in yv)
      throw yv.p;
    if ("v" in yv)
      return yv.v;
    throw new Error("no atom value");
  }, [[lv, uv, cv], dv] = reactExports.useReducer(
    (pv, yv) => {
      const Sv = sv(yv);
      return Object.is(pv[1], Sv) && pv[2] === rv ? pv : [yv, Sv, rv];
    },
    av,
    (pv) => {
      const yv = sv(pv);
      return [pv, yv, rv];
    }
  );
  let hv = uv;
  return cv !== rv && (dv(lv), hv = sv(lv)), reactExports.useEffect(() => {
    const { v: pv } = iv;
    pv && ov[wa](rv, pv);
    const yv = ov[Jl](
      rv,
      dv,
      pv
    );
    return dv(pv), yv;
  }, [ov, rv, iv]), reactExports.useEffect(() => {
    ov[wa](rv, lv);
  }), reactExports.useDebugValue(hv), hv;
}
function o_(rv, tv) {
  const ev = qu(tv), { s: iv, w: ov } = reactExports.useContext(ev);
  return reactExports.useCallback(
    (av) => {
      if ((Lr && "production") !== "production" && !("write" in rv))
        throw new Error("not writable atom");
      const sv = (lv) => iv[Zl](rv, av, lv);
      return ov ? ov(sv) : sv();
    },
    [iv, ov, rv]
  );
}
function Ta(rv, tv) {
  return "scope" in rv && (console.warn(
    "atom.scope is deprecated. Please do useAtom(atom, scope) instead."
  ), tv = rv.scope), [
    a_(rv, tv),
    // We do wrong type assertion here, which results in throwing an error.
    o_(rv, tv)
  ];
}
var s_ = ["orientation"], l_ = Sr({
  name: "Separator",
  compose: Pa,
  keys: s_,
  useOptions: function(rv) {
    var tv = rv.orientation, ev = tv === void 0 ? "horizontal" : tv, iv = Jt(rv, ["orientation"]);
    return wt({
      orientation: ev
    }, iv);
  },
  useProps: function(rv, tv) {
    return wt({
      role: "separator",
      "aria-orientation": rv.orientation
    }, tv);
  }
}), u_ = Tr({
  as: "hr",
  memo: !0,
  useHook: l_
}), c_ = ["baseId", "unstable_idCountRef", "unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "shift", "unstable_moves", "unstable_hasActiveWidget", "unstable_includesBaseElement", "setBaseId", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "setShift", "reset", "unstable_setIncludesBaseElement", "unstable_setHasActiveWidget"], d_ = c_, f_ = Sr({
  name: "Toolbar",
  compose: ip,
  keys: d_,
  useProps: function(rv, tv) {
    return wt({
      role: "toolbar",
      "aria-orientation": rv.orientation
    }, tv);
  }
}), h_ = Tr({
  as: "div",
  useHook: f_,
  useCreateElement: function(rv, tv, ev) {
    return _a(rv, tv, ev);
  }
}), Ye = {}, Ql = { exports: {} };
(function(rv, tv) {
  (function(ev, iv) {
    var ov = "0.7.37", av = "", sv = "?", lv = "function", uv = "undefined", cv = "object", dv = "string", hv = "major", pv = "model", yv = "name", Sv = "type", _v = "vendor", Ev = "version", wv = "architecture", xv = "console", Cv = "mobile", Av = "tablet", Ov = "smarttv", Lv = "wearable", jv = "embedded", Dv = 500, Vv = "Amazon", Gv = "Apple", Yv = "ASUS", Xv = "BlackBerry", L1 = "Browser", Bv = "Chrome", Qv = "Edge", B1 = "Firefox", K1 = "Google", j1 = "Huawei", P1 = "LG", D1 = "Microsoft", I1 = "Motorola", F1 = "Opera", M1 = "Samsung", U1 = "Sharp", H1 = "Sony", k1 = "Xiaomi", Q1 = "Zebra", Y1 = "Facebook", r$ = "Chromium OS", a$ = "Mac OS", S$ = function(Kv, c1) {
      var $1 = {};
      for (var N1 in Kv)
        c1[N1] && c1[N1].length % 2 === 0 ? $1[N1] = c1[N1].concat(Kv[N1]) : $1[N1] = Kv[N1];
      return $1;
    }, d$ = function(Kv) {
      for (var c1 = {}, $1 = 0; $1 < Kv.length; $1++)
        c1[Kv[$1].toUpperCase()] = Kv[$1];
      return c1;
    }, x$ = function(Kv, c1) {
      return typeof Kv === dv ? g$(c1).indexOf(g$(Kv)) !== -1 : !1;
    }, g$ = function(Kv) {
      return Kv.toLowerCase();
    }, _$ = function(Kv) {
      return typeof Kv === dv ? Kv.replace(/[^\d\.]/g, av).split(".")[0] : iv;
    }, O$ = function(Kv, c1) {
      if (typeof Kv === dv)
        return Kv = Kv.replace(/^\s\s*/, av), typeof c1 === uv ? Kv : Kv.substring(0, Dv);
    }, E$ = function(Kv, c1) {
      for (var $1 = 0, N1, e$, R1, Zv, C1, q1; $1 < c1.length && !C1; ) {
        var t$ = c1[$1], _b = c1[$1 + 1];
        for (N1 = e$ = 0; N1 < t$.length && !C1 && t$[N1]; )
          if (C1 = t$[N1++].exec(Kv), C1)
            for (R1 = 0; R1 < _b.length; R1++)
              q1 = C1[++e$], Zv = _b[R1], typeof Zv === cv && Zv.length > 0 ? Zv.length === 2 ? typeof Zv[1] == lv ? this[Zv[0]] = Zv[1].call(this, q1) : this[Zv[0]] = Zv[1] : Zv.length === 3 ? typeof Zv[1] === lv && !(Zv[1].exec && Zv[1].test) ? this[Zv[0]] = q1 ? Zv[1].call(this, q1, Zv[2]) : iv : this[Zv[0]] = q1 ? q1.replace(Zv[1], Zv[2]) : iv : Zv.length === 4 && (this[Zv[0]] = q1 ? Zv[3].call(this, q1.replace(Zv[1], Zv[2])) : iv) : this[Zv] = q1 || iv;
        $1 += 2;
      }
    }, O1 = function(Kv, c1) {
      for (var $1 in c1)
        if (typeof c1[$1] === cv && c1[$1].length > 0) {
          for (var N1 = 0; N1 < c1[$1].length; N1++)
            if (x$(c1[$1][N1], Kv))
              return $1 === sv ? iv : $1;
        } else if (x$(c1[$1], Kv))
          return $1 === sv ? iv : $1;
      return Kv;
    }, Z1 = { "1.0": "/8", 1.2: "/1", 1.3: "/3", "2.0": "/412", "2.0.2": "/416", "2.0.3": "/417", "2.0.4": "/419", "?": "/" }, Hv = { ME: "4.90", "NT 3.11": "NT3.51", "NT 4.0": "NT4.0", 2e3: "NT 5.0", XP: ["NT 5.1", "NT 5.2"], Vista: "NT 6.0", 7: "NT 6.1", 8: "NT 6.2", 8.1: "NT 6.3", 10: ["NT 6.4", "NT 10.0"], RT: "ARM" }, Jv = { browser: [[/\b(?:crmo|crios)\/([\w\.]+)/i], [Ev, [yv, "Chrome"]], [/edg(?:e|ios|a)?\/([\w\.]+)/i], [Ev, [yv, "Edge"]], [/(opera mini)\/([-\w\.]+)/i, /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i], [yv, Ev], [/opios[\/ ]+([\w\.]+)/i], [Ev, [yv, F1 + " Mini"]], [/\bopr\/([\w\.]+)/i], [Ev, [yv, F1]], [/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i], [Ev, [yv, "Baidu"]], [/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, /(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i, /(?:ms|\()(ie) ([\w\.]+)/i, /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i, /(heytap|ovi)browser\/([\d\.]+)/i, /(weibo)__([\d\.]+)/i], [yv, Ev], [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i], [Ev, [yv, "UC" + L1]], [/microm.+\bqbcore\/([\w\.]+)/i, /\bqbcore\/([\w\.]+).+microm/i, /micromessenger\/([\w\.]+)/i], [Ev, [yv, "WeChat"]], [/konqueror\/([\w\.]+)/i], [Ev, [yv, "Konqueror"]], [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i], [Ev, [yv, "IE"]], [/ya(?:search)?browser\/([\w\.]+)/i], [Ev, [yv, "Yandex"]], [/slbrowser\/([\w\.]+)/i], [Ev, [yv, "Smart Lenovo " + L1]], [/(avast|avg)\/([\w\.]+)/i], [[yv, /(.+)/, "$1 Secure " + L1], Ev], [/\bfocus\/([\w\.]+)/i], [Ev, [yv, B1 + " Focus"]], [/\bopt\/([\w\.]+)/i], [Ev, [yv, F1 + " Touch"]], [/coc_coc\w+\/([\w\.]+)/i], [Ev, [yv, "Coc Coc"]], [/dolfin\/([\w\.]+)/i], [Ev, [yv, "Dolphin"]], [/coast\/([\w\.]+)/i], [Ev, [yv, F1 + " Coast"]], [/miuibrowser\/([\w\.]+)/i], [Ev, [yv, "MIUI " + L1]], [/fxios\/([-\w\.]+)/i], [Ev, [yv, B1]], [/\bqihu|(qi?ho?o?|360)browser/i], [[yv, "360 " + L1]], [/(oculus|sailfish|huawei|vivo)browser\/([\w\.]+)/i], [[yv, /(.+)/, "$1 " + L1], Ev], [/samsungbrowser\/([\w\.]+)/i], [Ev, [yv, M1 + " Internet"]], [/(comodo_dragon)\/([\w\.]+)/i], [[yv, /_/g, " "], Ev], [/metasr[\/ ]?([\d\.]+)/i], [Ev, [yv, "Sogou Explorer"]], [/(sogou)mo\w+\/([\d\.]+)/i], [[yv, "Sogou Mobile"], Ev], [/(electron)\/([\w\.]+) safari/i, /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, /m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i], [yv, Ev], [/(lbbrowser)/i, /\[(linkedin)app\]/i], [yv], [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i], [[yv, Y1], Ev], [/(Klarna)\/([\w\.]+)/i, /(kakao(?:talk|story))[\/ ]([\w\.]+)/i, /(naver)\(.*?(\d+\.[\w\.]+).*\)/i, /safari (line)\/([\w\.]+)/i, /\b(line)\/([\w\.]+)\/iab/i, /(alipay)client\/([\w\.]+)/i, /(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i], [yv, Ev], [/\bgsa\/([\w\.]+) .*safari\//i], [Ev, [yv, "GSA"]], [/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i], [Ev, [yv, "TikTok"]], [/headlesschrome(?:\/([\w\.]+)| )/i], [Ev, [yv, Bv + " Headless"]], [/ wv\).+(chrome)\/([\w\.]+)/i], [[yv, Bv + " WebView"], Ev], [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i], [Ev, [yv, "Android " + L1]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i], [yv, Ev], [/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i], [Ev, [yv, "Mobile Safari"]], [/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i], [Ev, yv], [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i], [yv, [Ev, O1, Z1]], [/(webkit|khtml)\/([\w\.]+)/i], [yv, Ev], [/(navigator|netscape\d?)\/([-\w\.]+)/i], [[yv, "Netscape"], Ev], [/mobile vr; rv:([\w\.]+)\).+firefox/i], [Ev, [yv, B1 + " Reality"]], [/ekiohf.+(flow)\/([\w\.]+)/i, /(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, /(firefox)\/([\w\.]+)/i, /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, /(links) \(([\w\.]+)/i, /panasonic;(viera)/i], [yv, Ev], [/(cobalt)\/([\w\.]+)/i], [yv, [Ev, /master.|lts./, ""]]], cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i], [[wv, "amd64"]], [/(ia32(?=;))/i], [[wv, g$]], [/((?:i[346]|x)86)[;\)]/i], [[wv, "ia32"]], [/\b(aarch64|arm(v?8e?l?|_?64))\b/i], [[wv, "arm64"]], [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i], [[wv, "armhf"]], [/windows (ce|mobile); ppc;/i], [[wv, "arm"]], [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i], [[wv, /ower/, av, g$]], [/(sun4\w)[;\)]/i], [[wv, "sparc"]], [/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i], [[wv, g$]]], device: [[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i], [pv, [_v, M1], [Sv, Av]], [/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i, /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i], [pv, [_v, M1], [Sv, Cv]], [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i], [pv, [_v, Gv], [Sv, Cv]], [/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [pv, [_v, Gv], [Sv, Av]], [/(macintosh);/i], [pv, [_v, Gv]], [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [pv, [_v, U1], [Sv, Cv]], [/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i], [pv, [_v, j1], [Sv, Av]], [/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i], [pv, [_v, j1], [Sv, Cv]], [/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, /\b; (\w+) build\/hm\1/i, /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i], [[pv, /_/g, " "], [_v, k1], [Sv, Cv]], [/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i, /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i], [[pv, /_/g, " "], [_v, k1], [Sv, Av]], [/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i], [pv, [_v, "OPPO"], [Sv, Cv]], [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], [pv, [_v, "Vivo"], [Sv, Cv]], [/\b(rmx[1-3]\d{3})(?: bui|;|\))/i], [pv, [_v, "Realme"], [Sv, Cv]], [/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, /\bmot(?:orola)?[- ](\w*)/i, /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i], [pv, [_v, I1], [Sv, Cv]], [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], [pv, [_v, I1], [Sv, Av]], [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], [pv, [_v, P1], [Sv, Av]], [/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, /\blg-?([\d\w]+) bui/i], [pv, [_v, P1], [Sv, Cv]], [/(ideatab[-\w ]+)/i, /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i], [pv, [_v, "Lenovo"], [Sv, Av]], [/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i], [[pv, /_/g, " "], [_v, "Nokia"], [Sv, Cv]], [/(pixel c)\b/i], [pv, [_v, K1], [Sv, Av]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], [pv, [_v, K1], [Sv, Cv]], [/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i], [pv, [_v, H1], [Sv, Cv]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[pv, "Xperia Tablet"], [_v, H1], [Sv, Av]], [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [pv, [_v, "OnePlus"], [Sv, Cv]], [/(alexa)webm/i, /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i], [pv, [_v, Vv], [Sv, Av]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], [[pv, /(.+)/g, "Fire Phone $1"], [_v, Vv], [Sv, Cv]], [/(playbook);[-\w\),; ]+(rim)/i], [pv, _v, [Sv, Av]], [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], [pv, [_v, Xv], [Sv, Cv]], [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], [pv, [_v, Yv], [Sv, Av]], [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], [pv, [_v, Yv], [Sv, Cv]], [/(nexus 9)/i], [pv, [_v, "HTC"], [Sv, Av]], [/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i], [_v, [pv, /_/g, " "], [Sv, Cv]], [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], [pv, [_v, "Acer"], [Sv, Av]], [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], [pv, [_v, "Meizu"], [Sv, Cv]], [/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i], [pv, [_v, "Ulefone"], [Sv, Cv]], [/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i, /(hp) ([\w ]+\w)/i, /(asus)-?(\w+)/i, /(microsoft); (lumia[\w ]+)/i, /(lenovo)[-_ ]?([-\w]+)/i, /(jolla)/i, /(oppo) ?([\w ]+) bui/i], [_v, pv, [Sv, Cv]], [/(kobo)\s(ereader|touch)/i, /(archos) (gamepad2?)/i, /(hp).+(touchpad(?!.+tablet)|tablet)/i, /(kindle)\/([\w\.]+)/i, /(nook)[\w ]+build\/(\w+)/i, /(dell) (strea[kpr\d ]*[\dko])/i, /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, /(trinity)[- ]*(t\d{3}) bui/i, /(gigaset)[- ]+(q\w{1,9}) bui/i, /(vodafone) ([\w ]+)(?:\)| bui)/i], [_v, pv, [Sv, Av]], [/(surface duo)/i], [pv, [_v, D1], [Sv, Av]], [/droid [\d\.]+; (fp\du?)(?: b|\))/i], [pv, [_v, "Fairphone"], [Sv, Cv]], [/(u304aa)/i], [pv, [_v, "AT&T"], [Sv, Cv]], [/\bsie-(\w*)/i], [pv, [_v, "Siemens"], [Sv, Cv]], [/\b(rct\w+) b/i], [pv, [_v, "RCA"], [Sv, Av]], [/\b(venue[\d ]{2,7}) b/i], [pv, [_v, "Dell"], [Sv, Av]], [/\b(q(?:mv|ta)\w+) b/i], [pv, [_v, "Verizon"], [Sv, Av]], [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i], [pv, [_v, "Barnes & Noble"], [Sv, Av]], [/\b(tm\d{3}\w+) b/i], [pv, [_v, "NuVision"], [Sv, Av]], [/\b(k88) b/i], [pv, [_v, "ZTE"], [Sv, Av]], [/\b(nx\d{3}j) b/i], [pv, [_v, "ZTE"], [Sv, Cv]], [/\b(gen\d{3}) b.+49h/i], [pv, [_v, "Swiss"], [Sv, Cv]], [/\b(zur\d{3}) b/i], [pv, [_v, "Swiss"], [Sv, Av]], [/\b((zeki)?tb.*\b) b/i], [pv, [_v, "Zeki"], [Sv, Av]], [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i], [[_v, "Dragon Touch"], pv, [Sv, Av]], [/\b(ns-?\w{0,9}) b/i], [pv, [_v, "Insignia"], [Sv, Av]], [/\b((nxa|next)-?\w{0,9}) b/i], [pv, [_v, "NextBook"], [Sv, Av]], [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i], [[_v, "Voice"], pv, [Sv, Cv]], [/\b(lvtel\-)?(v1[12]) b/i], [[_v, "LvTel"], pv, [Sv, Cv]], [/\b(ph-1) /i], [pv, [_v, "Essential"], [Sv, Cv]], [/\b(v(100md|700na|7011|917g).*\b) b/i], [pv, [_v, "Envizen"], [Sv, Av]], [/\b(trio[-\w\. ]+) b/i], [pv, [_v, "MachSpeed"], [Sv, Av]], [/\btu_(1491) b/i], [pv, [_v, "Rotor"], [Sv, Av]], [/(shield[\w ]+) b/i], [pv, [_v, "Nvidia"], [Sv, Av]], [/(sprint) (\w+)/i], [_v, pv, [Sv, Cv]], [/(kin\.[onetw]{3})/i], [[pv, /\./g, " "], [_v, D1], [Sv, Cv]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], [pv, [_v, Q1], [Sv, Av]], [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], [pv, [_v, Q1], [Sv, Cv]], [/smart-tv.+(samsung)/i], [_v, [Sv, Ov]], [/hbbtv.+maple;(\d+)/i], [[pv, /^/, "SmartTV"], [_v, M1], [Sv, Ov]], [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], [[_v, P1], [Sv, Ov]], [/(apple) ?tv/i], [_v, [pv, Gv + " TV"], [Sv, Ov]], [/crkey/i], [[pv, Bv + "cast"], [_v, K1], [Sv, Ov]], [/droid.+aft(\w+)( bui|\))/i], [pv, [_v, Vv], [Sv, Ov]], [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i], [pv, [_v, U1], [Sv, Ov]], [/(bravia[\w ]+)( bui|\))/i], [pv, [_v, H1], [Sv, Ov]], [/(mitv-\w{5}) bui/i], [pv, [_v, k1], [Sv, Ov]], [/Hbbtv.*(technisat) (.*);/i], [_v, pv, [Sv, Ov]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i], [[_v, O$], [pv, O$], [Sv, Ov]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], [[Sv, Ov]], [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], [_v, pv, [Sv, xv]], [/droid.+; (shield) bui/i], [pv, [_v, "Nvidia"], [Sv, xv]], [/(playstation [345portablevi]+)/i], [pv, [_v, H1], [Sv, xv]], [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], [pv, [_v, D1], [Sv, xv]], [/((pebble))app/i], [_v, pv, [Sv, Lv]], [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i], [pv, [_v, Gv], [Sv, Lv]], [/droid.+; (glass) \d/i], [pv, [_v, K1], [Sv, Lv]], [/droid.+; (wt63?0{2,3})\)/i], [pv, [_v, Q1], [Sv, Lv]], [/(quest( 2| pro)?)/i], [pv, [_v, Y1], [Sv, Lv]], [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], [_v, [Sv, jv]], [/(aeobc)\b/i], [pv, [_v, Vv], [Sv, jv]], [/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i], [pv, [Sv, Cv]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], [pv, [Sv, Av]], [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], [[Sv, Av]], [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i], [[Sv, Cv]], [/(android[-\w\. ]{0,9});.+buil/i], [pv, [_v, "Generic"]]], engine: [[/windows.+ edge\/([\w\.]+)/i], [Ev, [yv, Qv + "HTML"]], [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], [Ev, [yv, "Blink"]], [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /ekioh(flow)\/([\w\.]+)/i, /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, /(icab)[\/ ]([23]\.[\d\.]+)/i, /\b(libweb)/i], [yv, Ev], [/rv\:([\w\.]{1,9})\b.+(gecko)/i], [Ev, yv]], os: [[/microsoft (windows) (vista|xp)/i], [yv, Ev], [/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i], [yv, [Ev, O1, Hv]], [/windows nt 6\.2; (arm)/i, /windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i, /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i], [[Ev, O1, Hv], [yv, "Windows"]], [/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i, /cfnetwork\/.+darwin/i], [[Ev, /_/g, "."], [yv, "iOS"]], [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i], [[yv, a$], [Ev, /_/g, "."]], [/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i], [Ev, yv], [/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i, /(tizen|kaios)[\/ ]([\w\.]+)/i, /\((series40);/i], [yv, Ev], [/\(bb(10);/i], [Ev, [yv, Xv]], [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i], [Ev, [yv, "Symbian"]], [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i], [Ev, [yv, B1 + " OS"]], [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i], [Ev, [yv, "webOS"]], [/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i], [Ev, [yv, "watchOS"]], [/crkey\/([\d\.]+)/i], [Ev, [yv, Bv + "cast"]], [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i], [[yv, r$], Ev], [/panasonic;(viera)/i, /(netrange)mmh/i, /(nettv)\/(\d+\.[\w\.]+)/i, /(nintendo|playstation) ([wids345portablevuch]+)/i, /(xbox); +xbox ([^\);]+)/i, /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, /(mint)[\/\(\) ]?(\w*)/i, /(mageia|vectorlinux)[; ]/i, /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, /(hurd|linux) ?([\w\.]*)/i, /(gnu) ?([\w\.]*)/i, /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, /(haiku) (\w+)/i], [yv, Ev], [/(sunos) ?([\w\.\d]*)/i], [[yv, "Solaris"], Ev], [/((?:open)?solaris)[-\/ ]?([\w\.]*)/i, /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, /(unix) ?([\w\.]*)/i], [yv, Ev]] }, Mv = function(Kv, c1) {
      if (typeof Kv === cv && (c1 = Kv, Kv = iv), !(this instanceof Mv))
        return new Mv(Kv, c1).getResult();
      var $1 = typeof ev !== uv && ev.navigator ? ev.navigator : iv, N1 = Kv || ($1 && $1.userAgent ? $1.userAgent : av), e$ = $1 && $1.userAgentData ? $1.userAgentData : iv, R1 = c1 ? S$(Jv, c1) : Jv, Zv = $1 && $1.userAgent == N1;
      return this.getBrowser = function() {
        var C1 = {};
        return C1[yv] = iv, C1[Ev] = iv, E$.call(C1, N1, R1.browser), C1[hv] = _$(C1[Ev]), Zv && $1 && $1.brave && typeof $1.brave.isBrave == lv && (C1[yv] = "Brave"), C1;
      }, this.getCPU = function() {
        var C1 = {};
        return C1[wv] = iv, E$.call(C1, N1, R1.cpu), C1;
      }, this.getDevice = function() {
        var C1 = {};
        return C1[_v] = iv, C1[pv] = iv, C1[Sv] = iv, E$.call(C1, N1, R1.device), Zv && !C1[Sv] && e$ && e$.mobile && (C1[Sv] = Cv), Zv && C1[pv] == "Macintosh" && $1 && typeof $1.standalone !== uv && $1.maxTouchPoints && $1.maxTouchPoints > 2 && (C1[pv] = "iPad", C1[Sv] = Av), C1;
      }, this.getEngine = function() {
        var C1 = {};
        return C1[yv] = iv, C1[Ev] = iv, E$.call(C1, N1, R1.engine), C1;
      }, this.getOS = function() {
        var C1 = {};
        return C1[yv] = iv, C1[Ev] = iv, E$.call(C1, N1, R1.os), Zv && !C1[yv] && e$ && e$.platform != "Unknown" && (C1[yv] = e$.platform.replace(/chrome os/i, r$).replace(/macos/i, a$)), C1;
      }, this.getResult = function() {
        return { ua: this.getUA(), browser: this.getBrowser(), engine: this.getEngine(), os: this.getOS(), device: this.getDevice(), cpu: this.getCPU() };
      }, this.getUA = function() {
        return N1;
      }, this.setUA = function(C1) {
        return N1 = typeof C1 === dv && C1.length > Dv ? O$(C1, Dv) : C1, this;
      }, this.setUA(N1), this;
    };
    Mv.VERSION = ov, Mv.BROWSER = d$([yv, Ev, hv]), Mv.CPU = d$([wv]), Mv.DEVICE = d$([pv, _v, Sv, xv, Cv, Ov, Av, Lv, jv]), Mv.ENGINE = Mv.OS = d$([yv, Ev]), rv.exports && (tv = rv.exports = Mv), tv.UAParser = Mv;
    var zv = typeof ev !== uv && (ev.jQuery || ev.Zepto);
    if (zv && !zv.ua) {
      var Wv = new Mv();
      zv.ua = Wv.getResult(), zv.ua.get = function() {
        return Wv.getUA();
      }, zv.ua.set = function(Kv) {
        Wv.setUA(Kv);
        var c1 = Wv.getResult();
        for (var $1 in c1)
          zv.ua[$1] = c1[$1];
      };
    }
  })(typeof window == "object" ? window : su);
})(Ql, Ql.exports);
var m_ = Ql.exports;
Object.defineProperty(Ye, "__esModule", { value: !0 });
function p_(rv) {
  return rv && typeof rv == "object" && "default" in rv ? rv.default : rv;
}
var Ur = React, Ot = p_(Ur), g_ = m_, Ni = new g_(), lr = Ni.getBrowser();
Ni.getCPU();
var $r = Ni.getDevice(), pi = Ni.getEngine(), Dr = Ni.getOS(), hn = Ni.getUA(), ut = function(rv) {
  var tv = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "none";
  return rv || tv;
}, Zu = function() {
  return typeof window < "u" && (window.navigator || navigator) ? window.navigator || navigator : !1;
}, Ju = function(rv) {
  var tv = Zu();
  return tv && tv.platform && (tv.platform.indexOf(rv) !== -1 || tv.platform === "MacIntel" && tv.maxTouchPoints > 1 && !window.MSStream);
};
function Ao(rv) {
  return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Ao = function(tv) {
    return typeof tv;
  } : Ao = function(tv) {
    return tv && typeof Symbol == "function" && tv.constructor === Symbol && tv !== Symbol.prototype ? "symbol" : typeof tv;
  }, Ao(rv);
}
function v_(rv, tv) {
  if (!(rv instanceof tv))
    throw new TypeError("Cannot call a class as a function");
}
function b_(rv, tv) {
  for (var ev = 0; ev < tv.length; ev++) {
    var iv = tv[ev];
    iv.enumerable = iv.enumerable || !1, iv.configurable = !0, "value" in iv && (iv.writable = !0), Object.defineProperty(rv, iv.key, iv);
  }
}
function y_(rv, tv, ev) {
  return tv && b_(rv.prototype, tv), rv;
}
function E_(rv, tv, ev) {
  return tv in rv ? Object.defineProperty(rv, tv, {
    value: ev,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : rv[tv] = ev, rv;
}
function wr() {
  return wr = Object.assign || function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        Object.prototype.hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, wr.apply(this, arguments);
}
function Bf(rv, tv) {
  var ev = Object.keys(rv);
  if (Object.getOwnPropertySymbols) {
    var iv = Object.getOwnPropertySymbols(rv);
    tv && (iv = iv.filter(function(ov) {
      return Object.getOwnPropertyDescriptor(rv, ov).enumerable;
    })), ev.push.apply(ev, iv);
  }
  return ev;
}
function x_(rv) {
  for (var tv = 1; tv < arguments.length; tv++) {
    var ev = arguments[tv] != null ? arguments[tv] : {};
    tv % 2 ? Bf(ev, !0).forEach(function(iv) {
      E_(rv, iv, ev[iv]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(rv, Object.getOwnPropertyDescriptors(ev)) : Bf(ev).forEach(function(iv) {
      Object.defineProperty(rv, iv, Object.getOwnPropertyDescriptor(ev, iv));
    });
  }
  return rv;
}
function w_(rv, tv) {
  if (typeof tv != "function" && tv !== null)
    throw new TypeError("Super expression must either be null or a function");
  rv.prototype = Object.create(tv && tv.prototype, {
    constructor: {
      value: rv,
      writable: !0,
      configurable: !0
    }
  }), tv && tu(rv, tv);
}
function eu(rv) {
  return eu = Object.setPrototypeOf ? Object.getPrototypeOf : function(tv) {
    return tv.__proto__ || Object.getPrototypeOf(tv);
  }, eu(rv);
}
function tu(rv, tv) {
  return tu = Object.setPrototypeOf || function(ev, iv) {
    return ev.__proto__ = iv, ev;
  }, tu(rv, tv);
}
function T_(rv, tv) {
  if (rv == null)
    return {};
  var ev = {}, iv = Object.keys(rv), ov, av;
  for (av = 0; av < iv.length; av++)
    ov = iv[av], !(tv.indexOf(ov) >= 0) && (ev[ov] = rv[ov]);
  return ev;
}
function zr(rv, tv) {
  if (rv == null)
    return {};
  var ev = T_(rv, tv), iv, ov;
  if (Object.getOwnPropertySymbols) {
    var av = Object.getOwnPropertySymbols(rv);
    for (ov = 0; ov < av.length; ov++)
      iv = av[ov], !(tv.indexOf(iv) >= 0) && Object.prototype.propertyIsEnumerable.call(rv, iv) && (ev[iv] = rv[iv]);
  }
  return ev;
}
function Co(rv) {
  if (rv === void 0)
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  return rv;
}
function S_(rv, tv) {
  return tv && (typeof tv == "object" || typeof tv == "function") ? tv : Co(rv);
}
var Rr = {
  Mobile: "mobile",
  Tablet: "tablet",
  SmartTv: "smarttv",
  Console: "console",
  Wearable: "wearable",
  Browser: void 0
}, Pr = {
  Chrome: "Chrome",
  Firefox: "Firefox",
  Opera: "Opera",
  Yandex: "Yandex",
  Safari: "Safari",
  InternetExplorer: "Internet Explorer",
  Edge: "Edge",
  Chromium: "Chromium",
  Ie: "IE",
  MobileSafari: "Mobile Safari",
  EdgeChromium: "Edge Chromium",
  MIUI: "MIUI Browser",
  SamsungBrowser: "Samsung Browser"
}, Fi = {
  IOS: "iOS",
  Android: "Android",
  WindowsPhone: "Windows Phone",
  Windows: "Windows",
  MAC_OS: "Mac OS"
}, A_ = {
  isMobile: !1,
  isTablet: !1,
  isBrowser: !1,
  isSmartTV: !1,
  isConsole: !1,
  isWearable: !1
}, C_ = function(rv) {
  switch (rv) {
    case Rr.Mobile:
      return {
        isMobile: !0
      };
    case Rr.Tablet:
      return {
        isTablet: !0
      };
    case Rr.SmartTv:
      return {
        isSmartTV: !0
      };
    case Rr.Console:
      return {
        isConsole: !0
      };
    case Rr.Wearable:
      return {
        isWearable: !0
      };
    case Rr.Browser:
      return {
        isBrowser: !0
      };
    default:
      return A_;
  }
}, R_ = function(rv, tv, ev, iv, ov) {
  return {
    isBrowser: rv,
    browserMajorVersion: ut(tv.major),
    browserFullVersion: ut(tv.version),
    browserName: ut(tv.name),
    engineName: ut(ev.name),
    engineVersion: ut(ev.version),
    osName: ut(iv.name),
    osVersion: ut(iv.version),
    userAgent: ut(ov)
  };
}, Uf = function(rv, tv, ev, iv) {
  return x_({}, rv, {
    vendor: ut(tv.vendor),
    model: ut(tv.model),
    os: ut(ev.name),
    osVersion: ut(ev.version),
    ua: ut(iv)
  });
}, __ = function(rv, tv, ev, iv) {
  return {
    isSmartTV: rv,
    engineName: ut(tv.name),
    engineVersion: ut(tv.version),
    osName: ut(ev.name),
    osVersion: ut(ev.version),
    userAgent: ut(iv)
  };
}, I_ = function(rv, tv, ev, iv) {
  return {
    isConsole: rv,
    engineName: ut(tv.name),
    engineVersion: ut(tv.version),
    osName: ut(ev.name),
    osVersion: ut(ev.version),
    userAgent: ut(iv)
  };
}, P_ = function(rv, tv, ev, iv) {
  return {
    isWearable: rv,
    engineName: ut(tv.name),
    engineVersion: ut(tv.version),
    osName: ut(ev.name),
    osVersion: ut(ev.version),
    userAgent: ut(iv)
  };
}, An = C_($r.type);
function O_() {
  var rv = An.isBrowser, tv = An.isMobile, ev = An.isTablet, iv = An.isSmartTV, ov = An.isConsole, av = An.isWearable;
  if (rv)
    return R_(rv, lr, pi, Dr, hn);
  if (iv)
    return __(iv, pi, Dr, hn);
  if (ov)
    return I_(ov, pi, Dr, hn);
  if (tv || ev)
    return Uf(An, $r, Dr, hn);
  if (av)
    return P_(av, pi, Dr, hn);
}
var L_ = function() {
  return $r.type === Rr.Mobile;
}, k_ = function() {
  return $r.type === Rr.Tablet;
}, D_ = function() {
  switch ($r.type) {
    case Rr.Mobile:
    case Rr.Tablet:
      return !0;
    default:
      return !1;
  }
}, Qu = function() {
  return typeof hn == "string" && hn.indexOf("Edg/") !== -1;
}, N_ = function() {
  return $r.type === Rr.SmartTv;
}, Y0 = function() {
  return $r.type === Rr.Browser;
}, F_ = function() {
  return $r.type === Rr.Wearable;
}, M_ = function() {
  return $r.type === Rr.Console;
}, $_ = function() {
  return Dr.name === Fi.Android;
}, B_ = function() {
  return Dr.name === Fi.Windows;
}, U_ = function() {
  return Dr.name === Fi.MAC_OS;
}, j_ = function() {
  return Dr.name === Fi.WindowsPhone;
}, H_ = function() {
  return Dr.name === Fi.IOS;
}, G_ = function() {
  return lr.name === Pr.Chrome;
}, z_ = function() {
  return lr.name === Pr.Firefox;
}, V_ = function() {
  return lr.name === Pr.Chromium;
}, X0 = function() {
  return lr.name === Pr.Edge;
}, W_ = function() {
  return lr.name === Pr.Yandex;
}, K_ = function() {
  return lr.name === Pr.Safari || lr.name === Pr.MobileSafari;
}, Y_ = function() {
  return lr.name === Pr.MobileSafari;
}, X_ = function() {
  return lr.name === Pr.Opera;
}, q_ = function() {
  return lr.name === Pr.InternetExplorer || lr.name === Pr.Ie;
}, Z_ = function() {
  return lr.name === Pr.MIUI;
}, J_ = function() {
  return lr.name === Pr.SamsungBrowser;
}, Q_ = function() {
  var rv = Zu(), tv = rv && rv.userAgent && rv.userAgent.toLowerCase();
  return typeof tv == "string" ? /electron/.test(tv) : !1;
}, eI = function() {
  var rv = Zu();
  return rv && (/iPad|iPhone|iPod/.test(rv.platform) || rv.platform === "MacIntel" && rv.maxTouchPoints > 1) && !window.MSStream;
}, $a = function() {
  return Ju("iPad");
}, tI = function() {
  return Ju("iPhone");
}, rI = function() {
  return Ju("iPod");
}, nI = function() {
  return ut(lr.version);
}, iI = function() {
  return ut(lr.major);
}, aI = function() {
  return ut(Dr.version);
}, oI = function() {
  return ut(Dr.name);
}, sI = function() {
  return ut(lr.name);
}, lI = function() {
  return ut($r.vendor);
}, uI = function() {
  return ut($r.model);
}, cI = function() {
  return ut(pi.name);
}, dI = function() {
  return ut(pi.version);
}, fI = function() {
  return ut(hn);
}, hI = function() {
  return ut($r.type, "browser");
}, q0 = N_(), Z0 = M_(), J0 = F_(), mI = Y_() || $a(), pI = V_(), ec = D_() || $a(), Q0 = L_(), eg = k_() || $a(), tg = Y0(), gI = Y0(), rg = $_(), ng = j_(), ig = H_() || $a(), vI = G_(), bI = z_(), yI = K_(), EI = X_(), ag = q_(), xI = aI(), wI = oI(), TI = nI(), SI = iI(), AI = sI(), CI = lI(), RI = uI(), _I = cI(), II = dI(), PI = fI(), OI = X0() || Qu(), LI = W_(), kI = hI(), DI = eI(), NI = $a(), FI = tI(), MI = rI(), $I = Q_(), BI = Qu(), UI = X0() && !Qu(), jI = B_(), HI = U_(), GI = Z_(), zI = J_(), VI = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return rg ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, WI = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return tg ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, KI = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return ag ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, YI = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return ig ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, XI = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return ec ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, qI = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return eg ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, ZI = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return ng ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, JI = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return Q0 ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, QI = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return q0 ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, eP = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return Z0 ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, tP = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = zr(rv, ["renderWithFragment", "children", "viewClassName", "style"]);
  return J0 ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, av), ev) : null;
}, rP = function(rv) {
  var tv = rv.renderWithFragment, ev = rv.children, iv = rv.viewClassName, ov = rv.style, av = rv.condition, sv = zr(rv, ["renderWithFragment", "children", "viewClassName", "style", "condition"]);
  return av ? tv ? Ot.createElement(Ur.Fragment, null, ev) : Ot.createElement("div", wr({
    className: iv,
    style: ov
  }, sv), ev) : null;
};
function nP(rv) {
  return /* @__PURE__ */ function(tv) {
    w_(ev, tv);
    function ev(iv) {
      var ov;
      return v_(this, ev), ov = S_(this, eu(ev).call(this, iv)), ov.isEventListenerAdded = !1, ov.handleOrientationChange = ov.handleOrientationChange.bind(Co(ov)), ov.onOrientationChange = ov.onOrientationChange.bind(Co(ov)), ov.onPageLoad = ov.onPageLoad.bind(Co(ov)), ov.state = {
        isLandscape: !1,
        isPortrait: !1
      }, ov;
    }
    return y_(ev, [{
      key: "handleOrientationChange",
      value: function() {
        this.isEventListenerAdded || (this.isEventListenerAdded = !0);
        var iv = window.innerWidth > window.innerHeight ? 90 : 0;
        this.setState({
          isPortrait: iv === 0,
          isLandscape: iv === 90
        });
      }
    }, {
      key: "onOrientationChange",
      value: function() {
        this.handleOrientationChange();
      }
    }, {
      key: "onPageLoad",
      value: function() {
        this.handleOrientationChange();
      }
    }, {
      key: "componentDidMount",
      value: function() {
        (typeof window > "u" ? "undefined" : Ao(window)) !== void 0 && ec && (this.isEventListenerAdded ? window.removeEventListener("load", this.onPageLoad, !1) : (this.handleOrientationChange(), window.addEventListener("load", this.onPageLoad, !1)), window.addEventListener("resize", this.onOrientationChange, !1));
      }
    }, {
      key: "componentWillUnmount",
      value: function() {
        window.removeEventListener("resize", this.onOrientationChange, !1);
      }
    }, {
      key: "render",
      value: function() {
        return Ot.createElement(rv, wr({}, this.props, {
          isLandscape: this.state.isLandscape,
          isPortrait: this.state.isPortrait
        }));
      }
    }]), ev;
  }(Ot.Component);
}
Ye.AndroidView = VI;
Ye.BrowserTypes = Pr;
Ye.BrowserView = WI;
Ye.ConsoleView = eP;
Ye.CustomView = rP;
Ye.IEView = KI;
Ye.IOSView = YI;
Ye.MobileOnlyView = JI;
Ye.MobileView = XI;
Ye.OsTypes = Fi;
Ye.SmartTVView = QI;
Ye.TabletView = qI;
Ye.WearableView = tP;
Ye.WinPhoneView = ZI;
Ye.browserName = AI;
Ye.browserVersion = SI;
Ye.deviceDetect = O_;
Ye.deviceType = kI;
Ye.engineName = _I;
Ye.engineVersion = II;
Ye.fullBrowserVersion = TI;
Ye.getUA = PI;
Ye.isAndroid = rg;
Ye.isBrowser = tg;
Ye.isChrome = vI;
Ye.isChromium = pI;
Ye.isConsole = Z0;
Ye.isDesktop = gI;
Ye.isEdge = OI;
Ye.isEdgeChromium = BI;
Ye.isElectron = $I;
Ye.isFirefox = bI;
Ye.isIE = ag;
Ye.isIOS = ig;
Ye.isIOS13 = DI;
Ye.isIPad13 = NI;
Ye.isIPhone13 = FI;
Ye.isIPod13 = MI;
Ye.isLegacyEdge = UI;
Ye.isMIUI = GI;
Ye.isMacOs = HI;
Ye.isMobile = ec;
Ye.isMobileOnly = Q0;
Ye.isMobileSafari = mI;
Ye.isOpera = EI;
Ye.isSafari = yI;
Ye.isSamsungBrowser = zI;
Ye.isSmartTV = q0;
Ye.isTablet = eg;
Ye.isWearable = J0;
Ye.isWinPhone = ng;
Ye.isWindows = jI;
Ye.isYandex = LI;
Ye.mobileModel = RI;
Ye.mobileVendor = CI;
Ye.osName = wI;
Ye.osVersion = xI;
Ye.withOrientationChange = nP;
function ve(rv, tv) {
  var ev = {};
  for (var iv in rv)
    Object.prototype.hasOwnProperty.call(rv, iv) && tv.indexOf(iv) < 0 && (ev[iv] = rv[iv]);
  if (rv != null && typeof Object.getOwnPropertySymbols == "function") {
    var ov = 0;
    for (iv = Object.getOwnPropertySymbols(rv); ov < iv.length; ov++)
      tv.indexOf(iv[ov]) < 0 && Object.prototype.propertyIsEnumerable.call(rv, iv[ov]) && (ev[iv[ov]] = rv[iv[ov]]);
  }
  return ev;
}
const iP = reactExports.forwardRef(function(rv, tv) {
  const ev = rv, { state: { visible: iv, isDisabled: ov, isReadOnly: av, show: sv, pickerId: lv, popoverId: uv, segmentFocus: cv }, onKeyDown: dv, onClick: hv, onMouseDown: pv } = ev, yv = ve(ev, ["state", "onKeyDown", "onClick", "onMouseDown"]), Sv = reactExports.useCallback(() => {
    iE() && sv();
  }, [sv]), _v = Zh({ onKey: dv, keyMap: (wv) => {
    const xv = wv.altKey;
    return { ArrowDown: () => {
      xv && sv();
    } };
  } }), Ev = reactExports.useCallback((wv) => {
    wv.stopPropagation(), cv == null || cv();
  }, [cv]);
  return React.createElement("div", Object.assign({ ref: tv, id: lv, role: "button", "aria-haspopup": "dialog", "aria-expanded": iv, "aria-owns": iv ? uv : void 0, "aria-disabled": ti(ov), "aria-readonly": ti(av), onKeyDown: Fr(dv, _v), onClick: Fr(hv, Sv), onMouseDown: Fr(pv, Ev) }, yv));
}), aP = te({ bg: "$primary", boxShadow: "$overlay.center", border: "$neutral", borderRadius: "$base" }), oP = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", state: iv } = rv, ov = ve(rv, ["className", "state"]);
  return React.createElement(Aw, Object.assign({ ref: tv, className: Pe(aP, ev), id: iv.popoverId, state: iv, "data-test": "hey" }, ov));
}), sP = reactExports.forwardRef(function(rv, tv) {
  const { state: ev, onMouseDown: iv } = rv, ov = ve(rv, ["state", "onMouseDown"]);
  return React.createElement(Rw, Object.assign({ ref: tv, state: ev, tabIndex: -1, disabled: ev.isDisabled || ev.isReadOnly, onMouseDown: Fr(iv, (av) => {
    av.stopPropagation();
  }) }, ov));
});
function or(rv) {
  const { tone: tv, variant: ev } = rv;
  return { color: `action.${tv}.${ev}`, bg: `action.${tv}.${ev}`, ":hover": { color: `action.${tv}.${ev}Hover`, bg: `action.${tv}.${ev}Hover` }, ":active": { color: `action.${tv}.${ev}Pressed`, bg: `action.${tv}.${ev}Pressed` }, ":disabled": { bg: ev === "tertiary" ? "transparent" : "$disabled", color: "$disabled" }, ":focus": { outline: "none", boxShadow: "none" }, ":focus-visible": { outline: "none", boxShadow: `$ring.${tv}` }, ":focus-visible:not(:active)": { color: `action.${tv}.${ev}Hover`, bg: `action.${tv}.${ev}Hover` } };
}
const og = te({ text: "$action1", border: "none", borderRadius: "$base", cursor: "pointer", position: "relative", [oe("variant", "primary")]: or({ tone: "main", variant: "primary" }), [oe("variant", "secondary")]: or({ tone: "main", variant: "secondary" }), [oe("variant", "tertiary")]: or({ tone: "main", variant: "tertiary" }), [oe("variant", "critical")]: or({ tone: "critical", variant: "primary" }), [oe("variant", "criticalSecondary")]: or({ tone: "critical", variant: "secondary" }), [oe("variant", "criticalTertiary")]: or({ tone: "critical", variant: "tertiary" }), [oe("variant", "neutralTertiary")]: or({ tone: "neutral", variant: "tertiary" }), [oe("size", "normal")]: { padding: "$space-2 $space-3", height: "2.25rem" }, [oe("size", "large")]: { padding: "$space-3 $space-4", height: "2.75rem" }, [oe({ size: "normal", "bleed-y": !0 })]: { marginY: Hr("$space-2") }, [oe({ size: "large", "bleed-y": !0 })]: { marginY: Hr("$space-3") }, [oe({ size: "normal", "bleed-x": !0 })]: { marginX: Hr("$space-3") }, [oe({ size: "large", "bleed-x": !0 })]: { marginX: Hr("$space-4") } }), lP = te({ text: "$action1", [oe("loading", !0)]: { visibility: "hidden" }, [oe("loading", !1)]: { visibility: "visible" }, [oe("icon-position", "start")]: { flexDirection: "row", svg: { marginRight: "$space-1" } }, [oe("icon-position", "end")]: { flexDirection: "row-reverse", svg: { marginLeft: "$space-05" } } }), uP = te({ text: "$action1", position: "absolute", bottom: "$space-0", top: "$space-0", left: "$space-0", right: "$space-0", svg: { size: "1.3rem" } }), cP = te({ maxWidth: "19.75rem", display: "flex", flexDirection: "column", padding: "$space-4 $space-5", '[aria-disabled="true"]': { color: "$disabled", bg: "transparent" }, "[aria-selected] > button": { bg: "$action.main.primary", color: "$action.main.primary" } }), dP = te({ display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", marginBottom: "$space-4" }), fP = te(Object.assign(Object.assign({ text: "$action1", border: "none", borderRadius: "$base", cursor: "pointer", position: "relative", height: "2.25rem" }, or({ tone: "neutral", variant: "tertiary" })), { display: "flex", alignItems: "center", justifyContent: "center" })), hP = te({ size: "2.25rem" }), mP = te(Object.assign(Object.assign({ position: "relative", height: "2.25rem" }, or({ tone: "neutral", variant: "tertiary" })), { padding: "$space-0", marginBottom: "$space-05", text: "$action1", border: "none", cursor: "pointer", size: "2.25rem", borderRadius: "100%", display: "flex", alignItems: "center", justifyContent: "center" })), pP = te({ text: "$title1" }), gP = te({ text: "$body", textDecoration: "none", color: "$secondary", paddingY: "$space-2", textAlign: "center", size: "2.25rem" }), jf = reactExports.forwardRef(function(rv, tv) {
  const { handler: ev, state: { focusNextMonth: iv, focusPreviousMonth: ov, focusPreviousYear: av, focusNextYear: sv }, onClick: lv, className: uv = "" } = rv, cv = ve(rv, ["handler", "state", "onClick", "className"]), dv = reactExports.useMemo(() => ({ nextMonth: { handle: iv, ariaLabel: "Next Month" }, previousMonth: { handle: ov, ariaLabel: "Previous Month" }, nextYear: { handle: sv, ariaLabel: "Next Year" }, previousYear: { handle: av, ariaLabel: "Previous Year" } })[ev], [iv, ov, sv, av]);
  return React.createElement(lm, Object.assign({ ref: tv, className: Pe(fP, uv), "aria-label": dv == null ? void 0 : dv.ariaLabel, onClick: Fr(lv, dv == null ? void 0 : dv.handle) }, cv));
}), vP = reactExports.forwardRef(function(rv, tv) {
  const { state: { isReadOnly: ev, isDisabled: iv, setFocused: ov, selectFocusedDate: av, focusPreviousYear: sv, focusPreviousMonth: lv, focusNextYear: uv, focusNextMonth: cv, focusEndOfMonth: dv, focusStartOfMonth: hv, focusNextDay: pv, focusPreviousDay: yv, focusNextWeek: Sv, focusPreviousWeek: _v, calendarId: Ev }, onKeyDown: wv, onBlur: xv, onBlur: Cv } = rv, Av = ve(rv, ["state", "onKeyDown", "onBlur", "onBlur"]), Ov = Zh({ onKeyDown: wv, keyMap: (Lv) => {
    const jv = Lv.shiftKey;
    return { " ": av, Enter: av, End: dv, Home: hv, ArrowLeft: yv, ArrowUp: _v, ArrowRight: pv, ArrowDown: Sv, PageUp: () => {
      jv ? sv() : lv();
    }, PageDown: () => {
      jv ? uv() : cv();
    } };
  } });
  return React.createElement("table", Object.assign({ ref: tv, role: "grid", "aria-labelledby": Ev, "aria-readonly": ti(ev), "aria-disabled": ti(iv), onKeyDown: Fr(wv, Ov), onFocus: Fr(xv, () => ov(!0)), onBlur: Fr(Cv, () => ov(!1)) }, Av));
}), bP = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", format: iv = { month: "long", year: "numeric" }, state: { calendarId: ov, currentMonth: av } } = rv, sv = ve(rv, ["className", "format", "state"]);
  return React.createElement("h2", Object.assign({ ref: tv, id: ov, "aria-live": "polite", className: Pe(pP, ev) }, sv), ba(iv).format(av ?? /* @__PURE__ */ new Date()));
}), yP = reactExports.forwardRef(function(rv, tv) {
  var ev;
  const { state: { weekDays: iv }, dayIndex: ov, className: av = "" } = rv, sv = ve(rv, ["state", "dayIndex", "className"]);
  return React.createElement("th", Object.assign({ ref: tv, "aria-label": (ev = iv == null ? void 0 : iv[ov]) === null || ev === void 0 ? void 0 : ev.title, className: Pe(gP, av) }, sv));
}), EP = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("header", Object.assign({ ref: tv, className: Pe(dP, ev) }, iv));
}), xP = reactExports.forwardRef(function(rv, tv) {
  const { date: ev, state: { dateValue: iv }, className: ov = "" } = rv, av = ve(rv, ["date", "state", "className"]), sv = !!iv && ra(ev, iv), lv = { "data-weekend": nE(gS(ev)) };
  return React.createElement("td", Object.assign({ ref: tv, role: "gridcell", className: Pe(hP, ov), "aria-selected": ti(sv) }, lv, av));
}), wP = reactExports.forwardRef(function(rv, tv) {
  const { date: ev, state: { isDisabled: iv, month: ov, isInvalidDateRange: av, dateValue: sv, focusedDate: lv, isFocused: uv, selectDate: cv, setFocusedDate: dv }, disabled: hv, onClick: pv, onFocus: yv, className: Sv = "" } = rv, _v = ve(rv, ["date", "state", "disabled", "onClick", "onFocus", "className"]), Ev = reactExports.useRef(null), wv = ev.getMonth() === ov, xv = iv || !wv || av(ev), Cv = hv || xv, Av = !!sv && ra(ev, sv), Ov = uv && lv && ra(ev, lv), Lv = ra(ev, /* @__PURE__ */ new Date());
  reactExports.useEffect(() => {
    Ov && Ev.current && sE(Ev.current);
  }, [ev, lv, Ov, Ev]);
  const jv = reactExports.useCallback(() => {
    Cv || (cv(ev), dv(ev));
  }, [ev, Cv, cv, dv]), Dv = reactExports.useCallback(() => {
    Cv || dv(ev);
  }, [ev, Cv, dv]), Vv = ba({ weekday: "long", day: "numeric", month: "long", year: "numeric" }), Gv = Cv ? void 0 : ra(ev, lv ?? /* @__PURE__ */ new Date()) ? 0 : -1;
  return React.createElement(lm, Object.assign({ ref: ln(tv, Ev), "aria-label": function() {
    const Yv = Vv.format(ev);
    return `${Lv ? "Today, " : ""}${Yv}${Av ? " selected" : ""}`;
  }(), className: Pe(mP, Sv), onClick: Fr(pv, jv), onFocus: Fr(yv, Dv), disabled: Cv, tabIndex: Gv }, _v), ba({ day: "numeric" }).format(ev));
}), TP = te({ textDecoration: "none", text: "$body" }), SP = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]);
  return React.createElement("abbr", Object.assign({ ref: tv, className: Pe(TP, ev) }, ov), iv);
}), AP = reactExports.forwardRef(function(rv, tv) {
  var ev, iv;
  const { state: ov, className: av = "" } = rv, sv = ve(rv, ["state", "className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(cP, av), role: "group", "aria-labelledby": ov.calendarId }, sv), React.createElement(EP, null, React.createElement(jf, { state: ov, handler: "previousMonth" }, React.createElement(Cm, null)), React.createElement(bP, { state: ov }), React.createElement(jf, { state: ov, handler: "nextMonth" }, React.createElement(Rm, null))), React.createElement(vP, { state: ov }, React.createElement("thead", null, React.createElement("tr", null, (ev = ov == null ? void 0 : ov.weekDays) === null || ev === void 0 ? void 0 : ev.map((lv, uv) => React.createElement(yP, { scope: "col", key: uv, dayIndex: uv, state: ov }, React.createElement(SP, { title: lv.title }, lv.abbr))))), React.createElement("tbody", null, (iv = ov == null ? void 0 : ov.daysInMonth) === null || iv === void 0 ? void 0 : iv.map((lv, uv) => React.createElement("tr", { key: uv }, lv.map((cv, dv) => React.createElement(xP, { state: ov, date: cv, key: dv }, React.createElement(wP, { state: ov, date: cv }))))))));
});
reactExports.forwardRef(function(rv, tv) {
  const { state: { pickerState: ev, calendarState: iv } } = rv, ov = ve(rv, ["state"]);
  return React.createElement(oP, Object.assign({ ref: tv, state: ev }, ov), React.createElement(AP, { state: iv }));
});
const CP = te({ [oe("variant", "pageTitle")]: { text: "$pageTitle" }, [oe("variant", "title1")]: { text: "$title1" }, [oe("variant", "title2")]: { text: "$title2" }, [oe("variant", "action1")]: { text: "$action1" }, [oe("variant", "action2")]: { text: "$action2" }, [oe("variant", "display")]: { text: "$display" }, [oe("variant", "body")]: { text: "$body" }, [oe("variant", "detail")]: { text: "$detail" }, [oe("tone", "primary")]: { color: "$primary" }, [oe("tone", "secondary")]: { color: "$secondary" }, [oe("tone", "info")]: { color: "$info" }, [oe("tone", "positive")]: { color: "$positive" }, [oe("tone", "critical")]: { color: "$critical" }, [oe("tone", "warning")]: { color: "$warning" } }), Nr = reactExports.forwardRef(function(rv, tv) {
  const { children: ev, className: iv = "", variant: ov = "body", tone: av = "primary" } = rv, sv = ve(rv, ["children", "className", "variant", "tone"]);
  return React.createElement("span", Object.assign({ ref: tv, "data-variant": ov, "data-tone": av, className: Pe(CP, iv) }, sv), ev);
}), RP = te({ text: "$body" }), Ba = reactExports.forwardRef((rv, tv) => {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("label", Object.assign({ ref: tv, className: Pe(RP, ev) }, iv));
});
function Cn(rv, tv) {
  const { mobile: ev, tablet: iv, desktop: ov, widescreen: av } = tv || {};
  return { [`--${rv}-mobile`]: ev, [`--${rv}-tablet`]: iv, [`--${rv}-desktop`]: ov, [`--${rv}-widescreen`]: av };
}
const _P = te({ display: "flex", flexBasis: "var(--basis-mobile)", flexDirection: "var(--direction-mobile)", flexWrap: "var(--wrap-mobile)", alignItems: "var(--align-mobile)", justifyContent: "var(--justify-mobile)", flexGrow: "var(--grow-mobile)", flexShrink: "var(--shrink-mobile)", order: "var(--order-mobile)", "@tablet": { flexBasis: "var(--basis-tablet)", flexDirection: "var(--direction-tablet)", flexWrap: "var(--wrap-tablet)", alignItems: "var(--align-tablet)", justifyContent: "var(--justify-tablet)", flexGrow: "var(--grow-tablet)", flexShrink: "var(--shrink-tablet)", order: "var(--order-tablet)" }, "@desktop": { flexBasis: "var(--basis-desktop)", flexDirection: "var(--direction-desktop)", flexWrap: "var(--wrap-desktop)", alignItems: "var(--align-desktop)", justifyContent: "var(--justify-desktop)", flexGrow: "var(--grow-desktop)", flexShrink: "var(--shrink-desktop)", order: "var(--order-desktop)" }, "@widescreen": { flexBasis: "var(--basis-widescreen)", flexDirection: "var(--direction-widescreen)", flexWrap: "var(--wrap-widescreen)", alignItems: "var(--align-widescreen)", justifyContent: "var(--justify-widescreen)", flexGrow: "var(--grow-widescreen)", flexShrink: "var(--shrink-widescreen)", order: "var(--order-widescreen)" } }), IP = te({ flex: 1, justifySelf: "stretch", alignSelf: "stretch" }), Bn = reactExports.forwardRef((rv, tv) => {
  const { basis: ev, direction: iv, wrap: ov, align: av, justify: sv, grow: lv, shrink: uv, order: cv, className: dv = "" } = rv, hv = ve(rv, ["basis", "direction", "wrap", "align", "justify", "grow", "shrink", "order", "className"]), pv = (yv = { basis: Rn(ev), direction: Rn(iv), wrap: Rn(ov), align: Rn(av), justify: Rn(sv), grow: Rn(lv), shrink: Rn(uv), order: Rn(cv) }, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, Cn("basis", yv.basis)), Cn("direction", yv.direction)), Cn("wrap", yv.wrap)), Cn("align", yv.align)), Cn("justify", yv.justify)), Cn("grow", yv.grow)), Cn("shrink", yv.shrink)), Cn("order", yv.order)));
  var yv;
  return React.createElement("div", Object.assign({ ref: tv, style: pv, className: Pe(dv, _P) }, hv));
});
function Rn(rv) {
  if (!rv)
    return rv;
  const tv = pt(rv, "mobile", rv), ev = pt(rv, "tablet", tv), iv = pt(rv, "desktop", ev);
  return { mobile: tv, tablet: ev, desktop: iv, widescreen: pt(rv, "widescreen", iv) };
}
const PP = reactExports.forwardRef((rv, tv) => {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(ev, IP) }, iv));
});
function cl(rv) {
  return rv = rv.replace(/[\u0660-\u0669]/g, (tv) => String(tv.charCodeAt(0) - 1632)).replace(/[\u06f0-\u06f9]/g, (tv) => String(tv.charCodeAt(0) - 1776)), Number(rv);
}
function dl(rv) {
  return /^[0-9\u0660-\u0669\u06f0-\u06f9]+$/.test(rv);
}
const OP = te({ display: "flex" }), LP = te({ cursor: "pointer", text: "$body", paddingY: "$space-0", bg: "$action.neutral.tertiary", color: "$action.neutral.tertiary", ":disabled": { color: "$disabled" }, [oe("literal", "true")]: { paddingX: "$space-05" }, [oe("literal", "false")]: { paddingX: "$space-1", ":hover": { bg: "$action.neutral.tertiaryHover", color: "$action.neutral.tertiaryHover" }, ":active": { bg: "$action.neutral.tertiaryPressed", color: "$action.neutral.tertiaryPressed" }, ":focus": { bg: "$action.neutral.tertiaryHover", color: "$action.netural.tertiaryHover", outline: "none" } } }), kP = reactExports.forwardRef(function(rv, tv) {
  const { isDisabled: ev, isReadOnly: iv, isRequired: ov, segment: av, state: sv, onMouseDown: lv, onKeyDown: uv, onFocus: cv, className: dv = "" } = rv, hv = ve(rv, ["isDisabled", "isReadOnly", "isRequired", "segment", "state", "onMouseDown", "onKeyDown", "onFocus", "className"]), { next: pv, dateFormatter: yv, increment: Sv, decrement: _v, incrementPage: Ev, decrementPage: wv, setSegment: xv } = sv, Cv = reactExports.useMemo(() => ev || iv || av.type === "literal", [ev, iv, av.type]), { id: Av } = Au({ baseId: "datepicker-segment" }), [Ov, Lv] = reactExports.useState(""), jv = ba({ month: "long" }), Dv = ba({ hour: "numeric", hour12: yv.resolvedOptions().hour12 }), { spinButtonProps: Vv } = HS({ value: av.value, textValue: Hf(av, sv, { month: jv, hour: Dv }), minValue: av.minValue, maxValue: av.maxValue, isDisabled: ev, isReadOnly: iv, isRequired: ov, onIncrement: () => Sv(av.type), onDecrement: () => _v(av.type), onIncrementPage: () => Ev(av.type), onDecrementPage: () => wv(av.type), onIncrementToMax: () => xv(av.type, av.maxValue), onDecrementToMin: () => xv(av.type, av.minValue) }), Gv = reactExports.useCallback((B1) => {
    const K1 = Ov.concat(B1);
    if (av.type === "dayPeriod")
      B1 === "a" ? sv.setSegment("dayPeriod", 0) : B1 === "p" && sv.setSegment("dayPeriod", 12), sv.next();
    else {
      if (!dl(K1))
        return;
      const j1 = cl(K1);
      let P1 = j1;
      av.type === "hour" && sv.dateFormatter.resolvedOptions().hour12 && j1 === 12 ? P1 = 0 : j1 > av.maxValue && (P1 = cl(B1)), sv.setSegment(av.type, P1), +`${j1}0` > av.maxValue ? (Lv(""), sv.next()) : Lv(K1);
    }
  }, [Ov, pv, av.maxValue, av.type]), Yv = reactExports.useCallback((B1) => {
    if (!(B1.ctrlKey || B1.metaKey || B1.shiftKey || B1.altKey))
      switch (B1.key) {
        case "Enter":
          B1.preventDefault(), pv();
          break;
        case "Tab":
          break;
        case "Backspace":
          if (B1.preventDefault(), dl(av.text) && !iv) {
            const K1 = av.text.slice(0, -1);
            xv(av.type, K1.length === 0 ? av.minValue : cl(K1)), Lv(K1);
          }
          break;
        default:
          B1.preventDefault(), B1.stopPropagation(), dl(B1.key) || /^[ap]$/.test(B1.key);
      }
  }, [pv, Gv, av.minValue, av.text, av.type]), Xv = reactExports.useCallback(() => {
    Lv("");
  }, []), L1 = reactExports.useCallback((B1) => B1.stopPropagation(), []), Bv = reactExports.useMemo(() => {
    const B1 = Object.assign({ state: sv, disabled: Cv, tabIndex: Cv ? -1 : 0, children: av.text }, hv);
    switch (av.type) {
      case "literal":
      case "era":
        return B1;
      default:
        return sT(Vv, Object.assign(Object.assign({}, B1), { "aria-label": av.type, onKeyDown: Fr(uv, Yv), onFocus: Fr(cv, Xv), onMouseDown: Fr(lv, L1), children: Hf(av, sv, { month: jv, hour: Dv }) }));
    }
  }, [av, sv, Cv]), Qv = av.type === "literal";
  return React.createElement(MS, Object.assign({ ref: tv, id: Av, "aria-labelledby": Av, "data-literal": Qv, className: Pe(LP, dv) }, Bv));
});
function Hf(rv, tv, ev) {
  var iv;
  switch (rv.type) {
    case "hour":
      return ev.hour.format(tv.fieldValue).split(" ")[0];
    case "dayPeriod":
      return ev.hour.format(tv.fieldValue).split(" ")[1];
    default:
      return (iv = tv.showPlaceholder.current[rv.type]) !== null && iv !== void 0 && iv ? rv.placeholder : rv.text;
  }
}
const DP = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement(LS, Object.assign({ ref: tv, className: Pe(OP, ev) }, iv));
}), NP = te({ display: "flex", justifyContent: "space-between", alignContent: "center", padding: "$space-2 $space-3", height: 52, width: 288, borderRadius: 4, [oe("tone", "critical")]: { border: "$form.critical" }, [oe("tone", "neutral")]: { border: "$form.neutral" }, [oe("disabled", "true")]: { border: "$disabled" } }), FP = te({ text: "$detail", color: "$secondary" }), MP = reactExports.forwardRef(function(rv, tv) {
  const { state: ev, label: iv, disclosure: ov, tone: av = "neutral", disabled: sv = !1, className: lv = "" } = rv, uv = ve(rv, ["state", "label", "disclosure", "tone", "disabled", "className"]);
  return React.createElement("div", Object.assign({ ref: tv, "data-tone": av, "data-disabled": sv, className: Pe(NP, lv) }, uv), React.createElement(Bn, { direction: "column" }, React.createElement(Ba, { className: FP }, iv), React.createElement(DP, { state: ev }, ev.segments.map((cv, dv) => React.createElement(kP, { isDisabled: sv, key: `segment-element-${dv}`, segment: cv, state: ev })))), ov);
}), $P = te({ display: "flex", justifyContent: "center", alignItems: "center" }), Ir = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe($P, ev) }, iv));
}), BP = te(Object.assign(Object.assign({ text: "$action1", border: "none", borderRadius: "$base", cursor: "pointer", position: "relative", bg: "$action.neutral.tertiary", color: "$action.neutral.tertiary", ":hover": { bg: "$action.neutral.tertiaryHover", color: "$action.neutral.tertiaryHover" }, ":active": { bg: "$action.neutral.tertiaryPressed", color: "$action.neutral.tertiaryPressed" }, padding: "$space-1 $space-3", height: "2.25rem" }, Er("neutral")), { [oe("disabled", "true")]: { fg: "blue" }, [oe("disabled", "false")]: { fg: "$action.neutral.tertiary" } })), UP = reactExports.forwardRef(function(rv, tv) {
  const { state: { required: ev, tone: iv, pickerState: ov, dateFieldState: av, disabled: sv }, label: lv, helperText: uv, criticalText: cv } = rv, dv = ve(rv, ["state", "label", "helperText", "criticalText"]), hv = iv === "critical", pv = iv === "critical" && cv, yv = uv && !pv;
  return React.createElement(iP, Object.assign({ ref: tv, "aria-invalid": ti(hv), "aria-required": ti(ev), state: ov }, dv), React.createElement(MP, { label: lv, state: av, tone: iv, disabled: sv, disclosure: React.createElement(sP, { state: ov, className: BP, "data-disabled": sv }, React.createElement(Ir, null, React.createElement(Mw, null))) }), yv && React.createElement(Nr, { variant: "detail" }, uv), pv && React.createElement(Nr, { variant: "detail", tone: "critical" }, cv));
});
UP.displayName = "DatePickerField";
const tc = "21.625rem", Gf = "focus + label", zf = "placeholder-shown:not(:focus) + label", Vf = "not(:placeholder-shown) + label", jP = te({ width: tc, position: "relative", display: "flex", justifyContent: "flex-start", flexDirection: "column", [`input:${Gf}, textarea:${Gf}`]: { transform: "translate(1px, 4px) scale(0.875)" }, [`input:${zf}, textarea:${zf}`]: { paddingTop: "$space-1" }, [`input:${Vf}, textarea:${Vf}`]: { transform: "translate(1px, 4px) scale(0.875)" } }), HP = te({ text: "$body", left: 12, paddingTop: "$space-2", color: "$secondary", marginBottom: "$space-3", position: "absolute", transform: "translate(0, 16px) scale(1)", transformOrigin: "top left", transition: "all 0.2s ease-out;" }), GP = te({ width: tc, height: "3rem", paddingX: "$space-3", text: "$body", paddingTop: "$space-4", bg: "$form.neutral", border: "$form.neutral", borderRadius: "$base", marginY: "$space-1", color: "$form.neutral", outline: 0, transition: "snap", ":hover": { border: "$form.neutralHover" }, ":focus": { border: "$form.neutralFocus", boxShadow: "$ring.neutral" }, ":disabled": { bg: "$disabled", color: "$disabled" } }), zP = te({ right: "$space-0", top: "$space-1", height: "2.875rem", paddingRight: "$space-3", position: "absolute", display: "flex", color: "$primary" }), VP = te(Object.assign(Object.assign({ text: "$action1", border: "none", borderRadius: "$base", cursor: "pointer", position: "relative", marginTop: "$space-2", marginRight: "$space-1", padding: "$space-2 $space-3", height: "2.25rem" }, or({ tone: "neutral", variant: "tertiary" })), { color: "$secondary" })), WP = te({ width: tc, padding: "$space-3", bg: "$primary", boxShadow: "$overlay.center", border: "$neutral", borderRadius: "$base", zIndex: "$z-4" }), sg = te({ text: "$body", borderRadius: "$base", paddingY: "$space-2", paddingX: "$space-3", cursor: "pointer", "&[data-active-item]": { bg: "$action.neutral.tertiaryPressed", color: "$action.neutral.tertiaryPressed" }, ":hover": { bg: "$action.neutral.tertiaryHover", color: "$action.neutral.tertiaryHover" } }), KP = Pe(sg, te({ display: "flex", justifyContent: "space-between", alignItems: "center", outline: "none" })), YP = te({ bg: "$action.neutral.secondary", color: "$primary", text: "$body", paddingY: "$space-1", paddingX: "$space-2", borderRadius: "$base", ":hover": { bg: "$action.neutral.secondaryHover" }, ":active": { bg: "$action.neutral.secondaryPressed" } }), XP = te({ padding: "$space-0", marginLeft: "$space-2", bg: "transparent", display: "flex", alignItems: "center", justifyContent: "center", color: "$secondary" }), qP = te({ width: 500, display: "flex", cursor: "text", position: "relative", border: "$form.neutral", borderRadius: "$base", paddingY: "$space-2", paddingX: "$space-3", ":hover": { border: "$form.neutralHover" }, ":focus-within": { border: "$form.neutralFocus" }, input: { border: "none", outline: "none", [oe("reduce-label", !0)]: { paddingY: "$space-1" }, [oe("reduce-label", !1)]: { paddingY: "$space-0" } } }), ZP = te({ position: "absolute", text: "$body", zIndex: "$z-2", left: 12, color: "$secondary", transformOrigin: "top left", transition: "all 0.2s ease-out;", [oe("reduce-label", !0)]: { transform: "translate(1px, 0px) scale(0.875)" }, [oe("reduce-label", !1)]: { transform: "translate(0, 9px) scale(1)" } }), oo = te({ margin: "$space-2" }), JP = Lw({ useIconProps: function(rv) {
  const { className: tv = "", size: ev } = QP(), { title: iv, size: ov = ev, children: av, className: sv = "", width: lv, height: uv } = rv, cv = ve(rv, ["title", "size", "children", "className", "width", "height"]), dv = ov === "small" ? "1rem" : "1.25rem";
  return Object.assign(Object.assign({ width: lv ?? dv, height: uv ?? dv }, cv), { children: React.createElement(React.Fragment, null, iv ? React.createElement("title", null, iv) : null, av), className: Pe(te({ height: uv ?? dv, width: lv ?? dv, minHeight: uv ?? dv, minWidth: lv ?? dv }), sv, tv) });
} }), lg = reactExports.createContext({ size: "regular", className: "" });
function Ua(rv) {
  const { children: tv } = rv, ev = ve(rv, ["children"]);
  return React.createElement(lg.Provider, { value: ev }, tv);
}
function QP() {
  const { size: rv, className: tv } = reactExports.useContext(lg);
  return { size: rv, className: tv, isSmall: rv === "small", isRegular: rv === "regular" };
}
const eO = { placeholder: " " };
reactExports.forwardRef((rv, tv) => {
  const { state: ev, label: iv, id: ov } = rv, av = ve(rv, ["state", "label", "id"]);
  return React.createElement("div", Object.assign({}, av, { ref: tv }), React.createElement("div", { className: jP }, React.createElement(I0, Object.assign({}, eO, { className: GP, id: ov, state: ev })), React.createElement("label", { htmlFor: ov, className: HP }, iv), ev.value !== "" && React.createElement("div", { className: zP }, React.createElement(IA, { state: ev, className: VP }, React.createElement(Ua, { size: "regular" }, React.createElement(Ru, null))))));
});
const rc = { "en-US": { error: "Something went wrong", retry: "Try again", noResultsTitle: "No options match your search", noResultsSubtitle: "Try using different terms", searchPlaceholder: "Start typing to search", removeLabel: "Remove item", placeholder: "Keep typing..." }, "es-AR": { error: "Algo salió mal", retry: "Intentar otra vez", noResultsTitle: "Ninguna opción coincide con su búsqueda", noResultsSubtitle: "Intenta usar términos diferentes", searchPlaceholder: "Empieza a escribir para buscar", removeLabel: "Remover el artículo", placeholder: "Sigue escribiendo..." }, "fr-FR": { error: "Quelque chose s'est mal passé", retry: "Réessayer", noResultsTitle: "Aucune option ne correspond à votre recherche", noResultsSubtitle: "Essayez d'utiliser des termes différents", searchPlaceholder: "Commencez à taper pour rechercher", removeLabel: "Retirer l'objet", placeholder: "Continuez à taper..." }, "pt-BR": { error: "Algo deu errado", retry: "Tente novamente", noResultsTitle: "Nenhuma opção corresponde à sua pesquisa", noResultsSubtitle: "Tente usar termos diferentes", searchPlaceholder: "Comece a digitar para pesquisar", removeLabel: "Remover item", placeholder: "Continue digitando..." }, "ja-JP": { error: "何かがうまくいかなかった", retry: "再試行", noResultsTitle: "検索に一致するオプションはありません", noResultsSubtitle: "別の用語を使用してみてください", searchPlaceholder: "検索するために入力を開始します", removeLabel: "アイテムを削除", placeholder: "入力を続けてください..." }, "ko-KR": { error: "문제가 발생했습니다.", retry: "다시 시도하십시오", noResultsTitle: "검색어와 일치하는 옵션이 없습니다", noResultsSubtitle: "다른 용어를 사용해 보세요", searchPlaceholder: "검색을 위해 입력 시작", removeLabel: "항목 제거", placeholder: "계속 타자..." }, "it-IT": { error: "Qualcosa è andato storto", retry: "Riprova", noResultsTitle: "Nessuna opzione corrisponde alla tua ricerca", noResultsSubtitle: "Prova a usare termini diversi", searchPlaceholder: "Inizia a digitare per cercare", removeLabel: "Rimuovi oggetto", placeholder: "Continua a scrivere..." }, "nl-NL": { error: "Er is iets fout gegaan", retry: "Probeer het opnieuw", noResultsTitle: "Er zijn geen opties die overeenkomen met uw zoekopdracht", noResultsSubtitle: "Probeer andere termen te gebruiken", searchPlaceholder: "Begin met typen om te zoeken", removeLabel: "Verwijder voorwerp", placeholder: "Blijf typen..." }, "ro-RO": { error: "Ceva n-a mers bine", retry: "Încearcă din nou", noResultsTitle: "Nicio opțiune nu se potrivește căutării dvs", noResultsSubtitle: "Încercați să utilizați termeni diferiți", searchPlaceholder: "Începeți să tastați pentru a căuta", removeLabel: "Eliminați elementul", placeholder: "Continuă să tastezi..." }, "bg-BG": { error: "Нещо се обърка", retry: "Опитай пак", noResultsTitle: "Няма опции, отговарящи на вашето търсене", noResultsSubtitle: "Опитайте да използвате различни термини", searchPlaceholder: "Започнете да пишете, за да търсите", removeLabel: "Премахни артикул", placeholder: "Продължавайте да пишете..." }, "th-TH": { error: "มีบางอย่างผิดปกติ", retry: "โปรดลองอีกครั้ง", noResultsTitle: "ไม่มีตัวเลือกที่ตรงกับการค้นหาของคุณ", noResultsSubtitle: "ลองใช้คำอื่นที่ต่างออกไป", searchPlaceholder: "เริ่มพิมพ์เพื่อค้นหา", removeLabel: "ลบสินค้าออก", placeholder: "พิมพ์ต่อ..." }, "de-DE": { error: "Ein Problem ist aufgetreten", retry: "Versuchen Sie es erneut", noResultsTitle: "Keine Optionen entsprechen Ihrer Suche", noResultsSubtitle: "Versuche andere Begriffe zu verwenden", searchPlaceholder: "Tippen um zu Suchen", removeLabel: "Artikel entfernen", placeholder: "Tippen Sie weiter..." } }, rO = te({ text: "$body" }), Go = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]);
  return React.createElement("p", Object.assign({ ref: tv, className: Pe(rO, ev) }, ov), iv);
}), nO = Eu({ "0%": { strokeDasharray: "1, 150", strokeDashoffset: "0" }, "50%": { strokeDasharray: "90, 150", strokeDashoffset: "-35" }, "100%": { strokeDasharray: "90, 150", strokeDashoffset: "-124" } }), iO = Eu({ "100%": { transform: "rotate(360deg)" } }), aO = te({ animation: `${iO} 1.5s linear infinite` }), oO = te({ fill: "none", stroke: "currentColor", strokeWidth: 5, strokeLinecap: "round", animation: `${nO} 1s ease-in-out infinite` }), nc = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", size: iv = 24 } = rv, ov = ve(rv, ["className", "size"]);
  return React.createElement("svg", Object.assign({ viewBox: "0 0 50 50", width: iv, height: iv, ref: tv, className: Pe(aO, ev) }, ov), React.createElement("circle", { cx: 25, cy: 25, r: 20, className: oO }));
}), Gt = reactExports.forwardRef((rv, tv) => {
  const { icon: ev, size: iv = "normal", variant: ov = "primary", iconPosition: av = "start", loading: sv = !1, disabled: lv = !1, bleedY: uv = !1, bleedX: cv = !1, className: dv = "", type: hv = "button", children: pv } = rv, yv = ve(rv, ["icon", "size", "variant", "iconPosition", "loading", "disabled", "bleedY", "bleedX", "className", "type", "children"]), Sv = ev && !pv ? "center" : av;
  return React.createElement("button", Object.assign({ ref: tv, type: hv, "data-variant": ov, "data-size": iv, "data-bleed-x": cv, "data-bleed-y": uv, disabled: lv || sv, className: Pe(og, dv) }, yv), React.createElement(Ir, null, React.createElement(Ir, { "data-loading": sv, "data-icon-position": Sv, className: lP }, ev && React.createElement(Ua, { size: Sv === "end" ? "small" : "regular" }, ev), pv), sv ? React.createElement(Ir, { className: uP }, React.createElement(nc, null)) : null));
}), ug = reactExports.forwardRef((rv, tv) => {
  const { state: ev, onRetry: iv = () => null, children: ov, className: av = "" } = rv, sv = ve(rv, ["state", "onRetry", "children", "className"]), { deferredValue: lv, status: uv } = ev, cv = ve(ev, ["deferredValue", "status"]), dv = mr(rc);
  return React.createElement(K2, Object.assign({ state: Object.assign(Object.assign({}, cv), { matches: [] }), className: Pe(WP, av), ref: tv }, sv), (() => {
    switch (uv) {
      case "ready":
        return React.createElement(React.Fragment, null, ov);
      case "loading":
        return React.createElement("div", { className: oo }, React.createElement(nc, null));
      case "error":
        return React.createElement("div", { className: oo }, React.createElement("h2", null, React.createElement(Nr, { variant: "title2" }, dv("error"))), React.createElement(Gt, { bleedX: !0, onClick: iv, variant: "tertiary" }, dv("retry")));
      case "empty":
        return React.createElement("div", { className: oo }, React.createElement(Go, { className: te({ color: "$secondary" }) }, dv("searchPlaceholder")));
      case "not-found":
        return React.createElement("div", { className: oo }, React.createElement("h2", null, React.createElement(Nr, { variant: "title2" }, dv("noResultsTitle"))), React.createElement(Go, { className: te({ color: "$secondary" }) }, dv("noResultsSubtitle")));
    }
  })());
});
reactExports.forwardRef((rv, tv) => React.createElement(ug, Object.assign({ ref: tv }, rv), rv.state.matches.map((ev) => {
  const iv = rv.state.getOptionValue(ev), ov = rv.state.renderOption(ev);
  return React.createElement(Ts, { key: iv, value: iv, onClick: () => {
    rv.state.setSelectedItem(ev);
  }, className: sg }, ov);
})));
const lO = reactExports.forwardRef((rv, tv) => {
  const { children: ev, onChange: iv, item: ov, isSelected: av, className: sv = "" } = rv, lv = ve(rv, ["children", "onChange", "item", "isSelected", "className"]), uv = av(ov);
  return React.createElement(Ts, Object.assign({ "aria-selected": uv, className: Pe(KP, sv), onClick: () => iv == null ? void 0 : iv(ov), ref: tv }, lv), ev, React.createElement(fC, { checked: uv }));
}), uO = { "aria-multiselectable": !0 };
reactExports.forwardRef((rv, tv) => React.createElement(ug, Object.assign({}, rv, uO, { ref: tv }), rv.state.matches.map((ev) => {
  const iv = rv.state.getOptionValue(ev), ov = rv.state.renderOption(ev), { isSelected: av, onChange: sv } = rv.state;
  return React.createElement(lO, { item: ev, key: iv, value: iv, isSelected: av, onChange: sv }, ov);
})));
function Wf(rv) {
  return Ca(sn, "margin", rv);
}
const cO = te({ display: "flex", [oe("wrap", !0)]: { flexWrap: "wrap" }, [oe("wrap", !1)]: { flexWrap: "nowrap" }, alignItems: "var(--align)", [oe("space-inside", !1)]: { "> *:not(:first-child)": { marginLeft: "var(--h-space)", marginTop: "var(--v-space)" }, "> *:is(:first-child)": { marginLeft: "var(--h-space)", marginTop: "var(--v-space)" } }, [oe("space-inside", !0)]: { "> *:not(:first-child)": { marginLeft: "var(--h-space)", marginTop: "$space-0" }, "> *:is(:first-child)": { marginLeft: "$space-0", marginTop: "$space-0" } } }), Mr = reactExports.forwardRef((rv, tv) => {
  const { vSpace: ev = "$space-05", hSpace: iv = "$space-1", noWrap: ov = !1, align: av = "start", spaceInside: sv = !1, className: lv = "" } = rv, uv = ve(rv, ["vSpace", "hSpace", "noWrap", "align", "spaceInside", "className"]), cv = ((dv) => ({ "--v-space": Wf(dv.vSpace), "--h-space": Wf(dv.hSpace), "--align": dv.align }))({ vSpace: ev, hSpace: iv, align: av });
  return React.createElement("div", Object.assign({ style: cv, className: Pe(cO, lv), "data-wrap": !ov, "data-space-inside": sv, ref: tv }, uv));
});
function so(rv) {
  return Hr(rv)(sn, "margin");
}
Mr.displayName = "Inline";
const dO = te({ marginTop: "var(--bleed-top, 0)", marginLeft: "var(--bleed-left, 0)", marginBottom: "var(--bleed-bottom, 0)", marginRight: "var(--bleed-right, 0)" }), fO = te({ position: "relative" }), lo = "0rem", ic = reactExports.forwardRef(function(rv, tv) {
  const { top: ev = lo, left: iv = lo, bottom: ov = lo, right: av = lo, className: sv = "", children: lv } = rv, uv = ve(rv, ["top", "left", "bottom", "right", "className", "children"]);
  return React.createElement("div", Object.assign({ ref: tv, style: (cv = { top: ev, left: iv, bottom: ov, right: av }, { "--bleed-top": so(cv.top), "--bleed-right": so(cv.right), "--bleed-bottom": so(cv.bottom), "--bleed-left": so(cv.left) }), className: Pe(dO, sv) }, uv), React.createElement("div", { className: fO }, lv));
  var cv;
}), hO = (rv, tv) => {
  const { value: ev, onDismiss: iv, className: ov = "" } = rv, av = ve(rv, ["value", "onDismiss", "className"]), sv = mr(rc);
  return React.createElement(f2, Object.assign({}, av), (lv) => React.createElement(CA, Object.assign({ className: Pe(YP, ov), ref: tv }, lv), React.createElement(Bn, { justify: "space-between", align: "center" }, React.createElement(Go, null, ev), React.createElement("button", { tabIndex: -1, onClick: iv, className: XP, "aria-label": sv("removeLabel") }, React.createElement(gs, { size: "small" })))));
};
reactExports.forwardRef((rv, tv) => {
  const { state: ev, defaultValue: iv, value: ov, list: av, children: sv, id: lv, label: uv, className: cv = "" } = rv, dv = ve(rv, ["state", "defaultValue", "value", "list", "children", "id", "label", "className"]), { selectedItems: hv, value: pv, unselect: yv, clearSelected: Sv, getOptionValue: _v, renderTag: Ev } = ev, wv = C0(), xv = reactExports.useRef(null), [Cv, Av] = React.useState(!1), Ov = mr(rc), Lv = pv.trim() !== "", jv = hv.length > 0, Dv = Cv || jv || Lv, Vv = Cv || jv;
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(qP, cv), "data-reduce-label": Dv, onClick: (Gv) => {
    var Yv;
    Gv.preventDefault(), Gv.stopPropagation(), (Yv = xv.current) === null || Yv === void 0 || Yv.focus();
  } }, dv), React.createElement(React.Fragment, null, React.createElement("div", { className: te({ flex: 1 }) }, React.createElement(Ba, { className: ZP, "data-reduce-label": Dv, htmlFor: lv }, uv), React.createElement(ic, { left: "$space-2", className: te({ paddingTop: "0.75rem", bg: "transparent" }) }, React.createElement(oC, { state: wv }, React.createElement(Mr, { hSpace: "$space-2", vSpace: "$space-2" }, hv.length > 0 && hv.map((Gv) => React.createElement(hO, { key: _v(Gv), value: Ev(Gv), onKeyDown: (Yv) => ((Xv, L1) => {
    var Bv, Qv;
    (function(B1) {
      const { keyCode: K1 } = B1;
      return K1 >= 48 && K1 <= 57 || K1 >= 65 && K1 <= 90 || K1 >= 97 && K1 <= 122;
    })(Xv) ? (Bv = xv.current) === null || Bv === void 0 || Bv.focus() : function(B1) {
      return B1.keyCode === 8;
    }(Xv) && (hv.length === 1 ? (Qv = xv.current) === null || Qv === void 0 || Qv.focus() : wv.move(wv.activeId === wv.first() ? wv.next() : wv.previous()), yv(L1));
  })(Yv, Gv), onDismiss: () => {
    yv(Gv);
  } })), React.createElement(I0, { ref: xv, state: ev, id: lv, onFocus: () => Av(!0), onBlur: () => Av(!1), placeholder: Vv ? Ov("placeholder") : " ", onKeyDown: (Gv) => {
    var Yv;
    const Xv = Gv.keyCode === 8;
    pv.length > 0 || Xv && ((Yv = xv == null ? void 0 : xv.current) === null || Yv === void 0 || Yv.blur(), wv.move(wv.last()));
  } }))))), React.createElement(Bn, { align: "flex-start", justify: "flex-end", className: te({ width: 48 }) }, hv.length > 0 && React.createElement(Gt, { variant: "neutralTertiary", icon: React.createElement(Ru, null), onClick: Sv, className: te({ [oe("variant", "neutralTertiary")]: { color: "$secondary" } }) }))));
});
function mO(rv) {
  var tv;
  const { children: ev, experimentalTheme: iv, experimentalDisabledGlobalStyles: ov = !1 } = rv, av = ov ? {} : xu((tv = iv == null ? void 0 : iv.global) !== null && tv !== void 0 ? tv : sn.global);
  return XE({ "@layer sl-base": Object.assign({ ":root": tx }, av) })(), React.createElement(JP, null, React.createElement(Wl, null, React.createElement("link", { rel: "preload", href: "https://io.vtex.com.br/fonts/vtex-trust/VTEXTrust-VF-May-5-2022.woff2", as: "font", type: "font/woff2", crossOrigin: "anonymous" })), ev);
}
function pO(rv) {
  const tv = Array.isArray(rv) ? rv : [rv], ev = $h && "matchMedia" in window, [iv, ov] = React.useState(tv.map((av) => !!ev && window.matchMedia(av).matches));
  return ga(() => {
    if (!ev)
      return;
    const av = tv.map((lv) => window.matchMedia(lv)), sv = av.map((lv, uv) => {
      const cv = () => ov((dv) => dv.map((hv, pv) => uv === pv ? !!lv.matches : hv));
      return lv.addEventListener ? lv.addEventListener("change", cv) : lv.addListener && lv.addListener(cv), cv;
    });
    return () => {
      av.forEach((lv, uv) => {
        lv.removeEventListener ? lv.removeEventListener("change", sv[uv]) : lv.removeListener && lv.removeListener(sv[uv]);
      });
    };
  }, [rv]), iv;
}
const Kf = pt(Gh, "breakpoints", {}), gO = Object.keys(Kf).map((rv) => `(min-width: ${pt(Kf, rv)})`);
function ac() {
  const rv = pO(gO);
  return { breakpoint: reactExports.useMemo(() => {
    const [tv, ev, iv, ov] = rv;
    return ov ? "widescreen" : iv ? "desktop" : ev ? "tablet" : "mobile";
  }, [rv]), matches: rv };
}
function Ln(rv, tv, ev) {
  if (typeof rv != "object" || rv === null || !("mobile" in rv))
    return rv;
  if (ev && ev < 0)
    return pt(rv, "mobile");
  const iv = ["mobile", "tablet", "desktop", "widescreen"], ov = ev ?? iv.indexOf(tv);
  return pt(rv, iv[ov], null) || Ln(rv, tv, ov - 1);
}
const vO = (rv, tv) => ({ "--stack-space": Ca(sn, "margin", tv), "--stack-align": rv }), bO = te({ display: "flex", [oe("direction", "column")]: { flexDirection: "column", justifyContent: "unset", alignItems: "var(--stack-align)", "> *:not(:first-child)": { marginTop: "var(--stack-space) !important" } }, [oe("direction", "row")]: { flexDirection: "row", alignItems: "center", justifyContent: "var(--stack-align)", "> *:not(:first-child)": { marginLeft: "var(--stack-space) !important" } }, [oe({ fluid: "true", direction: "column" })]: { alignItems: "unset", justifyContent: "unset" } }), Pt = reactExports.forwardRef(function(rv, tv) {
  const { direction: ev = "column", fluid: iv = !1, align: ov = "start", space: av = "$space-1", children: sv } = rv, lv = ve(rv, ["direction", "fluid", "align", "space", "children"]), { breakpoint: uv } = ac(), cv = Ln(ev, uv), dv = Ln(iv, uv), hv = Ln(ov, uv), pv = Ln(av, uv);
  return React.createElement("div", Object.assign({ ref: tv }, lv), React.createElement("div", { className: bO, "data-direction": cv, "data-fluid": dv, style: vO(hv, pv) }, sv));
}), ru = { content: '""', position: "absolute", display: "block", borderRadius: "$pill", size: "0.5rem", bg: "$form.control" }, cg = { ":disabled": { bg: "$disabled", border: "$disabled", color: "$disabled", cursor: "not-allowed", "+ div": { label: { cursor: "not-allowed", color: "$disabled" } } } }, yO = Object.assign(Object.assign(Object.assign({}, Er("main")), { bg: "$form.controlChecked", color: "$form.controlChecked", border: "$form.controlChecked", position: "relative", "&:after": Object.assign(Object.assign({}, ru), { bg: (rv) => pt(rv, "fg.form.controlChecked", "") }), ":hover:not(:disabled)": { bg: "$form.controlCheckedHover", border: "$form.controlCheckedHover" }, "&[disabled]:after": Object.assign(Object.assign({}, ru), { bg: (rv) => pt(rv, "fg.disabled", "") }) }), cg), dg = te(Object.assign(Object.assign(Object.assign(Object.assign({}, Er("neutral")), { size: "1.25rem", border: "$form.control", appearance: "none", position: "relative", borderRadius: "$pill", cursor: "pointer", display: "flex", margin: "$space-0", alignItems: "center", justifyContent: "center", ":hover:not(:disabled)": { bg: "$form.controlHover", border: "$form.controlHover" } }), cg), { ":after": ru, ":checked": yO })), EO = te({ cursor: "pointer" }), xO = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement(ER, Object.assign({}, iv, { ref: tv, className: Pe(dg, ev) }));
});
function En(rv) {
  const { children: tv, className: ev } = rv;
  return React.createElement(Pt, { space: "$space-1", className: ev }, tv);
}
const fg = { "en-US": { optional: "optional" }, "es-AR": { optional: "opcional" }, "fr-FR": { optional: "optionnel" }, "pt-BR": { optional: "opcional" }, "ja-JP": { optional: "オプション" }, "ko-KR": { optional: "선택 과목" }, "it-IT": { optional: "opzionale" }, "nl-NL": { optional: "optioneel" }, "ro-RO": { optional: "opțional" }, "bg-BG": { optional: "по избор" }, "th-TH": { optional: "ไม่บังคับ" }, "de-DE": { optional: "Optional" } }, wO = te({ color: "$secondary", text: "$body" }), Mi = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", children: iv, optional: ov = !1 } = rv, av = ve(rv, ["className", "children", "optional"]), sv = mr(fg);
  return React.createElement("label", Object.assign({ ref: tv, className: Pe(wO, ev) }, av), iv, " ", ov ? `(${sv("optional")})` : "");
});
function xn(rv) {
  const { helpText: tv, error: ev, errorText: iv, className: ov } = rv, av = ev && iv;
  return av || tv ? React.createElement(Pt, { className: ov, space: "$space-0" }, tv ? React.createElement(Nr, { variant: "detail", tone: "secondary" }, tv) : null, av ? React.createElement(Nr, { variant: "detail", tone: "critical", role: "alert" }, iv) : null) : null;
}
reactExports.forwardRef(function(rv, tv) {
  const { label: ev, helpText: iv, id: ov } = rv, av = ve(rv, ["label", "helpText", "id"]), sv = yn(ov);
  return React.createElement(En, null, React.createElement(Mr, { hSpace: "$space-2", vSpace: "", spaceInside: !0 }, React.createElement(xO, Object.assign({ ref: tv }, av, { id: sv })), React.createElement(Pt, { space: "$space-05" }, React.createElement(Ba, { htmlFor: sv, className: EO }, ev), React.createElement(xn, { helpText: iv }))));
});
reactExports.forwardRef(function(rv, tv) {
  const { label: ev, helpText: iv, errorText: ov, children: av, direction: sv, state: lv, error: uv, optional: cv } = rv, dv = ve(rv, ["label", "helpText", "errorText", "children", "direction", "state", "error", "optional"]), hv = yn();
  return React.createElement(gR, Object.assign({ state: lv, "aria-labelledby": hv }, dv, { ref: tv }), React.createElement(En, null, React.createElement(Mi, { id: hv, optional: cv }, ev), React.createElement(Pt, { direction: sv, space: "$space-4" }, av), React.createElement(xn, { error: uv, helpText: iv, errorText: ov })));
});
const nu = { bg: "$form.controlActive" }, uo = { bg: "$form.controlInactiveHover" }, co = { bg: "$form.controlActiveHover" }, TO = { bg: pt(sn, "fg.form.neutralChecked"), content: '""', display: "block", position: "absolute", borderRadius: "1.25rem", transition: "transform .25s ease", width: "0.75rem", height: "0.75rem", margin: "auto 0.25rem", bottom: "$space-0", top: "$space-0" }, SO = { bg: "$disabled", border: "$disabled", color: "$disabled", cursor: "not-allowed", "+ div label": { color: "$disabled", cursor: "not-allowed" }, ":after": { bg: pt(sn, "fg.disabled") } }, AO = Object.assign(Object.assign(Object.assign(Object.assign({}, nu), { ":hover": co }), Er("positive", { focus: Object.assign(Object.assign({}, co), { "&:hover": co }), polyfill: Object.assign(Object.assign({}, nu), { "&:hover": co }) })), { "&:after": { transform: "translateX(1rem)" } }), CO = te(Object.assign(Object.assign({ bg: "$form.neutralInactive", appearance: "none", position: "relative", cursor: "pointer", margin: "unset", borderRadius: "6.25rem", height: "1.25rem", width: "2.25rem" }, Er("neutral", { focus: Object.assign(Object.assign({}, uo), { "&:hover": uo }), polyfill: { bg: "$form.neutralInactive", "&:hover": uo } })), { ":after": TO, "&:checked": AO, ":hover": uo, ":active": nu, ":disabled": SO })), RO = te({ cursor: "pointer" }), _O = reactExports.forwardRef(function(rv, tv) {
  const { state: ev, className: iv = "" } = rv, ov = ve(rv, ["state", "className"]);
  return React.createElement(O0, Object.assign({ ref: tv, role: "switch", state: ev, className: Pe(CO, iv) }, ov));
});
reactExports.forwardRef(function(rv, tv) {
  const { id: ev, state: iv, helpText: ov, errorText: av, label: sv, error: lv, disabled: uv } = rv, cv = ve(rv, ["id", "state", "helpText", "errorText", "label", "error", "disabled"]), dv = yn(ev);
  return React.createElement(En, null, React.createElement(Mr, { hSpace: "$space-2", vSpace: "" }, React.createElement(_O, Object.assign({ ref: tv, id: dv, state: iv, disabled: uv }, cv)), React.createElement(Pt, { space: "$space-05" }, React.createElement(Ba, { htmlFor: dv, className: RO }, sv), React.createElement(xn, { error: lv, helpText: ov, errorText: av }))));
});
const Yf = (rv) => {
  const tv = jh(rv === "disabled" ? "$gray40" : "$white");
  return `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0303 3.96993C14.3232 4.26283 14.3232 4.7377 14.0303 5.03059L7.03032 12.0303C6.73743 12.3231 6.26259 12.3232 5.96969 12.0303L2.46969 8.5306C2.17679 8.23772 2.17677 7.76284 2.46965 7.46994C2.76253 7.17703 3.2374 7.17701 3.53031 7.46989L6.49999 10.4393L12.9697 3.9699C13.2626 3.67702 13.7375 3.67703 14.0303 3.96993Z" fill="${encodeURIComponent(tv)}"/></svg>`;
}, Xf = (rv) => {
  const tv = jh(rv === "disabled" ? "$gray40" : "$black");
  return `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.75 8C1.75 7.58579 2.08579 7.25 2.5 7.25H13.5C13.9142 7.25 14.25 7.58579 14.25 8C14.25 8.41421 13.9142 8.75 13.5 8.75H2.5C2.08579 8.75 1.75 8.41421 1.75 8Z" fill="${encodeURIComponent(tv)}"/></svg>`;
}, iu = { ":disabled": { bg: "$disabled", border: "$disabled", color: "$disabled", cursor: "not-allowed", "+ div label": { color: "$disabled", cursor: "not-allowed" } } }, hg = { position: "absolute", height: "1rem" }, IO = { "&:after": Object.assign({ content: `url('data:image/svg+xml; utf8, ${Yf()}')` }, hg), "&[disabled]:after": { content: `url('data:image/svg+xml; utf8, ${Yf("disabled")}')` } }, PO = Object.assign(Object.assign(Object.assign(Object.assign({}, Er("main")), { backgroundColor: "$form.controlChecked", border: "$form.controlChecked", position: "relative", ":hover": { bg: "$form.controlCheckedHover", border: "$form.controlCheckedHover" }, ":focus-visible": { outline: "none", bg: "$form.controlCheckedFocus", border: "$form.controlCheckedFocus" } }), IO), iu), OO = { "&:after": Object.assign({ content: `url('data:image/svg+xml; utf8, ${Xf()}')` }, hg), "&[disabled]:after": { content: `url('data:image/svg+xml; utf8, ${Xf("disabled")}')` } }, LO = te(Object.assign(Object.assign(Object.assign(Object.assign({}, Er("neutral")), { display: "flex", alignItems: "center", justifyContent: "center", size: "1.25rem", bg: "$form.control", border: "$form.control", appearance: "none", borderRadius: "$base", cursor: "pointer", margin: "$space-0", boxSizing: "border-box", ":hover:not(:disabled)": { border: "$form.controlHover" }, ":focus-visible": { outline: "none", border: "$form.controlFocus" } }), iu), { ":checked": PO, ":indeterminate": OO, [oe("error", "true")]: Object.assign(Object.assign(Object.assign({}, Er("critical")), { border: "$form.critical", ":hover:not(:disabled)": { border: "$form.criticalHover" }, ":focus-visible": { outline: "none", border: "$form.criticalFocus" } }), iu) })), kO = te({ cursor: "pointer" }), DO = reactExports.forwardRef(function(rv, tv) {
  const { error: ev = !1, state: iv, className: ov = "" } = rv, av = ve(rv, ["error", "state", "className"]), sv = reactExports.useRef(null);
  return reactExports.useEffect(() => {
    sv.current && iv && (sv.current.indeterminate = iv.value === "indeterminate");
  }, [iv]), React.createElement(O0, Object.assign({ state: iv, ref: ln(sv, tv), "data-error": ev, className: Pe(LO, ov) }, av));
}), NO = reactExports.forwardRef(function(rv, tv) {
  const { id: ev, label: iv, helpText: ov, error: av = !1, errorText: sv } = rv, lv = ve(rv, ["id", "label", "helpText", "error", "errorText"]), uv = yn(ev);
  return React.createElement(En, null, React.createElement(Mr, { hSpace: "$space-2", vSpace: "", spaceInside: !0 }, React.createElement(DO, Object.assign({ ref: tv, id: uv, error: av }, lv)), React.createElement(Pt, { space: "$space-05" }, React.createElement(Ba, { htmlFor: uv, className: kO }, iv), React.createElement(xn, { error: av, helpText: ov, errorText: sv }))));
});
reactExports.forwardRef(function(rv, tv) {
  const { children: ev, label: iv, helpText: ov, errorText: av, error: sv, optional: lv, direction: uv } = rv, cv = ve(rv, ["children", "label", "helpText", "errorText", "error", "optional", "direction"]), dv = yn();
  return React.createElement("div", Object.assign({ ref: tv, role: "group", "aria-labelledby": dv }, cv), React.createElement(En, null, React.createElement(Mi, { id: dv, optional: lv }, iv), React.createElement(Pt, { direction: uv, space: "$space-4" }, ev), React.createElement(xn, { error: sv, helpText: ov, errorText: av })));
});
const mg = "2.75rem", FO = te({ height: mg, display: "flex", width: "100%", alignItems: "center", text: "$body", border: "$form.neutral", borderRadius: "$base", bg: "$form.neutral", cursor: "text", ":hover": { border: "$form.neutralHover" }, ":focus-within": { border: "$form.neutralFocus", boxShadow: "$ring.neutral" }, [oe("error", !0)]: { border: "$form.critical", ":hover": { border: "$form.criticalHover" }, ":focus-within": { border: "$form.criticalFocus", boxShadow: "$ring.critical" } }, [oe("disabled", !0)]: { bg: "$disabled", color: "$disabled", border: "$disabled", ":hover": { border: "$disabled" } } }), MO = te({ height: mg, padding: "$space-3 $space-4", width: "100%", borderRadius: "$base", bg: "$form.neutral", ":focus": { outline: "none" } }), $O = te({ padding: "$space-3 $space-4", color: "$secondary", display: "flex", alignItems: "center", [oe("type", "prefix")]: { borderRight: "$form.neutral" }, [oe("type", "suffix")]: { borderLeft: "$form.neutral" } }), pg = reactExports.forwardRef(function(rv, tv) {
  const { error: ev = !1, disabled: iv = !1, className: ov = "", children: av } = rv, sv = ve(rv, ["error", "disabled", "className", "children"]);
  return React.createElement("div", Object.assign({ ref: tv, "data-error": ev, "data-disabled": iv, className: Pe(FO, ov) }, sv), av);
}), gg = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("input", Object.assign({ ref: tv, className: Pe(MO, ev) }, iv));
}), zo = reactExports.forwardRef(function(rv, tv) {
  const { type: ev, children: iv, className: ov = "" } = rv, av = ve(rv, ["type", "children", "className"]);
  return React.createElement("div", Object.assign({ ref: tv, "data-type": ev, className: Pe($O, ov) }, av), iv);
});
reactExports.forwardRef(function(rv, tv) {
  const { prefix: ev, suffix: iv, error: ov, disabled: av, errorText: sv, helpText: lv, label: uv, id: cv } = rv, dv = ve(rv, ["prefix", "suffix", "error", "disabled", "errorText", "helpText", "label", "id"]), hv = yn(cv), [pv, yv] = Ra();
  return React.createElement(En, null, uv && React.createElement(Mi, { htmlFor: hv }, uv), React.createElement(pg, { onClick: yv, error: ov, disabled: av }, ev && React.createElement(zo, { type: "prefix" }, ev), React.createElement(gg, Object.assign({ ref: ln(pv, tv), disabled: av, id: hv, "aria-invalid": ov ? "true" : "false" }, dv)), iv && React.createElement(zo, { type: "suffix" }, iv)), React.createElement(xn, { error: ov, helpText: lv, errorText: sv }));
});
const BO = { "en-US": { search: "Search", clearButton: "Clear search input" }, "es-AR": { search: "Buscar", clearButton: "Limpiar entrada de búsqueda" }, "fr-FR": { search: "Rechercher", clearButton: "Effacer la recherche" }, "pt-BR": { search: "Pesquisar", clearButton: "Limpar campo de busca" }, "ja-JP": { search: "Search", clearButton: "Clear search input" }, "ko-KR": { search: "검색", clearButton: "검색 입력 지우기" }, "it-IT": { search: "Cerca", clearButton: "Rimuovi input di ricerca" }, "nl-NL": { search: "Zoek", clearButton: "Verwijder zoekgeschiedenis" }, "ro-RO": { search: "Căutare", clearButton: "Șterge datele introduse pentru căutare" }, "bg-BG": { search: "Търсене", clearButton: "Изчистване на въведените данни за търсене" }, "th-TH": { search: "ค้นหา", clearButton: "ล้างอินพุตการค้นหา" }, "de-DE": { search: "Suche", clearButton: "Sucheingabe leeren" } }, UO = te({ border: "$form.neutral", borderRadius: "$base", size: "100%", bg: "$primary", color: "$primary", paddingLeft: "2.25rem", paddingRight: "2.5rem", text: "$body", ":focus": Object.assign(Object.assign({}, Er("neutral")), { border: "$form.neutralFocus" }), ":focus::placeholder": { color: "transparent" }, "::placeholder": { text: "$body", color: "$secondary" }, ":hover": { border: "$form.neutralHover" }, ":disabled": { border: "$disabled", bg: "$disabled", color: "$disabled", "::placeholder": { color: "$disabled" } }, "@desktop": { minWidth: "18rem" } }), jO = te({ position: "relative", marginX: "0.06 rem", height: "2.25rem" }), qf = te({ position: "absolute", top: "$space-0", height: "100%", [oe("position", "end")]: { right: "0.5rem" }, [oe("position", "start")]: { left: "0.75rem" } }), Zf = te({ [oe("disabled", "true")]: { fg: "$disabled" }, [oe("disabled", "false")]: { fg: "$secondary" } }), HO = te({ [oe("clear", "true")]: { padding: "$space-0", paddingY: "$space-05", paddingX: "$space-1", height: "fit-content" } }), GO = reactExports.forwardRef(function(rv, tv) {
  const ev = mr(BO), iv = ev("search"), { role: ov = "search", "aria-label": av = iv, disabled: sv = !1, value: lv = "", onChange: uv, loading: cv = !1, onSubmit: dv, onClear: hv = () => {
  }, placeholder: pv = iv, className: yv = "" } = rv, Sv = ve(rv, ["role", "aria-label", "disabled", "value", "onChange", "loading", "onSubmit", "onClear", "placeholder", "className"]), [_v, Ev] = Ra(), wv = reactExports.useMemo(() => lv.toString().length > 0, [lv]) && !sv, xv = !uv, Cv = cv ? React.createElement(nc, { size: 16, "data-disabled": sv, className: Zf }) : React.createElement(Im, { size: "small", "data-disabled": sv, className: Zf }), Av = xv ? { defaultValue: lv } : { value: lv, onChange: uv };
  return React.createElement("form", Object.assign({ ref: tv, className: Pe(jO, yv), role: ov, onSubmit: (Ov) => {
    Ov.preventDefault(), dv == null || dv(Ov);
  } }, Sv), React.createElement(Ir, { className: qf, onClick: Ev, "data-position": "start" }, Cv), React.createElement("input", Object.assign({ ref: _v, className: UO, placeholder: pv, "aria-label": av, disabled: sv }, Av)), wv ? React.createElement(Ir, { className: qf, "data-position": "end" }, React.createElement(Gt, { "aria-label": ev("clearButton"), icon: React.createElement(Ru, null), variant: "neutralTertiary", className: HO, "data-clear": !0, onClick: () => {
    hv(), Ev();
  } })) : null, React.createElement(f0, null, React.createElement("button", { type: "submit", tabIndex: -1 }, iv)));
}), fo = (rv) => typeof rv == "number", Jf = (rv, tv, ev) => tv <= rv && rv <= ev, zO = { "en-US": { decrement: "Decrement", increment: "Increment" }, "es-AR": { decrement: "Decrementar", increment: "Incrementar" }, "fr-FR": { decrement: "Décrémenter", increment: "Incrémenter" }, "pt-BR": { decrement: "Decrementar", increment: "Incrementar" }, "ja-JP": { decrement: "デクリメント", increment: "インクリメント" }, "ko-KR": { decrement: "감소", increment: "증가" }, "it-IT": { decrement: "Decremento", increment: "Incremento" }, "nl-NL": { decrement: "Verlagen", increment: "Increment" }, "ro-RO": { decrement: "Scăderea", increment: "Creştere" }, "bg-BG": { decrement: "Намаляване", increment: "Увеличение" }, "th-TH": { decrement: "การลดลง", increment: "การเพิ่มขึ้น" }, "de-DE": { decrement: "Reduzieren", increment: "Erhöhen" } }, VO = (rv) => {
  const { initialValue: tv, step: ev, min: iv, max: ov, onChange: av } = rv, [sv, lv] = reactExports.useState(tv), uv = mr(zO), cv = (pv) => {
    const { value: yv } = pv.target, Sv = ((_v) => typeof _v == "string" && _v.length > 0 && !Number.isNaN(Number(_v)))(yv) ? Number(yv) : yv;
    lv(Sv), av(Sv);
  }, dv = () => {
    if (fo(sv)) {
      const pv = (({ currentValue: yv, nextValue: Sv, min: _v, max: Ev }) => Jf(yv, _v, Ev) ? Math.min(Ev, Sv) : _v)({ currentValue: sv, nextValue: sv + ev, min: iv, max: ov });
      lv(pv), av(pv);
    } else {
      const pv = Math.min(ov, ev);
      lv(pv), av(pv);
    }
  }, hv = () => {
    if (fo(sv)) {
      const pv = (({ currentValue: yv, nextValue: Sv, min: _v, max: Ev }) => Jf(yv, _v, Ev) ? Math.max(_v, Sv) : Ev)({ currentValue: sv, nextValue: sv - ev, min: iv, max: ov });
      lv(pv), av(pv);
    } else {
      const pv = Math.max(iv, -ev);
      lv(pv), av(pv);
    }
  };
  return reactExports.useEffect(() => {
    lv(tv);
  }, [tv]), { getInputProps: (pv) => Object.assign({ type: "number", value: sv, step: ev, min: iv, max: ov, onChange: cv }, pv), getDecrementButtonProps: (pv) => Object.assign({ "aria-label": uv("decrement"), variant: "tertiary", onClick: hv, disabled: fo(sv) && Number(sv) <= iv, tabIndex: -1 }, pv), getIncrementButtonProps: (pv) => Object.assign({ "aria-label": uv("increment"), variant: "tertiary", onClick: dv, disabled: fo(sv) && Number(sv) >= ov, tabIndex: -1 }, pv) };
}, WO = te({ opacity: 1, ":not(:hover):not(:focus-within) > button": { opacity: 0, transition: "opacity 250ms ease-in-out" } }), KO = te({ appearance: "none", "-moz-appearance": "textfield", "::-webkit-inner-spin-button ": { WebkitAppearance: "none", margin: "$space-0" }, "::placeholder": { fontStyle: "italic" }, ":disabled ~ button": { display: "none" } }), YO = te({ marginTop: "$space-1", marginBottom: "$space-1" }), XO = te({ marginRight: "$space-1", marginTop: "$space-1", marginBottom: "$space-1" });
reactExports.forwardRef(function(rv, tv) {
  const { prefix: ev, suffix: iv, disabled: ov, optional: av, error: sv, errorText: lv, helpText: uv, label: cv, id: dv, value: hv = "", step: pv = 1, min: yv = Number.NEGATIVE_INFINITY, max: Sv = Number.POSITIVE_INFINITY, onChange: _v = () => {
  }, placeholder: Ev } = rv, wv = ve(rv, ["prefix", "suffix", "disabled", "optional", "error", "errorText", "helpText", "label", "id", "value", "step", "min", "max", "onChange", "placeholder"]), { getInputProps: xv, getDecrementButtonProps: Cv, getIncrementButtonProps: Av } = VO({ initialValue: hv, step: pv, min: Number(yv), max: Number(Sv), onChange: _v }), Ov = yn(dv), [Lv, jv] = Ra(), Dv = mr(fg), Vv = !cv && av ? Dv("optional") : "";
  return React.createElement(En, null, cv && React.createElement(Mi, { optional: av, htmlFor: Ov }, cv), React.createElement(pg, { onClick: jv, onMouseDown: (Gv) => {
    Gv.preventDefault();
  }, error: sv, disabled: ov, className: WO }, ev && React.createElement(zo, { type: "prefix" }, ev), React.createElement(gg, Object.assign({}, xv(Object.assign({ id: Ov, placeholder: Vv ?? Ev, disabled: ov }, wv)), { ref: ln(Lv, tv), className: KO })), React.createElement(Gt, Object.assign({}, Cv({ icon: React.createElement(Cu, null), className: YO }))), React.createElement(Gt, Object.assign({}, Av({ icon: React.createElement(ps, null), className: XO }))), iv && React.createElement(zo, { type: "suffix" }, iv)), React.createElement(xn, { error: sv, helpText: uv, errorText: lv }));
});
function fn(rv) {
  return { bg: `${rv}10`, color: "$primary" };
}
const qO = te({ display: "inline-flex", alignItems: "center", borderRadius: "100px", color: "$primary", border: "none", paddingX: "0.75rem", outlineColor: (rv) => pt(rv, "bg.primary", "bg.primary"), outlineWidth: "0.125rem", outlineStyle: "solid", [oe("variant", "gray")]: fn("gray"), [oe("variant", "red")]: fn("red"), [oe("variant", "orange")]: fn("orange"), [oe("variant", "green")]: fn("green"), [oe("variant", "lightBlue")]: fn("lightBlue"), [oe("variant", "cyan")]: fn("cyan"), [oe("variant", "purple")]: fn("purple"), [oe("variant", "teal")]: fn("teal"), [oe("variant", "pink")]: fn("pink"), [oe("size", "normal")]: { height: "1.5rem", text: "$detail" }, [oe("size", "large")]: { height: "1.75rem", text: "$body" } }), ZO = reactExports.forwardRef((rv, tv) => {
  const { variant: ev = "gray", size: iv = "normal", label: ov, className: av = "" } = rv, sv = ve(rv, ["variant", "size", "label", "className"]);
  return React.createElement("div", Object.assign({ ref: tv }, sv, { className: Pe(qO, av), "data-variant": ev, "data-size": iv }), ov);
}), JO = te({ width: "100%", alignItems: "center", text: "$body", border: "$form.neutral", borderRadius: "$base", bg: "$form.neutral", cursor: "text", ":hover": { border: "$form.neutralHover" }, ":focus-within": { border: "$form.neutralFocus", boxShadow: "$ring.neutral" }, height: "auto", display: "block", minHeight: "68px", maxHeight: "440px", resize: "none", transition: "snap", [oe("error", "true")]: { border: "$form.critical", ":hover": { border: "$form.criticalHover" }, ":focus-within": { border: "$form.criticalFocus", boxShadow: "$ring.critical" } }, [oe("disabled", "true")]: { bg: "$disabled", color: "$disabled", border: "$disabled", ":hover": { border: "$disabled" } } }), QO = te({ padding: "$space-3 $space-4", width: "100%", borderRadius: "$base", bg: "$form.neutral", ":focus": { outline: "none" }, height: "auto", display: "block", text: "$body", resize: "none", transition: "snap" }), eL = reactExports.forwardRef(function(rv, tv) {
  const { error: ev = !1, disabled: iv = !1, className: ov = "", children: av } = rv, sv = ve(rv, ["error", "disabled", "className", "children"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(JO, ov), "data-error": ev, "data-disabled": iv }, sv), av);
}), tL = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("textarea", Object.assign({ ref: tv, className: Pe(QO, ev) }, iv));
});
function rL() {
  const [rv, tv] = reactExports.useState(0);
  return { getTextareaProps: (ev) => Object.assign(Object.assign({}, ev), { onInput: (iv) => {
    var ov;
    ((av) => {
      const sv = av.target, lv = Math.floor(2);
      sv.rows = lv;
      const uv = Math.min(sv.scrollHeight, 420), cv = Math.ceil((uv - 68) / 20);
      sv.rows = lv + cv;
    })(iv), (ov = ev.onInput) === null || ov === void 0 || ov.call(ev, iv);
  }, onChange: (iv) => {
    var ov;
    tv(iv.currentTarget.value.toString().length), (ov = ev.onChange) === null || ov === void 0 || ov.call(ev, iv);
  } }), charCount: rv };
}
reactExports.forwardRef(function(rv, tv) {
  const { error: ev, errorText: iv, helpText: ov, label: av, maxLength: sv, id: lv } = rv, uv = ve(rv, ["error", "errorText", "helpText", "label", "maxLength", "id"]), cv = yn(lv), [dv, hv] = Ra(), { getTextareaProps: pv, charCount: yv } = rL();
  return React.createElement(En, null, av && React.createElement(Mi, { htmlFor: cv }, av), React.createElement(eL, { onClick: hv, error: ev, disabled: uv.disabled }, React.createElement(tL, Object.assign({ ref: ln(dv, tv), id: cv, maxLength: sv }, pv(uv)))), React.createElement(Bn, { className: te({ width: "100%" }) }, React.createElement(xn, { error: ev, helpText: ov, errorText: iv }), React.createElement(PP, null), sv && React.createElement(Nr, { variant: "detail", tone: "secondary" }, yv, " / ", sv)));
});
const nL = { "en-US": { placeholder: "Select" }, "es-AR": { placeholder: "Seleccionar" }, "fr-FR": { placeholder: "Sélectionner" }, "pt-BR": { placeholder: "Selecione" }, "ja-JP": { placeholder: "選択" }, "ko-KR": { placeholder: "선택" }, "it-IT": { placeholder: "Seleziona" }, "nl-NL": { placeholder: "Select" }, "ro-RO": { placeholder: "Selectează" }, "bg-BG": { placeholder: "Избор" }, "th-TH": { placeholder: "เลือก" }, "de-DE": { placeholder: "Auswählen" } }, iL = te(Object.assign(Object.assign({ borderRadius: "$base", appearance: "none", cursor: "pointer", bg: "$form.neutral", width: "100%", text: "$body", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis", "> option": { color: "currentColor" }, "+ * > svg": { color: "$secondary" }, boxSizing: "border-box", height: "2.75rem", paddingLeft: "1rem", paddingRight: "2.5rem", border: "$form.neutral" }, Er("neutral", { focus: { border: "$form.neutralFocus" }, polyfill: { boxShadow: gi("neutral") } })), { ":hover:not(:disabled)": { border: "$form.neutralHover" }, [oe("error", "true")]: Object.assign(Object.assign({}, Er("critical", { focus: { border: "$form.criticalFocus" }, polyfill: { boxShadow: gi("critical") } })), { border: "$form.critical", ":hover:not(:disabled)": { border: "$form.criticalHover" } }), [oe("selected", "false")]: { fg: "$secondary" }, [oe("selected", "true")]: { fg: "$form.neutral" }, ":disabled": { bg: "$disabled", color: "$disabled", border: "$disabled", cursor: "not-allowed", opacity: 1, "+ * > svg": { color: "$disabled" } } })), aL = te({ position: "absolute", top: "$space-0", bottom: "$space-0", margin: "auto", pointerEvents: "none", right: "1rem", height: "1.25rem" }), oL = te({ position: "relative", width: "100%" }), sL = reactExports.forwardRef(function(rv, tv) {
  const { error: ev = !1, value: iv, children: ov, className: av = "" } = rv, sv = ve(rv, ["error", "value", "children", "className"]), lv = mr(nL);
  return React.createElement("select", Object.assign({ ref: tv, defaultValue: "", value: iv, "data-error": ev, "data-selected": !!iv, className: Pe(iL, av) }, sv), React.createElement("option", { value: "", disabled: !0 }, lv("placeholder"), "…"), ov);
});
function lL(rv) {
  return React.createElement("svg", Object.assign({}, rv, { width: "1.25rem", height: "1.25rem", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" }), React.createElement("path", { d: "M13.125 12.25L10 15.375L6.875 12.25", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), React.createElement("path", { d: "M6.875 7.75151L10 4.62651L13.125 7.75151", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }));
}
reactExports.forwardRef(function(rv, tv) {
  const { children: ev, error: iv, label: ov, helpText: av, errorText: sv, optional: lv = !1, id: uv, className: cv } = rv, dv = ve(rv, ["children", "error", "label", "helpText", "errorText", "optional", "id", "className"]), hv = yn(uv), [pv, yv] = Ra();
  return React.createElement(En, { className: cv }, ov ? React.createElement(Mi, { optional: lv, htmlFor: hv }, ov) : null, React.createElement("div", { onClick: yv, className: oL }, React.createElement(sL, Object.assign({ id: hv, ref: ln(pv, tv), error: iv }, dv), ev), React.createElement("div", { className: aL }, React.createElement(lL, null))), React.createElement(xn, { error: iv, helpText: av, errorText: sv }));
});
te({ display: "grid", overflow: "auto", gridTemplateColumns: "var(--table-columns-template)", gridAutoRows: "minmax(min-content, auto)" });
const uL = te({ display: "contents" }), cL = te({ display: "contents" }), dL = te({ position: "sticky", top: "$space-0", color: "$secondary", background: "$primary", overflowX: "clip", zIndex: "$z-2", [oe("vertical-scroll", "true")]: { "> div": { boxShadow: "$overlay.center" } }, [oe("vertical-scroll", "false")]: { "> div": { boxShadow: "none" } } }), fL = te({ display: "flex", alignItems: "center", ":hover": { svg: { opacity: 1 } } }), hL = te({ display: "flex", flexDirection: "column", justifyContent: "center", margin: "$space-1", minHeight: "0.75rem" }), mL = te({ opacity: 0, [oe("direction", "asc")]: { opacity: 1 } });
reactExports.memo(function(rv) {
  const { children: tv, className: ev = "" } = rv, iv = ve(rv, ["children", "className"]);
  return React.createElement("thead", Object.assign({ className: Pe(uL, ev) }, iv), React.createElement("tr", { className: cL, role: "row" }, tv));
});
function vg(rv) {
  const { tableRef: tv } = rv, [ev, iv] = reactExports.useState(!1), [ov, av] = reactExports.useState(!1);
  return reactExports.useEffect(() => {
    if (!(tv != null && tv.current))
      return;
    const sv = tv.current, lv = () => {
      const uv = sv.scrollTop > 0;
      ev !== uv && iv(uv);
    };
    return sv.addEventListener("scroll", lv), () => window.removeEventListener("scroll", lv);
  }, [ev]), reactExports.useEffect(() => {
    if (!(tv != null && tv.current))
      return;
    const sv = tv.current, lv = () => {
      const uv = sv.scrollLeft > 0;
      ov !== uv && av(uv);
    };
    return sv.addEventListener("scroll", lv), () => window.removeEventListener("scroll", lv);
  }, [ov]), { hasVerticalScroll: ev, hasHorizontalScroll: ov };
}
const pL = te({ display: "flex", alignItems: "center", text: "$body", minHeight: "2.75rem", bg: "$primary", borderBottom: "$neutral", padding: "$space-0", [oe("clickable", "true")]: { cursor: "pointer", userSelect: "none", ":focus:not([data-focus-visible-added])": { outline: "none", boxShadow: "none" }, ":focus": { outlineColor: "focus" } }, [oe("fixed", "true")]: { position: "sticky", "[role=columnheader]": { zIndex: "$z-4" }, "[role=cell]": { zIndex: "$z-2" }, ":first-child > div": { paddingLeft: "$space-3" }, ":last-child > div": { paddingX: "$space-5" } }, [oe("last-fixed", "true")]: { borderRight: "$neutral", "[role=columnheader]": { zIndex: "$z-3" }, "[role=cell]": { overflowY: "clip", zIndex: "$z-1" } }, [oe("horizontal-scroll", "true")]: { "> div": { boxShadow: "$overlay.center", overflowY: "clip" } }, [oe("horizontal-scroll", "false")]: { "> div": { boxShadow: "none" } } }), gL = te({ display: "flex", alignItems: "center", paddingX: "$space-5", width: "100%", height: "100%" }), bg = reactExports.memo(function(rv) {
  const { column: tv, onClick: ev, role: iv = "cell", ref: ov, children: av, className: sv = "", lastFixedColumn: lv, tableRef: uv } = rv, cv = ve(rv, ["column", "onClick", "role", "ref", "children", "className", "lastFixedColumn", "tableRef"]), dv = (tv == null ? void 0 : tv.fixed) && (lv == null ? void 0 : lv.id) === (tv == null ? void 0 : tv.id), hv = reactExports.useRef(null);
  reactExports.useEffect(() => {
    const yv = () => {
      var Sv;
      if (!(hv != null && hv.current) || !(tv != null && tv.fixed))
        return;
      const { previousElementSibling: _v } = hv.current, Ev = (Sv = _v == null ? void 0 : _v.getBoundingClientRect().width) !== null && Sv !== void 0 ? Sv : 0;
      hv.current.style.left = `${Ev}px`;
    };
    return yv(), window.addEventListener("resize", yv, !1), () => {
      window.removeEventListener("resize", yv, !1);
    };
  }, []);
  const pv = tv != null && tv.fixed ? Pe("__admin-ui-fixed-cell", sv, dv ? "__admin-ui-last-fixed-cell" : "") : sv;
  return React.createElement("td", Object.assign({}, cv, { ref: ln(hv, ov), onClick: ev, role: iv, "data-clickable": !!ev, "data-fixed": tv == null ? void 0 : tv.fixed, "data-last-fixed": dv, "data-horizontal-scroll": (() => {
    if (!dv)
      return !1;
    const { hasHorizontalScroll: yv } = vg({ tableRef: uv });
    return yv;
  })(), className: Pe(pL, pv) }), React.createElement("div", { className: gL }, av));
}), vL = { ASC: "ascending", DESC: "descending" };
reactExports.memo(function(rv) {
  const { column: tv, lastFixedColumn: ev, tableRef: iv, resolveHeader: ov, sortState: av, className: sv = "" } = rv, lv = ve(rv, ["column", "lastFixedColumn", "tableRef", "resolveHeader", "sortState", "className"]), { hasVerticalScroll: uv } = vg({ tableRef: iv }), { content: cv, isSortable: dv, sortDirection: hv } = ov({ column: tv }), pv = Object.assign(Object.assign({}, hv && { "aria-sort": vL[hv] }), dv && { onClick: () => av.sort(tv.id) });
  return React.createElement(bg, Object.assign({}, lv, pv, { lastFixedColumn: ev, tableRef: iv, column: tv, role: "columnheader", className: Pe(dL, sv), "data-vertical-scroll": uv, key: String(tv.id) }), dv ? React.createElement("div", { className: fL }, cv, React.createElement(bL, { direction: hv })) : cv);
});
function bL(rv) {
  const { direction: tv } = rv, ev = ve(rv, ["direction"]);
  return React.createElement("div", Object.assign({ className: hL }, ev), tv !== "DESC" ? React.createElement(Fw, { size: "small", "data-direction": tv == null ? void 0 : tv.toLowerCase(), className: mL }) : React.createElement(Dw, { size: "small" }));
}
const yL = te({ display: "contents" }), EL = te({ display: "contents", [oe("clickable", "true")]: { cursor: "pointer", ":hover": { ".__admin-ui-fixed-cell": { bg: "$primary", "> div": { bg: "$action.neutral.tertiaryHover" } }, "td[role=cell]:not(.__admin-ui-fixed-cell)": { bg: "$action.neutral.tertiaryHover" } } }, [oe("selected", "true")]: { "td[role=cell]": { bg: "$action.main.tertiarySelected" } }, [oe("selected", "false")]: { "td[role=cell]": { bg: "$primary" } } });
reactExports.memo(function(rv) {
  const { children: tv, className: ev = "" } = rv, iv = ve(rv, ["children", "className"]);
  return React.createElement("tbody", Object.assign({ className: Pe(yL, ev) }, iv), tv);
});
reactExports.memo(function(rv) {
  const { column: tv, item: ev, resolveCell: iv, tableRef: ov, lastFixedColumn: av } = rv, sv = ve(rv, ["column", "item", "resolveCell", "tableRef", "lastFixedColumn"]), lv = iv({ item: ev, column: tv });
  return React.createElement(bg, Object.assign({}, sv, { column: tv, tableRef: ov, lastFixedColumn: av }), lv);
});
reactExports.memo(function(rv) {
  const { selected: tv, children: ev, onClick: iv, className: ov = "" } = rv, av = ve(rv, ["selected", "children", "onClick", "className"]);
  return React.createElement("tr", Object.assign({ className: Pe(EL, ov), "data-clickable": !!iv, "data-selected": tv, role: "row", onClick: iv }, av), ev);
});
const xL = Eu({ "0%": { transform: "translateX(-100%)" }, "50%": { transform: "translateX(100%)" }, "100%": { transform: "translateX(100%)" } }), wL = te({ display: "block", position: "relative", size: "100%", bg: "$secondary", overflow: "hidden", "&::after": { animation: `${xL} 1.6s linear 0.5s infinite`, bg: "$skeleton", content: "", position: "absolute", transform: "translateX(-100%)", bottom: "$space-0", left: "$space-0", right: "$space-0", top: "$space-0" }, [oe("shape", "rect")]: { borderRadius: "$base" }, [oe("shape", "circle")]: { borderRadius: "$pill" } }), In = reactExports.forwardRef(function(rv, tv) {
  const { shape: ev = "rect", className: iv = "" } = rv, ov = ve(rv, ["shape", "className"]);
  return React.createElement("div", Object.assign({ ref: tv, "data-shape": ev, className: Pe(wL, iv) }, ov));
}), TL = te({ size: "2.75rem", minSize: "2.75rem", verticalAlign: "middle", borderRadius: "$base", outlineColor: pt(sn, "bg.primary", "bg.primary"), outlineWidth: "0.125rem", outlineStyle: "solid", [oe("image-preview", "true")]: Er("main") });
Pe(TL, te({ animation: "" }));
te({ [oe("size", "small")]: { size: 56, minSize: 56 }, [oe("size", "regular")]: { size: 156, minSize: 156 }, [oe("size", "large")]: { size: 256, minSize: 256 } });
te({ display: "flex", outline: "none", paddingY: "$space-2", paddingX: "$space-2", transition: "var(--image-preview-opacity-transition)", willChange: "opacity", opacity: 0, boxShadow: "$overlay.center", borderRadius: "$base", background: "$primary", zIndex: "$z-9", img: { borderRadius: "$base", willChange: "transform", transformOrigin: "right center", transition: "var(--image-preview-transform-transition)", transform: "scale(0.6)" }, "&[data-enter]": { opacity: 1, img: { transform: "scale(1)" } } });
te({ minHeight: "4rem", [oe("name-column", "true")]: { rowGap: "0.125rem" }, [oe("name-column", "false")]: { rowGap: "0" } });
te({ alignSelf: "flex-end" });
te({ [oe("overflow", "true")]: { whiteSpace: "nowrap", overflow: "hidden" }, [oe({ overflow: !0, type: "ellipsis" })]: { textOverflow: "ellipsis" }, [oe({ overflow: !0, type: "auto" })]: { textOverflow: "auto" } });
reactExports.createContext(null);
function Yn(rv, tv) {
  const { mobile: ev, tablet: iv, desktop: ov, widescreen: av } = tv || {};
  return { [`--${rv}-mobile`]: ho(ev), [`--${rv}-tablet`]: ho(iv), [`--${rv}-desktop`]: ho(ov), [`--${rv}-widescreen`]: ho(av) };
}
function Xn(rv) {
  if (!rv)
    return rv;
  const tv = pt(rv, "mobile", rv), ev = pt(rv, "tablet", tv), iv = pt(rv, "desktop", ev);
  return { mobile: tv, tablet: ev, desktop: iv, widescreen: pt(rv, "widescreen", iv) };
}
function ho(rv) {
  return Array.isArray(rv) ? rv.map((tv) => `"${tv}"`).join(" ") : rv;
}
const SL = te({ display: "grid", gridGap: "var(--gap-mobile)", gridRowGap: "var(--rowGap-mobile)", gridColumnGap: "var(--columnGap-mobile)", gridTemplateAreas: "var(--templateAreas-mobile)", gridTemplateRows: "var(--templateRows-mobile)", gridTemplateColumns: "var(--templateColumns-mobile)", "@tablet": { gap: "var(--gap-tablet)", gridRowGap: "var(--rowGap-tablet)", gridColumnGap: "var(--columnGap-tablet)", gridTemplateAreas: "var(--templateAreas-tablet)", gridTemplateRows: "var(--templateRows-tablet)", gridTemplateColumns: "var(--templateColumns-tablet)" }, "@desktop": { gap: "var(--gap-desktop)", gridRowGap: "var(--rowGap-desktop)", gridColumnGap: "var(--columnGap-desktop)", gridTemplateAreas: "var(--templateAreas-desktop)", gridTemplateRows: "var(--templateRows-desktop)", gridTemplateColumns: "var(--templateColumns-desktop)" }, "@widescreen": { gap: "var(--gap-widescreen)", gridRowGap: "var(--rowGap-widescreen)", gridColumnGap: "var(--columnGap-widescreen)", gridTemplateAreas: "var(--templateAreas-widescreen)", gridTemplateRows: "var(--templateRows-widescreen)", gridTemplateColumns: "var(--templateColumns-widescreen)" } }), AL = te({ gridArea: "var(--area-mobile)", "@tablet": { gridArea: "var(--area-tablet)" }, "@desktop": { gridArea: "var(--area-desktop)" }, "@widescreen": { gridArea: "var(--area-widescreen)" } });
reactExports.forwardRef(function(rv, tv) {
  const { gap: ev, rowGap: iv, columnGap: ov, templateAreas: av, templateRows: sv, templateColumns: lv, className: uv = "" } = rv, cv = ve(rv, ["gap", "rowGap", "columnGap", "templateAreas", "templateRows", "templateColumns", "className"]), dv = (hv = { gap: Xn(ev), rowGap: Xn(iv), columnGap: Xn(ov), templateRows: Xn(sv), templateColumns: Xn(lv), templateAreas: Xn(av) }, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, Yn("gap", hv.gap)), Yn("rowGap", hv.rowGap)), Yn("columnGap", hv.columnGap)), Yn("templateAreas", hv.templateAreas)), Yn("templateRows", hv.templateRows)), Yn("templateColumns", hv.templateColumns)));
  var hv;
  return React.createElement("div", Object.assign({ ref: tv, style: dv, className: Pe(SL, uv) }, cv));
});
reactExports.forwardRef(function(rv, tv) {
  const { area: ev, className: iv = "" } = rv, ov = ve(rv, ["area", "className"]), av = (sv = { area: Xn(ev) }, Object.assign({}, Yn("area", sv.area)));
  var sv;
  return React.createElement("div", Object.assign({ ref: tv, style: av, className: Pe(AL, iv) }, ov));
});
const CL = te({ display: "flex", alignItems: "center", text: "$action2", height: "2.25rem", paddingY: "$space-2", paddingX: "$space-2", border: "none", borderRadius: "$base", cursor: "pointer", "> div": { justifyContent: "flex-start" }, svg: { marginRight: "$space-2", size: "1.25rem" }, [oe("variant", "critical")]: Object.assign(Object.assign({}, or({ tone: "critical", variant: "tertiary" })), { ":active": { color: "$action.critical.tertiaryHover", bg: "$action.critical.tertiaryHover" } }), [oe("variant", "neutral")]: Object.assign(Object.assign({}, or({ tone: "neutral", variant: "tertiary" })), { ":active": { color: "$action.neutral.tertiaryHover", bg: "$action.neutral.tertiaryHover" } }), [oe("variant", "disabled")]: { color: "$disabled" } }), RL = te({ cursor: "not-allowed" }), _L = te({ marginY: "$space-1", minWidth: "9rem", borderRadius: "$base", bg: "$primary", border: "$neutral", boxShadow: "$overlay.center", zIndex: "$z-3" }), IL = te({ marginY: "$space-1", display: "flex", flexDirection: "column", padding: "$space-2 $space-3" }), PL = te({ marginY: "$space-2", marginX: Hr("$space-3"), borderBottom: "$neutral", width: "auto", outline: "none" }), OL = te({ text: "$action1", border: "none", borderRadius: "$base", cursor: "pointer", position: "relative", [oe({ size: "normal", "bleed-y": !0 })]: { marginY: Hr("$space-2") }, [oe({ size: "large", "bleed-y": !0 })]: { marginY: Hr("$space-3") }, [oe({ size: "normal", "bleed-x": !0 })]: { marginX: Hr("$space-3") }, [oe({ size: "large", "bleed-x": !0 })]: { marginX: Hr("$space-4") }, [oe("size", "normal")]: { padding: "$space-2 $space-3", height: "2.25rem" }, [oe("size", "large")]: { padding: "$space-3 $space-4", height: "2.75rem" }, [oe({ size: "normal", custom: !1 })]: { paddingX: "$space-2" }, [oe({ size: "large", custom: !1 })]: { paddingX: "$space-3" }, [oe({ variant: "primary", open: !1 })]: or({ tone: "main", variant: "primary" }), [oe({ variant: "primary", open: !0 })]: { color: "action.main.primaryPressed", bg: "action.main.primaryPressed" }, [oe({ variant: "secondary", open: !1 })]: or({ tone: "main", variant: "secondary" }), [oe({ variant: "secondary", open: !0 })]: { color: "action.main.secondaryPressed", bg: "action.main.secondaryPressed" }, [oe({ variant: "tertiary", open: !1 })]: or({ tone: "main", variant: "tertiary" }), [oe({ variant: "tertiary", open: !0 })]: { color: "action.main.tertiaryPressed", bg: "action.main.tertiaryPressed" }, [oe({ variant: "neutralTertiary", open: !1 })]: or({ tone: "neutral", variant: "tertiary" }), [oe({ variant: "neutralTertiary", open: !0 })]: { color: "action.neutral.tertiaryPressed", bg: "action.neutral.tertiaryPressed" } }), LL = te({ text: "$action1", [oe("icon-position", "start")]: { flexDirection: "row", paddingRight: "$space-1" }, [oe("icon-position", "end")]: { flexDirection: "row-reverse", svg: { marginLeft: "$space-05" } } }), kL = { "en-US": { buttonLabel: "More actions" }, "es-AR": { buttonLabel: "Más acciones" }, "fr-FR": { buttonLabel: "Plus d'actions" }, "pt-BR": { buttonLabel: "Mais ações" }, "ja-JP": { buttonLabel: "More actions" }, "ko-KR": { buttonLabel: "추가 작업" }, "it-IT": { buttonLabel: "Altre azioni" }, "nl-NL": { buttonLabel: "Meer acties" }, "ro-RO": { buttonLabel: "Mai multe acțiuni" }, "bg-BG": { buttonLabel: "Още действия" }, "th-TH": { buttonLabel: "การดำเนินการเพิ่มเติม" }, "de-DE": { buttonLabel: "More actions" } }, DL = reactExports.forwardRef((rv, tv) => {
  const { variant: ev = "primary", size: iv = "normal", state: ov, label: av, labelHidden: sv, bleedY: lv, bleedX: uv, className: cv = "" } = rv, dv = ve(rv, ["variant", "size", "state", "label", "labelHidden", "bleedY", "bleedX", "className"]), hv = !(!av || sv), pv = hv ? "custom" : "default", yv = { default: { icon: React.createElement(Bw, null), position: sv ? "center" : "start", size: "regular" }, custom: { icon: ov.open ? React.createElement(ps, null) : React.createElement(Cu, null), position: "end", size: "small" } }[pv], Sv = mr(kL), _v = av ?? Sv("buttonLabel");
  return React.createElement(Xu, Object.assign({ "aria-label": _v, state: ov, ref: tv }, dv, { "data-size": iv, "data-bleed-x": uv, "data-bleed-y": lv, "data-custom": hv, "data-variant": ev, "data-open": ov.open, className: Pe(OL, cv) }), React.createElement(Ir, { "data-icon-position": yv.position, className: LL }, React.createElement(Ua, { size: yv.size }, yv.icon), !sv && _v));
});
reactExports.forwardRef((rv, tv) => {
  const { children: ev, className: iv = "" } = rv, ov = ve(rv, ["children", "className"]);
  return React.createElement(z0, Object.assign({ className: Pe(_L, iv), ref: tv }, ov), React.createElement("div", { className: IL }, ev));
});
const NL = (rv) => rv.disabled ? React.createElement("div", { className: RL }, rv.children) : React.createElement(React.Fragment, null, rv.children);
reactExports.forwardRef((rv, tv) => {
  const { icon: ev, label: iv, critical: ov, disabled: av, onClick: sv, className: lv = "" } = rv, uv = ve(rv, ["icon", "label", "critical", "disabled", "onClick", "className"]), cv = (av ? "disabled" : ov && "critical") || "neutral";
  return React.createElement(NL, { disabled: av }, React.createElement(kR, Object.assign({ disabled: av, ref: tv, onClick: sv, "data-variant": cv, className: Pe(CL, lv) }, uv), React.createElement(Ir, null, React.createElement(Ua, { size: "small" }, ev), " ", iv)));
});
reactExports.forwardRef((rv, tv) => {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement(MR, Object.assign({ className: Pe(PL, ev), ref: tv }, iv));
});
te({ bg: "$inverted", color: "$inverted", text: "$detail", padding: "$space-2 $space-3", borderRadius: "$base", maxWidth: "16rem", zIndex: "$z-10" });
const FL = te({ size: "1.5rem", bg: "transparent", padding: "$space-0", display: "flex", alignItems: "center", justifyContent: "center", margin: "$space-0", [oe("bleed-x", !0)]: { marginX: Hr("$space-1") }, [oe("bleed-y", !0)]: { marginY: Hr("$space-1") } }), ML = te({ size: "1rem", bg: "$gray20", color: "$primary", borderRadius: "100%", margin: "$space-0", padding: "$space-0", display: "flex" }), $L = te({ size: "1rem" });
reactExports.forwardRef((rv, tv) => {
  const { bleedX: ev = !1, bleedY: iv = !1, type: ov = "button", className: av = "" } = rv, sv = ve(rv, ["bleedX", "bleedY", "type", "className"]);
  return React.createElement("button", Object.assign({ ref: tv, type: ov, className: Pe(FL, av), "data-bleed-x": ev, "data-bleed-y": iv }, sv), React.createElement(Ir, { className: ML }, React.createElement(Ir, { className: $L }, React.createElement(BL, null))));
});
function BL() {
  return React.createElement("svg", { width: 6, height: 8, viewBox: "0 0 6 8", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, React.createElement("path", { d: "M3 7.74999C2.85166 7.74999 2.70666 7.70601 2.58332 7.62359C2.45999 7.54118 2.36386 7.42405 2.30709 7.287C2.25032 7.14996 2.23547 6.99916 2.26441 6.85367C2.29335 6.70819 2.36478 6.57455 2.46967 6.46966C2.57456 6.36477 2.7082 6.29334 2.85368 6.2644C2.99917 6.23546 3.14997 6.25032 3.28701 6.30708C3.42406 6.36385 3.54119 6.45998 3.6236 6.58331C3.70601 6.70665 3.75 6.85166 3.75 6.99999C3.75 7.1989 3.67098 7.38967 3.53033 7.53032C3.38968 7.67097 3.19891 7.74999 3 7.74999ZM3.5 4.69374V4.74999C3.5 4.8826 3.44732 5.00978 3.35355 5.10355C3.25979 5.19731 3.13261 5.24999 3 5.24999C2.86739 5.24999 2.74021 5.19731 2.64645 5.10355C2.55268 5.00978 2.5 4.8826 2.5 4.74999V4.24999C2.5 4.11738 2.55268 3.99021 2.64645 3.89644C2.74021 3.80267 2.86739 3.74999 3 3.74999C3.24723 3.74999 3.4889 3.67668 3.69446 3.53933C3.90002 3.40198 4.06024 3.20675 4.15485 2.97835C4.24946 2.74994 4.27421 2.49861 4.22598 2.25613C4.17775 2.01365 4.0587 1.79092 3.88388 1.61611C3.70907 1.44129 3.48634 1.32224 3.24386 1.27401C3.00139 1.22578 2.75005 1.25053 2.52165 1.34514C2.29324 1.43975 2.09801 1.59997 1.96066 1.80553C1.82331 2.01109 1.75 2.25277 1.75 2.49999C1.75 2.6326 1.69732 2.75978 1.60355 2.85355C1.50979 2.94731 1.38261 2.99999 1.25 2.99999C1.11739 2.99999 0.990215 2.94731 0.896447 2.85355C0.802679 2.75978 0.75 2.6326 0.75 2.49999C0.750002 2.07643 0.869559 1.66148 1.09492 1.30285C1.32028 0.944222 1.6423 0.656488 2.02392 0.472744C2.40555 0.288999 2.83129 0.216705 3.25218 0.264178C3.67307 0.311651 4.07201 0.476962 4.40312 0.741098C4.73424 1.00523 4.98407 1.35747 5.12388 1.75728C5.2637 2.1571 5.28782 2.58826 5.19347 3.00118C5.09913 3.4141 4.89014 3.792 4.59056 4.09142C4.29098 4.39084 3.91297 4.59962 3.5 4.69374Z", fill: "currentColor" }));
}
const mo = (rv) => ({ bg: `$${rv}`, border: `$${rv}`, "> div:first-child svg": { color: `$${rv}`, marginLeft: "unset" } }), UL = te({ text: "$detail", color: "$primary", display: "flex", alignItems: "flex-start", justifyContent: "space-between", minHeight: "3.125rem", height: "100%", paddingY: "0.9375rem", paddingX: "1.188rem", borderRadius: "$base", transition: "pop", [oe("variant", "critical")]: mo("critical"), [oe("variant", "info")]: mo("info"), [oe("variant", "warning")]: mo("warning"), [oe("variant", "positive")]: mo("positive") }), jL = te({ [oe("dismissible", "true")]: { marginLeft: "$space-7", marginRight: "$space-0" }, [oe("dismissible", "false")]: { marginLeft: "$space-7" } }), HL = te({ whiteSpace: "nowrap" }), GL = te({ maxWidth: "49rem" }), zL = reactExports.forwardRef(function(rv, tv) {
  const { children: ev, onDismiss: iv, variant: ov = "info", action: av, className: sv = "" } = rv, lv = ve(rv, ["children", "onDismiss", "variant", "action", "className"]), uv = VL[ov];
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(UL, sv), "data-variant": ov }, lv), React.createElement(Mr, { noWrap: !0, vSpace: "unset", hSpace: "$space-3", spaceInside: !0 }, React.createElement(Ua, { size: "regular" }, uv), React.createElement(Go, { className: GL }, ev)), React.createElement(Pt, { direction: "row", space: "$space-2", className: HL }, av ? React.createElement(Gt, Object.assign({}, av, { variant: "neutralTertiary", bleedY: !0, bleedX: !0, "data-dismissible": !!iv, className: jL })) : null, iv ? React.createElement(Gt, { variant: "neutralTertiary", icon: React.createElement(gs, null), onClick: iv, bleedY: !0, bleedX: !0 }) : null));
});
zL.displayName = "Alert";
const VL = { critical: React.createElement(Om, { weight: "fill" }), positive: React.createElement(_m, { weight: "fill" }), warning: React.createElement(Pm, { weight: "fill" }), info: React.createElement(Am, { weight: "fill" }) }, fl = "0.1875rem", WL = te({ width: "full", display: "inline-block" }), KL = te(Object.assign({ text: "$action1", paddingX: "$space-3", paddingY: "$space-4", borderBottomStyle: "solid", borderBottomColor: "transparent", borderBottomWidth: fl, height: "3rem", cursor: "pointer", position: "relative", bg: "$primary", color: "$action.neutral.tertiary", ":hover": { color: "$action.neutral.tertiaryHover", borderBottom: "$neutral", borderBottomWidth: fl }, '&[aria-selected="true"]': { color: "$action.main.tertiarySelected", borderBottom: "$mainSelected", borderBottomWidth: fl }, '&[aria-disabled="true"]': { cursor: "not-allowed", borderBottom: "none", fg: "$disabled" } }, Er("main"))), YL = te(Object.assign({ padding: "$space-2 $space-3" }, Er("neutral"))), XL = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", state: iv, children: ov } = rv, av = ve(rv, ["className", "state", "children"]);
  return React.createElement(YR, Object.assign({ state: iv, ref: tv, className: Pe(KL, ev) }, av), ov);
}), yg = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", state: iv, children: ov } = rv, av = ve(rv, ["className", "state", "children"]);
  return React.createElement(UR, Object.assign({ state: iv, ref: tv, className: Pe(WL, ev) }, av), React.createElement(Mr, { hSpace: "$space-2", spaceInside: !0 }, ov));
}), qL = reactExports.createContext(null);
function ZL(rv) {
  const tv = reactExports.useContext(qL);
  return rv || tv;
}
const JL = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", state: iv, children: ov } = rv, av = ve(rv, ["className", "state", "children"]), sv = ZL(iv);
  return sv ? React.createElement(GR, Object.assign({ state: sv, ref: tv, className: Pe(YL, ev) }, av), ov) : (console.error("Provide the state property (prefered) or wrap TabPanel with TabPanelProvider"), null);
}), QL = te({ display: "block", width: "100%" }), ek = te({ height: "1rem", position: "absolute", left: "$space-0", right: "$space-0", zIndex: -2147483638, top: "var(--header-distance-from-top, 0)" }), tk = te({ bg: "$primary", color: "$primary", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", width: "100%", borderBottom: "$neutral", position: "sticky", top: "$space-0", minHeight: "5.75rem", paddingX: "2rem", paddingY: "1.5rem", zIndex: "$z-9", [oe("scroll-on-top", "false")]: { boxShadow: "$overlay.center" } }), rk = te({ display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%", maxWidth: "95rem", minHeight: "2.75rem" }), nk = te({ width: "100%", marginTop: "$space-2", "> div": { paddingX: "unset" }, maxWidth: "95rem", [oe("tabs", "true")]: { marginBottom: "-1.5rem", "* > button": { minWidth: "unset" } } }), ik = te({ display: "flex", alignItems: "center", justifyContent: "flex-start" }), ak = te({ text: "$pageTitle", display: "flex", alignItems: "center", flexWrap: "wrap", justifyContent: "flex-start", "> div:first-of-type": { marginLeft: "0.75rem" } }), ok = te({ marginRight: "0.5rem !important" }), sk = te({ display: "flex", alignItems: "center", flexWrap: "wrap", justifyContent: "flex-end" }), lk = te({ minWidth: "6.5rem" }), uk = te({ width: "100%", margin: "auto", display: "grid", gridGap: "1rem", paddingX: "1rem", gridTemplateColumns: "var(--page-content-template)", "@desktop": { paddingX: "2rem" }, [oe("layout", "wide")]: { maxWidth: "99rem", paddingTop: "2rem", paddingBottom: "3rem" }, [oe("layout", "standard")]: { maxWidth: "75rem", paddingTop: "2.5rem", paddingBottom: "5rem" }, [oe("layout", "narrow")]: { maxWidth: "50rem", paddingTop: "3rem", paddingBottom: "8rem" } }), Eg = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(QL, ev) }, iv));
}), xg = reactExports.createContext(null), wg = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", onPopNavigation: iv, children: ov } = rv, av = ve(rv, ["className", "onPopNavigation", "children"]), [sv, lv] = reactExports.useState(!0), [uv, cv] = reactExports.useState(0), dv = reactExports.useRef(null), hv = reactExports.useRef(null), { Portal: pv } = lx();
  reactExports.useEffect(() => {
    var _v;
    !((_v = hv == null ? void 0 : hv.current) === null || _v === void 0) && _v.offsetTop && cv(hv.current.offsetTop);
  }, []);
  const { setNode: yv } = ux({ root: null, rootMargin: "0%", threshold: [1], callback: (_v) => {
    lv(_v.isIntersecting);
  } });
  return reactExports.useEffect(() => {
    dv.current && yv(dv.current);
  }, [yv]), React.createElement("header", Object.assign({ ref: ln(tv, hv), className: Pe(tk, ev), "data-scroll-on-top": sv }, av), React.createElement(pv, null, React.createElement("div", { ref: dv, style: (Sv = uv, { "--header-distance-from-top": Sv }), className: ek })), React.createElement(xg.Provider, { value: { onPopNavigation: iv } }, ov));
  var Sv;
}), Tg = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", layout: iv = "standard" } = rv, ov = ve(rv, ["className", "layout"]);
  return React.createElement("div", Object.assign({ ref: tv, "data-layout": iv, className: Pe(uk, ev) }, ov));
}), ck = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]), av = reactExports.useRef(!1);
  return reactExports.Children.forEach(iv, (sv) => {
    (sv == null ? void 0 : sv.type) === yg && (av.current = !0);
  }), React.createElement("div", Object.assign({ ref: tv, className: Pe(nk, ev), "data-tabs": av.current }, ov), iv);
}), Sg = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(rk, ev) }, iv));
}), Ag = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]), { onPopNavigation: av } = function() {
    const sv = reactExports.useContext(xg);
    if (!sv)
      throw new Error("You must call PageHader composites inside of it");
    return sv;
  }();
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(ik, ev) }, ov), av && React.createElement(Gt, { "aria-label": "Back", variant: "tertiary", size: "large", bleedY: !0, bleedX: !0, icon: React.createElement(Nw, null), onClick: av, className: ok }), React.createElement("div", { className: ak }, iv));
});
reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(sk, ev) }, ov), React.createElement(Pt, { space: "$space-3", direction: "row" }, iv));
});
reactExports.forwardRef((rv, tv) => {
  const { size: ev = "large" } = rv, iv = ve(rv, ["size"]);
  return React.createElement(Gt, Object.assign({ className: lk, size: ev, ref: tv }, iv));
});
reactExports.forwardRef((rv, tv) => {
  const { size: ev = "large", variant: iv = "tertiary", labelHidden: ov = !0 } = rv, av = ve(rv, ["size", "variant", "labelHidden"]);
  return React.createElement(DL, Object.assign({ size: ev, variant: iv, labelHidden: ov, ref: tv }, av));
});
reactExports.forwardRef((rv, tv) => {
  const { size: ev = "large" } = rv, iv = ve(rv, ["size"]);
  return React.createElement(ZO, Object.assign({ size: ev, ref: tv }, iv));
});
reactExports.forwardRef((rv, tv) => {
  const { direction: ev = "row", space: iv = "$space-1" } = rv, ov = ve(rv, ["direction", "space"]);
  return React.createElement(Pt, Object.assign({ direction: ev, space: iv, ref: tv }, ov));
});
const fk = (rv) => ({ "--columns-space": Ca(sn, "padding", rv) }), hk = te({ display: "flex", flexWrap: "wrap", "> *:not(:first-child)": { paddingLeft: "var(--columns-space)" } }), mk = (rv) => ({ "--column-width": rv ? Number(rv) / 12 * 100 + "%" : "auto" }), pk = te({ width: "var(--column-width)", [oe("offset", "left")]: { marginLeft: "auto" }, [oe("offset", "right")]: { marginRight: "auto" }, [oe("offset", "both")]: { marginLeft: "auto", marginRight: "auto" }, [oe("units", "true")]: { flex: "0 0 auto" }, [oe("units", "false")]: { flex: "1 1 0%", maxWidth: "100%" } });
reactExports.forwardRef(function(rv, tv) {
  const { space: ev = "$space-3", className: iv = "" } = rv, ov = ve(rv, ["space", "className"]), { breakpoint: av } = ac(), sv = Ln(ev, av);
  return React.createElement("div", Object.assign({ ref: tv, style: fk(sv), className: Pe(hk, iv) }, ov));
});
reactExports.forwardRef(function(rv, tv) {
  const { units: ev, offset: iv = "none", className: ov = "" } = rv, av = ve(rv, ["units", "offset", "className"]), { breakpoint: sv } = ac(), lv = Ln(ev, sv), uv = Ln(iv, sv), cv = lv ? uv : "none", dv = !!lv;
  return React.createElement("div", Object.assign({ ref: tv, style: mk(lv), "data-offset": cv, "data-units": dv, className: Pe(pk, ov) }, av));
});
const gk = te({ bg: "$primary", color: "$primary", border: "$neutral", borderRadius: "$base", size: "100%", boxSizing: "border-box" }), vk = te({ text: "$title1" }), bk = te({ absoluteSize: "1.25rem" }), yk = te({ display: "flex", justifyContent: "space-between", alignItems: "center", padding: "$space-6 $space-7", width: "100%" }), Ek = te({ ".__admin-ui-card-nested-title": { text: "$title2" }, padding: "$space-0 $space-7 $space-6", size: "100%" });
reactExports.forwardRef((rv, tv) => {
  const { children: ev, className: iv = "" } = rv, ov = ve(rv, ["children", "className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(gk, iv) }, ov), ev);
});
reactExports.forwardRef((rv, tv) => {
  const { children: ev } = rv, iv = ve(rv, ["children"]);
  return React.createElement("div", Object.assign({ ref: tv }, iv), React.createElement(ic, { top: "$space-2", bottom: "$space-2" }, React.createElement(Pt, { direction: "row", space: "$space-3" }, ev)));
});
reactExports.forwardRef((rv, tv) => {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(Ek, ev) }, iv));
});
reactExports.forwardRef((rv, tv) => {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]);
  return React.createElement("h1", Object.assign({ ref: tv, className: Pe("__admin-ui-card-nested-title", vk, ev) }, ov), iv);
});
reactExports.forwardRef((rv, tv) => {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(yk, ev) }, iv));
});
reactExports.forwardRef((rv, tv) => {
  const { children: ev } = rv, iv = ve(rv, ["children"]);
  return React.createElement("div", Object.assign({ ref: tv }, iv), React.createElement(Pt, { direction: "row", space: "$space-3" }, ev));
});
reactExports.forwardRef((rv, tv) => {
  const { className: ev = "", alt: iv = "" } = rv, ov = ve(rv, ["className", "alt"]);
  return React.createElement("img", Object.assign({ ref: tv, alt: iv, className: Pe(bk, ev) }, ov));
});
const Ro = { timeoutMs: 300, enterTransition: "transform 0.2s ease, opacity 0.2s ease", leaveTransition: "opacity 0.1s ease" }, xk = te({ position: "relative", display: "flex", flexDirection: "row", alignItems: "start", justifyContent: "space-between", size: "auto", padding: "$space-4 $space-5", pointerEvents: "all", overflow: "hidden", borderRadius: "$base", [oe("variant", "critical")]: { bg: "$critical", border: "$critical" }, [oe("variant", "positive")]: { bg: "$positive", border: "$positive" }, [oe("variant", "warning")]: { bg: "$warning", border: "$warning" }, [oe("variant", "info")]: { bg: "$info", border: "$info" } }), wk = te({ position: "fixed", zIndex: "$z-10", pointerEvents: "none", bottom: "$space-10", marginLeft: "auto", width: "100%", "@tablet": { right: "$space-12", width: "auto" } }), Tk = te({ width: "16rem" }), Sk = te({ textAlign: "start", text: "$body" });
function Qf(rv) {
  const { element: tv, transforms: ev, transition: iv, onAnimate: ov } = rv, av = setTimeout(() => {
    ov == null || ov();
  }, Ro.timeoutMs);
  ev.forEach(({ property: lv, from: uv = "" }) => {
    tv.style.setProperty(lv, uv);
  }), tv.style.setProperty("transition", "");
  const sv = (lv) => {
    lv.target === tv && (tv.style.setProperty("transition", ""), ov == null || ov(), tv.removeEventListener("transitionend", sv), clearTimeout(av));
  };
  tv.addEventListener("transitionend", sv), requestAnimationFrame(() => {
    requestAnimationFrame(() => {
      tv.style.setProperty("transition", iv), ev.forEach(({ property: lv, to: uv = "" }) => {
        tv.style.setProperty(lv, uv);
      });
    });
  });
}
function Ak(rv, tv) {
  switch (tv.type) {
    case "enqueue": {
      const { toast: ev } = tv;
      if (rv.toasts.some((iv) => iv.dedupeKey === ev.dedupeKey)) {
        const { dedupeKey: iv } = ev;
        return { toasts: rv.toasts.map((ov) => ov.dedupeKey === iv ? Object.assign(Object.assign({}, ov), { shouldRemove: !0 }) : ov), queue: Object.assign(Object.assign({}, rv.queue), { [iv]: ev }) };
      }
      return Object.assign(Object.assign({}, rv), { toasts: [...rv.toasts, ev] });
    }
    case "dequeue": {
      const ev = rv.toasts.filter(({ dedupeKey: ov }) => ov !== tv.key), iv = rv.queue[tv.key];
      return iv ? { queue: Object.assign(Object.assign({}, rv.queue), { [tv.key]: void 0 }), toasts: [...ev, iv] } : Object.assign(Object.assign({}, rv), { toasts: ev });
    }
  }
}
const Ck = reactExports.forwardRef((rv, tv) => {
  const { variant: ev = "info", className: iv = "" } = rv, ov = ve(rv, ["variant", "className"]);
  return React.createElement("div", Object.assign({ ref: tv, "data-variant": ev, className: Pe(xk, iv) }, ov));
}), Rk = { positive: React.createElement(_m, { weight: "fill", className: te({ color: "$positive" }) }), warning: React.createElement(Pm, { weight: "fill", className: te({ color: "$warning" }) }), critical: React.createElement(Om, { weight: "fill", className: te({ color: "$critical" }) }), info: React.createElement(Am, { className: te({ color: "$info" }) }) }, _k = React.forwardRef((rv, tv) => {
  const { id: ev, dedupeKey: iv, message: ov, onClear: av, dismissible: sv, action: lv, shouldRemove: uv, variant: cv = "info", duration: dv = 1e4 } = rv, hv = ve(rv, ["id", "dedupeKey", "message", "onClear", "dismissible", "action", "shouldRemove", "variant", "duration"]), pv = reactExports.useCallback(() => av(iv, ev), [av, iv, ev]), { stopTimeout: yv, startTimeout: Sv } = ox({ duration: dv, onTimeout: pv });
  return reactExports.useEffect(() => {
    uv && (yv(), pv());
  }, [uv, pv, yv]), React.createElement(Ck, Object.assign({ role: "alert", ref: tv, onMouseEnter: yv, onMouseLeave: Sv, variant: cv }, hv), React.createElement(Mr, { spaceInside: !0, align: "start", hSpace: "$space-3" }, React.createElement(Ir, null, Rk[cv]), React.createElement(Pt, { space: "$space-2", className: Tk }, React.createElement("p", { className: Sk }, ov), lv && React.createElement(Gt, { bleedX: !0, bleedY: !0, variant: "neutralTertiary", key: lv.label, onClick: (_v) => {
    pv(), lv.onClick(), _v.stopPropagation();
  } }, lv.label))), sv && React.createElement(Gt, { bleedX: !0, bleedY: !0, variant: "neutralTertiary", icon: React.createElement(gs, null), "aria-label": "Close toast", onClick: (_v) => {
    pv(), _v.stopPropagation();
  } }));
}), Cg = reactExports.createContext(null);
function Ik(rv) {
  const { children: tv } = rv, { add: ev, remove: iv, toasts: ov } = function() {
    const [{ toasts: uv }, cv] = reactExports.useReducer(Ak, { toasts: [], queue: {} });
    return { toasts: uv, add: reactExports.useCallback((dv) => cv({ type: "enqueue", toast: dv }), []), remove: reactExports.useCallback((dv) => cv({ type: "dequeue", key: dv }), []) };
  }(), { itemRef: av, remove: sv } = function() {
    const uv = reactExports.useMemo(() => /* @__PURE__ */ new Map(), []), cv = reactExports.useMemo(() => /* @__PURE__ */ new Map(), []);
    ga(() => {
      const hv = [];
      Array.from(uv.entries()).forEach(([pv, yv]) => {
        if (yv) {
          const Sv = cv.get(pv), { top: _v, height: Ev } = yv.getBoundingClientRect();
          typeof Sv == "number" && Sv !== _v ? hv.push({ element: yv, transition: Ro.enterTransition, transforms: [{ property: "transform", from: `translateY(${Sv - _v}px)` }] }) : typeof Sv != "number" && hv.push({ element: yv, transition: Ro.enterTransition, transforms: [{ property: "transform", from: `translateY(${Ev}px)` }, { property: "opacity", from: "0" }] }), cv.set(pv, yv.getBoundingClientRect().top);
        } else
          uv.delete(pv);
      }), hv.forEach((pv) => {
        Qf(pv);
      });
    });
    const dv = reactExports.useCallback((hv, pv) => {
      const yv = uv.get(hv);
      yv && Qf({ element: yv, transforms: [{ property: "opacity", to: "0" }], transition: Ro.leaveTransition, onAnimate: pv });
    }, [uv]);
    return { itemRef: reactExports.useCallback((hv) => (pv) => {
      uv.set(hv, pv);
    }, [uv]), remove: dv };
  }(), lv = reactExports.useCallback((uv, cv) => {
    sv(cv, () => {
      iv(uv);
    });
  }, [sv, iv]);
  return React.createElement(Cg.Provider, { value: ev }, tv, React.createElement(w2, null, React.createElement(Pt, { space: "$space-6", className: wk }, ov.map((uv) => {
    var { id: cv } = uv, dv = ve(uv, ["id"]);
    return React.createElement(_k, Object.assign({ ref: av(cv), key: cv, id: cv, onClear: lv }, dv));
  }))));
}
function Pk(rv) {
  const { children: tv } = rv;
  return reactExports.useContext(Cg) !== null ? React.createElement(reactExports.Fragment, null, tv) : React.createElement(Ik, null, tv);
}
const Ok = { "en-US": { selectAll: "Select all", deselectAll: "Deselect all", selected: "{current} of {total} selected" }, "es-AR": { selectAll: "Seleccionar todo", deselectAll: "Cancelar selección", selected: "{current} de {total} seleccionados" }, "fr-FR": { selectAll: "Tout sélectionner", deselectAll: "Tout désélectionner", selected: "{current} sur {total} sélectionnés" }, "pt-BR": { selectAll: "Selecione todos", deselectAll: "Desselecione todos", selected: "{current} de {total} selecionados" }, "ja-JP": { selectAll: "Select all", deselectAll: "Deselect all", selected: "{current} of {total} selected" }, "ko-KR": { selectAll: "모두 선택", deselectAll: "모두 선택 취소", selected: "{total}개 중 {current}개가 선택됨" }, "it-IT": { selectAll: "Seleziona tutto", deselectAll: "Deseleziona tutto", selected: "{current} di {total} selezionati" }, "nl-NL": { selectAll: "Alles selecteren", deselectAll: "Alles deselecteren", selected: "{current} van {total} geselecteerd" }, "ro-RO": { selectAll: "Избор на всички", deselectAll: "Премахване на избора", selected: "избрани {current} от {total}" }, "bg-BG": { selectAll: "Избор на всички", deselectAll: "Премахване на избора", selected: "избрани {current} от {total}" }, "th-TH": { selectAll: "เลือกทั้งหมด", deselectAll: "เลิกเลือกทั้งหมด", selected: "เลือกแล้ว {current} จาก {total}" }, "de-DE": { selectAll: "Alles auswählen", deselectAll: "Alle abwählen", selected: "{current} von {total} ausgewählt" } }, eh = te({ justifyContent: "center", alignItems: "center", paddingX: "$space-3" }), Lk = te({ justifyContent: "center", alignItems: "center", width: "fit-content", padding: "$space-4 $space-5", bg: "$primary", border: "$neutral", borderRadius: "$base", boxShadow: "$overlay.center", marginX: "auto" }), kk = te({ width: "100%", position: "fixed", bottom: "$space-6", left: "$space-0", pointerEvents: "none", "> *": { pointerEvents: "auto" }, zIndex: "$z-5" });
reactExports.forwardRef((rv, tv) => {
  const { children: ev, state: iv, className: ov = "" } = rv, av = ve(rv, ["children", "state", "className"]), sv = mr(Ok), { allSelected: lv, totalItems: uv, getSelectedIds: cv, setAllSelected: dv, setSelectedItemsIds: hv, setRoot: pv, isVisible: yv } = iv;
  return yv ? React.createElement("div", Object.assign({ className: Pe(kk, ov), ref: tv }, av), yv ? React.createElement(Mr, { hSpace: "$space-7", spaceInside: !0, className: Lk }, React.createElement(Mr, { hSpace: "$space-2", spaceInside: !0, align: "center", className: eh }, React.createElement(Nr, { tone: "secondary" }, sv("selected", { current: lv ? uv : cv().length, total: uv })), React.createElement(Gt, { variant: "neutralTertiary", onClick: () => {
    lv && (pv(!1), hv([])), dv((Sv) => !Sv);
  } }, sv(lv ? "deselectAll" : "selectAll"))), React.createElement(ic, { right: "$space-3" }, React.createElement(Mr, { hSpace: "$space-2", spaceInside: !0, className: eh }, ev))) : null) : null;
});
const As = { "en-US": { apply: "Apply", clear: "Clear", clearAll: "Clear all", moreFilters: "More filters", errorTitle: "Something went wrong", retry: "Try again", empty: "No filters available", noResultsTitle: "No filters match your search", noResultsSubtitle: "Try using different terms" }, "es-AR": { apply: "Aplicar", clear: "Limpiar", clearAll: "Limpiar todo", moreFilters: "Más filtros", errorTitle: "Se produjo un error", retry: "Inténtalo de nuevo", empty: "No hay filtros disponibles", noResultsTitle: "Ningún filtro coincide con tu búsqueda", noResultsSubtitle: "Intenta utilizar otros términos" }, "fr-FR": { apply: "Appliquer", clear: "Effacer", clearAll: "Tout effacer", moreFilters: "Plus de filtres", errorTitle: "Quelque chose s'est mal passé", retry: "Réessayer", empty: "Aucun filtre disponible", noResultsTitle: "Aucun filtre ne correspond à votre recherche", noResultsSubtitle: "Essayez d'utiliser des termes différents" }, "pt-BR": { apply: "Aplicar", clear: "Limpar", clearAll: "Limpar todos", moreFilters: "Mais filtros", errorTitle: "Algo deu errado", retry: "Tentar novamente", empty: "Nenhum filtro disponível", noResultsTitle: "Nenhum filtro corresponde à sua busca", noResultsSubtitle: "Tente usar termos diferentes" }, "ja-JP": { apply: "申し込み", clear: "クリア", clearAll: "すべてクリア", moreFilters: "その他のフィルター", errorTitle: "エラーが発生しました", retry: "再試行", empty: "利用できるフィルターはありません", noResultsTitle: "検索に一致するフィルターはありません", noResultsSubtitle: "別の用語を使用してみてください" }, "ko-KR": { apply: "적용하다", clear: "분명한", clearAll: "모두 지우기", moreFilters: "추가 필터", errorTitle: "문제가 발생했습니다.", retry: "다시 시도하십시오", empty: "사용 가능한 필터가 없습니다.", noResultsTitle: "검색어와 일치하는 필터가 없습니다.", noResultsSubtitle: "다른 용어를 사용해 보세요" }, "it-IT": { apply: "Applicare", clear: "Chiaro", clearAll: "Cancella tutto", moreFilters: "Più filtri", errorTitle: "Qualcosa è andato storto", retry: "Riprova", empty: "Nessun filtro disponibile", noResultsTitle: "Nessun filtro corrisponde alla tua ricerca", noResultsSubtitle: "Prova a usare termini diversi" }, "nl-NL": { apply: "Van toepassing zijn", clear: "Doorzichtig", clearAll: "Wis alles", moreFilters: "Meer filters", errorTitle: "Er is iets fout gegaan", retry: "Probeer het nog eens", empty: "Geen filters beschikbaar", noResultsTitle: "Er zijn geen filters die overeenkomen met uw zoekopdracht", noResultsSubtitle: "Probeer andere termen te gebruiken" }, "ro-RO": { apply: "Aplica", clear: "Clar", clearAll: "Curata tot", moreFilters: "Mai multe filtre", errorTitle: "Ceva n-a mers bine", retry: "Încearcă din nou", empty: "Nu există filtre disponibile", noResultsTitle: "Niciun filtru nu corespunde căutării dvs", noResultsSubtitle: "Încercați să utilizați termeni diferiți" }, "bg-BG": { apply: "Приложи", clear: "ясно", clearAll: "изчисти всичко", moreFilters: "Още филтри", errorTitle: "Нещо се обърка", retry: "Опитай пак", empty: "Няма налични филтри", noResultsTitle: "Няма филтри, отговарящи на вашето търсене", noResultsSubtitle: "Опитайте да използвате различни термини" }, "th-TH": { apply: "ใช้", clear: "ล้าง", clearAll: "ล้างทั้งหมด", moreFilters: "ตัวกรองเพิ่มเติม", errorTitle: "มีบางอย่างผิดปกติ", retry: "โปรดลองอีกครั้ง", empty: "ไม่มีตัวกรองที่พร้อมใช้งาน", noResultsTitle: "ไม่มีตัวกรองที่ตรงกับการค้นหาของคุณ", noResultsSubtitle: "ลองใช้คำอื่นที่ต่างออกไป" }, "de-DE": { apply: "Anwenden", clear: "Löschen", clearAll: "Alle löschen", moreFilters: "Mehr Filter", errorTitle: "Ein Problem ist aufgetreten", retry: "Versuchen Sie es erneut", empty: "Keine Filter verfügbar", noResultsTitle: "Keine Filter entsprechen Ihrer Suche", noResultsSubtitle: "Versuche andere Begriffe zu verwenden" } }, Dk = te({ border: "none", borderRadius: "$base", cursor: "pointer", position: "relative", padding: "$space-2 $space-3", height: "2.25rem", display: "flex", alignItems: "center", justifyContent: "center", text: "$action2", bg: "$action.neutral.secondary", color: "$secondary", ":hover": { bg: "$action.neutral.secondaryHover", color: "$secondary" }, ":active": { bg: "$action.neutral.secondaryPressed", color: "$secondary" }, [oe("open", "true")]: { bg: "$action.neutral.secondaryPressed", color: "$secondary" } }), Rg = te({ marginLeft: "$space-1", [oe("open", "true")]: { svg: { margin: "$space-0", transform: "rotate(0deg)" } }, [oe("open", "false")]: { svg: { margin: "$space-0", transform: "rotate(180deg)" } } }), Nk = te({ text: "$body", boxShadow: "$overlay.bottom", border: "$neutral", borderRadius: "$base", bg: "$primary", display: "flex", flexDirection: "column", justifyContent: "space-between", width: "16rem", zIndex: "$z-4" }), _g = te(Object.assign(Object.assign({ display: "flex", cursor: "pointer" }, Er("main")), { "> input": { marginRight: "$space-2" } })), Fk = te({ padding: "$space-4 $space-5", paddingTop: "$space-0", marginTop: "$space-4", maxHeight: 240, overflowY: "auto", display: "none", [oe("status", "ready")]: { display: "inline" } }), Mk = te({ marginY: "$space-1", "> *:not(:first-child)": { marginTop: "$space-4" } }), $k = te({ fg: "$primary" }), Bk = te({ marginX: "$space-1", color: "$primary", marginLeft: "$space-1", textOverflow: "ellipsis", overflow: "hidden", whiteSpace: "nowrap", maxWidth: "300px" }), Uk = te({ margin: "$space-5", marginBottom: "$space-0", order: -1, "> input": { minWidth: "auto" }, "& ~ .__admin-ui-filter-status": { minHeight: "16rem" } }), po = te({ padding: "$space-4 $space-5" }), jk = te({ display: "flex", flexWrap: "wrap", "> .__admin-ui-filter-disclosure:not(:first-child)": { marginLeft: "$space-2" } }), Hk = te({ padding: "$space-4 $space-5", display: "flex", justifyContent: "end", order: 999, [oe("scrollable", "true")]: { borderTop: "$neutral" }, [oe("scrollable", "false")]: { borderTop: "none", paddingTop: "$space-0" } }), Gk = te(Object.assign(Object.assign({ display: "flex", alignItems: "center", text: "$action2", height: "2.25rem", paddingY: "$space-2", paddingX: "$space-2", border: "none", borderRadius: "$base", cursor: "pointer", "> div": { justifyContent: "flex-start" } }, or({ tone: "neutral", variant: "tertiary" })), { ":active": { color: "$action.neutral.tertiaryHover", bg: "$action.neutral.tertiaryHover" }, justifyContent: "space-between", svg: { marginRight: "$space-0", marginLeft: "$space-2", size: "1.25rem" }, [oe("selected", "true")]: { color: "action.main.tertiary", ":hover": { color: "action.main.tertiaryHover", bg: "action.neutral.tertiaryHover" }, ":focus-visible:not(:active)": { color: "action.main.tertiaryHover", bg: "action.neutral.tertiaryHover" } } })), zk = Pe(og, te({ display: "flex", justifyContent: "center", alignItems: "center" }));
reactExports.forwardRef(function(rv, tv) {
  const { children: ev, state: iv, className: ov = "" } = rv, av = ve(rv, ["children", "state", "className"]), sv = mr(As);
  return React.createElement("div", Object.assign({ ref: tv, role: "group", className: Pe(jk, ov) }, av), ev, React.createElement(Gt, { onClick: iv.onClear, variant: "neutralTertiary", className: te({ marginLeft: "$space-2" }), hidden: !iv.hasFilterApplied }, sv("clearAll")));
});
const Ig = React.createContext(null);
function Si() {
  const rv = React.useContext(Ig);
  return qh(rv), rv;
}
const { Provider: Vk } = Ig, Wk = reactExports.forwardRef(function(rv, tv) {
  const { id: ev, value: iv, label: ov, className: av = "", onClick: sv, children: lv } = rv, uv = ve(rv, ["id", "value", "label", "className", "onClick", "children"]), { state: cv } = Si(), dv = { id: ev, label: ov, value: iv }, hv = cv.combobox;
  return React.createElement(Ts, Object.assign({ ref: tv, className: Pe(_g, av), onClick: (pv) => {
    hv.onChange(dv), sv == null || sv(pv);
  }, id: ev, "aria-selected": hv.isSelected(dv) }, uv), lv || React.createElement(React.Fragment, null, React.createElement(NO, { checked: hv.isSelected(dv), "aria-checked": void 0, readOnly: !0 }), ov));
}), Kk = reactExports.forwardRef(function(rv, tv) {
  var ev, iv, ov, av;
  const { children: sv, id: lv, className: uv = "" } = rv, cv = ve(rv, ["children", "id", "className"]), dv = reactExports.useRef(null), { isScrollableLayout: hv, setIsScrollableLayout: pv, state: { combobox: yv, status: Sv } } = Si(), _v = (iv = (ev = dv == null ? void 0 : dv.current) === null || ev === void 0 ? void 0 : ev.scrollHeight) !== null && iv !== void 0 ? iv : 0, Ev = (av = (ov = dv == null ? void 0 : dv.current) === null || ov === void 0 ? void 0 : ov.clientHeight) !== null && av !== void 0 ? av : 0;
  reactExports.useEffect(() => {
    const xv = _v > Ev;
    hv !== xv && pv(xv);
  }, [_v, Ev]);
  const wv = Object.assign(Object.assign({}, yv), { matches: [], visible: !0 });
  return React.createElement("div", Object.assign({ ref: ln(dv, tv), className: Pe(Fk, uv), "data-status": Sv, id: lv }, cv), React.createElement(m2, { state: wv, id: lv, className: Mk }, sv));
});
function Yk(rv) {
  const { status: tv, onRetry: ev } = rv, iv = mr(As);
  return tv ? tv === "ready" ? null : React.createElement(React.Fragment, null, tv === "empty" && React.createElement("div", { className: po }, React.createElement(Nr, { variant: "title2" }, iv("empty"))), tv === "loading" && React.createElement(Pt, { className: po, space: "$space-6" }, React.createElement(Pt, { space: "$space-4", className: te({ width: "3/4" }) }, React.createElement(In, { className: te({ height: "1.25rem" }) }), React.createElement(In, { className: te({ width: "9/12", height: "1.25rem" }) }), React.createElement(In, { className: te({ width: "10/12", height: "1.25rem" }) }), React.createElement(In, { className: te({ width: "11/12", height: "1.25rem" }) }), React.createElement(In, { className: te({ width: "8/12", height: "1.25rem" }) })), React.createElement(Pt, { direction: "row", className: te({ width: "100%", justifyContent: "flex-end" }) }, React.createElement(In, { className: te({ height: "2rem", width: "3.875rem" }) }), React.createElement(In, { className: te({ height: "2rem", width: "3.875rem" }) }))), tv === "error" && React.createElement(Pt, { className: Pe(po, "__admin-ui-filter-status") }, React.createElement(Nr, { variant: "title2" }, iv("errorTitle")), React.createElement(Gt, { variant: "tertiary", onClick: ev, bleedX: !0 }, iv("retry"))), tv === "not-found" && React.createElement(Pt, { className: Pe(po, "__admin-ui-filter-status"), space: "$space-05" }, React.createElement(Nr, { variant: "title2" }, iv("noResultsTitle")), React.createElement(Nr, { variant: "body", tone: "secondary" }, iv("noResultsSubtitle")))) : null;
}
const Xk = reactExports.forwardRef(function(rv, tv) {
  const { children: ev, state: iv, className: ov = "", onRetry: av = () => {
  } } = rv, sv = ve(rv, ["children", "state", "className", "onRetry"]), [lv, uv] = reactExports.useState(!1), cv = { isScrollableLayout: lv, setIsScrollableLayout: uv, state: iv }, dv = !(iv.status === "loading" || iv.status === "empty");
  return React.createElement(z0, Object.assign({ state: iv.menu, ref: tv, className: Pe(Nk, ov) }, sv), React.createElement(Vk, { value: cv }, React.createElement(Bn, { direction: "column" }, dv && ev, React.createElement(Yk, { status: iv.status, onRetry: av }))));
}), qk = reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]), { state: av } = Si(), { onChange: sv, onClear: lv } = av, uv = mr(As), { isScrollableLayout: cv } = Si();
  return React.createElement("div", Object.assign({ ref: tv, "data-scrollable": cv, className: Pe(Hk, ev) }, ov), iv || React.createElement(Pt, { direction: "row", space: "$space-2" }, React.createElement(Gt, { variant: "tertiary", onClick: lv }, uv("clear")), React.createElement(Gt, { onClick: sv }, uv("apply"))));
});
reactExports.forwardRef(function(rv, tv) {
  const { state: ev } = rv, iv = ve(rv, ["state"]), { combobox: ov, menu: av, onChange: sv } = ev, lv = mr(As);
  return React.createElement("div", Object.assign({}, iv, { ref: tv }), React.createElement(Xu, { className: zk, "data-variant": "neutralTertiary", "data-size": "normal", state: av }, lv("moreFilters"), React.createElement(Bn, { className: Rg, "data-open": av.mounted }, React.createElement(ps, { size: "small" }))), React.createElement(Xk, { state: ev }, React.createElement(Kk, { className: te({ "> * > *:not(:first-child)": { marginTop: "$space-0" } }) }, ev.items.map((uv) => React.createElement(Wk, { id: uv.id, label: uv.label, className: Gk, "data-selected": ov.isSelected(uv) }, uv.label, ov.isSelected(uv) && React.createElement($w, null)))), React.createElement(qk, null, React.createElement(Gt, { onClick: sv }, lv("apply")))));
});
const Zk = React.createContext(null), Jk = (rv) => {
  const { checked: tv } = rv;
  return React.createElement("input", { className: dg, checked: tv, type: "radio", readOnly: !0 });
};
reactExports.forwardRef(function(rv, tv) {
  const { id: ev, label: iv, value: ov, className: av = "", onClick: sv } = rv, lv = ve(rv, ["id", "label", "value", "className", "onClick"]), { state: uv } = Si(), { selectedItem: cv, setSelectedItem: dv } = uv.combobox, hv = (cv == null ? void 0 : cv.id) === ev || !1, pv = { id: ev, label: iv, value: ov };
  return React.createElement(Ts, Object.assign({ ref: tv, className: Pe(_g, av), id: ev, onClick: (yv) => {
    dv(pv), sv == null || sv(yv);
  }, "aria-selected": hv }, lv), React.createElement(Jk, { checked: hv }), iv);
});
const Qk = (rv) => {
  var tv;
  const { appliedItems: ev } = rv, iv = ev.length > 1 ? "," : "", ov = `${((tv = ev[0]) === null || tv === void 0 ? void 0 : tv.label) || ""}${iv}`, av = ev.length > 1 ? "+" + (ev.length - 1) : "";
  return ev.length ? React.createElement(React.Fragment, null, React.createElement("span", null, ":"), React.createElement("span", { className: $k }, React.createElement("span", { className: Bk }, ov), av)) : null;
};
reactExports.forwardRef(function(rv, tv) {
  var ev, iv;
  const { state: ov, children: av, id: sv, className: lv = "" } = rv, uv = ve(rv, ["state", "children", "id", "className"]), { shouldOpenOnMount: cv = () => !1 } = React.useContext(Zk) || {}, { menu: dv } = ov, hv = (iv = (ev = ov) === null || ev === void 0 ? void 0 : ev.appliedItems) !== null && iv !== void 0 ? iv : ((yv) => {
    const Sv = yv;
    return Sv.appliedItem ? [Sv.appliedItem] : [];
  })(ov);
  reactExports.useEffect(() => {
    cv() && dv.show();
  }, []);
  const pv = Pe("__admin-ui-filter-disclosure", lv);
  return React.createElement(Xu, Object.assign({ ref: tv, state: dv, id: sv, className: Pe(Dk, pv), "data-open": dv.mounted }, uv), av, React.createElement(Qk, { appliedItems: hv }), React.createElement(Bn, { className: Rg, "data-open": dv.mounted }, React.createElement(ps, { size: "small" })));
});
reactExports.forwardRef(function(rv, tv) {
  const { id: ev, className: iv = "" } = rv, ov = ve(rv, ["id", "className"]), { state: { combobox: av } } = Si(), { setValue: sv, value: lv } = av;
  return React.createElement(GO, Object.assign({ ref: tv, id: ev, value: lv, onClear: () => sv(""), onChange: (uv) => sv(uv.target.value), className: Pe(Uk, iv) }, ov));
});
const eD = { "en-US": { pagination: "{currentPage} of {total}", prevLabel: "Return to previous page", nextLabel: "Advance to next page" }, "es-AR": { pagination: "{currentPage} de {total}", prevLabel: "Volver a la página anterior", nextLabel: "Ir a la página siguiente" }, "fr-FR": { pagination: "{currentPage} sur {total}", prevLabel: "Retour à la page précédente", nextLabel: "Avancer à la page suivante" }, "pt-BR": { pagination: "{currentPage} de {total}", prevLabel: "Retorne para página anterior", nextLabel: "Avance para página seguinte" }, "ja-JP": { pagination: "{currentPage} of {total}", prevLabel: "Return to previous page", nextLabel: "Advance to next page" }, "ko-KR": { pagination: "{total} 중 {currentPage}", prevLabel: "이전 페이지로 돌아가기", nextLabel: "다음 페이지로 이동" }, "it-IT": { pagination: "{currentPage} di {total}", prevLabel: "Torna alla pagina precedente", nextLabel: "Prosegui alla pagina successiva" }, "nl-NL": { pagination: "{currentPage} van {total}", prevLabel: "Terug naar de vorige pagina", nextLabel: "Doorgaan naar de volgende pagina" }, "ro-RO": { pagination: "{currentPage} din {total}", prevLabel: "Mergi înapoi la pagina anterioară", nextLabel: "Treci la pagina următoare" }, "bg-BG": { pagination: "{currentPage} от {total}", prevLabel: "Назад към предишната страница", nextLabel: "Напред към следващата страница" }, "th-TH": { pagination: "{currentPage} จาก {total}", prevLabel: "กลับไปยังหน้าก่อนหน้า", nextLabel: "เลื่อนไปยังหน้าถัดไป" }, "de-DE": { pagination: "{currentPage} von {total}", prevLabel: "Zurück zur vorherigen Seite", nextLabel: "Weiter zur nächsten Seite" } }, tD = te({ whiteSpace: "nowrap", display: "flex", justifyContent: "flex-end", [oe("size", "small")]: { width: "6.5rem" }, [oe("size", "medium")]: { width: "7.5rem" }, [oe("size", "large")]: { width: "7.75rem" }, [oe("size", "xlarge")]: { width: "8.25rem" } }), rD = te({ height: "1rem", width: "4.125rem" });
reactExports.forwardRef(function(rv, tv) {
  const { state: { range: [ev, iv], paginate: ov, prevDisabled: av, nextDisabled: sv, total: lv, numberOfPages: uv, onNextPage: cv, onPrevPage: dv }, loading: hv } = rv, pv = ve(rv, ["state", "loading"]), yv = function(Ev) {
    return Ev < 1e3 ? "small" : Ev < 1e4 ? "medium" : Ev < 1e5 ? "large" : "xlarge";
  }(lv), Sv = mr(eD), _v = uv <= 1 ? lv : `${ev} — ${iv}`;
  return React.createElement("div", Object.assign({ ref: tv }, pv), React.createElement(Mr, { align: "center", hSpace: "$space-2", spaceInside: !0, noWrap: !0 }, hv ? React.createElement(In, { className: rD }) : React.createElement(Nr, { tone: "secondary", variant: "detail", "data-size": yv, className: tD }, Sv("pagination", { currentPage: _v, total: lv })), React.createElement(Bn, { align: "center" }, React.createElement(Gt, { "aria-label": Sv("prevLabel"), variant: "neutralTertiary", disabled: hv || av, onClick: () => {
    dv == null || dv(), ov({ type: "prev" });
  }, icon: React.createElement(Cm, null) }), React.createElement(Gt, { "aria-label": Sv("nextLabel"), variant: "neutralTertiary", disabled: hv || sv, onClick: () => {
    cv == null || cv(), ov({ type: "next" });
  }, icon: React.createElement(Rm, null) }))));
});
function nD(rv) {
  return React.createElement("svg", Object.assign({ fill: "none", xmlns: "http://www.w3.org/2000/svg" }, rv));
}
function iD(rv) {
  const { width: tv = 160, height: ev = 161, viewBox: iv = "0 0 160 161" } = rv, ov = ve(rv, ["width", "height", "viewBox"]);
  return React.createElement(nD, Object.assign({ width: tv, height: ev, viewBox: iv }, ov), React.createElement("g", { clipPath: "url(#clip0_8970_392336)" }, React.createElement("path", { d: "M6 34.5C6 32.2909 7.79086 30.5 10 30.5H102C104.209 30.5 106 32.2909 106 34.5V126.5C106 128.709 104.209 130.5 102 130.5H10C7.79086 130.5 6 128.709 6 126.5V34.5Z", fill: "white" }), React.createElement("rect", { x: "18", y: "42.5", width: "48", height: "6", rx: "3", fill: "#CC3D3D", fillOpacity: "0.4" }), React.createElement("rect", { x: "18", y: "56.5", width: "52", height: "6", rx: "3", fill: "#CC3D3D", fillOpacity: "0.4" }), React.createElement("rect", { x: "18", y: "70.5", width: "48", height: "6", rx: "3", fill: "#CC3D3D", fillOpacity: "0.3" }), React.createElement("rect", { x: "18", y: "84.5", width: "52", height: "6", rx: "3", fill: "#CC3D3D", fillOpacity: "0.3" }), React.createElement("rect", { x: "18", y: "98.5", width: "43", height: "6", rx: "3", fill: "#CC3D3D", fillOpacity: "0.2" }), React.createElement("rect", { x: "18", y: "112.5", width: "48", height: "6", rx: "3", fill: "#CC3D3D", fillOpacity: "0.2" }), React.createElement("circle", { cx: "111.284", cy: "74.2157", r: "25.2843", transform: "rotate(-90 111.284 74.2157)", fill: "white", stroke: "#CC3D3D", strokeWidth: "6" }), React.createElement("rect", { x: "127.513", y: "94.2559", width: "6", height: "29.4511", rx: "3", transform: "rotate(-45 127.513 94.2559)", fill: "#CC3D3D" }), React.createElement("path", { d: "M109.61 77.3372L109.207 64.5315C109.189 63.9671 109.642 63.5 110.206 63.5H112.007C112.572 63.5 113.025 63.9685 113.006 64.5336L112.576 77.3372H109.61ZM111.122 84.5C110.483 84.5 109.969 84.2965 109.581 83.8895C109.194 83.4632 109 82.9496 109 82.3488C109 81.7674 109.194 81.2636 109.581 80.8372C109.969 80.4109 110.483 80.1977 111.122 80.1977C111.762 80.1977 112.275 80.4109 112.663 80.8372C113.07 81.2636 113.273 81.7674 113.273 82.3488C113.273 82.9496 113.07 83.4632 112.663 83.8895C112.275 84.2965 111.762 84.5 111.122 84.5Z", fill: "#CC3D3D", stroke: "#CC3D3D" })), React.createElement("defs", null, React.createElement("clipPath", { id: "clip0_8970_392336" }, React.createElement("rect", { width: "160", height: "160", fill: "white", transform: "translate(0 0.5)" }))));
}
const aD = { "en-US": { error: "Something went wrong", notFound: "No results found", suggestion: "Try using different terms or filters", empty: "No items created" }, "es-AR": { error: "Algo salió mal", notFound: "No se han encontrado resultados", suggestion: "Intenta usar diferentes términos o filtros", empty: "No hay elementos creados" }, "fr-FR": { error: "Quelque chose s'est mal passé", notFound: "Aucun résultat trouvé", suggestion: "Essayez d'utiliser différents termes ou filtres", empty: "Aucun élément créé" }, "pt-BR": { error: "Algo deu errado", notFound: "Nenhum resultado encontrado", suggestion: "Tente usar termos ou filtros diferentes", empty: "Nenhum item criado" }, "ja-JP": { error: "エラーが発生しました", notFound: "結果が見つかりません", suggestion: "別の用語またはフィルターを使用してみてください", empty: "アイテムは作成されていません" }, "ko-KR": { error: "문제가 발생했습니다.", notFound: "검색 결과가 없습니다", suggestion: "다른 용어나 필터를 사용해 보세요.", empty: "생성된 항목이 없습니다." }, "it-IT": { error: "Qualcosa è andato storto", notFound: "nessun risultato trovato", suggestion: "Prova a utilizzare termini o filtri diversi", empty: "Nessun elemento creato" }, "nl-NL": { error: "Er is iets fout gegaan", notFound: "geen resultaten gevonden", suggestion: "Probeer andere termen of filters te gebruiken", empty: "Geen items gemaakt" }, "ro-RO": { error: "Ceva n-a mers bine", notFound: "Nici un rezultat gasit", suggestion: "Încercați să utilizați diferiți termeni sau filtre", empty: "Nu a fost creat niciun element" }, "bg-BG": { error: "Нещо се обърка", notFound: "Няма намерени резултати", suggestion: "Опитайте да използвате различни термини или филтри", empty: "Няма създадени елементи" }, "th-TH": { error: "มีบางอย่างผิดปกติ", notFound: "ไม่พบผลลัพธ์", suggestion: "ลองใช้คำหรือตัวกรองอื่น", empty: "ไม่มีการสร้างรายการ" }, "de-DE": { error: "Ein Problem ist aufgetreten", notFound: "Es wurden keine Ergebnisse gefunden", suggestion: "Versuchen Sie, andere Begriffe oder Filter zu verwenden", empty: "Keine Elemente erstellt" } }, oD = te({ overflow: "visible", width: "100%" }), sD = te({ display: "flex", alignItems: "flex-start", width: "100%", order: -1 }), lD = te({ size: "100%", textAlign: "center", flexWrap: "wrap", overflow: "auto", minHeight: "75vh", order: -1, bg: "$secondary", borderRadius: "$base" }), go = te({ [oe("type", "message")]: { fg: "$disabled", text: "$pageTitle" }, [oe("type", "description")]: { fg: "$disabled", text: "$title2" } }), uD = te({ display: "flex", "> button:not(:last-of-type)": { marginRight: "$space-2" } }), Pg = te({ size: "100%" });
function cD(rv) {
  var tv, ev;
  const { state: iv } = rv, { status: ov, statusObject: av } = iv, sv = mr(aD);
  return ov && ov !== "loading" && ov !== "ready" ? React.createElement(Ir, { className: lD }, ov === "not-found" && React.createElement(Pt, { fluid: !0 }, React.createElement("span", { "data-type": "message", className: go }, sv("notFound")), av.notFound && React.createElement("span", { "data-type": "description", className: go }, sv("suggestion"))), ov === "empty" && React.createElement(Pt, { space: "$space-2", fluid: !0 }, React.createElement("span", { "data-type": "message", className: go }, sv("empty")), !((tv = av.empty) === null || tv === void 0) && tv.action ? React.createElement(th, Object.assign({}, av.empty.action)) : null), ov === "error" && React.createElement(Pt, { space: "$space-0", fluid: !0 }, React.createElement(Ir, null, React.createElement(iD, null)), React.createElement(Pt, { space: "$space-2", fluid: !0 }, React.createElement("span", { "data-type": "message", className: go }, sv("error")), !((ev = av.error) === null || ev === void 0) && ev.action ? React.createElement(th, Object.assign({}, av.error.action)) : null))) : null;
}
function th(rv) {
  const { text: tv, href: ev = "", onClick: iv } = rv, ov = ve(rv, ["text", "href", "onClick"]);
  return React.createElement(Ir, null, ev ? React.createElement("a", Object.assign({ href: ev }, ov), React.createElement(Gt, { onClick: iv, variant: "tertiary" }, tv)) : React.createElement(Gt, { onClick: iv, variant: "tertiary" }, tv));
}
reactExports.forwardRef(function(rv, tv) {
  const { children: ev, className: iv = "", state: ov } = rv, av = ve(rv, ["children", "className", "state"]), sv = ov.status === "empty";
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(oD, iv) }, av), React.createElement(Pt, { space: "$space-6", className: Pg }, sv ? null : ev, React.createElement(cD, { state: ov })));
});
reactExports.forwardRef(function(rv, tv) {
  const { children: ev, className: iv = "" } = rv, ov = ve(rv, ["children", "className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(sD, iv) }, ov), React.createElement(Pt, { space: "$space-4", className: Pg }, ev));
});
reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(uD, ev) }, iv));
});
const oc = reactExports.forwardRef((rv, tv) => {
  const { dismissModal: ev = !1 } = rv, iv = ve(rv, ["dismissModal"]), { children: ov } = iv, av = xR(iv), sv = ev ? Object.assign(Object.assign({}, av), { children: ov }) : iv;
  return React.createElement(Gt, Object.assign({ ref: tv }, sv));
});
oc.displayName = "ModalButton";
const Og = reactExports.forwardRef((rv, tv) => {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement(oc, Object.assign({}, iv, { ref: tv, dismissModal: !0, className: ev, variant: "neutralTertiary", icon: React.createElement(gs, null), bleedX: !0, bleedY: !0 }));
});
Og.displayName = "ModalDismiss";
const Lg = "calc(100vh - 64px)", dD = `calc(${Lg} - calc(64px + 94px))`, fD = te({ bg: "$primary", padding: "$space-6 $space-7", borderTopLeftRadius: "$base", borderTopRightRadius: "$base", width: "100%", display: "flex", flexDirection: "row", justifyContent: "space-between", alignItems: "center", [oe("compact", !0)]: { border: "none" }, [oe("compact", !1)]: { borderBottom: "$neutral", position: "sticky", top: 0 }, [oe("has-shadow", !0)]: { boxShadow: "$overlay.bottom" } }), hD = te({ text: "$title1" }), mD = te({ padding: "$space-6 $space-7", maxHeight: dD, overflow: "hidden auto" }), pD = te({ bg: "$primary", borderBottomRightRadius: "$base", borderBottomLeftRadius: "$base", width: "100%", display: "flex", alignContent: "center", justifyContent: "flex-end", "button + button": { marginLeft: "$space-3" }, [oe("compact", !0)]: { border: "none", paddingX: "$space-7", paddingBottom: "$space-7" }, [oe("compact", !1)]: { borderTop: "$neutral", padding: "$space-7", position: "sticky", bottom: 0 } }), gD = te({ "[data-backdrop]": { display: "flex", alignItems: "center", justifyContent: "center", bg: "$overlay" } }), vD = te({ maxHeight: Lg, margin: "$space-8", position: "relative", bg: "$primary", borderRadius: "$base", zIndex: "$z-9", [oe("size", "small")]: { width: "23rem" }, [oe("size", "medium")]: { width: "35rem" }, [oe("size", "large")]: { width: "50rem" } }), kg = K0(!1), sc = K0(!1), Dg = reactExports.forwardRef((rv, tv) => {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]), [ov] = Ta(sc), [av] = Ta(kg), sv = !ov, lv = ov && av;
  return React.createElement("header", Object.assign({}, iv, { ref: tv, className: Pe(fD, ev), "data-compact": sv, "data-has-shadow": lv }));
});
Dg.displayName = "ModalHeader";
const Ng = reactExports.forwardRef((rv, tv) => {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]);
  return React.createElement(SR, Object.assign({}, iv, { ref: tv, className: Pe(hD, ev) }));
});
Ng.displayName = "ModalTitle";
const Fg = reactExports.forwardRef((rv, tv) => {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]), av = reactExports.useRef(null), [, sv] = Ta(sc), [, lv] = Ta(kg), uv = reactExports.useCallback(() => {
    var cv, dv;
    const hv = (dv = (cv = av.current) === null || cv === void 0 ? void 0 : cv.scrollTop) !== null && dv !== void 0 ? dv : 0;
    lv(hv > 24);
  }, []);
  return ga(() => {
    const cv = av.current;
    cv && sv(() => {
      return (dv = cv).scrollHeight > dv.offsetHeight;
      var dv;
    });
  }), ga(() => {
    const cv = av.current;
    return cv == null || cv.addEventListener("scroll", uv), () => {
      cv == null || cv.removeEventListener("scroll", uv);
    };
  }, [uv]), React.createElement("div", Object.assign({ ref: ln(av, tv), className: Pe(mD, ev) }, ov), iv);
});
Fg.displayName = "ModalContent";
const Mg = reactExports.forwardRef((rv, tv) => {
  const { className: ev = "" } = rv, iv = ve(rv, ["className"]), [ov] = Ta(sc), av = !ov;
  return React.createElement("footer", Object.assign({}, iv, { ref: tv, className: Pe(pD, ev), "data-compact": av }));
});
Mg.displayName = "ModalFooter";
const $g = reactExports.forwardRef((rv, tv) => {
  var ev;
  const { className: iv = "", size: ov = "medium", backdropProps: av } = rv, sv = ve(rv, ["className", "size", "backdropProps"]);
  return React.createElement(i_, null, React.createElement(z2, Object.assign({ ref: tv, className: Pe(vD, iv), backdropProps: Object.assign(Object.assign({}, av), { className: Pe(gD, (ev = av == null ? void 0 : av.className) !== null && ev !== void 0 ? ev : "") }) }, sv, { "data-size": ov })));
});
$g.displayName = "Modal";
const bD = te({ border: "$neutral", margin: "$space-0", [oe("orientation", "horizontal")]: { borderBottom: 0 }, [oe("orientation", "vertical")]: { borderLeft: 0, height: "auto" } });
reactExports.forwardRef((rv, tv) => {
  const { orientation: ev = "horizontal", className: iv = "" } = rv, ov = ve(rv, ["orientation", "className"]);
  return React.createElement(u_, Object.assign({ ref: tv, className: Pe(iv, bD), orientation: ev, "data-orientation": ev }, ov));
});
const yD = te({ font: "inherit", color: "$action.main.tertiary", textDecoration: "none", cursor: "pointer", ":visited": { color: "$action.main.tertiaryPressed" }, ":hover": { color: "$action.main.tertiaryHover", textDecoration: "underline" } });
reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]);
  return React.createElement("a", Object.assign({ ref: tv, className: Pe(yD, ev) }, ov), iv);
});
const ED = te({ text: "$title1" });
reactExports.forwardRef(function(rv, tv) {
  const { className: ev = "", children: iv } = rv, ov = ve(rv, ["className", "children"]);
  return React.createElement(wR, Object.assign({ ref: tv, className: Pe(ED, ev) }, ov), iv);
});
const xD = te({ display: "flex", alignItems: "center", justifyContent: "center", width: 24, height: 24, padding: "$space-2", borderRadius: "$pill", textTransform: "uppercase", [oe("palette", "lightBlue")]: { colorTheme: "lightBlue" }, [oe("palette", "green")]: { colorTheme: "green" }, [oe("palette", "orange")]: { colorTheme: "orange" }, [oe("palette", "cyan")]: { colorTheme: "cyan" }, [oe("palette", "purple")]: { colorTheme: "purple" }, [oe("palette", "teal")]: { colorTheme: "teal" }, [oe("palette", "gray")]: { colorTheme: "gray" } }), wD = te({ text: "$action1" });
reactExports.forwardRef(function(rv, tv) {
  const { palette: ev = "lightBlue", className: iv = "", label: ov, children: av } = rv, sv = ve(rv, ["palette", "className", "label", "children"]), lv = ov == null ? void 0 : ov.charAt(0);
  return React.createElement("div", Object.assign({ ref: tv, className: Pe(xD, iv), "data-palette": ev }, sv), React.createElement("div", { className: wD }, lv));
});
const TD = te({ position: "relative" }), SD = te({ color: "$action.main.tertiary", bg: "$action.main.tertiary", text: "$action2", display: "flex", alignItems: "center", height: 24, paddingX: "$space-4", cursor: "pointer", [oe("selected", "true")]: { color: "$action.main.tertiarySelected", bg: "$action.main.tertiarySelected" } }), AD = te({ bg: "$primary", border: "$neutral", borderRadius: "$base", boxShadow: "$overlay.center", cursor: "pointer", outline: "none", marginTop: "$space-1", paddingY: "$space-4", minWidth: "inherit", width: "max-content", position: "absolute", zIndex: "$z-4", [oe("visible", "true")]: { visibility: "visible" }, [oe("visible", "false")]: { visibility: "hidden" } });
lE((rv, tv) => {
  const { items: ev, label: iv, variant: ov = "primary", size: av = "normal", state: sv, renderItem: lv = (cv) => cv } = rv, uv = ve(rv, ["items", "label", "variant", "size", "state", "renderItem"]);
  return React.createElement("div", { ref: tv, className: TD }, React.createElement(f0, null, React.createElement("label", Object.assign({}, sv.getLabelProps()), iv)), React.createElement(Gt, Object.assign({ variant: ov, size: av, icon: React.createElement(Cu, null), iconPosition: "end" }, sv.getToggleButtonProps(), uv), lv(sv.selectedItem)), React.createElement(Pt, Object.assign({ fluid: !0 }, sv.getMenuProps(), { "data-visible": sv.isOpen, className: AD }), sv.isOpen && ev.map((cv, dv) => React.createElement("div", Object.assign({ "data-selected": sv.highlightedIndex === dv, className: SD, key: dv }, sv.getItemProps({ item: cv, index: dv })), lv(cv)))));
});
const CD = reactExports.createContext(null), RD = te({ paddingX: "$space-05" });
reactExports.forwardRef(function(rv, tv) {
  const { state: ev, children: iv, className: ov = "" } = rv, av = ve(rv, ["state", "children", "className"]);
  return React.createElement(h_, Object.assign({ ref: tv, state: ev, className: Pe(RD, ov) }, av), React.createElement(Mr, null, React.createElement(CD.Provider, { value: ev }, iv)));
});
const ND = "_shareBox_126z9_1", FD = "_title_126z9_14", MD = "_shareButtons_126z9_18", $D = "_copyUrl_126z9_43", BD = "_copyButton_126z9_57", Qi = {
  shareBox: ND,
  title: FD,
  shareButtons: MD,
  copyUrl: $D,
  copyButton: BD
}, UD = reactExports.memo(({ url: rv }) => {
  const { t: tv } = Wo("translation", { keyPrefix: "ui.share" }), [ev, iv] = reactExports.useState(!1), ov = (av) => {
    av.stopPropagation(), navigator.clipboard.writeText(rv), iv(!0), setTimeout(() => iv(!1), 2e3);
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: Qi.shareBox, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: Qi.title, children: tv("share") }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: Qi.shareButtons, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        Eo,
        {
          icon: /* @__PURE__ */ jsxRuntimeExports.jsx(m1, {}),
          shareUrl: `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(
            rv
          )}`,
          ariaLabel: tv("facebook")
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        Eo,
        {
          icon: /* @__PURE__ */ jsxRuntimeExports.jsx(g1, {}),
          shareUrl: `https://x.com/intent/tweet?url=${encodeURIComponent(rv)}`,
          ariaLabel: tv("x")
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        Eo,
        {
          icon: /* @__PURE__ */ jsxRuntimeExports.jsx(p1, {}),
          shareUrl: `https://wa.me/?text=${encodeURIComponent(rv)}`,
          ariaLabel: tv("whatsapp")
        }
      )
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: Qi.copyUrl, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("input", { type: "text", value: rv, readOnly: !0 }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "button",
        {
          onClick: ov,
          "aria-label": tv("copyUrl"),
          className: Qi.copyButton,
          children: ev ? /* @__PURE__ */ jsxRuntimeExports.jsx(f1, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(h1, {})
        }
      )
    ] })
  ] });
});
UD.displayName = "ShareBox";
const mn = { BASE_URL: "/", DEV: !1, MODE: "production", NZ_AWS_REGION: "us-east-1", PROD: !0, SSR: !1, STAGE: "prod" }, rh = (rv, tv) => rv.unstable_is ? rv.unstable_is(tv) : tv === rv, hl = (rv) => "init" in rv, ml = (rv) => !!rv.write, da = Symbol(
  (mn ? "production" : void 0) !== "production" ? "CONTINUE_PROMISE" : ""
), lc = "pending", jD = "fulfilled", HD = "rejected", GD = (rv) => typeof rv == "object" && rv !== null && da in rv, vo = /* @__PURE__ */ new WeakMap(), zD = (rv, tv, ev) => {
  if (!vo.has(rv)) {
    let iv;
    const ov = new Promise((av, sv) => {
      let lv = rv;
      const uv = (dv) => (hv) => {
        lv === dv && (ov.status = jD, ov.value = hv, av(hv), ev());
      }, cv = (dv) => (hv) => {
        lv === dv && (ov.status = HD, ov.reason = hv, sv(hv), ev());
      };
      rv.then(uv(rv), cv(rv)), iv = (dv, hv) => {
        dv && (vo.set(dv, ov), lv = dv, dv.then(uv(dv), cv(dv)), tv(), tv = hv);
      };
    });
    ov.status = lc, ov[da] = iv, vo.set(rv, ov);
  }
  return vo.get(rv);
}, VD = (rv) => typeof (rv == null ? void 0 : rv.then) == "function", nh = (rv) => "v" in rv || "e" in rv, bo = (rv) => {
  if ("e" in rv)
    throw rv.e;
  if ((mn ? "production" : void 0) !== "production" && !("v" in rv))
    throw new Error("[Bug] atom state is not initialized");
  return rv.v;
}, _o = (rv) => {
  const tv = rv.v;
  return GD(tv) && tv.status === lc ? tv : null;
}, Bg = (rv, tv, ev) => {
  ev.p.has(rv) || (ev.p.add(rv), tv.then(
    () => {
      ev.p.delete(rv);
    },
    () => {
      ev.p.delete(rv);
    }
  ));
}, ih = (rv, tv, ev, iv, ov) => {
  var av;
  if ((mn ? "production" : void 0) !== "production" && iv === tv)
    throw new Error("[Bug] atom cannot depend on itself");
  ev.d.set(iv, ov.n);
  const sv = _o(ev);
  sv && Bg(tv, sv, ov), (av = ov.m) == null || av.t.add(tv), rv && WD(rv, iv, tv);
}, di = () => [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map(), /* @__PURE__ */ new Set()], pl = (rv, tv, ev) => {
  rv[0].has(tv) || rv[0].set(tv, /* @__PURE__ */ new Set()), rv[1].set(tv, ev);
}, WD = (rv, tv, ev) => {
  const iv = rv[0].get(tv);
  iv && iv.add(ev);
}, KD = (rv, tv) => rv[0].get(tv), ah = (rv, tv) => {
  rv[2].add(tv);
}, Kn = (rv) => {
  for (; rv[1].size || rv[2].size; ) {
    rv[0].clear();
    const tv = new Set(rv[1].values());
    rv[1].clear();
    const ev = new Set(rv[2]);
    rv[2].clear(), tv.forEach((iv) => {
      var ov;
      return (ov = iv.m) == null ? void 0 : ov.l.forEach((av) => av());
    }), ev.forEach((iv) => iv());
  }
}, Ug = (rv) => {
  let tv;
  (mn ? "production" : void 0) !== "production" && (tv = /* @__PURE__ */ new Set());
  const ev = (yv, Sv, _v, Ev = () => {
  }, wv = () => {
  }) => {
    const xv = "v" in Sv, Cv = Sv.v, Av = _o(Sv);
    if (VD(_v))
      if (Av)
        Av !== _v && (Av[da](_v, Ev), ++Sv.n);
      else {
        const Ov = zD(
          _v,
          Ev,
          wv
        );
        if (Ov.status === lc)
          for (const Lv of Sv.d.keys())
            Bg(
              yv,
              Ov,
              rv(Lv, Sv)
            );
        Sv.v = Ov, delete Sv.e;
      }
    else
      Av && Av[da](
        Promise.resolve(_v),
        Ev
      ), Sv.v = _v, delete Sv.e;
    (!xv || !Object.is(Cv, Sv.v)) && ++Sv.n;
  }, iv = (yv, Sv, _v, Ev) => {
    if (!(Ev != null && Ev(Sv)) && nh(_v) && (_v.m || Array.from(_v.d).every(
      ([Lv, jv]) => (
        // Recursively, read the atom state of the dependency, and
        // check if the atom epoch number is unchanged
        iv(yv, Lv, rv(Lv, _v), Ev).n === jv
      )
    )))
      return _v;
    _v.d.clear();
    let wv = !0;
    const xv = (Lv) => {
      if (rh(Sv, Lv)) {
        const Dv = rv(Lv, _v);
        if (!nh(Dv))
          if (hl(Lv))
            ev(Lv, Dv, Lv.init);
          else
            throw new Error("no atom init");
        return bo(Dv);
      }
      const jv = iv(
        yv,
        Lv,
        rv(Lv, _v),
        Ev
      );
      if (wv)
        ih(yv, Sv, _v, Lv, jv);
      else {
        const Dv = di();
        ih(Dv, Sv, _v, Lv, jv), cv(Dv, Sv, _v), Kn(Dv);
      }
      return bo(jv);
    };
    let Cv, Av;
    const Ov = {
      get signal() {
        return Cv || (Cv = new AbortController()), Cv.signal;
      },
      get setSelf() {
        return (mn ? "production" : void 0) !== "production" && !ml(Sv) && console.warn("setSelf function cannot be used with read-only atom"), !Av && ml(Sv) && (Av = (...Lv) => {
          if ((mn ? "production" : void 0) !== "production" && wv && console.warn("setSelf function cannot be called in sync"), !wv)
            return uv(Sv, ...Lv);
        }), Av;
      }
    };
    try {
      const Lv = Sv.read(xv, Ov);
      return ev(
        Sv,
        _v,
        Lv,
        () => Cv == null ? void 0 : Cv.abort(),
        () => {
          if (_v.m) {
            const jv = di();
            cv(jv, Sv, _v), Kn(jv);
          }
        }
      ), _v;
    } catch (Lv) {
      return delete _v.v, _v.e = Lv, ++_v.n, _v;
    } finally {
      wv = !1;
    }
  }, ov = (yv) => bo(iv(void 0, yv, rv(yv))), av = (yv, Sv, _v) => {
    var Ev, wv;
    const xv = /* @__PURE__ */ new Map();
    for (const Cv of ((Ev = _v.m) == null ? void 0 : Ev.t) || [])
      xv.set(Cv, rv(Cv, _v));
    for (const Cv of _v.p)
      xv.set(
        Cv,
        rv(Cv, _v)
      );
    return (wv = KD(yv, Sv)) == null || wv.forEach((Cv) => {
      xv.set(Cv, rv(Cv, _v));
    }), xv;
  }, sv = (yv, Sv, _v) => {
    const Ev = [], wv = /* @__PURE__ */ new Set(), xv = (Ov, Lv) => {
      if (!wv.has(Ov)) {
        wv.add(Ov);
        for (const [jv, Dv] of av(yv, Ov, Lv))
          Ov !== jv && xv(jv, Dv);
        Ev.push([Ov, Lv, Lv.n]);
      }
    };
    xv(Sv, _v);
    const Cv = /* @__PURE__ */ new Set([Sv]), Av = (Ov) => wv.has(Ov);
    for (let Ov = Ev.length - 1; Ov >= 0; --Ov) {
      const [Lv, jv, Dv] = Ev[Ov];
      let Vv = !1;
      for (const Gv of jv.d.keys())
        if (Gv !== Lv && Cv.has(Gv)) {
          Vv = !0;
          break;
        }
      Vv && (iv(yv, Lv, jv, Av), cv(yv, Lv, jv), Dv !== jv.n && (pl(yv, Lv, jv), Cv.add(Lv))), wv.delete(Lv);
    }
  }, lv = (yv, Sv, _v, ...Ev) => {
    const wv = (Cv) => bo(iv(yv, Cv, rv(Cv, _v))), xv = (Cv, ...Av) => {
      const Ov = rv(Cv, _v);
      let Lv;
      if (rh(Sv, Cv)) {
        if (!hl(Cv))
          throw new Error("atom not writable");
        const jv = "v" in Ov, Dv = Ov.v, Vv = Av[0];
        ev(Cv, Ov, Vv), cv(yv, Cv, Ov), (!jv || !Object.is(Dv, Ov.v)) && (pl(yv, Cv, Ov), sv(yv, Cv, Ov));
      } else
        Lv = lv(yv, Cv, Ov, ...Av);
      return Kn(yv), Lv;
    };
    return Sv.write(wv, xv, ...Ev);
  }, uv = (yv, ...Sv) => {
    const _v = di(), Ev = lv(_v, yv, rv(yv), ...Sv);
    return Kn(_v), Ev;
  }, cv = (yv, Sv, _v) => {
    if (_v.m && !_o(_v)) {
      for (const Ev of _v.d.keys())
        _v.m.d.has(Ev) || (dv(yv, Ev, rv(Ev, _v)).t.add(Sv), _v.m.d.add(Ev));
      for (const Ev of _v.m.d || [])
        if (!_v.d.has(Ev)) {
          _v.m.d.delete(Ev);
          const wv = hv(yv, Ev, rv(Ev, _v));
          wv == null || wv.t.delete(Sv);
        }
    }
  }, dv = (yv, Sv, _v) => {
    if (!_v.m) {
      iv(yv, Sv, _v);
      for (const Ev of _v.d.keys())
        dv(yv, Ev, rv(Ev, _v)).t.add(Sv);
      if (_v.m = {
        l: /* @__PURE__ */ new Set(),
        d: new Set(_v.d.keys()),
        t: /* @__PURE__ */ new Set()
      }, (mn ? "production" : void 0) !== "production" && tv.add(Sv), ml(Sv) && Sv.onMount) {
        const Ev = _v.m, { onMount: wv } = Sv;
        ah(yv, () => {
          const xv = wv(
            (...Cv) => lv(yv, Sv, _v, ...Cv)
          );
          xv && (Ev.u = xv);
        });
      }
    }
    return _v.m;
  }, hv = (yv, Sv, _v) => {
    if (_v.m && !_v.m.l.size && !Array.from(_v.m.t).some(
      (Ev) => {
        var wv;
        return (wv = rv(Ev, _v).m) == null ? void 0 : wv.d.has(Sv);
      }
    )) {
      const Ev = _v.m.u;
      Ev && ah(yv, Ev), delete _v.m, (mn ? "production" : void 0) !== "production" && tv.delete(Sv);
      for (const xv of _v.d.keys()) {
        const Cv = hv(yv, xv, rv(xv, _v));
        Cv == null || Cv.t.delete(Sv);
      }
      const wv = _o(_v);
      wv && wv[da](void 0, () => {
      });
      return;
    }
    return _v.m;
  }, pv = {
    get: ov,
    set: uv,
    sub: (yv, Sv) => {
      const _v = di(), Ev = rv(yv), wv = dv(_v, yv, Ev);
      Kn(_v);
      const xv = wv.l;
      return xv.add(Sv), () => {
        xv.delete(Sv);
        const Cv = di();
        hv(Cv, yv, Ev), Kn(Cv);
      };
    },
    unstable_derive: (yv) => Ug(...yv(rv))
  };
  return (mn ? "production" : void 0) !== "production" && Object.assign(pv, {
    // store dev methods (these are tentative and subject to change without notice)
    dev4_get_internal_weak_map: () => ({
      get: (yv) => {
        const Sv = rv(yv);
        if (Sv.n !== 0)
          return Sv;
      }
    }),
    dev4_get_mounted_atoms: () => tv,
    dev4_restore_atoms: (yv) => {
      const Sv = di();
      for (const [_v, Ev] of yv)
        if (hl(_v)) {
          const wv = rv(_v), xv = "v" in wv, Cv = wv.v;
          ev(_v, wv, Ev), cv(Sv, _v, wv), (!xv || !Object.is(Cv, wv.v)) && (pl(Sv, _v, wv), sv(Sv, _v, wv));
        }
      Kn(Sv);
    }
  }), pv;
}, YD = () => {
  const rv = /* @__PURE__ */ new WeakMap();
  return Ug((tv) => {
    let ev = rv.get(tv);
    return ev || (ev = { d: /* @__PURE__ */ new Map(), p: /* @__PURE__ */ new Set(), n: 0 }, rv.set(tv, ev)), ev;
  });
}, XD = reactExports.createContext(
  void 0
), oh = ({
  children: rv,
  store: tv
}) => {
  const ev = reactExports.useRef();
  return !tv && !ev.current && (ev.current = YD()), reactExports.createElement(
    XD.Provider,
    {
      value: tv || ev.current
    },
    rv
  );
};
React.use;
const qD = () => null, ZD = () => null, jg = ({
  stores: rv,
  children: tv
}) => rv ? /* @__PURE__ */ jsxRuntimeExports.jsx(nv, { stores: rv, children: tv }) : tv;
jg.displayName = "MobXProvider";
const Hg = ({ atomStore: rv, children: tv }) => rv ? /* @__PURE__ */ jsxRuntimeExports.jsx(oh, { store: rv, children: tv }) : /* @__PURE__ */ jsxRuntimeExports.jsx(oh, { children: tv });
Hg.displayName = "JotaiProvider";
const Gg = ({
  client: rv,
  children: tv
}) => /* @__PURE__ */ jsxRuntimeExports.jsx(QueryClientProvider, { client: rv, children: tv });
Gg.displayName = "ReactQueryProvider";
const zg = ({ enableVtexAdminUI: rv, children: tv }) => rv ? /* @__PURE__ */ jsxRuntimeExports.jsx(mO, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Pk, { children: tv }) }) : tv;
zg.displayName = "AdminUIProvider";
const sh = qD(), lh = ZD(), JD = ({
  children: rv,
  atomStore: tv,
  stores: ev,
  queryClient: iv = new QueryClient(),
  enableJotaiDevTools: ov = !0,
  enableVtexAdminUI: av = !0
}) => /* @__PURE__ */ jsxRuntimeExports.jsx(Gg, { client: iv, children: /* @__PURE__ */ jsxRuntimeExports.jsx(jg, { stores: ev, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Hg, { atomStore: tv, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(zg, { enableVtexAdminUI: av, children: [
  rv,
  sh,
  lh
] }) }) }) });
JD.displayName = "CommonProviders";
var Vg = { exports: {} };
(function(rv, tv) {
  typeof window < "u" && function(ev, iv) {
    rv.exports = iv();
  }(su, function() {
    return (
      /******/
      function(ev) {
        var iv = {};
        function ov(av) {
          if (iv[av])
            return iv[av].exports;
          var sv = iv[av] = {
            /******/
            i: av,
            /******/
            l: !1,
            /******/
            exports: {}
            /******/
          };
          return ev[av].call(sv.exports, sv, sv.exports, ov), sv.l = !0, sv.exports;
        }
        return ov.m = ev, ov.c = iv, ov.d = function(av, sv, lv) {
          ov.o(av, sv) || Object.defineProperty(av, sv, { enumerable: !0, get: lv });
        }, ov.r = function(av) {
          typeof Symbol < "u" && Symbol.toStringTag && Object.defineProperty(av, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(av, "__esModule", { value: !0 });
        }, ov.t = function(av, sv) {
          if (sv & 1 && (av = ov(av)), sv & 8 || sv & 4 && typeof av == "object" && av && av.__esModule)
            return av;
          var lv = /* @__PURE__ */ Object.create(null);
          if (ov.r(lv), Object.defineProperty(lv, "default", { enumerable: !0, value: av }), sv & 2 && typeof av != "string")
            for (var uv in av)
              ov.d(lv, uv, (function(cv) {
                return av[cv];
              }).bind(null, uv));
          return lv;
        }, ov.n = function(av) {
          var sv = av && av.__esModule ? (
            /******/
            function() {
              return av.default;
            }
          ) : (
            /******/
            function() {
              return av;
            }
          );
          return ov.d(sv, "a", sv), sv;
        }, ov.o = function(av, sv) {
          return Object.prototype.hasOwnProperty.call(av, sv);
        }, ov.p = "/dist/", ov(ov.s = "./src/hls.ts");
      }({
        /***/
        "./node_modules/eventemitter3/index.js": (
          /*!*********************************************!*\
            !*** ./node_modules/eventemitter3/index.js ***!
            \*********************************************/
          /*! no static exports found */
          /*! ModuleConcatenation bailout: Module is not an ECMAScript module */
          /***/
          function(ev, iv, ov) {
            var av = Object.prototype.hasOwnProperty, sv = "~";
            function lv() {
            }
            Object.create && (lv.prototype = /* @__PURE__ */ Object.create(null), new lv().__proto__ || (sv = !1));
            function uv(pv, yv, Sv) {
              this.fn = pv, this.context = yv, this.once = Sv || !1;
            }
            function cv(pv, yv, Sv, _v, Ev) {
              if (typeof Sv != "function")
                throw new TypeError("The listener must be a function");
              var wv = new uv(Sv, _v || pv, Ev), xv = sv ? sv + yv : yv;
              return pv._events[xv] ? pv._events[xv].fn ? pv._events[xv] = [pv._events[xv], wv] : pv._events[xv].push(wv) : (pv._events[xv] = wv, pv._eventsCount++), pv;
            }
            function dv(pv, yv) {
              --pv._eventsCount === 0 ? pv._events = new lv() : delete pv._events[yv];
            }
            function hv() {
              this._events = new lv(), this._eventsCount = 0;
            }
            hv.prototype.eventNames = function() {
              var pv = [], yv, Sv;
              if (this._eventsCount === 0)
                return pv;
              for (Sv in yv = this._events)
                av.call(yv, Sv) && pv.push(sv ? Sv.slice(1) : Sv);
              return Object.getOwnPropertySymbols ? pv.concat(Object.getOwnPropertySymbols(yv)) : pv;
            }, hv.prototype.listeners = function(pv) {
              var yv = sv ? sv + pv : pv, Sv = this._events[yv];
              if (!Sv)
                return [];
              if (Sv.fn)
                return [Sv.fn];
              for (var _v = 0, Ev = Sv.length, wv = new Array(Ev); _v < Ev; _v++)
                wv[_v] = Sv[_v].fn;
              return wv;
            }, hv.prototype.listenerCount = function(pv) {
              var yv = sv ? sv + pv : pv, Sv = this._events[yv];
              return Sv ? Sv.fn ? 1 : Sv.length : 0;
            }, hv.prototype.emit = function(pv, yv, Sv, _v, Ev, wv) {
              var xv = sv ? sv + pv : pv;
              if (!this._events[xv])
                return !1;
              var Cv = this._events[xv], Av = arguments.length, Ov, Lv;
              if (Cv.fn) {
                switch (Cv.once && this.removeListener(pv, Cv.fn, void 0, !0), Av) {
                  case 1:
                    return Cv.fn.call(Cv.context), !0;
                  case 2:
                    return Cv.fn.call(Cv.context, yv), !0;
                  case 3:
                    return Cv.fn.call(Cv.context, yv, Sv), !0;
                  case 4:
                    return Cv.fn.call(Cv.context, yv, Sv, _v), !0;
                  case 5:
                    return Cv.fn.call(Cv.context, yv, Sv, _v, Ev), !0;
                  case 6:
                    return Cv.fn.call(Cv.context, yv, Sv, _v, Ev, wv), !0;
                }
                for (Lv = 1, Ov = new Array(Av - 1); Lv < Av; Lv++)
                  Ov[Lv - 1] = arguments[Lv];
                Cv.fn.apply(Cv.context, Ov);
              } else {
                var jv = Cv.length, Dv;
                for (Lv = 0; Lv < jv; Lv++)
                  switch (Cv[Lv].once && this.removeListener(pv, Cv[Lv].fn, void 0, !0), Av) {
                    case 1:
                      Cv[Lv].fn.call(Cv[Lv].context);
                      break;
                    case 2:
                      Cv[Lv].fn.call(Cv[Lv].context, yv);
                      break;
                    case 3:
                      Cv[Lv].fn.call(Cv[Lv].context, yv, Sv);
                      break;
                    case 4:
                      Cv[Lv].fn.call(Cv[Lv].context, yv, Sv, _v);
                      break;
                    default:
                      if (!Ov)
                        for (Dv = 1, Ov = new Array(Av - 1); Dv < Av; Dv++)
                          Ov[Dv - 1] = arguments[Dv];
                      Cv[Lv].fn.apply(Cv[Lv].context, Ov);
                  }
              }
              return !0;
            }, hv.prototype.on = function(pv, yv, Sv) {
              return cv(this, pv, yv, Sv, !1);
            }, hv.prototype.once = function(pv, yv, Sv) {
              return cv(this, pv, yv, Sv, !0);
            }, hv.prototype.removeListener = function(pv, yv, Sv, _v) {
              var Ev = sv ? sv + pv : pv;
              if (!this._events[Ev])
                return this;
              if (!yv)
                return dv(this, Ev), this;
              var wv = this._events[Ev];
              if (wv.fn)
                wv.fn === yv && (!_v || wv.once) && (!Sv || wv.context === Sv) && dv(this, Ev);
              else {
                for (var xv = 0, Cv = [], Av = wv.length; xv < Av; xv++)
                  (wv[xv].fn !== yv || _v && !wv[xv].once || Sv && wv[xv].context !== Sv) && Cv.push(wv[xv]);
                Cv.length ? this._events[Ev] = Cv.length === 1 ? Cv[0] : Cv : dv(this, Ev);
              }
              return this;
            }, hv.prototype.removeAllListeners = function(pv) {
              var yv;
              return pv ? (yv = sv ? sv + pv : pv, this._events[yv] && dv(this, yv)) : (this._events = new lv(), this._eventsCount = 0), this;
            }, hv.prototype.off = hv.prototype.removeListener, hv.prototype.addListener = hv.prototype.on, hv.prefixed = sv, hv.EventEmitter = hv, ev.exports = hv;
          }
        ),
        /***/
        "./node_modules/url-toolkit/src/url-toolkit.js": (
          /*!*****************************************************!*\
            !*** ./node_modules/url-toolkit/src/url-toolkit.js ***!
            \*****************************************************/
          /*! no static exports found */
          /*! ModuleConcatenation bailout: Module is not an ECMAScript module */
          /***/
          function(ev, iv, ov) {
            (function(av) {
              var sv = /^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/?#]*)?((?:[^\/?#]*\/)*[^;?#]*)?(;[^?#]*)?(\?[^#]*)?(#.*)?$/, lv = /^([^\/?#]*)(.*)$/, uv = /(?:\/|^)\.(?=\/)/g, cv = /(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g, dv = {
                // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //
                // E.g
                // With opts.alwaysNormalize = false (default, spec compliant)
                // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g
                // With opts.alwaysNormalize = true (not spec compliant)
                // http://a.com/b/cd + /e/f/../g => http://a.com/e/g
                buildAbsoluteURL: function(hv, pv, yv) {
                  if (yv = yv || {}, hv = hv.trim(), pv = pv.trim(), !pv) {
                    if (!yv.alwaysNormalize)
                      return hv;
                    var Sv = dv.parseURL(hv);
                    if (!Sv)
                      throw new Error("Error trying to parse base URL.");
                    return Sv.path = dv.normalizePath(
                      Sv.path
                    ), dv.buildURLFromParts(Sv);
                  }
                  var _v = dv.parseURL(pv);
                  if (!_v)
                    throw new Error("Error trying to parse relative URL.");
                  if (_v.scheme)
                    return yv.alwaysNormalize ? (_v.path = dv.normalizePath(_v.path), dv.buildURLFromParts(_v)) : pv;
                  var Ev = dv.parseURL(hv);
                  if (!Ev)
                    throw new Error("Error trying to parse base URL.");
                  if (!Ev.netLoc && Ev.path && Ev.path[0] !== "/") {
                    var wv = lv.exec(Ev.path);
                    Ev.netLoc = wv[1], Ev.path = wv[2];
                  }
                  Ev.netLoc && !Ev.path && (Ev.path = "/");
                  var xv = {
                    // 2c) Otherwise, the embedded URL inherits the scheme of
                    // the base URL.
                    scheme: Ev.scheme,
                    netLoc: _v.netLoc,
                    path: null,
                    params: _v.params,
                    query: _v.query,
                    fragment: _v.fragment
                  };
                  if (!_v.netLoc && (xv.netLoc = Ev.netLoc, _v.path[0] !== "/"))
                    if (!_v.path)
                      xv.path = Ev.path, _v.params || (xv.params = Ev.params, _v.query || (xv.query = Ev.query));
                    else {
                      var Cv = Ev.path, Av = Cv.substring(0, Cv.lastIndexOf("/") + 1) + _v.path;
                      xv.path = dv.normalizePath(Av);
                    }
                  return xv.path === null && (xv.path = yv.alwaysNormalize ? dv.normalizePath(_v.path) : _v.path), dv.buildURLFromParts(xv);
                },
                parseURL: function(hv) {
                  var pv = sv.exec(hv);
                  return pv ? {
                    scheme: pv[1] || "",
                    netLoc: pv[2] || "",
                    path: pv[3] || "",
                    params: pv[4] || "",
                    query: pv[5] || "",
                    fragment: pv[6] || ""
                  } : null;
                },
                normalizePath: function(hv) {
                  for (hv = hv.split("").reverse().join("").replace(uv, ""); hv.length !== (hv = hv.replace(cv, "")).length; )
                    ;
                  return hv.split("").reverse().join("");
                },
                buildURLFromParts: function(hv) {
                  return hv.scheme + hv.netLoc + hv.path + hv.params + hv.query + hv.fragment;
                }
              };
              ev.exports = dv;
            })();
          }
        ),
        /***/
        "./node_modules/webworkify-webpack/index.js": (
          /*!**************************************************!*\
            !*** ./node_modules/webworkify-webpack/index.js ***!
            \**************************************************/
          /*! no static exports found */
          /*! ModuleConcatenation bailout: Module is not an ECMAScript module */
          /***/
          function(ev, iv, ov) {
            function av(yv) {
              var Sv = {};
              function _v(wv) {
                if (Sv[wv])
                  return Sv[wv].exports;
                var xv = Sv[wv] = {
                  /******/
                  i: wv,
                  /******/
                  l: !1,
                  /******/
                  exports: {}
                  /******/
                };
                return yv[wv].call(xv.exports, xv, xv.exports, _v), xv.l = !0, xv.exports;
              }
              _v.m = yv, _v.c = Sv, _v.i = function(wv) {
                return wv;
              }, _v.d = function(wv, xv, Cv) {
                _v.o(wv, xv) || Object.defineProperty(wv, xv, {
                  /******/
                  configurable: !1,
                  /******/
                  enumerable: !0,
                  /******/
                  get: Cv
                  /******/
                });
              }, _v.r = function(wv) {
                Object.defineProperty(wv, "__esModule", { value: !0 });
              }, _v.n = function(wv) {
                var xv = wv && wv.__esModule ? (
                  /******/
                  function() {
                    return wv.default;
                  }
                ) : (
                  /******/
                  function() {
                    return wv;
                  }
                );
                return _v.d(xv, "a", xv), xv;
              }, _v.o = function(wv, xv) {
                return Object.prototype.hasOwnProperty.call(wv, xv);
              }, _v.p = "/", _v.oe = function(wv) {
                throw console.error(wv), wv;
              };
              var Ev = _v(_v.s = ENTRY_MODULE);
              return Ev.default || Ev;
            }
            var sv = "[\\.|\\-|\\+|\\w|/|@]+", lv = "\\(\\s*(/\\*.*?\\*/)?\\s*.*?(" + sv + ").*?\\)";
            function uv(yv) {
              return (yv + "").replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
            }
            function cv(yv) {
              return !isNaN(1 * yv);
            }
            function dv(yv, Sv, _v) {
              var Ev = {};
              Ev[_v] = [];
              var wv = Sv.toString(), xv = wv.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);
              if (!xv)
                return Ev;
              for (var Cv = xv[1], Av = new RegExp("(\\\\n|\\W)" + uv(Cv) + lv, "g"), Ov; Ov = Av.exec(wv); )
                Ov[3] !== "dll-reference" && Ev[_v].push(Ov[3]);
              for (Av = new RegExp("\\(" + uv(Cv) + '\\("(dll-reference\\s(' + sv + '))"\\)\\)' + lv, "g"); Ov = Av.exec(wv); )
                yv[Ov[2]] || (Ev[_v].push(Ov[1]), yv[Ov[2]] = ov(Ov[1]).m), Ev[Ov[2]] = Ev[Ov[2]] || [], Ev[Ov[2]].push(Ov[4]);
              for (var Lv = Object.keys(Ev), jv = 0; jv < Lv.length; jv++)
                for (var Dv = 0; Dv < Ev[Lv[jv]].length; Dv++)
                  cv(Ev[Lv[jv]][Dv]) && (Ev[Lv[jv]][Dv] = 1 * Ev[Lv[jv]][Dv]);
              return Ev;
            }
            function hv(yv) {
              var Sv = Object.keys(yv);
              return Sv.reduce(function(_v, Ev) {
                return _v || yv[Ev].length > 0;
              }, !1);
            }
            function pv(yv, Sv) {
              for (var _v = {
                main: [Sv]
              }, Ev = {
                main: []
              }, wv = {
                main: {}
              }; hv(_v); )
                for (var xv = Object.keys(_v), Cv = 0; Cv < xv.length; Cv++) {
                  var Av = xv[Cv], Ov = _v[Av], Lv = Ov.pop();
                  if (wv[Av] = wv[Av] || {}, !(wv[Av][Lv] || !yv[Av][Lv])) {
                    wv[Av][Lv] = !0, Ev[Av] = Ev[Av] || [], Ev[Av].push(Lv);
                    for (var jv = dv(yv, yv[Av][Lv], Av), Dv = Object.keys(jv), Vv = 0; Vv < Dv.length; Vv++)
                      _v[Dv[Vv]] = _v[Dv[Vv]] || [], _v[Dv[Vv]] = _v[Dv[Vv]].concat(jv[Dv[Vv]]);
                  }
                }
              return Ev;
            }
            ev.exports = function(yv, Sv) {
              Sv = Sv || {};
              var _v = {
                main: ov.m
              }, Ev = Sv.all ? { main: Object.keys(_v.main) } : pv(_v, yv), wv = "";
              Object.keys(Ev).filter(function(Lv) {
                return Lv !== "main";
              }).forEach(function(Lv) {
                for (var jv = 0; Ev[Lv][jv]; )
                  jv++;
                Ev[Lv].push(jv), _v[Lv][jv] = "(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })", wv = wv + "var " + Lv + " = (" + av.toString().replace("ENTRY_MODULE", JSON.stringify(jv)) + ")({" + Ev[Lv].map(function(Dv) {
                  return "" + JSON.stringify(Dv) + ": " + _v[Lv][Dv].toString();
                }).join(",") + `});
`;
              }), wv = wv + "new ((" + av.toString().replace("ENTRY_MODULE", JSON.stringify(yv)) + ")({" + Ev.main.map(function(Lv) {
                return "" + JSON.stringify(Lv) + ": " + _v.main[Lv].toString();
              }).join(",") + "}))(self);";
              var xv = new window.Blob([wv], { type: "text/javascript" });
              if (Sv.bare)
                return xv;
              var Cv = window.URL || window.webkitURL || window.mozURL || window.msURL, Av = Cv.createObjectURL(xv), Ov = new window.Worker(Av);
              return Ov.objectURL = Av, Ov;
            };
          }
        ),
        /***/
        "./src/crypt/decrypter.js": (
          /*!********************************************!*\
            !*** ./src/crypt/decrypter.js + 3 modules ***!
            \********************************************/
          /*! exports provided: default */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/errors.ts because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/events.js because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/utils/get-self-scope.js because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/utils/logger.js because of ./src/hls.ts */
          /***/
          function(ev, iv, ov) {
            ov.r(iv);
            var av = /* @__PURE__ */ function() {
              function wv(Cv, Av) {
                this.subtle = Cv, this.aesIV = Av;
              }
              var xv = wv.prototype;
              return xv.decrypt = function(Cv, Av) {
                return this.subtle.decrypt({
                  name: "AES-CBC",
                  iv: this.aesIV
                }, Av, Cv);
              }, wv;
            }(), sv = /* @__PURE__ */ function() {
              function wv(Cv, Av) {
                this.subtle = Cv, this.key = Av;
              }
              var xv = wv.prototype;
              return xv.expandKey = function() {
                return this.subtle.importKey("raw", this.key, {
                  name: "AES-CBC"
                }, !1, ["encrypt", "decrypt"]);
              }, wv;
            }(), lv = sv;
            function uv(wv) {
              var xv = wv.byteLength, Cv = xv && new DataView(wv).getUint8(xv - 1);
              return Cv ? wv.slice(0, xv - Cv) : wv;
            }
            var cv = /* @__PURE__ */ function() {
              function wv() {
                this.rcon = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], this.subMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)], this.invSubMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)], this.sBox = new Uint32Array(256), this.invSBox = new Uint32Array(256), this.key = new Uint32Array(0), this.initTable();
              }
              var xv = wv.prototype;
              return xv.uint8ArrayToUint32Array_ = function(Cv) {
                for (var Av = new DataView(Cv), Ov = new Uint32Array(4), Lv = 0; Lv < 4; Lv++)
                  Ov[Lv] = Av.getUint32(Lv * 4);
                return Ov;
              }, xv.initTable = function() {
                var Cv = this.sBox, Av = this.invSBox, Ov = this.subMix, Lv = Ov[0], jv = Ov[1], Dv = Ov[2], Vv = Ov[3], Gv = this.invSubMix, Yv = Gv[0], Xv = Gv[1], L1 = Gv[2], Bv = Gv[3], Qv = new Uint32Array(256), B1 = 0, K1 = 0, j1 = 0;
                for (j1 = 0; j1 < 256; j1++)
                  j1 < 128 ? Qv[j1] = j1 << 1 : Qv[j1] = j1 << 1 ^ 283;
                for (j1 = 0; j1 < 256; j1++) {
                  var P1 = K1 ^ K1 << 1 ^ K1 << 2 ^ K1 << 3 ^ K1 << 4;
                  P1 = P1 >>> 8 ^ P1 & 255 ^ 99, Cv[B1] = P1, Av[P1] = B1;
                  var D1 = Qv[B1], I1 = Qv[D1], F1 = Qv[I1], M1 = Qv[P1] * 257 ^ P1 * 16843008;
                  Lv[B1] = M1 << 24 | M1 >>> 8, jv[B1] = M1 << 16 | M1 >>> 16, Dv[B1] = M1 << 8 | M1 >>> 24, Vv[B1] = M1, M1 = F1 * 16843009 ^ I1 * 65537 ^ D1 * 257 ^ B1 * 16843008, Yv[P1] = M1 << 24 | M1 >>> 8, Xv[P1] = M1 << 16 | M1 >>> 16, L1[P1] = M1 << 8 | M1 >>> 24, Bv[P1] = M1, B1 ? (B1 = D1 ^ Qv[Qv[Qv[F1 ^ D1]]], K1 ^= Qv[Qv[K1]]) : B1 = K1 = 1;
                }
              }, xv.expandKey = function(Cv) {
                for (var Av = this.uint8ArrayToUint32Array_(Cv), Ov = !0, Lv = 0; Lv < Av.length && Ov; )
                  Ov = Av[Lv] === this.key[Lv], Lv++;
                if (!Ov) {
                  this.key = Av;
                  var jv = this.keySize = Av.length;
                  if (jv !== 4 && jv !== 6 && jv !== 8)
                    throw new Error("Invalid aes key size=" + jv);
                  var Dv = this.ksRows = (jv + 6 + 1) * 4, Vv, Gv, Yv = this.keySchedule = new Uint32Array(Dv), Xv = this.invKeySchedule = new Uint32Array(Dv), L1 = this.sBox, Bv = this.rcon, Qv = this.invSubMix, B1 = Qv[0], K1 = Qv[1], j1 = Qv[2], P1 = Qv[3], D1, I1;
                  for (Vv = 0; Vv < Dv; Vv++) {
                    if (Vv < jv) {
                      D1 = Yv[Vv] = Av[Vv];
                      continue;
                    }
                    I1 = D1, Vv % jv === 0 ? (I1 = I1 << 8 | I1 >>> 24, I1 = L1[I1 >>> 24] << 24 | L1[I1 >>> 16 & 255] << 16 | L1[I1 >>> 8 & 255] << 8 | L1[I1 & 255], I1 ^= Bv[Vv / jv | 0] << 24) : jv > 6 && Vv % jv === 4 && (I1 = L1[I1 >>> 24] << 24 | L1[I1 >>> 16 & 255] << 16 | L1[I1 >>> 8 & 255] << 8 | L1[I1 & 255]), Yv[Vv] = D1 = (Yv[Vv - jv] ^ I1) >>> 0;
                  }
                  for (Gv = 0; Gv < Dv; Gv++)
                    Vv = Dv - Gv, Gv & 3 ? I1 = Yv[Vv] : I1 = Yv[Vv - 4], Gv < 4 || Vv <= 4 ? Xv[Gv] = I1 : Xv[Gv] = B1[L1[I1 >>> 24]] ^ K1[L1[I1 >>> 16 & 255]] ^ j1[L1[I1 >>> 8 & 255]] ^ P1[L1[I1 & 255]], Xv[Gv] = Xv[Gv] >>> 0;
                }
              }, xv.networkToHostOrderSwap = function(Cv) {
                return Cv << 24 | (Cv & 65280) << 8 | (Cv & 16711680) >> 8 | Cv >>> 24;
              }, xv.decrypt = function(Cv, Av, Ov, Lv) {
                for (var jv = this.keySize + 6, Dv = this.invKeySchedule, Vv = this.invSBox, Gv = this.invSubMix, Yv = Gv[0], Xv = Gv[1], L1 = Gv[2], Bv = Gv[3], Qv = this.uint8ArrayToUint32Array_(Ov), B1 = Qv[0], K1 = Qv[1], j1 = Qv[2], P1 = Qv[3], D1 = new Int32Array(Cv), I1 = new Int32Array(D1.length), F1, M1, U1, H1, k1, Q1, Y1, r$, a$, S$, d$, x$, g$, _$, O$ = this.networkToHostOrderSwap; Av < D1.length; ) {
                  for (a$ = O$(D1[Av]), S$ = O$(D1[Av + 1]), d$ = O$(D1[Av + 2]), x$ = O$(D1[Av + 3]), k1 = a$ ^ Dv[0], Q1 = x$ ^ Dv[1], Y1 = d$ ^ Dv[2], r$ = S$ ^ Dv[3], g$ = 4, _$ = 1; _$ < jv; _$++)
                    F1 = Yv[k1 >>> 24] ^ Xv[Q1 >> 16 & 255] ^ L1[Y1 >> 8 & 255] ^ Bv[r$ & 255] ^ Dv[g$], M1 = Yv[Q1 >>> 24] ^ Xv[Y1 >> 16 & 255] ^ L1[r$ >> 8 & 255] ^ Bv[k1 & 255] ^ Dv[g$ + 1], U1 = Yv[Y1 >>> 24] ^ Xv[r$ >> 16 & 255] ^ L1[k1 >> 8 & 255] ^ Bv[Q1 & 255] ^ Dv[g$ + 2], H1 = Yv[r$ >>> 24] ^ Xv[k1 >> 16 & 255] ^ L1[Q1 >> 8 & 255] ^ Bv[Y1 & 255] ^ Dv[g$ + 3], k1 = F1, Q1 = M1, Y1 = U1, r$ = H1, g$ = g$ + 4;
                  F1 = Vv[k1 >>> 24] << 24 ^ Vv[Q1 >> 16 & 255] << 16 ^ Vv[Y1 >> 8 & 255] << 8 ^ Vv[r$ & 255] ^ Dv[g$], M1 = Vv[Q1 >>> 24] << 24 ^ Vv[Y1 >> 16 & 255] << 16 ^ Vv[r$ >> 8 & 255] << 8 ^ Vv[k1 & 255] ^ Dv[g$ + 1], U1 = Vv[Y1 >>> 24] << 24 ^ Vv[r$ >> 16 & 255] << 16 ^ Vv[k1 >> 8 & 255] << 8 ^ Vv[Q1 & 255] ^ Dv[g$ + 2], H1 = Vv[r$ >>> 24] << 24 ^ Vv[k1 >> 16 & 255] << 16 ^ Vv[Q1 >> 8 & 255] << 8 ^ Vv[Y1 & 255] ^ Dv[g$ + 3], g$ = g$ + 3, I1[Av] = O$(F1 ^ B1), I1[Av + 1] = O$(H1 ^ K1), I1[Av + 2] = O$(U1 ^ j1), I1[Av + 3] = O$(M1 ^ P1), B1 = a$, K1 = S$, j1 = d$, P1 = x$, Av = Av + 4;
                }
                return Lv ? uv(I1.buffer) : I1.buffer;
              }, xv.destroy = function() {
                this.key = void 0, this.keySize = void 0, this.ksRows = void 0, this.sBox = void 0, this.invSBox = void 0, this.subMix = void 0, this.invSubMix = void 0, this.keySchedule = void 0, this.invKeySchedule = void 0, this.rcon = void 0;
              }, wv;
            }(), dv = cv, hv = ov("./src/errors.ts"), pv = ov("./src/utils/logger.js"), yv = ov("./src/events.js"), Sv = ov("./src/utils/get-self-scope.js"), _v = Object(Sv.getSelfScope)(), Ev = /* @__PURE__ */ function() {
              function wv(Cv, Av, Ov) {
                var Lv = Ov === void 0 ? {} : Ov, jv = Lv.removePKCS7Padding, Dv = jv === void 0 ? !0 : jv;
                if (this.logEnabled = !0, this.observer = Cv, this.config = Av, this.removePKCS7Padding = Dv, Dv)
                  try {
                    var Vv = _v.crypto;
                    Vv && (this.subtle = Vv.subtle || Vv.webkitSubtle);
                  } catch {
                  }
                this.disableWebCrypto = !this.subtle;
              }
              var xv = wv.prototype;
              return xv.isSync = function() {
                return this.disableWebCrypto && this.config.enableSoftwareAES;
              }, xv.decrypt = function(Cv, Av, Ov, Lv) {
                var jv = this;
                if (this.disableWebCrypto && this.config.enableSoftwareAES) {
                  this.logEnabled && (pv.logger.log("JS AES decrypt"), this.logEnabled = !1);
                  var Dv = this.decryptor;
                  Dv || (this.decryptor = Dv = new dv()), Dv.expandKey(Av), Lv(Dv.decrypt(Cv, 0, Ov, this.removePKCS7Padding));
                } else {
                  this.logEnabled && (pv.logger.log("WebCrypto AES decrypt"), this.logEnabled = !1);
                  var Vv = this.subtle;
                  this.key !== Av && (this.key = Av, this.fastAesKey = new lv(Vv, Av)), this.fastAesKey.expandKey().then(function(Gv) {
                    var Yv = new av(Vv, Ov);
                    Yv.decrypt(Cv, Gv).catch(function(Xv) {
                      jv.onWebCryptoError(Xv, Cv, Av, Ov, Lv);
                    }).then(function(Xv) {
                      Lv(Xv);
                    });
                  }).catch(function(Gv) {
                    jv.onWebCryptoError(Gv, Cv, Av, Ov, Lv);
                  });
                }
              }, xv.onWebCryptoError = function(Cv, Av, Ov, Lv, jv) {
                this.config.enableSoftwareAES ? (pv.logger.log("WebCrypto Error, disable WebCrypto API"), this.disableWebCrypto = !0, this.logEnabled = !0, this.decrypt(Av, Ov, Lv, jv)) : (pv.logger.error("decrypting error : " + Cv.message), this.observer.trigger(yv.default.ERROR, {
                  type: hv.ErrorTypes.MEDIA_ERROR,
                  details: hv.ErrorDetails.FRAG_DECRYPT_ERROR,
                  fatal: !0,
                  reason: Cv.message
                }));
              }, xv.destroy = function() {
                var Cv = this.decryptor;
                Cv && (Cv.destroy(), this.decryptor = void 0);
              }, wv;
            }();
            iv.default = Ev;
          }
        ),
        /***/
        "./src/demux/demuxer-inline.js": (
          /*!**************************************************!*\
            !*** ./src/demux/demuxer-inline.js + 12 modules ***!
            \**************************************************/
          /*! exports provided: default */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/crypt/decrypter.js because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/demux/id3.js because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/demux/mp4demuxer.js because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/errors.ts because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/events.js because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/polyfills/number.js because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/utils/get-self-scope.js because of ./src/hls.ts */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/utils/logger.js because of ./src/hls.ts */
          /***/
          function(ev, iv, ov) {
            ov.r(iv);
            var av = ov("./src/events.js"), sv = ov("./src/errors.ts"), lv = ov("./src/crypt/decrypter.js"), uv = ov("./src/polyfills/number.js"), cv = ov("./src/utils/logger.js"), dv = ov("./src/utils/get-self-scope.js");
            function hv(Hv, Jv, Mv, zv) {
              var Wv, Kv, c1, $1, N1, e$ = navigator.userAgent.toLowerCase(), R1 = zv, Zv = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350];
              if (Wv = ((Jv[Mv + 2] & 192) >>> 6) + 1, Kv = (Jv[Mv + 2] & 60) >>> 2, Kv > Zv.length - 1) {
                Hv.trigger(av.default.ERROR, {
                  type: sv.ErrorTypes.MEDIA_ERROR,
                  details: sv.ErrorDetails.FRAG_PARSING_ERROR,
                  fatal: !0,
                  reason: "invalid ADTS sampling index:" + Kv
                });
                return;
              }
              return $1 = (Jv[Mv + 2] & 1) << 2, $1 |= (Jv[Mv + 3] & 192) >>> 6, cv.logger.log("manifest codec:" + zv + ",ADTS data:type:" + Wv + ",sampleingIndex:" + Kv + "[" + Zv[Kv] + "Hz],channelConfig:" + $1), /firefox/i.test(e$) ? Kv >= 6 ? (Wv = 5, N1 = new Array(4), c1 = Kv - 3) : (Wv = 2, N1 = new Array(2), c1 = Kv) : e$.indexOf("android") !== -1 ? (Wv = 2, N1 = new Array(2), c1 = Kv) : (Wv = 5, N1 = new Array(4), zv && (zv.indexOf("mp4a.40.29") !== -1 || zv.indexOf("mp4a.40.5") !== -1) || !zv && Kv >= 6 ? c1 = Kv - 3 : ((zv && zv.indexOf("mp4a.40.2") !== -1 && (Kv >= 6 && $1 === 1 || /vivaldi/i.test(e$)) || !zv && $1 === 1) && (Wv = 2, N1 = new Array(2)), c1 = Kv)), N1[0] = Wv << 3, N1[0] |= (Kv & 14) >> 1, N1[1] |= (Kv & 1) << 7, N1[1] |= $1 << 3, Wv === 5 && (N1[1] |= (c1 & 14) >> 1, N1[2] = (c1 & 1) << 7, N1[2] |= 8, N1[3] = 0), {
                config: N1,
                samplerate: Zv[Kv],
                channelCount: $1,
                codec: "mp4a.40." + Wv,
                manifestCodec: R1
              };
            }
            function pv(Hv, Jv) {
              return Hv[Jv] === 255 && (Hv[Jv + 1] & 246) === 240;
            }
            function yv(Hv, Jv) {
              return Hv[Jv + 1] & 1 ? 7 : 9;
            }
            function Sv(Hv, Jv) {
              return (Hv[Jv + 3] & 3) << 11 | Hv[Jv + 4] << 3 | (Hv[Jv + 5] & 224) >>> 5;
            }
            function _v(Hv, Jv) {
              return !!(Jv + 1 < Hv.length && pv(Hv, Jv));
            }
            function Ev(Hv, Jv) {
              if (_v(Hv, Jv)) {
                var Mv = yv(Hv, Jv);
                if (Jv + Mv >= Hv.length)
                  return !1;
                var zv = Sv(Hv, Jv);
                if (zv <= Mv)
                  return !1;
                var Wv = Jv + zv;
                if (Wv === Hv.length || Wv + 1 < Hv.length && pv(Hv, Wv))
                  return !0;
              }
              return !1;
            }
            function wv(Hv, Jv, Mv, zv, Wv) {
              if (!Hv.samplerate) {
                var Kv = hv(Jv, Mv, zv, Wv);
                Hv.config = Kv.config, Hv.samplerate = Kv.samplerate, Hv.channelCount = Kv.channelCount, Hv.codec = Kv.codec, Hv.manifestCodec = Kv.manifestCodec, cv.logger.log("parsed codec:" + Hv.codec + ",rate:" + Kv.samplerate + ",nb channel:" + Kv.channelCount);
              }
            }
            function xv(Hv) {
              return 1024 * 9e4 / Hv;
            }
            function Cv(Hv, Jv, Mv, zv, Wv) {
              var Kv, c1, $1, N1 = Hv.length;
              if (Kv = yv(Hv, Jv), c1 = Sv(Hv, Jv), c1 -= Kv, c1 > 0 && Jv + Kv + c1 <= N1)
                return $1 = Mv + zv * Wv, {
                  headerLength: Kv,
                  frameLength: c1,
                  stamp: $1
                };
            }
            function Av(Hv, Jv, Mv, zv, Wv) {
              var Kv = xv(Hv.samplerate), c1 = Cv(Jv, Mv, zv, Wv, Kv);
              if (c1) {
                var $1 = c1.stamp, N1 = c1.headerLength, e$ = c1.frameLength, R1 = {
                  unit: Jv.subarray(Mv + N1, Mv + N1 + e$),
                  pts: $1,
                  dts: $1
                };
                return Hv.samples.push(R1), {
                  sample: R1,
                  length: e$ + N1
                };
              }
            }
            var Ov = ov("./src/demux/id3.js"), Lv = /* @__PURE__ */ function() {
              function Hv(Mv, zv, Wv) {
                this.observer = Mv, this.config = Wv, this.remuxer = zv;
              }
              var Jv = Hv.prototype;
              return Jv.resetInitSegment = function(Mv, zv, Wv, Kv) {
                this._audioTrack = {
                  container: "audio/adts",
                  type: "audio",
                  id: 0,
                  sequenceNumber: 0,
                  isAAC: !0,
                  samples: [],
                  len: 0,
                  manifestCodec: zv,
                  duration: Kv,
                  inputTimeScale: 9e4
                };
              }, Jv.resetTimeStamp = function() {
              }, Hv.probe = function(Mv) {
                if (!Mv)
                  return !1;
                for (var zv = Ov.default.getID3Data(Mv, 0) || [], Wv = zv.length, Kv = Mv.length; Wv < Kv; Wv++)
                  if (Ev(Mv, Wv))
                    return cv.logger.log("ADTS sync word found !"), !0;
                return !1;
              }, Jv.append = function(Mv, zv, Wv, Kv) {
                for (var c1 = this._audioTrack, $1 = Ov.default.getID3Data(Mv, 0) || [], N1 = Ov.default.getTimeStamp($1), e$ = Object(uv.isFiniteNumber)(N1) ? N1 * 90 : zv * 9e4, R1 = 0, Zv = e$, C1 = Mv.length, q1 = $1.length, t$ = [{
                  pts: Zv,
                  dts: Zv,
                  data: $1
                }]; q1 < C1 - 1; )
                  if (_v(Mv, q1) && q1 + 5 < C1) {
                    wv(c1, this.observer, Mv, q1, c1.manifestCodec);
                    var _b = Av(c1, Mv, q1, e$, R1);
                    if (_b)
                      q1 += _b.length, Zv = _b.sample.pts, R1++;
                    else {
                      cv.logger.log("Unable to parse AAC frame");
                      break;
                    }
                  } else
                    Ov.default.isHeader(Mv, q1) ? ($1 = Ov.default.getID3Data(Mv, q1), t$.push({
                      pts: Zv,
                      dts: Zv,
                      data: $1
                    }), q1 += $1.length) : q1++;
                this.remuxer.remux(c1, {
                  samples: []
                }, {
                  samples: t$,
                  inputTimeScale: 9e4
                }, {
                  samples: []
                }, zv, Wv, Kv);
              }, Jv.destroy = function() {
              }, Hv;
            }(), jv = Lv, Dv = ov("./src/demux/mp4demuxer.js"), Vv = {
              BitratesMap: [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160],
              SamplingRateMap: [44100, 48e3, 32e3, 22050, 24e3, 16e3, 11025, 12e3, 8e3],
              SamplesCoefficients: [
                // MPEG 2.5
                [
                  0,
                  // Reserved
                  72,
                  // Layer3
                  144,
                  // Layer2
                  12
                  // Layer1
                ],
                // Reserved
                [
                  0,
                  // Reserved
                  0,
                  // Layer3
                  0,
                  // Layer2
                  0
                  // Layer1
                ],
                // MPEG 2
                [
                  0,
                  // Reserved
                  72,
                  // Layer3
                  144,
                  // Layer2
                  12
                  // Layer1
                ],
                // MPEG 1
                [
                  0,
                  // Reserved
                  144,
                  // Layer3
                  144,
                  // Layer2
                  12
                  // Layer1
                ]
              ],
              BytesInSlot: [
                0,
                // Reserved
                1,
                // Layer3
                1,
                // Layer2
                4
                // Layer1
              ],
              appendFrame: function(Hv, Jv, Mv, zv, Wv) {
                if (!(Mv + 24 > Jv.length)) {
                  var Kv = this.parseHeader(Jv, Mv);
                  if (Kv && Mv + Kv.frameLength <= Jv.length) {
                    var c1 = Kv.samplesPerFrame * 9e4 / Kv.sampleRate, $1 = zv + Wv * c1, N1 = {
                      unit: Jv.subarray(Mv, Mv + Kv.frameLength),
                      pts: $1,
                      dts: $1
                    };
                    return Hv.config = [], Hv.channelCount = Kv.channelCount, Hv.samplerate = Kv.sampleRate, Hv.samples.push(N1), {
                      sample: N1,
                      length: Kv.frameLength
                    };
                  }
                }
              },
              parseHeader: function(Hv, Jv) {
                var Mv = Hv[Jv + 1] >> 3 & 3, zv = Hv[Jv + 1] >> 1 & 3, Wv = Hv[Jv + 2] >> 4 & 15, Kv = Hv[Jv + 2] >> 2 & 3, c1 = Hv[Jv + 2] >> 1 & 1;
                if (Mv !== 1 && Wv !== 0 && Wv !== 15 && Kv !== 3) {
                  var $1 = Mv === 3 ? 3 - zv : zv === 3 ? 3 : 4, N1 = Vv.BitratesMap[$1 * 14 + Wv - 1] * 1e3, e$ = Mv === 3 ? 0 : Mv === 2 ? 1 : 2, R1 = Vv.SamplingRateMap[e$ * 3 + Kv], Zv = Hv[Jv + 3] >> 6 === 3 ? 1 : 2, C1 = Vv.SamplesCoefficients[Mv][zv], q1 = Vv.BytesInSlot[zv], t$ = C1 * 8 * q1, _b = parseInt(C1 * N1 / R1 + c1, 10) * q1;
                  return {
                    sampleRate: R1,
                    channelCount: Zv,
                    frameLength: _b,
                    samplesPerFrame: t$
                  };
                }
              },
              isHeaderPattern: function(Hv, Jv) {
                return Hv[Jv] === 255 && (Hv[Jv + 1] & 224) === 224 && (Hv[Jv + 1] & 6) !== 0;
              },
              isHeader: function(Hv, Jv) {
                return !!(Jv + 1 < Hv.length && this.isHeaderPattern(Hv, Jv));
              },
              probe: function(Hv, Jv) {
                if (Jv + 1 < Hv.length && this.isHeaderPattern(Hv, Jv)) {
                  var Mv = 4, zv = this.parseHeader(Hv, Jv), Wv = Mv;
                  zv && zv.frameLength && (Wv = zv.frameLength);
                  var Kv = Jv + Wv;
                  if (Kv === Hv.length || Kv + 1 < Hv.length && this.isHeaderPattern(Hv, Kv))
                    return !0;
                }
                return !1;
              }
            }, Gv = Vv, Yv = /* @__PURE__ */ function() {
              function Hv(Mv) {
                this.data = Mv, this.bytesAvailable = Mv.byteLength, this.word = 0, this.bitsAvailable = 0;
              }
              var Jv = Hv.prototype;
              return Jv.loadWord = function() {
                var Mv = this.data, zv = this.bytesAvailable, Wv = Mv.byteLength - zv, Kv = new Uint8Array(4), c1 = Math.min(4, zv);
                if (c1 === 0)
                  throw new Error("no bytes available");
                Kv.set(Mv.subarray(Wv, Wv + c1)), this.word = new DataView(Kv.buffer).getUint32(0), this.bitsAvailable = c1 * 8, this.bytesAvailable -= c1;
              }, Jv.skipBits = function(Mv) {
                var zv;
                this.bitsAvailable > Mv ? (this.word <<= Mv, this.bitsAvailable -= Mv) : (Mv -= this.bitsAvailable, zv = Mv >> 3, Mv -= zv >> 3, this.bytesAvailable -= zv, this.loadWord(), this.word <<= Mv, this.bitsAvailable -= Mv);
              }, Jv.readBits = function(Mv) {
                var zv = Math.min(this.bitsAvailable, Mv), Wv = this.word >>> 32 - zv;
                return Mv > 32 && cv.logger.error("Cannot read more than 32 bits at a time"), this.bitsAvailable -= zv, this.bitsAvailable > 0 ? this.word <<= zv : this.bytesAvailable > 0 && this.loadWord(), zv = Mv - zv, zv > 0 && this.bitsAvailable ? Wv << zv | this.readBits(zv) : Wv;
              }, Jv.skipLZ = function() {
                var Mv;
                for (Mv = 0; Mv < this.bitsAvailable; ++Mv)
                  if (this.word & 2147483648 >>> Mv)
                    return this.word <<= Mv, this.bitsAvailable -= Mv, Mv;
                return this.loadWord(), Mv + this.skipLZ();
              }, Jv.skipUEG = function() {
                this.skipBits(1 + this.skipLZ());
              }, Jv.skipEG = function() {
                this.skipBits(1 + this.skipLZ());
              }, Jv.readUEG = function() {
                var Mv = this.skipLZ();
                return this.readBits(Mv + 1) - 1;
              }, Jv.readEG = function() {
                var Mv = this.readUEG();
                return 1 & Mv ? 1 + Mv >>> 1 : -1 * (Mv >>> 1);
              }, Jv.readBoolean = function() {
                return this.readBits(1) === 1;
              }, Jv.readUByte = function() {
                return this.readBits(8);
              }, Jv.readUShort = function() {
                return this.readBits(16);
              }, Jv.readUInt = function() {
                return this.readBits(32);
              }, Jv.skipScalingList = function(Mv) {
                var zv = 8, Wv = 8, Kv, c1;
                for (Kv = 0; Kv < Mv; Kv++)
                  Wv !== 0 && (c1 = this.readEG(), Wv = (zv + c1 + 256) % 256), zv = Wv === 0 ? zv : Wv;
              }, Jv.readSPS = function() {
                var Mv = 0, zv = 0, Wv = 0, Kv = 0, c1, $1, N1, e$, R1, Zv, C1, q1 = this.readUByte.bind(this), t$ = this.readBits.bind(this), _b = this.readUEG.bind(this), c$ = this.readBoolean.bind(this), l$ = this.skipBits.bind(this), p$ = this.skipEG.bind(this), h$ = this.skipUEG.bind(this), y$ = this.skipScalingList.bind(this);
                if (q1(), c1 = q1(), t$(5), l$(3), q1(), h$(), c1 === 100 || c1 === 110 || c1 === 122 || c1 === 244 || c1 === 44 || c1 === 83 || c1 === 86 || c1 === 118 || c1 === 128) {
                  var V$ = _b();
                  if (V$ === 3 && l$(1), h$(), h$(), l$(1), c$())
                    for (Zv = V$ !== 3 ? 8 : 12, C1 = 0; C1 < Zv; C1++)
                      c$() && (C1 < 6 ? y$(16) : y$(64));
                }
                h$();
                var D$ = _b();
                if (D$ === 0)
                  _b();
                else if (D$ === 1)
                  for (l$(1), p$(), p$(), $1 = _b(), C1 = 0; C1 < $1; C1++)
                    p$();
                h$(), l$(1), N1 = _b(), e$ = _b(), R1 = t$(1), R1 === 0 && l$(1), l$(1), c$() && (Mv = _b(), zv = _b(), Wv = _b(), Kv = _b());
                var A$ = [1, 1];
                if (c$() && c$()) {
                  var L$ = q1();
                  switch (L$) {
                    case 1:
                      A$ = [1, 1];
                      break;
                    case 2:
                      A$ = [12, 11];
                      break;
                    case 3:
                      A$ = [10, 11];
                      break;
                    case 4:
                      A$ = [16, 11];
                      break;
                    case 5:
                      A$ = [40, 33];
                      break;
                    case 6:
                      A$ = [24, 11];
                      break;
                    case 7:
                      A$ = [20, 11];
                      break;
                    case 8:
                      A$ = [32, 11];
                      break;
                    case 9:
                      A$ = [80, 33];
                      break;
                    case 10:
                      A$ = [18, 11];
                      break;
                    case 11:
                      A$ = [15, 11];
                      break;
                    case 12:
                      A$ = [64, 33];
                      break;
                    case 13:
                      A$ = [160, 99];
                      break;
                    case 14:
                      A$ = [4, 3];
                      break;
                    case 15:
                      A$ = [3, 2];
                      break;
                    case 16:
                      A$ = [2, 1];
                      break;
                    case 255: {
                      A$ = [q1() << 8 | q1(), q1() << 8 | q1()];
                      break;
                    }
                  }
                }
                return {
                  width: Math.ceil((N1 + 1) * 16 - Mv * 2 - zv * 2),
                  height: (2 - R1) * (e$ + 1) * 16 - (R1 ? 2 : 4) * (Wv + Kv),
                  pixelRatio: A$
                };
              }, Jv.readSliceType = function() {
                return this.readUByte(), this.readUEG(), this.readUEG();
              }, Hv;
            }(), Xv = Yv, L1 = /* @__PURE__ */ function() {
              function Hv(Mv, zv, Wv, Kv) {
                this.decryptdata = Wv, this.discardEPB = Kv, this.decrypter = new lv.default(Mv, zv, {
                  removePKCS7Padding: !1
                });
              }
              var Jv = Hv.prototype;
              return Jv.decryptBuffer = function(Mv, zv) {
                this.decrypter.decrypt(Mv, this.decryptdata.key.buffer, this.decryptdata.iv.buffer, zv);
              }, Jv.decryptAacSample = function(Mv, zv, Wv, Kv) {
                var c1 = Mv[zv].unit, $1 = c1.subarray(16, c1.length - c1.length % 16), N1 = $1.buffer.slice($1.byteOffset, $1.byteOffset + $1.length), e$ = this;
                this.decryptBuffer(N1, function(R1) {
                  R1 = new Uint8Array(R1), c1.set(R1, 16), Kv || e$.decryptAacSamples(Mv, zv + 1, Wv);
                });
              }, Jv.decryptAacSamples = function(Mv, zv, Wv) {
                for (; ; zv++) {
                  if (zv >= Mv.length) {
                    Wv();
                    return;
                  }
                  if (!(Mv[zv].unit.length < 32)) {
                    var Kv = this.decrypter.isSync();
                    if (this.decryptAacSample(Mv, zv, Wv, Kv), !Kv)
                      return;
                  }
                }
              }, Jv.getAvcEncryptedData = function(Mv) {
                for (var zv = Math.floor((Mv.length - 48) / 160) * 16 + 16, Wv = new Int8Array(zv), Kv = 0, c1 = 32; c1 <= Mv.length - 16; c1 += 160, Kv += 16)
                  Wv.set(Mv.subarray(c1, c1 + 16), Kv);
                return Wv;
              }, Jv.getAvcDecryptedUnit = function(Mv, zv) {
                zv = new Uint8Array(zv);
                for (var Wv = 0, Kv = 32; Kv <= Mv.length - 16; Kv += 160, Wv += 16)
                  Mv.set(zv.subarray(Wv, Wv + 16), Kv);
                return Mv;
              }, Jv.decryptAvcSample = function(Mv, zv, Wv, Kv, c1, $1) {
                var N1 = this.discardEPB(c1.data), e$ = this.getAvcEncryptedData(N1), R1 = this;
                this.decryptBuffer(e$.buffer, function(Zv) {
                  c1.data = R1.getAvcDecryptedUnit(N1, Zv), $1 || R1.decryptAvcSamples(Mv, zv, Wv + 1, Kv);
                });
              }, Jv.decryptAvcSamples = function(Mv, zv, Wv, Kv) {
                for (; ; zv++, Wv = 0) {
                  if (zv >= Mv.length) {
                    Kv();
                    return;
                  }
                  for (var c1 = Mv[zv].units; !(Wv >= c1.length); Wv++) {
                    var $1 = c1[Wv];
                    if (!($1.data.length <= 48 || $1.type !== 1 && $1.type !== 5)) {
                      var N1 = this.decrypter.isSync();
                      if (this.decryptAvcSample(Mv, zv, Wv, Kv, $1, N1), !N1)
                        return;
                    }
                  }
                }
              }, Hv;
            }(), Bv = L1, Qv = {
              video: 1,
              audio: 2,
              id3: 3,
              text: 4
            }, B1 = /* @__PURE__ */ function() {
              function Hv(Mv, zv, Wv, Kv) {
                this.observer = Mv, this.config = Wv, this.typeSupported = Kv, this.remuxer = zv, this.sampleAes = null, this.pmtUnknownTypes = {};
              }
              var Jv = Hv.prototype;
              return Jv.setDecryptData = function(Mv) {
                Mv != null && Mv.key != null && Mv.method === "SAMPLE-AES" ? this.sampleAes = new Bv(this.observer, this.config, Mv, this.discardEPB) : this.sampleAes = null;
              }, Hv.probe = function(Mv) {
                var zv = Hv._syncOffset(Mv);
                return zv < 0 ? !1 : (zv && cv.logger.warn("MPEG2-TS detected but first sync word found @ offset " + zv + ", junk ahead ?"), !0);
              }, Hv._syncOffset = function(Mv) {
                for (var zv = Math.min(1e3, Mv.length - 564), Wv = 0; Wv < zv; ) {
                  if (Mv[Wv] === 71 && Mv[Wv + 188] === 71 && Mv[Wv + 2 * 188] === 71)
                    return Wv;
                  Wv++;
                }
                return -1;
              }, Hv.createTrack = function(Mv, zv) {
                return {
                  container: Mv === "video" || Mv === "audio" ? "video/mp2t" : void 0,
                  type: Mv,
                  id: Qv[Mv],
                  pid: -1,
                  inputTimeScale: 9e4,
                  sequenceNumber: 0,
                  samples: [],
                  dropped: Mv === "video" ? 0 : void 0,
                  isAAC: Mv === "audio" ? !0 : void 0,
                  duration: Mv === "audio" ? zv : void 0
                };
              }, Jv.resetInitSegment = function(Mv, zv, Wv, Kv) {
                this.pmtParsed = !1, this._pmtId = -1, this.pmtUnknownTypes = {}, this._avcTrack = Hv.createTrack("video", Kv), this._audioTrack = Hv.createTrack("audio", Kv), this._id3Track = Hv.createTrack("id3", Kv), this._txtTrack = Hv.createTrack("text", Kv), this.aacOverFlow = null, this.aacLastPTS = null, this.avcSample = null, this.audioCodec = zv, this.videoCodec = Wv, this._duration = Kv;
              }, Jv.resetTimeStamp = function() {
              }, Jv.append = function(Mv, zv, Wv, Kv) {
                var c1, $1 = Mv.length, N1, e$, R1, Zv, C1, q1 = !1;
                this.pmtUnknownTypes = {}, this.contiguous = Wv;
                var t$ = this.pmtParsed, _b = this._avcTrack, c$ = this._audioTrack, l$ = this._id3Track, p$ = _b.pid, h$ = c$.pid, y$ = l$.pid, V$ = this._pmtId, D$ = _b.pesData, A$ = c$.pesData, L$ = l$.pesData, U$ = this._parsePAT, jw = this._parsePMT.bind(this), Q$ = this._parsePES, W$ = this._parseAVCPES.bind(this), eE = this._parseAACPES.bind(this), q$ = this._parseMPEGPES.bind(this), Hw = this._parseID3PES.bind(this), J$ = Hv._syncOffset(Mv);
                for ($1 -= ($1 + J$) % 188, c1 = J$; c1 < $1; c1 += 188)
                  if (Mv[c1] === 71) {
                    if (N1 = !!(Mv[c1 + 1] & 64), e$ = ((Mv[c1 + 1] & 31) << 8) + Mv[c1 + 2], R1 = (Mv[c1 + 3] & 48) >> 4, R1 > 1) {
                      if (Zv = c1 + 5 + Mv[c1 + 4], Zv === c1 + 188)
                        continue;
                    } else
                      Zv = c1 + 4;
                    switch (e$) {
                      case p$:
                        N1 && (D$ && (C1 = Q$(D$)) && W$(C1, !1), D$ = {
                          data: [],
                          size: 0
                        }), D$ && (D$.data.push(Mv.subarray(Zv, c1 + 188)), D$.size += c1 + 188 - Zv);
                        break;
                      case h$:
                        N1 && (A$ && (C1 = Q$(A$)) && (c$.isAAC ? eE(C1) : q$(C1)), A$ = {
                          data: [],
                          size: 0
                        }), A$ && (A$.data.push(Mv.subarray(Zv, c1 + 188)), A$.size += c1 + 188 - Zv);
                        break;
                      case y$:
                        N1 && (L$ && (C1 = Q$(L$)) && Hw(C1), L$ = {
                          data: [],
                          size: 0
                        }), L$ && (L$.data.push(Mv.subarray(Zv, c1 + 188)), L$.size += c1 + 188 - Zv);
                        break;
                      case 0:
                        N1 && (Zv += Mv[Zv] + 1), V$ = this._pmtId = U$(Mv, Zv);
                        break;
                      case V$:
                        N1 && (Zv += Mv[Zv] + 1);
                        var Y$ = jw(Mv, Zv, this.typeSupported.mpeg === !0 || this.typeSupported.mp3 === !0, this.sampleAes != null);
                        p$ = Y$.avc, p$ > 0 && (_b.pid = p$), h$ = Y$.audio, h$ > 0 && (c$.pid = h$, c$.isAAC = Y$.isAAC), y$ = Y$.id3, y$ > 0 && (l$.pid = y$), q1 && !t$ && (cv.logger.log("reparse from beginning"), q1 = !1, c1 = J$ - 188), t$ = this.pmtParsed = !0;
                        break;
                      case 17:
                      case 8191:
                        break;
                      default:
                        q1 = !0;
                        break;
                    }
                  } else
                    this.observer.trigger(av.default.ERROR, {
                      type: sv.ErrorTypes.MEDIA_ERROR,
                      details: sv.ErrorDetails.FRAG_PARSING_ERROR,
                      fatal: !1,
                      reason: "TS packet did not start with 0x47"
                    });
                D$ && (C1 = Q$(D$)) ? (W$(C1, !0), _b.pesData = null) : _b.pesData = D$, A$ && (C1 = Q$(A$)) ? (c$.isAAC ? eE(C1) : q$(C1), c$.pesData = null) : (A$ && A$.size && cv.logger.log("last AAC PES packet truncated,might overlap between fragments"), c$.pesData = A$), L$ && (C1 = Q$(L$)) ? (Hw(C1), l$.pesData = null) : l$.pesData = L$, this.sampleAes == null ? this.remuxer.remux(c$, _b, l$, this._txtTrack, zv, Wv, Kv) : this.decryptAndRemux(c$, _b, l$, this._txtTrack, zv, Wv, Kv);
              }, Jv.decryptAndRemux = function(Mv, zv, Wv, Kv, c1, $1, N1) {
                if (Mv.samples && Mv.isAAC) {
                  var e$ = this;
                  this.sampleAes.decryptAacSamples(Mv.samples, 0, function() {
                    e$.decryptAndRemuxAvc(Mv, zv, Wv, Kv, c1, $1, N1);
                  });
                } else
                  this.decryptAndRemuxAvc(Mv, zv, Wv, Kv, c1, $1, N1);
              }, Jv.decryptAndRemuxAvc = function(Mv, zv, Wv, Kv, c1, $1, N1) {
                if (zv.samples) {
                  var e$ = this;
                  this.sampleAes.decryptAvcSamples(zv.samples, 0, 0, function() {
                    e$.remuxer.remux(Mv, zv, Wv, Kv, c1, $1, N1);
                  });
                } else
                  this.remuxer.remux(Mv, zv, Wv, Kv, c1, $1, N1);
              }, Jv.destroy = function() {
                this._initPTS = this._initDTS = void 0, this._duration = 0;
              }, Jv._parsePAT = function(Mv, zv) {
                return (Mv[zv + 10] & 31) << 8 | Mv[zv + 11];
              }, Jv._trackUnknownPmt = function(Mv, zv, Wv) {
                var Kv = this.pmtUnknownTypes[Mv] || 0;
                return Kv === 0 && (this.pmtUnknownTypes[Mv] = 0, zv.call(cv.logger, Wv)), this.pmtUnknownTypes[Mv]++, Kv;
              }, Jv._parsePMT = function(Mv, zv, Wv, Kv) {
                var c1, $1, N1, e$, R1 = {
                  audio: -1,
                  avc: -1,
                  id3: -1,
                  isAAC: !0
                };
                for (c1 = (Mv[zv + 1] & 15) << 8 | Mv[zv + 2], $1 = zv + 3 + c1 - 4, N1 = (Mv[zv + 10] & 15) << 8 | Mv[zv + 11], zv += 12 + N1; zv < $1; ) {
                  switch (e$ = (Mv[zv + 1] & 31) << 8 | Mv[zv + 2], Mv[zv]) {
                    case 207:
                      if (!Kv) {
                        this._trackUnknownPmt(Mv[zv], cv.logger.warn, "ADTS AAC with AES-128-CBC frame encryption found in unencrypted stream");
                        break;
                      }
                    case 15:
                      R1.audio === -1 && (R1.audio = e$);
                      break;
                    case 21:
                      R1.id3 === -1 && (R1.id3 = e$);
                      break;
                    case 219:
                      if (!Kv) {
                        this._trackUnknownPmt(Mv[zv], cv.logger.warn, "H.264 with AES-128-CBC slice encryption found in unencrypted stream");
                        break;
                      }
                    case 27:
                      R1.avc === -1 && (R1.avc = e$);
                      break;
                    case 3:
                    case 4:
                      Wv ? R1.audio === -1 && (R1.audio = e$, R1.isAAC = !1) : this._trackUnknownPmt(Mv[zv], cv.logger.warn, "MPEG audio found, not supported in this browser");
                      break;
                    case 36:
                      this._trackUnknownPmt(Mv[zv], cv.logger.warn, "Unsupported HEVC stream type found");
                      break;
                    default:
                      this._trackUnknownPmt(Mv[zv], cv.logger.log, "Unknown stream type:" + Mv[zv]);
                      break;
                  }
                  zv += ((Mv[zv + 3] & 15) << 8 | Mv[zv + 4]) + 5;
                }
                return R1;
              }, Jv._parsePES = function(Mv) {
                var zv = 0, Wv, Kv, c1, $1, N1, e$, R1, Zv, C1, q1 = Mv.data;
                if (!Mv || Mv.size === 0)
                  return null;
                for (; q1[0].length < 19 && q1.length > 1; ) {
                  var t$ = new Uint8Array(q1[0].length + q1[1].length);
                  t$.set(q1[0]), t$.set(q1[1], q1[0].length), q1[0] = t$, q1.splice(1, 1);
                }
                if (Wv = q1[0], c1 = (Wv[0] << 16) + (Wv[1] << 8) + Wv[2], c1 === 1) {
                  if ($1 = (Wv[4] << 8) + Wv[5], $1 && $1 > Mv.size - 6 || (Kv = Wv[7], Kv & 192 && (R1 = (Wv[9] & 14) * 536870912 + // 1 << 29
                  (Wv[10] & 255) * 4194304 + // 1 << 22
                  (Wv[11] & 254) * 16384 + // 1 << 14
                  (Wv[12] & 255) * 128 + // 1 << 7
                  (Wv[13] & 254) / 2, Kv & 64 ? (Zv = (Wv[14] & 14) * 536870912 + // 1 << 29
                  (Wv[15] & 255) * 4194304 + // 1 << 22
                  (Wv[16] & 254) * 16384 + // 1 << 14
                  (Wv[17] & 255) * 128 + // 1 << 7
                  (Wv[18] & 254) / 2, R1 - Zv > 60 * 9e4 && (cv.logger.warn(Math.round((R1 - Zv) / 9e4) + "s delta between PTS and DTS, align them"), R1 = Zv)) : Zv = R1), N1 = Wv[8], C1 = N1 + 9, Mv.size <= C1))
                    return null;
                  Mv.size -= C1, e$ = new Uint8Array(Mv.size);
                  for (var _b = 0, c$ = q1.length; _b < c$; _b++) {
                    Wv = q1[_b];
                    var l$ = Wv.byteLength;
                    if (C1)
                      if (C1 > l$) {
                        C1 -= l$;
                        continue;
                      } else
                        Wv = Wv.subarray(C1), l$ -= C1, C1 = 0;
                    e$.set(Wv, zv), zv += l$;
                  }
                  return $1 && ($1 -= N1 + 3), {
                    data: e$,
                    pts: R1,
                    dts: Zv,
                    len: $1
                  };
                } else
                  return null;
              }, Jv.pushAccesUnit = function(Mv, zv) {
                if (Mv.units.length && Mv.frame) {
                  var Wv = zv.samples, Kv = Wv.length;
                  if (isNaN(Mv.pts))
                    if (Kv) {
                      var c1 = Wv[Kv - 1];
                      Mv.pts = c1.pts, Mv.dts = c1.dts;
                    } else {
                      zv.dropped++;
                      return;
                    }
                  !this.config.forceKeyFrameOnDiscontinuity || Mv.key === !0 || zv.sps && (Kv || this.contiguous) ? (Mv.id = Kv, Wv.push(Mv)) : zv.dropped++;
                }
                Mv.debug.length && cv.logger.log(Mv.pts + "/" + Mv.dts + ":" + Mv.debug);
              }, Jv._parseAVCPES = function(Mv, zv) {
                var Wv = this, Kv = this._avcTrack, c1 = this._parseAVCNALu(Mv.data), $1, N1 = this.avcSample, e$, R1 = !1, Zv, C1 = this.pushAccesUnit.bind(this), q1 = function(t$, _b, c$, l$) {
                  return {
                    key: t$,
                    pts: _b,
                    dts: c$,
                    units: [],
                    debug: l$
                  };
                };
                Mv.data = null, N1 && c1.length && !Kv.audFound && (C1(N1, Kv), N1 = this.avcSample = q1(!1, Mv.pts, Mv.dts, "")), c1.forEach(function(t$) {
                  switch (t$.type) {
                    case 1:
                      e$ = !0, N1 || (N1 = Wv.avcSample = q1(!0, Mv.pts, Mv.dts, "")), N1.frame = !0;
                      var _b = t$.data;
                      if (R1 && _b.length > 4) {
                        var c$ = new Xv(_b).readSliceType();
                        (c$ === 2 || c$ === 4 || c$ === 7 || c$ === 9) && (N1.key = !0);
                      }
                      break;
                    case 5:
                      e$ = !0, N1 || (N1 = Wv.avcSample = q1(!0, Mv.pts, Mv.dts, "")), N1.key = !0, N1.frame = !0;
                      break;
                    case 6:
                      e$ = !0, $1 = new Xv(Wv.discardEPB(t$.data)), $1.readUByte();
                      for (var l$ = 0, p$ = 0, h$ = !1, y$ = 0; !h$ && $1.bytesAvailable > 1; ) {
                        l$ = 0;
                        do
                          y$ = $1.readUByte(), l$ += y$;
                        while (y$ === 255);
                        p$ = 0;
                        do
                          y$ = $1.readUByte(), p$ += y$;
                        while (y$ === 255);
                        if (l$ === 4 && $1.bytesAvailable !== 0) {
                          h$ = !0;
                          var V$ = $1.readUByte();
                          if (V$ === 181) {
                            var D$ = $1.readUShort();
                            if (D$ === 49) {
                              var A$ = $1.readUInt();
                              if (A$ === 1195456820) {
                                var L$ = $1.readUByte();
                                if (L$ === 3) {
                                  var U$ = $1.readUByte(), jw = $1.readUByte(), Q$ = 31 & U$, W$ = [U$, jw];
                                  for (Zv = 0; Zv < Q$; Zv++)
                                    W$.push($1.readUByte()), W$.push($1.readUByte()), W$.push($1.readUByte());
                                  Wv._insertSampleInOrder(Wv._txtTrack.samples, {
                                    type: 3,
                                    pts: Mv.pts,
                                    bytes: W$
                                  });
                                }
                              }
                            }
                          }
                        } else if (l$ === 5 && $1.bytesAvailable !== 0) {
                          if (h$ = !0, p$ > 16) {
                            var eE = [];
                            for (Zv = 0; Zv < 16; Zv++)
                              eE.push($1.readUByte().toString(16)), (Zv === 3 || Zv === 5 || Zv === 7 || Zv === 9) && eE.push("-");
                            var q$ = p$ - 16, Hw = new Uint8Array(q$);
                            for (Zv = 0; Zv < q$; Zv++)
                              Hw[Zv] = $1.readUByte();
                            Wv._insertSampleInOrder(Wv._txtTrack.samples, {
                              pts: Mv.pts,
                              payloadType: l$,
                              uuid: eE.join(""),
                              userDataBytes: Hw,
                              userData: Object(Ov.utf8ArrayToStr)(Hw.buffer)
                            });
                          }
                        } else if (p$ < $1.bytesAvailable)
                          for (Zv = 0; Zv < p$; Zv++)
                            $1.readUByte();
                      }
                      break;
                    case 7:
                      if (e$ = !0, R1 = !0, !Kv.sps) {
                        $1 = new Xv(t$.data);
                        var J$ = $1.readSPS();
                        Kv.width = J$.width, Kv.height = J$.height, Kv.pixelRatio = J$.pixelRatio, Kv.sps = [t$.data], Kv.duration = Wv._duration;
                        var Y$ = t$.data.subarray(1, 4), ix = "avc1.";
                        for (Zv = 0; Zv < 3; Zv++) {
                          var V1 = Y$[Zv].toString(16);
                          V1.length < 2 && (V1 = "0" + V1), ix += V1;
                        }
                        Kv.codec = ix;
                      }
                      break;
                    case 8:
                      e$ = !0, Kv.pps || (Kv.pps = [t$.data]);
                      break;
                    case 9:
                      e$ = !1, Kv.audFound = !0, N1 && C1(N1, Kv), N1 = Wv.avcSample = q1(!1, Mv.pts, Mv.dts, "");
                      break;
                    case 12:
                      e$ = !1;
                      break;
                    default:
                      e$ = !1, N1 && (N1.debug += "unknown NAL " + t$.type + " ");
                      break;
                  }
                  if (N1 && e$) {
                    var z1 = N1.units;
                    z1.push(t$);
                  }
                }), zv && N1 && (C1(N1, Kv), this.avcSample = null);
              }, Jv._insertSampleInOrder = function(Mv, zv) {
                var Wv = Mv.length;
                if (Wv > 0) {
                  if (zv.pts >= Mv[Wv - 1].pts)
                    Mv.push(zv);
                  else
                    for (var Kv = Wv - 1; Kv >= 0; Kv--)
                      if (zv.pts < Mv[Kv].pts) {
                        Mv.splice(Kv, 0, zv);
                        break;
                      }
                } else
                  Mv.push(zv);
              }, Jv._getLastNalUnit = function() {
                var Mv = this.avcSample, zv;
                if (!Mv || Mv.units.length === 0) {
                  var Wv = this._avcTrack, Kv = Wv.samples;
                  Mv = Kv[Kv.length - 1];
                }
                if (Mv) {
                  var c1 = Mv.units;
                  zv = c1[c1.length - 1];
                }
                return zv;
              }, Jv._parseAVCNALu = function(Mv) {
                var zv = 0, Wv = Mv.byteLength, Kv, c1, $1 = this._avcTrack, N1 = $1.naluState || 0, e$ = N1, R1 = [], Zv, C1, q1 = -1, t$;
                for (N1 === -1 && (q1 = 0, t$ = Mv[0] & 31, N1 = 0, zv = 1); zv < Wv; ) {
                  if (Kv = Mv[zv++], !N1) {
                    N1 = Kv ? 0 : 1;
                    continue;
                  }
                  if (N1 === 1) {
                    N1 = Kv ? 0 : 2;
                    continue;
                  }
                  if (!Kv)
                    N1 = 3;
                  else if (Kv === 1) {
                    if (q1 >= 0)
                      Zv = {
                        data: Mv.subarray(q1, zv - N1 - 1),
                        type: t$
                      }, R1.push(Zv);
                    else {
                      var _b = this._getLastNalUnit();
                      if (_b && (e$ && zv <= 4 - e$ && _b.state && (_b.data = _b.data.subarray(0, _b.data.byteLength - e$)), c1 = zv - N1 - 1, c1 > 0)) {
                        var c$ = new Uint8Array(_b.data.byteLength + c1);
                        c$.set(_b.data, 0), c$.set(Mv.subarray(0, c1), _b.data.byteLength), _b.data = c$;
                      }
                    }
                    zv < Wv ? (C1 = Mv[zv] & 31, q1 = zv, t$ = C1, N1 = 0) : N1 = -1;
                  } else
                    N1 = 0;
                }
                if (q1 >= 0 && N1 >= 0 && (Zv = {
                  data: Mv.subarray(q1, Wv),
                  type: t$,
                  state: N1
                }, R1.push(Zv)), R1.length === 0) {
                  var l$ = this._getLastNalUnit();
                  if (l$) {
                    var p$ = new Uint8Array(l$.data.byteLength + Mv.byteLength);
                    p$.set(l$.data, 0), p$.set(Mv, l$.data.byteLength), l$.data = p$;
                  }
                }
                return $1.naluState = N1, R1;
              }, Jv.discardEPB = function(Mv) {
                for (var zv = Mv.byteLength, Wv = [], Kv = 1, c1, $1; Kv < zv - 2; )
                  Mv[Kv] === 0 && Mv[Kv + 1] === 0 && Mv[Kv + 2] === 3 ? (Wv.push(Kv + 2), Kv += 2) : Kv++;
                if (Wv.length === 0)
                  return Mv;
                c1 = zv - Wv.length, $1 = new Uint8Array(c1);
                var N1 = 0;
                for (Kv = 0; Kv < c1; N1++, Kv++)
                  N1 === Wv[0] && (N1++, Wv.shift()), $1[Kv] = Mv[N1];
                return $1;
              }, Jv._parseAACPES = function(Mv) {
                var zv = this._audioTrack, Wv = Mv.data, Kv = Mv.pts, c1 = 0, $1 = this.aacOverFlow, N1 = this.aacLastPTS, e$, R1, Zv, C1, q1;
                if ($1) {
                  var t$ = new Uint8Array($1.byteLength + Wv.byteLength);
                  t$.set($1, 0), t$.set(Wv, $1.byteLength), Wv = t$;
                }
                for (Zv = c1, q1 = Wv.length; Zv < q1 - 1 && !_v(Wv, Zv); Zv++)
                  ;
                if (Zv) {
                  var _b, c$;
                  if (Zv < q1 - 1 ? (_b = "AAC PES did not start with ADTS header,offset:" + Zv, c$ = !1) : (_b = "no ADTS header found in AAC PES", c$ = !0), cv.logger.warn("parsing error:" + _b), this.observer.trigger(av.default.ERROR, {
                    type: sv.ErrorTypes.MEDIA_ERROR,
                    details: sv.ErrorDetails.FRAG_PARSING_ERROR,
                    fatal: c$,
                    reason: _b
                  }), c$)
                    return;
                }
                if (wv(zv, this.observer, Wv, Zv, this.audioCodec), R1 = 0, e$ = xv(zv.samplerate), $1 && N1) {
                  var l$ = N1 + e$;
                  Math.abs(l$ - Kv) > 1 && (cv.logger.log("AAC: align PTS for overlapping frames by " + Math.round((l$ - Kv) / 90)), Kv = l$);
                }
                for (; Zv < q1; )
                  if (_v(Wv, Zv)) {
                    if (Zv + 5 < q1) {
                      var p$ = Av(zv, Wv, Zv, Kv, R1);
                      if (p$) {
                        Zv += p$.length, C1 = p$.sample.pts, R1++;
                        continue;
                      }
                    }
                    break;
                  } else
                    Zv++;
                Zv < q1 ? $1 = Wv.subarray(Zv, q1) : $1 = null, this.aacOverFlow = $1, this.aacLastPTS = C1;
              }, Jv._parseMPEGPES = function(Mv) {
                for (var zv = Mv.data, Wv = zv.length, Kv = 0, c1 = 0, $1 = Mv.pts; c1 < Wv; )
                  if (Gv.isHeader(zv, c1)) {
                    var N1 = Gv.appendFrame(this._audioTrack, zv, c1, $1, Kv);
                    if (N1)
                      c1 += N1.length, Kv++;
                    else
                      break;
                  } else
                    c1++;
              }, Jv._parseID3PES = function(Mv) {
                this._id3Track.samples.push(Mv);
              }, Hv;
            }(), K1 = B1, j1 = /* @__PURE__ */ function() {
              function Hv(Mv, zv, Wv) {
                this.observer = Mv, this.config = Wv, this.remuxer = zv;
              }
              var Jv = Hv.prototype;
              return Jv.resetInitSegment = function(Mv, zv, Wv, Kv) {
                this._audioTrack = {
                  container: "audio/mpeg",
                  type: "audio",
                  id: -1,
                  sequenceNumber: 0,
                  isAAC: !1,
                  samples: [],
                  len: 0,
                  manifestCodec: zv,
                  duration: Kv,
                  inputTimeScale: 9e4
                };
              }, Jv.resetTimeStamp = function() {
              }, Hv.probe = function(Mv) {
                var zv, Wv, Kv = Ov.default.getID3Data(Mv, 0);
                if (Kv && Ov.default.getTimeStamp(Kv) !== void 0) {
                  for (zv = Kv.length, Wv = Math.min(Mv.length - 1, zv + 100); zv < Wv; zv++)
                    if (Gv.probe(Mv, zv))
                      return cv.logger.log("MPEG Audio sync word found !"), !0;
                }
                return !1;
              }, Jv.append = function(Mv, zv, Wv, Kv) {
                for (var c1 = Ov.default.getID3Data(Mv, 0) || [], $1 = Ov.default.getTimeStamp(c1), N1 = $1 !== void 0 ? 90 * $1 : zv * 9e4, e$ = c1.length, R1 = Mv.length, Zv = 0, C1 = 0, q1 = this._audioTrack, t$ = [{
                  pts: N1,
                  dts: N1,
                  data: c1
                }]; e$ < R1; )
                  if (Gv.isHeader(Mv, e$)) {
                    var _b = Gv.appendFrame(q1, Mv, e$, N1, Zv);
                    if (_b)
                      e$ += _b.length, C1 = _b.sample.pts, Zv++;
                    else
                      break;
                  } else
                    Ov.default.isHeader(Mv, e$) ? (c1 = Ov.default.getID3Data(Mv, e$), t$.push({
                      pts: C1,
                      dts: C1,
                      data: c1
                    }), e$ += c1.length) : e$++;
                this.remuxer.remux(q1, {
                  samples: []
                }, {
                  samples: t$,
                  inputTimeScale: 9e4
                }, {
                  samples: []
                }, zv, Wv, Kv);
              }, Jv.destroy = function() {
              }, Hv;
            }(), P1 = j1, D1 = /* @__PURE__ */ function() {
              function Hv() {
              }
              return Hv.getSilentFrame = function(Jv, Mv) {
                switch (Jv) {
                  case "mp4a.40.2":
                    if (Mv === 1)
                      return new Uint8Array([0, 200, 0, 128, 35, 128]);
                    if (Mv === 2)
                      return new Uint8Array([33, 0, 73, 144, 2, 25, 0, 35, 128]);
                    if (Mv === 3)
                      return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 142]);
                    if (Mv === 4)
                      return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 128, 44, 128, 8, 2, 56]);
                    if (Mv === 5)
                      return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 56]);
                    if (Mv === 6)
                      return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 0, 178, 0, 32, 8, 224]);
                    break;
                  default:
                    if (Mv === 1)
                      return new Uint8Array([1, 64, 34, 128, 163, 78, 230, 128, 186, 8, 0, 0, 0, 28, 6, 241, 193, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
                    if (Mv === 2)
                      return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
                    if (Mv === 3)
                      return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
                    break;
                }
                return null;
              }, Hv;
            }(), I1 = D1, F1 = Math.pow(2, 32) - 1, M1 = /* @__PURE__ */ function() {
              function Hv() {
              }
              return Hv.init = function() {
                Hv.types = {
                  avc1: [],
                  // codingname
                  avcC: [],
                  btrt: [],
                  dinf: [],
                  dref: [],
                  esds: [],
                  ftyp: [],
                  hdlr: [],
                  mdat: [],
                  mdhd: [],
                  mdia: [],
                  mfhd: [],
                  minf: [],
                  moof: [],
                  moov: [],
                  mp4a: [],
                  ".mp3": [],
                  mvex: [],
                  mvhd: [],
                  pasp: [],
                  sdtp: [],
                  stbl: [],
                  stco: [],
                  stsc: [],
                  stsd: [],
                  stsz: [],
                  stts: [],
                  tfdt: [],
                  tfhd: [],
                  traf: [],
                  trak: [],
                  trun: [],
                  trex: [],
                  tkhd: [],
                  vmhd: [],
                  smhd: []
                };
                var Jv;
                for (Jv in Hv.types)
                  Hv.types.hasOwnProperty(Jv) && (Hv.types[Jv] = [Jv.charCodeAt(0), Jv.charCodeAt(1), Jv.charCodeAt(2), Jv.charCodeAt(3)]);
                var Mv = new Uint8Array([
                  0,
                  // version 0
                  0,
                  0,
                  0,
                  // flags
                  0,
                  0,
                  0,
                  0,
                  // pre_defined
                  118,
                  105,
                  100,
                  101,
                  // handler_type: 'vide'
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  86,
                  105,
                  100,
                  101,
                  111,
                  72,
                  97,
                  110,
                  100,
                  108,
                  101,
                  114,
                  0
                  // name: 'VideoHandler'
                ]), zv = new Uint8Array([
                  0,
                  // version 0
                  0,
                  0,
                  0,
                  // flags
                  0,
                  0,
                  0,
                  0,
                  // pre_defined
                  115,
                  111,
                  117,
                  110,
                  // handler_type: 'soun'
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  83,
                  111,
                  117,
                  110,
                  100,
                  72,
                  97,
                  110,
                  100,
                  108,
                  101,
                  114,
                  0
                  // name: 'SoundHandler'
                ]);
                Hv.HDLR_TYPES = {
                  video: Mv,
                  audio: zv
                };
                var Wv = new Uint8Array([
                  0,
                  // version 0
                  0,
                  0,
                  0,
                  // flags
                  0,
                  0,
                  0,
                  1,
                  // entry_count
                  0,
                  0,
                  0,
                  12,
                  // entry_size
                  117,
                  114,
                  108,
                  32,
                  // 'url' type
                  0,
                  // version 0
                  0,
                  0,
                  1
                  // entry_flags
                ]), Kv = new Uint8Array([
                  0,
                  // version
                  0,
                  0,
                  0,
                  // flags
                  0,
                  0,
                  0,
                  0
                  // entry_count
                ]);
                Hv.STTS = Hv.STSC = Hv.STCO = Kv, Hv.STSZ = new Uint8Array([
                  0,
                  // version
                  0,
                  0,
                  0,
                  // flags
                  0,
                  0,
                  0,
                  0,
                  // sample_size
                  0,
                  0,
                  0,
                  0
                  // sample_count
                ]), Hv.VMHD = new Uint8Array([
                  0,
                  // version
                  0,
                  0,
                  1,
                  // flags
                  0,
                  0,
                  // graphicsmode
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                  // opcolor
                ]), Hv.SMHD = new Uint8Array([
                  0,
                  // version
                  0,
                  0,
                  0,
                  // flags
                  0,
                  0,
                  // balance
                  0,
                  0
                  // reserved
                ]), Hv.STSD = new Uint8Array([
                  0,
                  // version 0
                  0,
                  0,
                  0,
                  // flags
                  0,
                  0,
                  0,
                  1
                ]);
                var c1 = new Uint8Array([105, 115, 111, 109]), $1 = new Uint8Array([97, 118, 99, 49]), N1 = new Uint8Array([0, 0, 0, 1]);
                Hv.FTYP = Hv.box(Hv.types.ftyp, c1, N1, c1, $1), Hv.DINF = Hv.box(Hv.types.dinf, Hv.box(Hv.types.dref, Wv));
              }, Hv.box = function(Jv) {
                for (var Mv = Array.prototype.slice.call(arguments, 1), zv = 8, Wv = Mv.length, Kv = Wv, c1; Wv--; )
                  zv += Mv[Wv].byteLength;
                for (c1 = new Uint8Array(zv), c1[0] = zv >> 24 & 255, c1[1] = zv >> 16 & 255, c1[2] = zv >> 8 & 255, c1[3] = zv & 255, c1.set(Jv, 4), Wv = 0, zv = 8; Wv < Kv; Wv++)
                  c1.set(Mv[Wv], zv), zv += Mv[Wv].byteLength;
                return c1;
              }, Hv.hdlr = function(Jv) {
                return Hv.box(Hv.types.hdlr, Hv.HDLR_TYPES[Jv]);
              }, Hv.mdat = function(Jv) {
                return Hv.box(Hv.types.mdat, Jv);
              }, Hv.mdhd = function(Jv, Mv) {
                Mv *= Jv;
                var zv = Math.floor(Mv / (F1 + 1)), Wv = Math.floor(Mv % (F1 + 1));
                return Hv.box(Hv.types.mdhd, new Uint8Array([
                  1,
                  // version 1
                  0,
                  0,
                  0,
                  // flags
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  2,
                  // creation_time
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  3,
                  // modification_time
                  Jv >> 24 & 255,
                  Jv >> 16 & 255,
                  Jv >> 8 & 255,
                  Jv & 255,
                  // timescale
                  zv >> 24,
                  zv >> 16 & 255,
                  zv >> 8 & 255,
                  zv & 255,
                  Wv >> 24,
                  Wv >> 16 & 255,
                  Wv >> 8 & 255,
                  Wv & 255,
                  85,
                  196,
                  // 'und' language (undetermined)
                  0,
                  0
                ]));
              }, Hv.mdia = function(Jv) {
                return Hv.box(Hv.types.mdia, Hv.mdhd(Jv.timescale, Jv.duration), Hv.hdlr(Jv.type), Hv.minf(Jv));
              }, Hv.mfhd = function(Jv) {
                return Hv.box(Hv.types.mfhd, new Uint8Array([
                  0,
                  0,
                  0,
                  0,
                  // flags
                  Jv >> 24,
                  Jv >> 16 & 255,
                  Jv >> 8 & 255,
                  Jv & 255
                  // sequence_number
                ]));
              }, Hv.minf = function(Jv) {
                return Jv.type === "audio" ? Hv.box(Hv.types.minf, Hv.box(Hv.types.smhd, Hv.SMHD), Hv.DINF, Hv.stbl(Jv)) : Hv.box(Hv.types.minf, Hv.box(Hv.types.vmhd, Hv.VMHD), Hv.DINF, Hv.stbl(Jv));
              }, Hv.moof = function(Jv, Mv, zv) {
                return Hv.box(Hv.types.moof, Hv.mfhd(Jv), Hv.traf(zv, Mv));
              }, Hv.moov = function(Jv) {
                for (var Mv = Jv.length, zv = []; Mv--; )
                  zv[Mv] = Hv.trak(Jv[Mv]);
                return Hv.box.apply(null, [Hv.types.moov, Hv.mvhd(Jv[0].timescale, Jv[0].duration)].concat(zv).concat(Hv.mvex(Jv)));
              }, Hv.mvex = function(Jv) {
                for (var Mv = Jv.length, zv = []; Mv--; )
                  zv[Mv] = Hv.trex(Jv[Mv]);
                return Hv.box.apply(null, [Hv.types.mvex].concat(zv));
              }, Hv.mvhd = function(Jv, Mv) {
                Mv *= Jv;
                var zv = Math.floor(Mv / (F1 + 1)), Wv = Math.floor(Mv % (F1 + 1)), Kv = new Uint8Array([
                  1,
                  // version 1
                  0,
                  0,
                  0,
                  // flags
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  2,
                  // creation_time
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  3,
                  // modification_time
                  Jv >> 24 & 255,
                  Jv >> 16 & 255,
                  Jv >> 8 & 255,
                  Jv & 255,
                  // timescale
                  zv >> 24,
                  zv >> 16 & 255,
                  zv >> 8 & 255,
                  zv & 255,
                  Wv >> 24,
                  Wv >> 16 & 255,
                  Wv >> 8 & 255,
                  Wv & 255,
                  0,
                  1,
                  0,
                  0,
                  // 1.0 rate
                  1,
                  0,
                  // 1.0 volume
                  0,
                  0,
                  // reserved
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  64,
                  0,
                  0,
                  0,
                  // transformation: unity matrix
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  // pre_defined
                  255,
                  255,
                  255,
                  255
                  // next_track_ID
                ]);
                return Hv.box(Hv.types.mvhd, Kv);
              }, Hv.sdtp = function(Jv) {
                var Mv = Jv.samples || [], zv = new Uint8Array(4 + Mv.length), Wv, Kv;
                for (Kv = 0; Kv < Mv.length; Kv++)
                  Wv = Mv[Kv].flags, zv[Kv + 4] = Wv.dependsOn << 4 | Wv.isDependedOn << 2 | Wv.hasRedundancy;
                return Hv.box(Hv.types.sdtp, zv);
              }, Hv.stbl = function(Jv) {
                return Hv.box(Hv.types.stbl, Hv.stsd(Jv), Hv.box(Hv.types.stts, Hv.STTS), Hv.box(Hv.types.stsc, Hv.STSC), Hv.box(Hv.types.stsz, Hv.STSZ), Hv.box(Hv.types.stco, Hv.STCO));
              }, Hv.avc1 = function(Jv) {
                var Mv = [], zv = [], Wv, Kv, c1;
                for (Wv = 0; Wv < Jv.sps.length; Wv++)
                  Kv = Jv.sps[Wv], c1 = Kv.byteLength, Mv.push(c1 >>> 8 & 255), Mv.push(c1 & 255), Mv = Mv.concat(Array.prototype.slice.call(Kv));
                for (Wv = 0; Wv < Jv.pps.length; Wv++)
                  Kv = Jv.pps[Wv], c1 = Kv.byteLength, zv.push(c1 >>> 8 & 255), zv.push(c1 & 255), zv = zv.concat(Array.prototype.slice.call(Kv));
                var $1 = Hv.box(Hv.types.avcC, new Uint8Array([
                  1,
                  // version
                  Mv[3],
                  // profile
                  Mv[4],
                  // profile compat
                  Mv[5],
                  // level
                  255,
                  // lengthSizeMinusOne, hard-coded to 4 bytes
                  224 | Jv.sps.length
                  // 3bit reserved (111) + numOfSequenceParameterSets
                ].concat(Mv).concat([
                  Jv.pps.length
                  // numOfPictureParameterSets
                ]).concat(zv))), N1 = Jv.width, e$ = Jv.height, R1 = Jv.pixelRatio[0], Zv = Jv.pixelRatio[1];
                return Hv.box(
                  Hv.types.avc1,
                  new Uint8Array([
                    0,
                    0,
                    0,
                    // reserved
                    0,
                    0,
                    0,
                    // reserved
                    0,
                    1,
                    // data_reference_index
                    0,
                    0,
                    // pre_defined
                    0,
                    0,
                    // reserved
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    // pre_defined
                    N1 >> 8 & 255,
                    N1 & 255,
                    // width
                    e$ >> 8 & 255,
                    e$ & 255,
                    // height
                    0,
                    72,
                    0,
                    0,
                    // horizresolution
                    0,
                    72,
                    0,
                    0,
                    // vertresolution
                    0,
                    0,
                    0,
                    0,
                    // reserved
                    0,
                    1,
                    // frame_count
                    18,
                    100,
                    97,
                    105,
                    108,
                    // dailymotion/hls.js
                    121,
                    109,
                    111,
                    116,
                    105,
                    111,
                    110,
                    47,
                    104,
                    108,
                    115,
                    46,
                    106,
                    115,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    // compressorname
                    0,
                    24,
                    // depth = 24
                    17,
                    17
                  ]),
                  // pre_defined = -1
                  $1,
                  Hv.box(Hv.types.btrt, new Uint8Array([
                    0,
                    28,
                    156,
                    128,
                    // bufferSizeDB
                    0,
                    45,
                    198,
                    192,
                    // maxBitrate
                    0,
                    45,
                    198,
                    192
                  ])),
                  // avgBitrate
                  Hv.box(Hv.types.pasp, new Uint8Array([
                    R1 >> 24,
                    // hSpacing
                    R1 >> 16 & 255,
                    R1 >> 8 & 255,
                    R1 & 255,
                    Zv >> 24,
                    // vSpacing
                    Zv >> 16 & 255,
                    Zv >> 8 & 255,
                    Zv & 255
                  ]))
                );
              }, Hv.esds = function(Jv) {
                var Mv = Jv.config.length;
                return new Uint8Array([
                  0,
                  // version 0
                  0,
                  0,
                  0,
                  // flags
                  3,
                  // descriptor_type
                  23 + Mv,
                  // length
                  0,
                  1,
                  // es_id
                  0,
                  // stream_priority
                  4,
                  // descriptor_type
                  15 + Mv,
                  // length
                  64,
                  // codec : mpeg4_audio
                  21,
                  // stream_type
                  0,
                  0,
                  0,
                  // buffer_size
                  0,
                  0,
                  0,
                  0,
                  // maxBitrate
                  0,
                  0,
                  0,
                  0,
                  // avgBitrate
                  5
                  // descriptor_type
                ].concat([Mv]).concat(Jv.config).concat([6, 1, 2]));
              }, Hv.mp4a = function(Jv) {
                var Mv = Jv.samplerate;
                return Hv.box(Hv.types.mp4a, new Uint8Array([
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  1,
                  // data_reference_index
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  Jv.channelCount,
                  // channelcount
                  0,
                  16,
                  // sampleSize:16bits
                  0,
                  0,
                  0,
                  0,
                  // reserved2
                  Mv >> 8 & 255,
                  Mv & 255,
                  //
                  0,
                  0
                ]), Hv.box(Hv.types.esds, Hv.esds(Jv)));
              }, Hv.mp3 = function(Jv) {
                var Mv = Jv.samplerate;
                return Hv.box(Hv.types[".mp3"], new Uint8Array([
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  1,
                  // data_reference_index
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  Jv.channelCount,
                  // channelcount
                  0,
                  16,
                  // sampleSize:16bits
                  0,
                  0,
                  0,
                  0,
                  // reserved2
                  Mv >> 8 & 255,
                  Mv & 255,
                  //
                  0,
                  0
                ]));
              }, Hv.stsd = function(Jv) {
                return Jv.type === "audio" ? !Jv.isAAC && Jv.codec === "mp3" ? Hv.box(Hv.types.stsd, Hv.STSD, Hv.mp3(Jv)) : Hv.box(Hv.types.stsd, Hv.STSD, Hv.mp4a(Jv)) : Hv.box(Hv.types.stsd, Hv.STSD, Hv.avc1(Jv));
              }, Hv.tkhd = function(Jv) {
                var Mv = Jv.id, zv = Jv.duration * Jv.timescale, Wv = Jv.width, Kv = Jv.height, c1 = Math.floor(zv / (F1 + 1)), $1 = Math.floor(zv % (F1 + 1));
                return Hv.box(Hv.types.tkhd, new Uint8Array([
                  1,
                  // version 1
                  0,
                  0,
                  7,
                  // flags
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  2,
                  // creation_time
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  3,
                  // modification_time
                  Mv >> 24 & 255,
                  Mv >> 16 & 255,
                  Mv >> 8 & 255,
                  Mv & 255,
                  // track_ID
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  c1 >> 24,
                  c1 >> 16 & 255,
                  c1 >> 8 & 255,
                  c1 & 255,
                  $1 >> 24,
                  $1 >> 16 & 255,
                  $1 >> 8 & 255,
                  $1 & 255,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  // reserved
                  0,
                  0,
                  // layer
                  0,
                  0,
                  // alternate_group
                  0,
                  0,
                  // non-audio track volume
                  0,
                  0,
                  // reserved
                  0,
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  64,
                  0,
                  0,
                  0,
                  // transformation: unity matrix
                  Wv >> 8 & 255,
                  Wv & 255,
                  0,
                  0,
                  // width
                  Kv >> 8 & 255,
                  Kv & 255,
                  0,
                  0
                  // height
                ]));
              }, Hv.traf = function(Jv, Mv) {
                var zv = Hv.sdtp(Jv), Wv = Jv.id, Kv = Math.floor(Mv / (F1 + 1)), c1 = Math.floor(Mv % (F1 + 1));
                return Hv.box(
                  Hv.types.traf,
                  Hv.box(Hv.types.tfhd, new Uint8Array([
                    0,
                    // version 0
                    0,
                    0,
                    0,
                    // flags
                    Wv >> 24,
                    Wv >> 16 & 255,
                    Wv >> 8 & 255,
                    Wv & 255
                    // track_ID
                  ])),
                  Hv.box(Hv.types.tfdt, new Uint8Array([
                    1,
                    // version 1
                    0,
                    0,
                    0,
                    // flags
                    Kv >> 24,
                    Kv >> 16 & 255,
                    Kv >> 8 & 255,
                    Kv & 255,
                    c1 >> 24,
                    c1 >> 16 & 255,
                    c1 >> 8 & 255,
                    c1 & 255
                  ])),
                  Hv.trun(Jv, zv.length + 16 + // tfhd
                  20 + // tfdt
                  8 + // traf header
                  16 + // mfhd
                  8 + // moof header
                  8),
                  // mdat header
                  zv
                );
              }, Hv.trak = function(Jv) {
                return Jv.duration = Jv.duration || 4294967295, Hv.box(Hv.types.trak, Hv.tkhd(Jv), Hv.mdia(Jv));
              }, Hv.trex = function(Jv) {
                var Mv = Jv.id;
                return Hv.box(Hv.types.trex, new Uint8Array([
                  0,
                  // version 0
                  0,
                  0,
                  0,
                  // flags
                  Mv >> 24,
                  Mv >> 16 & 255,
                  Mv >> 8 & 255,
                  Mv & 255,
                  // track_ID
                  0,
                  0,
                  0,
                  1,
                  // default_sample_description_index
                  0,
                  0,
                  0,
                  0,
                  // default_sample_duration
                  0,
                  0,
                  0,
                  0,
                  // default_sample_size
                  0,
                  1,
                  0,
                  1
                  // default_sample_flags
                ]));
              }, Hv.trun = function(Jv, Mv) {
                var zv = Jv.samples || [], Wv = zv.length, Kv = 12 + 16 * Wv, c1 = new Uint8Array(Kv), $1, N1, e$, R1, Zv, C1;
                for (Mv += 8 + Kv, c1.set([
                  0,
                  // version 0
                  0,
                  15,
                  1,
                  // flags
                  Wv >>> 24 & 255,
                  Wv >>> 16 & 255,
                  Wv >>> 8 & 255,
                  Wv & 255,
                  // sample_count
                  Mv >>> 24 & 255,
                  Mv >>> 16 & 255,
                  Mv >>> 8 & 255,
                  Mv & 255
                  // data_offset
                ], 0), $1 = 0; $1 < Wv; $1++)
                  N1 = zv[$1], e$ = N1.duration, R1 = N1.size, Zv = N1.flags, C1 = N1.cts, c1.set([
                    e$ >>> 24 & 255,
                    e$ >>> 16 & 255,
                    e$ >>> 8 & 255,
                    e$ & 255,
                    // sample_duration
                    R1 >>> 24 & 255,
                    R1 >>> 16 & 255,
                    R1 >>> 8 & 255,
                    R1 & 255,
                    // sample_size
                    Zv.isLeading << 2 | Zv.dependsOn,
                    Zv.isDependedOn << 6 | Zv.hasRedundancy << 4 | Zv.paddingValue << 1 | Zv.isNonSync,
                    Zv.degradPrio & 61440,
                    Zv.degradPrio & 15,
                    // sample_flags
                    C1 >>> 24 & 255,
                    C1 >>> 16 & 255,
                    C1 >>> 8 & 255,
                    C1 & 255
                    // sample_composition_time_offset
                  ], 12 + 16 * $1);
                return Hv.box(Hv.types.trun, c1);
              }, Hv.initSegment = function(Jv) {
                Hv.types || Hv.init();
                var Mv = Hv.moov(Jv), zv;
                return zv = new Uint8Array(Hv.FTYP.byteLength + Mv.byteLength), zv.set(Hv.FTYP), zv.set(Mv, Hv.FTYP.byteLength), zv;
              }, Hv;
            }(), U1 = M1, H1 = 9e4;
            function k1(Hv, Jv, Mv, zv) {
              Mv === void 0 && (Mv = 1), zv === void 0 && (zv = !1);
              var Wv = Hv * Jv * Mv;
              return zv ? Math.round(Wv) : Wv;
            }
            function Q1(Hv, Jv) {
              return Jv === void 0 && (Jv = !1), k1(Hv, 1e3, 1 / H1, Jv);
            }
            function Y1(Hv, Jv) {
              return Jv === void 0 && (Jv = 1), k1(Hv, H1, 1 / Jv);
            }
            var r$ = Y1(10), a$ = Y1(0.2), S$ = null, d$ = /* @__PURE__ */ function() {
              function Hv(Mv, zv, Wv, Kv) {
                if (this.observer = Mv, this.config = zv, this.typeSupported = Wv, this.ISGenerated = !1, S$ === null) {
                  var c1 = navigator.userAgent.match(/Chrome\/(\d+)/i);
                  S$ = c1 ? parseInt(c1[1]) : 0;
                }
              }
              var Jv = Hv.prototype;
              return Jv.destroy = function() {
              }, Jv.resetTimeStamp = function(Mv) {
                this._initPTS = this._initDTS = Mv;
              }, Jv.resetInitSegment = function() {
                this.ISGenerated = !1;
              }, Jv.getVideoStartPts = function(Mv) {
                var zv = !1, Wv = Mv.reduce(function(Kv, c1) {
                  var $1 = c1.pts - Kv;
                  return $1 < -4294967296 ? (zv = !0, x$(Kv, c1.pts)) : $1 > 0 ? Kv : c1.pts;
                }, Mv[0].pts);
                return zv && cv.logger.debug("PTS rollover detected"), Wv;
              }, Jv.remux = function(Mv, zv, Wv, Kv, c1, $1, N1) {
                if (this.ISGenerated || this.generateIS(Mv, zv, c1), this.ISGenerated) {
                  var e$ = Mv.samples.length, R1 = zv.samples.length, Zv = c1, C1 = c1;
                  if (e$ && R1) {
                    var q1 = this.getVideoStartPts(zv.samples), t$ = x$(Mv.samples[0].pts, q1) - q1, _b = t$ / zv.inputTimeScale;
                    Zv += Math.max(0, _b), C1 += Math.max(0, -_b);
                  }
                  if (e$) {
                    Mv.timescale || (cv.logger.warn("regenerate InitSegment as audio detected"), this.generateIS(Mv, zv, c1));
                    var c$ = this.remuxAudio(Mv, Zv, $1, N1);
                    if (R1) {
                      var l$;
                      c$ && (l$ = c$.endPTS - c$.startPTS), zv.timescale || (cv.logger.warn("regenerate InitSegment as video detected"), this.generateIS(Mv, zv, c1)), this.remuxVideo(zv, C1, $1, l$);
                    }
                  } else if (R1) {
                    var p$ = this.remuxVideo(zv, C1, $1, 0, N1);
                    p$ && Mv.codec && this.remuxEmptyAudio(Mv, Zv, $1, p$);
                  }
                }
                Wv.samples.length && this.remuxID3(Wv, c1), Kv.samples.length && this.remuxText(Kv, c1), this.observer.trigger(av.default.FRAG_PARSED);
              }, Jv.generateIS = function(Mv, zv, Wv) {
                var Kv = this.observer, c1 = Mv.samples, $1 = zv.samples, N1 = this.typeSupported, e$ = "audio/mp4", R1 = {}, Zv = {
                  tracks: R1
                }, C1 = this._initPTS === void 0, q1, t$;
                if (C1 && (q1 = t$ = 1 / 0), Mv.config && c1.length && (Mv.timescale = Mv.samplerate, cv.logger.log("audio sampling rate : " + Mv.samplerate), Mv.isAAC || (N1.mpeg ? (e$ = "audio/mpeg", Mv.codec = "") : N1.mp3 && (Mv.codec = "mp3")), R1.audio = {
                  container: e$,
                  codec: Mv.codec,
                  initSegment: !Mv.isAAC && N1.mpeg ? new Uint8Array() : U1.initSegment([Mv]),
                  metadata: {
                    channelCount: Mv.channelCount
                  }
                }, C1 && (q1 = t$ = c1[0].pts - Math.round(Mv.inputTimeScale * Wv))), zv.sps && zv.pps && $1.length) {
                  var _b = zv.inputTimeScale;
                  if (zv.timescale = _b, R1.video = {
                    container: "video/mp4",
                    codec: zv.codec,
                    initSegment: U1.initSegment([zv]),
                    metadata: {
                      width: zv.width,
                      height: zv.height
                    }
                  }, C1) {
                    var c$ = this.getVideoStartPts($1), l$ = Math.round(_b * Wv);
                    t$ = Math.min(t$, x$($1[0].dts, c$) - l$), q1 = Math.min(q1, c$ - l$), this.observer.trigger(av.default.INIT_PTS_FOUND, {
                      initPTS: q1
                    });
                  }
                } else
                  C1 && R1.audio && this.observer.trigger(av.default.INIT_PTS_FOUND, {
                    initPTS: q1
                  });
                Object.keys(R1).length ? (Kv.trigger(av.default.FRAG_PARSING_INIT_SEGMENT, Zv), this.ISGenerated = !0, C1 && (this._initPTS = q1, this._initDTS = t$)) : Kv.trigger(av.default.ERROR, {
                  type: sv.ErrorTypes.MEDIA_ERROR,
                  details: sv.ErrorDetails.FRAG_PARSING_ERROR,
                  fatal: !1,
                  reason: "no audio/video samples found"
                });
              }, Jv.remuxVideo = function(Mv, zv, Wv, Kv) {
                var c1 = Mv.timescale, $1 = Mv.samples, N1 = [], e$ = $1.length, R1 = this._initPTS, Zv = 8, C1, q1, t$, _b, c$, l$ = Number.POSITIVE_INFINITY, p$ = Number.NEGATIVE_INFINITY, h$ = 0, y$ = !1, V$ = this.nextAvcDts;
                if (e$ !== 0) {
                  if (!Wv) {
                    var D$ = zv * c1, A$ = $1[0].pts - x$($1[0].dts, $1[0].pts);
                    V$ = D$ - A$;
                  }
                  for (var L$ = 0; L$ < e$; L$++) {
                    var U$ = $1[L$];
                    U$.pts = x$(U$.pts - R1, V$), U$.dts = x$(U$.dts - R1, V$), U$.dts > U$.pts && (h$ = Math.max(Math.min(h$, U$.pts - U$.dts), -1 * a$)), U$.dts < $1[L$ > 0 ? L$ - 1 : L$].dts && (y$ = !0);
                  }
                  y$ && $1.sort(function(z$, zw) {
                    var G$ = z$.dts - zw.dts, i3 = z$.pts - zw.pts;
                    return G$ || i3 || z$.id - zw.id;
                  }), _b = $1[0].dts, c$ = $1[e$ - 1].dts;
                  var jw = Math.round((c$ - _b) / (e$ - 1));
                  if (h$ < 0) {
                    if (h$ < jw * -2) {
                      cv.logger.warn("PTS < DTS detected in video samples, offsetting DTS from PTS by " + Q1(-jw, !0) + " ms");
                      for (var Q$ = h$, W$ = 0; W$ < e$; W$++)
                        $1[W$].dts = Q$ = Math.max(Q$, $1[W$].pts - jw), $1[W$].pts = Math.max(Q$, $1[W$].pts);
                    } else {
                      cv.logger.warn("PTS < DTS detected in video samples, shifting DTS by " + Q1(h$, !0) + " ms to overcome this issue");
                      for (var eE = 0; eE < e$; eE++)
                        $1[eE].dts = $1[eE].dts + h$;
                    }
                    _b = $1[0].dts, c$ = $1[e$ - 1].dts;
                  }
                  if (Wv) {
                    var q$ = _b - V$, Hw = q$ > jw, J$ = q$ < -1;
                    if (Hw || J$) {
                      Hw ? cv.logger.warn("AVC: " + Q1(q$, !0) + " ms (" + q$ + "dts) hole between fragments detected, filling it") : cv.logger.warn("AVC: " + Q1(-q$, !0) + " ms (" + q$ + "dts) overlapping between fragments detected"), _b = V$;
                      var Y$ = $1[0].pts - q$;
                      $1[0].dts = _b, $1[0].pts = Y$, cv.logger.log("Video: First PTS/DTS adjusted: " + Q1(Y$, !0) + "/" + Q1(_b, !0) + ", delta: " + Q1(q$, !0) + " ms");
                    }
                  }
                  S$ && S$ < 75 && (_b = Math.max(0, _b));
                  for (var ix = 0, V1 = 0, z1 = 0; z1 < e$; z1++) {
                    for (var J1 = $1[z1], n$ = J1.units, u$ = n$.length, v$ = 0, w$ = 0; w$ < u$; w$++)
                      v$ += n$[w$].data.length;
                    V1 += v$, ix += u$, J1.length = v$, J1.dts = Math.max(J1.dts, _b), J1.pts = Math.max(J1.pts, J1.dts, 0), l$ = Math.min(J1.pts, l$), p$ = Math.max(J1.pts, p$);
                  }
                  c$ = $1[e$ - 1].dts;
                  var s$ = V1 + 4 * ix + 8;
                  try {
                    q1 = new Uint8Array(s$);
                  } catch {
                    this.observer.trigger(av.default.ERROR, {
                      type: sv.ErrorTypes.MUX_ERROR,
                      details: sv.ErrorDetails.REMUX_ALLOC_ERROR,
                      fatal: !1,
                      bytes: s$,
                      reason: "fail allocating video mdat " + s$
                    });
                    return;
                  }
                  var $$ = new DataView(q1.buffer);
                  $$.setUint32(0, s$), q1.set(U1.types.mdat, 4);
                  for (var f$ = 0; f$ < e$; f$++) {
                    for (var G1 = $1[f$], I$ = G1.units, F$ = 0, j$ = void 0, P$ = 0, Z$ = I$.length; P$ < Z$; P$++) {
                      var K$ = I$[P$], u3 = K$.data, sO = K$.data.byteLength;
                      $$.setUint32(Zv, sO), Zv += 4, q1.set(u3, Zv), Zv += sO, F$ += 4 + sO;
                    }
                    if (f$ < e$ - 1)
                      C1 = $1[f$ + 1].dts - G1.dts;
                    else {
                      var a3 = this.config, e3 = G1.dts - $1[f$ > 0 ? f$ - 1 : f$].dts;
                      if (a3.stretchShortVideoTrack) {
                        var d3 = a3.maxBufferHole, n3 = Math.floor(d3 * c1), o3 = (Kv ? l$ + Kv * c1 : this.nextAudioPts) - G1.pts;
                        o3 > n3 ? (C1 = o3 - e3, C1 < 0 && (C1 = e3), cv.logger.log("It is approximately " + Q1(o3, !1) + " ms to the next segment; using duration " + Q1(C1, !1) + " ms for the last video frame.")) : C1 = e3;
                      } else
                        C1 = e3;
                    }
                    j$ = Math.round(G1.pts - G1.dts), N1.push({
                      size: F$,
                      // constant duration
                      duration: C1,
                      cts: j$,
                      flags: {
                        isLeading: 0,
                        isDependedOn: 0,
                        hasRedundancy: 0,
                        degradPrio: 0,
                        dependsOn: G1.key ? 2 : 1,
                        isNonSync: G1.key ? 0 : 1
                      }
                    });
                  }
                  this.nextAvcDts = c$ + C1;
                  var f3 = Mv.dropped;
                  if (Mv.nbNalu = 0, Mv.dropped = 0, N1.length && navigator.userAgent.toLowerCase().indexOf("chrome") > -1) {
                    var r3 = N1[0].flags;
                    r3.dependsOn = 2, r3.isNonSync = 0;
                  }
                  Mv.samples = N1, t$ = U1.moof(Mv.sequenceNumber++, _b, Mv), Mv.samples = [];
                  var R$ = {
                    data1: t$,
                    data2: q1,
                    startPTS: l$ / c1,
                    endPTS: (p$ + C1) / c1,
                    startDTS: _b / c1,
                    endDTS: this.nextAvcDts / c1,
                    type: "video",
                    hasAudio: !1,
                    hasVideo: !0,
                    nb: N1.length,
                    dropped: f3
                  };
                  return this.observer.trigger(av.default.FRAG_PARSING_DATA, R$), R$;
                }
              }, Jv.remuxAudio = function(Mv, zv, Wv, Kv) {
                var c1 = Mv.inputTimeScale, $1 = Mv.timescale, N1 = c1 / $1, e$ = Mv.isAAC ? 1024 : 1152, R1 = e$ * N1, Zv = this._initPTS, C1 = !Mv.isAAC && this.typeSupported.mpeg, q1, t$, _b, c$, l$, p$, h$ = C1 ? 0 : 8, y$ = Mv.samples, V$ = [], D$ = this.nextAudioPts;
                if (Wv |= y$.length && D$ && (Kv && Math.abs(zv - D$ / c1) < 0.1 || Math.abs(y$[0].pts - D$ - Zv) < 20 * R1), y$.forEach(function(j$) {
                  j$.pts = j$.dts = x$(j$.pts - Zv, zv * c1);
                }), y$ = y$.filter(function(j$) {
                  return j$.pts >= 0;
                }), y$.length !== 0) {
                  if (Wv || (Kv ? D$ = Math.max(0, zv * c1) : D$ = y$[0].pts), Mv.isAAC)
                    for (var A$ = this.config.maxAudioFramesDrift, L$ = 0, U$ = D$; L$ < y$.length; ) {
                      var jw = y$[L$], Q$ = jw.pts, W$ = Q$ - U$;
                      if (W$ <= -A$ * R1)
                        Wv || L$ > 0 ? (cv.logger.warn("Dropping 1 audio frame @ " + Q1(U$, !0) / 1e3 + "s due to " + Q1(W$, !0) + " ms overlap."), y$.splice(L$, 1)) : (cv.logger.warn("Audio frame @ " + Q1(Q$, !0) / 1e3 + "s overlaps nextAudioPts by " + Q1(W$, !0) + " ms."), U$ = Q$ + R1, L$++);
                      else if (W$ >= A$ * R1 && W$ < r$ && U$) {
                        var eE = Math.round(W$ / R1);
                        cv.logger.warn("Injecting " + eE + " audio frames @ " + Q1(U$, !0) / 1e3 + "s due to " + Q1(W$, !0) + " ms gap.");
                        for (var q$ = 0; q$ < eE; q$++) {
                          var Hw = Math.max(U$, 0);
                          t$ = I1.getSilentFrame(Mv.manifestCodec || Mv.codec, Mv.channelCount), t$ || (cv.logger.log("Unable to get silent frame for given audio codec; duplicating last frame instead."), t$ = jw.unit.subarray()), y$.splice(L$, 0, {
                            unit: t$,
                            pts: Hw,
                            dts: Hw
                          }), U$ += R1, L$++;
                        }
                        jw.pts = jw.dts = U$, U$ += R1, L$++;
                      } else
                        jw.pts = jw.dts = U$, U$ += R1, L$++;
                    }
                  for (var J$ = y$.length, Y$ = 0; J$--; )
                    Y$ += y$[J$].unit.byteLength;
                  for (var ix = 0, V1 = y$.length; ix < V1; ix++) {
                    var z1 = y$[ix], J1 = z1.unit, n$ = z1.pts;
                    if (p$ !== void 0 && q1)
                      q1.duration = Math.round((n$ - p$) / N1);
                    else {
                      var u$ = n$ - D$, v$ = 0;
                      if (Wv && Mv.isAAC && u$) {
                        if (u$ > 0 && u$ < r$)
                          v$ = Math.round((n$ - D$) / R1), cv.logger.log(Q1(u$, !0) + " ms hole between AAC samples detected,filling it"), v$ > 0 && (t$ = I1.getSilentFrame(Mv.manifestCodec || Mv.codec, Mv.channelCount), t$ || (t$ = J1.subarray()), Y$ += v$ * t$.length);
                        else if (u$ < -12) {
                          cv.logger.log("drop overlapping AAC sample, expected/parsed/delta: " + Q1(D$, !0) + " ms / " + Q1(n$, !0) + " ms / " + Q1(-u$, !0) + " ms"), Y$ -= J1.byteLength;
                          continue;
                        }
                        n$ = D$;
                      }
                      if (l$ = n$, Y$ > 0) {
                        Y$ += h$;
                        try {
                          _b = new Uint8Array(Y$);
                        } catch {
                          this.observer.trigger(av.default.ERROR, {
                            type: sv.ErrorTypes.MUX_ERROR,
                            details: sv.ErrorDetails.REMUX_ALLOC_ERROR,
                            fatal: !1,
                            bytes: Y$,
                            reason: "fail allocating audio mdat " + Y$
                          });
                          return;
                        }
                        if (!C1) {
                          var w$ = new DataView(_b.buffer);
                          w$.setUint32(0, Y$), _b.set(U1.types.mdat, 4);
                        }
                      } else
                        return;
                      for (var s$ = 0; s$ < v$; s$++)
                        t$ = I1.getSilentFrame(Mv.manifestCodec || Mv.codec, Mv.channelCount), t$ || (cv.logger.log("Unable to get silent frame for given audio codec; duplicating this frame instead."), t$ = J1.subarray()), _b.set(t$, h$), h$ += t$.byteLength, q1 = {
                          size: t$.byteLength,
                          cts: 0,
                          duration: 1024,
                          flags: {
                            isLeading: 0,
                            isDependedOn: 0,
                            hasRedundancy: 0,
                            degradPrio: 0,
                            dependsOn: 1
                          }
                        }, V$.push(q1);
                    }
                    _b.set(J1, h$);
                    var $$ = J1.byteLength;
                    h$ += $$, q1 = {
                      size: $$,
                      cts: 0,
                      duration: 0,
                      flags: {
                        isLeading: 0,
                        isDependedOn: 0,
                        hasRedundancy: 0,
                        degradPrio: 0,
                        dependsOn: 1
                      }
                    }, V$.push(q1), p$ = n$;
                  }
                  var f$ = 0;
                  if (J$ = V$.length, J$ >= 2 && (f$ = V$[J$ - 2].duration, q1.duration = f$), J$) {
                    this.nextAudioPts = D$ = p$ + N1 * f$, Mv.samples = V$, C1 ? c$ = new Uint8Array() : c$ = U1.moof(Mv.sequenceNumber++, l$ / N1, Mv), Mv.samples = [];
                    var G1 = l$ / c1, I$ = D$ / c1, F$ = {
                      data1: c$,
                      data2: _b,
                      startPTS: G1,
                      endPTS: I$,
                      startDTS: G1,
                      endDTS: I$,
                      type: "audio",
                      hasAudio: !0,
                      hasVideo: !1,
                      nb: J$
                    };
                    return this.observer.trigger(av.default.FRAG_PARSING_DATA, F$), F$;
                  }
                  return null;
                }
              }, Jv.remuxEmptyAudio = function(Mv, zv, Wv, Kv) {
                var c1 = Mv.inputTimeScale, $1 = Mv.samplerate ? Mv.samplerate : c1, N1 = c1 / $1, e$ = this.nextAudioPts, R1 = (e$ !== void 0 ? e$ : Kv.startDTS * c1) + this._initDTS, Zv = Kv.endDTS * c1 + this._initDTS, C1 = 1024, q1 = N1 * C1, t$ = Math.ceil((Zv - R1) / q1), _b = I1.getSilentFrame(Mv.manifestCodec || Mv.codec, Mv.channelCount);
                if (cv.logger.warn("remux empty Audio"), !_b) {
                  cv.logger.trace("Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!");
                  return;
                }
                for (var c$ = [], l$ = 0; l$ < t$; l$++) {
                  var p$ = R1 + l$ * q1;
                  c$.push({
                    unit: _b,
                    pts: p$,
                    dts: p$
                  });
                }
                Mv.samples = c$, this.remuxAudio(Mv, zv, Wv);
              }, Jv.remuxID3 = function(Mv, zv) {
                var Wv = Mv.samples.length;
                if (Wv) {
                  for (var Kv = Mv.inputTimeScale, c1 = this._initPTS, $1 = this._initDTS, N1 = 0; N1 < Wv; N1++) {
                    var e$ = Mv.samples[N1];
                    e$.pts = x$(e$.pts - c1, zv * Kv) / Kv, e$.dts = x$(e$.dts - $1, zv * Kv) / Kv;
                  }
                  this.observer.trigger(av.default.FRAG_PARSING_METADATA, {
                    samples: Mv.samples
                  }), Mv.samples = [];
                }
              }, Jv.remuxText = function(Mv, zv) {
                var Wv = Mv.samples.length, Kv = Mv.inputTimeScale, c1 = this._initPTS;
                if (Wv) {
                  for (var $1 = 0; $1 < Wv; $1++) {
                    var N1 = Mv.samples[$1];
                    N1.pts = x$(N1.pts - c1, zv * Kv) / Kv;
                  }
                  Mv.samples.sort(function(e$, R1) {
                    return e$.pts - R1.pts;
                  }), this.observer.trigger(av.default.FRAG_PARSING_USERDATA, {
                    samples: Mv.samples
                  });
                }
                Mv.samples = [];
              }, Hv;
            }();
            function x$(Hv, Jv) {
              var Mv;
              if (Jv === void 0)
                return Hv;
              for (Jv < Hv ? Mv = -8589934592 : Mv = 8589934592; Math.abs(Hv - Jv) > 4294967296; )
                Hv += Mv;
              return Hv;
            }
            var g$ = d$, _$ = /* @__PURE__ */ function() {
              function Hv(Mv) {
                this.observer = Mv;
              }
              var Jv = Hv.prototype;
              return Jv.destroy = function() {
              }, Jv.resetTimeStamp = function() {
              }, Jv.resetInitSegment = function() {
              }, Jv.remux = function(Mv, zv, Wv, Kv, c1, $1, N1, e$) {
                var R1 = this.observer, Zv = "";
                Mv && (Zv += "audio"), zv && (Zv += "video"), R1.trigger(av.default.FRAG_PARSING_DATA, {
                  data1: e$,
                  startPTS: c1,
                  startDTS: c1,
                  type: Zv,
                  hasAudio: !!Mv,
                  hasVideo: !!zv,
                  nb: 1,
                  dropped: 0
                }), R1.trigger(av.default.FRAG_PARSED);
              }, Hv;
            }(), O$ = _$, E$ = Object(dv.getSelfScope)(), O1;
            try {
              O1 = E$.performance.now.bind(E$.performance);
            } catch {
              cv.logger.debug("Unable to use Performance API on this environment"), O1 = E$.Date.now;
            }
            var Z1 = /* @__PURE__ */ function() {
              function Hv(Mv, zv, Wv, Kv) {
                this.observer = Mv, this.typeSupported = zv, this.config = Wv, this.vendor = Kv;
              }
              var Jv = Hv.prototype;
              return Jv.destroy = function() {
                var Mv = this.demuxer;
                Mv && Mv.destroy();
              }, Jv.push = function(Mv, zv, Wv, Kv, c1, $1, N1, e$, R1, Zv, C1, q1) {
                var t$ = this;
                if (Mv.byteLength > 0 && zv != null && zv.key != null && zv.method === "AES-128") {
                  var _b = this.decrypter;
                  _b == null && (_b = this.decrypter = new lv.default(this.observer, this.config));
                  var c$ = O1();
                  _b.decrypt(Mv, zv.key.buffer, zv.iv.buffer, function(l$) {
                    var p$ = O1();
                    t$.observer.trigger(av.default.FRAG_DECRYPTED, {
                      stats: {
                        tstart: c$,
                        tdecrypt: p$
                      }
                    }), t$.pushDecrypted(new Uint8Array(l$), zv, new Uint8Array(Wv), Kv, c1, $1, N1, e$, R1, Zv, C1, q1);
                  });
                } else
                  this.pushDecrypted(new Uint8Array(Mv), zv, new Uint8Array(Wv), Kv, c1, $1, N1, e$, R1, Zv, C1, q1);
              }, Jv.pushDecrypted = function(Mv, zv, Wv, Kv, c1, $1, N1, e$, R1, Zv, C1, q1) {
                var t$ = this.demuxer, _b = this.remuxer;
                if (!t$ || // in case of continuity change, or track switch
                // we might switch from content type (AAC container to TS container, or TS to fmp4 for example)
                N1 || e$) {
                  for (var c$ = this.observer, l$ = this.typeSupported, p$ = this.config, h$ = [{
                    demux: K1,
                    remux: g$
                  }, {
                    demux: Dv.default,
                    remux: O$
                  }, {
                    demux: jv,
                    remux: g$
                  }, {
                    demux: P1,
                    remux: g$
                  }], y$, V$ = 0, D$ = h$.length; V$ < D$ && (y$ = h$[V$], !y$.demux.probe(Mv)); V$++)
                    ;
                  if (!y$) {
                    c$.trigger(av.default.ERROR, {
                      type: sv.ErrorTypes.MEDIA_ERROR,
                      details: sv.ErrorDetails.FRAG_PARSING_ERROR,
                      fatal: !0,
                      reason: "no demux matching with content found"
                    });
                    return;
                  }
                  (!_b || !(_b instanceof y$.remux)) && (_b = new y$.remux(c$, p$, l$, this.vendor)), (!t$ || !(t$ instanceof y$.demux)) && (t$ = new y$.demux(c$, _b, p$, l$), this.probe = y$.demux.probe), this.demuxer = t$, this.remuxer = _b;
                }
                (N1 || e$) && (t$.resetInitSegment(Wv, Kv, c1, Zv), _b.resetInitSegment()), N1 && (t$.resetTimeStamp(q1), _b.resetTimeStamp(q1)), typeof t$.setDecryptData == "function" && t$.setDecryptData(zv), t$.append(Mv, $1, R1, C1);
              }, Hv;
            }();
            iv.default = Z1;
          }
        ),
        /***/
        "./src/demux/demuxer-worker.js": (
          /*!*************************************!*\
            !*** ./src/demux/demuxer-worker.js ***!
            \*************************************/
          /*! exports provided: default */
          /*! ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./src/demux/demuxer.js (referenced with require.resolve) */
          /***/
          function(ev, iv, ov) {
            ov.r(iv);
            var av = ov(
              /*! ../demux/demuxer-inline */
              "./src/demux/demuxer-inline.js"
            ), sv = ov(
              /*! ../events */
              "./src/events.js"
            ), lv = ov(
              /*! ../utils/logger */
              "./src/utils/logger.js"
            ), uv = ov(
              /*! eventemitter3 */
              "./node_modules/eventemitter3/index.js"
            ), cv = function(dv) {
              var hv = new uv.EventEmitter();
              hv.trigger = function(yv) {
                for (var Sv = arguments.length, _v = new Array(Sv > 1 ? Sv - 1 : 0), Ev = 1; Ev < Sv; Ev++)
                  _v[Ev - 1] = arguments[Ev];
                hv.emit.apply(hv, [yv, yv].concat(_v));
              }, hv.off = function(yv) {
                for (var Sv = arguments.length, _v = new Array(Sv > 1 ? Sv - 1 : 0), Ev = 1; Ev < Sv; Ev++)
                  _v[Ev - 1] = arguments[Ev];
                hv.removeListener.apply(hv, [yv].concat(_v));
              };
              var pv = function(yv, Sv) {
                dv.postMessage({
                  event: yv,
                  data: Sv
                });
              };
              dv.addEventListener("message", function(yv) {
                var Sv = yv.data;
                switch (Sv.cmd) {
                  case "init":
                    var _v = JSON.parse(Sv.config);
                    dv.demuxer = new av.default(hv, Sv.typeSupported, _v, Sv.vendor), Object(lv.enableLogs)(_v.debug), pv("init", null);
                    break;
                  case "demux":
                    dv.demuxer.push(Sv.data, Sv.decryptdata, Sv.initSegment, Sv.audioCodec, Sv.videoCodec, Sv.timeOffset, Sv.discontinuity, Sv.trackSwitch, Sv.contiguous, Sv.duration, Sv.accurateTimeOffset, Sv.defaultInitPTS);
                    break;
                }
              }), hv.on(sv.default.FRAG_DECRYPTED, pv), hv.on(sv.default.FRAG_PARSING_INIT_SEGMENT, pv), hv.on(sv.default.FRAG_PARSED, pv), hv.on(sv.default.ERROR, pv), hv.on(sv.default.FRAG_PARSING_METADATA, pv), hv.on(sv.default.FRAG_PARSING_USERDATA, pv), hv.on(sv.default.INIT_PTS_FOUND, pv), hv.on(sv.default.FRAG_PARSING_DATA, function(yv, Sv) {
                var _v = [], Ev = {
                  event: yv,
                  data: Sv
                };
                Sv.data1 && (Ev.data1 = Sv.data1.buffer, _v.push(Sv.data1.buffer), delete Sv.data1), Sv.data2 && (Ev.data2 = Sv.data2.buffer, _v.push(Sv.data2.buffer), delete Sv.data2), dv.postMessage(Ev, _v);
              });
            };
            iv.default = cv;
          }
        ),
        /***/
        "./src/demux/id3.js": (
          /*!**************************!*\
            !*** ./src/demux/id3.js ***!
            \**************************/
          /*! exports provided: default, utf8ArrayToStr */
          /***/
          function(ev, iv, ov) {
            ov.r(iv), ov.d(iv, "utf8ArrayToStr", function() {
              return cv;
            });
            var av = ov(
              /*! ../utils/get-self-scope */
              "./src/utils/get-self-scope.js"
            ), sv = /* @__PURE__ */ function() {
              function dv() {
              }
              return dv.isHeader = function(hv, pv) {
                return pv + 10 <= hv.length && hv[pv] === 73 && hv[pv + 1] === 68 && hv[pv + 2] === 51 && hv[pv + 3] < 255 && hv[pv + 4] < 255 && hv[pv + 6] < 128 && hv[pv + 7] < 128 && hv[pv + 8] < 128 && hv[pv + 9] < 128;
              }, dv.isFooter = function(hv, pv) {
                return pv + 10 <= hv.length && hv[pv] === 51 && hv[pv + 1] === 68 && hv[pv + 2] === 73 && hv[pv + 3] < 255 && hv[pv + 4] < 255 && hv[pv + 6] < 128 && hv[pv + 7] < 128 && hv[pv + 8] < 128 && hv[pv + 9] < 128;
              }, dv.getID3Data = function(hv, pv) {
                for (var yv = pv, Sv = 0; dv.isHeader(hv, pv); ) {
                  Sv += 10;
                  var _v = dv._readSize(hv, pv + 6);
                  Sv += _v, dv.isFooter(hv, pv + 10) && (Sv += 10), pv += Sv;
                }
                if (Sv > 0)
                  return hv.subarray(yv, yv + Sv);
              }, dv._readSize = function(hv, pv) {
                var yv = 0;
                return yv = (hv[pv] & 127) << 21, yv |= (hv[pv + 1] & 127) << 14, yv |= (hv[pv + 2] & 127) << 7, yv |= hv[pv + 3] & 127, yv;
              }, dv.getTimeStamp = function(hv) {
                for (var pv = dv.getID3Frames(hv), yv = 0; yv < pv.length; yv++) {
                  var Sv = pv[yv];
                  if (dv.isTimeStampFrame(Sv))
                    return dv._readTimeStamp(Sv);
                }
              }, dv.isTimeStampFrame = function(hv) {
                return hv && hv.key === "PRIV" && hv.info === "com.apple.streaming.transportStreamTimestamp";
              }, dv._getFrameData = function(hv) {
                var pv = String.fromCharCode(hv[0], hv[1], hv[2], hv[3]), yv = dv._readSize(hv, 4), Sv = 10;
                return {
                  type: pv,
                  size: yv,
                  data: hv.subarray(Sv, Sv + yv)
                };
              }, dv.getID3Frames = function(hv) {
                for (var pv = 0, yv = []; dv.isHeader(hv, pv); ) {
                  var Sv = dv._readSize(hv, pv + 6);
                  pv += 10;
                  for (var _v = pv + Sv; pv + 8 < _v; ) {
                    var Ev = dv._getFrameData(hv.subarray(pv)), wv = dv._decodeFrame(Ev);
                    wv && yv.push(wv), pv += Ev.size + 10;
                  }
                  dv.isFooter(hv, pv) && (pv += 10);
                }
                return yv;
              }, dv._decodeFrame = function(hv) {
                return hv.type === "PRIV" ? dv._decodePrivFrame(hv) : hv.type[0] === "W" ? dv._decodeURLFrame(hv) : dv._decodeTextFrame(hv);
              }, dv._readTimeStamp = function(hv) {
                if (hv.data.byteLength === 8) {
                  var pv = new Uint8Array(hv.data), yv = pv[3] & 1, Sv = (pv[4] << 23) + (pv[5] << 15) + (pv[6] << 7) + pv[7];
                  return Sv /= 45, yv && (Sv += 4772185884e-2), Math.round(Sv);
                }
              }, dv._decodePrivFrame = function(hv) {
                if (!(hv.size < 2)) {
                  var pv = dv._utf8ArrayToStr(hv.data, !0), yv = new Uint8Array(hv.data.subarray(pv.length + 1));
                  return {
                    key: hv.type,
                    info: pv,
                    data: yv.buffer
                  };
                }
              }, dv._decodeTextFrame = function(hv) {
                if (!(hv.size < 2))
                  if (hv.type === "TXXX") {
                    var pv = 1, yv = dv._utf8ArrayToStr(hv.data.subarray(pv), !0);
                    pv += yv.length + 1;
                    var Sv = dv._utf8ArrayToStr(hv.data.subarray(pv));
                    return {
                      key: hv.type,
                      info: yv,
                      data: Sv
                    };
                  } else {
                    var _v = dv._utf8ArrayToStr(hv.data.subarray(1));
                    return {
                      key: hv.type,
                      data: _v
                    };
                  }
              }, dv._decodeURLFrame = function(hv) {
                if (hv.type === "WXXX") {
                  if (hv.size < 2)
                    return;
                  var pv = 1, yv = dv._utf8ArrayToStr(hv.data.subarray(pv), !0);
                  pv += yv.length + 1;
                  var Sv = dv._utf8ArrayToStr(hv.data.subarray(pv));
                  return {
                    key: hv.type,
                    info: yv,
                    data: Sv
                  };
                } else {
                  var _v = dv._utf8ArrayToStr(hv.data);
                  return {
                    key: hv.type,
                    data: _v
                  };
                }
              }, dv._utf8ArrayToStr = function(hv, pv) {
                pv === void 0 && (pv = !1);
                var yv = uv();
                if (yv) {
                  var Sv = yv.decode(hv);
                  if (pv) {
                    var _v = Sv.indexOf("\0");
                    return _v !== -1 ? Sv.substring(0, _v) : Sv;
                  }
                  return Sv.replace(/\0/g, "");
                }
                for (var Ev = hv.length, wv, xv, Cv, Av = "", Ov = 0; Ov < Ev; ) {
                  if (wv = hv[Ov++], wv === 0 && pv)
                    return Av;
                  if (!(wv === 0 || wv === 3))
                    switch (wv >> 4) {
                      case 0:
                      case 1:
                      case 2:
                      case 3:
                      case 4:
                      case 5:
                      case 6:
                      case 7:
                        Av += String.fromCharCode(wv);
                        break;
                      case 12:
                      case 13:
                        xv = hv[Ov++], Av += String.fromCharCode((wv & 31) << 6 | xv & 63);
                        break;
                      case 14:
                        xv = hv[Ov++], Cv = hv[Ov++], Av += String.fromCharCode((wv & 15) << 12 | (xv & 63) << 6 | (Cv & 63) << 0);
                        break;
                    }
                }
                return Av;
              }, dv;
            }(), lv;
            function uv() {
              var dv = Object(av.getSelfScope)();
              return !lv && typeof dv.TextDecoder < "u" && (lv = new dv.TextDecoder("utf-8")), lv;
            }
            var cv = sv._utf8ArrayToStr;
            iv.default = sv;
          }
        ),
        /***/
        "./src/demux/mp4demuxer.js": (
          /*!*********************************!*\
            !*** ./src/demux/mp4demuxer.js ***!
            \*********************************/
          /*! exports provided: default */
          /***/
          function(ev, iv, ov) {
            ov.r(iv);
            var av = ov(
              /*! ../utils/logger */
              "./src/utils/logger.js"
            ), sv = ov(
              /*! ../events */
              "./src/events.js"
            ), lv = Math.pow(2, 32) - 1, uv = /* @__PURE__ */ function() {
              function cv(hv, pv) {
                this.observer = hv, this.remuxer = pv;
              }
              var dv = cv.prototype;
              return dv.resetTimeStamp = function(hv) {
                this.initPTS = hv;
              }, dv.resetInitSegment = function(hv, pv, yv, Sv) {
                if (hv && hv.byteLength) {
                  var _v = this.initData = cv.parseInitSegment(hv);
                  pv == null && (pv = "mp4a.40.5"), yv == null && (yv = "avc1.42e01e");
                  var Ev = {};
                  _v.audio && _v.video ? Ev.audiovideo = {
                    container: "video/mp4",
                    codec: pv + "," + yv,
                    initSegment: Sv ? hv : null
                  } : (_v.audio && (Ev.audio = {
                    container: "audio/mp4",
                    codec: pv,
                    initSegment: Sv ? hv : null
                  }), _v.video && (Ev.video = {
                    container: "video/mp4",
                    codec: yv,
                    initSegment: Sv ? hv : null
                  })), this.observer.trigger(sv.default.FRAG_PARSING_INIT_SEGMENT, {
                    tracks: Ev
                  });
                } else
                  pv && (this.audioCodec = pv), yv && (this.videoCodec = yv);
              }, cv.probe = function(hv) {
                return cv.findBox({
                  data: hv,
                  start: 0,
                  end: Math.min(hv.length, 16384)
                }, ["moof"]).length > 0;
              }, cv.bin2str = function(hv) {
                return String.fromCharCode.apply(null, hv);
              }, cv.readUint16 = function(hv, pv) {
                hv.data && (pv += hv.start, hv = hv.data);
                var yv = hv[pv] << 8 | hv[pv + 1];
                return yv < 0 ? 65536 + yv : yv;
              }, cv.readUint32 = function(hv, pv) {
                hv.data && (pv += hv.start, hv = hv.data);
                var yv = hv[pv] << 24 | hv[pv + 1] << 16 | hv[pv + 2] << 8 | hv[pv + 3];
                return yv < 0 ? 4294967296 + yv : yv;
              }, cv.writeUint32 = function(hv, pv, yv) {
                hv.data && (pv += hv.start, hv = hv.data), hv[pv] = yv >> 24, hv[pv + 1] = yv >> 16 & 255, hv[pv + 2] = yv >> 8 & 255, hv[pv + 3] = yv & 255;
              }, cv.findBox = function(hv, pv) {
                var yv = [], Sv, _v, Ev, wv, xv, Cv, Av;
                if (hv.data ? (Cv = hv.start, wv = hv.end, hv = hv.data) : (Cv = 0, wv = hv.byteLength), !pv.length)
                  return null;
                for (Sv = Cv; Sv < wv; )
                  _v = cv.readUint32(hv, Sv), Ev = cv.bin2str(hv.subarray(Sv + 4, Sv + 8)), Av = _v > 1 ? Sv + _v : wv, Ev === pv[0] && (pv.length === 1 ? yv.push({
                    data: hv,
                    start: Sv + 8,
                    end: Av
                  }) : (xv = cv.findBox({
                    data: hv,
                    start: Sv + 8,
                    end: Av
                  }, pv.slice(1)), xv.length && (yv = yv.concat(xv)))), Sv = Av;
                return yv;
              }, cv.parseSegmentIndex = function(hv) {
                var pv = cv.findBox(hv, ["moov"])[0], yv = pv ? pv.end : null, Sv = 0, _v = cv.findBox(hv, ["sidx"]), Ev;
                if (!_v || !_v[0])
                  return null;
                Ev = [], _v = _v[0];
                var wv = _v.data[0];
                Sv = wv === 0 ? 8 : 16;
                var xv = cv.readUint32(_v, Sv);
                Sv += 4;
                var Cv = 0, Av = 0;
                wv === 0 ? Sv += 8 : Sv += 16, Sv += 2;
                var Ov = _v.end + Av, Lv = cv.readUint16(_v, Sv);
                Sv += 2;
                for (var jv = 0; jv < Lv; jv++) {
                  var Dv = Sv, Vv = cv.readUint32(_v, Dv);
                  Dv += 4;
                  var Gv = Vv & 2147483647, Yv = (Vv & 2147483648) >>> 31;
                  if (Yv === 1) {
                    console.warn("SIDX has hierarchical references (not supported)");
                    return;
                  }
                  var Xv = cv.readUint32(_v, Dv);
                  Dv += 4, Ev.push({
                    referenceSize: Gv,
                    subsegmentDuration: Xv,
                    // unscaled
                    info: {
                      duration: Xv / xv,
                      start: Ov,
                      end: Ov + Gv - 1
                    }
                  }), Ov += Gv, Dv += 4, Sv = Dv;
                }
                return {
                  earliestPresentationTime: Cv,
                  timescale: xv,
                  version: wv,
                  referencesCount: Lv,
                  references: Ev,
                  moovEndOffset: yv
                };
              }, cv.parseInitSegment = function(hv) {
                var pv = [], yv = cv.findBox(hv, ["moov", "trak"]);
                return yv.forEach(function(Sv) {
                  var _v = cv.findBox(Sv, ["tkhd"])[0];
                  if (_v) {
                    var Ev = _v.data[_v.start], wv = Ev === 0 ? 12 : 20, xv = cv.readUint32(_v, wv), Cv = cv.findBox(Sv, ["mdia", "mdhd"])[0];
                    if (Cv) {
                      Ev = Cv.data[Cv.start], wv = Ev === 0 ? 12 : 20;
                      var Av = cv.readUint32(Cv, wv), Ov = cv.findBox(Sv, ["mdia", "hdlr"])[0];
                      if (Ov) {
                        var Lv = cv.bin2str(Ov.data.subarray(Ov.start + 8, Ov.start + 12)), jv = {
                          soun: "audio",
                          vide: "video"
                        }[Lv];
                        if (jv) {
                          var Dv = cv.findBox(Sv, ["mdia", "minf", "stbl", "stsd"]);
                          if (Dv.length) {
                            Dv = Dv[0];
                            var Vv = cv.bin2str(Dv.data.subarray(Dv.start + 12, Dv.start + 16));
                            av.logger.log("MP4Demuxer:" + jv + ":" + Vv + " found");
                          }
                          pv[xv] = {
                            timescale: Av,
                            type: jv
                          }, pv[jv] = {
                            timescale: Av,
                            id: xv
                          };
                        }
                      }
                    }
                  }
                }), pv;
              }, cv.getStartDTS = function(hv, pv) {
                var yv, Sv, _v;
                return yv = cv.findBox(pv, ["moof", "traf"]), Sv = [].concat.apply([], yv.map(function(Ev) {
                  return cv.findBox(Ev, ["tfhd"]).map(function(wv) {
                    var xv, Cv, Av;
                    return xv = cv.readUint32(wv, 4), Cv = hv[xv].timescale || 9e4, Av = cv.findBox(Ev, ["tfdt"]).map(function(Ov) {
                      var Lv, jv;
                      return Lv = Ov.data[Ov.start], jv = cv.readUint32(Ov, 4), Lv === 1 && (jv *= Math.pow(2, 32), jv += cv.readUint32(Ov, 8)), jv;
                    })[0], Av / Cv;
                  });
                })), _v = Math.min.apply(null, Sv), isFinite(_v) ? _v : 0;
              }, cv.offsetStartDTS = function(hv, pv, yv) {
                cv.findBox(pv, ["moof", "traf"]).map(function(Sv) {
                  return cv.findBox(Sv, ["tfhd"]).map(function(_v) {
                    var Ev = cv.readUint32(_v, 4), wv = hv[Ev].timescale || 9e4;
                    cv.findBox(Sv, ["tfdt"]).map(function(xv) {
                      var Cv = xv.data[xv.start], Av = cv.readUint32(xv, 4);
                      if (Cv === 0)
                        cv.writeUint32(xv, 4, Av - yv * wv);
                      else {
                        Av *= Math.pow(2, 32), Av += cv.readUint32(xv, 8), Av -= yv * wv, Av = Math.max(Av, 0);
                        var Ov = Math.floor(Av / (lv + 1)), Lv = Math.floor(Av % (lv + 1));
                        cv.writeUint32(xv, 4, Ov), cv.writeUint32(xv, 8, Lv);
                      }
                    });
                  });
                });
              }, dv.append = function(hv, pv, yv, Sv) {
                var _v = this.initData;
                _v || (this.resetInitSegment(hv, this.audioCodec, this.videoCodec, !1), _v = this.initData);
                var Ev, wv = this.initPTS;
                if (wv === void 0) {
                  var xv = cv.getStartDTS(_v, hv);
                  this.initPTS = wv = xv - pv, this.observer.trigger(sv.default.INIT_PTS_FOUND, {
                    initPTS: wv
                  });
                }
                cv.offsetStartDTS(_v, hv, wv), Ev = cv.getStartDTS(_v, hv), this.remuxer.remux(_v.audio, _v.video, null, null, Ev, yv, Sv, hv);
              }, dv.destroy = function() {
              }, cv;
            }();
            iv.default = uv;
          }
        ),
        /***/
        "./src/errors.ts": (
          /*!***********************!*\
            !*** ./src/errors.ts ***!
            \***********************/
          /*! exports provided: ErrorTypes, ErrorDetails */
          /***/
          function(ev, iv, ov) {
            ov.r(iv), ov.d(iv, "ErrorTypes", function() {
              return av;
            }), ov.d(iv, "ErrorDetails", function() {
              return sv;
            });
            var av;
            (function(lv) {
              lv.NETWORK_ERROR = "networkError", lv.MEDIA_ERROR = "mediaError", lv.KEY_SYSTEM_ERROR = "keySystemError", lv.MUX_ERROR = "muxError", lv.OTHER_ERROR = "otherError";
            })(av || (av = {}));
            var sv;
            (function(lv) {
              lv.KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", lv.KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", lv.KEY_SYSTEM_NO_SESSION = "keySystemNoSession", lv.KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", lv.KEY_SYSTEM_NO_INIT_DATA = "keySystemNoInitData", lv.MANIFEST_LOAD_ERROR = "manifestLoadError", lv.MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", lv.MANIFEST_PARSING_ERROR = "manifestParsingError", lv.MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", lv.LEVEL_EMPTY_ERROR = "levelEmptyError", lv.LEVEL_LOAD_ERROR = "levelLoadError", lv.LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", lv.LEVEL_SWITCH_ERROR = "levelSwitchError", lv.AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", lv.AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", lv.FRAG_LOAD_ERROR = "fragLoadError", lv.FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", lv.FRAG_DECRYPT_ERROR = "fragDecryptError", lv.FRAG_PARSING_ERROR = "fragParsingError", lv.REMUX_ALLOC_ERROR = "remuxAllocError", lv.KEY_LOAD_ERROR = "keyLoadError", lv.KEY_LOAD_TIMEOUT = "keyLoadTimeOut", lv.BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", lv.BUFFER_APPEND_ERROR = "bufferAppendError", lv.BUFFER_APPENDING_ERROR = "bufferAppendingError", lv.BUFFER_STALLED_ERROR = "bufferStalledError", lv.BUFFER_FULL_ERROR = "bufferFullError", lv.BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole", lv.BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall", lv.INTERNAL_EXCEPTION = "internalException";
            })(sv || (sv = {}));
          }
        ),
        /***/
        "./src/events.js": (
          /*!***********************!*\
            !*** ./src/events.js ***!
            \***********************/
          /*! exports provided: default */
          /***/
          function(ev, iv, ov) {
            ov.r(iv);
            var av = {
              // fired before MediaSource is attaching to media element - data: { media }
              MEDIA_ATTACHING: "hlsMediaAttaching",
              // fired when MediaSource has been succesfully attached to media element - data: { }
              MEDIA_ATTACHED: "hlsMediaAttached",
              // fired before detaching MediaSource from media element - data: { }
              MEDIA_DETACHING: "hlsMediaDetaching",
              // fired when MediaSource has been detached from media element - data: { }
              MEDIA_DETACHED: "hlsMediaDetached",
              // fired when we buffer is going to be reset - data: { }
              BUFFER_RESET: "hlsBufferReset",
              // fired when we know about the codecs that we need buffers for to push into - data: {tracks : { container, codec, levelCodec, initSegment, metadata }}
              BUFFER_CODECS: "hlsBufferCodecs",
              // fired when sourcebuffers have been created - data: { tracks : tracks }
              BUFFER_CREATED: "hlsBufferCreated",
              // fired when we append a segment to the buffer - data: { segment: segment object }
              BUFFER_APPENDING: "hlsBufferAppending",
              // fired when we are done with appending a media segment to the buffer - data : { parent : segment parent that triggered BUFFER_APPENDING, pending : nb of segments waiting for appending for this segment parent}
              BUFFER_APPENDED: "hlsBufferAppended",
              // fired when the stream is finished and we want to notify the media buffer that there will be no more data - data: { }
              BUFFER_EOS: "hlsBufferEos",
              // fired when the media buffer should be flushed - data { startOffset, endOffset }
              BUFFER_FLUSHING: "hlsBufferFlushing",
              // fired when the media buffer has been flushed - data: { }
              BUFFER_FLUSHED: "hlsBufferFlushed",
              // fired to signal that a manifest loading starts - data: { url : manifestURL}
              MANIFEST_LOADING: "hlsManifestLoading",
              // fired after manifest has been loaded - data: { levels : [available quality levels], audioTracks : [ available audio tracks], url : manifestURL, stats : { trequest, tfirst, tload, mtime}}
              MANIFEST_LOADED: "hlsManifestLoaded",
              // fired after manifest has been parsed - data: { levels : [available quality levels], firstLevel : index of first quality level appearing in Manifest}
              MANIFEST_PARSED: "hlsManifestParsed",
              // fired when a level switch is requested - data: { level : id of new level }
              LEVEL_SWITCHING: "hlsLevelSwitching",
              // fired when a level switch is effective - data: { level : id of new level }
              LEVEL_SWITCHED: "hlsLevelSwitched",
              // fired when a level playlist loading starts - data: { url : level URL, level : id of level being loaded}
              LEVEL_LOADING: "hlsLevelLoading",
              // fired when a level playlist loading finishes - data: { details : levelDetails object, level : id of loaded level, stats : { trequest, tfirst, tload, mtime} }
              LEVEL_LOADED: "hlsLevelLoaded",
              // fired when a level's details have been updated based on previous details, after it has been loaded - data: { details : levelDetails object, level : id of updated level }
              LEVEL_UPDATED: "hlsLevelUpdated",
              // fired when a level's PTS information has been updated after parsing a fragment - data: { details : levelDetails object, level : id of updated level, drift: PTS drift observed when parsing last fragment }
              LEVEL_PTS_UPDATED: "hlsLevelPtsUpdated",
              // fired to notify that levels have changed after removing a level - data: { levels : [available quality levels] }
              LEVELS_UPDATED: "hlsLevelsUpdated",
              // fired to notify that audio track lists has been updated - data: { audioTracks : audioTracks }
              AUDIO_TRACKS_UPDATED: "hlsAudioTracksUpdated",
              // fired when an audio track switching is requested - data: { id : audio track id }
              AUDIO_TRACK_SWITCHING: "hlsAudioTrackSwitching",
              // fired when an audio track switch actually occurs - data: { id : audio track id }
              AUDIO_TRACK_SWITCHED: "hlsAudioTrackSwitched",
              // fired when an audio track loading starts - data: { url : audio track URL, id : audio track id }
              AUDIO_TRACK_LOADING: "hlsAudioTrackLoading",
              // fired when an audio track loading finishes - data: { details : levelDetails object, id : audio track id, stats : { trequest, tfirst, tload, mtime } }
              AUDIO_TRACK_LOADED: "hlsAudioTrackLoaded",
              // fired to notify that subtitle track lists has been updated - data: { subtitleTracks : subtitleTracks }
              SUBTITLE_TRACKS_UPDATED: "hlsSubtitleTracksUpdated",
              // fired when an subtitle track switch occurs - data: { id : subtitle track id }
              SUBTITLE_TRACK_SWITCH: "hlsSubtitleTrackSwitch",
              // fired when a subtitle track loading starts - data: { url : subtitle track URL, id : subtitle track id }
              SUBTITLE_TRACK_LOADING: "hlsSubtitleTrackLoading",
              // fired when a subtitle track loading finishes - data: { details : levelDetails object, id : subtitle track id, stats : { trequest, tfirst, tload, mtime } }
              SUBTITLE_TRACK_LOADED: "hlsSubtitleTrackLoaded",
              // fired when a subtitle fragment has been processed - data: { success : boolean, frag : the processed frag }
              SUBTITLE_FRAG_PROCESSED: "hlsSubtitleFragProcessed",
              // fired when a set of VTTCues to be managed externally has been parsed - data: { type: string, track: string, cues: [ VTTCue ] }
              CUES_PARSED: "hlsCuesParsed",
              // fired when a text track to be managed externally is found - data: { tracks: [ { label: string, kind: string, default: boolean } ] }
              NON_NATIVE_TEXT_TRACKS_FOUND: "hlsNonNativeTextTracksFound",
              // fired when the first timestamp is found - data: { id : demuxer id, initPTS: initPTS, frag : fragment object }
              INIT_PTS_FOUND: "hlsInitPtsFound",
              // fired when a fragment loading starts - data: { frag : fragment object }
              FRAG_LOADING: "hlsFragLoading",
              // fired when a fragment loading is progressing - data: { frag : fragment object, { trequest, tfirst, loaded } }
              FRAG_LOAD_PROGRESS: "hlsFragLoadProgress",
              // Identifier for fragment load aborting for emergency switch down - data: { frag : fragment object }
              FRAG_LOAD_EMERGENCY_ABORTED: "hlsFragLoadEmergencyAborted",
              // fired when a fragment loading is completed - data: { frag : fragment object, payload : fragment payload, stats : { trequest, tfirst, tload, length } }
              FRAG_LOADED: "hlsFragLoaded",
              // fired when a fragment has finished decrypting - data: { id : demuxer id, frag: fragment object, payload : fragment payload, stats : { tstart, tdecrypt } }
              FRAG_DECRYPTED: "hlsFragDecrypted",
              // fired when Init Segment has been extracted from fragment - data: { id : demuxer id, frag: fragment object, moov : moov MP4 box, codecs : codecs found while parsing fragment }
              FRAG_PARSING_INIT_SEGMENT: "hlsFragParsingInitSegment",
              // fired when parsing sei text is completed - data: { id : demuxer id, frag: fragment object, samples : [ sei samples pes ] }
              FRAG_PARSING_USERDATA: "hlsFragParsingUserdata",
              // fired when parsing id3 is completed - data: { id : demuxer id, frag: fragment object, samples : [ id3 samples pes ] }
              FRAG_PARSING_METADATA: "hlsFragParsingMetadata",
              // fired when data have been extracted from fragment - data: { id : demuxer id, frag: fragment object, data1 : moof MP4 box or TS fragments, data2 : mdat MP4 box or null}
              FRAG_PARSING_DATA: "hlsFragParsingData",
              // fired when fragment parsing is completed - data: { id : demuxer id, frag: fragment object }
              FRAG_PARSED: "hlsFragParsed",
              // fired when fragment remuxed MP4 boxes have all been appended into SourceBuffer - data: { id : demuxer id, frag : fragment object, stats : { trequest, tfirst, tload, tparsed, tbuffered, length, bwEstimate } }
              FRAG_BUFFERED: "hlsFragBuffered",
              // fired when fragment matching with current media position is changing - data : { id : demuxer id, frag : fragment object }
              FRAG_CHANGED: "hlsFragChanged",
              // Identifier for a FPS drop event - data: { curentDropped, currentDecoded, totalDroppedFrames }
              FPS_DROP: "hlsFpsDrop",
              // triggered when FPS drop triggers auto level capping - data: { level, droppedlevel }
              FPS_DROP_LEVEL_CAPPING: "hlsFpsDropLevelCapping",
              // Identifier for an error event - data: { type : error type, details : error details, fatal : if true, hls.js cannot/will not try to recover, if false, hls.js will try to recover,other error specific data }
              ERROR: "hlsError",
              // fired when hls.js instance starts destroying. Different from MEDIA_DETACHED as one could want to detach and reattach a media to the instance of hls.js to handle mid-rolls for example - data: { }
              DESTROYING: "hlsDestroying",
              // fired when a decrypt key loading starts - data: { frag : fragment object }
              KEY_LOADING: "hlsKeyLoading",
              // fired when a decrypt key loading is completed - data: { frag : fragment object, payload : key payload, stats : { trequest, tfirst, tload, length } }
              KEY_LOADED: "hlsKeyLoaded",
              // fired upon stream controller state transitions - data: { previousState, nextState }
              STREAM_STATE_TRANSITION: "hlsStreamStateTransition",
              // fired when the live back buffer is reached defined by the liveBackBufferLength config option - data : { bufferEnd: number }
              LIVE_BACK_BUFFER_REACHED: "hlsLiveBackBufferReached"
            };
            iv.default = av;
          }
        ),
        /***/
        "./src/hls.ts": (
          /*!*********************************!*\
            !*** ./src/hls.ts + 50 modules ***!
            \*********************************/
          /*! exports provided: default */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/crypt/decrypter.js because of ./src/demux/demuxer-worker.js */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/demux/demuxer-inline.js because of ./src/demux/demuxer-worker.js */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/demux/id3.js because of ./src/demux/demuxer-worker.js */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/demux/mp4demuxer.js because of ./src/demux/demuxer-worker.js */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/errors.ts because of ./src/demux/demuxer-worker.js */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/events.js because of ./src/demux/demuxer-worker.js */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/polyfills/number.js because of ./src/demux/demuxer-worker.js */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/utils/get-self-scope.js because of ./src/demux/demuxer-worker.js */
          /*! ModuleConcatenation bailout: Cannot concat with ./src/utils/logger.js because of ./src/demux/demuxer-worker.js */
          /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/eventemitter3/index.js (<- Module is not an ECMAScript module) */
          /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/url-toolkit/src/url-toolkit.js (<- Module is not an ECMAScript module) */
          /***/
          function(ev, iv, ov) {
            ov.r(iv), ov.d(iv, "default", function() {
              return (
                /* binding */
                cN
              );
            });
            var av = {};
            ov.r(av), ov.d(av, "newCue", function() {
              return NM;
            });
            var sv = ov("./node_modules/url-toolkit/src/url-toolkit.js"), lv = ov("./src/errors.ts"), uv = ov("./src/polyfills/number.js"), cv = ov("./src/events.js"), dv = ov("./src/utils/logger.js"), hv = {
              hlsEventGeneric: !0,
              hlsHandlerDestroying: !0,
              hlsHandlerDestroyed: !0
            }, pv = /* @__PURE__ */ function() {
              function Iv(kv) {
                this.hls = void 0, this.handledEvents = void 0, this.useGenericHandler = void 0, this.hls = kv, this.onEvent = this.onEvent.bind(this);
                for (var bv = arguments.length, $v = new Array(bv > 1 ? bv - 1 : 0), Tv = 1; Tv < bv; Tv++)
                  $v[Tv - 1] = arguments[Tv];
                this.handledEvents = $v, this.useGenericHandler = !0, this.registerListeners();
              }
              var Rv = Iv.prototype;
              return Rv.destroy = function() {
                this.onHandlerDestroying(), this.unregisterListeners(), this.onHandlerDestroyed();
              }, Rv.onHandlerDestroying = function() {
              }, Rv.onHandlerDestroyed = function() {
              }, Rv.isEventHandler = function() {
                return typeof this.handledEvents == "object" && this.handledEvents.length && typeof this.onEvent == "function";
              }, Rv.registerListeners = function() {
                this.isEventHandler() && this.handledEvents.forEach(function(kv) {
                  if (hv[kv])
                    throw new Error("Forbidden event-name: " + kv);
                  this.hls.on(kv, this.onEvent);
                }, this);
              }, Rv.unregisterListeners = function() {
                this.isEventHandler() && this.handledEvents.forEach(function(kv) {
                  this.hls.off(kv, this.onEvent);
                }, this);
              }, Rv.onEvent = function(kv, bv) {
                this.onEventGeneric(kv, bv);
              }, Rv.onEventGeneric = function(kv, bv) {
                var $v = function(Tv, Pv) {
                  var Fv = "on" + Tv.replace("hls", "");
                  if (typeof this[Fv] != "function")
                    throw new Error("Event " + Tv + " has no generic handler in this " + this.constructor.name + " class (tried " + Fv + ")");
                  return this[Fv].bind(this, Pv);
                };
                try {
                  $v.call(this, kv, bv).call();
                } catch (Tv) {
                  dv.logger.error("An internal error happened while handling event " + kv + '. Error message: "' + Tv.message + '". Here is a stacktrace:', Tv), this.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.OTHER_ERROR,
                    details: lv.ErrorDetails.INTERNAL_EXCEPTION,
                    fatal: !1,
                    event: kv,
                    err: Tv
                  });
                }
              }, Iv;
            }(), yv = pv, Sv;
            (function(Iv) {
              Iv.MANIFEST = "manifest", Iv.LEVEL = "level", Iv.AUDIO_TRACK = "audioTrack", Iv.SUBTITLE_TRACK = "subtitleTrack";
            })(Sv || (Sv = {}));
            var _v;
            (function(Iv) {
              Iv.MAIN = "main", Iv.AUDIO = "audio", Iv.SUBTITLE = "subtitle";
            })(_v || (_v = {}));
            var Ev = ov("./src/demux/mp4demuxer.js");
            function wv(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function xv(Iv, Rv, kv) {
              return Rv && wv(Iv.prototype, Rv), Iv;
            }
            var Cv = /* @__PURE__ */ function() {
              function Iv(Rv, kv) {
                this._uri = null, this.baseuri = void 0, this.reluri = void 0, this.method = null, this.key = null, this.iv = null, this.baseuri = Rv, this.reluri = kv;
              }
              return xv(Iv, [{
                key: "uri",
                get: function() {
                  return !this._uri && this.reluri && (this._uri = Object(sv.buildAbsoluteURL)(this.baseuri, this.reluri, {
                    alwaysNormalize: !0
                  })), this._uri;
                }
              }]), Iv;
            }();
            function Av(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function Ov(Iv, Rv, kv) {
              return Rv && Av(Iv.prototype, Rv), Iv;
            }
            var Lv;
            (function(Iv) {
              Iv.AUDIO = "audio", Iv.VIDEO = "video";
            })(Lv || (Lv = {}));
            var jv = /* @__PURE__ */ function() {
              function Iv() {
                var kv;
                this._url = null, this._byteRange = null, this._decryptdata = null, this._elementaryStreams = (kv = {}, kv[Lv.AUDIO] = !1, kv[Lv.VIDEO] = !1, kv), this.deltaPTS = 0, this.rawProgramDateTime = null, this.programDateTime = null, this.title = null, this.tagList = [], this.cc = void 0, this.type = void 0, this.relurl = void 0, this.baseurl = void 0, this.duration = void 0, this.start = void 0, this.sn = 0, this.urlId = 0, this.level = 0, this.levelkey = void 0, this.loader = void 0;
              }
              var Rv = Iv.prototype;
              return Rv.setByteRange = function(kv, bv) {
                var $v = kv.split("@", 2), Tv = [];
                $v.length === 1 ? Tv[0] = bv ? bv.byteRangeEndOffset : 0 : Tv[0] = parseInt($v[1]), Tv[1] = parseInt($v[0]) + Tv[0], this._byteRange = Tv;
              }, Rv.addElementaryStream = function(kv) {
                this._elementaryStreams[kv] = !0;
              }, Rv.hasElementaryStream = function(kv) {
                return this._elementaryStreams[kv] === !0;
              }, Rv.createInitializationVector = function(kv) {
                for (var bv = new Uint8Array(16), $v = 12; $v < 16; $v++)
                  bv[$v] = kv >> 8 * (15 - $v) & 255;
                return bv;
              }, Rv.setDecryptDataFromLevelKey = function(kv, bv) {
                var $v = kv;
                return kv != null && kv.method && kv.uri && !kv.iv && ($v = new Cv(kv.baseuri, kv.reluri), $v.method = kv.method, $v.iv = this.createInitializationVector(bv)), $v;
              }, Ov(Iv, [{
                key: "url",
                get: function() {
                  return !this._url && this.relurl && (this._url = Object(sv.buildAbsoluteURL)(this.baseurl, this.relurl, {
                    alwaysNormalize: !0
                  })), this._url;
                },
                set: function(kv) {
                  this._url = kv;
                }
              }, {
                key: "byteRange",
                get: function() {
                  return this._byteRange ? this._byteRange : [];
                }
                /**
                 * @type {number}
                 */
              }, {
                key: "byteRangeStartOffset",
                get: function() {
                  return this.byteRange[0];
                }
              }, {
                key: "byteRangeEndOffset",
                get: function() {
                  return this.byteRange[1];
                }
              }, {
                key: "decryptdata",
                get: function() {
                  if (!this.levelkey && !this._decryptdata)
                    return null;
                  if (!this._decryptdata && this.levelkey) {
                    var kv = this.sn;
                    typeof kv != "number" && (this.levelkey && this.levelkey.method === "AES-128" && !this.levelkey.iv && dv.logger.warn('missing IV for initialization segment with method="' + this.levelkey.method + '" - compliance issue'), kv = 0), this._decryptdata = this.setDecryptDataFromLevelKey(this.levelkey, kv);
                  }
                  return this._decryptdata;
                }
              }, {
                key: "endProgramDateTime",
                get: function() {
                  if (this.programDateTime === null || !Object(uv.isFiniteNumber)(this.programDateTime))
                    return null;
                  var kv = Object(uv.isFiniteNumber)(this.duration) ? this.duration : 0;
                  return this.programDateTime + kv * 1e3;
                }
              }, {
                key: "encrypted",
                get: function() {
                  return !!(this.decryptdata && this.decryptdata.uri !== null && this.decryptdata.key === null);
                }
              }]), Iv;
            }();
            function Dv(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function Vv(Iv, Rv, kv) {
              return Rv && Dv(Iv.prototype, Rv), Iv;
            }
            var Gv = /* @__PURE__ */ function() {
              function Iv(Rv) {
                this.endCC = 0, this.endSN = 0, this.fragments = [], this.initSegment = null, this.live = !0, this.needSidxRanges = !1, this.startCC = 0, this.startSN = 0, this.startTimeOffset = null, this.targetduration = 0, this.totalduration = 0, this.type = null, this.url = Rv, this.version = null;
              }
              return Vv(Iv, [{
                key: "hasProgramDateTime",
                get: function() {
                  return !!(this.fragments[0] && Object(uv.isFiniteNumber)(this.fragments[0].programDateTime));
                }
              }]), Iv;
            }(), Yv = /^(\d+)x(\d+)$/, Xv = /\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g, L1 = /* @__PURE__ */ function() {
              function Iv(kv) {
                typeof kv == "string" && (kv = Iv.parseAttrList(kv));
                for (var bv in kv)
                  kv.hasOwnProperty(bv) && (this[bv] = kv[bv]);
              }
              var Rv = Iv.prototype;
              return Rv.decimalInteger = function(kv) {
                var bv = parseInt(this[kv], 10);
                return bv > Number.MAX_SAFE_INTEGER ? 1 / 0 : bv;
              }, Rv.hexadecimalInteger = function(kv) {
                if (this[kv]) {
                  var bv = (this[kv] || "0x").slice(2);
                  bv = (bv.length & 1 ? "0" : "") + bv;
                  for (var $v = new Uint8Array(bv.length / 2), Tv = 0; Tv < bv.length / 2; Tv++)
                    $v[Tv] = parseInt(bv.slice(Tv * 2, Tv * 2 + 2), 16);
                  return $v;
                } else
                  return null;
              }, Rv.hexadecimalIntegerAsNumber = function(kv) {
                var bv = parseInt(this[kv], 16);
                return bv > Number.MAX_SAFE_INTEGER ? 1 / 0 : bv;
              }, Rv.decimalFloatingPoint = function(kv) {
                return parseFloat(this[kv]);
              }, Rv.enumeratedString = function(kv) {
                return this[kv];
              }, Rv.decimalResolution = function(kv) {
                var bv = Yv.exec(this[kv]);
                if (bv !== null)
                  return {
                    width: parseInt(bv[1], 10),
                    height: parseInt(bv[2], 10)
                  };
              }, Iv.parseAttrList = function(kv) {
                var bv, $v = {};
                for (Xv.lastIndex = 0; (bv = Xv.exec(kv)) !== null; ) {
                  var Tv = bv[2], Pv = '"';
                  Tv.indexOf(Pv) === 0 && Tv.lastIndexOf(Pv) === Tv.length - 1 && (Tv = Tv.slice(1, -1)), $v[bv[1]] = Tv;
                }
                return $v;
              }, Iv;
            }(), Bv = L1, Qv = {
              audio: {
                a3ds: !0,
                "ac-3": !0,
                "ac-4": !0,
                alac: !0,
                alaw: !0,
                dra1: !0,
                "dts+": !0,
                "dts-": !0,
                dtsc: !0,
                dtse: !0,
                dtsh: !0,
                "ec-3": !0,
                enca: !0,
                g719: !0,
                g726: !0,
                m4ae: !0,
                mha1: !0,
                mha2: !0,
                mhm1: !0,
                mhm2: !0,
                mlpa: !0,
                mp4a: !0,
                "raw ": !0,
                Opus: !0,
                samr: !0,
                sawb: !0,
                sawp: !0,
                sevc: !0,
                sqcp: !0,
                ssmv: !0,
                twos: !0,
                ulaw: !0
              },
              video: {
                avc1: !0,
                avc2: !0,
                avc3: !0,
                avc4: !0,
                avcp: !0,
                drac: !0,
                dvav: !0,
                dvhe: !0,
                encv: !0,
                hev1: !0,
                hvc1: !0,
                mjp2: !0,
                mp4v: !0,
                mvc1: !0,
                mvc2: !0,
                mvc3: !0,
                mvc4: !0,
                resv: !0,
                rv60: !0,
                s263: !0,
                svc1: !0,
                svc2: !0,
                "vc-1": !0,
                vp08: !0,
                vp09: !0
              }
            };
            function B1(Iv, Rv) {
              var kv = Qv[Rv];
              return !!kv && kv[Iv.slice(0, 4)] === !0;
            }
            function K1(Iv, Rv) {
              return MediaSource.isTypeSupported((Rv || "video") + '/mp4;codecs="' + Iv + '"');
            }
            var j1 = /(?:#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)|#EXT-X-SESSION-DATA:([^\n\r]*)[\r\n]+)/g, P1 = /#EXT-X-MEDIA:(.*)/g, D1 = new RegExp([
              /#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,
              // duration (#EXTINF:<duration>,<title>), group 1 => duration, group 2 => title
              /|(?!#)([\S+ ?]+)/.source,
              // segment URI, group 3 => the URI (note newline is not eaten)
              /|#EXT-X-BYTERANGE:*(.+)/.source,
              // next segment's byterange, group 4 => range spec (x@y)
              /|#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,
              // next segment's program date/time group 5 => the datetime spec
              /|#.*/.source
              // All other non-segment oriented tags will match with all groups empty
            ].join(""), "g"), I1 = /(?:(?:#(EXTM3U))|(?:#EXT-X-(PLAYLIST-TYPE):(.+))|(?:#EXT-X-(MEDIA-SEQUENCE): *(\d+))|(?:#EXT-X-(TARGETDURATION): *(\d+))|(?:#EXT-X-(KEY):(.+))|(?:#EXT-X-(START):(.+))|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DISCONTINUITY-SEQ)UENCE:(\d+))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(VERSION):(\d+))|(?:#EXT-X-(MAP):(.+))|(?:(#)([^:]*):(.*))|(?:(#)(.*))(?:.*)\r?\n?/, F1 = /\.(mp4|m4s|m4v|m4a)$/i, M1 = /* @__PURE__ */ function() {
              function Iv() {
              }
              return Iv.findGroup = function(Rv, kv) {
                for (var bv = 0; bv < Rv.length; bv++) {
                  var $v = Rv[bv];
                  if ($v.id === kv)
                    return $v;
                }
              }, Iv.convertAVC1ToAVCOTI = function(Rv) {
                var kv = Rv.split("."), bv;
                return kv.length > 2 ? (bv = kv.shift() + ".", bv += parseInt(kv.shift()).toString(16), bv += ("000" + parseInt(kv.shift()).toString(16)).substr(-4)) : bv = Rv, bv;
              }, Iv.resolve = function(Rv, kv) {
                return sv.buildAbsoluteURL(kv, Rv, {
                  alwaysNormalize: !0
                });
              }, Iv.parseMasterPlaylist = function(Rv, kv) {
                var bv = [], $v = {}, Tv = !1;
                j1.lastIndex = 0;
                function Pv(W1, X1) {
                  ["video", "audio"].forEach(function(i$) {
                    var o$ = W1.filter(function(m$) {
                      return B1(m$, i$);
                    });
                    if (o$.length) {
                      var b$ = o$.filter(function(m$) {
                        return m$.lastIndexOf("avc1", 0) === 0 || m$.lastIndexOf("mp4a", 0) === 0;
                      });
                      X1[i$ + "Codec"] = b$.length > 0 ? b$[0] : o$[0], W1 = W1.filter(function(m$) {
                        return o$.indexOf(m$) === -1;
                      });
                    }
                  }), X1.unknownCodecs = W1;
                }
                for (var Fv; (Fv = j1.exec(Rv)) != null; )
                  if (Fv[1]) {
                    var Uv = {}, qv = Uv.attrs = new Bv(Fv[1]);
                    Uv.url = Iv.resolve(Fv[2], kv);
                    var _1 = qv.decimalResolution("RESOLUTION");
                    _1 && (Uv.width = _1.width, Uv.height = _1.height), Uv.bitrate = qv.decimalInteger("AVERAGE-BANDWIDTH") || qv.decimalInteger("BANDWIDTH"), Uv.name = qv.NAME, Pv([].concat((qv.CODECS || "").split(/[ ,]+/)), Uv), Uv.videoCodec && Uv.videoCodec.indexOf("avc1") !== -1 && (Uv.videoCodec = Iv.convertAVC1ToAVCOTI(Uv.videoCodec)), bv.push(Uv);
                  } else if (Fv[3]) {
                    var d1 = new Bv(Fv[3]);
                    d1["DATA-ID"] && (Tv = !0, $v[d1["DATA-ID"]] = d1);
                  }
                return {
                  levels: bv,
                  sessionData: Tv ? $v : null
                };
              }, Iv.parseMasterPlaylistMedia = function(Rv, kv, bv, $v) {
                $v === void 0 && ($v = []);
                var Tv, Pv = [], Fv = 0;
                for (P1.lastIndex = 0; (Tv = P1.exec(Rv)) !== null; ) {
                  var Uv = new Bv(Tv[1]);
                  if (Uv.TYPE === bv) {
                    var qv = {
                      attrs: Uv,
                      id: Fv++,
                      groupId: Uv["GROUP-ID"],
                      instreamId: Uv["INSTREAM-ID"],
                      name: Uv.NAME || Uv.LANGUAGE,
                      type: bv,
                      default: Uv.DEFAULT === "YES",
                      autoselect: Uv.AUTOSELECT === "YES",
                      forced: Uv.FORCED === "YES",
                      lang: Uv.LANGUAGE
                    };
                    if (Uv.URI && (qv.url = Iv.resolve(Uv.URI, kv)), $v.length) {
                      var _1 = Iv.findGroup($v, qv.groupId);
                      qv.audioCodec = _1 ? _1.codec : $v[0].codec;
                    }
                    Pv.push(qv);
                  }
                }
                return Pv;
              }, Iv.parseLevelPlaylist = function(Rv, kv, bv, $v, Tv) {
                var Pv = 0, Fv = 0, Uv = new Gv(kv), qv = 0, _1 = null, d1 = new jv(), W1, X1, i$, o$ = null;
                for (D1.lastIndex = 0; (W1 = D1.exec(Rv)) !== null; ) {
                  var b$ = W1[1];
                  if (b$) {
                    d1.duration = parseFloat(b$);
                    var m$ = (" " + W1[2]).slice(1);
                    d1.title = m$ || null, d1.tagList.push(m$ ? ["INF", b$, m$] : ["INF", b$]);
                  } else if (W1[3]) {
                    if (Object(uv.isFiniteNumber)(d1.duration)) {
                      var k$ = Pv++;
                      d1.type = $v, d1.start = Fv, i$ && (d1.levelkey = i$), d1.sn = k$, d1.level = bv, d1.cc = qv, d1.urlId = Tv, d1.baseurl = kv, d1.relurl = (" " + W1[3]).slice(1), H1(d1, _1), Uv.fragments.push(d1), _1 = d1, Fv += d1.duration, d1 = new jv();
                    }
                  } else if (W1[4]) {
                    var B$ = (" " + W1[4]).slice(1);
                    _1 ? d1.setByteRange(B$, _1) : d1.setByteRange(B$);
                  } else if (W1[5])
                    d1.rawProgramDateTime = (" " + W1[5]).slice(1), d1.tagList.push(["PROGRAM-DATE-TIME", d1.rawProgramDateTime]), o$ === null && (o$ = Uv.fragments.length);
                  else {
                    if (W1 = W1[0].match(I1), !W1) {
                      dv.logger.warn("No matches on slow regex match for level playlist!");
                      continue;
                    }
                    for (X1 = 1; X1 < W1.length && !(typeof W1[X1] < "u"); X1++)
                      ;
                    var C$ = (" " + W1[X1 + 1]).slice(1), X$ = (" " + W1[X1 + 2]).slice(1);
                    switch (W1[X1]) {
                      case "#":
                        d1.tagList.push(X$ ? [C$, X$] : [C$]);
                        break;
                      case "PLAYLIST-TYPE":
                        Uv.type = C$.toUpperCase();
                        break;
                      case "MEDIA-SEQUENCE":
                        Pv = Uv.startSN = parseInt(C$);
                        break;
                      case "TARGETDURATION":
                        Uv.targetduration = parseFloat(C$);
                        break;
                      case "VERSION":
                        Uv.version = parseInt(C$);
                        break;
                      case "EXTM3U":
                        break;
                      case "ENDLIST":
                        Uv.live = !1;
                        break;
                      case "DIS":
                        qv++, d1.tagList.push(["DIS"]);
                        break;
                      case "DISCONTINUITY-SEQ":
                        qv = parseInt(C$);
                        break;
                      case "KEY": {
                        var l3 = C$, t3 = new Bv(l3), c3 = t3.enumeratedString("METHOD"), H$ = t3.URI, N$ = t3.hexadecimalInteger("IV"), Gw = t3.KEYFORMAT || "identity";
                        if (Gw === "com.apple.streamingkeydelivery") {
                          dv.logger.warn("Keyformat com.apple.streamingkeydelivery is not supported");
                          continue;
                        }
                        c3 && (i$ = new Cv(kv, H$), H$ && ["AES-128", "SAMPLE-AES", "SAMPLE-AES-CENC"].indexOf(c3) >= 0 && (i$.method = c3, i$.key = null, i$.iv = N$));
                        break;
                      }
                      case "START": {
                        var T3 = new Bv(C$), C3 = T3.decimalFloatingPoint("TIME-OFFSET");
                        Object(uv.isFiniteNumber)(C3) && (Uv.startTimeOffset = C3);
                        break;
                      }
                      case "MAP": {
                        var N3 = new Bv(C$);
                        d1.relurl = N3.URI, N3.BYTERANGE && d1.setByteRange(N3.BYTERANGE), d1.baseurl = kv, d1.level = bv, d1.type = $v, d1.sn = "initSegment", Uv.initSegment = d1, d1 = new jv(), d1.rawProgramDateTime = Uv.initSegment.rawProgramDateTime;
                        break;
                      }
                      default:
                        dv.logger.warn("line parsed but not handled: " + W1);
                        break;
                    }
                  }
                }
                return d1 = _1, d1 && !d1.relurl && (Uv.fragments.pop(), Fv -= d1.duration), Uv.totalduration = Fv, Uv.averagetargetduration = Fv / Uv.fragments.length, Uv.endSN = Pv - 1, Uv.startCC = Uv.fragments[0] ? Uv.fragments[0].cc : 0, Uv.endCC = qv, !Uv.initSegment && Uv.fragments.length && Uv.fragments.every(function(kD) {
                  return F1.test(kD.relurl);
                }) && (dv.logger.warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"), d1 = new jv(), d1.relurl = Uv.fragments[0].relurl, d1.baseurl = kv, d1.level = bv, d1.type = $v, d1.sn = "initSegment", Uv.initSegment = d1, Uv.needSidxRanges = !0), o$ && U1(Uv.fragments, o$), Uv;
              }, Iv;
            }();
            function U1(Iv, Rv) {
              for (var kv = Iv[Rv], bv = Rv - 1; bv >= 0; bv--) {
                var $v = Iv[bv];
                $v.programDateTime = kv.programDateTime - $v.duration * 1e3, kv = $v;
              }
            }
            function H1(Iv, Rv) {
              Iv.rawProgramDateTime ? Iv.programDateTime = Date.parse(Iv.rawProgramDateTime) : Rv != null && Rv.programDateTime && (Iv.programDateTime = Rv.endProgramDateTime), Object(uv.isFiniteNumber)(Iv.programDateTime) || (Iv.programDateTime = null, Iv.rawProgramDateTime = null);
            }
            function k1(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var Q1 = window, Y1 = Q1.performance, r$ = /* @__PURE__ */ function(Iv) {
              k1(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.MANIFEST_LOADING, cv.default.LEVEL_LOADING, cv.default.AUDIO_TRACK_LOADING, cv.default.SUBTITLE_TRACK_LOADING) || this, $v.loaders = {}, $v;
              }
              Rv.canHaveQualityLevels = function(bv) {
                return bv !== Sv.AUDIO_TRACK && bv !== Sv.SUBTITLE_TRACK;
              }, Rv.mapContextToLevelType = function(bv) {
                var $v = bv.type;
                switch ($v) {
                  case Sv.AUDIO_TRACK:
                    return _v.AUDIO;
                  case Sv.SUBTITLE_TRACK:
                    return _v.SUBTITLE;
                  default:
                    return _v.MAIN;
                }
              }, Rv.getResponseUrl = function(bv, $v) {
                var Tv = bv.url;
                return (Tv === void 0 || Tv.indexOf("data:") === 0) && (Tv = $v.url), Tv;
              };
              var kv = Rv.prototype;
              return kv.createInternalLoader = function(bv) {
                var $v = this.hls.config, Tv = $v.pLoader, Pv = $v.loader, Fv = Tv || Pv, Uv = new Fv($v);
                return bv.loader = Uv, this.loaders[bv.type] = Uv, Uv;
              }, kv.getInternalLoader = function(bv) {
                return this.loaders[bv.type];
              }, kv.resetInternalLoader = function(bv) {
                this.loaders[bv] && delete this.loaders[bv];
              }, kv.destroyInternalLoaders = function() {
                for (var bv in this.loaders) {
                  var $v = this.loaders[bv];
                  $v && $v.destroy(), this.resetInternalLoader(bv);
                }
              }, kv.destroy = function() {
                this.destroyInternalLoaders(), Iv.prototype.destroy.call(this);
              }, kv.onManifestLoading = function(bv) {
                this.load({
                  url: bv.url,
                  type: Sv.MANIFEST,
                  level: 0,
                  id: null,
                  responseType: "text"
                });
              }, kv.onLevelLoading = function(bv) {
                this.load({
                  url: bv.url,
                  type: Sv.LEVEL,
                  level: bv.level,
                  id: bv.id,
                  responseType: "text"
                });
              }, kv.onAudioTrackLoading = function(bv) {
                this.load({
                  url: bv.url,
                  type: Sv.AUDIO_TRACK,
                  level: null,
                  id: bv.id,
                  responseType: "text"
                });
              }, kv.onSubtitleTrackLoading = function(bv) {
                this.load({
                  url: bv.url,
                  type: Sv.SUBTITLE_TRACK,
                  level: null,
                  id: bv.id,
                  responseType: "text"
                });
              }, kv.load = function(bv) {
                var $v = this.hls.config;
                dv.logger.debug("Loading playlist of type " + bv.type + ", level: " + bv.level + ", id: " + bv.id);
                var Tv = this.getInternalLoader(bv);
                if (Tv) {
                  var Pv = Tv.context;
                  if (Pv && Pv.url === bv.url)
                    return dv.logger.trace("playlist request ongoing"), !1;
                  dv.logger.warn("aborting previous loader for type: " + bv.type), Tv.abort();
                }
                var Fv, Uv, qv, _1;
                switch (bv.type) {
                  case Sv.MANIFEST:
                    Fv = $v.manifestLoadingMaxRetry, Uv = $v.manifestLoadingTimeOut, qv = $v.manifestLoadingRetryDelay, _1 = $v.manifestLoadingMaxRetryTimeout;
                    break;
                  case Sv.LEVEL:
                    Fv = 0, _1 = 0, qv = 0, Uv = $v.levelLoadingTimeOut;
                    break;
                  default:
                    Fv = $v.levelLoadingMaxRetry, Uv = $v.levelLoadingTimeOut, qv = $v.levelLoadingRetryDelay, _1 = $v.levelLoadingMaxRetryTimeout;
                    break;
                }
                Tv = this.createInternalLoader(bv);
                var d1 = {
                  timeout: Uv,
                  maxRetry: Fv,
                  retryDelay: qv,
                  maxRetryDelay: _1
                }, W1 = {
                  onSuccess: this.loadsuccess.bind(this),
                  onError: this.loaderror.bind(this),
                  onTimeout: this.loadtimeout.bind(this)
                };
                return dv.logger.debug("Calling internal loader delegate for URL: " + bv.url), Tv.load(bv, d1, W1), !0;
              }, kv.loadsuccess = function(bv, $v, Tv, Pv) {
                if (Pv === void 0 && (Pv = null), Tv.isSidxRequest) {
                  this._handleSidxRequest(bv, Tv), this._handlePlaylistLoaded(bv, $v, Tv, Pv);
                  return;
                }
                if (this.resetInternalLoader(Tv.type), typeof bv.data != "string")
                  throw new Error('expected responseType of "text" for PlaylistLoader');
                var Fv = bv.data;
                if ($v.tload = Y1.now(), Fv.indexOf("#EXTM3U") !== 0) {
                  this._handleManifestParsingError(bv, Tv, "no EXTM3U delimiter", Pv);
                  return;
                }
                Fv.indexOf("#EXTINF:") > 0 || Fv.indexOf("#EXT-X-TARGETDURATION:") > 0 ? this._handleTrackOrLevelPlaylist(bv, $v, Tv, Pv) : this._handleMasterPlaylist(bv, $v, Tv, Pv);
              }, kv.loaderror = function(bv, $v, Tv) {
                Tv === void 0 && (Tv = null), this._handleNetworkError($v, Tv, !1, bv);
              }, kv.loadtimeout = function(bv, $v, Tv) {
                Tv === void 0 && (Tv = null), this._handleNetworkError($v, Tv, !0);
              }, kv._handleMasterPlaylist = function(bv, $v, Tv, Pv) {
                var Fv = this.hls, Uv = bv.data, qv = Rv.getResponseUrl(bv, Tv), _1 = M1.parseMasterPlaylist(Uv, qv), d1 = _1.levels, W1 = _1.sessionData;
                if (!d1.length) {
                  this._handleManifestParsingError(bv, Tv, "no level found in manifest", Pv);
                  return;
                }
                var X1 = d1.map(function(k$) {
                  return {
                    id: k$.attrs.AUDIO,
                    codec: k$.audioCodec
                  };
                }), i$ = M1.parseMasterPlaylistMedia(Uv, qv, "AUDIO", X1), o$ = M1.parseMasterPlaylistMedia(Uv, qv, "SUBTITLES"), b$ = M1.parseMasterPlaylistMedia(Uv, qv, "CLOSED-CAPTIONS");
                if (i$.length) {
                  var m$ = !1;
                  i$.forEach(function(k$) {
                    k$.url || (m$ = !0);
                  }), m$ === !1 && d1[0].audioCodec && !d1[0].attrs.AUDIO && (dv.logger.log("audio codec signaled in quality level, but no embedded audio track signaled, create one"), i$.unshift({
                    type: "main",
                    name: "main",
                    default: !1,
                    autoselect: !1,
                    forced: !1,
                    id: -1,
                    attrs: {},
                    url: ""
                  }));
                }
                Fv.trigger(cv.default.MANIFEST_LOADED, {
                  levels: d1,
                  audioTracks: i$,
                  subtitles: o$,
                  captions: b$,
                  url: qv,
                  stats: $v,
                  networkDetails: Pv,
                  sessionData: W1
                });
              }, kv._handleTrackOrLevelPlaylist = function(bv, $v, Tv, Pv) {
                var Fv = this.hls, Uv = Tv.id, qv = Tv.level, _1 = Tv.type, d1 = Rv.getResponseUrl(bv, Tv), W1 = Object(uv.isFiniteNumber)(Uv) ? Uv : 0, X1 = Object(uv.isFiniteNumber)(qv) ? qv : W1, i$ = Rv.mapContextToLevelType(Tv), o$ = M1.parseLevelPlaylist(bv.data, d1, X1, i$, W1);
                if (o$.tload = $v.tload, !o$.fragments.length) {
                  Fv.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.NETWORK_ERROR,
                    details: lv.ErrorDetails.LEVEL_EMPTY_ERROR,
                    fatal: !1,
                    url: d1,
                    reason: "no fragments found in level",
                    level: typeof Tv.level == "number" ? Tv.level : void 0
                  });
                  return;
                }
                if (_1 === Sv.MANIFEST) {
                  var b$ = {
                    url: d1,
                    details: o$
                  };
                  Fv.trigger(cv.default.MANIFEST_LOADED, {
                    levels: [b$],
                    audioTracks: [],
                    url: d1,
                    stats: $v,
                    networkDetails: Pv,
                    sessionData: null
                  });
                }
                if ($v.tparsed = Y1.now(), o$.needSidxRanges) {
                  var m$ = o$.initSegment.url;
                  this.load({
                    url: m$,
                    isSidxRequest: !0,
                    type: _1,
                    level: qv,
                    levelDetails: o$,
                    id: Uv,
                    rangeStart: 0,
                    rangeEnd: 2048,
                    responseType: "arraybuffer"
                  });
                  return;
                }
                Tv.levelDetails = o$, this._handlePlaylistLoaded(bv, $v, Tv, Pv);
              }, kv._handleSidxRequest = function(bv, $v) {
                if (typeof bv.data == "string")
                  throw new Error("sidx request must be made with responseType of array buffer");
                var Tv = Ev.default.parseSegmentIndex(new Uint8Array(bv.data));
                if (Tv) {
                  var Pv = Tv.references, Fv = $v.levelDetails;
                  Pv.forEach(function(Uv, qv) {
                    var _1 = Uv.info;
                    if (Fv) {
                      var d1 = Fv.fragments[qv];
                      d1.byteRange.length === 0 && d1.setByteRange(String(1 + _1.end - _1.start) + "@" + String(_1.start));
                    }
                  }), Fv && Fv.initSegment.setByteRange(String(Tv.moovEndOffset) + "@0");
                }
              }, kv._handleManifestParsingError = function(bv, $v, Tv, Pv) {
                this.hls.trigger(cv.default.ERROR, {
                  type: lv.ErrorTypes.NETWORK_ERROR,
                  details: lv.ErrorDetails.MANIFEST_PARSING_ERROR,
                  fatal: !0,
                  url: bv.url,
                  reason: Tv,
                  networkDetails: Pv
                });
              }, kv._handleNetworkError = function(bv, $v, Tv, Pv) {
                Tv === void 0 && (Tv = !1), Pv === void 0 && (Pv = null), dv.logger.info("A network error occured while loading a " + bv.type + "-type playlist");
                var Fv, Uv, qv = this.getInternalLoader(bv);
                switch (bv.type) {
                  case Sv.MANIFEST:
                    Fv = Tv ? lv.ErrorDetails.MANIFEST_LOAD_TIMEOUT : lv.ErrorDetails.MANIFEST_LOAD_ERROR, Uv = !0;
                    break;
                  case Sv.LEVEL:
                    Fv = Tv ? lv.ErrorDetails.LEVEL_LOAD_TIMEOUT : lv.ErrorDetails.LEVEL_LOAD_ERROR, Uv = !1;
                    break;
                  case Sv.AUDIO_TRACK:
                    Fv = Tv ? lv.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT : lv.ErrorDetails.AUDIO_TRACK_LOAD_ERROR, Uv = !1;
                    break;
                  default:
                    Uv = !1;
                }
                qv && (qv.abort(), this.resetInternalLoader(bv.type));
                var _1 = {
                  type: lv.ErrorTypes.NETWORK_ERROR,
                  details: Fv,
                  fatal: Uv,
                  url: bv.url,
                  loader: qv,
                  context: bv,
                  networkDetails: $v
                };
                Pv && (_1.response = Pv), this.hls.trigger(cv.default.ERROR, _1);
              }, kv._handlePlaylistLoaded = function(bv, $v, Tv, Pv) {
                var Fv = Tv.type, Uv = Tv.level, qv = Tv.id, _1 = Tv.levelDetails;
                if (!_1 || !_1.targetduration) {
                  this._handleManifestParsingError(bv, Tv, "invalid target duration", Pv);
                  return;
                }
                var d1 = Rv.canHaveQualityLevels(Tv.type);
                if (d1)
                  this.hls.trigger(cv.default.LEVEL_LOADED, {
                    details: _1,
                    level: Uv || 0,
                    id: qv || 0,
                    stats: $v,
                    networkDetails: Pv
                  });
                else
                  switch (Fv) {
                    case Sv.AUDIO_TRACK:
                      this.hls.trigger(cv.default.AUDIO_TRACK_LOADED, {
                        details: _1,
                        id: qv,
                        stats: $v,
                        networkDetails: Pv
                      });
                      break;
                    case Sv.SUBTITLE_TRACK:
                      this.hls.trigger(cv.default.SUBTITLE_TRACK_LOADED, {
                        details: _1,
                        id: qv,
                        stats: $v,
                        networkDetails: Pv
                      });
                      break;
                  }
              }, Rv;
            }(yv), a$ = r$;
            function S$(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var d$ = /* @__PURE__ */ function(Iv) {
              S$(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.FRAG_LOADING) || this, $v.loaders = {}, $v;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                var bv = this.loaders;
                for (var $v in bv) {
                  var Tv = bv[$v];
                  Tv && Tv.destroy();
                }
                this.loaders = {}, Iv.prototype.destroy.call(this);
              }, kv.onFragLoading = function(bv) {
                var $v = bv.frag, Tv = $v.type, Pv = this.loaders, Fv = this.hls.config, Uv = Fv.fLoader, qv = Fv.loader;
                $v.loaded = 0;
                var _1 = Pv[Tv];
                _1 && (dv.logger.warn("abort previous fragment loader for type: " + Tv), _1.abort()), _1 = Pv[Tv] = $v.loader = Fv.fLoader ? new Uv(Fv) : new qv(Fv);
                var d1, W1, X1;
                d1 = {
                  url: $v.url,
                  frag: $v,
                  responseType: "arraybuffer",
                  progressData: !1
                };
                var i$ = $v.byteRangeStartOffset, o$ = $v.byteRangeEndOffset;
                Object(uv.isFiniteNumber)(i$) && Object(uv.isFiniteNumber)(o$) && (d1.rangeStart = i$, d1.rangeEnd = o$), W1 = {
                  timeout: Fv.fragLoadingTimeOut,
                  maxRetry: 0,
                  retryDelay: 0,
                  maxRetryDelay: Fv.fragLoadingMaxRetryTimeout
                }, X1 = {
                  onSuccess: this.loadsuccess.bind(this),
                  onError: this.loaderror.bind(this),
                  onTimeout: this.loadtimeout.bind(this),
                  onProgress: this.loadprogress.bind(this)
                }, _1.load(d1, W1, X1);
              }, kv.loadsuccess = function(bv, $v, Tv, Pv) {
                Pv === void 0 && (Pv = null);
                var Fv = bv.data, Uv = Tv.frag;
                Uv.loader = void 0, this.loaders[Uv.type] = void 0, this.hls.trigger(cv.default.FRAG_LOADED, {
                  payload: Fv,
                  frag: Uv,
                  stats: $v,
                  networkDetails: Pv
                });
              }, kv.loaderror = function(bv, $v, Tv) {
                Tv === void 0 && (Tv = null);
                var Pv = $v.frag, Fv = Pv.loader;
                Fv && Fv.abort(), this.loaders[Pv.type] = void 0, this.hls.trigger(cv.default.ERROR, {
                  type: lv.ErrorTypes.NETWORK_ERROR,
                  details: lv.ErrorDetails.FRAG_LOAD_ERROR,
                  fatal: !1,
                  frag: $v.frag,
                  response: bv,
                  networkDetails: Tv
                });
              }, kv.loadtimeout = function(bv, $v, Tv) {
                Tv === void 0 && (Tv = null);
                var Pv = $v.frag, Fv = Pv.loader;
                Fv && Fv.abort(), this.loaders[Pv.type] = void 0, this.hls.trigger(cv.default.ERROR, {
                  type: lv.ErrorTypes.NETWORK_ERROR,
                  details: lv.ErrorDetails.FRAG_LOAD_TIMEOUT,
                  fatal: !1,
                  frag: $v.frag,
                  networkDetails: Tv
                });
              }, kv.loadprogress = function(bv, $v, Tv, Pv) {
                Pv === void 0 && (Pv = null);
                var Fv = $v.frag;
                Fv.loaded = bv.loaded, this.hls.trigger(cv.default.FRAG_LOAD_PROGRESS, {
                  frag: Fv,
                  stats: bv,
                  networkDetails: Pv
                });
              }, Rv;
            }(yv), x$ = d$;
            function g$(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var _$ = /* @__PURE__ */ function(Iv) {
              g$(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.KEY_LOADING) || this, $v.loaders = {}, $v.decryptkey = null, $v.decrypturl = null, $v;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                for (var bv in this.loaders) {
                  var $v = this.loaders[bv];
                  $v && $v.destroy();
                }
                this.loaders = {}, Iv.prototype.destroy.call(this);
              }, kv.onKeyLoading = function(bv) {
                var $v = bv.frag, Tv = $v.type, Pv = this.loaders[Tv];
                if (!$v.decryptdata) {
                  dv.logger.warn("Missing decryption data on fragment in onKeyLoading");
                  return;
                }
                var Fv = $v.decryptdata.uri;
                if (Fv !== this.decrypturl || this.decryptkey === null) {
                  var Uv = this.hls.config;
                  if (Pv && (dv.logger.warn("abort previous key loader for type:" + Tv), Pv.abort()), !Fv) {
                    dv.logger.warn("key uri is falsy");
                    return;
                  }
                  $v.loader = this.loaders[Tv] = new Uv.loader(Uv), this.decrypturl = Fv, this.decryptkey = null;
                  var qv = {
                    url: Fv,
                    frag: $v,
                    responseType: "arraybuffer"
                  }, _1 = {
                    timeout: Uv.fragLoadingTimeOut,
                    maxRetry: 0,
                    retryDelay: Uv.fragLoadingRetryDelay,
                    maxRetryDelay: Uv.fragLoadingMaxRetryTimeout
                  }, d1 = {
                    onSuccess: this.loadsuccess.bind(this),
                    onError: this.loaderror.bind(this),
                    onTimeout: this.loadtimeout.bind(this)
                  };
                  $v.loader.load(qv, _1, d1);
                } else
                  this.decryptkey && ($v.decryptdata.key = this.decryptkey, this.hls.trigger(cv.default.KEY_LOADED, {
                    frag: $v
                  }));
              }, kv.loadsuccess = function(bv, $v, Tv) {
                var Pv = Tv.frag;
                if (!Pv.decryptdata) {
                  dv.logger.error("after key load, decryptdata unset");
                  return;
                }
                this.decryptkey = Pv.decryptdata.key = new Uint8Array(bv.data), Pv.loader = void 0, delete this.loaders[Pv.type], this.hls.trigger(cv.default.KEY_LOADED, {
                  frag: Pv
                });
              }, kv.loaderror = function(bv, $v) {
                var Tv = $v.frag, Pv = Tv.loader;
                Pv && Pv.abort(), delete this.loaders[Tv.type], this.hls.trigger(cv.default.ERROR, {
                  type: lv.ErrorTypes.NETWORK_ERROR,
                  details: lv.ErrorDetails.KEY_LOAD_ERROR,
                  fatal: !1,
                  frag: Tv,
                  response: bv
                });
              }, kv.loadtimeout = function(bv, $v) {
                var Tv = $v.frag, Pv = Tv.loader;
                Pv && Pv.abort(), delete this.loaders[Tv.type], this.hls.trigger(cv.default.ERROR, {
                  type: lv.ErrorTypes.NETWORK_ERROR,
                  details: lv.ErrorDetails.KEY_LOAD_TIMEOUT,
                  fatal: !1,
                  frag: Tv
                });
              }, Rv;
            }(yv), O$ = _$;
            function E$(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var O1 = {
              NOT_LOADED: "NOT_LOADED",
              APPENDING: "APPENDING",
              PARTIAL: "PARTIAL",
              OK: "OK"
            }, Z1 = /* @__PURE__ */ function(Iv) {
              E$(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.BUFFER_APPENDED, cv.default.FRAG_BUFFERED, cv.default.FRAG_LOADED) || this, $v.bufferPadding = 0.2, $v.fragments = /* @__PURE__ */ Object.create(null), $v.timeRanges = /* @__PURE__ */ Object.create(null), $v.config = bv.config, $v;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                this.fragments = /* @__PURE__ */ Object.create(null), this.timeRanges = /* @__PURE__ */ Object.create(null), this.config = null, yv.prototype.destroy.call(this), Iv.prototype.destroy.call(this);
              }, kv.getBufferedFrag = function(bv, $v) {
                var Tv = this.fragments, Pv = Object.keys(Tv).filter(function(Uv) {
                  var qv = Tv[Uv];
                  if (qv.body.type !== $v || !qv.buffered)
                    return !1;
                  var _1 = qv.body;
                  return _1.startPTS <= bv && bv <= _1.endPTS;
                });
                if (Pv.length === 0)
                  return null;
                var Fv = Pv.pop();
                return Tv[Fv].body;
              }, kv.detectEvictedFragments = function(bv, $v) {
                var Tv = this;
                Object.keys(this.fragments).forEach(function(Pv) {
                  var Fv = Tv.fragments[Pv];
                  if (!(!Fv || !Fv.buffered)) {
                    var Uv = Fv.range[bv];
                    if (Uv)
                      for (var qv = Uv.time, _1 = 0; _1 < qv.length; _1++) {
                        var d1 = qv[_1];
                        if (!Tv.isTimeBuffered(d1.startPTS, d1.endPTS, $v)) {
                          Tv.removeFragment(Fv.body);
                          break;
                        }
                      }
                  }
                });
              }, kv.detectPartialFragments = function(bv) {
                var $v = this, Tv = this.getFragmentKey(bv), Pv = this.fragments[Tv];
                Pv && (Pv.buffered = !0, Object.keys(this.timeRanges).forEach(function(Fv) {
                  if (bv.hasElementaryStream(Fv)) {
                    var Uv = $v.timeRanges[Fv];
                    Pv.range[Fv] = $v.getBufferedTimes(bv.startPTS, bv.endPTS, Uv);
                  }
                }));
              }, kv.getBufferedTimes = function(bv, $v, Tv) {
                for (var Pv = [], Fv, Uv, qv = !1, _1 = 0; _1 < Tv.length; _1++)
                  if (Fv = Tv.start(_1) - this.bufferPadding, Uv = Tv.end(_1) + this.bufferPadding, bv >= Fv && $v <= Uv) {
                    Pv.push({
                      startPTS: Math.max(bv, Tv.start(_1)),
                      endPTS: Math.min($v, Tv.end(_1))
                    });
                    break;
                  } else if (bv < Uv && $v > Fv)
                    Pv.push({
                      startPTS: Math.max(bv, Tv.start(_1)),
                      endPTS: Math.min($v, Tv.end(_1))
                    }), qv = !0;
                  else if ($v <= Fv)
                    break;
                return {
                  time: Pv,
                  partial: qv
                };
              }, kv.getFragmentKey = function(bv) {
                return bv.type + "_" + bv.level + "_" + bv.urlId + "_" + bv.sn;
              }, kv.getPartialFragment = function(bv) {
                var $v = this, Tv, Pv, Fv, Uv = null, qv = 0;
                return Object.keys(this.fragments).forEach(function(_1) {
                  var d1 = $v.fragments[_1];
                  $v.isPartial(d1) && (Pv = d1.body.startPTS - $v.bufferPadding, Fv = d1.body.endPTS + $v.bufferPadding, bv >= Pv && bv <= Fv && (Tv = Math.min(bv - Pv, Fv - bv), qv <= Tv && (Uv = d1.body, qv = Tv)));
                }), Uv;
              }, kv.getState = function(bv) {
                var $v = this.getFragmentKey(bv), Tv = this.fragments[$v], Pv = O1.NOT_LOADED;
                return Tv !== void 0 && (Tv.buffered ? this.isPartial(Tv) === !0 ? Pv = O1.PARTIAL : Pv = O1.OK : Pv = O1.APPENDING), Pv;
              }, kv.isPartial = function(bv) {
                return bv.buffered === !0 && (bv.range.video !== void 0 && bv.range.video.partial === !0 || bv.range.audio !== void 0 && bv.range.audio.partial === !0);
              }, kv.isTimeBuffered = function(bv, $v, Tv) {
                for (var Pv, Fv, Uv = 0; Uv < Tv.length; Uv++) {
                  if (Pv = Tv.start(Uv) - this.bufferPadding, Fv = Tv.end(Uv) + this.bufferPadding, bv >= Pv && $v <= Fv)
                    return !0;
                  if ($v <= Pv)
                    return !1;
                }
                return !1;
              }, kv.onFragLoaded = function(bv) {
                var $v = bv.frag;
                !Object(uv.isFiniteNumber)($v.sn) || $v.bitrateTest || (this.fragments[this.getFragmentKey($v)] = {
                  body: $v,
                  range: /* @__PURE__ */ Object.create(null),
                  buffered: !1
                });
              }, kv.onBufferAppended = function(bv) {
                var $v = this;
                this.timeRanges = bv.timeRanges, Object.keys(this.timeRanges).forEach(function(Tv) {
                  var Pv = $v.timeRanges[Tv];
                  $v.detectEvictedFragments(Tv, Pv);
                });
              }, kv.onFragBuffered = function(bv) {
                this.detectPartialFragments(bv.frag);
              }, kv.hasFragment = function(bv) {
                var $v = this.getFragmentKey(bv);
                return this.fragments[$v] !== void 0;
              }, kv.removeFragment = function(bv) {
                var $v = this.getFragmentKey(bv);
                delete this.fragments[$v];
              }, kv.removeAllFragments = function() {
                this.fragments = /* @__PURE__ */ Object.create(null);
              }, Rv;
            }(yv), Hv = {
              /**
               * Searches for an item in an array which matches a certain condition.
               * This requires the condition to only match one item in the array,
               * and for the array to be ordered.
               *
               * @param {Array<T>} list The array to search.
               * @param {BinarySearchComparison<T>} comparisonFn
               *      Called and provided a candidate item as the first argument.
               *      Should return:
               *          > -1 if the item should be located at a lower index than the provided item.
               *          > 1 if the item should be located at a higher index than the provided item.
               *          > 0 if the item is the item you're looking for.
               *
               * @return {T | null} The object if it is found or null otherwise.
               */
              search: function(Iv, Rv) {
                for (var kv = 0, bv = Iv.length - 1, $v = null, Tv = null; kv <= bv; ) {
                  $v = (kv + bv) / 2 | 0, Tv = Iv[$v];
                  var Pv = Rv(Tv);
                  if (Pv > 0)
                    kv = $v + 1;
                  else if (Pv < 0)
                    bv = $v - 1;
                  else
                    return Tv;
                }
                return null;
              }
            }, Jv = Hv, Mv = /* @__PURE__ */ function() {
              function Iv() {
              }
              return Iv.isBuffered = function(Rv, kv) {
                try {
                  if (Rv) {
                    for (var bv = Rv.buffered, $v = 0; $v < bv.length; $v++)
                      if (kv >= bv.start($v) && kv <= bv.end($v))
                        return !0;
                  }
                } catch {
                }
                return !1;
              }, Iv.bufferInfo = function(Rv, kv, bv) {
                try {
                  if (Rv) {
                    var $v = Rv.buffered, Tv = [], Pv;
                    for (Pv = 0; Pv < $v.length; Pv++)
                      Tv.push({
                        start: $v.start(Pv),
                        end: $v.end(Pv)
                      });
                    return this.bufferedInfo(Tv, kv, bv);
                  }
                } catch {
                }
                return {
                  len: 0,
                  start: kv,
                  end: kv,
                  nextStart: void 0
                };
              }, Iv.bufferedInfo = function(Rv, kv, bv) {
                Rv.sort(function(o$, b$) {
                  var m$ = o$.start - b$.start;
                  return m$ || b$.end - o$.end;
                });
                var $v = [];
                if (bv)
                  for (var Tv = 0; Tv < Rv.length; Tv++) {
                    var Pv = $v.length;
                    if (Pv) {
                      var Fv = $v[Pv - 1].end;
                      Rv[Tv].start - Fv < bv ? Rv[Tv].end > Fv && ($v[Pv - 1].end = Rv[Tv].end) : $v.push(Rv[Tv]);
                    } else
                      $v.push(Rv[Tv]);
                  }
                else
                  $v = Rv;
                for (var Uv = 0, qv, _1 = kv, d1 = kv, W1 = 0; W1 < $v.length; W1++) {
                  var X1 = $v[W1].start, i$ = $v[W1].end;
                  if (kv + bv >= X1 && kv < i$)
                    _1 = X1, d1 = i$, Uv = d1 - kv;
                  else if (kv + bv < X1) {
                    qv = X1;
                    break;
                  }
                }
                return {
                  len: Uv,
                  start: _1,
                  end: d1,
                  nextStart: qv
                };
              }, Iv;
            }(), zv = ov("./node_modules/eventemitter3/index.js"), Wv = ov("./node_modules/webworkify-webpack/index.js"), Kv = ov("./src/demux/demuxer-inline.js");
            function c1() {
              return window.MediaSource || window.WebKitMediaSource;
            }
            var $1 = ov("./src/utils/get-self-scope.js");
            function N1(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var e$ = /* @__PURE__ */ function(Iv) {
              N1(Rv, Iv);
              function Rv() {
                return Iv.apply(this, arguments) || this;
              }
              var kv = Rv.prototype;
              return kv.trigger = function(bv) {
                for (var $v = arguments.length, Tv = new Array($v > 1 ? $v - 1 : 0), Pv = 1; Pv < $v; Pv++)
                  Tv[Pv - 1] = arguments[Pv];
                this.emit.apply(this, [bv, bv].concat(Tv));
              }, Rv;
            }(zv.EventEmitter), R1 = Object($1.getSelfScope)(), Zv = c1() || {
              isTypeSupported: function() {
                return !1;
              }
            }, C1 = /* @__PURE__ */ function() {
              function Iv(kv, bv) {
                var $v = this;
                this.hls = kv, this.id = bv;
                var Tv = this.observer = new e$(), Pv = kv.config, Fv = function(d1, W1) {
                  W1 = W1 || {}, W1.frag = $v.frag, W1.id = $v.id, kv.trigger(d1, W1);
                };
                Tv.on(cv.default.FRAG_DECRYPTED, Fv), Tv.on(cv.default.FRAG_PARSING_INIT_SEGMENT, Fv), Tv.on(cv.default.FRAG_PARSING_DATA, Fv), Tv.on(cv.default.FRAG_PARSED, Fv), Tv.on(cv.default.ERROR, Fv), Tv.on(cv.default.FRAG_PARSING_METADATA, Fv), Tv.on(cv.default.FRAG_PARSING_USERDATA, Fv), Tv.on(cv.default.INIT_PTS_FOUND, Fv);
                var Uv = {
                  mp4: Zv.isTypeSupported("video/mp4"),
                  mpeg: Zv.isTypeSupported("audio/mpeg"),
                  mp3: Zv.isTypeSupported('audio/mp4; codecs="mp3"')
                }, qv = navigator.vendor;
                if (Pv.enableWorker && typeof Worker < "u") {
                  dv.logger.log("demuxing in webworker");
                  var _1;
                  try {
                    _1 = this.w = Wv(
                      /*require.resolve*/
                      /*! ../demux/demuxer-worker.js */
                      "./src/demux/demuxer-worker.js"
                    ), this.onwmsg = this.onWorkerMessage.bind(this), _1.addEventListener("message", this.onwmsg), _1.onerror = function(d1) {
                      kv.trigger(cv.default.ERROR, {
                        type: lv.ErrorTypes.OTHER_ERROR,
                        details: lv.ErrorDetails.INTERNAL_EXCEPTION,
                        fatal: !0,
                        event: "demuxerWorker",
                        err: {
                          message: d1.message + " (" + d1.filename + ":" + d1.lineno + ")"
                        }
                      });
                    }, _1.postMessage({
                      cmd: "init",
                      typeSupported: Uv,
                      vendor: qv,
                      id: bv,
                      config: JSON.stringify(Pv)
                    });
                  } catch (d1) {
                    dv.logger.warn("Error in worker:", d1), dv.logger.error("Error while initializing DemuxerWorker, fallback on DemuxerInline"), _1 && R1.URL.revokeObjectURL(_1.objectURL), this.demuxer = new Kv.default(Tv, Uv, Pv, qv), this.w = void 0;
                  }
                } else
                  this.demuxer = new Kv.default(Tv, Uv, Pv, qv);
              }
              var Rv = Iv.prototype;
              return Rv.destroy = function() {
                var kv = this.w;
                if (kv)
                  kv.removeEventListener("message", this.onwmsg), kv.terminate(), this.w = null;
                else {
                  var bv = this.demuxer;
                  bv && (bv.destroy(), this.demuxer = null);
                }
                var $v = this.observer;
                $v && ($v.removeAllListeners(), this.observer = null);
              }, Rv.push = function(kv, bv, $v, Tv, Pv, Fv, Uv, qv) {
                var _1 = this.w, d1 = Object(uv.isFiniteNumber)(Pv.startPTS) ? Pv.startPTS : Pv.start, W1 = Pv.decryptdata, X1 = this.frag, i$ = !(X1 && Pv.cc === X1.cc), o$ = !(X1 && Pv.level === X1.level), b$ = X1 && Pv.sn === X1.sn + 1, m$ = !o$ && b$;
                if (i$ && dv.logger.log(this.id + ":discontinuity detected"), o$ && dv.logger.log(this.id + ":switch detected"), this.frag = Pv, _1)
                  _1.postMessage({
                    cmd: "demux",
                    data: kv,
                    decryptdata: W1,
                    initSegment: bv,
                    audioCodec: $v,
                    videoCodec: Tv,
                    timeOffset: d1,
                    discontinuity: i$,
                    trackSwitch: o$,
                    contiguous: m$,
                    duration: Fv,
                    accurateTimeOffset: Uv,
                    defaultInitPTS: qv
                  }, kv instanceof ArrayBuffer ? [kv] : []);
                else {
                  var k$ = this.demuxer;
                  k$ && k$.push(kv, W1, bv, $v, Tv, d1, i$, o$, m$, Fv, Uv, qv);
                }
              }, Rv.onWorkerMessage = function(kv) {
                var bv = kv.data, $v = this.hls;
                switch (bv.event) {
                  case "init":
                    R1.URL.revokeObjectURL(this.w.objectURL);
                    break;
                  case cv.default.FRAG_PARSING_DATA:
                    bv.data.data1 = new Uint8Array(bv.data1), bv.data2 && (bv.data.data2 = new Uint8Array(bv.data2));
                  default:
                    bv.data = bv.data || {}, bv.data.frag = this.frag, bv.data.id = this.id, $v.trigger(bv.event, bv.data);
                    break;
                }
              }, Iv;
            }(), q1 = C1;
            function t$(Iv, Rv, kv) {
              switch (Rv) {
                case "audio":
                  Iv.audioGroupIds || (Iv.audioGroupIds = []), Iv.audioGroupIds.push(kv);
                  break;
                case "text":
                  Iv.textGroupIds || (Iv.textGroupIds = []), Iv.textGroupIds.push(kv);
                  break;
              }
            }
            function _b(Iv, Rv, kv) {
              var bv = Iv[Rv], $v = Iv[kv], Tv = $v.startPTS;
              if (Object(uv.isFiniteNumber)(Tv))
                kv > Rv ? (bv.duration = Tv - bv.start, bv.duration < 0 && dv.logger.warn("negative duration computed for frag " + bv.sn + ",level " + bv.level + ", there should be some duration drift between playlist and fragment!")) : ($v.duration = bv.start - Tv, $v.duration < 0 && dv.logger.warn("negative duration computed for frag " + $v.sn + ",level " + $v.level + ", there should be some duration drift between playlist and fragment!"));
              else if (kv > Rv) {
                var Pv = bv.cc === $v.cc;
                $v.start = bv.start + (Pv && bv.minEndPTS ? bv.minEndPTS - bv.start : bv.duration);
              } else
                $v.start = Math.max(bv.start - $v.duration, 0);
            }
            function c$(Iv, Rv, kv, bv, $v, Tv) {
              var Pv = kv, Fv = bv;
              if (Object(uv.isFiniteNumber)(Rv.startPTS)) {
                var Uv = Math.abs(Rv.startPTS - kv);
                Object(uv.isFiniteNumber)(Rv.deltaPTS) ? Rv.deltaPTS = Math.max(Uv, Rv.deltaPTS) : Rv.deltaPTS = Uv, Pv = Math.max(kv, Rv.startPTS), kv = Math.min(kv, Rv.startPTS), Fv = Math.min(bv, Rv.endPTS), bv = Math.max(bv, Rv.endPTS), $v = Math.min($v, Rv.startDTS), Tv = Math.max(Tv, Rv.endDTS);
              }
              var qv = kv - Rv.start;
              Rv.start = Rv.startPTS = kv, Rv.maxStartPTS = Pv, Rv.endPTS = bv, Rv.minEndPTS = Fv, Rv.startDTS = $v, Rv.endDTS = Tv, Rv.duration = bv - kv;
              var _1 = Rv.sn;
              if (!Iv || _1 < Iv.startSN || _1 > Iv.endSN)
                return 0;
              var d1, W1, X1;
              for (d1 = _1 - Iv.startSN, W1 = Iv.fragments, W1[d1] = Rv, X1 = d1; X1 > 0; X1--)
                _b(W1, X1, X1 - 1);
              for (X1 = d1; X1 < W1.length - 1; X1++)
                _b(W1, X1, X1 + 1);
              return Iv.PTSKnown = !0, qv;
            }
            function l$(Iv, Rv) {
              Rv.initSegment && Iv.initSegment && (Rv.initSegment = Iv.initSegment);
              var kv = 0, bv;
              if (h$(Iv, Rv, function(Pv, Fv) {
                kv = Pv.cc - Fv.cc, Object(uv.isFiniteNumber)(Pv.startPTS) && (Fv.start = Fv.startPTS = Pv.startPTS, Fv.endPTS = Pv.endPTS, Fv.duration = Pv.duration, Fv.backtracked = Pv.backtracked, Fv.dropped = Pv.dropped, bv = Fv), Rv.PTSKnown = !0;
              }), !!Rv.PTSKnown) {
                if (kv) {
                  dv.logger.log("discontinuity sliding from playlist, take drift into account");
                  for (var $v = Rv.fragments, Tv = 0; Tv < $v.length; Tv++)
                    $v[Tv].cc += kv;
                }
                bv ? c$(Rv, bv, bv.startPTS, bv.endPTS, bv.startDTS, bv.endDTS) : y$(Iv, Rv), Rv.PTSKnown = Iv.PTSKnown;
              }
            }
            function p$(Iv, Rv, kv) {
              kv === void 0 && (kv = 0);
              var bv = -1;
              h$(Iv, Rv, function(Pv, Fv, Uv) {
                Fv.start = Pv.start, bv = Uv;
              });
              var $v = Rv.fragments;
              if (bv < 0) {
                $v.forEach(function(Pv) {
                  Pv.start += kv;
                });
                return;
              }
              for (var Tv = bv + 1; Tv < $v.length; Tv++)
                $v[Tv].start = $v[Tv - 1].start + $v[Tv - 1].duration;
            }
            function h$(Iv, Rv, kv) {
              if (!(!Iv || !Rv))
                for (var bv = Math.max(Iv.startSN, Rv.startSN) - Rv.startSN, $v = Math.min(Iv.endSN, Rv.endSN) - Rv.startSN, Tv = Rv.startSN - Iv.startSN, Pv = bv; Pv <= $v; Pv++) {
                  var Fv = Iv.fragments[Tv + Pv], Uv = Rv.fragments[Pv];
                  if (!Fv || !Uv)
                    break;
                  kv(Fv, Uv, Pv);
                }
            }
            function y$(Iv, Rv) {
              var kv = Rv.startSN - Iv.startSN, bv = Iv.fragments, $v = Rv.fragments;
              if (!(kv < 0 || kv > bv.length))
                for (var Tv = 0; Tv < $v.length; Tv++)
                  $v[Tv].start += bv[kv].start;
            }
            function V$(Iv, Rv, kv) {
              var bv = 1e3 * (Rv.averagetargetduration ? Rv.averagetargetduration : Rv.targetduration), $v = bv / 2;
              return Iv && Rv.endSN === Iv.endSN && (bv = $v), kv && (bv = Math.max($v, bv - (window.performance.now() - kv))), Math.round(bv);
            }
            var D$ = {
              toString: function(Iv) {
                for (var Rv = "", kv = Iv.length, bv = 0; bv < kv; bv++)
                  Rv += "[" + Iv.start(bv).toFixed(3) + "," + Iv.end(bv).toFixed(3) + "]";
                return Rv;
              }
            }, A$ = D$;
            function L$(Iv, Rv) {
              for (var kv = null, bv = 0; bv < Iv.length; bv += 1) {
                var $v = Iv[bv];
                if ($v && $v.cc === Rv) {
                  kv = $v;
                  break;
                }
              }
              return kv;
            }
            function U$(Iv, Rv) {
              return Jv.search(Iv, function(kv) {
                return kv.cc < Rv ? 1 : kv.cc > Rv ? -1 : 0;
              });
            }
            function jw(Iv, Rv, kv) {
              var bv = !1;
              return Rv && Rv.details && kv && (kv.endCC > kv.startCC || Iv && Iv.cc < kv.startCC) && (bv = !0), bv;
            }
            function Q$(Iv, Rv) {
              var kv = Iv.fragments, bv = Rv.fragments;
              if (!bv.length || !kv.length) {
                dv.logger.log("No fragments to align");
                return;
              }
              var $v = L$(kv, bv[0].cc);
              if (!$v || $v && !$v.startPTS) {
                dv.logger.log("No frag in previous level to align on");
                return;
              }
              return $v;
            }
            function W$(Iv, Rv) {
              Rv.fragments.forEach(function(kv) {
                if (kv) {
                  var bv = kv.start + Iv;
                  kv.start = kv.startPTS = bv, kv.endPTS = bv + kv.duration;
                }
              }), Rv.PTSKnown = !0;
            }
            function eE(Iv, Rv, kv) {
              q$(Iv, kv, Rv), !kv.PTSKnown && Rv && Hw(kv, Rv.details);
            }
            function q$(Iv, Rv, kv) {
              if (jw(Iv, kv, Rv)) {
                var bv = Q$(kv.details, Rv);
                bv && (dv.logger.log("Adjusting PTS using last level due to CC increase within current level"), W$(bv.start, Rv));
              }
            }
            function Hw(Iv, Rv) {
              if (Rv && Rv.fragments.length) {
                if (!Iv.hasProgramDateTime || !Rv.hasProgramDateTime)
                  return;
                var kv = Rv.fragments[0].programDateTime, bv = Iv.fragments[0].programDateTime, $v = (bv - kv) / 1e3 + Rv.fragments[0].start;
                Object(uv.isFiniteNumber)($v) && (dv.logger.log("adjusting PTS using programDateTime delta, sliding:" + $v.toFixed(3)), W$($v, Iv));
              }
            }
            function J$(Iv, Rv, kv) {
              if (Rv === null || !Array.isArray(Iv) || !Iv.length || !Object(uv.isFiniteNumber)(Rv))
                return null;
              var bv = Iv[0].programDateTime;
              if (Rv < (bv || 0))
                return null;
              var $v = Iv[Iv.length - 1].endProgramDateTime;
              if (Rv >= ($v || 0))
                return null;
              kv = kv || 0;
              for (var Tv = 0; Tv < Iv.length; ++Tv) {
                var Pv = Iv[Tv];
                if (V1(Rv, kv, Pv))
                  return Pv;
              }
              return null;
            }
            function Y$(Iv, Rv, kv, bv) {
              kv === void 0 && (kv = 0), bv === void 0 && (bv = 0);
              var $v = null;
              if (Iv ? $v = Rv[Iv.sn - Rv[0].sn + 1] : kv === 0 && Rv[0].start === 0 && ($v = Rv[0]), $v && ix(kv, bv, $v) === 0)
                return $v;
              var Tv = Jv.search(Rv, ix.bind(null, kv, bv));
              return Tv || $v;
            }
            function ix(Iv, Rv, kv) {
              Iv === void 0 && (Iv = 0), Rv === void 0 && (Rv = 0);
              var bv = Math.min(Rv, kv.duration + (kv.deltaPTS ? kv.deltaPTS : 0));
              return kv.start + kv.duration - bv <= Iv ? 1 : kv.start - bv > Iv && kv.start ? -1 : 0;
            }
            function V1(Iv, Rv, kv) {
              var bv = Math.min(Rv, kv.duration + (kv.deltaPTS ? kv.deltaPTS : 0)) * 1e3, $v = kv.endProgramDateTime || 0;
              return $v - bv > Iv;
            }
            var z1 = 250, J1 = 2, n$ = 0.1, u$ = 0.05, v$ = /* @__PURE__ */ function() {
              function Iv(kv, bv, $v, Tv) {
                this.config = kv, this.media = bv, this.fragmentTracker = $v, this.hls = Tv, this.nudgeRetry = 0, this.stallReported = !1, this.stalled = null, this.moved = !1, this.seeking = !1;
              }
              var Rv = Iv.prototype;
              return Rv.poll = function(kv) {
                var bv = this.config, $v = this.media, Tv = this.stalled, Pv = $v.currentTime, Fv = $v.seeking, Uv = this.seeking && !Fv, qv = !this.seeking && Fv;
                if (this.seeking = Fv, Pv !== kv) {
                  if (this.moved = !0, Tv !== null) {
                    if (this.stallReported) {
                      var _1 = self.performance.now() - Tv;
                      dv.logger.warn("playback not stuck anymore @" + Pv + ", after " + Math.round(_1) + "ms"), this.stallReported = !1;
                    }
                    this.stalled = null, this.nudgeRetry = 0;
                  }
                  return;
                }
                if ((qv || Uv) && (this.stalled = null), !($v.paused || $v.ended || $v.playbackRate === 0 || !$v.buffered.length)) {
                  var d1 = Mv.bufferInfo($v, Pv, 0), W1 = d1.len > 0, X1 = d1.nextStart || 0;
                  if (!(!W1 && !X1)) {
                    if (Fv) {
                      var i$ = d1.len > J1, o$ = !X1 || X1 - Pv > J1 && !this.fragmentTracker.getPartialFragment(Pv);
                      if (i$ || o$)
                        return;
                      this.moved = !1;
                    }
                    if (!this.moved && this.stalled) {
                      var b$ = Math.max(X1, d1.start || 0) - Pv;
                      if (b$ > 0 && b$ <= J1) {
                        this._trySkipBufferHole(null);
                        return;
                      }
                    }
                    var m$ = self.performance.now();
                    if (Tv === null) {
                      this.stalled = m$;
                      return;
                    }
                    var k$ = m$ - Tv;
                    !Fv && k$ >= z1 && this._reportStall(d1.len);
                    var B$ = Mv.bufferInfo($v, Pv, bv.maxBufferHole);
                    this._tryFixBufferStall(B$, k$);
                  }
                }
              }, Rv._tryFixBufferStall = function(kv, bv) {
                var $v = this.config, Tv = this.fragmentTracker, Pv = this.media, Fv = Pv.currentTime, Uv = Tv.getPartialFragment(Fv);
                if (Uv) {
                  var qv = this._trySkipBufferHole(Uv);
                  if (qv)
                    return;
                }
                kv.len > $v.maxBufferHole && bv > $v.highBufferWatchdogPeriod * 1e3 && (dv.logger.warn("Trying to nudge playhead over buffer-hole"), this.stalled = null, this._tryNudgeBuffer());
              }, Rv._reportStall = function(kv) {
                var bv = this.hls, $v = this.media, Tv = this.stallReported;
                Tv || (this.stallReported = !0, dv.logger.warn("Playback stalling at @" + $v.currentTime + " due to low buffer (buffer=" + kv + ")"), bv.trigger(cv.default.ERROR, {
                  type: lv.ErrorTypes.MEDIA_ERROR,
                  details: lv.ErrorDetails.BUFFER_STALLED_ERROR,
                  fatal: !1,
                  buffer: kv
                }));
              }, Rv._trySkipBufferHole = function(kv) {
                for (var bv = this.config, $v = this.hls, Tv = this.media, Pv = Tv.currentTime, Fv = 0, Uv = 0; Uv < Tv.buffered.length; Uv++) {
                  var qv = Tv.buffered.start(Uv);
                  if (Pv + bv.maxBufferHole >= Fv && Pv < qv) {
                    var _1 = Math.max(qv + u$, Tv.currentTime + n$);
                    return dv.logger.warn("skipping hole, adjusting currentTime from " + Pv + " to " + _1), this.moved = !0, this.stalled = null, Tv.currentTime = _1, kv && $v.trigger(cv.default.ERROR, {
                      type: lv.ErrorTypes.MEDIA_ERROR,
                      details: lv.ErrorDetails.BUFFER_SEEK_OVER_HOLE,
                      fatal: !1,
                      reason: "fragment loaded with buffer holes, seeking from " + Pv + " to " + _1,
                      frag: kv
                    }), _1;
                  }
                  Fv = Tv.buffered.end(Uv);
                }
                return 0;
              }, Rv._tryNudgeBuffer = function() {
                var kv = this.config, bv = this.hls, $v = this.media, Tv = $v.currentTime, Pv = (this.nudgeRetry || 0) + 1;
                if (this.nudgeRetry = Pv, Pv < kv.nudgeMaxRetry) {
                  var Fv = Tv + Pv * kv.nudgeOffset;
                  dv.logger.warn("Nudging 'currentTime' from " + Tv + " to " + Fv), $v.currentTime = Fv, bv.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.MEDIA_ERROR,
                    details: lv.ErrorDetails.BUFFER_NUDGE_ON_STALL,
                    fatal: !1
                  });
                } else
                  dv.logger.error("Playhead still not moving while enough data buffered @" + Tv + " after " + kv.nudgeMaxRetry + " nudges"), bv.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.MEDIA_ERROR,
                    details: lv.ErrorDetails.BUFFER_STALLED_ERROR,
                    fatal: !0
                  });
              }, Iv;
            }();
            function w$(Iv) {
              if (Iv === void 0)
                throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
              return Iv;
            }
            function s$(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var $$ = /* @__PURE__ */ function(Iv) {
              s$(Rv, Iv);
              function Rv(bv) {
                for (var $v, Tv = arguments.length, Pv = new Array(Tv > 1 ? Tv - 1 : 0), Fv = 1; Fv < Tv; Fv++)
                  Pv[Fv - 1] = arguments[Fv];
                return $v = Iv.call.apply(Iv, [this, bv].concat(Pv)) || this, $v._boundTick = void 0, $v._tickTimer = null, $v._tickInterval = null, $v._tickCallCount = 0, $v._boundTick = $v.tick.bind(w$($v)), $v;
              }
              var kv = Rv.prototype;
              return kv.onHandlerDestroying = function() {
                this.clearNextTick(), this.clearInterval();
              }, kv.hasInterval = function() {
                return !!this._tickInterval;
              }, kv.hasNextTick = function() {
                return !!this._tickTimer;
              }, kv.setInterval = function(bv) {
                return this._tickInterval ? !1 : (this._tickInterval = self.setInterval(this._boundTick, bv), !0);
              }, kv.clearInterval = function() {
                return this._tickInterval ? (self.clearInterval(this._tickInterval), this._tickInterval = null, !0) : !1;
              }, kv.clearNextTick = function() {
                return this._tickTimer ? (self.clearTimeout(this._tickTimer), this._tickTimer = null, !0) : !1;
              }, kv.tick = function() {
                this._tickCallCount++, this._tickCallCount === 1 && (this.doTick(), this._tickCallCount > 1 && (this.clearNextTick(), this._tickTimer = self.setTimeout(this._boundTick, 0)), this._tickCallCount = 0);
              }, kv.doTick = function() {
              }, Rv;
            }(yv);
            function f$(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var G1 = {
              STOPPED: "STOPPED",
              STARTING: "STARTING",
              IDLE: "IDLE",
              PAUSED: "PAUSED",
              KEY_LOADING: "KEY_LOADING",
              FRAG_LOADING: "FRAG_LOADING",
              FRAG_LOADING_WAITING_RETRY: "FRAG_LOADING_WAITING_RETRY",
              WAITING_TRACK: "WAITING_TRACK",
              PARSING: "PARSING",
              PARSED: "PARSED",
              BUFFER_FLUSHING: "BUFFER_FLUSHING",
              ENDED: "ENDED",
              ERROR: "ERROR",
              WAITING_INIT_PTS: "WAITING_INIT_PTS",
              WAITING_LEVEL: "WAITING_LEVEL"
            }, I$ = /* @__PURE__ */ function(Iv) {
              f$(Rv, Iv);
              function Rv() {
                return Iv.apply(this, arguments) || this;
              }
              var kv = Rv.prototype;
              return kv.doTick = function() {
              }, kv.startLoad = function() {
              }, kv.stopLoad = function() {
                var bv = this.fragCurrent;
                bv && (bv.loader && bv.loader.abort(), this.fragmentTracker.removeFragment(bv)), this.demuxer && (this.demuxer.destroy(), this.demuxer = null), this.fragCurrent = null, this.fragPrevious = null, this.clearInterval(), this.clearNextTick(), this.state = G1.STOPPED;
              }, kv._streamEnded = function(bv, $v) {
                var Tv = this.fragCurrent, Pv = this.fragmentTracker;
                if (!$v.live && Tv && !Tv.backtracked && Tv.sn === $v.endSN && !bv.nextStart) {
                  var Fv = Pv.getState(Tv);
                  return Fv === O1.PARTIAL || Fv === O1.OK;
                }
                return !1;
              }, kv.onMediaSeeking = function() {
                var bv = this.config, $v = this.media, Tv = this.mediaBuffer, Pv = this.state, Fv = $v ? $v.currentTime : null, Uv = Mv.bufferInfo(Tv || $v, Fv, this.config.maxBufferHole);
                if (dv.logger.log("media seeking to " + (Object(uv.isFiniteNumber)(Fv) ? Fv.toFixed(3) : Fv)), Pv === G1.FRAG_LOADING) {
                  var qv = this.fragCurrent;
                  if (Uv.len === 0 && qv) {
                    var _1 = bv.maxFragLookUpTolerance, d1 = qv.start - _1, W1 = qv.start + qv.duration + _1;
                    Fv < d1 || Fv > W1 ? (qv.loader && (dv.logger.log("seeking outside of buffer while fragment load in progress, cancel fragment load"), qv.loader.abort()), this.fragCurrent = null, this.fragPrevious = null, this.state = G1.IDLE) : dv.logger.log("seeking outside of buffer but within currently loaded fragment range");
                  }
                } else
                  Pv === G1.ENDED && (Uv.len === 0 && (this.fragPrevious = null, this.fragCurrent = null), this.state = G1.IDLE);
                $v && (this.lastCurrentTime = Fv), this.loadedmetadata || (this.nextLoadPosition = this.startPosition = Fv), this.tick();
              }, kv.onMediaEnded = function() {
                this.startPosition = this.lastCurrentTime = 0;
              }, kv.onHandlerDestroying = function() {
                this.stopLoad(), Iv.prototype.onHandlerDestroying.call(this);
              }, kv.onHandlerDestroyed = function() {
                this.state = G1.STOPPED, this.fragmentTracker = null;
              }, kv.computeLivePosition = function(bv, $v) {
                var Tv = this.config.liveSyncDuration !== void 0 ? this.config.liveSyncDuration : this.config.liveSyncDurationCount * $v.targetduration;
                return bv + Math.max(0, $v.totalduration - Tv);
              }, Rv;
            }($$);
            function F$(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function j$(Iv, Rv, kv) {
              return Rv && F$(Iv.prototype, Rv), Iv;
            }
            function P$(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var Z$ = 100, K$ = /* @__PURE__ */ function(Iv) {
              P$(Rv, Iv);
              function Rv(bv, $v) {
                var Tv;
                return Tv = Iv.call(this, bv, cv.default.MEDIA_ATTACHED, cv.default.MEDIA_DETACHING, cv.default.MANIFEST_LOADING, cv.default.MANIFEST_PARSED, cv.default.LEVEL_LOADED, cv.default.LEVELS_UPDATED, cv.default.KEY_LOADED, cv.default.FRAG_LOADED, cv.default.FRAG_LOAD_EMERGENCY_ABORTED, cv.default.FRAG_PARSING_INIT_SEGMENT, cv.default.FRAG_PARSING_DATA, cv.default.FRAG_PARSED, cv.default.ERROR, cv.default.AUDIO_TRACK_SWITCHING, cv.default.AUDIO_TRACK_SWITCHED, cv.default.BUFFER_CREATED, cv.default.BUFFER_APPENDED, cv.default.BUFFER_FLUSHED) || this, Tv.fragmentTracker = $v, Tv.config = bv.config, Tv.audioCodecSwap = !1, Tv._state = G1.STOPPED, Tv.stallReported = !1, Tv.gapController = null, Tv.altAudio = !1, Tv.audioOnly = !1, Tv.bitrateTest = !1, Tv;
              }
              var kv = Rv.prototype;
              return kv.startLoad = function(bv) {
                if (this.levels) {
                  var $v = this.lastCurrentTime, Tv = this.hls;
                  if (this.stopLoad(), this.setInterval(Z$), this.level = -1, this.fragLoadError = 0, !this.startFragRequested) {
                    var Pv = Tv.startLevel;
                    Pv === -1 && (Tv.config.testBandwidth ? (Pv = 0, this.bitrateTest = !0) : Pv = Tv.nextAutoLevel), this.level = Tv.nextLoadLevel = Pv, this.loadedmetadata = !1;
                  }
                  $v > 0 && bv === -1 && (dv.logger.log("override startPosition with lastCurrentTime @" + $v.toFixed(3)), bv = $v), this.state = G1.IDLE, this.nextLoadPosition = this.startPosition = this.lastCurrentTime = bv, this.tick();
                } else
                  this.forceStartLoad = !0, this.state = G1.STOPPED;
              }, kv.stopLoad = function() {
                this.forceStartLoad = !1, Iv.prototype.stopLoad.call(this);
              }, kv.doTick = function() {
                switch (this.state) {
                  case G1.BUFFER_FLUSHING:
                    this.fragLoadError = 0;
                    break;
                  case G1.IDLE:
                    this._doTickIdle();
                    break;
                  case G1.WAITING_LEVEL:
                    var bv = this.levels[this.level];
                    bv && bv.details && (this.state = G1.IDLE);
                    break;
                  case G1.FRAG_LOADING_WAITING_RETRY:
                    var $v = window.performance.now(), Tv = this.retryDate;
                    (!Tv || $v >= Tv || this.media && this.media.seeking) && (dv.logger.log("mediaController: retryDate reached, switch back to IDLE state"), this.state = G1.IDLE);
                    break;
                }
                this._checkBuffer(), this._checkFragmentChanged();
              }, kv._doTickIdle = function() {
                var bv = this.hls, $v = bv.config, Tv = this.media;
                if (!(this.levelLastLoaded === void 0 || !Tv && (this.startFragRequested || !$v.startFragPrefetch))) {
                  if (this.altAudio && this.audioOnly) {
                    this.demuxer.frag = null;
                    return;
                  }
                  var Pv;
                  this.loadedmetadata ? Pv = Tv.currentTime : Pv = this.nextLoadPosition;
                  var Fv = bv.nextLoadLevel, Uv = this.levels[Fv];
                  if (Uv) {
                    var qv = Uv.bitrate, _1;
                    qv ? _1 = Math.max(8 * $v.maxBufferSize / qv, $v.maxBufferLength) : _1 = $v.maxBufferLength, _1 = Math.min(_1, $v.maxMaxBufferLength);
                    var d1 = Pv < $v.maxBufferHole ? Math.max(J1, $v.maxBufferHole) : $v.maxBufferHole, W1 = Mv.bufferInfo(this.mediaBuffer ? this.mediaBuffer : Tv, Pv, d1), X1 = W1.len;
                    if (!(X1 >= _1)) {
                      dv.logger.trace("buffer length of " + X1.toFixed(3) + " is below max of " + _1.toFixed(3) + ". checking for more payload ..."), this.level = bv.nextLoadLevel = Fv;
                      var i$ = Uv.details;
                      if (!i$ || i$.live && this.levelLastLoaded !== Fv) {
                        this.state = G1.WAITING_LEVEL;
                        return;
                      }
                      if (this._streamEnded(W1, i$)) {
                        var o$ = {};
                        this.altAudio && (o$.type = "video"), this.hls.trigger(cv.default.BUFFER_EOS, o$), this.state = G1.ENDED;
                        return;
                      }
                      this._fetchPayloadOrEos(Pv, W1, i$);
                    }
                  }
                }
              }, kv._fetchPayloadOrEos = function(bv, $v, Tv) {
                var Pv = this.fragPrevious;
                this.level;
                var Fv = Tv.fragments, Uv = Fv.length;
                if (Uv !== 0) {
                  var qv = Fv[0].start, _1 = Fv[Uv - 1].start + Fv[Uv - 1].duration, d1 = $v.end, W1;
                  if (Tv.initSegment && !Tv.initSegment.data)
                    W1 = Tv.initSegment;
                  else if (Tv.live) {
                    var X1 = this.config.initialLiveManifestSize;
                    if (Uv < X1) {
                      dv.logger.warn("Can not start playback of a level, reason: not enough fragments " + Uv + " < " + X1);
                      return;
                    }
                    if (W1 = this._ensureFragmentAtLivePoint(Tv, d1, qv, _1, Pv, Fv), W1 === null)
                      return;
                  } else
                    d1 < qv && (W1 = Fv[0]);
                  W1 || (W1 = this._findFragment(qv, Pv, Uv, Fv, d1, _1, Tv)), W1 && (W1.encrypted ? this._loadKey(W1, Tv) : this._loadFragment(W1, Tv, bv, d1));
                }
              }, kv._ensureFragmentAtLivePoint = function(bv, $v, Tv, Pv, Fv, Uv) {
                var qv = this.hls.config, _1 = this.media, d1, W1 = 1 / 0;
                if (qv.liveMaxLatencyDuration !== void 0 ? W1 = qv.liveMaxLatencyDuration : Object(uv.isFiniteNumber)(qv.liveMaxLatencyDurationCount) && (W1 = qv.liveMaxLatencyDurationCount * bv.targetduration), $v < Math.max(Tv - qv.maxFragLookUpTolerance, Pv - W1)) {
                  var X1 = this.liveSyncPosition = this.computeLivePosition(Tv, bv);
                  $v = X1, _1 && !_1.paused && _1.readyState && _1.duration > X1 && X1 > _1.currentTime && (dv.logger.log("buffer end: " + $v.toFixed(3) + " is located too far from the end of live sliding playlist, reset currentTime to : " + X1.toFixed(3)), _1.currentTime = X1), this.nextLoadPosition = X1;
                }
                if (bv.PTSKnown && $v > Pv && _1 && _1.readyState)
                  return null;
                if (this.startFragRequested && !bv.PTSKnown && Fv)
                  if (bv.hasProgramDateTime)
                    dv.logger.log("live playlist, switching playlist, load frag with same PDT: " + Fv.programDateTime), d1 = J$(Uv, Fv.endProgramDateTime, qv.maxFragLookUpTolerance);
                  else {
                    var i$ = Fv.sn + 1;
                    if (i$ >= bv.startSN && i$ <= bv.endSN) {
                      var o$ = Uv[i$ - bv.startSN];
                      Fv.cc === o$.cc && (d1 = o$, dv.logger.log("live playlist, switching playlist, load frag with next SN: " + d1.sn));
                    }
                    d1 || (d1 = Jv.search(Uv, function(b$) {
                      return Fv.cc - b$.cc;
                    }), d1 && dv.logger.log("live playlist, switching playlist, load frag with same CC: " + d1.sn));
                  }
                return d1;
              }, kv._findFragment = function(bv, $v, Tv, Pv, Fv, Uv, qv) {
                var _1 = this.hls.config, d1;
                if (Fv < Uv) {
                  var W1 = Fv > Uv - _1.maxFragLookUpTolerance ? 0 : _1.maxFragLookUpTolerance;
                  d1 = Y$($v, Pv, Fv, W1);
                } else
                  d1 = Pv[Tv - 1];
                if (d1) {
                  var X1 = d1.sn - qv.startSN, i$ = $v && d1.level === $v.level, o$ = Pv[X1 - 1], b$ = Pv[X1 + 1];
                  if ($v && d1.sn === $v.sn)
                    if (i$ && !d1.backtracked)
                      if (d1.sn < qv.endSN) {
                        var m$ = $v.deltaPTS;
                        m$ && m$ > _1.maxBufferHole && $v.dropped && X1 ? (d1 = o$, dv.logger.warn("Previous fragment was dropped with large PTS gap between audio and video. Maybe fragment is not starting with a keyframe? Loading previous one to try to overcome this")) : (d1 = b$, this.fragmentTracker.getState(d1) !== O1.OK && dv.logger.log("Re-loading fragment with SN: " + d1.sn));
                      } else
                        d1 = null;
                    else
                      d1.backtracked && (b$ && b$.backtracked ? (dv.logger.warn("Already backtracked from fragment " + b$.sn + ", will not backtrack to fragment " + d1.sn + ". Loading fragment " + b$.sn), d1 = b$) : (dv.logger.warn("Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe"), d1.dropped = 0, o$ ? (d1 = o$, d1.backtracked = !0) : X1 && (d1 = null)));
                }
                return d1;
              }, kv._loadKey = function(bv, $v) {
                dv.logger.log("Loading key for " + bv.sn + " of [" + $v.startSN + "-" + $v.endSN + "], level " + this.level), this.state = G1.KEY_LOADING, this.hls.trigger(cv.default.KEY_LOADING, {
                  frag: bv
                });
              }, kv._loadFragment = function(bv, $v, Tv, Pv) {
                var Fv = this.fragmentTracker.getState(bv);
                this.fragCurrent = bv, bv.sn !== "initSegment" && (this.startFragRequested = !0), Object(uv.isFiniteNumber)(bv.sn) && !bv.bitrateTest && (this.nextLoadPosition = bv.start + bv.duration), bv.backtracked || Fv === O1.NOT_LOADED || Fv === O1.PARTIAL ? (bv.autoLevel = this.hls.autoLevelEnabled, bv.bitrateTest = this.bitrateTest, dv.logger.log("Loading " + bv.sn + " of [" + $v.startSN + "-" + $v.endSN + "], level " + this.level + ", " + (this.loadedmetadata ? "currentTime" : "nextLoadPosition") + ": " + parseFloat(Tv.toFixed(3)) + ", bufferEnd: " + parseFloat(Pv.toFixed(3))), this.hls.trigger(cv.default.FRAG_LOADING, {
                  frag: bv
                }), this.demuxer || (this.demuxer = new q1(this.hls, "main")), this.state = G1.FRAG_LOADING) : Fv === O1.APPENDING && this._reduceMaxBufferLength(bv.duration) && this.fragmentTracker.removeFragment(bv);
              }, kv.getBufferedFrag = function(bv) {
                return this.fragmentTracker.getBufferedFrag(bv, _v.MAIN);
              }, kv.followingBufferedFrag = function(bv) {
                return bv ? this.getBufferedFrag(bv.endPTS + 0.5) : null;
              }, kv._checkFragmentChanged = function() {
                var bv, $v, Tv = this.media;
                if (Tv && Tv.readyState && Tv.seeking === !1 && ($v = Tv.currentTime, $v > this.lastCurrentTime && (this.lastCurrentTime = $v), Mv.isBuffered(Tv, $v) ? bv = this.getBufferedFrag($v) : Mv.isBuffered(Tv, $v + 0.1) && (bv = this.getBufferedFrag($v + 0.1)), bv)) {
                  var Pv = bv;
                  if (Pv !== this.fragPlaying) {
                    this.hls.trigger(cv.default.FRAG_CHANGED, {
                      frag: Pv
                    });
                    var Fv = Pv.level;
                    (!this.fragPlaying || this.fragPlaying.level !== Fv) && this.hls.trigger(cv.default.LEVEL_SWITCHED, {
                      level: Fv
                    }), this.fragPlaying = Pv;
                  }
                }
              }, kv.immediateLevelSwitch = function() {
                if (dv.logger.log("immediateLevelSwitch"), !this.immediateSwitch) {
                  this.immediateSwitch = !0;
                  var bv = this.media, $v;
                  bv ? ($v = bv.paused, $v || bv.pause()) : $v = !0, this.previouslyPaused = $v;
                }
                var Tv = this.fragCurrent;
                Tv && Tv.loader && Tv.loader.abort(), this.fragCurrent = null, this.flushMainBuffer(0, Number.POSITIVE_INFINITY);
              }, kv.immediateLevelSwitchEnd = function() {
                var bv = this.media;
                bv && bv.buffered.length && (this.immediateSwitch = !1, bv.currentTime > 0 && Mv.isBuffered(bv, bv.currentTime) && (bv.currentTime -= 1e-4), this.previouslyPaused || bv.play());
              }, kv.nextLevelSwitch = function() {
                var bv = this.media;
                if (bv && bv.readyState) {
                  var $v, Tv = this.getBufferedFrag(bv.currentTime);
                  if (Tv && Tv.startPTS > 1 && this.flushMainBuffer(0, Tv.startPTS - 1), bv.paused)
                    $v = 0;
                  else {
                    var Pv = this.hls.nextLoadLevel, Fv = this.levels[Pv], Uv = this.fragLastKbps;
                    Uv && this.fragCurrent ? $v = this.fragCurrent.duration * Fv.bitrate / (1e3 * Uv) + 1 : $v = 0;
                  }
                  var qv = this.getBufferedFrag(bv.currentTime + $v);
                  if (qv) {
                    var _1 = this.followingBufferedFrag(qv);
                    if (_1) {
                      var d1 = this.fragCurrent;
                      d1 && d1.loader && d1.loader.abort(), this.fragCurrent = null;
                      var W1 = Math.max(qv.endPTS, _1.maxStartPTS + Math.min(this.config.maxFragLookUpTolerance, _1.duration));
                      this.flushMainBuffer(W1, Number.POSITIVE_INFINITY);
                    }
                  }
                }
              }, kv.flushMainBuffer = function(bv, $v) {
                this.state = G1.BUFFER_FLUSHING;
                var Tv = {
                  startOffset: bv,
                  endOffset: $v
                };
                this.altAudio && (Tv.type = "video"), this.hls.trigger(cv.default.BUFFER_FLUSHING, Tv);
              }, kv.onMediaAttached = function(bv) {
                var $v = this.media = this.mediaBuffer = bv.media;
                this.onvseeking = this.onMediaSeeking.bind(this), this.onvseeked = this.onMediaSeeked.bind(this), this.onvended = this.onMediaEnded.bind(this), $v.addEventListener("seeking", this.onvseeking), $v.addEventListener("seeked", this.onvseeked), $v.addEventListener("ended", this.onvended);
                var Tv = this.config;
                this.levels && Tv.autoStartLoad && this.hls.startLoad(Tv.startPosition), this.gapController = new v$(Tv, $v, this.fragmentTracker, this.hls);
              }, kv.onMediaDetaching = function() {
                var bv = this.media;
                bv && bv.ended && (dv.logger.log("MSE detaching and video ended, reset startPosition"), this.startPosition = this.lastCurrentTime = 0);
                var $v = this.levels;
                $v && $v.forEach(function(Tv) {
                  Tv.details && Tv.details.fragments.forEach(function(Pv) {
                    Pv.backtracked = void 0;
                  });
                }), bv && (bv.removeEventListener("seeking", this.onvseeking), bv.removeEventListener("seeked", this.onvseeked), bv.removeEventListener("ended", this.onvended), this.onvseeking = this.onvseeked = this.onvended = null), this.fragmentTracker.removeAllFragments(), this.media = this.mediaBuffer = null, this.loadedmetadata = !1, this.stopLoad();
              }, kv.onMediaSeeked = function() {
                var bv = this.media, $v = bv ? bv.currentTime : void 0;
                Object(uv.isFiniteNumber)($v) && dv.logger.log("media seeked to " + $v.toFixed(3)), this.tick();
              }, kv.onManifestLoading = function() {
                dv.logger.log("trigger BUFFER_RESET"), this.hls.trigger(cv.default.BUFFER_RESET), this.fragmentTracker.removeAllFragments(), this.stalled = !1, this.startPosition = this.lastCurrentTime = 0;
              }, kv.onManifestParsed = function(bv) {
                var $v = !1, Tv = !1, Pv;
                bv.levels.forEach(function(Uv) {
                  Pv = Uv.audioCodec, Pv && (Pv.indexOf("mp4a.40.2") !== -1 && ($v = !0), Pv.indexOf("mp4a.40.5") !== -1 && (Tv = !0));
                }), this.audioCodecSwitch = $v && Tv, this.audioCodecSwitch && dv.logger.log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"), this.altAudio = bv.altAudio, this.levels = bv.levels, this.startFragRequested = !1;
                var Fv = this.config;
                (Fv.autoStartLoad || this.forceStartLoad) && this.hls.startLoad(Fv.startPosition);
              }, kv.onLevelLoaded = function(bv) {
                var $v = bv.details, Tv = bv.level, Pv = this.levels[this.levelLastLoaded], Fv = this.levels[Tv], Uv = $v.totalduration, qv = 0;
                if (dv.logger.log("level " + Tv + " loaded [" + $v.startSN + "," + $v.endSN + "],duration:" + Uv), $v.live || Fv.details && Fv.details.live) {
                  var _1 = Fv.details;
                  _1 && $v.fragments.length > 0 ? (l$(_1, $v), qv = $v.fragments[0].start, this.liveSyncPosition = this.computeLivePosition(qv, _1), $v.PTSKnown && Object(uv.isFiniteNumber)(qv) ? dv.logger.log("live playlist sliding:" + qv.toFixed(3)) : (dv.logger.log("live playlist - outdated PTS, unknown sliding"), eE(this.fragPrevious, Pv, $v))) : (dv.logger.log("live playlist - first load, unknown sliding"), $v.PTSKnown = !1, eE(this.fragPrevious, Pv, $v));
                } else
                  $v.PTSKnown = !1;
                if (Fv.details = $v, this.levelLastLoaded = Tv, this.hls.trigger(cv.default.LEVEL_UPDATED, {
                  details: $v,
                  level: Tv
                }), this.startFragRequested === !1) {
                  if (this.startPosition === -1 || this.lastCurrentTime === -1) {
                    var d1 = $v.startTimeOffset;
                    Object(uv.isFiniteNumber)(d1) ? (d1 < 0 && (dv.logger.log("negative start time offset " + d1 + ", count from end of last fragment"), d1 = qv + Uv + d1), dv.logger.log("start time offset found in playlist, adjust startPosition to " + d1), this.startPosition = d1) : $v.live ? (this.startPosition = this.computeLivePosition(qv, $v), dv.logger.log("configure startPosition to " + this.startPosition)) : this.startPosition = 0, this.lastCurrentTime = this.startPosition;
                  }
                  this.nextLoadPosition = this.startPosition;
                }
                this.state === G1.WAITING_LEVEL && (this.state = G1.IDLE), this.tick();
              }, kv.onKeyLoaded = function() {
                this.state === G1.KEY_LOADING && (this.state = G1.IDLE, this.tick());
              }, kv.onFragLoaded = function(bv) {
                var $v = this.fragCurrent, Tv = this.hls, Pv = this.levels, Fv = this.media, Uv = bv.frag;
                if (this.state === G1.FRAG_LOADING && $v && Uv.type === "main" && Uv.level === $v.level && Uv.sn === $v.sn) {
                  var qv = bv.stats, _1 = Pv[$v.level], d1 = _1.details;
                  if (this.bitrateTest = !1, this.stats = qv, dv.logger.log("Loaded " + $v.sn + " of [" + d1.startSN + " ," + d1.endSN + "],level " + $v.level), Uv.bitrateTest && Tv.nextLoadLevel)
                    this.state = G1.IDLE, this.startFragRequested = !1, qv.tparsed = qv.tbuffered = window.performance.now(), Tv.trigger(cv.default.FRAG_BUFFERED, {
                      stats: qv,
                      frag: $v,
                      id: "main"
                    }), this.tick();
                  else if (Uv.sn === "initSegment")
                    this.state = G1.IDLE, qv.tparsed = qv.tbuffered = window.performance.now(), d1.initSegment.data = bv.payload, Tv.trigger(cv.default.FRAG_BUFFERED, {
                      stats: qv,
                      frag: $v,
                      id: "main"
                    }), this.tick();
                  else {
                    dv.logger.log("Parsing " + $v.sn + " of [" + d1.startSN + " ," + d1.endSN + "],level " + $v.level + ", cc " + $v.cc), this.state = G1.PARSING, this.pendingBuffering = !0, this.appended = !1, Uv.bitrateTest && (Uv.bitrateTest = !1, this.fragmentTracker.onFragLoaded({
                      frag: Uv
                    }));
                    var W1 = !(Fv && Fv.seeking) && (d1.PTSKnown || !d1.live), X1 = d1.initSegment ? d1.initSegment.data : [], i$ = this._getAudioCodec(_1), o$ = this.demuxer = this.demuxer || new q1(this.hls, "main");
                    o$.push(bv.payload, X1, i$, _1.videoCodec, $v, d1.totalduration, W1);
                  }
                }
                this.fragLoadError = 0;
              }, kv.onFragParsingInitSegment = function(bv) {
                var $v = this.fragCurrent, Tv = bv.frag;
                if ($v && bv.id === "main" && Tv.sn === $v.sn && Tv.level === $v.level && this.state === G1.PARSING) {
                  var Pv = bv.tracks, Fv, Uv;
                  if (this.audioOnly = Pv.audio && !Pv.video, this.altAudio && !this.audioOnly && delete Pv.audio, Uv = Pv.audio, Uv) {
                    var qv = this.levels[this.level].audioCodec, _1 = navigator.userAgent.toLowerCase();
                    qv && this.audioCodecSwap && (dv.logger.log("swapping playlist audio codec"), qv.indexOf("mp4a.40.5") !== -1 ? qv = "mp4a.40.2" : qv = "mp4a.40.5"), this.audioCodecSwitch && Uv.metadata.channelCount !== 1 && // don't force HE-AAC if firefox
                    _1.indexOf("firefox") === -1 && (qv = "mp4a.40.5"), _1.indexOf("android") !== -1 && Uv.container !== "audio/mpeg" && (qv = "mp4a.40.2", dv.logger.log("Android: force audio codec to " + qv)), Uv.levelCodec = qv, Uv.id = bv.id;
                  }
                  Uv = Pv.video, Uv && (Uv.levelCodec = this.levels[this.level].videoCodec, Uv.id = bv.id), this.hls.trigger(cv.default.BUFFER_CODECS, Pv);
                  for (Fv in Pv) {
                    Uv = Pv[Fv], dv.logger.log("main track:" + Fv + ",container:" + Uv.container + ",codecs[level/parsed]=[" + Uv.levelCodec + "/" + Uv.codec + "]");
                    var d1 = Uv.initSegment;
                    d1 && (this.appended = !0, this.pendingBuffering = !0, this.hls.trigger(cv.default.BUFFER_APPENDING, {
                      type: Fv,
                      data: d1,
                      parent: "main",
                      content: "initSegment"
                    }));
                  }
                  this.tick();
                }
              }, kv.onFragParsingData = function(bv) {
                var $v = this, Tv = this.fragCurrent, Pv = bv.frag;
                if (Tv && bv.id === "main" && Pv.sn === Tv.sn && Pv.level === Tv.level && !(bv.type === "audio" && this.altAudio) && // filter out main audio if audio track is loaded through audio stream controller
                this.state === G1.PARSING) {
                  var Fv = this.levels[this.level], Uv = Tv;
                  if (Object(uv.isFiniteNumber)(bv.endPTS) || (bv.endPTS = bv.startPTS + Tv.duration, bv.endDTS = bv.startDTS + Tv.duration), bv.hasAudio === !0 && Uv.addElementaryStream(Lv.AUDIO), bv.hasVideo === !0 && Uv.addElementaryStream(Lv.VIDEO), dv.logger.log("Parsed " + bv.type + ",PTS:[" + bv.startPTS.toFixed(3) + "," + bv.endPTS.toFixed(3) + "],DTS:[" + bv.startDTS.toFixed(3) + "/" + bv.endDTS.toFixed(3) + "],nb:" + bv.nb + ",dropped:" + (bv.dropped || 0)), bv.type === "video")
                    if (Uv.dropped = bv.dropped, Uv.dropped)
                      if (Uv.backtracked)
                        dv.logger.warn("Already backtracked on this fragment, appending with the gap", Uv.sn);
                      else {
                        var qv = Fv.details;
                        if (qv && Uv.sn === qv.startSN)
                          dv.logger.warn("missing video frame(s) on first frag, appending with gap", Uv.sn);
                        else {
                          dv.logger.warn("missing video frame(s), backtracking fragment", Uv.sn), this.fragmentTracker.removeFragment(Uv), Uv.backtracked = !0, this.nextLoadPosition = bv.startPTS, this.state = G1.IDLE, this.fragPrevious = Uv, this.demuxer && (this.demuxer.destroy(), this.demuxer = null), this.tick();
                          return;
                        }
                      }
                    else
                      Uv.backtracked = !1;
                  var _1 = c$(Fv.details, Uv, bv.startPTS, bv.endPTS, bv.startDTS, bv.endDTS), d1 = this.hls;
                  d1.trigger(cv.default.LEVEL_PTS_UPDATED, {
                    details: Fv.details,
                    level: this.level,
                    drift: _1,
                    type: bv.type,
                    start: bv.startPTS,
                    end: bv.endPTS
                  }), [bv.data1, bv.data2].forEach(function(W1) {
                    W1 && W1.length && $v.state === G1.PARSING && ($v.appended = !0, $v.pendingBuffering = !0, d1.trigger(cv.default.BUFFER_APPENDING, {
                      type: bv.type,
                      data: W1,
                      parent: "main",
                      content: "data"
                    }));
                  }), this.tick();
                }
              }, kv.onFragParsed = function(bv) {
                var $v = this.fragCurrent, Tv = bv.frag;
                $v && bv.id === "main" && Tv.sn === $v.sn && Tv.level === $v.level && this.state === G1.PARSING && (this.stats.tparsed = window.performance.now(), this.state = G1.PARSED, this._checkAppendedParsed());
              }, kv.onAudioTrackSwitching = function(bv) {
                var $v = this.altAudio, Tv = !!bv.url, Pv = bv.id;
                if (!Tv) {
                  if (this.mediaBuffer !== this.media) {
                    dv.logger.log("switching on main audio, use media.buffered to schedule main fragment loading"), this.mediaBuffer = this.media;
                    var Fv = this.fragCurrent;
                    Fv.loader && (dv.logger.log("switching to main audio track, cancel main fragment load"), Fv.loader.abort()), this.fragCurrent = null, this.fragPrevious = null, this.demuxer && (this.demuxer.destroy(), this.demuxer = null), this.state = G1.IDLE;
                  }
                  var Uv = this.hls;
                  $v && Uv.trigger(cv.default.BUFFER_FLUSHING, {
                    startOffset: 0,
                    endOffset: Number.POSITIVE_INFINITY,
                    type: "audio"
                  }), Uv.trigger(cv.default.AUDIO_TRACK_SWITCHED, {
                    id: Pv
                  });
                }
              }, kv.onAudioTrackSwitched = function(bv) {
                var $v = bv.id, Tv = !!this.hls.audioTracks[$v].url;
                if (Tv) {
                  var Pv = this.videoBuffer;
                  Pv && this.mediaBuffer !== Pv && (dv.logger.log("switching on alternate audio, use video.buffered to schedule main fragment loading"), this.mediaBuffer = Pv);
                }
                this.altAudio = Tv, this.tick();
              }, kv.onBufferCreated = function(bv) {
                var $v = bv.tracks, Tv, Pv, Fv = !1;
                for (var Uv in $v) {
                  var qv = $v[Uv];
                  qv.id === "main" ? (Pv = Uv, Tv = qv, Uv === "video" && (this.videoBuffer = $v[Uv].buffer)) : Fv = !0;
                }
                Fv && Tv ? (dv.logger.log("alternate track found, use " + Pv + ".buffered to schedule main fragment loading"), this.mediaBuffer = Tv.buffer) : this.mediaBuffer = this.media;
              }, kv.onBufferAppended = function(bv) {
                if (bv.parent === "main") {
                  var $v = this.state;
                  ($v === G1.PARSING || $v === G1.PARSED) && (this.pendingBuffering = bv.pending > 0, this._checkAppendedParsed());
                }
              }, kv._checkAppendedParsed = function() {
                if (this.state === G1.PARSED && (!this.appended || !this.pendingBuffering)) {
                  var bv = this.fragCurrent;
                  if (bv) {
                    var $v = this.mediaBuffer ? this.mediaBuffer : this.media;
                    dv.logger.log("main buffered : " + A$.toString($v.buffered)), this.fragPrevious = bv;
                    var Tv = this.stats;
                    Tv.tbuffered = window.performance.now(), this.fragLastKbps = Math.round(8 * Tv.total / (Tv.tbuffered - Tv.tfirst)), this.hls.trigger(cv.default.FRAG_BUFFERED, {
                      stats: Tv,
                      frag: bv,
                      id: "main"
                    }), this.state = G1.IDLE;
                  }
                  (this.loadedmetadata || this.startPosition <= 0) && this.tick();
                }
              }, kv.onError = function(bv) {
                var $v = bv.frag || this.fragCurrent;
                if (!($v && $v.type !== "main")) {
                  var Tv = !!this.media && Mv.isBuffered(this.media, this.media.currentTime) && Mv.isBuffered(this.media, this.media.currentTime + 0.5);
                  switch (bv.details) {
                    case lv.ErrorDetails.FRAG_LOAD_ERROR:
                    case lv.ErrorDetails.FRAG_LOAD_TIMEOUT:
                    case lv.ErrorDetails.KEY_LOAD_ERROR:
                    case lv.ErrorDetails.KEY_LOAD_TIMEOUT:
                      if (!bv.fatal)
                        if (this.fragLoadError + 1 <= this.config.fragLoadingMaxRetry) {
                          var Pv = Math.min(Math.pow(2, this.fragLoadError) * this.config.fragLoadingRetryDelay, this.config.fragLoadingMaxRetryTimeout);
                          dv.logger.warn("mediaController: frag loading failed, retry in " + Pv + " ms"), this.retryDate = window.performance.now() + Pv, this.loadedmetadata || (this.startFragRequested = !1, this.nextLoadPosition = this.startPosition), this.fragLoadError++, this.state = G1.FRAG_LOADING_WAITING_RETRY;
                        } else
                          dv.logger.error("mediaController: " + bv.details + " reaches max retry, redispatch as fatal ..."), bv.fatal = !0, this.state = G1.ERROR;
                      break;
                    case lv.ErrorDetails.LEVEL_LOAD_ERROR:
                    case lv.ErrorDetails.LEVEL_LOAD_TIMEOUT:
                      this.state !== G1.ERROR && (bv.fatal ? (this.state = G1.ERROR, dv.logger.warn("streamController: " + bv.details + ",switch to " + this.state + " state ...")) : !bv.levelRetry && this.state === G1.WAITING_LEVEL && (this.state = G1.IDLE));
                      break;
                    case lv.ErrorDetails.BUFFER_FULL_ERROR:
                      bv.parent === "main" && (this.state === G1.PARSING || this.state === G1.PARSED) && (Tv ? (this._reduceMaxBufferLength(this.config.maxBufferLength), this.state = G1.IDLE) : (dv.logger.warn("buffer full error also media.currentTime is not buffered, flush everything"), this.fragCurrent = null, this.flushMainBuffer(0, Number.POSITIVE_INFINITY)));
                      break;
                  }
                }
              }, kv._reduceMaxBufferLength = function(bv) {
                var $v = this.config;
                return $v.maxMaxBufferLength >= bv ? ($v.maxMaxBufferLength /= 2, dv.logger.warn("main:reduce max buffer length to " + $v.maxMaxBufferLength + "s"), !0) : !1;
              }, kv._checkBuffer = function() {
                var bv = this.media;
                if (!(!bv || bv.readyState === 0)) {
                  var $v = this.mediaBuffer ? this.mediaBuffer : bv, Tv = $v.buffered;
                  !this.loadedmetadata && Tv.length ? (this.loadedmetadata = !0, this._seekToStartPos()) : this.immediateSwitch ? this.immediateLevelSwitchEnd() : this.gapController.poll(this.lastCurrentTime, Tv);
                }
              }, kv.onFragLoadEmergencyAborted = function() {
                this.state = G1.IDLE, this.loadedmetadata || (this.startFragRequested = !1, this.nextLoadPosition = this.startPosition), this.tick();
              }, kv.onBufferFlushed = function() {
                var bv = this.mediaBuffer ? this.mediaBuffer : this.media;
                if (bv) {
                  var $v = this.audioOnly ? Lv.AUDIO : Lv.VIDEO;
                  this.fragmentTracker.detectEvictedFragments($v, bv.buffered);
                }
                this.state = G1.IDLE, this.fragPrevious = null;
              }, kv.onLevelsUpdated = function(bv) {
                this.levels = bv.levels;
              }, kv.swapAudioCodec = function() {
                this.audioCodecSwap = !this.audioCodecSwap;
              }, kv._seekToStartPos = function() {
                var bv = this.media, $v = bv.currentTime, Tv = this.startPosition;
                if ($v !== Tv && Tv >= 0) {
                  if (bv.seeking) {
                    dv.logger.log("could not seek to " + Tv + ", already seeking at " + $v);
                    return;
                  }
                  var Pv = bv.buffered.length ? bv.buffered.start(0) : 0, Fv = Pv - Tv;
                  Fv > 0 && Fv < this.config.maxBufferHole && (dv.logger.log("adjusting start position by " + Fv + " to match buffer start"), Tv += Fv, this.startPosition = Tv), dv.logger.log("seek to target start position " + Tv + " from current time " + $v + ". ready state " + bv.readyState), bv.currentTime = Tv;
                }
              }, kv._getAudioCodec = function(bv) {
                var $v = this.config.defaultAudioCodec || bv.audioCodec;
                return this.audioCodecSwap && (dv.logger.log("swapping playlist audio codec"), $v && ($v.indexOf("mp4a.40.5") !== -1 ? $v = "mp4a.40.2" : $v = "mp4a.40.5")), $v;
              }, j$(Rv, [{
                key: "state",
                set: function(bv) {
                  if (this.state !== bv) {
                    var $v = this.state;
                    this._state = bv, dv.logger.log("main stream-controller: " + $v + "->" + bv), this.hls.trigger(cv.default.STREAM_STATE_TRANSITION, {
                      previousState: $v,
                      nextState: bv
                    });
                  }
                },
                get: function() {
                  return this._state;
                }
              }, {
                key: "currentLevel",
                get: function() {
                  var bv = this.media;
                  if (bv) {
                    var $v = this.getBufferedFrag(bv.currentTime);
                    if ($v)
                      return $v.level;
                  }
                  return -1;
                }
              }, {
                key: "nextBufferedFrag",
                get: function() {
                  var bv = this.media;
                  return bv ? this.followingBufferedFrag(this.getBufferedFrag(bv.currentTime)) : null;
                }
              }, {
                key: "nextLevel",
                get: function() {
                  var bv = this.nextBufferedFrag;
                  return bv ? bv.level : -1;
                }
              }, {
                key: "liveSyncPosition",
                get: function() {
                  return this._liveSyncPosition;
                },
                set: function(bv) {
                  this._liveSyncPosition = bv;
                }
              }]), Rv;
            }(I$), u3 = K$;
            function sO(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function a3(Iv, Rv, kv) {
              return Rv && sO(Iv.prototype, Rv), Iv;
            }
            function e3(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var d3, n3 = /* @__PURE__ */ function(Iv) {
              e3(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.MANIFEST_LOADED, cv.default.LEVEL_LOADED, cv.default.AUDIO_TRACK_SWITCHED, cv.default.FRAG_LOADED, cv.default.ERROR) || this, $v.canload = !1, $v.currentLevelIndex = null, $v.manualLevelIndex = -1, $v.timer = null, d3 = /chrome|firefox/.test(navigator.userAgent.toLowerCase()), $v;
              }
              var kv = Rv.prototype;
              return kv.onHandlerDestroying = function() {
                this.clearTimer(), this.manualLevelIndex = -1;
              }, kv.clearTimer = function() {
                this.timer !== null && (clearTimeout(this.timer), this.timer = null);
              }, kv.startLoad = function() {
                var bv = this._levels;
                this.canload = !0, this.levelRetryCount = 0, bv && bv.forEach(function($v) {
                  $v.loadError = 0;
                  var Tv = $v.details;
                  Tv && Tv.live && ($v.details = void 0);
                }), this.timer !== null && this.loadLevel();
              }, kv.stopLoad = function() {
                this.canload = !1;
              }, kv.onManifestLoaded = function(bv) {
                var $v = [], Tv = [], Pv, Fv = {}, Uv = null, qv = !1, _1 = !1;
                if (bv.levels.forEach(function(X1) {
                  var i$ = X1.attrs;
                  X1.loadError = 0, X1.fragmentError = !1, qv = qv || !!X1.videoCodec, _1 = _1 || !!X1.audioCodec, d3 && X1.audioCodec && X1.audioCodec.indexOf("mp4a.40.34") !== -1 && (X1.audioCodec = void 0), Uv = Fv[X1.bitrate], Uv ? Uv.url.push(X1.url) : (X1.url = [X1.url], X1.urlId = 0, Fv[X1.bitrate] = X1, $v.push(X1)), i$ && (i$.AUDIO && t$(Uv || X1, "audio", i$.AUDIO), i$.SUBTITLES && t$(Uv || X1, "text", i$.SUBTITLES));
                }), qv && _1 && ($v = $v.filter(function(X1) {
                  var i$ = X1.videoCodec;
                  return !!i$;
                })), $v = $v.filter(function(X1) {
                  var i$ = X1.audioCodec, o$ = X1.videoCodec;
                  return (!i$ || K1(i$, "audio")) && (!o$ || K1(o$, "video"));
                }), bv.audioTracks && (Tv = bv.audioTracks.filter(function(X1) {
                  return !X1.audioCodec || K1(X1.audioCodec, "audio");
                }), Tv.forEach(function(X1, i$) {
                  X1.id = i$;
                })), $v.length > 0) {
                  Pv = $v[0].bitrate, $v.sort(function(X1, i$) {
                    return X1.bitrate - i$.bitrate;
                  }), this._levels = $v;
                  for (var d1 = 0; d1 < $v.length; d1++)
                    if ($v[d1].bitrate === Pv) {
                      this._firstLevel = d1, dv.logger.log("manifest loaded," + $v.length + " level(s) found, first bitrate:" + Pv);
                      break;
                    }
                  var W1 = _1 && !qv;
                  this.hls.trigger(cv.default.MANIFEST_PARSED, {
                    levels: $v,
                    audioTracks: Tv,
                    firstLevel: this._firstLevel,
                    stats: bv.stats,
                    audio: _1,
                    video: qv,
                    altAudio: !W1 && Tv.some(function(X1) {
                      return !!X1.url;
                    })
                  });
                } else
                  this.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.MEDIA_ERROR,
                    details: lv.ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR,
                    fatal: !0,
                    url: this.hls.url,
                    reason: "no level with compatible codecs found in manifest"
                  });
              }, kv.setLevelInternal = function(bv) {
                var $v = this._levels, Tv = this.hls;
                if (bv >= 0 && bv < $v.length) {
                  if (this.clearTimer(), this.currentLevelIndex !== bv) {
                    dv.logger.log("switching to level " + bv), this.currentLevelIndex = bv;
                    var Pv = $v[bv];
                    Pv.level = bv, Tv.trigger(cv.default.LEVEL_SWITCHING, Pv);
                  }
                  var Fv = $v[bv], Uv = Fv.details;
                  if (!Uv || Uv.live) {
                    var qv = Fv.urlId;
                    Tv.trigger(cv.default.LEVEL_LOADING, {
                      url: Fv.url[qv],
                      level: bv,
                      id: qv
                    });
                  }
                } else
                  Tv.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.OTHER_ERROR,
                    details: lv.ErrorDetails.LEVEL_SWITCH_ERROR,
                    level: bv,
                    fatal: !1,
                    reason: "invalid level idx"
                  });
              }, kv.onError = function(bv) {
                if (bv.fatal) {
                  bv.type === lv.ErrorTypes.NETWORK_ERROR && this.clearTimer();
                  return;
                }
                var $v = !1, Tv = !1, Pv;
                switch (bv.details) {
                  case lv.ErrorDetails.FRAG_LOAD_ERROR:
                  case lv.ErrorDetails.FRAG_LOAD_TIMEOUT:
                  case lv.ErrorDetails.KEY_LOAD_ERROR:
                  case lv.ErrorDetails.KEY_LOAD_TIMEOUT:
                    Pv = bv.frag.level, Tv = !0;
                    break;
                  case lv.ErrorDetails.LEVEL_LOAD_ERROR:
                  case lv.ErrorDetails.LEVEL_LOAD_TIMEOUT:
                    Pv = bv.context.level, $v = !0;
                    break;
                  case lv.ErrorDetails.REMUX_ALLOC_ERROR:
                    Pv = bv.level, $v = !0;
                    break;
                }
                Pv !== void 0 && this.recoverLevel(bv, Pv, $v, Tv);
              }, kv.recoverLevel = function(bv, $v, Tv, Pv) {
                var Fv = this, Uv = this.hls.config, qv = bv.details, _1 = this._levels[$v], d1, W1, X1;
                if (_1.loadError++, _1.fragmentError = Pv, Tv)
                  if (this.levelRetryCount + 1 <= Uv.levelLoadingMaxRetry)
                    W1 = Math.min(Math.pow(2, this.levelRetryCount) * Uv.levelLoadingRetryDelay, Uv.levelLoadingMaxRetryTimeout), this.timer = setTimeout(function() {
                      return Fv.loadLevel();
                    }, W1), bv.levelRetry = !0, this.levelRetryCount++, dv.logger.warn("level controller, " + qv + ", retry in " + W1 + " ms, current retry count is " + this.levelRetryCount);
                  else {
                    dv.logger.error("level controller, cannot recover from " + qv + " error"), this.currentLevelIndex = null, this.clearTimer(), bv.fatal = !0;
                    return;
                  }
                (Tv || Pv) && (d1 = _1.url.length, d1 > 1 && _1.loadError < d1 ? (_1.urlId = (_1.urlId + 1) % d1, _1.details = void 0, dv.logger.warn("level controller, " + qv + " for level " + $v + ": switching to redundant URL-id " + _1.urlId)) : this.manualLevelIndex === -1 ? (X1 = $v === 0 ? this._levels.length - 1 : $v - 1, dv.logger.warn("level controller, " + qv + ": switch to " + X1), this.hls.nextAutoLevel = this.currentLevelIndex = X1) : Pv && (dv.logger.warn("level controller, " + qv + ": reload a fragment"), this.currentLevelIndex = null));
              }, kv.onFragLoaded = function(bv) {
                var $v = bv.frag;
                if ($v !== void 0 && $v.type === "main") {
                  var Tv = this._levels[$v.level];
                  Tv !== void 0 && (Tv.fragmentError = !1, Tv.loadError = 0, this.levelRetryCount = 0);
                }
              }, kv.onLevelLoaded = function(bv) {
                var $v = this, Tv = bv.level, Pv = bv.details;
                if (Tv === this.currentLevelIndex) {
                  var Fv = this._levels[Tv];
                  if (Fv.fragmentError || (Fv.loadError = 0, this.levelRetryCount = 0), Pv.live) {
                    var Uv = V$(Fv.details, Pv, bv.stats.trequest);
                    dv.logger.log("live playlist, reload in " + Math.round(Uv) + " ms"), this.timer = setTimeout(function() {
                      return $v.loadLevel();
                    }, Uv);
                  } else
                    this.clearTimer();
                }
              }, kv.onAudioTrackSwitched = function(bv) {
                var $v = this.hls.audioTracks[bv.id].groupId, Tv = this.hls.levels[this.currentLevelIndex];
                if (Tv && Tv.audioGroupIds) {
                  for (var Pv = -1, Fv = 0; Fv < Tv.audioGroupIds.length; Fv++)
                    if (Tv.audioGroupIds[Fv] === $v) {
                      Pv = Fv;
                      break;
                    }
                  Pv !== Tv.urlId && (Tv.urlId = Pv, this.startLoad());
                }
              }, kv.loadLevel = function() {
                if (dv.logger.debug("call to loadLevel"), this.currentLevelIndex !== null && this.canload) {
                  var bv = this._levels[this.currentLevelIndex];
                  if (typeof bv == "object" && bv.url.length > 0) {
                    var $v = this.currentLevelIndex, Tv = bv.urlId, Pv = bv.url[Tv];
                    dv.logger.log("Attempt loading level index " + $v + " with URL-id " + Tv), this.hls.trigger(cv.default.LEVEL_LOADING, {
                      url: Pv,
                      level: $v,
                      id: Tv
                    });
                  }
                }
              }, kv.removeLevel = function(bv, $v) {
                var Tv = this.levels.filter(function(Pv, Fv) {
                  return Fv !== bv ? !0 : Pv.url.length > 1 && $v !== void 0 ? (Pv.url = Pv.url.filter(function(Uv, qv) {
                    return qv !== $v;
                  }), Pv.urlId = 0, !0) : !1;
                }).map(function(Pv, Fv) {
                  var Uv = Pv.details;
                  return Uv && Uv.fragments && Uv.fragments.forEach(function(qv) {
                    qv.level = Fv;
                  }), Pv;
                });
                this._levels = Tv, this.hls.trigger(cv.default.LEVELS_UPDATED, {
                  levels: Tv
                });
              }, a3(Rv, [{
                key: "levels",
                get: function() {
                  return this._levels;
                }
              }, {
                key: "level",
                get: function() {
                  return this.currentLevelIndex;
                },
                set: function(bv) {
                  var $v = this._levels;
                  $v && (bv = Math.min(bv, $v.length - 1), (this.currentLevelIndex !== bv || !$v[bv].details) && this.setLevelInternal(bv));
                }
              }, {
                key: "manualLevel",
                get: function() {
                  return this.manualLevelIndex;
                },
                set: function(bv) {
                  this.manualLevelIndex = bv, this._startLevel === void 0 && (this._startLevel = bv), bv !== -1 && (this.level = bv);
                }
              }, {
                key: "firstLevel",
                get: function() {
                  return this._firstLevel;
                },
                set: function(bv) {
                  this._firstLevel = bv;
                }
              }, {
                key: "startLevel",
                get: function() {
                  if (this._startLevel === void 0) {
                    var bv = this.hls.config.startLevel;
                    return bv !== void 0 ? bv : this._firstLevel;
                  } else
                    return this._startLevel;
                },
                set: function(bv) {
                  this._startLevel = bv;
                }
              }, {
                key: "nextLoadLevel",
                get: function() {
                  return this.manualLevelIndex !== -1 ? this.manualLevelIndex : this.hls.nextAutoLevel;
                },
                set: function(bv) {
                  this.level = bv, this.manualLevelIndex === -1 && (this.hls.nextAutoLevel = bv);
                }
              }]), Rv;
            }(yv), o3 = ov("./src/demux/id3.js");
            function f3(Iv, Rv) {
              var kv;
              try {
                kv = new Event("addtrack");
              } catch {
                kv = document.createEvent("Event"), kv.initEvent("addtrack", !1, !1);
              }
              kv.track = Iv, Rv.dispatchEvent(kv);
            }
            function r3(Iv) {
              if (Iv != null && Iv.cues)
                for (; Iv.cues.length > 0; )
                  Iv.removeCue(Iv.cues[0]);
            }
            function R$(Iv, Rv) {
              if (Rv < Iv[0].endTime)
                return Iv[0];
              if (Rv > Iv[Iv.length - 1].endTime)
                return Iv[Iv.length - 1];
              for (var kv = 0, bv = Iv.length - 1; kv <= bv; ) {
                var $v = Math.floor((bv + kv) / 2);
                if (Rv < Iv[$v].endTime)
                  bv = $v - 1;
                else if (Rv > Iv[$v].endTime)
                  kv = $v + 1;
                else
                  return Iv[$v];
              }
              return Iv[kv].endTime - Rv < Rv - Iv[bv].endTime ? Iv[kv] : Iv[bv];
            }
            function z$(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var zw = 0.25, G$ = /* @__PURE__ */ function(Iv) {
              z$(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.MEDIA_ATTACHED, cv.default.MEDIA_DETACHING, cv.default.FRAG_PARSING_METADATA, cv.default.LIVE_BACK_BUFFER_REACHED) || this, $v.id3Track = void 0, $v.media = void 0, $v;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                yv.prototype.destroy.call(this);
              }, kv.onMediaAttached = function(bv) {
                this.media = bv.media, this.media;
              }, kv.onMediaDetaching = function() {
                r3(this.id3Track), this.id3Track = void 0, this.media = void 0;
              }, kv.getID3Track = function(bv) {
                for (var $v = 0; $v < bv.length; $v++) {
                  var Tv = bv[$v];
                  if (Tv.kind === "metadata" && Tv.label === "id3")
                    return f3(Tv, this.media), Tv;
                }
                return this.media.addTextTrack("metadata", "id3");
              }, kv.onFragParsingMetadata = function(bv) {
                var $v = bv.frag, Tv = bv.samples;
                this.id3Track || (this.id3Track = this.getID3Track(this.media.textTracks), this.id3Track.mode = "hidden");
                for (var Pv = window.WebKitDataCue || window.VTTCue || window.TextTrackCue, Fv = 0; Fv < Tv.length; Fv++) {
                  var Uv = o3.default.getID3Frames(Tv[Fv].data);
                  if (Uv) {
                    var qv = Math.max(Tv[Fv].pts, 0), _1 = Fv < Tv.length - 1 ? Tv[Fv + 1].pts : $v.endPTS;
                    _1 || (_1 = $v.start + $v.duration);
                    var d1 = _1 - qv;
                    d1 <= 0 && (_1 = qv + zw);
                    for (var W1 = 0; W1 < Uv.length; W1++) {
                      var X1 = Uv[W1];
                      if (!o3.default.isTimeStampFrame(X1)) {
                        var i$ = new Pv(qv, _1, "");
                        i$.value = X1, this.id3Track.addCue(i$);
                      }
                    }
                  }
                }
              }, kv.onLiveBackBufferReached = function(bv) {
                var $v = bv.bufferEnd, Tv = this.id3Track;
                if (!(!Tv || !Tv.cues || !Tv.cues.length)) {
                  var Pv = R$(Tv.cues, $v);
                  if (Pv)
                    for (; Tv.cues[0] !== Pv; )
                      Tv.removeCue(Tv.cues[0]);
                }
              }, Rv;
            }(yv), i3 = G$;
            function S3() {
              var Iv = c1();
              if (!Iv)
                return !1;
              var Rv = self.SourceBuffer || self.WebKitSourceBuffer, kv = Iv && typeof Iv.isTypeSupported == "function" && Iv.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'), bv = !Rv || Rv.prototype && typeof Rv.prototype.appendBuffer == "function" && typeof Rv.prototype.remove == "function";
              return !!kv && !!bv;
            }
            var A3 = /* @__PURE__ */ function() {
              function Iv(kv) {
                this.alpha_ = void 0, this.estimate_ = void 0, this.totalWeight_ = void 0, this.alpha_ = kv ? Math.exp(Math.log(0.5) / kv) : 0, this.estimate_ = 0, this.totalWeight_ = 0;
              }
              var Rv = Iv.prototype;
              return Rv.sample = function(kv, bv) {
                var $v = Math.pow(this.alpha_, kv);
                this.estimate_ = bv * (1 - $v) + $v * this.estimate_, this.totalWeight_ += kv;
              }, Rv.getTotalWeight = function() {
                return this.totalWeight_;
              }, Rv.getEstimate = function() {
                if (this.alpha_) {
                  var kv = 1 - Math.pow(this.alpha_, this.totalWeight_);
                  return this.estimate_ / kv;
                } else
                  return this.estimate_;
              }, Iv;
            }(), F3 = A3, DD = /* @__PURE__ */ function() {
              function Iv(kv, bv, $v, Tv) {
                this.hls = void 0, this.defaultEstimate_ = void 0, this.minWeight_ = void 0, this.minDelayMs_ = void 0, this.slow_ = void 0, this.fast_ = void 0, this.hls = kv, this.defaultEstimate_ = Tv, this.minWeight_ = 1e-3, this.minDelayMs_ = 50, this.slow_ = new F3(bv), this.fast_ = new F3($v);
              }
              var Rv = Iv.prototype;
              return Rv.sample = function(kv, bv) {
                kv = Math.max(kv, this.minDelayMs_);
                var $v = 8 * bv, Tv = kv / 1e3, Pv = $v / Tv;
                this.fast_.sample(Tv, Pv), this.slow_.sample(Tv, Pv);
              }, Rv.canEstimate = function() {
                var kv = this.fast_;
                return kv && kv.getTotalWeight() >= this.minWeight_;
              }, Rv.getEstimate = function() {
                return this.canEstimate() ? Math.min(this.fast_.getEstimate(), this.slow_.getEstimate()) : this.defaultEstimate_;
              }, Rv.destroy = function() {
              }, Iv;
            }(), LD = DD;
            function QD(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function eM(Iv, Rv, kv) {
              return Rv && QD(Iv.prototype, Rv), Iv;
            }
            function tM(Iv) {
              if (Iv === void 0)
                throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
              return Iv;
            }
            function nM(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var rM = window, iM = rM.performance, oM = /* @__PURE__ */ function(Iv) {
              nM(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.FRAG_LOADING, cv.default.FRAG_LOADED, cv.default.FRAG_BUFFERED, cv.default.ERROR) || this, $v.lastLoadedFragLevel = 0, $v._nextAutoLevel = -1, $v.hls = bv, $v.timer = null, $v._bwEstimator = null, $v.onCheck = $v._abandonRulesCheck.bind(tM($v)), $v;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                this.clearTimer(), yv.prototype.destroy.call(this);
              }, kv.onFragLoading = function(bv) {
                var $v = bv.frag;
                if ($v.type === "main" && (this.timer || (this.fragCurrent = $v, this.timer = setInterval(this.onCheck, 100)), !this._bwEstimator)) {
                  var Tv = this.hls, Pv = Tv.config, Fv = $v.level, Uv = Tv.levels[Fv].details.live, qv, _1;
                  Uv ? (qv = Pv.abrEwmaFastLive, _1 = Pv.abrEwmaSlowLive) : (qv = Pv.abrEwmaFastVoD, _1 = Pv.abrEwmaSlowVoD), this._bwEstimator = new LD(Tv, _1, qv, Pv.abrEwmaDefaultEstimate);
                }
              }, kv._abandonRulesCheck = function() {
                var bv = this.hls, $v = bv.media, Tv = this.fragCurrent;
                if (Tv) {
                  var Pv = Tv.loader;
                  if (!Pv || Pv.stats && Pv.stats.aborted) {
                    dv.logger.warn("frag loader destroy or aborted, disarm abandonRules"), this.clearTimer(), this._nextAutoLevel = -1;
                    return;
                  }
                  var Fv = Pv.stats;
                  if ($v && Fv && (!$v.paused && $v.playbackRate !== 0 || !$v.readyState) && Tv.autoLevel && Tv.level) {
                    var Uv = iM.now() - Fv.trequest, qv = Math.abs($v.playbackRate);
                    if (Uv > 500 * Tv.duration / qv) {
                      var _1 = bv.levels, d1 = Math.max(1, Fv.bw ? Fv.bw / 8 : Fv.loaded * 1e3 / Uv), W1 = _1[Tv.level];
                      if (!W1)
                        return;
                      var X1 = W1.realBitrate ? Math.max(W1.realBitrate, W1.bitrate) : W1.bitrate, i$ = Fv.total ? Fv.total : Math.max(Fv.loaded, Math.round(Tv.duration * X1 / 8)), o$ = $v.currentTime, b$ = (i$ - Fv.loaded) / d1, m$ = (Mv.bufferInfo($v, o$, bv.config.maxBufferHole).end - o$) / qv;
                      if (m$ < 2 * Tv.duration / qv && b$ > m$) {
                        var k$ = bv.minAutoLevel, B$, C$;
                        for (C$ = Tv.level - 1; C$ > k$; C$--) {
                          var X$ = _1[C$].realBitrate ? Math.max(_1[C$].realBitrate, _1[C$].bitrate) : _1[C$].bitrate, l3 = Tv.duration * X$ / (8 * 0.8 * d1);
                          if (l3 < m$)
                            break;
                        }
                        B$ < b$ && (dv.logger.warn("loading too slow, abort fragment loading and switch to level " + C$ + ":fragLoadedDelay[" + C$ + "]<fragLoadedDelay[" + (Tv.level - 1) + "];bufferStarvationDelay:" + B$.toFixed(1) + "<" + b$.toFixed(1) + ":" + m$.toFixed(1)), bv.nextLoadLevel = C$, this._bwEstimator.sample(Uv, Fv.loaded), Pv.abort(), this.clearTimer(), bv.trigger(cv.default.FRAG_LOAD_EMERGENCY_ABORTED, {
                          frag: Tv,
                          stats: Fv
                        }));
                      }
                    }
                  }
                }
              }, kv.onFragLoaded = function(bv) {
                var $v = bv.frag;
                if ($v.type === "main" && Object(uv.isFiniteNumber)($v.sn)) {
                  if (this.clearTimer(), this.lastLoadedFragLevel = $v.level, this._nextAutoLevel = -1, this.hls.config.abrMaxWithRealBitrate) {
                    var Tv = this.hls.levels[$v.level], Pv = (Tv.loaded ? Tv.loaded.bytes : 0) + bv.stats.loaded, Fv = (Tv.loaded ? Tv.loaded.duration : 0) + bv.frag.duration;
                    Tv.loaded = {
                      bytes: Pv,
                      duration: Fv
                    }, Tv.realBitrate = Math.round(8 * Pv / Fv);
                  }
                  if (bv.frag.bitrateTest) {
                    var Uv = bv.stats;
                    Uv.tparsed = Uv.tbuffered = Uv.tload, this.onFragBuffered(bv);
                  }
                }
              }, kv.onFragBuffered = function(bv) {
                var $v = bv.stats, Tv = bv.frag;
                if ($v.aborted !== !0 && Tv.type === "main" && Object(uv.isFiniteNumber)(Tv.sn) && (!Tv.bitrateTest || $v.tload === $v.tbuffered)) {
                  var Pv = $v.tparsed - $v.trequest;
                  dv.logger.log("latency/loading/parsing/append/kbps:" + Math.round($v.tfirst - $v.trequest) + "/" + Math.round($v.tload - $v.tfirst) + "/" + Math.round($v.tparsed - $v.tload) + "/" + Math.round($v.tbuffered - $v.tparsed) + "/" + Math.round(8 * $v.loaded / ($v.tbuffered - $v.trequest))), this._bwEstimator.sample(Pv, $v.loaded), $v.bwEstimate = this._bwEstimator.getEstimate(), Tv.bitrateTest ? this.bitrateTestDelay = Pv / 1e3 : this.bitrateTestDelay = 0;
                }
              }, kv.onError = function(bv) {
                switch (bv.details) {
                  case lv.ErrorDetails.FRAG_LOAD_ERROR:
                  case lv.ErrorDetails.FRAG_LOAD_TIMEOUT:
                    this.clearTimer();
                    break;
                }
              }, kv.clearTimer = function() {
                clearInterval(this.timer), this.timer = null;
              }, kv._findBestLevel = function(bv, $v, Tv, Pv, Fv, Uv, qv, _1, d1) {
                for (var W1 = Fv; W1 >= Pv; W1--) {
                  var X1 = d1[W1];
                  if (X1) {
                    var i$ = X1.details, o$ = i$ ? i$.totalduration / i$.fragments.length : $v, b$ = i$ ? i$.live : !1, m$ = void 0;
                    W1 <= bv ? m$ = qv * Tv : m$ = _1 * Tv;
                    var k$ = d1[W1].realBitrate ? Math.max(d1[W1].realBitrate, d1[W1].bitrate) : d1[W1].bitrate, B$ = k$ * o$ / m$;
                    if (dv.logger.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: " + W1 + "/" + Math.round(m$) + "/" + k$ + "/" + o$ + "/" + Uv + "/" + B$), m$ > k$ && // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches
                    // we don't account for max Fetch Duration for live streams, this is to avoid switching down when near the edge of live sliding window ...
                    // special case to support startLevel = -1 (bitrateTest) on live streams : in that case we should not exit loop so that _findBestLevel will return -1
                    (!B$ || b$ && !this.bitrateTestDelay || B$ < Uv))
                      return W1;
                  }
                }
                return -1;
              }, eM(Rv, [{
                key: "nextAutoLevel",
                get: function() {
                  var bv = this._nextAutoLevel, $v = this._bwEstimator;
                  if (bv !== -1 && (!$v || !$v.canEstimate()))
                    return bv;
                  var Tv = this._nextABRAutoLevel;
                  return bv !== -1 && (Tv = Math.min(bv, Tv)), Tv;
                },
                set: function(bv) {
                  this._nextAutoLevel = bv;
                }
              }, {
                key: "_nextABRAutoLevel",
                get: function() {
                  var bv = this.hls, $v = bv.maxAutoLevel, Tv = bv.levels, Pv = bv.config, Fv = bv.minAutoLevel, Uv = bv.media, qv = this.lastLoadedFragLevel, _1 = this.fragCurrent ? this.fragCurrent.duration : 0, d1 = Uv ? Uv.currentTime : 0, W1 = Uv && Uv.playbackRate !== 0 ? Math.abs(Uv.playbackRate) : 1, X1 = this._bwEstimator ? this._bwEstimator.getEstimate() : Pv.abrEwmaDefaultEstimate, i$ = (Mv.bufferInfo(Uv, d1, Pv.maxBufferHole).end - d1) / W1, o$ = this._findBestLevel(qv, _1, X1, Fv, $v, i$, Pv.abrBandWidthFactor, Pv.abrBandWidthUpFactor, Tv);
                  if (o$ >= 0)
                    return o$;
                  dv.logger.trace("rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering");
                  var b$ = _1 ? Math.min(_1, Pv.maxStarvationDelay) : Pv.maxStarvationDelay, m$ = Pv.abrBandWidthFactor, k$ = Pv.abrBandWidthUpFactor;
                  if (i$ === 0) {
                    var B$ = this.bitrateTestDelay;
                    if (B$) {
                      var C$ = _1 ? Math.min(_1, Pv.maxLoadingDelay) : Pv.maxLoadingDelay;
                      b$ = C$ - B$, dv.logger.trace("bitrate test took " + Math.round(1e3 * B$) + "ms, set first fragment max fetchDuration to " + Math.round(1e3 * b$) + " ms"), m$ = k$ = 1;
                    }
                  }
                  return o$ = this._findBestLevel(qv, _1, X1, Fv, $v, i$ + b$, m$, k$, Tv), Math.max(o$, 0);
                }
              }]), Rv;
            }(yv), aM = oM;
            function sM(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var j3 = c1(), lM = /* @__PURE__ */ function(Iv) {
              sM(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.MEDIA_ATTACHING, cv.default.MEDIA_DETACHING, cv.default.MANIFEST_PARSED, cv.default.BUFFER_RESET, cv.default.BUFFER_APPENDING, cv.default.BUFFER_CODECS, cv.default.BUFFER_EOS, cv.default.BUFFER_FLUSHING, cv.default.LEVEL_PTS_UPDATED, cv.default.LEVEL_UPDATED) || this, $v._msDuration = null, $v._levelDuration = null, $v._levelTargetDuration = 10, $v._live = null, $v._objectUrl = null, $v._needsFlush = !1, $v._needsEos = !1, $v.config = void 0, $v.audioTimestampOffset = void 0, $v.bufferCodecEventsExpected = 0, $v._bufferCodecEventsTotal = 0, $v.media = null, $v.mediaSource = null, $v.segments = [], $v.parent = void 0, $v.appending = !1, $v.appended = 0, $v.appendError = 0, $v.flushBufferCounter = 0, $v.tracks = {}, $v.pendingTracks = {}, $v.sourceBuffer = {}, $v.flushRange = [], $v._onMediaSourceOpen = function() {
                  dv.logger.log("media source opened"), $v.hls.trigger(cv.default.MEDIA_ATTACHED, {
                    media: $v.media
                  });
                  var Tv = $v.mediaSource;
                  Tv && Tv.removeEventListener("sourceopen", $v._onMediaSourceOpen), $v.checkPendingTracks();
                }, $v._onMediaSourceClose = function() {
                  dv.logger.log("media source closed");
                }, $v._onMediaSourceEnded = function() {
                  dv.logger.log("media source ended");
                }, $v._onSBUpdateEnd = function() {
                  if ($v.audioTimestampOffset && $v.sourceBuffer.audio) {
                    var Tv = $v.sourceBuffer.audio;
                    dv.logger.warn("change mpeg audio timestamp offset from " + Tv.timestampOffset + " to " + $v.audioTimestampOffset), Tv.timestampOffset = $v.audioTimestampOffset, delete $v.audioTimestampOffset;
                  }
                  $v._needsFlush && $v.doFlush(), $v._needsEos && $v.checkEos(), $v.appending = !1;
                  var Pv = $v.parent, Fv = $v.segments.reduce(function(W1, X1) {
                    return X1.parent === Pv ? W1 + 1 : W1;
                  }, 0), Uv = {}, qv = $v.sourceBuffer;
                  for (var _1 in qv) {
                    var d1 = qv[_1];
                    if (!d1)
                      throw Error("handling source buffer update end error: source buffer for " + _1 + " uninitilized and unable to update buffered TimeRanges.");
                    Uv[_1] = d1.buffered;
                  }
                  $v.hls.trigger(cv.default.BUFFER_APPENDED, {
                    parent: Pv,
                    pending: Fv,
                    timeRanges: Uv
                  }), $v._needsFlush || $v.doAppending(), $v.updateMediaElementDuration(), Fv === 0 && $v.flushLiveBackBuffer();
                }, $v._onSBUpdateError = function(Tv) {
                  dv.logger.error("sourceBuffer error:", Tv), $v.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.MEDIA_ERROR,
                    details: lv.ErrorDetails.BUFFER_APPENDING_ERROR,
                    fatal: !1
                  });
                }, $v.config = bv.config, $v;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                yv.prototype.destroy.call(this);
              }, kv.onLevelPtsUpdated = function(bv) {
                var $v = bv.type, Tv = this.tracks.audio;
                if ($v === "audio" && Tv && Tv.container === "audio/mpeg") {
                  var Pv = this.sourceBuffer.audio;
                  if (!Pv)
                    throw Error("Level PTS Updated and source buffer for audio uninitalized");
                  var Fv = Math.abs(Pv.timestampOffset - bv.start);
                  if (Fv > 0.1) {
                    var Uv = Pv.updating;
                    try {
                      Pv.abort();
                    } catch (qv) {
                      dv.logger.warn("can not abort audio buffer: " + qv);
                    }
                    Uv ? this.audioTimestampOffset = bv.start : (dv.logger.warn("change mpeg audio timestamp offset from " + Pv.timestampOffset + " to " + bv.start), Pv.timestampOffset = bv.start);
                  }
                }
              }, kv.onManifestParsed = function(bv) {
                var $v = 2;
                (bv.audio && !bv.video || !bv.altAudio) && ($v = 1), this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = $v, dv.logger.log(this.bufferCodecEventsExpected + " bufferCodec event(s) expected");
              }, kv.onMediaAttaching = function(bv) {
                var $v = this.media = bv.media;
                if ($v && j3) {
                  var Tv = this.mediaSource = new j3();
                  Tv.addEventListener("sourceopen", this._onMediaSourceOpen), Tv.addEventListener("sourceended", this._onMediaSourceEnded), Tv.addEventListener("sourceclose", this._onMediaSourceClose), $v.src = window.URL.createObjectURL(Tv), this._objectUrl = $v.src;
                }
              }, kv.onMediaDetaching = function() {
                dv.logger.log("media source detaching");
                var bv = this.mediaSource;
                if (bv) {
                  if (bv.readyState === "open")
                    try {
                      bv.endOfStream();
                    } catch ($v) {
                      dv.logger.warn("onMediaDetaching:" + $v.message + " while calling endOfStream");
                    }
                  bv.removeEventListener("sourceopen", this._onMediaSourceOpen), bv.removeEventListener("sourceended", this._onMediaSourceEnded), bv.removeEventListener("sourceclose", this._onMediaSourceClose), this.media && (this._objectUrl && window.URL.revokeObjectURL(this._objectUrl), this.media.src === this._objectUrl ? (this.media.removeAttribute("src"), this.media.load()) : dv.logger.warn("media.src was changed by a third party - skip cleanup")), this.mediaSource = null, this.media = null, this._objectUrl = null, this.bufferCodecEventsExpected = this._bufferCodecEventsTotal, this.pendingTracks = {}, this.tracks = {}, this.sourceBuffer = {}, this.flushRange = [], this.segments = [], this.appended = 0;
                }
                this.hls.trigger(cv.default.MEDIA_DETACHED);
              }, kv.checkPendingTracks = function() {
                var bv = this.bufferCodecEventsExpected, $v = this.pendingTracks, Tv = Object.keys($v).length;
                (Tv && !bv || Tv === 2) && (this.createSourceBuffers($v), this.pendingTracks = {}, this.doAppending());
              }, kv.onBufferReset = function() {
                var bv = this.sourceBuffer;
                for (var $v in bv) {
                  var Tv = bv[$v];
                  try {
                    Tv && (this.mediaSource && this.mediaSource.removeSourceBuffer(Tv), Tv.removeEventListener("updateend", this._onSBUpdateEnd), Tv.removeEventListener("error", this._onSBUpdateError));
                  } catch {
                  }
                }
                this.sourceBuffer = {}, this.flushRange = [], this.segments = [], this.appended = 0;
              }, kv.onBufferCodecs = function(bv) {
                var $v = this;
                Object.keys(this.sourceBuffer).length || (Object.keys(bv).forEach(function(Tv) {
                  $v.pendingTracks[Tv] = bv[Tv];
                }), this.bufferCodecEventsExpected = Math.max(this.bufferCodecEventsExpected - 1, 0), this.mediaSource && this.mediaSource.readyState === "open" && this.checkPendingTracks());
              }, kv.createSourceBuffers = function(bv) {
                var $v = this.sourceBuffer, Tv = this.mediaSource;
                if (!Tv)
                  throw Error("createSourceBuffers called when mediaSource was null");
                for (var Pv in bv)
                  if (!$v[Pv]) {
                    var Fv = bv[Pv];
                    if (!Fv)
                      throw Error("source buffer exists for track " + Pv + ", however track does not");
                    var Uv = Fv.levelCodec || Fv.codec, qv = Fv.container + ";codecs=" + Uv;
                    dv.logger.log("creating sourceBuffer(" + qv + ")");
                    try {
                      var _1 = $v[Pv] = Tv.addSourceBuffer(qv);
                      _1.addEventListener("updateend", this._onSBUpdateEnd), _1.addEventListener("error", this._onSBUpdateError), this.tracks[Pv] = {
                        buffer: _1,
                        codec: Uv,
                        id: Fv.id,
                        container: Fv.container,
                        levelCodec: Fv.levelCodec
                      };
                    } catch (d1) {
                      dv.logger.error("error while trying to add sourceBuffer:" + d1.message), this.hls.trigger(cv.default.ERROR, {
                        type: lv.ErrorTypes.MEDIA_ERROR,
                        details: lv.ErrorDetails.BUFFER_ADD_CODEC_ERROR,
                        fatal: !1,
                        err: d1,
                        mimeType: qv
                      });
                    }
                  }
                this.hls.trigger(cv.default.BUFFER_CREATED, {
                  tracks: this.tracks
                });
              }, kv.onBufferAppending = function(bv) {
                this._needsFlush || (this.segments ? this.segments.push(bv) : this.segments = [bv], this.doAppending());
              }, kv.onBufferEos = function(bv) {
                for (var $v in this.sourceBuffer)
                  if (!bv.type || bv.type === $v) {
                    var Tv = this.sourceBuffer[$v];
                    Tv && !Tv.ended && (Tv.ended = !0, dv.logger.log($v + " sourceBuffer now EOS"));
                  }
                this.checkEos();
              }, kv.checkEos = function() {
                var bv = this.sourceBuffer, $v = this.mediaSource;
                if (!$v || $v.readyState !== "open") {
                  this._needsEos = !1;
                  return;
                }
                for (var Tv in bv) {
                  var Pv = bv[Tv];
                  if (Pv) {
                    if (!Pv.ended)
                      return;
                    if (Pv.updating) {
                      this._needsEos = !0;
                      return;
                    }
                  }
                }
                dv.logger.log("all media data are available, signal endOfStream() to MediaSource and stop loading fragment");
                try {
                  $v.endOfStream();
                } catch {
                  dv.logger.warn("exception while calling mediaSource.endOfStream()");
                }
                this._needsEos = !1;
              }, kv.onBufferFlushing = function(bv) {
                bv.type ? this.flushRange.push({
                  start: bv.startOffset,
                  end: bv.endOffset,
                  type: bv.type
                }) : (this.flushRange.push({
                  start: bv.startOffset,
                  end: bv.endOffset,
                  type: "video"
                }), this.flushRange.push({
                  start: bv.startOffset,
                  end: bv.endOffset,
                  type: "audio"
                })), this.flushBufferCounter = 0, this.doFlush();
              }, kv.flushLiveBackBuffer = function() {
                if (this._live) {
                  var bv = this.config.liveBackBufferLength;
                  if (!(!isFinite(bv) || bv < 0)) {
                    if (!this.media) {
                      dv.logger.error("flushLiveBackBuffer called without attaching media");
                      return;
                    }
                    for (var $v = this.media.currentTime, Tv = this.sourceBuffer, Pv = Object.keys(Tv), Fv = $v - Math.max(bv, this._levelTargetDuration), Uv = Pv.length - 1; Uv >= 0; Uv--) {
                      var qv = Pv[Uv], _1 = Tv[qv];
                      if (_1) {
                        var d1 = _1.buffered;
                        d1.length > 0 && Fv > d1.start(0) && this.removeBufferRange(qv, _1, 0, Fv) && this.hls.trigger(cv.default.LIVE_BACK_BUFFER_REACHED, {
                          bufferEnd: Fv
                        });
                      }
                    }
                  }
                }
              }, kv.onLevelUpdated = function(bv) {
                var $v = bv.details;
                $v.fragments.length > 0 && (this._levelDuration = $v.totalduration + $v.fragments[0].start, this._levelTargetDuration = $v.averagetargetduration || $v.targetduration || 10, this._live = $v.live, this.updateMediaElementDuration());
              }, kv.updateMediaElementDuration = function() {
                var bv = this.config, $v;
                if (!(this._levelDuration === null || !this.media || !this.mediaSource || !this.sourceBuffer || this.media.readyState === 0 || this.mediaSource.readyState !== "open")) {
                  for (var Tv in this.sourceBuffer) {
                    var Pv = this.sourceBuffer[Tv];
                    if (Pv && Pv.updating === !0)
                      return;
                  }
                  $v = this.media.duration, this._msDuration === null && (this._msDuration = this.mediaSource.duration), this._live === !0 && bv.liveDurationInfinity === !0 ? (dv.logger.log("Media Source duration is set to Infinity"), this._msDuration = this.mediaSource.duration = 1 / 0) : (this._levelDuration > this._msDuration && this._levelDuration > $v || !Object(uv.isFiniteNumber)($v)) && (dv.logger.log("Updating Media Source duration to " + this._levelDuration.toFixed(3)), this._msDuration = this.mediaSource.duration = this._levelDuration);
                }
              }, kv.doFlush = function() {
                for (; this.flushRange.length; ) {
                  var bv = this.flushRange[0];
                  if (this.flushBuffer(bv.start, bv.end, bv.type))
                    this.flushRange.shift(), this.flushBufferCounter = 0;
                  else {
                    this._needsFlush = !0;
                    return;
                  }
                }
                if (this.flushRange.length === 0) {
                  this._needsFlush = !1;
                  var $v = 0, Tv = this.sourceBuffer;
                  try {
                    for (var Pv in Tv) {
                      var Fv = Tv[Pv];
                      Fv && ($v += Fv.buffered.length);
                    }
                  } catch {
                    dv.logger.error("error while accessing sourceBuffer.buffered");
                  }
                  this.appended = $v, this.hls.trigger(cv.default.BUFFER_FLUSHED);
                }
              }, kv.doAppending = function() {
                var bv = this.config, $v = this.hls, Tv = this.segments, Pv = this.sourceBuffer;
                if (Object.keys(Pv).length) {
                  if (!this.media || this.media.error) {
                    this.segments = [], dv.logger.error("trying to append although a media error occured, flush segment and abort");
                    return;
                  }
                  if (!this.appending) {
                    var Fv = Tv.shift();
                    if (Fv)
                      try {
                        var Uv = Pv[Fv.type];
                        if (!Uv) {
                          this._onSBUpdateEnd();
                          return;
                        }
                        if (Uv.updating) {
                          Tv.unshift(Fv);
                          return;
                        }
                        Uv.ended = !1, this.parent = Fv.parent, Uv.appendBuffer(Fv.data), this.appendError = 0, this.appended++, this.appending = !0;
                      } catch (_1) {
                        dv.logger.error("error while trying to append buffer:" + _1.message), Tv.unshift(Fv);
                        var qv = {
                          type: lv.ErrorTypes.MEDIA_ERROR,
                          parent: Fv.parent,
                          details: "",
                          fatal: !1
                        };
                        _1.code === 22 ? (this.segments = [], qv.details = lv.ErrorDetails.BUFFER_FULL_ERROR) : (this.appendError++, qv.details = lv.ErrorDetails.BUFFER_APPEND_ERROR, this.appendError > bv.appendErrorMaxRetry && (dv.logger.log("fail " + bv.appendErrorMaxRetry + " times to append segment in sourceBuffer"), this.segments = [], qv.fatal = !0)), $v.trigger(cv.default.ERROR, qv);
                      }
                  }
                }
              }, kv.flushBuffer = function(bv, $v, Tv) {
                var Pv = this.sourceBuffer;
                if (!Object.keys(Pv).length)
                  return !0;
                var Fv = "null";
                if (this.media && (Fv = this.media.currentTime.toFixed(3)), dv.logger.log("flushBuffer,pos/start/end: " + Fv + "/" + bv + "/" + $v), this.flushBufferCounter >= this.appended)
                  return dv.logger.warn("abort flushing too many retries"), !0;
                var Uv = Pv[Tv];
                if (Uv) {
                  if (Uv.ended = !1, Uv.updating)
                    return dv.logger.warn("cannot flush, sb updating in progress"), !1;
                  if (this.removeBufferRange(Tv, Uv, bv, $v))
                    return this.flushBufferCounter++, !1;
                }
                return dv.logger.log("buffer flushed"), !0;
              }, kv.removeBufferRange = function(bv, $v, Tv, Pv) {
                try {
                  for (var Fv = 0; Fv < $v.buffered.length; Fv++) {
                    var Uv = $v.buffered.start(Fv), qv = $v.buffered.end(Fv), _1 = Math.max(Uv, Tv), d1 = Math.min(qv, Pv);
                    if (Math.min(d1, qv) - _1 > 0.5) {
                      var W1 = "null";
                      return this.media && (W1 = this.media.currentTime.toString()), dv.logger.log("sb remove " + bv + " [" + _1 + "," + d1 + "], of [" + Uv + "," + qv + "], pos:" + W1), $v.remove(_1, d1), !0;
                    }
                  }
                } catch (X1) {
                  dv.logger.warn("removeBufferRange failed", X1);
                }
                return !1;
              }, Rv;
            }(yv), cM = lM;
            function B3(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function uM(Iv, Rv, kv) {
              return Rv && B3(Iv.prototype, Rv), kv && B3(Iv, kv), Iv;
            }
            function dM(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var fM = /* @__PURE__ */ function(Iv) {
              dM(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.FPS_DROP_LEVEL_CAPPING, cv.default.MEDIA_ATTACHING, cv.default.MANIFEST_PARSED, cv.default.LEVELS_UPDATED, cv.default.BUFFER_CODECS, cv.default.MEDIA_DETACHING) || this, $v.autoLevelCapping = Number.POSITIVE_INFINITY, $v.firstLevel = null, $v.levels = [], $v.media = null, $v.restrictedLevels = [], $v.timer = null, $v.clientRect = null, $v;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                this.hls.config.capLevelToPlayerSize && (this.media = null, this.clientRect = null, this.stopCapping());
              }, kv.onFpsDropLevelCapping = function(bv) {
                Rv.isLevelAllowed(bv.droppedLevel, this.restrictedLevels) && this.restrictedLevels.push(bv.droppedLevel);
              }, kv.onMediaAttaching = function(bv) {
                this.media = bv.media instanceof window.HTMLVideoElement ? bv.media : null;
              }, kv.onManifestParsed = function(bv) {
                var $v = this.hls;
                this.restrictedLevels = [], this.levels = bv.levels, this.firstLevel = bv.firstLevel, $v.config.capLevelToPlayerSize && bv.video && this.startCapping();
              }, kv.onBufferCodecs = function(bv) {
                var $v = this.hls;
                $v.config.capLevelToPlayerSize && bv.video && this.startCapping();
              }, kv.onLevelsUpdated = function(bv) {
                this.levels = bv.levels;
              }, kv.onMediaDetaching = function() {
                this.stopCapping();
              }, kv.detectPlayerSize = function() {
                if (this.media) {
                  var bv = this.levels ? this.levels.length : 0;
                  if (bv) {
                    var $v = this.hls;
                    $v.autoLevelCapping = this.getMaxLevel(bv - 1), $v.autoLevelCapping > this.autoLevelCapping && $v.streamController.nextLevelSwitch(), this.autoLevelCapping = $v.autoLevelCapping;
                  }
                }
              }, kv.getMaxLevel = function(bv) {
                var $v = this;
                if (!this.levels)
                  return -1;
                var Tv = this.levels.filter(function(Pv, Fv) {
                  return Rv.isLevelAllowed(Fv, $v.restrictedLevels) && Fv <= bv;
                });
                return this.clientRect = null, Rv.getMaxLevelByMediaSize(Tv, this.mediaWidth, this.mediaHeight);
              }, kv.startCapping = function() {
                this.timer || (this.autoLevelCapping = Number.POSITIVE_INFINITY, this.hls.firstLevel = this.getMaxLevel(this.firstLevel), clearInterval(this.timer), this.timer = setInterval(this.detectPlayerSize.bind(this), 1e3), this.detectPlayerSize());
              }, kv.stopCapping = function() {
                this.restrictedLevels = [], this.firstLevel = null, this.autoLevelCapping = Number.POSITIVE_INFINITY, this.timer && (this.timer = clearInterval(this.timer), this.timer = null);
              }, kv.getDimensions = function() {
                if (this.clientRect)
                  return this.clientRect;
                var bv = this.media, $v = {
                  width: 0,
                  height: 0
                };
                if (bv) {
                  var Tv = bv.getBoundingClientRect();
                  $v.width = Tv.width, $v.height = Tv.height, !$v.width && !$v.height && ($v.width = Tv.right - Tv.left || bv.width || 0, $v.height = Tv.bottom - Tv.top || bv.height || 0);
                }
                return this.clientRect = $v, $v;
              }, Rv.isLevelAllowed = function(bv, $v) {
                return $v === void 0 && ($v = []), $v.indexOf(bv) === -1;
              }, Rv.getMaxLevelByMediaSize = function(bv, $v, Tv) {
                if (!bv || bv && !bv.length)
                  return -1;
                for (var Pv = function(_1, d1) {
                  return d1 ? _1.width !== d1.width || _1.height !== d1.height : !0;
                }, Fv = bv.length - 1, Uv = 0; Uv < bv.length; Uv += 1) {
                  var qv = bv[Uv];
                  if ((qv.width >= $v || qv.height >= Tv) && Pv(qv, bv[Uv + 1])) {
                    Fv = Uv;
                    break;
                  }
                }
                return Fv;
              }, uM(Rv, [{
                key: "mediaWidth",
                get: function() {
                  return this.getDimensions().width * Rv.contentScaleFactor;
                }
              }, {
                key: "mediaHeight",
                get: function() {
                  return this.getDimensions().height * Rv.contentScaleFactor;
                }
              }], [{
                key: "contentScaleFactor",
                get: function() {
                  var bv = 1;
                  try {
                    bv = window.devicePixelRatio;
                  } catch {
                  }
                  return bv;
                }
              }]), Rv;
            }(yv), hM = fM;
            function pM(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var mM = window, gM = mM.performance, vM = /* @__PURE__ */ function(Iv) {
              pM(Rv, Iv);
              function Rv(bv) {
                return Iv.call(this, bv, cv.default.MEDIA_ATTACHING) || this;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                this.timer && clearInterval(this.timer), this.isVideoPlaybackQualityAvailable = !1;
              }, kv.onMediaAttaching = function(bv) {
                var $v = this.hls.config;
                if ($v.capLevelOnFPSDrop) {
                  var Tv = this.video = bv.media instanceof window.HTMLVideoElement ? bv.media : null;
                  typeof Tv.getVideoPlaybackQuality == "function" && (this.isVideoPlaybackQualityAvailable = !0), clearInterval(this.timer), this.timer = setInterval(this.checkFPSInterval.bind(this), $v.fpsDroppedMonitoringPeriod);
                }
              }, kv.checkFPS = function(bv, $v, Tv) {
                var Pv = gM.now();
                if ($v) {
                  if (this.lastTime) {
                    var Fv = Pv - this.lastTime, Uv = Tv - this.lastDroppedFrames, qv = $v - this.lastDecodedFrames, _1 = 1e3 * Uv / Fv, d1 = this.hls;
                    if (d1.trigger(cv.default.FPS_DROP, {
                      currentDropped: Uv,
                      currentDecoded: qv,
                      totalDroppedFrames: Tv
                    }), _1 > 0 && Uv > d1.config.fpsDroppedMonitoringThreshold * qv) {
                      var W1 = d1.currentLevel;
                      dv.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: " + W1), W1 > 0 && (d1.autoLevelCapping === -1 || d1.autoLevelCapping >= W1) && (W1 = W1 - 1, d1.trigger(cv.default.FPS_DROP_LEVEL_CAPPING, {
                        level: W1,
                        droppedLevel: d1.currentLevel
                      }), d1.autoLevelCapping = W1, d1.streamController.nextLevelSwitch());
                    }
                  }
                  this.lastTime = Pv, this.lastDroppedFrames = Tv, this.lastDecodedFrames = $v;
                }
              }, kv.checkFPSInterval = function() {
                var bv = this.video;
                if (bv)
                  if (this.isVideoPlaybackQualityAvailable) {
                    var $v = bv.getVideoPlaybackQuality();
                    this.checkFPS(bv, $v.totalVideoFrames, $v.droppedVideoFrames);
                  } else
                    this.checkFPS(bv, bv.webkitDecodedFrameCount, bv.webkitDroppedFrameCount);
              }, Rv;
            }(yv), yM = vM, bM = /* @__PURE__ */ function() {
              function Iv(kv) {
                kv && kv.xhrSetup && (this.xhrSetup = kv.xhrSetup);
              }
              var Rv = Iv.prototype;
              return Rv.destroy = function() {
                this.abort(), this.loader = null;
              }, Rv.abort = function() {
                var kv = this.loader;
                kv && kv.readyState !== 4 && (this.stats.aborted = !0, kv.abort()), window.clearTimeout(this.requestTimeout), this.requestTimeout = null, window.clearTimeout(this.retryTimeout), this.retryTimeout = null;
              }, Rv.load = function(kv, bv, $v) {
                this.context = kv, this.config = bv, this.callbacks = $v, this.stats = {
                  trequest: window.performance.now(),
                  retry: 0
                }, this.retryDelay = bv.retryDelay, this.loadInternal();
              }, Rv.loadInternal = function() {
                var kv, bv = this.context;
                kv = this.loader = new window.XMLHttpRequest();
                var $v = this.stats;
                $v.tfirst = 0, $v.loaded = 0;
                var Tv = this.xhrSetup;
                try {
                  if (Tv)
                    try {
                      Tv(kv, bv.url);
                    } catch {
                      kv.open("GET", bv.url, !0), Tv(kv, bv.url);
                    }
                  kv.readyState || kv.open("GET", bv.url, !0);
                } catch (Pv) {
                  this.callbacks.onError({
                    code: kv.status,
                    text: Pv.message
                  }, bv, kv);
                  return;
                }
                bv.rangeEnd && kv.setRequestHeader("Range", "bytes=" + bv.rangeStart + "-" + (bv.rangeEnd - 1)), kv.onreadystatechange = this.readystatechange.bind(this), kv.onprogress = this.loadprogress.bind(this), kv.responseType = bv.responseType, this.requestTimeout = window.setTimeout(this.loadtimeout.bind(this), this.config.timeout), kv.send();
              }, Rv.readystatechange = function(kv) {
                var bv = kv.currentTarget, $v = bv.readyState, Tv = this.stats, Pv = this.context, Fv = this.config;
                if (!Tv.aborted && $v >= 2)
                  if (window.clearTimeout(this.requestTimeout), Tv.tfirst === 0 && (Tv.tfirst = Math.max(window.performance.now(), Tv.trequest)), $v === 4) {
                    var Uv = bv.status;
                    if (Uv >= 200 && Uv < 300) {
                      Tv.tload = Math.max(Tv.tfirst, window.performance.now());
                      var qv, _1;
                      Pv.responseType === "arraybuffer" ? (qv = bv.response, _1 = qv.byteLength) : (qv = bv.responseText, _1 = qv.length), Tv.loaded = Tv.total = _1;
                      var d1 = {
                        url: bv.responseURL,
                        data: qv
                      };
                      this.callbacks.onSuccess(d1, Tv, Pv, bv);
                    } else
                      Tv.retry >= Fv.maxRetry || Uv >= 400 && Uv < 499 ? (dv.logger.error(Uv + " while loading " + Pv.url), this.callbacks.onError({
                        code: Uv,
                        text: bv.statusText
                      }, Pv, bv)) : (dv.logger.warn(Uv + " while loading " + Pv.url + ", retrying in " + this.retryDelay + "..."), this.destroy(), this.retryTimeout = window.setTimeout(this.loadInternal.bind(this), this.retryDelay), this.retryDelay = Math.min(2 * this.retryDelay, Fv.maxRetryDelay), Tv.retry++);
                  } else
                    this.requestTimeout = window.setTimeout(this.loadtimeout.bind(this), Fv.timeout);
              }, Rv.loadtimeout = function() {
                dv.logger.warn("timeout while loading " + this.context.url), this.callbacks.onTimeout(this.stats, this.context, null);
              }, Rv.loadprogress = function(kv) {
                var bv = kv.currentTarget, $v = this.stats;
                $v.loaded = kv.loaded, kv.lengthComputable && ($v.total = kv.total);
                var Tv = this.callbacks.onProgress;
                Tv && Tv($v, this.context, null, bv);
              }, Iv;
            }(), SM = bM;
            function _M(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function $M(Iv, Rv, kv) {
              return Rv && _M(Iv.prototype, Rv), Iv;
            }
            function EM(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var wM = /* @__PURE__ */ function(Iv) {
              EM(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.MANIFEST_LOADING, cv.default.MANIFEST_PARSED, cv.default.AUDIO_TRACK_LOADED, cv.default.AUDIO_TRACK_SWITCHED, cv.default.LEVEL_LOADED, cv.default.ERROR) || this, $v._trackId = -1, $v._selectDefaultTrack = !0, $v.tracks = [], $v.trackIdBlacklist = /* @__PURE__ */ Object.create(null), $v.audioGroupId = null, $v;
              }
              var kv = Rv.prototype;
              return kv.onManifestLoading = function() {
                this.tracks = [], this._trackId = -1, this._selectDefaultTrack = !0;
              }, kv.onManifestParsed = function(bv) {
                var $v = this.tracks = bv.audioTracks || [];
                this.hls.trigger(cv.default.AUDIO_TRACKS_UPDATED, {
                  audioTracks: $v
                }), this._selectAudioGroup(this.hls.nextLoadLevel);
              }, kv.onAudioTrackLoaded = function(bv) {
                if (bv.id >= this.tracks.length) {
                  dv.logger.warn("Invalid audio track id:", bv.id);
                  return;
                }
                if (dv.logger.log("audioTrack " + bv.id + " loaded"), this.tracks[bv.id].details = bv.details, bv.details.live && !this.hasInterval()) {
                  var $v = bv.details.targetduration * 1e3;
                  this.setInterval($v);
                }
                !bv.details.live && this.hasInterval() && this.clearInterval();
              }, kv.onAudioTrackSwitched = function(bv) {
                var $v = this.tracks[bv.id].groupId;
                $v && this.audioGroupId !== $v && (this.audioGroupId = $v);
              }, kv.onLevelLoaded = function(bv) {
                this._selectAudioGroup(bv.level);
              }, kv.onError = function(bv) {
                bv.type === lv.ErrorTypes.NETWORK_ERROR && (bv.fatal && this.clearInterval(), bv.details === lv.ErrorDetails.AUDIO_TRACK_LOAD_ERROR && (dv.logger.warn("Network failure on audio-track id:", bv.context.id), this._handleLoadError()));
              }, kv._setAudioTrack = function(bv) {
                if (this._trackId === bv && this.tracks[this._trackId].details) {
                  dv.logger.debug("Same id as current audio-track passed, and track details available -> no-op");
                  return;
                }
                if (bv < 0 || bv >= this.tracks.length) {
                  dv.logger.warn("Invalid id passed to audio-track controller");
                  return;
                }
                var $v = this.tracks[bv];
                dv.logger.log("Now switching to audio-track index " + bv), this.clearInterval(), this._trackId = bv;
                var Tv = $v.url, Pv = $v.type, Fv = $v.id;
                this.hls.trigger(cv.default.AUDIO_TRACK_SWITCHING, {
                  id: Fv,
                  type: Pv,
                  url: Tv
                }), this._loadTrackDetailsIfNeeded($v);
              }, kv.doTick = function() {
                this._updateTrack(this._trackId);
              }, kv._selectAudioGroup = function(bv) {
                var $v = this.hls.levels[bv];
                if (!(!$v || !$v.audioGroupIds)) {
                  var Tv = $v.audioGroupIds[$v.urlId];
                  this.audioGroupId !== Tv && (this.audioGroupId = Tv, this._selectInitialAudioTrack());
                }
              }, kv._selectInitialAudioTrack = function() {
                var bv = this, $v = this.tracks;
                if ($v.length) {
                  var Tv = this.tracks[this._trackId], Pv = null;
                  if (Tv && (Pv = Tv.name), this._selectDefaultTrack) {
                    var Fv = $v.filter(function(_1) {
                      return _1.default;
                    });
                    Fv.length ? $v = Fv : dv.logger.warn("No default audio tracks defined");
                  }
                  var Uv = !1, qv = function() {
                    $v.forEach(function(_1) {
                      Uv || (!bv.audioGroupId || _1.groupId === bv.audioGroupId) && (!Pv || Pv === _1.name) && (bv._setAudioTrack(_1.id), Uv = !0);
                    });
                  };
                  qv(), Uv || (Pv = null, qv()), Uv || (dv.logger.error("No track found for running audio group-ID: " + this.audioGroupId), this.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.MEDIA_ERROR,
                    details: lv.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,
                    fatal: !0
                  }));
                }
              }, kv._needsTrackLoading = function(bv) {
                var $v = bv.details, Tv = bv.url;
                return !$v || $v.live ? !!Tv : !1;
              }, kv._loadTrackDetailsIfNeeded = function(bv) {
                if (this._needsTrackLoading(bv)) {
                  var $v = bv.url, Tv = bv.id;
                  dv.logger.log("loading audio-track playlist for id: " + Tv), this.hls.trigger(cv.default.AUDIO_TRACK_LOADING, {
                    url: $v,
                    id: Tv
                  });
                }
              }, kv._updateTrack = function(bv) {
                if (!(bv < 0 || bv >= this.tracks.length)) {
                  this.clearInterval(), this._trackId = bv, dv.logger.log("trying to update audio-track " + bv);
                  var $v = this.tracks[bv];
                  this._loadTrackDetailsIfNeeded($v);
                }
              }, kv._handleLoadError = function() {
                this.trackIdBlacklist[this._trackId] = !0;
                var bv = this._trackId, $v = this.tracks[bv], Tv = $v.name, Pv = $v.language, Fv = $v.groupId;
                dv.logger.warn("Loading failed on audio track id: " + bv + ", group-id: " + Fv + ', name/language: "' + Tv + '" / "' + Pv + '"');
                for (var Uv = bv, qv = 0; qv < this.tracks.length; qv++)
                  if (!this.trackIdBlacklist[qv]) {
                    var _1 = this.tracks[qv];
                    if (_1.name === Tv) {
                      Uv = qv;
                      break;
                    }
                  }
                if (Uv === bv) {
                  dv.logger.warn('No fallback audio-track found for name/language: "' + Tv + '" / "' + Pv + '"');
                  return;
                }
                dv.logger.log("Attempting audio-track fallback id:", Uv, "group-id:", this.tracks[Uv].groupId), this._setAudioTrack(Uv);
              }, $M(Rv, [{
                key: "audioTracks",
                get: function() {
                  return this.tracks;
                }
                /**
                 * @type {number} Index into audio-tracks list of currently selected track.
                 */
              }, {
                key: "audioTrack",
                get: function() {
                  return this._trackId;
                },
                set: function(bv) {
                  this._setAudioTrack(bv), this._selectDefaultTrack = !1;
                }
              }]), Rv;
            }($$), xM = wM;
            function kM(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function TM(Iv, Rv, kv) {
              return Rv && kM(Iv.prototype, Rv), Iv;
            }
            function CM(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var AM = window, b3 = AM.performance, V3 = 100, RM = /* @__PURE__ */ function(Iv) {
              CM(Rv, Iv);
              function Rv(bv, $v) {
                var Tv;
                return Tv = Iv.call(this, bv, cv.default.MEDIA_ATTACHED, cv.default.MEDIA_DETACHING, cv.default.AUDIO_TRACKS_UPDATED, cv.default.AUDIO_TRACK_SWITCHING, cv.default.AUDIO_TRACK_LOADED, cv.default.KEY_LOADED, cv.default.FRAG_LOADED, cv.default.FRAG_PARSING_INIT_SEGMENT, cv.default.FRAG_PARSING_DATA, cv.default.FRAG_PARSED, cv.default.ERROR, cv.default.BUFFER_RESET, cv.default.BUFFER_CREATED, cv.default.BUFFER_APPENDED, cv.default.BUFFER_FLUSHED, cv.default.INIT_PTS_FOUND) || this, Tv.fragmentTracker = $v, Tv.config = bv.config, Tv.audioCodecSwap = !1, Tv._state = G1.STOPPED, Tv.initPTS = [], Tv.waitingFragment = null, Tv.videoTrackCC = null, Tv.waitingVideoCC = null, Tv;
              }
              var kv = Rv.prototype;
              return kv.onInitPtsFound = function(bv) {
                var $v = bv.id, Tv = bv.frag.cc, Pv = bv.initPTS;
                $v === "main" && (this.initPTS[Tv] = Pv, this.videoTrackCC = Tv, dv.logger.log("InitPTS for cc: " + Tv + " found from main: " + Pv), this.state === G1.WAITING_INIT_PTS && this.tick());
              }, kv.startLoad = function(bv) {
                if (this.tracks) {
                  var $v = this.lastCurrentTime;
                  this.stopLoad(), this.setInterval(V3), this.fragLoadError = 0, $v > 0 && bv === -1 ? (dv.logger.log("audio:override startPosition with lastCurrentTime @" + $v.toFixed(3)), this.state = G1.IDLE) : (this.lastCurrentTime = this.startPosition ? this.startPosition : bv, this.state = G1.STARTING), this.nextLoadPosition = this.startPosition = this.lastCurrentTime, this.tick();
                } else
                  this.startPosition = bv, this.state = G1.STOPPED;
              }, kv.doTick = function() {
                var bv, $v, Tv, Pv = this.hls, Fv = Pv.config;
                switch (this.state) {
                  case G1.ERROR:
                  case G1.PAUSED:
                  case G1.BUFFER_FLUSHING:
                    break;
                  case G1.STARTING:
                    this.state = G1.WAITING_TRACK, this.loadedmetadata = !1;
                    break;
                  case G1.IDLE:
                    var Uv = this.tracks;
                    if (!Uv || !this.media && (this.startFragRequested || !Fv.startFragPrefetch))
                      break;
                    if (this.loadedmetadata)
                      bv = this.media.currentTime;
                    else if (bv = this.nextLoadPosition, bv === void 0)
                      break;
                    var qv = this.mediaBuffer ? this.mediaBuffer : this.media, _1 = this.videoBuffer ? this.videoBuffer : this.media, d1 = bv < Fv.maxBufferHole ? Math.max(J1, Fv.maxBufferHole) : Fv.maxBufferHole, W1 = Mv.bufferInfo(qv, bv, d1), X1 = Mv.bufferInfo(_1, bv, d1), i$ = W1.len, o$ = W1.end, b$ = this.fragPrevious, m$ = Math.min(Fv.maxBufferLength, Fv.maxMaxBufferLength), k$ = Math.max(m$, X1.len), B$ = this.audioSwitch, C$ = this.trackId;
                    if ((i$ < k$ || B$) && C$ < Uv.length) {
                      if (Tv = Uv[C$].details, typeof Tv > "u") {
                        this.state = G1.WAITING_TRACK;
                        break;
                      }
                      if (!B$ && this._streamEnded(W1, Tv)) {
                        this.hls.trigger(cv.default.BUFFER_EOS, {
                          type: "audio"
                        }), this.state = G1.ENDED;
                        return;
                      }
                      var X$ = Tv.fragments, l3 = X$.length, t3 = X$[0].start, c3 = X$[l3 - 1].start + X$[l3 - 1].duration, H$;
                      if (B$) {
                        if (Tv.live && !Tv.PTSKnown)
                          dv.logger.log("switching audiotrack, live stream, unknown PTS,load first fragment"), o$ = 0;
                        else if (o$ = bv, Tv.PTSKnown && bv < t3)
                          if (W1.end > t3 || W1.nextStart)
                            dv.logger.log("alt audio track ahead of main track, seek to start of alt audio track"), this.media.currentTime = t3 + 0.05;
                          else
                            return;
                      }
                      if (Tv.initSegment && !Tv.initSegment.data)
                        H$ = Tv.initSegment;
                      else if (o$ <= t3) {
                        if (H$ = X$[0], this.videoTrackCC !== null && H$.cc !== this.videoTrackCC && (H$ = U$(X$, this.videoTrackCC)), Tv.live && H$.loadIdx && H$.loadIdx === this.fragLoadIdx) {
                          var N$ = W1.nextStart ? W1.nextStart : t3;
                          dv.logger.log("no alt audio available @currentTime:" + this.media.currentTime + ", seeking @" + (N$ + 0.05)), this.media.currentTime = N$ + 0.05;
                          return;
                        }
                      } else {
                        var Gw, T3 = Fv.maxFragLookUpTolerance, C3 = b$ ? X$[b$.sn - X$[0].sn + 1] : void 0;
                        o$ < c3 ? (o$ > c3 - T3 && (T3 = 0), C3 && !ix(o$, T3, C3) ? Gw = C3 : Gw = Jv.search(X$, function(XN) {
                          return ix(o$, T3, XN);
                        })) : Gw = X$[l3 - 1], Gw && (H$ = Gw, t3 = Gw.start, b$ && H$.level === b$.level && H$.sn === b$.sn && (H$.sn < Tv.endSN ? (H$ = X$[H$.sn + 1 - Tv.startSN], this.fragmentTracker.getState(H$) !== O1.OK && dv.logger.log("SN just loaded, load next one: " + H$.sn)) : H$ = null));
                      }
                      H$ && (H$.encrypted ? (dv.logger.log("Loading key for " + H$.sn + " of [" + Tv.startSN + " ," + Tv.endSN + "],track " + C$), this.state = G1.KEY_LOADING, Pv.trigger(cv.default.KEY_LOADING, {
                        frag: H$
                      })) : (this.fragCurrent = H$, (B$ || this.fragmentTracker.getState(H$) === O1.NOT_LOADED) && (dv.logger.log("Loading " + H$.sn + ", cc: " + H$.cc + " of [" + Tv.startSN + " ," + Tv.endSN + "],track " + C$ + ", " + (this.loadedmetadata ? "currentTime" : "nextLoadPosition") + ": " + bv + ", bufferEnd: " + o$.toFixed(3)), H$.sn !== "initSegment" && (this.startFragRequested = !0), Object(uv.isFiniteNumber)(H$.sn) && (this.nextLoadPosition = H$.start + H$.duration), Pv.trigger(cv.default.FRAG_LOADING, {
                        frag: H$
                      }), this.state = G1.FRAG_LOADING)));
                    }
                    break;
                  case G1.WAITING_TRACK:
                    $v = this.tracks[this.trackId], $v && $v.details && (this.state = G1.IDLE);
                    break;
                  case G1.FRAG_LOADING_WAITING_RETRY:
                    var N3 = b3.now(), kD = this.retryDate;
                    qv = this.media;
                    var JN = qv && qv.seeking;
                    (!kD || N3 >= kD || JN) && (dv.logger.log("audioStreamController: retryDate reached, switch back to IDLE state"), this.state = G1.IDLE);
                    break;
                  case G1.WAITING_INIT_PTS:
                    var L3 = this.waitingFragment;
                    if (L3) {
                      var JM = L3.frag.cc;
                      if (this.initPTS[JM] !== void 0)
                        this.waitingFragment = null, this.state = G1.FRAG_LOADING, this.onFragLoaded(L3);
                      else if (this.videoTrackCC !== this.waitingVideoCC)
                        dv.logger.log("Waiting fragment cc (" + JM + ") cancelled because video is at cc " + this.videoTrackCC), this.clearWaitingFragment();
                      else {
                        var uN = Mv.bufferInfo(this.mediaBuffer, this.media.currentTime, Fv.maxBufferHole), ZN = ix(uN.end, Fv.maxFragLookUpTolerance, L3.frag);
                        ZN < 0 && (dv.logger.log("Waiting fragment cc (" + JM + ") @ " + L3.frag.start + " cancelled because another fragment at " + uN.end + " is needed"), this.clearWaitingFragment());
                      }
                    } else
                      this.state = G1.IDLE;
                    break;
                }
              }, kv.clearWaitingFragment = function() {
                var bv = this.waitingFragment;
                bv && (this.fragmentTracker.removeFragment(bv.frag), this.waitingFragment = null, this.waitingVideoCC = null, this.state = G1.IDLE);
              }, kv.onMediaAttached = function(bv) {
                var $v = this.media = this.mediaBuffer = bv.media;
                this.onvseeking = this.onMediaSeeking.bind(this), this.onvended = this.onMediaEnded.bind(this), $v.addEventListener("seeking", this.onvseeking), $v.addEventListener("ended", this.onvended);
                var Tv = this.config;
                this.tracks && Tv.autoStartLoad && this.startLoad(Tv.startPosition);
              }, kv.onMediaDetaching = function() {
                var bv = this.media;
                bv && bv.ended && (dv.logger.log("MSE detaching and video ended, reset startPosition"), this.startPosition = this.lastCurrentTime = 0), bv && (bv.removeEventListener("seeking", this.onvseeking), bv.removeEventListener("ended", this.onvended), this.onvseeking = this.onvseeked = this.onvended = null), this.media = this.mediaBuffer = this.videoBuffer = null, this.loadedmetadata = !1, this.fragmentTracker.removeAllFragments(), this.stopLoad();
              }, kv.onAudioTracksUpdated = function(bv) {
                dv.logger.log("audio tracks updated"), this.tracks = bv.audioTracks;
              }, kv.onAudioTrackSwitching = function(bv) {
                var $v = !!bv.url;
                this.trackId = bv.id, this.fragCurrent = null, this.clearWaitingFragment(), this.state = G1.PAUSED, $v ? this.setInterval(V3) : this.demuxer && (this.demuxer.destroy(), this.demuxer = null), $v && (this.audioSwitch = !0, this.state = G1.IDLE), this.tick();
              }, kv.onAudioTrackLoaded = function(bv) {
                var $v = bv.details, Tv = bv.id, Pv = this.tracks[Tv], Fv = Pv.details, Uv = $v.totalduration, qv = 0;
                if (dv.logger.log("track " + Tv + " loaded [" + $v.startSN + "," + $v.endSN + "],duration:" + Uv), $v.live || Fv && Fv.live ? Fv && $v.fragments.length > 0 ? (l$(Fv, $v), qv = $v.fragments[0].start, $v.PTSKnown ? dv.logger.log("live audio playlist sliding:" + qv.toFixed(3)) : dv.logger.log("live audio playlist - outdated PTS, unknown sliding")) : ($v.PTSKnown = !1, dv.logger.log("live audio playlist - first load, unknown sliding")) : $v.PTSKnown = !1, Pv.details = $v, !this.startFragRequested) {
                  if (this.startPosition === -1) {
                    var _1 = $v.startTimeOffset;
                    Object(uv.isFiniteNumber)(_1) ? (dv.logger.log("start time offset found in playlist, adjust startPosition to " + _1), this.startPosition = _1) : $v.live ? (this.startPosition = this.computeLivePosition(qv, $v), dv.logger.log("compute startPosition for audio-track to " + this.startPosition)) : this.startPosition = 0;
                  }
                  this.nextLoadPosition = this.startPosition;
                }
                this.state === G1.WAITING_TRACK && (this.state = G1.IDLE), this.tick();
              }, kv.onKeyLoaded = function() {
                this.state === G1.KEY_LOADING && (this.state = G1.IDLE, this.tick());
              }, kv.onFragLoaded = function(bv) {
                var $v = this.fragCurrent, Tv = bv.frag;
                if (this.state === G1.FRAG_LOADING && $v && Tv.type === "audio" && Tv.level === $v.level && Tv.sn === $v.sn) {
                  var Pv = this.tracks[this.trackId], Fv = Pv.details, Uv = Fv.totalduration, qv = $v.level, _1 = $v.sn, d1 = $v.cc, W1 = this.config.defaultAudioCodec || Pv.audioCodec || "mp4a.40.2", X1 = this.stats = bv.stats;
                  if (_1 === "initSegment")
                    this.state = G1.IDLE, X1.tparsed = X1.tbuffered = b3.now(), Fv.initSegment.data = bv.payload, this.hls.trigger(cv.default.FRAG_BUFFERED, {
                      stats: X1,
                      frag: $v,
                      id: "audio"
                    }), this.tick();
                  else {
                    this.state = G1.PARSING, this.appended = !1, this.demuxer || (this.demuxer = new q1(this.hls, "audio"));
                    var i$ = this.initPTS[d1], o$ = Fv.initSegment ? Fv.initSegment.data : [];
                    if (i$ !== void 0) {
                      this.pendingBuffering = !0, dv.logger.log("Demuxing " + _1 + " of [" + Fv.startSN + " ," + Fv.endSN + "],track " + qv);
                      var b$ = !1;
                      this.demuxer.push(bv.payload, o$, W1, null, $v, Uv, b$, i$);
                    } else
                      dv.logger.log("Unknown video PTS for cc " + d1 + ", waiting for video PTS before demuxing audio frag " + _1 + " of [" + Fv.startSN + " ," + Fv.endSN + "],track " + qv), this.waitingFragment = bv, this.waitingVideoCC = this.videoTrackCC, this.state = G1.WAITING_INIT_PTS;
                  }
                }
                this.fragLoadError = 0;
              }, kv.onFragParsingInitSegment = function(bv) {
                var $v = this.fragCurrent, Tv = bv.frag;
                if ($v && bv.id === "audio" && Tv.sn === $v.sn && Tv.level === $v.level && this.state === G1.PARSING) {
                  var Pv = bv.tracks, Fv;
                  if (Pv.video && delete Pv.video, Fv = Pv.audio, Fv) {
                    Fv.levelCodec = Fv.codec, Fv.id = bv.id, this.hls.trigger(cv.default.BUFFER_CODECS, Pv), dv.logger.log("audio track:audio,container:" + Fv.container + ",codecs[level/parsed]=[" + Fv.levelCodec + "/" + Fv.codec + "]");
                    var Uv = Fv.initSegment;
                    if (Uv) {
                      var qv = {
                        type: "audio",
                        data: Uv,
                        parent: "audio",
                        content: "initSegment"
                      };
                      this.audioSwitch ? this.pendingData = [qv] : (this.appended = !0, this.pendingBuffering = !0, this.hls.trigger(cv.default.BUFFER_APPENDING, qv));
                    }
                    this.tick();
                  }
                }
              }, kv.onFragParsingData = function(bv) {
                var $v = this, Tv = this.fragCurrent, Pv = bv.frag;
                if (Tv && bv.id === "audio" && bv.type === "audio" && Pv.sn === Tv.sn && Pv.level === Tv.level && this.state === G1.PARSING) {
                  var Fv = this.trackId, Uv = this.tracks[Fv], qv = this.hls;
                  Object(uv.isFiniteNumber)(bv.endPTS) || (bv.endPTS = bv.startPTS + Tv.duration, bv.endDTS = bv.startDTS + Tv.duration), Tv.addElementaryStream(Lv.AUDIO), dv.logger.log("parsed " + bv.type + ",PTS:[" + bv.startPTS.toFixed(3) + "," + bv.endPTS.toFixed(3) + "],DTS:[" + bv.startDTS.toFixed(3) + "/" + bv.endDTS.toFixed(3) + "],nb:" + bv.nb), c$(Uv.details, Tv, bv.startPTS, bv.endPTS);
                  var _1 = this.media, d1 = !1;
                  if (this.audioSwitch)
                    if (_1 && _1.readyState) {
                      var W1 = _1.currentTime;
                      dv.logger.log("switching audio track : currentTime:" + W1), W1 >= bv.startPTS && (dv.logger.log("switching audio track : flushing all audio"), this.state = G1.BUFFER_FLUSHING, qv.trigger(cv.default.BUFFER_FLUSHING, {
                        startOffset: 0,
                        endOffset: Number.POSITIVE_INFINITY,
                        type: "audio"
                      }), d1 = !0, this.audioSwitch = !1, qv.trigger(cv.default.AUDIO_TRACK_SWITCHED, {
                        id: Fv
                      }));
                    } else
                      this.audioSwitch = !1, qv.trigger(cv.default.AUDIO_TRACK_SWITCHED, {
                        id: Fv
                      });
                  var X1 = this.pendingData;
                  if (!X1) {
                    dv.logger.warn("Apparently attempt to enqueue media payload without codec initialization data upfront"), qv.trigger(cv.default.ERROR, {
                      type: lv.ErrorTypes.MEDIA_ERROR,
                      details: null,
                      fatal: !0
                    });
                    return;
                  }
                  this.audioSwitch || ([bv.data1, bv.data2].forEach(function(i$) {
                    i$ && i$.length && X1.push({
                      type: bv.type,
                      data: i$,
                      parent: "audio",
                      content: "data"
                    });
                  }), !d1 && X1.length && (X1.forEach(function(i$) {
                    $v.state === G1.PARSING && ($v.pendingBuffering = !0, $v.hls.trigger(cv.default.BUFFER_APPENDING, i$));
                  }), this.pendingData = [], this.appended = !0)), this.tick();
                }
              }, kv.onFragParsed = function(bv) {
                var $v = this.fragCurrent, Tv = bv.frag;
                $v && bv.id === "audio" && Tv.sn === $v.sn && Tv.level === $v.level && this.state === G1.PARSING && (this.stats.tparsed = b3.now(), this.state = G1.PARSED, this._checkAppendedParsed());
              }, kv.onBufferReset = function() {
                this.mediaBuffer = this.videoBuffer = null, this.loadedmetadata = !1;
              }, kv.onBufferCreated = function(bv) {
                var $v = bv.tracks.audio;
                $v && (this.mediaBuffer = $v.buffer, this.loadedmetadata = !0), bv.tracks.video && (this.videoBuffer = bv.tracks.video.buffer);
              }, kv.onBufferAppended = function(bv) {
                if (bv.parent === "audio") {
                  var $v = this.state;
                  ($v === G1.PARSING || $v === G1.PARSED) && (this.pendingBuffering = bv.pending > 0, this._checkAppendedParsed());
                }
              }, kv._checkAppendedParsed = function() {
                if (this.state === G1.PARSED && (!this.appended || !this.pendingBuffering)) {
                  var bv = this.fragCurrent, $v = this.stats, Tv = this.hls;
                  if (bv) {
                    this.fragPrevious = bv, $v.tbuffered = b3.now(), Tv.trigger(cv.default.FRAG_BUFFERED, {
                      stats: $v,
                      frag: bv,
                      id: "audio"
                    });
                    var Pv = this.mediaBuffer ? this.mediaBuffer : this.media;
                    Pv && dv.logger.log("audio buffered : " + A$.toString(Pv.buffered)), this.audioSwitch && this.appended && (this.audioSwitch = !1, Tv.trigger(cv.default.AUDIO_TRACK_SWITCHED, {
                      id: this.trackId
                    })), this.state = G1.IDLE;
                  }
                  this.tick();
                }
              }, kv.onError = function(bv) {
                var $v = bv.frag;
                if (!($v && $v.type !== "audio"))
                  switch (bv.details) {
                    case lv.ErrorDetails.FRAG_LOAD_ERROR:
                    case lv.ErrorDetails.FRAG_LOAD_TIMEOUT:
                      var Tv = bv.frag;
                      if (Tv && Tv.type !== "audio")
                        break;
                      if (!bv.fatal) {
                        var Pv = this.fragLoadError;
                        Pv ? Pv++ : Pv = 1;
                        var Fv = this.config;
                        if (Pv <= Fv.fragLoadingMaxRetry) {
                          this.fragLoadError = Pv;
                          var Uv = Math.min(Math.pow(2, Pv - 1) * Fv.fragLoadingRetryDelay, Fv.fragLoadingMaxRetryTimeout);
                          dv.logger.warn("AudioStreamController: frag loading failed, retry in " + Uv + " ms"), this.retryDate = b3.now() + Uv, this.state = G1.FRAG_LOADING_WAITING_RETRY;
                        } else
                          dv.logger.error("AudioStreamController: " + bv.details + " reaches max retry, redispatch as fatal ..."), bv.fatal = !0, this.state = G1.ERROR;
                      }
                      break;
                    case lv.ErrorDetails.AUDIO_TRACK_LOAD_ERROR:
                    case lv.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:
                    case lv.ErrorDetails.KEY_LOAD_ERROR:
                    case lv.ErrorDetails.KEY_LOAD_TIMEOUT:
                      this.state !== G1.ERROR && (this.state = bv.fatal ? G1.ERROR : G1.IDLE, dv.logger.warn("AudioStreamController: " + bv.details + " while loading frag, now switching to " + this.state + " state ..."));
                      break;
                    case lv.ErrorDetails.BUFFER_FULL_ERROR:
                      if (bv.parent === "audio" && (this.state === G1.PARSING || this.state === G1.PARSED)) {
                        var qv = this.mediaBuffer, _1 = this.media.currentTime, d1 = qv && Mv.isBuffered(qv, _1) && Mv.isBuffered(qv, _1 + 0.5);
                        if (d1) {
                          var W1 = this.config;
                          W1.maxMaxBufferLength >= W1.maxBufferLength && (W1.maxMaxBufferLength /= 2, dv.logger.warn("AudioStreamController: reduce max buffer length to " + W1.maxMaxBufferLength + "s")), this.state = G1.IDLE;
                        } else
                          dv.logger.warn("AudioStreamController: buffer full error also media.currentTime is not buffered, flush audio buffer"), this.fragCurrent = null, this.state = G1.BUFFER_FLUSHING, this.hls.trigger(cv.default.BUFFER_FLUSHING, {
                            startOffset: 0,
                            endOffset: Number.POSITIVE_INFINITY,
                            type: "audio"
                          });
                      }
                      break;
                  }
              }, kv.onBufferFlushed = function() {
                var bv = this, $v = this.pendingData;
                $v && $v.length ? (dv.logger.log("AudioStreamController: appending pending audio data after buffer flushed"), $v.forEach(function(Tv) {
                  bv.hls.trigger(cv.default.BUFFER_APPENDING, Tv);
                }), this.appended = !0, this.pendingData = [], this.state = G1.PARSED) : (this.state = G1.IDLE, this.fragPrevious = null, this.tick());
              }, TM(Rv, [{
                key: "state",
                set: function(bv) {
                  if (this.state !== bv) {
                    var $v = this.state;
                    this._state = bv, dv.logger.log("audio stream:" + $v + "->" + bv);
                  }
                },
                get: function() {
                  return this._state;
                }
              }]), Rv;
            }(I$), OM = RM, U3 = function() {
              if (typeof window < "u" && window.VTTCue)
                return window.VTTCue;
              var Iv = "auto", Rv = {
                "": !0,
                lr: !0,
                rl: !0
              }, kv = {
                start: !0,
                middle: !0,
                end: !0,
                left: !0,
                right: !0
              };
              function bv(Fv) {
                if (typeof Fv != "string")
                  return !1;
                var Uv = Rv[Fv.toLowerCase()];
                return Uv ? Fv.toLowerCase() : !1;
              }
              function $v(Fv) {
                if (typeof Fv != "string")
                  return !1;
                var Uv = kv[Fv.toLowerCase()];
                return Uv ? Fv.toLowerCase() : !1;
              }
              function Tv(Fv) {
                for (var Uv = 1; Uv < arguments.length; Uv++) {
                  var qv = arguments[Uv];
                  for (var _1 in qv)
                    Fv[_1] = qv[_1];
                }
                return Fv;
              }
              function Pv(Fv, Uv, qv) {
                var _1 = this, d1 = {};
                d1.enumerable = !0, _1.hasBeenReset = !1;
                var W1 = "", X1 = !1, i$ = Fv, o$ = Uv, b$ = qv, m$ = null, k$ = "", B$ = !0, C$ = "auto", X$ = "start", l3 = 50, t3 = "middle", c3 = 50, H$ = "middle";
                Object.defineProperty(_1, "id", Tv({}, d1, {
                  get: function() {
                    return W1;
                  },
                  set: function(N$) {
                    W1 = "" + N$;
                  }
                })), Object.defineProperty(_1, "pauseOnExit", Tv({}, d1, {
                  get: function() {
                    return X1;
                  },
                  set: function(N$) {
                    X1 = !!N$;
                  }
                })), Object.defineProperty(_1, "startTime", Tv({}, d1, {
                  get: function() {
                    return i$;
                  },
                  set: function(N$) {
                    if (typeof N$ != "number")
                      throw new TypeError("Start time must be set to a number.");
                    i$ = N$, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "endTime", Tv({}, d1, {
                  get: function() {
                    return o$;
                  },
                  set: function(N$) {
                    if (typeof N$ != "number")
                      throw new TypeError("End time must be set to a number.");
                    o$ = N$, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "text", Tv({}, d1, {
                  get: function() {
                    return b$;
                  },
                  set: function(N$) {
                    b$ = "" + N$, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "region", Tv({}, d1, {
                  get: function() {
                    return m$;
                  },
                  set: function(N$) {
                    m$ = N$, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "vertical", Tv({}, d1, {
                  get: function() {
                    return k$;
                  },
                  set: function(N$) {
                    var Gw = bv(N$);
                    if (Gw === !1)
                      throw new SyntaxError("An invalid or illegal string was specified.");
                    k$ = Gw, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "snapToLines", Tv({}, d1, {
                  get: function() {
                    return B$;
                  },
                  set: function(N$) {
                    B$ = !!N$, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "line", Tv({}, d1, {
                  get: function() {
                    return C$;
                  },
                  set: function(N$) {
                    if (typeof N$ != "number" && N$ !== Iv)
                      throw new SyntaxError("An invalid number or illegal string was specified.");
                    C$ = N$, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "lineAlign", Tv({}, d1, {
                  get: function() {
                    return X$;
                  },
                  set: function(N$) {
                    var Gw = $v(N$);
                    if (!Gw)
                      throw new SyntaxError("An invalid or illegal string was specified.");
                    X$ = Gw, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "position", Tv({}, d1, {
                  get: function() {
                    return l3;
                  },
                  set: function(N$) {
                    if (N$ < 0 || N$ > 100)
                      throw new Error("Position must be between 0 and 100.");
                    l3 = N$, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "positionAlign", Tv({}, d1, {
                  get: function() {
                    return t3;
                  },
                  set: function(N$) {
                    var Gw = $v(N$);
                    if (!Gw)
                      throw new SyntaxError("An invalid or illegal string was specified.");
                    t3 = Gw, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "size", Tv({}, d1, {
                  get: function() {
                    return c3;
                  },
                  set: function(N$) {
                    if (N$ < 0 || N$ > 100)
                      throw new Error("Size must be between 0 and 100.");
                    c3 = N$, this.hasBeenReset = !0;
                  }
                })), Object.defineProperty(_1, "align", Tv({}, d1, {
                  get: function() {
                    return H$;
                  },
                  set: function(N$) {
                    var Gw = $v(N$);
                    if (!Gw)
                      throw new SyntaxError("An invalid or illegal string was specified.");
                    H$ = Gw, this.hasBeenReset = !0;
                  }
                })), _1.displayState = void 0;
              }
              return Pv.prototype.getCueAsHTML = function() {
                var Fv = window.WebVTT;
                return Fv.convertCueToDOMTree(window, this.text);
              }, Pv;
            }(), IM = function() {
              return {
                decode: function(Iv) {
                  if (!Iv)
                    return "";
                  if (typeof Iv != "string")
                    throw new Error("Error - expected string data.");
                  return decodeURIComponent(encodeURIComponent(Iv));
                }
              };
            };
            function H3() {
              this.window = window, this.state = "INITIAL", this.buffer = "", this.decoder = new IM(), this.regionList = [];
            }
            function PM(Iv) {
              function Rv(bv, $v, Tv, Pv) {
                return (bv | 0) * 3600 + ($v | 0) * 60 + (Tv | 0) + (Pv | 0) / 1e3;
              }
              var kv = Iv.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);
              return kv ? kv[3] ? Rv(kv[1], kv[2], kv[3].replace(":", ""), kv[4]) : kv[1] > 59 ? Rv(kv[1], kv[2], 0, kv[4]) : Rv(0, kv[1], kv[2], kv[4]) : null;
            }
            function z3() {
              this.values = /* @__PURE__ */ Object.create(null);
            }
            z3.prototype = {
              // Only accept the first assignment to any key.
              set: function(Iv, Rv) {
                !this.get(Iv) && Rv !== "" && (this.values[Iv] = Rv);
              },
              // Return the value for a key, or a default value.
              // If 'defaultKey' is passed then 'dflt' is assumed to be an object with
              // a number of possible default values as properties where 'defaultKey' is
              // the key of the property that will be chosen; otherwise it's assumed to be
              // a single value.
              get: function(Iv, Rv, kv) {
                return kv ? this.has(Iv) ? this.values[Iv] : Rv[kv] : this.has(Iv) ? this.values[Iv] : Rv;
              },
              // Check whether we have a value for a key.
              has: function(Iv) {
                return Iv in this.values;
              },
              // Accept a setting if its one of the given alternatives.
              alt: function(Iv, Rv, kv) {
                for (var bv = 0; bv < kv.length; ++bv)
                  if (Rv === kv[bv]) {
                    this.set(Iv, Rv);
                    break;
                  }
              },
              // Accept a setting if its a valid (signed) integer.
              integer: function(Iv, Rv) {
                /^-?\d+$/.test(Rv) && this.set(Iv, parseInt(Rv, 10));
              },
              // Accept a setting if its a valid percentage.
              percent: function(Iv, Rv) {
                return Rv.match(/^([\d]{1,3})(\.[\d]*)?%$/) && (Rv = parseFloat(Rv), Rv >= 0 && Rv <= 100) ? (this.set(Iv, Rv), !0) : !1;
              }
            };
            function W3(Iv, Rv, kv, bv) {
              var $v = bv ? Iv.split(bv) : [Iv];
              for (var Tv in $v)
                if (typeof $v[Tv] == "string") {
                  var Pv = $v[Tv].split(kv);
                  if (Pv.length === 2) {
                    var Fv = Pv[0], Uv = Pv[1];
                    Rv(Fv, Uv);
                  }
                }
            }
            var R3 = new U3(0, 0, 0), _3 = R3.align === "middle" ? "middle" : "center";
            function DM(Iv, Rv, kv) {
              var bv = Iv;
              function $v() {
                var Fv = PM(Iv);
                if (Fv === null)
                  throw new Error("Malformed timestamp: " + bv);
                return Iv = Iv.replace(/^[^\sa-zA-Z-]+/, ""), Fv;
              }
              function Tv(Fv, Uv) {
                var qv = new z3();
                W3(Fv, function(W1, X1) {
                  switch (W1) {
                    case "region":
                      for (var i$ = kv.length - 1; i$ >= 0; i$--)
                        if (kv[i$].id === X1) {
                          qv.set(W1, kv[i$].region);
                          break;
                        }
                      break;
                    case "vertical":
                      qv.alt(W1, X1, ["rl", "lr"]);
                      break;
                    case "line":
                      var o$ = X1.split(","), b$ = o$[0];
                      qv.integer(W1, b$), qv.percent(W1, b$) && qv.set("snapToLines", !1), qv.alt(W1, b$, ["auto"]), o$.length === 2 && qv.alt("lineAlign", o$[1], ["start", _3, "end"]);
                      break;
                    case "position":
                      o$ = X1.split(","), qv.percent(W1, o$[0]), o$.length === 2 && qv.alt("positionAlign", o$[1], ["start", _3, "end", "line-left", "line-right", "auto"]);
                      break;
                    case "size":
                      qv.percent(W1, X1);
                      break;
                    case "align":
                      qv.alt(W1, X1, ["start", _3, "end", "left", "right"]);
                      break;
                  }
                }, /:/, /\s/), Uv.region = qv.get("region", null), Uv.vertical = qv.get("vertical", "");
                var _1 = qv.get("line", "auto");
                _1 === "auto" && R3.line === -1 && (_1 = -1), Uv.line = _1, Uv.lineAlign = qv.get("lineAlign", "start"), Uv.snapToLines = qv.get("snapToLines", !0), Uv.size = qv.get("size", 100), Uv.align = qv.get("align", _3);
                var d1 = qv.get("position", "auto");
                d1 === "auto" && R3.position === 50 && (d1 = Uv.align === "start" || Uv.align === "left" ? 0 : Uv.align === "end" || Uv.align === "right" ? 100 : 50), Uv.position = d1;
              }
              function Pv() {
                Iv = Iv.replace(/^\s+/, "");
              }
              if (Pv(), Rv.startTime = $v(), Pv(), Iv.substr(0, 3) !== "-->")
                throw new Error("Malformed time stamp (time stamps must be separated by '-->'): " + bv);
              Iv = Iv.substr(3), Pv(), Rv.endTime = $v(), Pv(), Tv(Iv, Rv);
            }
            function G3(Iv) {
              return Iv.replace(/<br(?: \/)?>/gi, `
`);
            }
            H3.prototype = {
              parse: function(Iv) {
                var Rv = this;
                Iv && (Rv.buffer += Rv.decoder.decode(Iv, {
                  stream: !0
                }));
                function kv() {
                  var Uv = Rv.buffer, qv = 0;
                  for (Uv = G3(Uv); qv < Uv.length && Uv[qv] !== "\r" && Uv[qv] !== `
`; )
                    ++qv;
                  var _1 = Uv.substr(0, qv);
                  return Uv[qv] === "\r" && ++qv, Uv[qv] === `
` && ++qv, Rv.buffer = Uv.substr(qv), _1;
                }
                function bv(Uv) {
                  W3(Uv, function(qv, _1) {
                  }, /:/);
                }
                try {
                  var $v;
                  if (Rv.state === "INITIAL") {
                    if (!/\r\n|\n/.test(Rv.buffer))
                      return this;
                    $v = kv();
                    var Tv = $v.match(/^()?WEBVTT([ \t].*)?$/);
                    if (!Tv || !Tv[0])
                      throw new Error("Malformed WebVTT signature.");
                    Rv.state = "HEADER";
                  }
                  for (var Pv = !1; Rv.buffer; ) {
                    if (!/\r\n|\n/.test(Rv.buffer))
                      return this;
                    switch (Pv ? Pv = !1 : $v = kv(), Rv.state) {
                      case "HEADER":
                        /:/.test($v) ? bv($v) : $v || (Rv.state = "ID");
                        continue;
                      case "NOTE":
                        $v || (Rv.state = "ID");
                        continue;
                      case "ID":
                        if (/^NOTE($|[ \t])/.test($v)) {
                          Rv.state = "NOTE";
                          break;
                        }
                        if (!$v)
                          continue;
                        if (Rv.cue = new U3(0, 0, ""), Rv.state = "CUE", $v.indexOf("-->") === -1) {
                          Rv.cue.id = $v;
                          continue;
                        }
                      case "CUE":
                        try {
                          DM($v, Rv.cue, Rv.regionList);
                        } catch {
                          Rv.cue = null, Rv.state = "BADCUE";
                          continue;
                        }
                        Rv.state = "CUETEXT";
                        continue;
                      case "CUETEXT":
                        var Fv = $v.indexOf("-->") !== -1;
                        if (!$v || Fv && (Pv = !0)) {
                          Rv.oncue && Rv.oncue(Rv.cue), Rv.cue = null, Rv.state = "ID";
                          continue;
                        }
                        Rv.cue.text && (Rv.cue.text += `
`), Rv.cue.text += $v;
                        continue;
                      case "BADCUE":
                        $v || (Rv.state = "ID");
                        continue;
                    }
                  }
                } catch {
                  Rv.state === "CUETEXT" && Rv.cue && Rv.oncue && Rv.oncue(Rv.cue), Rv.cue = null, Rv.state = Rv.state === "INITIAL" ? "BADWEBVTT" : "BADCUE";
                }
                return this;
              },
              flush: function() {
                var Iv = this;
                try {
                  if (Iv.buffer += Iv.decoder.decode(), (Iv.cue || Iv.state === "HEADER") && (Iv.buffer += `

`, Iv.parse()), Iv.state === "INITIAL")
                    throw new Error("Malformed WebVTT signature.");
                } catch (Rv) {
                  throw Rv;
                }
                return Iv.onflush && Iv.onflush(), this;
              }
            };
            var MM = H3;
            function NM(Iv, Rv, kv, bv) {
              for (var $v = [], Tv, Pv, Fv, Uv, qv, _1 = window.VTTCue || TextTrackCue, d1 = 0; d1 < bv.rows.length; d1++)
                if (Tv = bv.rows[d1], Fv = !0, Uv = 0, qv = "", !Tv.isEmpty()) {
                  for (var W1 = 0; W1 < Tv.chars.length; W1++)
                    Tv.chars[W1].uchar.match(/\s/) && Fv ? Uv++ : (qv += Tv.chars[W1].uchar, Fv = !1);
                  Tv.cueStartTime = Rv, Rv === kv && (kv += 1e-4), Pv = new _1(Rv, kv, G3(qv.trim())), Uv >= 16 ? Uv-- : Uv++, navigator.userAgent.match(/Firefox\//) ? Pv.line = d1 + 1 : Pv.line = d1 > 7 ? d1 - 2 : d1 + 1, Pv.align = "left", Pv.position = Math.max(0, Math.min(100, 100 * (Uv / 32))), $v.push(Pv), Iv && Iv.addCue(Pv);
                }
              return $v;
            }
            var K3 = {
              42: 225,
              // lowercase a, acute accent
              92: 233,
              // lowercase e, acute accent
              94: 237,
              // lowercase i, acute accent
              95: 243,
              // lowercase o, acute accent
              96: 250,
              // lowercase u, acute accent
              123: 231,
              // lowercase c with cedilla
              124: 247,
              // division symbol
              125: 209,
              // uppercase N tilde
              126: 241,
              // lowercase n tilde
              127: 9608,
              // Full block
              // THIS BLOCK INCLUDES THE 16 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS
              // THAT COME FROM HI BYTE=0x11 AND LOW BETWEEN 0x30 AND 0x3F
              // THIS MEANS THAT \x50 MUST BE ADDED TO THE VALUES
              128: 174,
              // Registered symbol (R)
              129: 176,
              // degree sign
              130: 189,
              // 1/2 symbol
              131: 191,
              // Inverted (open) question mark
              132: 8482,
              // Trademark symbol (TM)
              133: 162,
              // Cents symbol
              134: 163,
              // Pounds sterling
              135: 9834,
              // Music 8'th note
              136: 224,
              // lowercase a, grave accent
              137: 32,
              // transparent space (regular)
              138: 232,
              // lowercase e, grave accent
              139: 226,
              // lowercase a, circumflex accent
              140: 234,
              // lowercase e, circumflex accent
              141: 238,
              // lowercase i, circumflex accent
              142: 244,
              // lowercase o, circumflex accent
              143: 251,
              // lowercase u, circumflex accent
              // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS
              // THAT COME FROM HI BYTE=0x12 AND LOW BETWEEN 0x20 AND 0x3F
              144: 193,
              // capital letter A with acute
              145: 201,
              // capital letter E with acute
              146: 211,
              // capital letter O with acute
              147: 218,
              // capital letter U with acute
              148: 220,
              // capital letter U with diaresis
              149: 252,
              // lowercase letter U with diaeresis
              150: 8216,
              // opening single quote
              151: 161,
              // inverted exclamation mark
              152: 42,
              // asterisk
              153: 8217,
              // closing single quote
              154: 9473,
              // box drawings heavy horizontal
              155: 169,
              // copyright sign
              156: 8480,
              // Service mark
              157: 8226,
              // (round) bullet
              158: 8220,
              // Left double quotation mark
              159: 8221,
              // Right double quotation mark
              160: 192,
              // uppercase A, grave accent
              161: 194,
              // uppercase A, circumflex
              162: 199,
              // uppercase C with cedilla
              163: 200,
              // uppercase E, grave accent
              164: 202,
              // uppercase E, circumflex
              165: 203,
              // capital letter E with diaresis
              166: 235,
              // lowercase letter e with diaresis
              167: 206,
              // uppercase I, circumflex
              168: 207,
              // uppercase I, with diaresis
              169: 239,
              // lowercase i, with diaresis
              170: 212,
              // uppercase O, circumflex
              171: 217,
              // uppercase U, grave accent
              172: 249,
              // lowercase u, grave accent
              173: 219,
              // uppercase U, circumflex
              174: 171,
              // left-pointing double angle quotation mark
              175: 187,
              // right-pointing double angle quotation mark
              // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS
              // THAT COME FROM HI BYTE=0x13 AND LOW BETWEEN 0x20 AND 0x3F
              176: 195,
              // Uppercase A, tilde
              177: 227,
              // Lowercase a, tilde
              178: 205,
              // Uppercase I, acute accent
              179: 204,
              // Uppercase I, grave accent
              180: 236,
              // Lowercase i, grave accent
              181: 210,
              // Uppercase O, grave accent
              182: 242,
              // Lowercase o, grave accent
              183: 213,
              // Uppercase O, tilde
              184: 245,
              // Lowercase o, tilde
              185: 123,
              // Open curly brace
              186: 125,
              // Closing curly brace
              187: 92,
              // Backslash
              188: 94,
              // Caret
              189: 95,
              // Underscore
              190: 124,
              // Pipe (vertical line)
              191: 8764,
              // Tilde operator
              192: 196,
              // Uppercase A, umlaut
              193: 228,
              // Lowercase A, umlaut
              194: 214,
              // Uppercase O, umlaut
              195: 246,
              // Lowercase o, umlaut
              196: 223,
              // Esszett (sharp S)
              197: 165,
              // Yen symbol
              198: 164,
              // Generic currency sign
              199: 9475,
              // Box drawings heavy vertical
              200: 197,
              // Uppercase A, ring
              201: 229,
              // Lowercase A, ring
              202: 216,
              // Uppercase O, stroke
              203: 248,
              // Lowercase o, strok
              204: 9487,
              // Box drawings heavy down and right
              205: 9491,
              // Box drawings heavy down and left
              206: 9495,
              // Box drawings heavy up and right
              207: 9499
              // Box drawings heavy up and left
            }, q3 = function(Iv) {
              var Rv = Iv;
              return K3.hasOwnProperty(Iv) && (Rv = K3[Iv]), String.fromCharCode(Rv);
            }, s3 = 15, h3 = 100, LM = {
              17: 1,
              18: 3,
              21: 5,
              22: 7,
              23: 9,
              16: 11,
              19: 12,
              20: 14
            }, FM = {
              17: 2,
              18: 4,
              21: 6,
              22: 8,
              23: 10,
              19: 13,
              20: 15
            }, jM = {
              25: 1,
              26: 3,
              29: 5,
              30: 7,
              31: 9,
              24: 11,
              27: 12,
              28: 14
            }, BM = {
              25: 2,
              26: 4,
              29: 6,
              30: 8,
              31: 10,
              27: 13,
              28: 15
            }, VM = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "black", "transparent"], M$;
            (function(Iv) {
              Iv[Iv.ERROR = 0] = "ERROR", Iv[Iv.TEXT = 1] = "TEXT", Iv[Iv.WARNING = 2] = "WARNING", Iv[Iv.INFO = 2] = "INFO", Iv[Iv.DEBUG = 3] = "DEBUG", Iv[Iv.DATA = 3] = "DATA";
            })(M$ || (M$ = {}));
            var UM = /* @__PURE__ */ function() {
              function Iv() {
                this.time = null, this.verboseLevel = M$.ERROR;
              }
              var Rv = Iv.prototype;
              return Rv.log = function(kv, bv) {
                this.verboseLevel >= kv && dv.logger.log(this.time + " [" + kv + "] " + bv);
              }, Iv;
            }(), m3 = function(Iv) {
              for (var Rv = [], kv = 0; kv < Iv.length; kv++)
                Rv.push(Iv[kv].toString(16));
              return Rv;
            }, Y3 = /* @__PURE__ */ function() {
              function Iv(kv, bv, $v, Tv, Pv) {
                this.foreground = void 0, this.underline = void 0, this.italics = void 0, this.background = void 0, this.flash = void 0, this.foreground = kv || "white", this.underline = bv || !1, this.italics = $v || !1, this.background = Tv || "black", this.flash = Pv || !1;
              }
              var Rv = Iv.prototype;
              return Rv.reset = function() {
                this.foreground = "white", this.underline = !1, this.italics = !1, this.background = "black", this.flash = !1;
              }, Rv.setStyles = function(kv) {
                for (var bv = ["foreground", "underline", "italics", "background", "flash"], $v = 0; $v < bv.length; $v++) {
                  var Tv = bv[$v];
                  kv.hasOwnProperty(Tv) && (this[Tv] = kv[Tv]);
                }
              }, Rv.isDefault = function() {
                return this.foreground === "white" && !this.underline && !this.italics && this.background === "black" && !this.flash;
              }, Rv.equals = function(kv) {
                return this.foreground === kv.foreground && this.underline === kv.underline && this.italics === kv.italics && this.background === kv.background && this.flash === kv.flash;
              }, Rv.copy = function(kv) {
                this.foreground = kv.foreground, this.underline = kv.underline, this.italics = kv.italics, this.background = kv.background, this.flash = kv.flash;
              }, Rv.toString = function() {
                return "color=" + this.foreground + ", underline=" + this.underline + ", italics=" + this.italics + ", background=" + this.background + ", flash=" + this.flash;
              }, Iv;
            }(), HM = /* @__PURE__ */ function() {
              function Iv(kv, bv, $v, Tv, Pv, Fv) {
                this.uchar = void 0, this.penState = void 0, this.uchar = kv || " ", this.penState = new Y3(bv, $v, Tv, Pv, Fv);
              }
              var Rv = Iv.prototype;
              return Rv.reset = function() {
                this.uchar = " ", this.penState.reset();
              }, Rv.setChar = function(kv, bv) {
                this.uchar = kv, this.penState.copy(bv);
              }, Rv.setPenState = function(kv) {
                this.penState.copy(kv);
              }, Rv.equals = function(kv) {
                return this.uchar === kv.uchar && this.penState.equals(kv.penState);
              }, Rv.copy = function(kv) {
                this.uchar = kv.uchar, this.penState.copy(kv.penState);
              }, Rv.isEmpty = function() {
                return this.uchar === " " && this.penState.isDefault();
              }, Iv;
            }(), zM = /* @__PURE__ */ function() {
              function Iv(kv) {
                this.chars = void 0, this.pos = void 0, this.currPenState = void 0, this.cueStartTime = void 0, this.logger = void 0, this.chars = [];
                for (var bv = 0; bv < h3; bv++)
                  this.chars.push(new HM());
                this.logger = kv, this.pos = 0, this.currPenState = new Y3();
              }
              var Rv = Iv.prototype;
              return Rv.equals = function(kv) {
                for (var bv = !0, $v = 0; $v < h3; $v++)
                  if (!this.chars[$v].equals(kv.chars[$v])) {
                    bv = !1;
                    break;
                  }
                return bv;
              }, Rv.copy = function(kv) {
                for (var bv = 0; bv < h3; bv++)
                  this.chars[bv].copy(kv.chars[bv]);
              }, Rv.isEmpty = function() {
                for (var kv = !0, bv = 0; bv < h3; bv++)
                  if (!this.chars[bv].isEmpty()) {
                    kv = !1;
                    break;
                  }
                return kv;
              }, Rv.setCursor = function(kv) {
                this.pos !== kv && (this.pos = kv), this.pos < 0 ? (this.logger.log(M$.DEBUG, "Negative cursor position " + this.pos), this.pos = 0) : this.pos > h3 && (this.logger.log(M$.DEBUG, "Too large cursor position " + this.pos), this.pos = h3);
              }, Rv.moveCursor = function(kv) {
                var bv = this.pos + kv;
                if (kv > 1)
                  for (var $v = this.pos + 1; $v < bv + 1; $v++)
                    this.chars[$v].setPenState(this.currPenState);
                this.setCursor(bv);
              }, Rv.backSpace = function() {
                this.moveCursor(-1), this.chars[this.pos].setChar(" ", this.currPenState);
              }, Rv.insertChar = function(kv) {
                kv >= 144 && this.backSpace();
                var bv = q3(kv);
                if (this.pos >= h3) {
                  this.logger.log(M$.ERROR, "Cannot insert " + kv.toString(16) + " (" + bv + ") at position " + this.pos + ". Skipping it!");
                  return;
                }
                this.chars[this.pos].setChar(bv, this.currPenState), this.moveCursor(1);
              }, Rv.clearFromPos = function(kv) {
                var bv;
                for (bv = kv; bv < h3; bv++)
                  this.chars[bv].reset();
              }, Rv.clear = function() {
                this.clearFromPos(0), this.pos = 0, this.currPenState.reset();
              }, Rv.clearToEndOfRow = function() {
                this.clearFromPos(this.pos);
              }, Rv.getTextString = function() {
                for (var kv = [], bv = !0, $v = 0; $v < h3; $v++) {
                  var Tv = this.chars[$v].uchar;
                  Tv !== " " && (bv = !1), kv.push(Tv);
                }
                return bv ? "" : kv.join("");
              }, Rv.setPenStyles = function(kv) {
                this.currPenState.setStyles(kv);
                var bv = this.chars[this.pos];
                bv.setPenState(this.currPenState);
              }, Iv;
            }(), O3 = /* @__PURE__ */ function() {
              function Iv(kv) {
                this.rows = void 0, this.currRow = void 0, this.nrRollUpRows = void 0, this.lastOutputScreen = void 0, this.logger = void 0, this.rows = [];
                for (var bv = 0; bv < s3; bv++)
                  this.rows.push(new zM(kv));
                this.logger = kv, this.currRow = s3 - 1, this.nrRollUpRows = null, this.lastOutputScreen = null, this.reset();
              }
              var Rv = Iv.prototype;
              return Rv.reset = function() {
                for (var kv = 0; kv < s3; kv++)
                  this.rows[kv].clear();
                this.currRow = s3 - 1;
              }, Rv.equals = function(kv) {
                for (var bv = !0, $v = 0; $v < s3; $v++)
                  if (!this.rows[$v].equals(kv.rows[$v])) {
                    bv = !1;
                    break;
                  }
                return bv;
              }, Rv.copy = function(kv) {
                for (var bv = 0; bv < s3; bv++)
                  this.rows[bv].copy(kv.rows[bv]);
              }, Rv.isEmpty = function() {
                for (var kv = !0, bv = 0; bv < s3; bv++)
                  if (!this.rows[bv].isEmpty()) {
                    kv = !1;
                    break;
                  }
                return kv;
              }, Rv.backSpace = function() {
                var kv = this.rows[this.currRow];
                kv.backSpace();
              }, Rv.clearToEndOfRow = function() {
                var kv = this.rows[this.currRow];
                kv.clearToEndOfRow();
              }, Rv.insertChar = function(kv) {
                var bv = this.rows[this.currRow];
                bv.insertChar(kv);
              }, Rv.setPen = function(kv) {
                var bv = this.rows[this.currRow];
                bv.setPenStyles(kv);
              }, Rv.moveCursor = function(kv) {
                var bv = this.rows[this.currRow];
                bv.moveCursor(kv);
              }, Rv.setCursor = function(kv) {
                this.logger.log(M$.INFO, "setCursor: " + kv);
                var bv = this.rows[this.currRow];
                bv.setCursor(kv);
              }, Rv.setPAC = function(kv) {
                this.logger.log(M$.INFO, "pacData = " + JSON.stringify(kv));
                var bv = kv.row - 1;
                if (this.nrRollUpRows && bv < this.nrRollUpRows - 1 && (bv = this.nrRollUpRows - 1), this.nrRollUpRows && this.currRow !== bv) {
                  for (var $v = 0; $v < s3; $v++)
                    this.rows[$v].clear();
                  var Tv = this.currRow + 1 - this.nrRollUpRows, Pv = this.lastOutputScreen;
                  if (Pv) {
                    var Fv = Pv.rows[Tv].cueStartTime, Uv = this.logger.time;
                    if (Fv && Uv !== null && Fv < Uv)
                      for (var qv = 0; qv < this.nrRollUpRows; qv++)
                        this.rows[bv - this.nrRollUpRows + qv + 1].copy(Pv.rows[Tv + qv]);
                  }
                }
                this.currRow = bv;
                var _1 = this.rows[this.currRow];
                if (kv.indent !== null) {
                  var d1 = kv.indent, W1 = Math.max(d1 - 1, 0);
                  _1.setCursor(kv.indent), kv.color = _1.chars[W1].penState.foreground;
                }
                var X1 = {
                  foreground: kv.color,
                  underline: kv.underline,
                  italics: kv.italics,
                  background: "black",
                  flash: !1
                };
                this.setPen(X1);
              }, Rv.setBkgData = function(kv) {
                this.logger.log(M$.INFO, "bkgData = " + JSON.stringify(kv)), this.backSpace(), this.setPen(kv), this.insertChar(32);
              }, Rv.setRollUpRows = function(kv) {
                this.nrRollUpRows = kv;
              }, Rv.rollUp = function() {
                if (this.nrRollUpRows === null) {
                  this.logger.log(M$.DEBUG, "roll_up but nrRollUpRows not set yet");
                  return;
                }
                this.logger.log(M$.TEXT, this.getDisplayText());
                var kv = this.currRow + 1 - this.nrRollUpRows, bv = this.rows.splice(kv, 1)[0];
                bv.clear(), this.rows.splice(this.currRow, 0, bv), this.logger.log(M$.INFO, "Rolling up");
              }, Rv.getDisplayText = function(kv) {
                kv = kv || !1;
                for (var bv = [], $v = "", Tv = -1, Pv = 0; Pv < s3; Pv++) {
                  var Fv = this.rows[Pv].getTextString();
                  Fv && (Tv = Pv + 1, kv ? bv.push("Row " + Tv + ": '" + Fv + "'") : bv.push(Fv.trim()));
                }
                return bv.length > 0 && (kv ? $v = "[" + bv.join(" | ") + "]" : $v = bv.join(`
`)), $v;
              }, Rv.getTextAndFormat = function() {
                return this.rows;
              }, Iv;
            }(), J3 = /* @__PURE__ */ function() {
              function Iv(kv, bv, $v) {
                this.chNr = void 0, this.outputFilter = void 0, this.mode = void 0, this.verbose = void 0, this.displayedMemory = void 0, this.nonDisplayedMemory = void 0, this.lastOutputScreen = void 0, this.currRollUpRow = void 0, this.writeScreen = void 0, this.cueStartTime = void 0, this.logger = void 0, this.chNr = kv, this.outputFilter = bv, this.mode = null, this.verbose = 0, this.displayedMemory = new O3($v), this.nonDisplayedMemory = new O3($v), this.lastOutputScreen = new O3($v), this.currRollUpRow = this.displayedMemory.rows[s3 - 1], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null, this.logger = $v;
              }
              var Rv = Iv.prototype;
              return Rv.reset = function() {
                this.mode = null, this.displayedMemory.reset(), this.nonDisplayedMemory.reset(), this.lastOutputScreen.reset(), this.outputFilter.reset(), this.currRollUpRow = this.displayedMemory.rows[s3 - 1], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null;
              }, Rv.getHandler = function() {
                return this.outputFilter;
              }, Rv.setHandler = function(kv) {
                this.outputFilter = kv;
              }, Rv.setPAC = function(kv) {
                this.writeScreen.setPAC(kv);
              }, Rv.setBkgData = function(kv) {
                this.writeScreen.setBkgData(kv);
              }, Rv.setMode = function(kv) {
                kv !== this.mode && (this.mode = kv, this.logger.log(M$.INFO, "MODE=" + kv), this.mode === "MODE_POP-ON" ? this.writeScreen = this.nonDisplayedMemory : (this.writeScreen = this.displayedMemory, this.writeScreen.reset()), this.mode !== "MODE_ROLL-UP" && (this.displayedMemory.nrRollUpRows = null, this.nonDisplayedMemory.nrRollUpRows = null), this.mode = kv);
              }, Rv.insertChars = function(kv) {
                for (var bv = 0; bv < kv.length; bv++)
                  this.writeScreen.insertChar(kv[bv]);
                var $v = this.writeScreen === this.displayedMemory ? "DISP" : "NON_DISP";
                this.logger.log(M$.INFO, $v + ": " + this.writeScreen.getDisplayText(!0)), (this.mode === "MODE_PAINT-ON" || this.mode === "MODE_ROLL-UP") && (this.logger.log(M$.TEXT, "DISPLAYED: " + this.displayedMemory.getDisplayText(!0)), this.outputDataUpdate());
              }, Rv.ccRCL = function() {
                this.logger.log(M$.INFO, "RCL - Resume Caption Loading"), this.setMode("MODE_POP-ON");
              }, Rv.ccBS = function() {
                this.logger.log(M$.INFO, "BS - BackSpace"), this.mode !== "MODE_TEXT" && (this.writeScreen.backSpace(), this.writeScreen === this.displayedMemory && this.outputDataUpdate());
              }, Rv.ccAOF = function() {
              }, Rv.ccAON = function() {
              }, Rv.ccDER = function() {
                this.logger.log(M$.INFO, "DER- Delete to End of Row"), this.writeScreen.clearToEndOfRow(), this.outputDataUpdate();
              }, Rv.ccRU = function(kv) {
                this.logger.log(M$.INFO, "RU(" + kv + ") - Roll Up"), this.writeScreen = this.displayedMemory, this.setMode("MODE_ROLL-UP"), this.writeScreen.setRollUpRows(kv);
              }, Rv.ccFON = function() {
                this.logger.log(M$.INFO, "FON - Flash On"), this.writeScreen.setPen({
                  flash: !0
                });
              }, Rv.ccRDC = function() {
                this.logger.log(M$.INFO, "RDC - Resume Direct Captioning"), this.setMode("MODE_PAINT-ON");
              }, Rv.ccTR = function() {
                this.logger.log(M$.INFO, "TR"), this.setMode("MODE_TEXT");
              }, Rv.ccRTD = function() {
                this.logger.log(M$.INFO, "RTD"), this.setMode("MODE_TEXT");
              }, Rv.ccEDM = function() {
                this.logger.log(M$.INFO, "EDM - Erase Displayed Memory"), this.displayedMemory.reset(), this.outputDataUpdate(!0);
              }, Rv.ccCR = function() {
                this.logger.log(M$.INFO, "CR - Carriage Return"), this.writeScreen.rollUp(), this.outputDataUpdate(!0);
              }, Rv.ccENM = function() {
                this.logger.log(M$.INFO, "ENM - Erase Non-displayed Memory"), this.nonDisplayedMemory.reset();
              }, Rv.ccEOC = function() {
                if (this.logger.log(M$.INFO, "EOC - End Of Caption"), this.mode === "MODE_POP-ON") {
                  var kv = this.displayedMemory;
                  this.displayedMemory = this.nonDisplayedMemory, this.nonDisplayedMemory = kv, this.writeScreen = this.nonDisplayedMemory, this.logger.log(M$.TEXT, "DISP: " + this.displayedMemory.getDisplayText());
                }
                this.outputDataUpdate(!0);
              }, Rv.ccTO = function(kv) {
                this.logger.log(M$.INFO, "TO(" + kv + ") - Tab Offset"), this.writeScreen.moveCursor(kv);
              }, Rv.ccMIDROW = function(kv) {
                var bv = {
                  flash: !1
                };
                if (bv.underline = kv % 2 === 1, bv.italics = kv >= 46, bv.italics)
                  bv.foreground = "white";
                else {
                  var $v = Math.floor(kv / 2) - 16, Tv = ["white", "green", "blue", "cyan", "red", "yellow", "magenta"];
                  bv.foreground = Tv[$v];
                }
                this.logger.log(M$.INFO, "MIDROW: " + JSON.stringify(bv)), this.writeScreen.setPen(bv);
              }, Rv.outputDataUpdate = function(kv) {
                kv === void 0 && (kv = !1);
                var bv = this.logger.time;
                bv !== null && this.outputFilter && (this.cueStartTime === null && !this.displayedMemory.isEmpty() ? this.cueStartTime = bv : this.displayedMemory.equals(this.lastOutputScreen) || (this.outputFilter.newCue(this.cueStartTime, bv, this.lastOutputScreen), kv && this.outputFilter.dispatchCue && this.outputFilter.dispatchCue(), this.cueStartTime = this.displayedMemory.isEmpty() ? null : bv), this.lastOutputScreen.copy(this.displayedMemory));
              }, Rv.cueSplitAtTime = function(kv) {
                this.outputFilter && (this.displayedMemory.isEmpty() || (this.outputFilter.newCue && this.outputFilter.newCue(this.cueStartTime, kv, this.displayedMemory), this.cueStartTime = kv));
              }, Iv;
            }(), WM = /* @__PURE__ */ function() {
              function Iv(kv, bv, $v) {
                this.channels = void 0, this.currentChannel = 0, this.cmdHistory = void 0, this.logger = void 0;
                var Tv = new UM();
                this.channels = [null, new J3(kv, bv, Tv), new J3(kv + 1, $v, Tv)], this.cmdHistory = X3(), this.logger = Tv;
              }
              var Rv = Iv.prototype;
              return Rv.getHandler = function(kv) {
                return this.channels[kv].getHandler();
              }, Rv.setHandler = function(kv, bv) {
                this.channels[kv].setHandler(bv);
              }, Rv.addData = function(kv, bv) {
                var $v, Tv, Pv, Fv = !1;
                this.logger.time = kv;
                for (var Uv = 0; Uv < bv.length; Uv += 2)
                  if (Tv = bv[Uv] & 127, Pv = bv[Uv + 1] & 127, !(Tv === 0 && Pv === 0)) {
                    if (this.logger.log(M$.DATA, "[" + m3([bv[Uv], bv[Uv + 1]]) + "] -> (" + m3([Tv, Pv]) + ")"), $v = this.parseCmd(Tv, Pv), $v || ($v = this.parseMidrow(Tv, Pv)), $v || ($v = this.parsePAC(Tv, Pv)), $v || ($v = this.parseBackgroundAttributes(Tv, Pv)), !$v && (Fv = this.parseChars(Tv, Pv), Fv)) {
                      var qv = this.currentChannel;
                      if (qv && qv > 0) {
                        var _1 = this.channels[qv];
                        _1.insertChars(Fv);
                      } else
                        this.logger.log(M$.WARNING, "No channel found yet. TEXT-MODE?");
                    }
                    !$v && !Fv && this.logger.log(M$.WARNING, "Couldn't parse cleaned data " + m3([Tv, Pv]) + " orig: " + m3([bv[Uv], bv[Uv + 1]]));
                  }
              }, Rv.parseCmd = function(kv, bv) {
                var $v = this.cmdHistory, Tv = (kv === 20 || kv === 28 || kv === 21 || kv === 29) && bv >= 32 && bv <= 47, Pv = (kv === 23 || kv === 31) && bv >= 33 && bv <= 35;
                if (!(Tv || Pv))
                  return !1;
                if (Z3(kv, bv, $v))
                  return v3(null, null, $v), this.logger.log(M$.DEBUG, "Repeated command (" + m3([kv, bv]) + ") is dropped"), !0;
                var Fv = kv === 20 || kv === 21 || kv === 23 ? 1 : 2, Uv = this.channels[Fv];
                return kv === 20 || kv === 21 || kv === 28 || kv === 29 ? bv === 32 ? Uv.ccRCL() : bv === 33 ? Uv.ccBS() : bv === 34 ? Uv.ccAOF() : bv === 35 ? Uv.ccAON() : bv === 36 ? Uv.ccDER() : bv === 37 ? Uv.ccRU(2) : bv === 38 ? Uv.ccRU(3) : bv === 39 ? Uv.ccRU(4) : bv === 40 ? Uv.ccFON() : bv === 41 ? Uv.ccRDC() : bv === 42 ? Uv.ccTR() : bv === 43 ? Uv.ccRTD() : bv === 44 ? Uv.ccEDM() : bv === 45 ? Uv.ccCR() : bv === 46 ? Uv.ccENM() : bv === 47 && Uv.ccEOC() : Uv.ccTO(bv - 32), v3(kv, bv, $v), this.currentChannel = Fv, !0;
              }, Rv.parseMidrow = function(kv, bv) {
                var $v = 0;
                if ((kv === 17 || kv === 25) && bv >= 32 && bv <= 47) {
                  if (kv === 17 ? $v = 1 : $v = 2, $v !== this.currentChannel)
                    return this.logger.log(M$.ERROR, "Mismatch channel in midrow parsing"), !1;
                  var Tv = this.channels[$v];
                  return Tv ? (Tv.ccMIDROW(bv), this.logger.log(M$.DEBUG, "MIDROW (" + m3([kv, bv]) + ")"), !0) : !1;
                }
                return !1;
              }, Rv.parsePAC = function(kv, bv) {
                var $v, Tv = this.cmdHistory, Pv = (kv >= 17 && kv <= 23 || kv >= 25 && kv <= 31) && bv >= 64 && bv <= 127, Fv = (kv === 16 || kv === 24) && bv >= 64 && bv <= 95;
                if (!(Pv || Fv))
                  return !1;
                if (Z3(kv, bv, Tv))
                  return v3(null, null, Tv), !0;
                var Uv = kv <= 23 ? 1 : 2;
                bv >= 64 && bv <= 95 ? $v = Uv === 1 ? LM[kv] : jM[kv] : $v = Uv === 1 ? FM[kv] : BM[kv];
                var qv = this.channels[Uv];
                return qv ? (qv.setPAC(this.interpretPAC($v, bv)), v3(kv, bv, Tv), this.currentChannel = Uv, !0) : !1;
              }, Rv.interpretPAC = function(kv, bv) {
                var $v = bv, Tv = {
                  color: null,
                  italics: !1,
                  indent: null,
                  underline: !1,
                  row: kv
                };
                return bv > 95 ? $v = bv - 96 : $v = bv - 64, Tv.underline = ($v & 1) === 1, $v <= 13 ? Tv.color = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "white"][Math.floor($v / 2)] : $v <= 15 ? (Tv.italics = !0, Tv.color = "white") : Tv.indent = Math.floor(($v - 16) / 2) * 4, Tv;
              }, Rv.parseChars = function(kv, bv) {
                var $v, Tv = null, Pv = null;
                if (kv >= 25 ? ($v = 2, Pv = kv - 8) : ($v = 1, Pv = kv), Pv >= 17 && Pv <= 19) {
                  var Fv = bv;
                  Pv === 17 ? Fv = bv + 80 : Pv === 18 ? Fv = bv + 112 : Fv = bv + 144, this.logger.log(M$.INFO, "Special char '" + q3(Fv) + "' in channel " + $v), Tv = [Fv];
                } else
                  kv >= 32 && kv <= 127 && (Tv = bv === 0 ? [kv] : [kv, bv]);
                if (Tv) {
                  var Uv = m3(Tv);
                  this.logger.log(M$.DEBUG, "Char codes =  " + Uv.join(",")), v3(kv, bv, this.cmdHistory);
                }
                return Tv;
              }, Rv.parseBackgroundAttributes = function(kv, bv) {
                var $v = (kv === 16 || kv === 24) && bv >= 32 && bv <= 47, Tv = (kv === 23 || kv === 31) && bv >= 45 && bv <= 47;
                if (!($v || Tv))
                  return !1;
                var Pv, Fv = {};
                kv === 16 || kv === 24 ? (Pv = Math.floor((bv - 32) / 2), Fv.background = VM[Pv], bv % 2 === 1 && (Fv.background = Fv.background + "_semi")) : bv === 45 ? Fv.background = "transparent" : (Fv.foreground = "black", bv === 47 && (Fv.underline = !0));
                var Uv = kv <= 23 ? 1 : 2, qv = this.channels[Uv];
                return qv.setBkgData(Fv), v3(kv, bv, this.cmdHistory), !0;
              }, Rv.reset = function() {
                for (var kv = 0; kv < Object.keys(this.channels).length; kv++) {
                  var bv = this.channels[kv];
                  bv && bv.reset();
                }
                this.cmdHistory = X3();
              }, Rv.cueSplitAtTime = function(kv) {
                for (var bv = 0; bv < this.channels.length; bv++) {
                  var $v = this.channels[bv];
                  $v && $v.cueSplitAtTime(kv);
                }
              }, Iv;
            }();
            function v3(Iv, Rv, kv) {
              kv.a = Iv, kv.b = Rv;
            }
            function Z3(Iv, Rv, kv) {
              return kv.a === Iv && kv.b === Rv;
            }
            function X3() {
              return {
                a: null,
                b: null
              };
            }
            var Q3 = WM, $3 = /* @__PURE__ */ function() {
              function Iv(kv, bv) {
                this.timelineController = void 0, this.cueRanges = [], this.trackName = void 0, this.startTime = null, this.endTime = null, this.screen = null, this.timelineController = kv, this.trackName = bv;
              }
              var Rv = Iv.prototype;
              return Rv.dispatchCue = function() {
                this.startTime !== null && (this.timelineController.addCues(this.trackName, this.startTime, this.endTime, this.screen, this.cueRanges), this.startTime = null);
              }, Rv.newCue = function(kv, bv, $v) {
                (this.startTime === null || this.startTime > kv) && (this.startTime = kv), this.endTime = bv, this.screen = $v, this.timelineController.createCaptionsTrack(this.trackName);
              }, Rv.reset = function() {
                this.cueRanges = [];
              }, Iv;
            }(), I3 = function(Iv, Rv, kv) {
              return Iv.substr(0, Rv.length) === Rv;
            }, P3 = function(Iv) {
              var Rv = parseInt(Iv.substr(-3)), kv = parseInt(Iv.substr(-6, 2)), bv = parseInt(Iv.substr(-9, 2)), $v = Iv.length > 9 ? parseInt(Iv.substr(0, Iv.indexOf(":"))) : 0;
              if (!Object(uv.isFiniteNumber)(Rv) || !Object(uv.isFiniteNumber)(kv) || !Object(uv.isFiniteNumber)(bv) || !Object(uv.isFiniteNumber)($v))
                throw Error("Malformed X-TIMESTAMP-MAP: Local:" + Iv);
              return Rv += 1e3 * kv, Rv += 60 * 1e3 * bv, Rv += 60 * 60 * 1e3 * $v, Rv;
            }, D3 = function(Iv) {
              for (var Rv = 5381, kv = Iv.length; kv; )
                Rv = Rv * 33 ^ Iv.charCodeAt(--kv);
              return (Rv >>> 0).toString();
            }, GM = function(Iv, Rv, kv) {
              var bv = Iv[Rv], $v = Iv[bv.prevCC];
              if (!$v || !$v.new && bv.new) {
                Iv.ccOffset = Iv.presentationOffset = bv.start, bv.new = !1;
                return;
              }
              for (; $v && $v.new; )
                Iv.ccOffset += bv.start - $v.start, bv.new = !1, bv = $v, $v = Iv[bv.prevCC];
              Iv.presentationOffset = kv;
            }, KM = {
              parse: function(Iv, Rv, kv, bv, $v, Tv) {
                var Pv = /\r\n|\n\r|\n|\r/g, Fv = Object(o3.utf8ArrayToStr)(new Uint8Array(Iv)).trim().replace(Pv, `
`).split(`
`), Uv = "00:00.000", qv = 0, _1 = 0, d1 = 0, W1 = [], X1, i$ = !0, o$ = !1, b$ = new MM();
                b$.oncue = function(m$) {
                  var k$ = kv[bv], B$ = kv.ccOffset;
                  k$ && k$.new && (_1 !== void 0 ? B$ = kv.ccOffset = k$.start : GM(kv, bv, d1)), d1 && (B$ = d1 - kv.presentationOffset), o$ && (m$.startTime += B$ - _1, m$.endTime += B$ - _1), m$.id = D3(m$.startTime.toString()) + D3(m$.endTime.toString()) + D3(m$.text), m$.text = decodeURIComponent(encodeURIComponent(m$.text)), m$.endTime > 0 && W1.push(m$);
                }, b$.onparsingerror = function(m$) {
                  X1 = m$;
                }, b$.onflush = function() {
                  if (X1 && Tv) {
                    Tv(X1);
                    return;
                  }
                  $v(W1);
                }, Fv.forEach(function(m$) {
                  if (i$)
                    if (I3(m$, "X-TIMESTAMP-MAP=")) {
                      i$ = !1, o$ = !0, m$.substr(16).split(",").forEach(function(k$) {
                        I3(k$, "LOCAL:") ? Uv = k$.substr(6) : I3(k$, "MPEGTS:") && (qv = parseInt(k$.substr(7)));
                      });
                      try {
                        Rv + (kv[bv].start * 9e4 || 0) < 0 && (Rv += 8589934592), qv -= Rv, _1 = P3(Uv) / 1e3, d1 = qv / 9e4;
                      } catch (k$) {
                        o$ = !1, X1 = k$;
                      }
                      return;
                    } else
                      m$ === "" && (i$ = !1);
                  b$.parse(m$ + `
`);
                }), b$.flush();
              }
            }, _N = KM;
            function _D(Iv) {
              if (Iv === void 0)
                throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
              return Iv;
            }
            function $N(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var EN = /* @__PURE__ */ function(Iv) {
              $N(Rv, Iv);
              function Rv(bv) {
                var $v;
                if ($v = Iv.call(this, bv, cv.default.MEDIA_ATTACHING, cv.default.MEDIA_DETACHING, cv.default.FRAG_PARSING_USERDATA, cv.default.FRAG_DECRYPTED, cv.default.MANIFEST_LOADING, cv.default.MANIFEST_LOADED, cv.default.FRAG_LOADED, cv.default.INIT_PTS_FOUND) || this, $v.media = null, $v.config = void 0, $v.enabled = !0, $v.Cues = void 0, $v.textTracks = [], $v.tracks = [], $v.initPTS = [], $v.unparsedVttFrags = [], $v.captionsTracks = {}, $v.nonNativeCaptionsTracks = {}, $v.captionsProperties = void 0, $v.cea608Parser1 = void 0, $v.cea608Parser2 = void 0, $v.lastSn = -1, $v.prevCC = -1, $v.vttCCs = eN(), $v.hls = bv, $v.config = bv.config, $v.Cues = bv.config.cueHandler, $v.captionsProperties = {
                  textTrack1: {
                    label: $v.config.captionsTextTrack1Label,
                    languageCode: $v.config.captionsTextTrack1LanguageCode
                  },
                  textTrack2: {
                    label: $v.config.captionsTextTrack2Label,
                    languageCode: $v.config.captionsTextTrack2LanguageCode
                  },
                  textTrack3: {
                    label: $v.config.captionsTextTrack3Label,
                    languageCode: $v.config.captionsTextTrack3LanguageCode
                  },
                  textTrack4: {
                    label: $v.config.captionsTextTrack4Label,
                    languageCode: $v.config.captionsTextTrack4LanguageCode
                  }
                }, $v.config.enableCEA708Captions) {
                  var Tv = new $3(_D($v), "textTrack1"), Pv = new $3(_D($v), "textTrack2"), Fv = new $3(_D($v), "textTrack3"), Uv = new $3(_D($v), "textTrack4");
                  $v.cea608Parser1 = new Q3(1, Tv, Pv), $v.cea608Parser2 = new Q3(3, Fv, Uv);
                }
                return $v;
              }
              var kv = Rv.prototype;
              return kv.addCues = function(bv, $v, Tv, Pv, Fv) {
                for (var Uv = !1, qv = Fv.length; qv--; ) {
                  var _1 = Fv[qv], d1 = xN(_1[0], _1[1], $v, Tv);
                  if (d1 >= 0 && (_1[0] = Math.min(_1[0], $v), _1[1] = Math.max(_1[1], Tv), Uv = !0, d1 / (Tv - $v) > 0.5))
                    return;
                }
                if (Uv || Fv.push([$v, Tv]), this.config.renderTextTracksNatively)
                  this.Cues.newCue(this.captionsTracks[bv], $v, Tv, Pv);
                else {
                  var W1 = this.Cues.newCue(null, $v, Tv, Pv);
                  this.hls.trigger(cv.default.CUES_PARSED, {
                    type: "captions",
                    cues: W1,
                    track: bv
                  });
                }
              }, kv.onInitPtsFound = function(bv) {
                var $v = this, Tv = bv.frag, Pv = bv.id, Fv = bv.initPTS, Uv = this.unparsedVttFrags;
                Pv === "main" && (this.initPTS[Tv.cc] = Fv), Uv.length && (this.unparsedVttFrags = [], Uv.forEach(function(qv) {
                  $v.onFragLoaded(qv);
                }));
              }, kv.getExistingTrack = function(bv) {
                var $v = this.media;
                if ($v)
                  for (var Tv = 0; Tv < $v.textTracks.length; Tv++) {
                    var Pv = $v.textTracks[Tv];
                    if (Pv[bv])
                      return Pv;
                  }
                return null;
              }, kv.createCaptionsTrack = function(bv) {
                this.config.renderTextTracksNatively ? this.createNativeTrack(bv) : this.createNonNativeTrack(bv);
              }, kv.createNativeTrack = function(bv) {
                if (!this.captionsTracks[bv]) {
                  var $v = this.captionsProperties, Tv = this.captionsTracks, Pv = this.media, Fv = $v[bv], Uv = Fv.label, qv = Fv.languageCode, _1 = this.getExistingTrack(bv);
                  if (_1)
                    Tv[bv] = _1, r3(Tv[bv]), f3(Tv[bv], Pv);
                  else {
                    var d1 = this.createTextTrack("captions", Uv, qv);
                    d1 && (d1[bv] = !0, Tv[bv] = d1);
                  }
                }
              }, kv.createNonNativeTrack = function(bv) {
                if (!this.nonNativeCaptionsTracks[bv]) {
                  var $v = this.captionsProperties[bv];
                  if ($v) {
                    var Tv = $v.label, Pv = {
                      _id: bv,
                      label: Tv,
                      kind: "captions",
                      default: $v.media ? !!$v.media.default : !1,
                      closedCaptions: $v.media
                    };
                    this.nonNativeCaptionsTracks[bv] = Pv, this.hls.trigger(cv.default.NON_NATIVE_TEXT_TRACKS_FOUND, {
                      tracks: [Pv]
                    });
                  }
                }
              }, kv.createTextTrack = function(bv, $v, Tv) {
                var Pv = this.media;
                if (Pv)
                  return Pv.addTextTrack(bv, $v, Tv);
              }, kv.destroy = function() {
                Iv.prototype.destroy.call(this);
              }, kv.onMediaAttaching = function(bv) {
                this.media = bv.media, this._cleanTracks();
              }, kv.onMediaDetaching = function() {
                var bv = this.captionsTracks;
                Object.keys(bv).forEach(function($v) {
                  r3(bv[$v]), delete bv[$v];
                }), this.nonNativeCaptionsTracks = {};
              }, kv.onManifestLoading = function() {
                this.lastSn = -1, this.prevCC = -1, this.vttCCs = eN(), this._cleanTracks(), this.tracks = [], this.captionsTracks = {}, this.nonNativeCaptionsTracks = {};
              }, kv._cleanTracks = function() {
                var bv = this.media;
                if (bv) {
                  var $v = bv.textTracks;
                  if ($v)
                    for (var Tv = 0; Tv < $v.length; Tv++)
                      r3($v[Tv]);
                }
              }, kv.onManifestLoaded = function(bv) {
                var $v = this;
                if (this.textTracks = [], this.unparsedVttFrags = this.unparsedVttFrags || [], this.initPTS = [], this.cea608Parser1 && this.cea608Parser2 && (this.cea608Parser1.reset(), this.cea608Parser2.reset()), this.config.enableWebVTT) {
                  var Tv = bv.subtitles || [], Pv = this.tracks && Tv && this.tracks.length === Tv.length;
                  if (this.tracks = bv.subtitles || [], this.config.renderTextTracksNatively) {
                    var Fv = this.media ? this.media.textTracks : [];
                    this.tracks.forEach(function(qv, _1) {
                      var d1;
                      if (_1 < Fv.length) {
                        for (var W1 = null, X1 = 0; X1 < Fv.length; X1++)
                          if (wN(Fv[X1], qv)) {
                            W1 = Fv[X1];
                            break;
                          }
                        W1 && (d1 = W1);
                      }
                      d1 || (d1 = $v.createTextTrack("subtitles", qv.name, qv.lang)), qv.default ? d1.mode = $v.hls.subtitleDisplay ? "showing" : "hidden" : d1.mode = "disabled", $v.textTracks.push(d1);
                    });
                  } else if (!Pv && this.tracks && this.tracks.length) {
                    var Uv = this.tracks.map(function(qv) {
                      return {
                        label: qv.name,
                        kind: qv.type.toLowerCase(),
                        default: qv.default,
                        subtitleTrack: qv
                      };
                    });
                    this.hls.trigger(cv.default.NON_NATIVE_TEXT_TRACKS_FOUND, {
                      tracks: Uv
                    });
                  }
                }
                this.config.enableCEA708Captions && bv.captions && bv.captions.forEach(function(qv) {
                  var _1 = /(?:CC|SERVICE)([1-4])/.exec(qv.instreamId);
                  if (_1) {
                    var d1 = "textTrack" + _1[1], W1 = $v.captionsProperties[d1];
                    W1 && (W1.label = qv.name, qv.lang && (W1.languageCode = qv.lang), W1.media = qv);
                  }
                });
              }, kv.onFragLoaded = function(bv) {
                var $v = bv.frag, Tv = bv.payload, Pv = this.cea608Parser1, Fv = this.cea608Parser2, Uv = this.initPTS, qv = this.lastSn, _1 = this.unparsedVttFrags;
                if ($v.type === "main") {
                  var d1 = $v.sn;
                  $v.sn !== qv + 1 && Pv && Fv && (Pv.reset(), Fv.reset()), this.lastSn = d1;
                } else if ($v.type === "subtitle")
                  if (Tv.byteLength) {
                    if (!Object(uv.isFiniteNumber)(Uv[$v.cc])) {
                      _1.push(bv), Uv.length && this.hls.trigger(cv.default.SUBTITLE_FRAG_PROCESSED, {
                        success: !1,
                        frag: $v
                      });
                      return;
                    }
                    var W1 = $v.decryptdata;
                    (W1 == null || W1.key == null || W1.method !== "AES-128") && this._parseVTTs($v, Tv);
                  } else
                    this.hls.trigger(cv.default.SUBTITLE_FRAG_PROCESSED, {
                      success: !1,
                      frag: $v
                    });
              }, kv._parseVTTs = function(bv, $v) {
                var Tv = this, Pv = this.hls, Fv = this.prevCC, Uv = this.textTracks, qv = this.vttCCs;
                qv[bv.cc] || (qv[bv.cc] = {
                  start: bv.start,
                  prevCC: Fv,
                  new: !0
                }, this.prevCC = bv.cc), _N.parse($v, this.initPTS[bv.cc], qv, bv.cc, function(_1) {
                  if (Tv.config.renderTextTracksNatively) {
                    var d1 = Uv[bv.level];
                    if (d1.mode === "disabled") {
                      Pv.trigger(cv.default.SUBTITLE_FRAG_PROCESSED, {
                        success: !1,
                        frag: bv
                      });
                      return;
                    }
                    _1.forEach(function(X1) {
                      if (!d1.cues.getCueById(X1.id))
                        try {
                          if (d1.addCue(X1), !d1.cues.getCueById(X1.id))
                            throw new Error("addCue is failed for: " + X1);
                        } catch (o$) {
                          dv.logger.debug("Failed occurred on adding cues: " + o$);
                          var i$ = new window.TextTrackCue(X1.startTime, X1.endTime, X1.text);
                          i$.id = X1.id, d1.addCue(i$);
                        }
                    });
                  } else {
                    var W1 = Tv.tracks[bv.level].default ? "default" : "subtitles" + bv.level;
                    Pv.trigger(cv.default.CUES_PARSED, {
                      type: "subtitles",
                      cues: _1,
                      track: W1
                    });
                  }
                  Pv.trigger(cv.default.SUBTITLE_FRAG_PROCESSED, {
                    success: !0,
                    frag: bv
                  });
                }, function(_1) {
                  dv.logger.log("Failed to parse VTT cue: " + _1), Pv.trigger(cv.default.SUBTITLE_FRAG_PROCESSED, {
                    success: !1,
                    frag: bv
                  });
                });
              }, kv.onFragDecrypted = function(bv) {
                var $v = bv.frag, Tv = bv.payload;
                if ($v.type === "subtitle") {
                  if (!Object(uv.isFiniteNumber)(this.initPTS[$v.cc])) {
                    this.unparsedVttFrags.push(bv);
                    return;
                  }
                  this._parseVTTs($v, Tv);
                }
              }, kv.onFragParsingUserdata = function(bv) {
                var $v = this.cea608Parser1, Tv = this.cea608Parser2;
                if (!(!this.enabled || !($v && Tv)))
                  for (var Pv = 0; Pv < bv.samples.length; Pv++) {
                    var Fv = bv.samples[Pv].bytes;
                    if (Fv) {
                      var Uv = this.extractCea608Data(Fv);
                      $v.addData(bv.samples[Pv].pts, Uv[0]), Tv.addData(bv.samples[Pv].pts, Uv[1]);
                    }
                  }
              }, kv.extractCea608Data = function(bv) {
                for (var $v = bv[0] & 31, Tv = 2, Pv = [[], []], Fv = 0; Fv < $v; Fv++) {
                  var Uv = bv[Tv++], qv = 127 & bv[Tv++], _1 = 127 & bv[Tv++], d1 = (4 & Uv) !== 0, W1 = 3 & Uv;
                  qv === 0 && _1 === 0 || d1 && (W1 === 0 || W1 === 1) && (Pv[W1].push(qv), Pv[W1].push(_1));
                }
                return Pv;
              }, Rv;
            }(yv);
            function wN(Iv, Rv) {
              return Iv && Iv.label === Rv.name && !(Iv.textTrack1 || Iv.textTrack2);
            }
            function xN(Iv, Rv, kv, bv) {
              return Math.min(Rv, bv) - Math.max(Iv, kv);
            }
            function eN() {
              return {
                ccOffset: 0,
                presentationOffset: 0,
                0: {
                  start: 0,
                  prevCC: -1,
                  new: !1
                }
              };
            }
            var kN = EN;
            function TN(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function CN(Iv, Rv, kv) {
              return Rv && TN(Iv.prototype, Rv), Iv;
            }
            function AN(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var RN = /* @__PURE__ */ function(Iv) {
              AN(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.MEDIA_ATTACHED, cv.default.MEDIA_DETACHING, cv.default.MANIFEST_LOADED, cv.default.SUBTITLE_TRACK_LOADED) || this, $v.tracks = [], $v.trackId = -1, $v.media = null, $v.stopped = !0, $v.subtitleDisplay = !0, $v.queuedDefaultTrack = null, $v;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                yv.prototype.destroy.call(this);
              }, kv.onMediaAttached = function(bv) {
                var $v = this;
                this.media = bv.media, this.media && (Object(uv.isFiniteNumber)(this.queuedDefaultTrack) && (this.subtitleTrack = this.queuedDefaultTrack, this.queuedDefaultTrack = null), this.trackChangeListener = this._onTextTracksChanged.bind(this), this.useTextTrackPolling = !(this.media.textTracks && "onchange" in this.media.textTracks), this.useTextTrackPolling ? this.subtitlePollingInterval = setInterval(function() {
                  $v.trackChangeListener();
                }, 500) : this.media.textTracks.addEventListener("change", this.trackChangeListener));
              }, kv.onMediaDetaching = function() {
                if (this.media) {
                  this.useTextTrackPolling ? clearInterval(this.subtitlePollingInterval) : this.media.textTracks.removeEventListener("change", this.trackChangeListener), Object(uv.isFiniteNumber)(this.subtitleTrack) && (this.queuedDefaultTrack = this.subtitleTrack);
                  var bv = qM(this.media.textTracks);
                  bv.forEach(function($v) {
                    r3($v);
                  }), this.subtitleTrack = -1, this.media = null;
                }
              }, kv.onManifestLoaded = function(bv) {
                var $v = this, Tv = bv.subtitles || [];
                this.tracks = Tv, this.hls.trigger(cv.default.SUBTITLE_TRACKS_UPDATED, {
                  subtitleTracks: Tv
                }), Tv.forEach(function(Pv) {
                  Pv.default && ($v.media ? $v.subtitleTrack = Pv.id : $v.queuedDefaultTrack = Pv.id);
                });
              }, kv.onSubtitleTrackLoaded = function(bv) {
                var $v = this, Tv = bv.id, Pv = bv.details, Fv = this.trackId, Uv = this.tracks, qv = Uv[Fv];
                if (Tv >= Uv.length || Tv !== Fv || !qv || this.stopped) {
                  this._clearReloadTimer();
                  return;
                }
                if (dv.logger.log("subtitle track " + Tv + " loaded"), Pv.live) {
                  var _1 = V$(qv.details, Pv, bv.stats.trequest);
                  dv.logger.log("Reloading live subtitle playlist in " + _1 + "ms"), this.timer = setTimeout(function() {
                    $v._loadCurrentTrack();
                  }, _1);
                } else
                  this._clearReloadTimer();
              }, kv.startLoad = function() {
                this.stopped = !1, this._loadCurrentTrack();
              }, kv.stopLoad = function() {
                this.stopped = !0, this._clearReloadTimer();
              }, kv._clearReloadTimer = function() {
                this.timer && (clearTimeout(this.timer), this.timer = null);
              }, kv._loadCurrentTrack = function() {
                var bv = this.trackId, $v = this.tracks, Tv = this.hls, Pv = $v[bv];
                bv < 0 || !Pv || Pv.details && !Pv.details.live || (dv.logger.log("Loading subtitle track " + bv), Tv.trigger(cv.default.SUBTITLE_TRACK_LOADING, {
                  url: Pv.url,
                  id: bv
                }));
              }, kv._toggleTrackModes = function(bv) {
                var $v = this.media, Tv = this.subtitleDisplay, Pv = this.trackId;
                if ($v) {
                  var Fv = qM($v.textTracks);
                  if (bv === -1)
                    [].slice.call(Fv).forEach(function(_1) {
                      _1.mode = "disabled";
                    });
                  else {
                    var Uv = Fv[Pv];
                    Uv && (Uv.mode = "disabled");
                  }
                  var qv = Fv[bv];
                  qv && (qv.mode = Tv ? "showing" : "hidden");
                }
              }, kv._setSubtitleTrackInternal = function(bv) {
                var $v = this.hls, Tv = this.tracks;
                !Object(uv.isFiniteNumber)(bv) || bv < -1 || bv >= Tv.length || (this.trackId = bv, dv.logger.log("Switching to subtitle track " + bv), $v.trigger(cv.default.SUBTITLE_TRACK_SWITCH, {
                  id: bv
                }), this._loadCurrentTrack());
              }, kv._onTextTracksChanged = function() {
                if (!(!this.media || !this.hls.config.renderTextTracksNatively)) {
                  for (var bv = -1, $v = qM(this.media.textTracks), Tv = 0; Tv < $v.length; Tv++)
                    if ($v[Tv].mode === "hidden")
                      bv = Tv;
                    else if ($v[Tv].mode === "showing") {
                      bv = Tv;
                      break;
                    }
                  this.subtitleTrack = bv;
                }
              }, CN(Rv, [{
                key: "subtitleTracks",
                get: function() {
                  return this.tracks;
                }
                /** get index of the selected subtitle track (index in subtitle track lists) **/
              }, {
                key: "subtitleTrack",
                get: function() {
                  return this.trackId;
                },
                set: function(bv) {
                  this.trackId !== bv && (this._toggleTrackModes(bv), this._setSubtitleTrackInternal(bv));
                }
              }]), Rv;
            }(yv);
            function qM(Iv) {
              for (var Rv = [], kv = 0; kv < Iv.length; kv++) {
                var bv = Iv[kv];
                bv.kind === "subtitles" && bv.label && Rv.push(Iv[kv]);
              }
              return Rv;
            }
            var ON = RN, IN = ov("./src/crypt/decrypter.js");
            function PN(Iv) {
              if (Iv === void 0)
                throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
              return Iv;
            }
            function DN(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var MN = window, tN = MN.performance, YM = 500, NN = /* @__PURE__ */ function(Iv) {
              DN(Rv, Iv);
              function Rv(bv, $v) {
                var Tv;
                return Tv = Iv.call(this, bv, cv.default.MEDIA_ATTACHED, cv.default.MEDIA_DETACHING, cv.default.ERROR, cv.default.KEY_LOADED, cv.default.FRAG_LOADED, cv.default.SUBTITLE_TRACKS_UPDATED, cv.default.SUBTITLE_TRACK_SWITCH, cv.default.SUBTITLE_TRACK_LOADED, cv.default.SUBTITLE_FRAG_PROCESSED, cv.default.LEVEL_UPDATED) || this, Tv.fragmentTracker = $v, Tv.config = bv.config, Tv.state = G1.STOPPED, Tv.tracks = [], Tv.tracksBuffered = [], Tv.currentTrackId = -1, Tv.decrypter = new IN.default(bv, bv.config), Tv.lastAVStart = 0, Tv._onMediaSeeking = Tv.onMediaSeeking.bind(PN(Tv)), Tv;
              }
              var kv = Rv.prototype;
              return kv.startLoad = function() {
                this.stopLoad(), this.state = G1.IDLE;
                var bv = this.tracks[this.currentTrackId];
                bv && bv.details && (this.setInterval(YM), this.tick());
              }, kv.onSubtitleFragProcessed = function(bv) {
                var $v = bv.frag, Tv = bv.success;
                if (this.fragPrevious = $v, this.state = G1.IDLE, !!Tv) {
                  var Pv = this.tracksBuffered[this.currentTrackId];
                  if (Pv) {
                    for (var Fv, Uv = $v.start, qv = 0; qv < Pv.length; qv++)
                      if (Uv >= Pv[qv].start && Uv <= Pv[qv].end) {
                        Fv = Pv[qv];
                        break;
                      }
                    var _1 = $v.start + $v.duration;
                    Fv ? Fv.end = _1 : (Fv = {
                      start: Uv,
                      end: _1
                    }, Pv.push(Fv));
                  }
                }
              }, kv.onMediaAttached = function(bv) {
                var $v = bv.media;
                this.media = $v, $v.addEventListener("seeking", this._onMediaSeeking), this.state = G1.IDLE;
              }, kv.onMediaDetaching = function() {
                var bv = this;
                this.media && (this.media.removeEventListener("seeking", this._onMediaSeeking), this.fragmentTracker.removeAllFragments(), this.currentTrackId = -1, this.tracks.forEach(function($v) {
                  bv.tracksBuffered[$v.id] = [];
                }), this.media = null, this.state = G1.STOPPED);
              }, kv.onError = function(bv) {
                var $v = bv.frag;
                !$v || $v.type !== "subtitle" || (this.fragCurrent && this.fragCurrent.loader && this.fragCurrent.loader.abort(), this.state = G1.IDLE);
              }, kv.onSubtitleTracksUpdated = function(bv) {
                var $v = this;
                dv.logger.log("subtitle tracks updated"), this.tracksBuffered = [], this.tracks = bv.subtitleTracks, this.tracks.forEach(function(Tv) {
                  $v.tracksBuffered[Tv.id] = [];
                });
              }, kv.onSubtitleTrackSwitch = function(bv) {
                if (this.currentTrackId = bv.id, !this.tracks || !this.tracks.length || this.currentTrackId === -1) {
                  this.clearInterval();
                  return;
                }
                var $v = this.tracks[this.currentTrackId];
                $v && $v.details && this.setInterval(YM);
              }, kv.onSubtitleTrackLoaded = function(bv) {
                var $v = bv.id, Tv = bv.details, Pv = this.currentTrackId, Fv = this.tracks, Uv = Fv[Pv];
                $v >= Fv.length || $v !== Pv || !Uv || (Tv.live && p$(Uv.details, Tv, this.lastAVStart), Uv.details = Tv, this.setInterval(YM));
              }, kv.onKeyLoaded = function() {
                this.state === G1.KEY_LOADING && (this.state = G1.IDLE);
              }, kv.onFragLoaded = function(bv) {
                var $v = this.fragCurrent, Tv = bv.frag.decryptdata, Pv = bv.frag, Fv = this.hls;
                if (this.state === G1.FRAG_LOADING && $v && bv.frag.type === "subtitle" && $v.sn === bv.frag.sn && bv.payload.byteLength > 0 && Tv && Tv.key && Tv.method === "AES-128") {
                  var Uv = tN.now();
                  this.decrypter.decrypt(bv.payload, Tv.key.buffer, Tv.iv.buffer, function(qv) {
                    var _1 = tN.now();
                    Fv.trigger(cv.default.FRAG_DECRYPTED, {
                      frag: Pv,
                      payload: qv,
                      stats: {
                        tstart: Uv,
                        tdecrypt: _1
                      }
                    });
                  });
                }
              }, kv.onLevelUpdated = function(bv) {
                var $v = bv.details, Tv = $v.fragments;
                this.lastAVStart = Tv.length ? Tv[0].start : 0;
              }, kv.doTick = function() {
                if (!this.media) {
                  this.state = G1.IDLE;
                  return;
                }
                switch (this.state) {
                  case G1.IDLE: {
                    var bv = this.config, $v = this.currentTrackId, Tv = this.fragmentTracker, Pv = this.media, Fv = this.tracks;
                    if (!Fv || !Fv[$v] || !Fv[$v].details)
                      break;
                    var Uv = bv.maxBufferHole, qv = bv.maxFragLookUpTolerance, _1 = Math.min(bv.maxBufferLength, bv.maxMaxBufferLength), d1 = Mv.bufferedInfo(this._getBuffered(), Pv.currentTime, Uv), W1 = d1.end, X1 = d1.len, i$ = Fv[$v].details, o$ = i$.fragments, b$ = o$.length, m$ = o$[b$ - 1].start + o$[b$ - 1].duration;
                    if (X1 > _1)
                      return;
                    var k$, B$ = this.fragPrevious;
                    W1 < m$ ? (B$ && i$.hasProgramDateTime && (k$ = J$(o$, B$.endProgramDateTime, qv)), k$ || (k$ = Y$(B$, o$, W1, qv))) : k$ = o$[b$ - 1], k$ && k$.encrypted ? (dv.logger.log("Loading key for " + k$.sn), this.state = G1.KEY_LOADING, this.hls.trigger(cv.default.KEY_LOADING, {
                      frag: k$
                    })) : k$ && Tv.getState(k$) === O1.NOT_LOADED && (this.fragCurrent = k$, this.state = G1.FRAG_LOADING, this.hls.trigger(cv.default.FRAG_LOADING, {
                      frag: k$
                    }));
                  }
                }
              }, kv.stopLoad = function() {
                this.lastAVStart = 0, this.fragPrevious = null, Iv.prototype.stopLoad.call(this);
              }, kv._getBuffered = function() {
                return this.tracksBuffered[this.currentTrackId] || [];
              }, kv.onMediaSeeking = function() {
                if (this.fragCurrent) {
                  var bv = this.media ? this.media.currentTime : 0, $v = this.config.maxFragLookUpTolerance, Tv = this.fragCurrent.start - $v, Pv = this.fragCurrent.start + this.fragCurrent.duration + $v;
                  (bv < Tv || bv > Pv) && (this.fragCurrent.loader && this.fragCurrent.loader.abort(), this.fragmentTracker.removeFragment(this.fragCurrent), this.fragCurrent = null, this.fragPrevious = null, this.state = G1.IDLE, this.tick());
                }
              }, Rv;
            }(I$), k3;
            (function(Iv) {
              Iv.WIDEVINE = "com.widevine.alpha", Iv.PLAYREADY = "com.microsoft.playready";
            })(k3 || (k3 = {}));
            var LN = function() {
              return typeof window < "u" && window.navigator && window.navigator.requestMediaKeySystemAccess ? window.navigator.requestMediaKeySystemAccess.bind(window.navigator) : null;
            }();
            function FN(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function jN(Iv, Rv, kv) {
              return Rv && FN(Iv.prototype, Rv), Iv;
            }
            function BN(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var nN = 3, VN = function(Iv, Rv, kv) {
              var bv = {
                // initDataTypes: ['keyids', 'mp4'],
                // label: "",
                // persistentState: "not-allowed", // or "required" ?
                // distinctiveIdentifier: "not-allowed", // or "required" ?
                // sessionTypes: ['temporary'],
                audioCapabilities: [],
                // { contentType: 'audio/mp4; codecs="mp4a.40.2"' }
                videoCapabilities: []
                // { contentType: 'video/mp4; codecs="avc1.42E01E"' }
              };
              return Iv.forEach(function($v) {
                bv.audioCapabilities.push({
                  contentType: 'audio/mp4; codecs="' + $v + '"',
                  robustness: kv.audioRobustness || ""
                });
              }), Rv.forEach(function($v) {
                bv.videoCapabilities.push({
                  contentType: 'video/mp4; codecs="' + $v + '"',
                  robustness: kv.videoRobustness || ""
                });
              }), [bv];
            }, UN = function(Iv, Rv, kv, bv) {
              switch (Iv) {
                case k3.WIDEVINE:
                  return VN(Rv, kv, bv);
                default:
                  throw new Error("Unknown key-system: " + Iv);
              }
            }, HN = /* @__PURE__ */ function(Iv) {
              BN(Rv, Iv);
              function Rv(bv) {
                var $v;
                return $v = Iv.call(this, bv, cv.default.MEDIA_ATTACHED, cv.default.MEDIA_DETACHED, cv.default.MANIFEST_PARSED) || this, $v._widevineLicenseUrl = void 0, $v._licenseXhrSetup = void 0, $v._emeEnabled = void 0, $v._requestMediaKeySystemAccess = void 0, $v._drmSystemOptions = void 0, $v._config = void 0, $v._mediaKeysList = [], $v._media = null, $v._hasSetMediaKeys = !1, $v._requestLicenseFailureCount = 0, $v.mediaKeysPromise = null, $v._onMediaEncrypted = function(Tv) {
                  if (dv.logger.log('Media is encrypted using "' + Tv.initDataType + '" init data type'), !$v.mediaKeysPromise) {
                    dv.logger.error("Fatal: Media is encrypted but no CDM access or no keys have been requested"), $v.hls.trigger(cv.default.ERROR, {
                      type: lv.ErrorTypes.KEY_SYSTEM_ERROR,
                      details: lv.ErrorDetails.KEY_SYSTEM_NO_KEYS,
                      fatal: !0
                    });
                    return;
                  }
                  var Pv = function(Fv) {
                    $v._media && ($v._attemptSetMediaKeys(Fv), $v._generateRequestWithPreferredKeySession(Tv.initDataType, Tv.initData));
                  };
                  $v.mediaKeysPromise.then(Pv).catch(Pv);
                }, $v._config = bv.config, $v._widevineLicenseUrl = $v._config.widevineLicenseUrl, $v._licenseXhrSetup = $v._config.licenseXhrSetup, $v._emeEnabled = $v._config.emeEnabled, $v._requestMediaKeySystemAccess = $v._config.requestMediaKeySystemAccessFunc, $v._drmSystemOptions = bv.config.drmSystemOptions, $v;
              }
              var kv = Rv.prototype;
              return kv.getLicenseServerUrl = function(bv) {
                switch (bv) {
                  case k3.WIDEVINE:
                    if (!this._widevineLicenseUrl)
                      break;
                    return this._widevineLicenseUrl;
                }
                throw new Error('no license server URL configured for key-system "' + bv + '"');
              }, kv._attemptKeySystemAccess = function(bv, $v, Tv) {
                var Pv = this, Fv = UN(bv, $v, Tv, this._drmSystemOptions);
                dv.logger.log("Requesting encrypted media key-system access");
                var Uv = this.requestMediaKeySystemAccess(bv, Fv);
                this.mediaKeysPromise = Uv.then(function(qv) {
                  return Pv._onMediaKeySystemAccessObtained(bv, qv);
                }), Uv.catch(function(qv) {
                  dv.logger.error('Failed to obtain key-system "' + bv + '" access:', qv);
                });
              }, kv._onMediaKeySystemAccessObtained = function(bv, $v) {
                var Tv = this;
                dv.logger.log('Access for key-system "' + bv + '" obtained');
                var Pv = {
                  mediaKeysSessionInitialized: !1,
                  mediaKeySystemAccess: $v,
                  mediaKeySystemDomain: bv
                };
                this._mediaKeysList.push(Pv);
                var Fv = Promise.resolve().then(function() {
                  return $v.createMediaKeys();
                }).then(function(Uv) {
                  return Pv.mediaKeys = Uv, dv.logger.log('Media-keys created for key-system "' + bv + '"'), Tv._onMediaKeysCreated(), Uv;
                });
                return Fv.catch(function(Uv) {
                  dv.logger.error("Failed to create media-keys:", Uv);
                }), Fv;
              }, kv._onMediaKeysCreated = function() {
                var bv = this;
                this._mediaKeysList.forEach(function($v) {
                  $v.mediaKeysSession || ($v.mediaKeysSession = $v.mediaKeys.createSession(), bv._onNewMediaKeySession($v.mediaKeysSession));
                });
              }, kv._onNewMediaKeySession = function(bv) {
                var $v = this;
                dv.logger.log("New key-system session " + bv.sessionId), bv.addEventListener("message", function(Tv) {
                  $v._onKeySessionMessage(bv, Tv.message);
                }, !1);
              }, kv._onKeySessionMessage = function(bv, $v) {
                dv.logger.log("Got EME message event, creating license request"), this._requestLicense($v, function(Tv) {
                  dv.logger.log("Received license data (length: " + (Tv && Tv.byteLength) + "), updating key-session"), bv.update(Tv);
                });
              }, kv._attemptSetMediaKeys = function(bv) {
                if (!this._media)
                  throw new Error("Attempted to set mediaKeys without first attaching a media element");
                if (!this._hasSetMediaKeys) {
                  var $v = this._mediaKeysList[0];
                  if (!$v || !$v.mediaKeys) {
                    dv.logger.error("Fatal: Media is encrypted but no CDM access or no keys have been obtained yet"), this.hls.trigger(cv.default.ERROR, {
                      type: lv.ErrorTypes.KEY_SYSTEM_ERROR,
                      details: lv.ErrorDetails.KEY_SYSTEM_NO_KEYS,
                      fatal: !0
                    });
                    return;
                  }
                  dv.logger.log("Setting keys for encrypted media"), this._media.setMediaKeys($v.mediaKeys), this._hasSetMediaKeys = !0;
                }
              }, kv._generateRequestWithPreferredKeySession = function(bv, $v) {
                var Tv = this, Pv = this._mediaKeysList[0];
                if (!Pv) {
                  dv.logger.error("Fatal: Media is encrypted but not any key-system access has been obtained yet"), this.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.KEY_SYSTEM_ERROR,
                    details: lv.ErrorDetails.KEY_SYSTEM_NO_ACCESS,
                    fatal: !0
                  });
                  return;
                }
                if (Pv.mediaKeysSessionInitialized) {
                  dv.logger.warn("Key-Session already initialized but requested again");
                  return;
                }
                var Fv = Pv.mediaKeysSession;
                if (!Fv) {
                  dv.logger.error("Fatal: Media is encrypted but no key-session existing"), this.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.KEY_SYSTEM_ERROR,
                    details: lv.ErrorDetails.KEY_SYSTEM_NO_SESSION,
                    fatal: !0
                  });
                  return;
                }
                if (!$v) {
                  dv.logger.warn("Fatal: initData required for generating a key session is null"), this.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.KEY_SYSTEM_ERROR,
                    details: lv.ErrorDetails.KEY_SYSTEM_NO_INIT_DATA,
                    fatal: !0
                  });
                  return;
                }
                dv.logger.log('Generating key-session request for "' + bv + '" init data type'), Pv.mediaKeysSessionInitialized = !0, Fv.generateRequest(bv, $v).then(function() {
                  dv.logger.debug("Key-session generation succeeded");
                }).catch(function(Uv) {
                  dv.logger.error("Error generating key-session request:", Uv), Tv.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.KEY_SYSTEM_ERROR,
                    details: lv.ErrorDetails.KEY_SYSTEM_NO_SESSION,
                    fatal: !1
                  });
                });
              }, kv._createLicenseXhr = function(bv, $v, Tv) {
                var Pv = new XMLHttpRequest(), Fv = this._licenseXhrSetup;
                try {
                  if (Fv)
                    try {
                      Fv(Pv, bv);
                    } catch {
                      Pv.open("POST", bv, !0), Fv(Pv, bv);
                    }
                  Pv.readyState || Pv.open("POST", bv, !0);
                } catch (Uv) {
                  throw new Error("issue setting up KeySystem license XHR " + Uv);
                }
                return Pv.responseType = "arraybuffer", Pv.onreadystatechange = this._onLicenseRequestReadyStageChange.bind(this, Pv, bv, $v, Tv), Pv;
              }, kv._onLicenseRequestReadyStageChange = function(bv, $v, Tv, Pv) {
                switch (bv.readyState) {
                  case 4:
                    if (bv.status === 200)
                      this._requestLicenseFailureCount = 0, dv.logger.log("License request succeeded"), bv.responseType !== "arraybuffer" && dv.logger.warn("xhr response type was not set to the expected arraybuffer for license request"), Pv(bv.response);
                    else {
                      if (dv.logger.error("License Request XHR failed (" + $v + "). Status: " + bv.status + " (" + bv.statusText + ")"), this._requestLicenseFailureCount++, this._requestLicenseFailureCount > nN) {
                        this.hls.trigger(cv.default.ERROR, {
                          type: lv.ErrorTypes.KEY_SYSTEM_ERROR,
                          details: lv.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
                          fatal: !0
                        });
                        return;
                      }
                      var Fv = nN - this._requestLicenseFailureCount + 1;
                      dv.logger.warn("Retrying license request, " + Fv + " attempts left"), this._requestLicense(Tv, Pv);
                    }
                    break;
                }
              }, kv._generateLicenseRequestChallenge = function(bv, $v) {
                switch (bv.mediaKeySystemDomain) {
                  case k3.WIDEVINE:
                    return $v;
                }
                throw new Error("unsupported key-system: " + bv.mediaKeySystemDomain);
              }, kv._requestLicense = function(bv, $v) {
                dv.logger.log("Requesting content license for key-system");
                var Tv = this._mediaKeysList[0];
                if (!Tv) {
                  dv.logger.error("Fatal error: Media is encrypted but no key-system access has been obtained yet"), this.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.KEY_SYSTEM_ERROR,
                    details: lv.ErrorDetails.KEY_SYSTEM_NO_ACCESS,
                    fatal: !0
                  });
                  return;
                }
                try {
                  var Pv = this.getLicenseServerUrl(Tv.mediaKeySystemDomain), Fv = this._createLicenseXhr(Pv, bv, $v);
                  dv.logger.log("Sending license request to URL: " + Pv);
                  var Uv = this._generateLicenseRequestChallenge(Tv, bv);
                  Fv.send(Uv);
                } catch (qv) {
                  dv.logger.error("Failure requesting DRM license: " + qv), this.hls.trigger(cv.default.ERROR, {
                    type: lv.ErrorTypes.KEY_SYSTEM_ERROR,
                    details: lv.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
                    fatal: !0
                  });
                }
              }, kv.onMediaAttached = function(bv) {
                if (this._emeEnabled) {
                  var $v = bv.media;
                  this._media = $v, $v.addEventListener("encrypted", this._onMediaEncrypted);
                }
              }, kv.onMediaDetached = function() {
                var bv = this._media, $v = this._mediaKeysList;
                bv && (bv.removeEventListener("encrypted", this._onMediaEncrypted), this._media = null, this._mediaKeysList = [], Promise.all($v.map(function(Tv) {
                  if (Tv.mediaKeysSession)
                    return Tv.mediaKeysSession.close().catch(function() {
                    });
                })).then(function() {
                  return bv.setMediaKeys(null);
                }).catch(function() {
                }));
              }, kv.onManifestParsed = function(bv) {
                if (this._emeEnabled) {
                  var $v = bv.levels.map(function(Pv) {
                    return Pv.audioCodec;
                  }), Tv = bv.levels.map(function(Pv) {
                    return Pv.videoCodec;
                  });
                  this._attemptKeySystemAccess(k3.WIDEVINE, $v, Tv);
                }
              }, jN(Rv, [{
                key: "requestMediaKeySystemAccess",
                get: function() {
                  if (!this._requestMediaKeySystemAccess)
                    throw new Error("No requestMediaKeySystemAccess function configured");
                  return this._requestMediaKeySystemAccess;
                }
              }]), Rv;
            }(yv), zN = HN;
            function rN(Iv, Rv) {
              var kv = Object.keys(Iv);
              if (Object.getOwnPropertySymbols) {
                var bv = Object.getOwnPropertySymbols(Iv);
                Rv && (bv = bv.filter(function($v) {
                  return Object.getOwnPropertyDescriptor(Iv, $v).enumerable;
                })), kv.push.apply(kv, bv);
              }
              return kv;
            }
            function iN(Iv) {
              for (var Rv = 1; Rv < arguments.length; Rv++) {
                var kv = arguments[Rv] != null ? arguments[Rv] : {};
                Rv % 2 ? rN(Object(kv), !0).forEach(function(bv) {
                  WN(Iv, bv, kv[bv]);
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(Iv, Object.getOwnPropertyDescriptors(kv)) : rN(Object(kv)).forEach(function(bv) {
                  Object.defineProperty(Iv, bv, Object.getOwnPropertyDescriptor(kv, bv));
                });
              }
              return Iv;
            }
            function WN(Iv, Rv, kv) {
              return Rv in Iv ? Object.defineProperty(Iv, Rv, { value: kv, enumerable: !0, configurable: !0, writable: !0 }) : Iv[Rv] = kv, Iv;
            }
            var GN = iN(iN({
              autoStartLoad: !0,
              // used by stream-controller
              startPosition: -1,
              // used by stream-controller
              defaultAudioCodec: void 0,
              // used by stream-controller
              debug: !1,
              // used by logger
              capLevelOnFPSDrop: !1,
              // used by fps-controller
              capLevelToPlayerSize: !1,
              // used by cap-level-controller
              initialLiveManifestSize: 1,
              // used by stream-controller
              maxBufferLength: 30,
              // used by stream-controller
              maxBufferSize: 60 * 1e3 * 1e3,
              // used by stream-controller
              maxBufferHole: 0.5,
              // used by stream-controller
              lowBufferWatchdogPeriod: 0.5,
              // used by stream-controller
              highBufferWatchdogPeriod: 3,
              // used by stream-controller
              nudgeOffset: 0.1,
              // used by stream-controller
              nudgeMaxRetry: 3,
              // used by stream-controller
              maxFragLookUpTolerance: 0.25,
              // used by stream-controller
              liveSyncDurationCount: 3,
              // used by stream-controller
              liveMaxLatencyDurationCount: 1 / 0,
              // used by stream-controller
              liveSyncDuration: void 0,
              // used by stream-controller
              liveMaxLatencyDuration: void 0,
              // used by stream-controller
              liveDurationInfinity: !1,
              // used by buffer-controller
              liveBackBufferLength: 1 / 0,
              // used by buffer-controller
              maxMaxBufferLength: 600,
              // used by stream-controller
              enableWorker: !0,
              // used by demuxer
              enableSoftwareAES: !0,
              // used by decrypter
              manifestLoadingTimeOut: 1e4,
              // used by playlist-loader
              manifestLoadingMaxRetry: 1,
              // used by playlist-loader
              manifestLoadingRetryDelay: 1e3,
              // used by playlist-loader
              manifestLoadingMaxRetryTimeout: 64e3,
              // used by playlist-loader
              startLevel: void 0,
              // used by level-controller
              levelLoadingTimeOut: 1e4,
              // used by playlist-loader
              levelLoadingMaxRetry: 4,
              // used by playlist-loader
              levelLoadingRetryDelay: 1e3,
              // used by playlist-loader
              levelLoadingMaxRetryTimeout: 64e3,
              // used by playlist-loader
              fragLoadingTimeOut: 2e4,
              // used by fragment-loader
              fragLoadingMaxRetry: 6,
              // used by fragment-loader
              fragLoadingRetryDelay: 1e3,
              // used by fragment-loader
              fragLoadingMaxRetryTimeout: 64e3,
              // used by fragment-loader
              startFragPrefetch: !1,
              // used by stream-controller
              fpsDroppedMonitoringPeriod: 5e3,
              // used by fps-controller
              fpsDroppedMonitoringThreshold: 0.2,
              // used by fps-controller
              appendErrorMaxRetry: 3,
              // used by buffer-controller
              loader: SM,
              // loader: FetchLoader,
              fLoader: void 0,
              // used by fragment-loader
              pLoader: void 0,
              // used by playlist-loader
              xhrSetup: void 0,
              // used by xhr-loader
              licenseXhrSetup: void 0,
              // used by eme-controller
              // fetchSetup: void 0,
              abrController: aM,
              bufferController: cM,
              capLevelController: hM,
              fpsController: yM,
              stretchShortVideoTrack: !1,
              // used by mp4-remuxer
              maxAudioFramesDrift: 1,
              // used by mp4-remuxer
              forceKeyFrameOnDiscontinuity: !0,
              // used by ts-demuxer
              abrEwmaFastLive: 3,
              // used by abr-controller
              abrEwmaSlowLive: 9,
              // used by abr-controller
              abrEwmaFastVoD: 3,
              // used by abr-controller
              abrEwmaSlowVoD: 9,
              // used by abr-controller
              abrEwmaDefaultEstimate: 5e5,
              // 500 kbps  // used by abr-controller
              abrBandWidthFactor: 0.95,
              // used by abr-controller
              abrBandWidthUpFactor: 0.7,
              // used by abr-controller
              abrMaxWithRealBitrate: !1,
              // used by abr-controller
              maxStarvationDelay: 4,
              // used by abr-controller
              maxLoadingDelay: 4,
              // used by abr-controller
              minAutoBitrate: 0,
              // used by hls
              emeEnabled: !1,
              // used by eme-controller
              widevineLicenseUrl: void 0,
              // used by eme-controller
              drmSystemOptions: {},
              // used by eme-controller
              requestMediaKeySystemAccessFunc: LN,
              // used by eme-controller
              testBandwidth: !0
            }, KN()), {}, {
              subtitleStreamController: NN,
              subtitleTrackController: ON,
              timelineController: kN,
              audioStreamController: OM,
              audioTrackController: xM,
              emeController: zN
            });
            function KN() {
              return {
                cueHandler: av,
                // used by timeline-controller
                enableCEA708Captions: !0,
                // used by timeline-controller
                enableWebVTT: !0,
                // used by timeline-controller
                captionsTextTrack1Label: "English",
                // used by timeline-controller
                captionsTextTrack1LanguageCode: "en",
                // used by timeline-controller
                captionsTextTrack2Label: "Spanish",
                // used by timeline-controller
                captionsTextTrack2LanguageCode: "es",
                // used by timeline-controller
                captionsTextTrack3Label: "Unknown CC",
                // used by timeline-controller
                captionsTextTrack3LanguageCode: "",
                // used by timeline-controller
                captionsTextTrack4Label: "Unknown CC",
                // used by timeline-controller
                captionsTextTrack4LanguageCode: "",
                // used by timeline-controller
                renderTextTracksNatively: !0
              };
            }
            function oN(Iv, Rv) {
              var kv = Object.keys(Iv);
              if (Object.getOwnPropertySymbols) {
                var bv = Object.getOwnPropertySymbols(Iv);
                Rv && (bv = bv.filter(function($v) {
                  return Object.getOwnPropertyDescriptor(Iv, $v).enumerable;
                })), kv.push.apply(kv, bv);
              }
              return kv;
            }
            function aN(Iv) {
              for (var Rv = 1; Rv < arguments.length; Rv++) {
                var kv = arguments[Rv] != null ? arguments[Rv] : {};
                Rv % 2 ? oN(Object(kv), !0).forEach(function(bv) {
                  qN(Iv, bv, kv[bv]);
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(Iv, Object.getOwnPropertyDescriptors(kv)) : oN(Object(kv)).forEach(function(bv) {
                  Object.defineProperty(Iv, bv, Object.getOwnPropertyDescriptor(kv, bv));
                });
              }
              return Iv;
            }
            function qN(Iv, Rv, kv) {
              return Rv in Iv ? Object.defineProperty(Iv, Rv, { value: kv, enumerable: !0, configurable: !0, writable: !0 }) : Iv[Rv] = kv, Iv;
            }
            function tO(Iv) {
              if (Iv === void 0)
                throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
              return Iv;
            }
            function sN(Iv, Rv) {
              for (var kv = 0; kv < Rv.length; kv++) {
                var bv = Rv[kv];
                bv.enumerable = bv.enumerable || !1, bv.configurable = !0, "value" in bv && (bv.writable = !0), Object.defineProperty(Iv, bv.key, bv);
              }
            }
            function lN(Iv, Rv, kv) {
              return Rv && sN(Iv.prototype, Rv), kv && sN(Iv, kv), Iv;
            }
            function YN(Iv, Rv) {
              Iv.prototype = Object.create(Rv.prototype), Iv.prototype.constructor = Iv, Iv.__proto__ = Rv;
            }
            var cN = /* @__PURE__ */ function(Iv) {
              YN(Rv, Iv), Rv.isSupported = function() {
                return S3();
              }, lN(Rv, null, [{
                key: "version",
                /**
                 * @type {string}
                 */
                get: function() {
                  return "0.14.17";
                }
              }, {
                key: "Events",
                get: function() {
                  return cv.default;
                }
                /**
                 * @type {HlsErrorTypes}
                 */
              }, {
                key: "ErrorTypes",
                get: function() {
                  return lv.ErrorTypes;
                }
                /**
                 * @type {HlsErrorDetails}
                 */
              }, {
                key: "ErrorDetails",
                get: function() {
                  return lv.ErrorDetails;
                }
                /**
                 * @type {HlsConfig}
                 */
              }, {
                key: "DefaultConfig",
                get: function() {
                  return Rv.defaultConfig ? Rv.defaultConfig : GN;
                },
                set: function(bv) {
                  Rv.defaultConfig = bv;
                }
                /**
                 * Creates an instance of an HLS client that can attach to exactly one `HTMLMediaElement`.
                 *
                 * @constructs Hls
                 * @param {HlsConfig} config
                 */
              }]);
              function Rv(bv) {
                var $v;
                bv === void 0 && (bv = {}), $v = Iv.call(this) || this, $v.config = void 0, $v._autoLevelCapping = void 0, $v.abrController = void 0, $v.capLevelController = void 0, $v.levelController = void 0, $v.streamController = void 0, $v.networkControllers = void 0, $v.audioTrackController = void 0, $v.subtitleTrackController = void 0, $v.emeController = void 0, $v.coreComponents = void 0, $v.media = null, $v.url = null;
                var Tv = Rv.DefaultConfig;
                if ((bv.liveSyncDurationCount || bv.liveMaxLatencyDurationCount) && (bv.liveSyncDuration || bv.liveMaxLatencyDuration))
                  throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");
                $v.config = aN(aN({}, Tv), bv);
                var Pv = tO($v), Fv = Pv.config;
                if (Fv.liveMaxLatencyDurationCount !== void 0 && Fv.liveMaxLatencyDurationCount <= Fv.liveSyncDurationCount)
                  throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"');
                if (Fv.liveMaxLatencyDuration !== void 0 && (Fv.liveSyncDuration === void 0 || Fv.liveMaxLatencyDuration <= Fv.liveSyncDuration))
                  throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be gt "liveSyncDuration"');
                Object(dv.enableLogs)(Fv.debug), $v._autoLevelCapping = -1;
                var Uv = $v.abrController = new Fv.abrController(tO($v)), qv = new Fv.bufferController(tO($v)), _1 = $v.capLevelController = new Fv.capLevelController(tO($v)), d1 = new Fv.fpsController(tO($v)), W1 = new a$(tO($v)), X1 = new x$(tO($v)), i$ = new O$(tO($v)), o$ = new i3(tO($v)), b$ = $v.levelController = new n3(tO($v)), m$ = new Z1(tO($v)), k$ = $v.streamController = new u3(tO($v), m$), B$ = [b$, k$], C$ = Fv.audioStreamController;
                C$ && B$.push(new C$(tO($v), m$)), $v.networkControllers = B$;
                var X$ = [W1, X1, i$, Uv, qv, _1, d1, o$, m$];
                if (C$ = Fv.audioTrackController, C$) {
                  var l3 = new C$(tO($v));
                  $v.audioTrackController = l3, X$.push(l3);
                }
                if (C$ = Fv.subtitleTrackController, C$) {
                  var t3 = new C$(tO($v));
                  $v.subtitleTrackController = t3, B$.push(t3);
                }
                if (C$ = Fv.emeController, C$) {
                  var c3 = new C$(tO($v));
                  $v.emeController = c3, X$.push(c3);
                }
                return C$ = Fv.subtitleStreamController, C$ && B$.push(new C$(tO($v), m$)), C$ = Fv.timelineController, C$ && X$.push(new C$(tO($v))), $v.coreComponents = X$, $v;
              }
              var kv = Rv.prototype;
              return kv.destroy = function() {
                dv.logger.log("destroy"), this.trigger(cv.default.DESTROYING), this.detachMedia(), this.coreComponents.concat(this.networkControllers).forEach(function(bv) {
                  bv.destroy();
                }), this.url = null, this.removeAllListeners(), this._autoLevelCapping = -1;
              }, kv.attachMedia = function(bv) {
                dv.logger.log("attachMedia"), this.media = bv, this.trigger(cv.default.MEDIA_ATTACHING, {
                  media: bv
                });
              }, kv.detachMedia = function() {
                dv.logger.log("detachMedia"), this.trigger(cv.default.MEDIA_DETACHING), this.media = null;
              }, kv.loadSource = function(bv) {
                bv = sv.buildAbsoluteURL(window.location.href, bv, {
                  alwaysNormalize: !0
                }), dv.logger.log("loadSource:" + bv), this.url = bv, this.trigger(cv.default.MANIFEST_LOADING, {
                  url: bv
                });
              }, kv.startLoad = function(bv) {
                bv === void 0 && (bv = -1), dv.logger.log("startLoad(" + bv + ")"), this.networkControllers.forEach(function($v) {
                  $v.startLoad(bv);
                });
              }, kv.stopLoad = function() {
                dv.logger.log("stopLoad"), this.networkControllers.forEach(function(bv) {
                  bv.stopLoad();
                });
              }, kv.swapAudioCodec = function() {
                dv.logger.log("swapAudioCodec"), this.streamController.swapAudioCodec();
              }, kv.recoverMediaError = function() {
                dv.logger.log("recoverMediaError");
                var bv = this.media;
                this.detachMedia(), bv && this.attachMedia(bv);
              }, kv.removeLevel = function(bv, $v) {
                $v === void 0 && ($v = 0), this.levelController.removeLevel(bv, $v);
              }, lN(Rv, [{
                key: "levels",
                get: function() {
                  return this.levelController.levels;
                }
                /**
                 * Index of quality level currently played
                 * @type {number}
                 */
              }, {
                key: "currentLevel",
                get: function() {
                  return this.streamController.currentLevel;
                },
                set: function(bv) {
                  dv.logger.log("set currentLevel:" + bv), this.loadLevel = bv, this.streamController.immediateLevelSwitch();
                }
                /**
                 * Index of next quality level loaded as scheduled by stream controller.
                 * @type {number}
                 */
              }, {
                key: "nextLevel",
                get: function() {
                  return this.streamController.nextLevel;
                },
                set: function(bv) {
                  dv.logger.log("set nextLevel:" + bv), this.levelController.manualLevel = bv, this.streamController.nextLevelSwitch();
                }
                /**
                 * Return the quality level of the currently or last (of none is loaded currently) segment
                 * @type {number}
                 */
              }, {
                key: "loadLevel",
                get: function() {
                  return this.levelController.level;
                },
                set: function(bv) {
                  dv.logger.log("set loadLevel:" + bv), this.levelController.manualLevel = bv;
                }
                /**
                 * get next quality level loaded
                 * @type {number}
                 */
              }, {
                key: "nextLoadLevel",
                get: function() {
                  return this.levelController.nextLoadLevel;
                },
                set: function(bv) {
                  this.levelController.nextLoadLevel = bv;
                }
                /**
                 * Return "first level": like a default level, if not set,
                 * falls back to index of first level referenced in manifest
                 * @type {number}
                 */
              }, {
                key: "firstLevel",
                get: function() {
                  return Math.max(this.levelController.firstLevel, this.minAutoLevel);
                },
                set: function(bv) {
                  dv.logger.log("set firstLevel:" + bv), this.levelController.firstLevel = bv;
                }
                /**
                 * Return start level (level of first fragment that will be played back)
                 * if not overrided by user, first level appearing in manifest will be used as start level
                 * if -1 : automatic start level selection, playback will start from level matching download bandwidth
                 * (determined from download of first segment)
                 * @type {number}
                 */
              }, {
                key: "startLevel",
                get: function() {
                  return this.levelController.startLevel;
                },
                set: function(bv) {
                  dv.logger.log("set startLevel:" + bv), bv !== -1 && (bv = Math.max(bv, this.minAutoLevel)), this.levelController.startLevel = bv;
                }
                /**
                 * set  dynamically set capLevelToPlayerSize against (`CapLevelController`)
                 *
                 * @type {boolean}
                 */
              }, {
                key: "capLevelToPlayerSize",
                set: function(bv) {
                  var $v = !!bv;
                  $v !== this.config.capLevelToPlayerSize && ($v ? this.capLevelController.startCapping() : (this.capLevelController.stopCapping(), this.autoLevelCapping = -1, this.streamController.nextLevelSwitch()), this.config.capLevelToPlayerSize = $v);
                }
                /**
                 * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)
                 * @type {number}
                 */
              }, {
                key: "autoLevelCapping",
                get: function() {
                  return this._autoLevelCapping;
                },
                /**
                 * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)
                 * @type {number}
                 */
                set: function(bv) {
                  dv.logger.log("set autoLevelCapping:" + bv), this._autoLevelCapping = bv;
                }
                /**
                 * True when automatic level selection enabled
                 * @type {boolean}
                 */
              }, {
                key: "bandwidthEstimate",
                get: function() {
                  var bv = this.abrController._bwEstimator;
                  return bv ? bv.getEstimate() : NaN;
                }
              }, {
                key: "autoLevelEnabled",
                get: function() {
                  return this.levelController.manualLevel === -1;
                }
                /**
                 * Level set manually (if any)
                 * @type {number}
                 */
              }, {
                key: "manualLevel",
                get: function() {
                  return this.levelController.manualLevel;
                }
                /**
                 * min level selectable in auto mode according to config.minAutoBitrate
                 * @type {number}
                 */
              }, {
                key: "minAutoLevel",
                get: function() {
                  for (var bv = this.levels, $v = this.config.minAutoBitrate, Tv = bv ? bv.length : 0, Pv = 0; Pv < Tv; Pv++) {
                    var Fv = bv[Pv].realBitrate ? Math.max(bv[Pv].realBitrate, bv[Pv].bitrate) : bv[Pv].bitrate;
                    if (Fv > $v)
                      return Pv;
                  }
                  return 0;
                }
                /**
                 * max level selectable in auto mode according to autoLevelCapping
                 * @type {number}
                 */
              }, {
                key: "maxAutoLevel",
                get: function() {
                  var bv = this.levels, $v = this.autoLevelCapping, Tv;
                  return $v === -1 && bv && bv.length ? Tv = bv.length - 1 : Tv = $v, Tv;
                }
                /**
                 * next automatically selected quality level
                 * @type {number}
                 */
              }, {
                key: "nextAutoLevel",
                get: function() {
                  return Math.min(Math.max(this.abrController.nextAutoLevel, this.minAutoLevel), this.maxAutoLevel);
                },
                set: function(bv) {
                  this.abrController.nextAutoLevel = Math.max(this.minAutoLevel, bv);
                }
                /**
                 * @type {AudioTrack[]}
                 */
                // todo(typescript-audioTrackController)
              }, {
                key: "audioTracks",
                get: function() {
                  var bv = this.audioTrackController;
                  return bv ? bv.audioTracks : [];
                }
                /**
                 * index of the selected audio track (index in audio track lists)
                 * @type {number}
                 */
              }, {
                key: "audioTrack",
                get: function() {
                  var bv = this.audioTrackController;
                  return bv ? bv.audioTrack : -1;
                },
                set: function(bv) {
                  var $v = this.audioTrackController;
                  $v && ($v.audioTrack = bv);
                }
                /**
                 * @type {Seconds}
                 */
              }, {
                key: "liveSyncPosition",
                get: function() {
                  return this.streamController.liveSyncPosition;
                }
                /**
                 * get alternate subtitle tracks list from playlist
                 * @type {SubtitleTrack[]}
                 */
                // todo(typescript-subtitleTrackController)
              }, {
                key: "subtitleTracks",
                get: function() {
                  var bv = this.subtitleTrackController;
                  return bv ? bv.subtitleTracks : [];
                }
                /**
                 * index of the selected subtitle track (index in subtitle track lists)
                 * @type {number}
                 */
              }, {
                key: "subtitleTrack",
                get: function() {
                  var bv = this.subtitleTrackController;
                  return bv ? bv.subtitleTrack : -1;
                },
                set: function(bv) {
                  var $v = this.subtitleTrackController;
                  $v && ($v.subtitleTrack = bv);
                }
                /**
                 * @type {boolean}
                 */
              }, {
                key: "subtitleDisplay",
                get: function() {
                  var bv = this.subtitleTrackController;
                  return bv ? bv.subtitleDisplay : !1;
                },
                set: function(bv) {
                  var $v = this.subtitleTrackController;
                  $v && ($v.subtitleDisplay = bv);
                }
              }]), Rv;
            }(e$);
            cN.defaultConfig = void 0;
          }
        ),
        /***/
        "./src/polyfills/number.js": (
          /*!*********************************!*\
            !*** ./src/polyfills/number.js ***!
            \*********************************/
          /*! exports provided: isFiniteNumber, MAX_SAFE_INTEGER */
          /***/
          function(ev, iv, ov) {
            ov.r(iv), ov.d(iv, "isFiniteNumber", function() {
              return av;
            }), ov.d(iv, "MAX_SAFE_INTEGER", function() {
              return sv;
            });
            var av = Number.isFinite || function(lv) {
              return typeof lv == "number" && isFinite(lv);
            }, sv = Number.MAX_SAFE_INTEGER || 9007199254740991;
          }
        ),
        /***/
        "./src/utils/get-self-scope.js": (
          /*!*************************************!*\
            !*** ./src/utils/get-self-scope.js ***!
            \*************************************/
          /*! exports provided: getSelfScope */
          /***/
          function(ev, iv, ov) {
            ov.r(iv), ov.d(iv, "getSelfScope", function() {
              return av;
            });
            function av() {
              return typeof window > "u" ? self : window;
            }
          }
        ),
        /***/
        "./src/utils/logger.js": (
          /*!*****************************!*\
            !*** ./src/utils/logger.js ***!
            \*****************************/
          /*! exports provided: enableLogs, logger */
          /***/
          function(ev, iv, ov) {
            ov.r(iv), ov.d(iv, "enableLogs", function() {
              return yv;
            }), ov.d(iv, "logger", function() {
              return Sv;
            });
            var av = ov(
              /*! ./get-self-scope */
              "./src/utils/get-self-scope.js"
            );
            function sv() {
            }
            var lv = {
              trace: sv,
              debug: sv,
              log: sv,
              warn: sv,
              info: sv,
              error: sv
            }, uv = lv;
            function cv(_v, Ev) {
              return Ev = "[" + _v + "] > " + Ev, Ev;
            }
            var dv = Object(av.getSelfScope)();
            function hv(_v) {
              var Ev = dv.console[_v];
              return Ev ? function() {
                for (var wv = arguments.length, xv = new Array(wv), Cv = 0; Cv < wv; Cv++)
                  xv[Cv] = arguments[Cv];
                xv[0] && (xv[0] = cv(_v, xv[0])), Ev.apply(dv.console, xv);
              } : sv;
            }
            function pv(_v) {
              for (var Ev = arguments.length, wv = new Array(Ev > 1 ? Ev - 1 : 0), xv = 1; xv < Ev; xv++)
                wv[xv - 1] = arguments[xv];
              wv.forEach(function(Cv) {
                uv[Cv] = _v[Cv] ? _v[Cv].bind(_v) : hv(Cv);
              });
            }
            var yv = function(_v) {
              if (dv.console && _v === !0 || typeof _v == "object") {
                pv(
                  _v,
                  // Remove out from list here to hard-disable a log-level
                  // 'trace',
                  "debug",
                  "log",
                  "info",
                  "warn",
                  "error"
                );
                try {
                  uv.log();
                } catch {
                  uv = lv;
                }
              } else
                uv = lv;
            }, Sv = uv;
          }
        )
        /******/
      }).default
    );
  });
})(Vg);
const y3 = () => {
  const rv = useRouteError();
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("main", { children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("h1", { children: "Oops!" }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Sorry, an unexpected error has occurred." }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("i", { children: rv.statusText || rv.message }) })
  ] });
}, E3 = (rv) => {
  const { tab: tv, title: ev, children: iv } = rv, ov = reactExports.useMemo(
    () => tv.items.map((sv, lv) => /* @__PURE__ */ jsxRuntimeExports.jsx(
      XL,
      {
        id: String(lv),
        onClick: sv == null ? void 0 : sv.onClick,
        children: sv.tabTitle
      },
      JSON.stringify(sv.tabTitle)
    )),
    [tv.items]
  ), av = reactExports.useMemo(
    () => tv.items.map(({ tabTitle: sv, tabContent: lv }, uv) => /* @__PURE__ */ jsxRuntimeExports.jsx(
      JL,
      {
        state: tv.state,
        id: String(uv),
        children: lv ?? iv
      },
      JSON.stringify(sv)
    )),
    [tv, iv]
  );
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Eg, { children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs(wg, { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(Sg, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Ag, { children: ev }) }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(ck, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(yg, { state: tv.state, children: ov }) })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(Tg, { layout: "wide", children: av })
  ] });
};
var kr = /* @__PURE__ */ ((rv) => (rv.snackVideoList = "snack-videos", rv.snackVideoDetail = "snack-videos/:snackVideoId", rv.createSnackVideo = "snack-videos/create/:eventId", rv.snackVideoPlaylistCollection = "snack-video-playlist", rv.createSnackVideoPlaylist = "snack-video-playlist/create", rv.createSnackVideoPlaylistDetail = "snack-video-playlist/create/detail", rv.updateSnackVideoPlaylistDetail = "snack-video-playlist/update/detail/:playlistId", rv))(kr || {});
const x3 = () => {
  const rv = useNavigate(), tv = VR(), ev = useLocation();
  reactExports.useEffect(() => {
    ev.pathname === "/" + kr.snackVideoList && tv.setSelectedId("0"), ev.pathname === "/" + kr.snackVideoPlaylistCollection && tv.setSelectedId("1");
  }, [ev.pathname, tv]);
  const iv = () => {
    rv(kr.snackVideoList);
  }, ov = () => {
    rv(kr.snackVideoPlaylistCollection);
  }, av = reactExports.useMemo(
    () => ({
      title: "Snack size video",
      tab: {
        state: tv,
        items: [
          { tabTitle: "Short videos", onClick: iv },
          { tabTitle: "Carrusel (Playlist)", onClick: ov }
        ]
      }
    }),
    [tv]
  );
  return /* @__PURE__ */ jsxRuntimeExports.jsx(E3, { ...av, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Outlet, {}) });
}, uh = (rv) => {
  const { snackVideoSections: tv, snackVideoPlaylistSections: ev } = rv, iv = reactExports.useMemo(
    () => createHashRouter([
      {
        path: "/",
        element: /* @__PURE__ */ jsxRuntimeExports.jsx(x3, {}),
        errorElement: /* @__PURE__ */ jsxRuntimeExports.jsx(y3, {}),
        children: [
          {
            index: !0,
            element: /* @__PURE__ */ jsxRuntimeExports.jsx(Navigate, { to: kr.snackVideoList })
          },
          {
            path: kr.snackVideoList,
            element: tv.list
          },
          {
            path: kr.snackVideoPlaylistCollection,
            element: ev.list
          }
        ]
      },
      {
        path: kr.createSnackVideo,
        element: tv.create
      },
      {
        path: kr.createSnackVideoPlaylist,
        element: ev.create
      },
      {
        path: kr.snackVideoDetail,
        element: tv.detail
      },
      {
        path: kr.createSnackVideoPlaylistDetail,
        element: ev.detailCreate
      },
      {
        path: kr.updateSnackVideoPlaylistDetail,
        element: ev.detailUpdate
      }
    ]),
    [tv, ev]
  );
  return /* @__PURE__ */ jsxRuntimeExports.jsx(RouterProvider, { router: iv });
}, w3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  RecordingsPage: uh,
  default: uh
}, Symbol.toStringTag, { value: "Module" }));
Sc(
  () => Promise.resolve().then(() => w3),
  (rv) => rv.default
);
function r$1(rv) {
  var tv, ev, iv = "";
  if (typeof rv == "string" || typeof rv == "number")
    iv += rv;
  else if (typeof rv == "object")
    if (Array.isArray(rv)) {
      var ov = rv.length;
      for (tv = 0; tv < ov; tv++)
        rv[tv] && (ev = r$1(rv[tv])) && (iv && (iv += " "), iv += ev);
    } else
      for (ev in rv)
        rv[ev] && (iv && (iv += " "), iv += ev);
  return iv;
}
function clsx() {
  for (var rv, tv, ev = 0, iv = "", ov = arguments.length; ev < ov; ev++)
    (rv = arguments[ev]) && (tv = r$1(rv)) && (iv && (iv += " "), iv += tv);
  return iv;
}
const actionButton = "_actionButton_6myfg_1", Primary = "_Primary_6myfg_13", Secondary = "_Secondary_6myfg_18", Terceira = "_Terceira_6myfg_28", styles$J = {
  actionButton,
  Primary,
  Secondary,
  Terceira
}, ActionButton = ({
  text: rv,
  type: tv = "button",
  disabled: ev = !1,
  variant: iv = "Primary",
  onPressAsync: ov,
  onPress: av,
  ...sv
}) => {
  const [lv, uv] = reactExports.useState(!1), cv = () => {
    ov ? uv(!0) : av == null || av();
  };
  return reactExports.useEffect(() => {
    lv && ov && ov().then(() => uv(!1)).catch(() => uv(!1));
  }, [lv, ov]), /* @__PURE__ */ jsxRuntimeExports.jsx(
    "button",
    {
      className: clsx(styles$J.actionButton, styles$J[iv]),
      disabled: ev || lv,
      onClick: cv,
      type: tv,
      ...sv,
      children: rv
    }
  );
};
function CameraAvatarIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "100",
      height: "100",
      fill: "none",
      viewBox: "0 0 80 80",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "mask",
          {
            id: "mask0_2213_93610",
            style: { maskType: "alpha" },
            width: "80",
            height: "80",
            x: "0",
            y: "0",
            maskUnits: "userSpaceOnUse",
            children: /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "40", cy: "40", r: "39.5", fill: "#C4C4C4", stroke: "#000" })
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx("g", { mask: "url(#mask0_2213_93610)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#43464E",
            stroke: "#000",
            d: "M-4.5 -7.5H87.5V83.5H-4.5z"
          }
        ) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "url(#paint0_linear_2213_93610)",
            fillOpacity: "0.7",
            d: "M80 40c0 22.091-17.909 40-40 40S0 62.091 0 40h80z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "40", cy: "40", r: "39.5", stroke: "#fff" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#595B61",
            d: "M31.319 47.22h11.09c2.741 0 4.33-1.547 4.33-4.234v-1.28l3.828 3.242c.502.426 1.024.714 1.536.714.97 0 1.642-.704 1.642-1.76V32.76c0-1.056-.672-1.76-1.642-1.76-.512 0-1.035.288-1.536.704l-3.828 3.253v-1.333c0-2.688-1.589-4.245-4.33-4.245H31.32c-2.645 0-4.319 1.557-4.319 4.245v9.437c0 2.677 1.578 4.16 4.319 4.16zm.352-1.92c-1.664 0-2.613-.896-2.613-2.624v-8.744c0-1.76.95-2.623 2.613-2.623h10.386c1.664 0 2.613.885 2.613 2.623v8.744c0 1.728-.96 2.624-2.613 2.624H31.671zm19.696-2.101l-4.628-3.786v-2.165l4.628-3.785c.096-.075.16-.118.245-.118.118 0 .182.086.182.235v9.502c0 .138-.064.234-.182.234-.085 0-.149-.053-.245-.117z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#595B61",
            stroke: "#43464E",
            d: "M45.508 47.758h0l.006.005c.535.503 1.402.519 1.931-.011h0l.005-.006c.506-.522.542-1.368-.01-1.903h-.001L29.909 28.89s0 0 0 0 0 0 0 0c-.524-.507-1.39-.535-1.931 0a1.319 1.319 0 00.003 1.907l17.527 16.96z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint0_linear_2213_93610",
            x1: "40",
            x2: "40",
            y1: "40",
            y2: "80",
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopOpacity: "0" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "0.573", stopColor: "#323232", stopOpacity: "0.922" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "1" })
            ]
          }
        ) })
      ]
    }
  );
}
const videoContainer = "_videoContainer_ti5za_1", circularVideo = "_circularVideo_ti5za_9", displayNone = "_displayNone_ti5za_16", micIcon = "_micIcon_ti5za_20", container$e = "_container_ti5za_25", userNameContainer = "_userNameContainer_ti5za_36", styles$I = {
  videoContainer,
  circularVideo,
  displayNone,
  micIcon,
  container: container$e,
  userNameContainer
};
function MicSmallActive() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "22",
      height: "22",
      fill: "none",
      viewBox: "0 0 22 22",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "11",
            cy: "11",
            r: "10.75",
            fill: "#989FAE",
            stroke: "#fff",
            strokeWidth: "0.5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            stroke: "#fff",
            strokeLinecap: "round",
            strokeLinejoin: "round",
            strokeWidth: "0.9",
            d: "M11 4.583a1.75 1.75 0 00-1.75 1.75V11a1.75 1.75 0 003.5 0V6.333A1.75 1.75 0 0011 4.583v0z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            stroke: "#fff",
            strokeLinecap: "round",
            strokeLinejoin: "round",
            strokeWidth: "0.9",
            d: "M15.083 9.833V11a4.083 4.083 0 11-8.166 0V9.833M11 15.083v2.333M8.666 17.417h4.667"
          }
        )
      ]
    }
  );
}
function MicSmallInactive() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "22",
      height: "22",
      fill: "none",
      viewBox: "0 0 22 22",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "11",
            cy: "11",
            r: "10.75",
            fill: "#43464E",
            stroke: "#fff",
            strokeWidth: "0.5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { clipPath: "url(#clip0_2203_77957)", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              stroke: "#fff",
              strokeLinecap: "round",
              strokeLinejoin: "round",
              strokeWidth: "0.9",
              d: "M9.4 6.333a1.75 1.75 0 013.5 0V9.95M9.4 9.6V11a1.75 1.75 0 002.8 1.4"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              stroke: "#fff",
              strokeLinecap: "round",
              strokeLinejoin: "round",
              strokeWidth: "0.9",
              d: "M15.167 9.833V11c0 .357-.047.71-.138 1.05M7 9.833V11a4.083 4.083 0 006.533 3.266M11 15.083v2.333M8.7 17.417h4.667"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              fill: "#fff",
              d: "M15.054 14.313a.452.452 0 00.622 0 .423.423 0 000-.603L6.85 5.176a.447.447 0 00-.622 0 .412.412 0 000 .597l8.826 8.54z"
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_2203_77957", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { fill: "#fff", d: "M0 0H14V14H0z", transform: "translate(4 4)" }) }) })
      ]
    }
  );
}
const BigTitle = "_BigTitle_ve1pr_1", Headline = "_Headline_ve1pr_10", Body = "_Body_ve1pr_18", Body2 = "_Body2_ve1pr_26", Notification$1 = "_Notification_ve1pr_32", BodyItem = "_BodyItem_ve1pr_39", Caption = "_Caption_ve1pr_46", MiddleCaption = "_MiddleCaption_ve1pr_52", SmallCaption = "_SmallCaption_ve1pr_58", styles$H = {
  BigTitle,
  Headline,
  Body,
  Body2,
  Notification: Notification$1,
  BodyItem,
  Caption,
  MiddleCaption,
  SmallCaption
}, Typography = ({
  type: rv,
  children: tv,
  color: ev = "none",
  className: iv
}) => {
  const ov = ev !== "none" ? { color: ev } : {};
  return /* @__PURE__ */ jsxRuntimeExports.jsx("p", { style: ov, className: clsx(styles$H[rv], iv), children: tv });
};
function LeftIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      xmlnsXlink: "http://www.w3.org/1999/xlink",
      width: "33",
      height: "33",
      fill: "none",
      viewBox: "0 0 33 33",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "mask",
          {
            id: "mask0_2694_52470",
            style: { maskType: "alpha" },
            width: "24",
            height: "24",
            x: "4",
            y: "4",
            maskUnits: "userSpaceOnUse",
            children: /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "16", cy: "16", r: "12", fill: "#D9D9D9" })
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { filter: "url(#filter0_b_2694_52470)", mask: "url(#mask0_2694_52470)", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "rect",
            {
              width: "96.75",
              height: "99",
              x: "-48",
              y: "-39",
              fill: "#81BAFF",
              fillOpacity: "0.07",
              rx: "14.999"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "rect",
            {
              width: "96.75",
              height: "99",
              x: "-48",
              y: "-39",
              fill: "url(#pattern0)",
              fillOpacity: "0.06",
              rx: "14.999"
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            fillRule: "evenodd",
            d: "M18.727 9.898a.675.675 0 010 .954L13.58 16l5.148 5.148a.675.675 0 11-.954.954l-5.625-5.625a.675.675 0 010-.954l5.625-5.625a.675.675 0 01.954 0z",
            clipRule: "evenodd"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "filter",
            {
              id: "filter0_b_2694_52470",
              width: "196.75",
              height: "199",
              x: "-98",
              y: "-89",
              colorInterpolationFilters: "sRGB",
              filterUnits: "userSpaceOnUse",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "feGaussianBlur",
                  {
                    in: "BackgroundImageFix",
                    stdDeviation: "25"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "feComposite",
                  {
                    in2: "SourceAlpha",
                    operator: "in",
                    result: "effect1_backgroundBlur_2694_52470"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "feBlend",
                  {
                    in: "SourceGraphic",
                    in2: "effect1_backgroundBlur_2694_52470",
                    result: "shape"
                  }
                )
              ]
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "pattern",
            {
              id: "pattern0",
              width: "1",
              height: "1",
              patternContentUnits: "objectBoundingBox",
              children: /* @__PURE__ */ jsxRuntimeExports.jsx(
                "use",
                {
                  transform: "matrix(.00218 0 0 .00213 -.181 0)",
                  xlinkHref: "#image0_2694_52470"
                }
              )
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "image",
            {
              id: "image0_2694_52470",
              width: "626",
              height: "470",
              xlinkHref: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIcSUNDX1BST0ZJTEUAAQEAAAIMbGNtcwIQAABtbnRyUkdCIFhZWiAH3AABABkAAwApADlhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAAF5jcHJ0AAABXAAAAAt3dHB0AAABaAAAABRia3B0AAABfAAAABRyWFlaAAABkAAAABRnWFlaAAABpAAAABRiWFlaAAABuAAAABRyVFJDAAABzAAAAEBnVFJDAAABzAAAAEBiVFJDAAABzAAAAEBkZXNjAAAAAAAAAANjMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAEZCAABYWVogAAAAAAAA9tYAAQAAAADTLVhZWiAAAAAAAAADFgAAAzMAAAKkWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPY3VydgAAAAAAAAAaAAAAywHJA2MFkghrC/YQPxVRGzQh8SmQMhg7kkYFUXdd7WtwegWJsZp8rGm/fdPD6TD////bAIQAAgICAgICAwMDAwQEAwQEBQUEBAUFCAYGBgYGCAwHCQcHCQcMCw0KCgoNCxMPDQ0PExYSERIWGhgYGiEgISwsOwECAgICAgIDAwMDBAQDBAQFBQQEBQUIBgYGBgYIDAcJBwcJBwwLDQoKCg0LEw8NDQ8TFhIREhYaGBgaISAhLCw7/8IAEQgB1gJyAwEiAAIRAQMRAf/EADIAAAMBAQEBAQEBAAAAAAAAAAECAwAEBwUGCAkBAQEBAQAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAP8ASdLbniK3EsZ9CTM06JVJajKE+qVcw6xXAeqccs+6NvNLqNvELg506CvMnVOSMO2dcqdeOOXWDj3Vo5T1MnGvWI4bPognU9nDuxV426RbxHsNvCvWp8+vWDml1aZ5x1snEvZOuU2GXLSwrkrRjhHUtc6dOOMdSEluhBy5zS6gcXP3ocW6cf0M1FmlFVJCyzPPriIhnOXdC1BK0jlW+05B1zXhXrC8qdSWcZtU+avehyjrC8a9ypyJ0iTkXtmvM99HKO2cnGvfI5R2Tt590pUZ9YrlXrzXPHsmQTqycrdCpyjunJCfQY5J9OOYXWOc9KacbdcznToauOHYxwN0heYdKJyGyEZ9AOHNl/oZsYluhV516VZkvUkQF0jnawrnWwJLZTmFgcw6VrlXoK8y9KnIOkHOvUDm1TZyr1pLyP0FOVevHHPtEce6UIGrHLumawXo1cq9a28r2Bym7JxnrnJAdCnNLulEE6VrkXrSIaw05TXRzpdalPqQgnQixWqEZdSycwvOo7rx7mtcq52REsoiUGUjdDnSxqK30crUBHUQlO5rlHRohuidcrdE4kLrpzi4JCoObdBjhHchEVEcw6QQWjkD045F611rkHUic26kONOkJNbPHEemJA0Y5hdI59YVzy60rn3TBUl1SJS6EJSuqRl0ovOvVJJTsI491avd9XEzXCzvjl10JioIiqE2pONLoiJK+JL0Kcj10cdLiobo1cydGOfVYjqY5WtOJp0YklGOdegE1qpF31QNccotiE+oHMtxEXbEF6VjkXpU4mpjn1dXKvUK5hULGXVJeZehE5p9SEE6USKdUI51vInkx76XeuejCArsRFBSrQnPWkyS2WIVohJKscpoAR6kiLOxFbUrkTpjU3FCB6JEXckp3xKPQSC1SMrOcjuwkrGuY1xyNQk5XUmthHK9hHKOuFco61OTWWoJ0IQn1xWE+hSE+uZCF0Jx64kUuic8epY5dfV7m2YDkRlbUuZBGFSYfEtnEj0qSz4gK6EnShEOIRegaQHQDnHSgi9EiWsTmXrmSTqic6dsYlujHNHpapJ0CJzua516Jkh1TOTdAOUXBLExyJ0rEZ9S1yLYVGXTJeY2Ujzd8CM+gJxrdV559M05d0QI7tx7M6ALFRqCZSVSTV5i5lMcxClEGVXJqzQiWxNauc7nVLEiLUEXoRc4IM9Dj1gSWsyYviYvImvRIQdUjnLoMowI9EomnQtT5+iUS1aHInRGlneBFbTJT6Qc8elTkXomsVtNOedwRRgLmx7HikOXIVK1RNiblQriMjYUMRGbB56hEXpkuxA0rQEqVFdWJmqAK4lQORchIG+E1ZqocnMlwCVCRLqRW+IlkBy9siBoDln0k5kuCU7SI6wOZTMkXxKdpEp9fMQS8VktZpHUx7GG2TZa0hKUNTClVLTIMM4uLGR1FwI5kQUmQo7pEVRQTUit1SSVUk9ZquIRCrhVgoSqkl6JCisxZ2Jzr1c4sa4QUQmvTEiTiaUQVMBZ1kJC4OfUBzZiQlQnIayJ891ObdWX1l1OY4VqShSrwqgmuhKgYBIJimBixPNhRShDORccSoSigOq4hAKAhqYmrgU2miimUJbEZ9vMsmckS2JChOQXxz60iYpImt5khRDnlcnKL45Z0Ai1QgGmLPqmcq2kRWiEtbHqyYwKIKoUYJyDF0KSJBRJFWRh1XGSqmDMk1sy87UIgqqSOIuYilgJmcitWEFEA6AD4KMVQSsFkHkgGyrqTJGiiRoCaMBEdSYrMgtwcsuzmJw6pkNdTnn285BaA55dMxdLHqirocatKcQDYcKB2k5iMYqyUlQKhLilWGMHKTDoYdCK83mlMAMZqOr4RwQLQEjZCebC51AuQQYqrBhJ1mLNiRDATMpJS5AgkZuCaUBIPiC2mRSgIrVBebq5htTHoSBcrrlqhi9OKTDs5mACFcZMQ0hUaTyLGbpkohQBRwpAGwQlAgKWXWBz0wygBGAVaKnYoisqICii/PUmjOvO2xJjM0qkiDjnWjHNPoQizYillJpRCKUUnK6EJ3ibNj92EpAdXokAcyZHaZVgCF5sOJsjFVWlJZCAy0CgZRh1BHEmRyZrbRctsg2mCoVQ4ZAjqYZRlOSU7QWm0xhsKmdYvO5OFcQIkbaYZMSI6IE2AJpQEBZScbZObWgss2T9q8zLSkGKZGM88UaBsoZlXeFUDSZXK5HMwO6qtlQjq2TNJVtgqMDh681iqBRkrNcpxlKIGwAtAhkSTbTFbKuz4kxywxcnIsTlWZPAiI6k0fQiWjSjaI60alnQWdAS3Tj9I6jJ2Rwme0qYVHysYzw7IRlwLKQFp4cxsHADgExUJTTZWaYOh+ahdIuPkULTyUTAzzUoNMfRYKZRimCVRWQAOMzBMBcohDE1OESkoMelCAqgoJqQCiMoGxx9p5aOo8rl9PVQxYqZEqEYfTI+XDmYLaVCgih1PzsVVEOlZks3Mw5ixduVyzSw5WR0pElUZA6LlAmRlQBMyUVVUsgKTMx0WQ2QDo6BJxAgi8/ShIlRVqok6RGQk0Kgnmx9MwOVzE1ZoNVhLL0CZR3gS4m5RVUq0lL6DFXgUsYsthFihQjaRKmLmebFWmgzTxVZqVEXKLMFpo42mDommCJ4bKh0TRBmngkIMuATNB9MmCqA5AoFFtMiZZlouhPHH0NBovoUKmRqhlh6RxfSy3bmoltAF9MjvIFjAl9NDr3OxQxJXTBTIRzNipnihREYxK1EmGkAV0mLTVR9PFDAjmWKaJKqAEogyAFVmpeSqEbHPWeGyYAKDGYCi4ppY6jMxRoarmRHM8tGmUcxco8cV0mKmRGaeSmnlvpEoZUGM1L6DFAhHaLHRokssHMVUqZIWyTKPHFNPDLkKCWK5cVRCUQKOJ4oiqUEwOJKUQEVcC0xOKI06ZABgMNhgieipmadkYcICuQlNMr0bndK6WLaWK6WLtzkvok6FixVZ4uqYrpYroku3NQtoqW0QXEGK6WKBAUEsOZgd4aKmLVTTA2mB8gKTIG0yFQpRQptkHyqETBRVwyyYtoYDTxfQYto0KaJK6eKibLUxyWMsW0cWVMVfnYuIsX0SWWalmiR252KhCVfnJZZgroktoYvogqYEqYqWCKUaJK6ZMyYcRJTKBlyFFTFBMD6AKibBEiVSeCZ4YIg+TGMtFhCtUaOLrFixhi+lixgxVoYvpKWMcX0cl2gy1bnYto46NDFjHF9EldIF9DFTDFjEF1li2ji2gC2RShkpcopUISksCmQFFQDiWG08OswVWeDWKlMgCoUcSBTTwj85LNFiukSpji+jixkSrwBfSw5QFlnihli7RxduYl9FiyxxfQcsIkq0SVEgVEsdGgpbIhdZYsEBQTBYwY6TzkdogqJkcxxXSwwQFEQhygossMAg+QDKqDgINkwjRcoZAvostdLFtEldInQJBLiLlNIlGiSmkxQyJXSJZYsW0MX0wX0sWWeLLPFDHFxHFjDFtNC6zxXQxbRx1LPFTFToSYLGGLaGK6GLLMjoqDtNComRguXKJDlcHLkiZYsZEpp4qYkqYksYMVMSthLJbSxbRJXSJUwxcyBbc7FjDFzHFtIFjAFzAlTzY6dEHRpAro4ppYqJEenK50NDFhNS2nigmCqICipigVSiohYxI2kSgiRlGCZoPpYRoEsZYtosUMgW0iVMSV0sVaQLiLFDzuVMsVMMWMGKaJKmQLGILmQLaOLLIl1kSukCzQxdZYrokoJqWaNCjRxXSxXRxQwxZUBQzBVUA6yJZEwwmCh5ytjHJRUidOnjmbmx1CLFjAltHF9HFxEl9zuVMSV0sXEsW0cW0cW0SW3MxfSxbSxVoqVaSldJSzc5LaYKtz4uYY6Enimji9OWhYxxZEUqI4uefFxJS+hi6SISiFtFTpSRGCgsiAqkiU3Lie2Cdh9sHbDbYRtjNsbbB2ww2Cmy0XZNtg7YO2CNl22Q7YKbGfYy7AGw42CNhW2HbYw2M2xp7A2wTsDbCHYy7CDYbbAOxk2FGxHbH//xAAdEAEBAAMBAQEBAQAAAAAAAAABAgAREgMTEAQU/9oACAEBAAECACeannje6eM4QlgwmvKz5mPmm7a8tc/OcMFh8I8p83z36eN+VxfnU/Ko1XmeczUXOPnJcYhNnzib8TziJAfFHxvzPHi2iRPOHJf875skBRrWmLL82EY0FSkxUM6qDzfI878vnXl86jK8a8gJ+b5ma4fImpA8WKipPKQ8Zjkwgxn0jg85aj5Mc153L5k/JWfLPQ4D1g8dwBZUaQOLiRmpZ5nHx+V+dQO/MvzkJrzVlgi/O/OVSLj0jVj5V4XJ5csTPzsma8vmTPnU6rz55jzqedPn6xUVll586DzcRdM2Ob0TzZxjHyIvKCWOE1p8+bj5egAcscTPp56YYDHyZfL5i+TDjOqCZivI8fmySxXngehVMcaD5vnpKk8wry5J1xfnwlTM5pwipZ1zwFSzwFSLHyBggj0z55zq5uNJcTklefx4vz2SwRUcs858uPkeV5efOcIzr1mocZrOGfTOMQyjVicAw5pWAJgrzfOic5qWalzmROXz0nMeOVMxxp86mZx80k5rGHPTPiPOmeOOLl8/mfhCVFZWEHnUEvnq5YRJgipfNNk74IBmZTlNgDHOKztlhwQZ44qM4IqMueOJm5TZBlRahFleQM/H5vnr43BOrIxJKLE1OSuaiayiZMcc4cTztH+VXNYCES6qanRBOqnT5hlIcxPz1yyYTET5V5MzNYQxrj5TDGpPQ5rzYPJ8/nx84i4JZ0kXzc0OHnJR87V4sqDFvNFV5dM1KuacPLVQSTQu4lSBnJmpgIFPn10qJrkiPFkwmYqIxeHz84+JG2K8mXOHz+JNxwPPzryM4Y5TWvnqhPTDOOyZJzcyzeaZcRwebhFoImKGEI0TQyYRUW1h5waW4QjnjvvnioDTlSw+c+PrlRRVennw+Z5VOqjiprHODz1QgMsObqAImDzDSfPWDYy4hHrh5aoZvKNGcOL5QTcTLDCJ3GXmnz3OfL0QvCGZD8vEZDmypPOJuePmFjTjF+fLPNYjEwyCBOPnUzMnMDNJ58hU1innzeASHO7PmD5JcpeOHnzqD0WqLhyoiAqfW00+bF+aVnqRT5sMvncVGiWaqiysJqHzcorz1zRppkSc5J+fKOPkxJxUqk+YcP5up9M1qofGpnzZ9PNlEvCGHz4mKmTTVxxUesHnUaZYmiK83xfNis04qOA4+L58k4zs/KxvAI04VXoGcQhib5icZ1E1lUzIRQeczk4DBhPMxPlXine9E1FRySRGWHlBxUJUNGUVbPDC85y+blyxzoyystqZymvTHKyW502o25zHmmyZzWqyIwg9QMZgoqNGV4ssHn0D+KX4Tax1MdegzUd4zxpyouWK86y5kYo24ySwAozOUkiRzskCHAZxpyg87lfQM4rNQGSPnIilekkMSaFKmjmMvzpJTmMnKdNVnF41nz9CilxlyipYudCebjXTQbLEDLzuPwagzfJOiaLyQ8+CbsmrW2MnOtk223iCiOeisZU2xfsXLJHnLbFMgpq55aos5l1UyVFjC3PFzy4BjK5UMUUYxUJNUwemVgHlxNL5+tOvp5mMMcA44kupnmgissk+e6XzH5g11VHn64RY4jJK158UIumMJcjOCt1H4VSywmjzPVzUK3nKTkBhMU0+VRcLZ6QBPXDFSTUWSaKsuw2iEHmmtymMzWVLWcmNVmtOLllgfJza3nzwwwzrXJnS+edMAj5wckE1jl1Od1lrih20YzxUVIzPJiA58tZ6OgrLzzn0zyazWpGpJzTl5WOGcXIM+htfTNMclcLDxrW2mKzzlkUh63tnmKccZtMAznRPFY4zWTnzfIjWHmCGTPGL6ZvTPHJlSIfFisZrLwmMcqfnyz1lRlS5BWGB1up2NXUeksZUsaTUo+bI5pJeeqyzJzraSMkOWbMsIYaRMPFnmjixOKyrSsWIrLygxhayGpHiljufxR3MzjnI6DlmHrpXKmZqgrA65qdyRGqIzQOTBaGTIMya+GjJmICScSzup9FlihxzeOVjgGOborE1WcTnVQOQdQaXBlun0j8M6kHezOfxRxtx/LgkycFxBHqAypfPVUSiUjeN3Z+MpBMbGhJpxjVTzUWE3nGdQS0p2ZBV4RVVipx17NUnWtzbZXoZWAMVu6krGOlxnN5OXGtpBBZbRXqKOXlJkLTnVXdWGDVVLjOJZ8anrkT8FQUwXEIwdIiSyItCemEC3rsZjc5LWOVgSmGdMuWGd28pS4zr0xJhpCvX063ONJw4Q4uiKjW9woYrl5NVkCCzETOjDJldfPRm7oypzusc6MnJxzWmtlVQIDfzApKy740V2hEl045AmulfLnVPpFnVZDxug9JtyZMo5cK6YhGZ88MTJuiBIDFcs6bGZmSZyPLYNMrv0jCiVMr8KtfycKrJ8+bxisFj1xZXB4mdpWVhK439DBQA61rrveBvYhV1bVetXWGTg9aHNzlyqJlK01eRhg1j+DRUrqmr04sYZV01ds+Ybcqbkozi5prD1n87/Ba3CjlLOTg7a0qmGTWRggZMlEuQxUZ1d9Q096QyAzgrkzVrhj6Csvo36dxjdZKeelfNcppnLM3od9mFZN6a6r0FrFxREyAvWsRWgkM74Tn6S9A2HJScVlk4qvo3szTlDhmzIn59B3+NX6+iDSed6uxPPGtiJhmuuF6l6TrOquc73lClROEFquKO/RpVoULWsK1DNBUoDfWROdzhNRvjHOWFb1xdetGDuyb66MnKrChJcq91hWt7FTH0wwddluav0Q9CeoQbn8aHOjH8qi2XLLlzQytbp+c5V60ktVWSH5pyIccmBb2GwnOuvphjWwKxnCqw/AqnCXNbEvIyKjNzlPV2V20lG6xxwRcnNr6U+nVO79KxpzS0s1M4flplN4jPJA7MFRM6HfRbfWy7xttSp9DOm7R6La3NddJKflFZN0hQmyGppxawrq1WqptyLScWQq43NUUULrQdp8qzr86MErBMKMDtrkxWjKyM631rbnTYrNUdl72ele2wHu7ccHbb6iOTW7xSdpjGCYZtwxvSRc+lGvl3NddJsov6TgrvGgHDByWQR7yTexMZM7r8b6zs9OulTXWwv0aLfQqDTTYVYzjm2wumtvpsKoO16ca2OCV1uaaKmipV2ZvZbX6YYYUZSU1sdudn4PbWb6cbGa5VeinN7UyVtylqnYr3VW9OVF05wY01srsxxrcVn06ybKppVrdZvCty50JW+5R7XvozqVOGpsepd7qi93Tk4C9Mv50moae1qlcM3OOFIUUVsrBaLrNqIj0O+tzm9ldDTk01T0503NDtRar8rFr80YWE5Q5vo/N1fTS7WiKKXopeivoG3KrXfS5vvcuihm97zcyU11g6LHramCJnew3nfRdUZ0Ob4o+ktGNLvcYItLWVhTSrWbXB053vJNYUXKP4YYO2hFf0oXNiYvTRW2mt1Zg99LvsOpvosetdtbLzYbPTuqXBcKrKpspps9EEedb6He+1KMl63vtveND3vvrrCt7624OObHOmilc6L6qhHfX4OFFDt/N9d1jlHVem8DpSmVGqrCh+TkvYlb2vY9FS7LK66252Ztpre5rajuvwtXG9/WqbLfTrrfXdZsvucba6c66ys324FU19NZtTJV3vehrGuuhKK666aUoW1zrod9CK5vsrfRhQj33ja4X2vdLZjTk0o7KUxTBaTCqvrc01n0cXSr9epSi5sV3tvoTNud9dYpRg9CVK5sd/nfe2lKaVbFaa6pqs6ErodzWhXOitt76Xqrze1FW2+T06aFra9dCrW97VrvYtL0V110WK7K6673txexUrrZZTRWFGGGP4O+u1XfRjSmNtb2m17a72uxHZc30UPXQ976631vY9FOFb2V10ux6Vet5ve+ulKHfZUUpW8a62V0W0U011vZXXfW30pyqLzfRW91m+h2VjQt/Qd7L76KlFsvrZXebL3m+h313vprtV31N9NdC1tel6VrrZWmlcrCtt7a/N73vY7ba72O+lHe+mt9dtiV30PS9d76303se9tP4s0YrXRYlZvralLtet7c2uNb3vrrrrtd7L2131voozppzfZXfWOCV0vb6LsSm1L6320VtSi9r1voooc31nXex6Ftpd5Tspve9b2qZsrbWb3Oa3vsdzbW+hERKLXrrbXXTSjvra9F72VvfR6bVpqaFooet7VWmh2rfW822PSqVnM11srfW+ih66310UvbXXbY77b66aK2V0UW111Vb2V12rTRQ9ZL110JW+ttNbfQWmtlb6EXOmupvvOt72VsR663nXQ7aKHfRW99b63110ux6l7630X01spVa2PQ73111jXTXRfW2t7xS12qrvvay763ve+t73hhXXWx6He82Z2PQlNDspza99Q9ddb2O94VvbfRVVvNt701teh6a7XrrblO+h2VvrvrpdlYV11vrtS95131vovoovrpeuu95srvrrratd9db30JW83td9dLvroxdq0Y0pg72VvrorrrrfRm99b663te+uuiutio7ErovrrZXTSjve13hXXW9tddbaaK7XrpWz0L30ULXS777HrrYtD2V2UrfS9db2u1K7aL6K73031rNllbwdlCVvZRR6djvtrpuqXsprppcK63veyula2E31uUukV2pQ73i1Wbl+q9VfTlJjW1rG4WjB6HWdRStCtUZM9TRVVsxuq6x/Gut720UNIrWK4uf/xAA4EAEAAQMDAwIFAwQCAQUAAwEBEQACIRIxQVFhcSKBAzKRobHB0fAQQuHxE1JiI3KCkqIEU3Nj/9oACAEBAAM/ALW+QG26WS2ZK4FRMC1GptYuif8AqtFuchxv+m1Wkw+lSEftNuM8VpMRAriIzhfDz0ab43OMP71YXOM4HMM+CZaTcJnCmKNMjjgwj9Zz+SrboMPEeOONquR05I94ou1Q2L2xD3t470XWNsHMf3AJVxdkkdzIvSZ5/WtUl2nVcyiNmq55xtNQOGEtlgUhg61GlYgxITCZzsFFgJzYRdqS5DphkPtUi23SkbP16Q024FSMDc/d3oTcyMPWOg0JbAtoEIjB20jh4aMC+6EQ7jam88VdrtnVrGLRbZz0usXam0D1AxDeNudyIkKuZcsGW65ETAqSYiHpQ6ry3Jm31SnZuAFky5q8vG3Tk39JGN8xMVe6rm64LdOpYx//AKSzPIjVzE3XXGQdcO8I4ZXEmzXw1t9Nkgtu6wm1r06n1q9ufSBzBGoc6XqGyPtRqOUlnQF1xEcxrtOxijQembNsWvxQ4IUyPLVzJcaDJcbBHGOtWD62wyWoh8Nngm5yjxU7Elyaou0ydAjjmK1XWl43o5ElmHNsRG1X3W3a7rrp0+pvLhHAojK8Lmr7rwusuLojIGEiBggrTrAumDVjEu0rJ7maLrrtVmt/vZ1YmSY+26lEkKcXlvpn/HfpsVb8S00g2JJFtzadpxNfEi2RkHi28iJ9O8FPyGbrtxQXH99qH1KuDRbbMTbb/YMdyr4tw6ZgXr02x3KLC3ZWDQF/wzGIZZOpxXw7Q/5LrbTSvr1Wr3l6/Waxdfc6r3Tm5mQ2iIh6AVdcbRhZB8q4wHNQn/IxbE2W3haHfGK1W50npg1XXKTtqDDPSry7Q6WYS2brrnVwEz4Wi11sG2hzDHeviJg9QmWyS3qOwdelQLpAEtBttEe6b9avnRa3sWpa2wh4ODjTVt+lLecQac8RqzY0jIEXdm1Z+p+lfEutumyLRIuLE33tptzBgW5uI/GSpBEutmZ/fv0rUxco7yyJ5eD7VdfarDI6Zwsf3e3SguG19XFzYlvjSMNLaTCGATIbwv4oEm0M7uF5mSm5IeY9QAxvNW2saQtS5uZ0m3fmviCwrpMeods7mYKLRnFuQjDTddBcEkzFt2Y548tarluui6ZVtmRZ427mKbQuu1NpKsQCsSYlirbJSywYwRPbngr4F2Y+FnqFSy/NI7LcxQ7OM514e4NQKDnKRuHamJGFD6HMM4qIkRBEUkF2XvxQrMrEysOfzNCcxgfSrnNMOxpjDt1ghxRAzlJtg/g9KSWJIB3/AB07UrMXnExI+epV3A4RkznYy7dKm6F9LG/BHMvHFMfJdMTDaXZ2Ujn7NaW203iS3VCxzb5Klgu36O88I7VFuJGcRlOZLXD3KBE0gGG3oZg6nIblNs7fMtwNvPOy8Vfli9A1AwKRx1jerLGFs3gF0k9Aj3E5oDKRc4X0Dw5X2aG0vut1C3RNsSuWHh7UpO4zMDdLcbovJTaPpQlPTaWHDGFjqlXJbBp2fTaPM8yBzXoeQ3ZInox6j8UN+obLoRYYzO8DBPWvlbi/TOdXw7W1B60XNlppm2XFh8TTn+0y0Bd6vTgJdO3BU5ttVVC3/ksBu3gT8LXwiC3ZtdR6PhYd1ZFioT5EluTT8OHuYx5p+JfDDfkldd2epck2vSrC75rLUQIQTjk26m1XFxFyW45IYy7xVl43jayOuD2YZPtmrb9Nw67v/wDndqNRmOCTeKIDAm10E7T3JOrUWM6LYyGQ7+nnrNX3XbyZiGGemVO880o3SLauTvj+7thzWm1UiwPmZQF503Mniv8AkcWl2nCl05NtTJD0ga1Hy5HBoTP/AMMj2MUE5EAAbGdO/wDdm6eiYeKyzbc6UC5i/wDEg1bbbJfa8DmMdro1VDqG3SdXVPl7V8SwC29Le16DHXmaWEGQCNEMcZj1EzDSxaLc4dTCzM51Y7aaLcW4jey3C94ioW0fcdL0nNN+MNrvGZl2m3LXxJuuut9SZJL3eSeW2s55iGNMeFq2NVxBbbBAEHQc1dKtmsGFbPTPCk7HDShi976cvTVtqZom2fiBtri8LReunl6VqHNqhlfm977pihWC3SxE7eyRTfpCxuvFSc9tWIJoC220LnYtBd+2A/Wm23eC/KqaenHyuIK+HbaZZyOYYOFeV96Ta3ZGdQHWRzP5oU04Mog+V9WPeoMKNxG+VOM0FwGq5HBjw9zxRcpeqqStyT5KsuMGFZXGXOZzP5q5sJNU7rAJR8sznJssYUPHBVl7Bu4jVCpw527FJaBbahEaeu22534KEFs+F7zNGcmnSCO2TmKVRnVhed81ORthcAzt0HZabbkB6BAVBGQ4YIPEfcpJCccl079JiskWkQRDFstT+DEPeHarwdVmJNfAhhwbOa3VtSHOIEdyabsujVmY3n9HuVqlnLag5/PXrNKp6klzE/UaEdbbkynY5DIlXw2gkxc2l2M8i53yUu903ITkduagG6xTGU5O5V9pKRCThdsT54au02SQglo2TgxB2qC40hl1TkxiLj+16OzQKF+FhMWviIir7DUtwXRLMTPF1q5q1tdoLbS5NZk21TIpxmShgu2npqw7mWYdyrLVfQFri624McTwlTFzIxBjJic8I9sU2ovpYg1WaUOAbevFCrqwrA+ozuIsvRKC6Ri7OS/JDvJlrUFsz0tVuMM481d6t1iCHMdfUpPmrNOYbYQb7bYSNlYUq0tubi2F1F2iy62Dn1ZQ4Sk0MnzBDIyG5yp1r0S3+iBuYS2N3UMqP1r4lmJuJEzFhD5JQ4PpW+o2yvPXdxj6lTLe3cTctt71lvlPerm4JVkZuuti6GZP05pCF0ptJs8GMfWaLWTVacWl5jGxcyU3CaRJRt/40DnrlobkuWUwKEExHSJp1DCpguCJ6urEe2Kbm2++3AsN5JbGTJtVt1zFpcslwhqY+whslGp535uD63BE1KarbfL8MMeFCTipUG4gzA2Y2G5u46lfAtyB2ROmA1DpDncpYtdQsK3el2gX0ns80JvE9XLPT/kWZ4pnTdrtIfSxGMNoZNPtioAjYZtm4t6ZjjvWq7QjqlmbjGeelatSXLJvvEYoItLG0tg0kJnct0phqNRNz0i5V5I1cZ2qyLQRNXp+Zy52IzFWWqwYIM3idTUfcq29W60uYWeXiQFfTV7fKhfHP0cQOe9TcDByFyTJzjdK9WLN4hwK9cNF9hLC4lIMPWhJc5w6vtnHiKbVAG6IMhdnEwc9WrmTYsWHCE8DHpoXFqWyr1Xv0T71aWuDGS9tcv5Uq/EhCQhMdjITRcoJ6nbTP0io+ZNyc43xvvVmiSG5Op7Dqq9tEJ6lop3JcFXNy6dVjBcwx2mK1/KoI8fZeSh+H6peqwcV8VXJ/wDWmxl9OevVzUnPjc9x2isS7oTNyineiYxNx3584asjVKdJDY3McVbaRBuGCZTit2SYns/XEVrsiBnMsIx4o5jMRhte0U6t35ZnHSZEwdyi4Rm7Ahlw/kmnXqZW7YWH7sNSMRkkTPfZ4fqNXSBhmLUm1nc09EoCQIzkNMZzts1CzfnVkboZ/Rq2Bi0VxdpIeMM0S+oOIjochkrX8MbS68mRmfv+autRbdFi28RaTjDbHtNObbrBF2TSRyM1Dq/th9WLnPFyCo9aubtSzCBdOQQ2uO28mSiI+ZuxIkyPETNXCxvLvD9wknolWwArhclwhMor09xowwnJ6YYcycNX2t29q8oWGOGJHzPvV11uLm4HUaWdsl2B2670iyoc2/Ll5i1xnM0fMZ2nCknT95p1N0MenUlrewbN0/NvSSgl+HSar88Oqc1Zq9DiHUDdqSZBnNid8VfdcepUVH/kTc3JC6Wm0BtyuDS2r43n804c3Rd6XQPuFyEvSSk9LwQ+iGOrM1G5Jcmc5XeeG7hmi0dN3iL4l+mKDU2mePTqPdukXrXw7fS2qAEwaYOLZ6VN2RBYlCOnvPSi1bRG43BNfvp2bjrRJdbAFp6gD9H7FfCBPTpjOq+5t7DIlar0TVBLNmMdR2CgC+0FzpjAjzlX96utHTuPFjc4MHqY9rsFaQm1ItZG3Td7pI+xWMASIB6hPcPmptINxuiXVbDvJsUjsAFpBb/bxOmC7ORKL77rbgbiGPUR7FXXN8a52lGxjeFcZq2zeTMTtgzmMY60WOL8GwXSdEDId2r0Vcuy3DjdLXEn4oVhhz6rr7jHknDzFACA2r6dkcTGUZzVt5cL5dNsr5EycMlMxbNvIAGY2XBVoCgTtp9A29ukVaATIhITEdur3q0sUNL/AHQz7YwRzTi8H08xv2zRb8L1LBO6wG/9s1F+psiOpIfXc60mc7bGp0jsyRS3rpz5VXfdhHuVqSR6ZyK5zExR8sYiNKxJzJTeZ9KY1MKfSktR3jbV9pOKbC7NzOXZ2423OtL6kG4GG6dXVhfxV1zcgwGHKE1c24HVnt+a/wD4jcz8T4UzmWX3avzBaw4j9RKukke0nT8lWg6ULXmIM+Ku7ksM8rtD3pQhZ5cHdpLjICkEYnbEUm23Ods8dEayvpMkmkLhiEYiZp6k4nUxhP7u3fegZVtu3FJhCYe/Rr0OwKxMuYnY5/NalHTM/KfUk78JQ6Z0pniPrVxhtiWESGe879JK9LusTM/mri5tOHZm0PEL6au0+s3xdws4h3H9am4ul1D8+rnKdGH7V8NtyWysakTfvZHJWCIzCaUJOdIcUFuEYjAN3UkVxQols6QScwO2SYKvGM5mLrQMHqPljVvxDVxys/2qRCCYdyX6NF0cwuUUOwvStMMen/3cnSXHihW8gCFTL0zJ8v2rQ2xbESkCzw6dzHOab21Sd4U1yzsNpstBJavJvAZ5A42q34aOy4VuzLiJ/uq4VDTeGYteOj6ZUaJ2IJNJ6onPy8eaTEXYb4ttFZPBIxv9Wi/UFyuRwJjukx4yc0RH9u6I/m3VtQly2WrGZwEcKkZ44o0TJone640DzDFao17tsChx/bhjx02a3dTneb4Hysw+cUEFoN2wBqft9SnfLdLOFmMeokDyV6n0pezO5MEQl+/cSoCwtgMg23FsvaJKS/VpC+RuixEl+aXY/BWi8jXzteTbLgQxD1oSLpR05kieLkucnJEUOpvz/dMt2/XUSUMWwpGNWV90h81c2tpvaxi3T9bcsUOdFx6Xi1YOcZMVZZi1tnERog6PY+/avhXNpc3cejXLl2tHZelQBJo6Cnq2YtSSKLMaS0zAHD0X+2r7Wbbb7bepdpD2zP4q8WxZvnVGN530pLFRrNQeHt/dvC06mL0Rf71Yc5KF9VsXQkokiS2rs+XNa5H5JSUmOclBMmJlAxgzB2o1u7edp89qukS8cks4kwA3dK1BEXOQS2GLd+ZGr5tm1WI1XGdJjcqy0mQ05tcWvQcUtwpph9MWo2+/FM7HKJfs9q4uled3DnJVtqqeoY02xJyyFWQjm1BdknlisWlswchNZyfLxq1RPauEFEDkouWLQIdvwd6EJtNsZ+xv7UoeiV/7G8V8UUPjIdJ2qSYbiQgyK/irIx3jBxzbO0Ut2tZXI4nxIVa7M2pETx0NVWXXxyASjOT71cDpS63EjqRF2TvRsYyArKNr15x9SvUj6cycEmDLWmWMBMx05Q3YqyxLhICPT0ORtpNaX+m3F0ZCO/FXWGlymrUrjG5tNKzvqv3nM7lB8MbbU2gl0529npVgajNsPEoROaIAEEkmzHp3Qfv0q3GY2YmIa1XaUzG+6kzuU2OXA5i6MHK5qLLrge8jaNxz5eYq26SbnczC4ztG5SDxcSzBjY1Z6z3Ktu9cOlZE+HiTaejQgny50w7z2Ykos+ZhTI3Q5wMZLhq5XE3RtC+yGaVhw7zK9pHMT9Jq9Y/47hxMGhXv/DNRcgMubrZRfI7tTbaNmUg6Z4NTGSnlv1Cmq6DKbyZMcFN0XGRZt0r8S3pjVv3KgZJBhEgDu9KEbG0uYhtYYTIZk8TRpzuj6WRfpBa8dGkVH1zIoBcpBkkteO9WLb6RUi2c7nHH6xWm5GS52zFyTEdonej4RdiF3NN1k8s9eyUMyqcktzHSJKsbIuxI4VJDMFpGo5p1Y+GYMHqtT8478UIbPw3ATcY8XTmok05BUDSM8Iyk8lWW6Li0Z2jbyP2irbYDDtpSJnqO9XuFbsoyLmcnIjGWlstbsdVZ0zjCizUqmpEyabpXvH4Ki0EbrePUQrsWo487Vb/xrtaGpu7nKpjPO9ILBaMTcQCvWOabbFubroIz8TAJPzWggnVipgtuLo2Jq4kgtlzjbzv9atNSDneTPhb1oTQhHR9Q4+YcR42q+y6Lr1TAapRjtV3XDLcjj2HIdSviWXQF1mSSem0mfZp6QZ02yHtNWM3kb76Yx4hmrHe2HPzCY8blLcN0txJm3DBLtOPuUTOZ2+bCB96ueg/3SIrH4oUQC2dz05rKWkO3u7nJnrQvykcO2+RG7mrhTZjbe7vt0rO5jY1YKun1gXSyQSeBn6035W6E9LvPG1FrGJ7h+lG77OPEOJr2XZy+w0XDmCORielFl2XIdmUziJr4wAag4NNDucEzKdeKdsi0QEDcmWXntzFNwXSsxzOHZJpGdV4EswbxtnZKG0m+2QneTf8AXvVltuQnIwdWkEgxAzsWn/YykcJSlmLYN49UO8gZp1cssqvvROxqSB0l04mB6lCYUgHGAT2Ya13tt1xJvdIzzWpZEdJqB+0Q0ljtIGZX6PWpnBpNLDPUOen1K9A6WJwt086X3GoMvORCC7mrhFnfIuB6mk5N+Kv1TZGqAuhXt7zRoW6Du59p5juTbUCDGmSIgnm14zTgG1tOdUb9RqxYUBNWXhzOMNXEJNts3CFxpJcmPtPii62CfLLAkCuZBKW2YbpPUunMEOoN6/5LgwpEEM9JrsWlq4hT6qJ5mpuet3SJQ4uVh/JVxkIu4uLC1x7w1ktuA0zDpW6J4xPbmOlFoptAq2wg/wBxFFoA6YgJT2DeTzV7cGWwNUGpN4zMP7VbbfI2nEuphcMwbz0KuLbm59Lut1xbhzKUwBLL8tuq7njmsNyWgAuEJ2lnJ74qJOmX1Khy+Sr7RIQxOPR7nHZN6ZcMRLsfRRnyG9WgpGleS3TnOZPerW8MSZkMHRt7dUa+J8SdPX1pmH2+s5q7TNu1yoKFr33ma0qaG3oNunu6dE5KT1woE3MR3ckeauQti25xMGqYeG3OaJmNT1ZLvOlxLzSRcWOAi7RqQiRnDBzVzdqLUuIX0kkkZbeO7TGVDYhi3yTtFXtyZcbYuwmSMAMdu1RYS2W6k49KI9YGrggvOINUXdMdnmlM6WUxJO8cxLV19hN0bcxDKT36dStS3L0PUy29lD70GS2JCJEcq8SsVFm4cJ6rX3n7NLbajONo1Y2w9vo8lOMhcpBKZ/C9qhNKakxpkRjmHLV8XAXZCMhI7ItWjdNvJiRx2mBK03Sz0+YmeSXk6VbcIZwjEj9vxVtmem7H36xTfahbqtkkzdbtPIRTrAg6POPtc0XXJGDtNp5nvxXTneTdp565D+NZnBbzGQ8uKtZuwdTMR5J+jWl+mVmQ5DpV17nOPHsslSzo+H7jPvV0pF2pxOGJPtWRwyGAZoPlwTtLGWtI2uSWZnriiFETKE9GEl3nvV07sZMAAJkXmpvHYyzBz0T+NW+mUk04UCHgeKbxzO0cMbZ/ClXXTK7EY3jiXK0BEamdtOn5evVq5SVwnqFv2YB5KvbgnAAm8Qxg3j8VdbazbAGY4jfJiSviWvNrGJx8rKMUeqNid5c7m+a0rdAQvrzsuPVmlswy50u3s871a2rbcQJFwTHQ9MY81eIqgL6pQD/48NHwngzGqS1MThzOHnikvyXF4DvdsY379quEYcoHOd4NQQ1FyEQ5jNsp22HOabk5IiQV8I9s9yrW+7NogrMsdWNxrEckqkvbKm3fekdOmWLsBn3LpEoVeNIsnV3mjUz8qh2XaXTiZ5q3/qZjdB6cSJ4zTcQhg7/EM9dnB4aiJLmblPT+NPTqklXXIImEnj3nKdadJIvAde1ullr4hGq+NQizdbMcR3KT4jJcXCtt6f8AHcx/5ky9ulCMxexMOfGTjolFsToSWXhIiFHEla2VnfNxasHHfvzVlgsW23iabtEOcCKWz4qzWwAyb3WyTwu5P2q3S3N3kbojukb9yrrbZhEciqf/ACEZfFFxdvFp6XXrLfdPs7Uq3g53SPdvmi2LAgYMjaXQbOndq74ef+NcDJIhMyZy0xm0c4tZ2XaLOMzURawmcauZjdyNphKtdJJJxoHJmpM2twy6SLZ6QXysdGouubDBM3E2zzKEx3jeiJtGbdTFsKIzk5/WpHTm0fVpEI3MRiashtVSYySr4Sc9maubYi8nAKhD+KszKczqiM8u8H2oLji5NQIp0xtJWkxEGMOnbJNEzqQjCX7Az/dRKcsrA+IAJmm4bbbiLgzbf3weow9q1Y6Wvl7Y5q23ViCWfQDE5U702TqOzdPBnc39orNzCkZNM8zpnr0ptuZI3XM87VC6ZDwEPbVk96ZlttYWEynO5t7UQ/8AVibVIu7NYZiUf7Fx9cnehTD9eClumINpD96tPbnVmTnNLk7uHf6bNBbLcdc7MO9OCbtRk2UjslARpfa9Crbh7HpxEPL2r1Fg5w4lzxVypMkYYNunRou123QqQhmPrs1dLN2F0yPXhWoLnOriMvT0vXtUxAYMvyJ7Vd/yTZMzKAZu3MT9aFUsxGUJPEUMplDjbpPbFL6SCEjtPOetHxCYuBMmcY2xk6lWt0XAszPzMf8AbNRapDj5jaNsR+abXS4GS6BsY2nPI0XMSFzjokMf3HG8VbeNyZmLkkw+l9mi5i8CIlcvSWYg70W2haW7f9u8JQLHGXTh35ignTf2YRmdjP2GlYZM5m2SNjBASclS26sqBctuNOzapxNJEuUN50OYhZmKNKlspa2qdDMYrFphe6wPQjam9kF4NQP3496tvmyFORAfDabvjNBhYHeHSnf3qLpnMGWPG7+KWS19WymxmctxVkBgugAyOVxjffcqyLX08xcCzx0y+aQVtYzEBiOJ/Rq11ejeC4hZzMK/29KBbbYLYBOd9rhlj+NReW2zLp9EaX8Y8maIbrW6N5S4J53yTVtl/pWMRdriTfD35Gm21GwbtwLQRCcTMUWnpWbpPR6d+TGxyUDZlB2YLTLE2aaLL51JcGrfTIORgptgbo4F+JMMxBM742pYdJMz6rVCHlHDnc3KLXTpRkYQOOBn3lq25zAXBNoNo2xEQ4jNfD05tsndQ2RBg4g2jFWaY9PGBco8REdmnSTdJpPWpdI+ctWrF0BpNU8w8b+rpXDohVWZtU5dWSK/9MVS3SPq9O3Mg1ehqSNOOEZnKZmdmKuuXlnYu14czG6dOam0mNHIinRmUoyXGSDYkR0wrQLLCIIGm63tDt2rXddctoMzMwyw8S0Culujc9Nzl6JGadZDPJHL2ePBQCXDCGyox55rQMtrlkQiCo+H0hfVkyOerVxd6cEQAOCY7RJTIXR9GpDDEYn6yTRCszDguiMcwTFDfjN5DKxTpC8jobOGcNpV11mRDsdam5bYkmQPzOzUCvV3e3Wn0srl5n6TijZVucPX/NNxgu7P6iTDT16pQ4WLXLjDXxji/wChVukXc2HEZ/touGw2joZq1FnGJ9LX/Iw3MQuTYaizICxPU1ZRnhq7SuplN02Tqm5TcRzDbbLjGd/xNW3yxhn+0fChVr6YEmd85xMlalyHcvxk6w81cJdLI9+N9+nTavhfCIbILSGLs4c6SrTQem6MvqE9jOHmktjUJa5xGdhx02YqYNKA7Ixk2kozluLji9ZnocNXXWy5lneY5U2hqE3iRtY2k4njMJV17ys5dMbVFtvq/wDbaWvv8rhq4tW9ZuH1bCLPPA9at+HnETGzaZ6R+KLWS6c+mQk4wnDV1/o4TSAaRxG7zVt94uWFJtX2YpC4VTjGqezPJ+Ki5tut1XZygrieI1FW4gujLADwEjvmtJI2xGoD+R4Si+5tmDpxv+vHSjGLm6SR3F5C+aHsLzjfMd6JfVD/AHCapxtcH3asPiY0DJmfoMxParL+qz1vSd4ZmJ74pusuLdoTSWydjmPNfDuufVgGSRwvRnDybUwtr6iJFTL7keSrRRuiTe5jC5GBh2mr2bbpuFRMosvEDNCrcqA4Zu09Ty9it8ObWUt0y845krSNgBp3C5k4JthezWi1wdkSOsTaseGrb5QPQurb0Sd0gougt044CNn9KQ0qwXC6reDh0fkxXxLVWV3TUSxtd6dxq6+yNwgQiP8Ars8O1F4XCBPqQz0RKPhGmdITaQROMiMS96NYaTdIcXY6NsVbbffm1ulGFmZiY4Se1XWP9wXF3qgsJmMq5eMUzf8A+LdNszGZC4CZOIy02+tn5nOq1yYwpK18EgbgS2AHDBKgRjq0Fhk0A41iYy7kk70Nqzk2G6djkMx9Cv8Aj02XBkG0YHsCT1iKusjOQxHZxM/enVboIbk0JjmDVEe/Si9EbsQBrzaHHS3tVvxZS26Zj/s5MSV8W+6zBD19Wo20z+9cRAvQJUiRHeSi4mDzHL+JqLV1TDjHdzmoiUemaRu0ECZQl3xMVcw3HuL/ADFDE574czxG3vvTDq94j7z0otum4er74+3FYR54460yqd7uDHWhxETOMJV278puyV8Axo+l1tFlq6dIubp2UyZpkQl4QhwdGm1MMgB/aAMccFZMNvBpOZ370lh/1TEkb9I2rXE3s4FPwhS4btzfbicrvWe8vBKla0QVZcb5MOZ3q4AFtnThx2iGtJqLZMzOYeS6r7TSarQ1EG/tw0uoSbUe9rJInDqKMDlZmMoJx1trS4bRYJLw24Zq7RbOVJgcPDjmobi7PpYG2HbGSrLEdVpczIrZP1kJ4rJIkXdI2MOGhsuBMoPZN1F4pshOYncZ/Uk5rVbF0oEy3dN5wVfdb5ytxP1Z9Mn1q+xcZlWy4D6l25Vl+LbpSBtbtTG0cVZETJgQugOjdq6cNTbgEmS1nO9vAbTTqRJkI4kO+z25r0TqunfXE914PeiACA/6mOuB60WWs6dR0zhxtPqK+JojS3WwhEMjv5Kn0sdCFhTsbd5o13aTTlzpRiOJzHaro9atxbHzLdMbcTFTeumVJDTmDrDtUW8wOqJkAfZ+lWfDA9IEE+rSRmTVxVzEieBlNgyzdUNtuXHe9MRJJ9aiwS1SJ9Mu3jaOOtatrZB0/K3HTPJNX3osF2EVRFOFthe+9GmRPULMp9YmrksdPpAg0TcT0Tf2pA1Xum03Uvl2mXLUXzffp62j6jDtsZ6VMarj55+Uhuud7eY7jU76WbbtLcZD3fo1cxcaFn03FzdkcBBltq60HTZHBtIOy5Q6ladGttCLNS3aT1KyRjPSsnw7rlu/uG4E59P60ogWk2hpH5p3l99qILRjTxvEPJsVejIqRK56kNwrDVt3Kxlzptk/C8daQIU1YmQbox0w+TNJeTqGVBXcxjTVxqLQADU4+HtmETNYuGGBI3juZxNXXzdCkTi6TpI/29+lW3O1roHGmRnbJuJU4tzAQQx0lAzVvQ0uAcCO4oYMc5mrdPpgcjA7R146tNtyXjJjLErhGMUMsiSzlfZ2zUjluXpdI6vNW32sjcdMO/4o1QABxsuYnPWolWdXKVc27r3481bvpZJzpPEwcVYu5GOSlh54TL7NJnb2/FOoTEGM/wAaJfTf9P8ANW2rpAu5hUz0qBtnVaGyyY8bJWWJ0pg/U6tWDkFTYYPoVptZzbpVxB6eWaUPTO0Em3CRvWwpaYd8vfNZ1S5jtM8cy0My4n1M4zQW3gwBmLgtJjENQoFwghDs7FepbQ0y/UyZ61kIxJhwgyQUX/D+STUSFkmcsiiTQ6NMRAQibYgnqYptAi8uXPK+Op2OabNWGDYl2LeKPX8O1jNwAj2zMzVt76oc/MykXeflhqbjELshydNXNS6XVMm+N/HbitBqsYIUuiRQiZ61b8MBsiWLWF+kdOAq20jEGGLSLV3PVs9qcNx6ZJVeux07TR8SG1f+ThmfmeJ2Kvb22LtTGALcp0OTqblW6ZtcHzaIRDMjfGa1oelna4ux5MC06tTbui5WeM6ai3GpNpCZ8jPFW5dMkMeiPDg4Grrm3kuGEZO4d6TVBZlY34JInYp+JqshQkg4nrq2K134tuuhlNH6IeorRvbhOBshcYP7WkMXXG7j4iE77bE0fCNeS0hmSPm9MvfZSvhnw7fSFikZLRziIJU75o+IC3C9dbvvvb1q1uGFIYdLcpMSJTywt0RMjyxPPYzVwCXy3N0pmJxhIiOGtQsQ3OoCxfVGY21JTalxIaQ9PGZE4zszTbam0L6fkDhI702WxsnEpqznA/aj4Y3kJaxiSGN8yyVJcepIhZ4idLGXtioWQ1G8WhMdQknxV9yhddcqWyWl2Q07vOcyVe/Cj5YyWSFoXZGetXJcZJCQtQzkg78cVcgysf2t2nJ27bw18NYbiCSx0wYe5yNX2kQ46XBOrjiYdqC1bQJ9SoZBxIrI0WLC2myzp8LHnFJfh0oIftbcTirbx0sjk1WaRmDURuNXNy4k4DaCN5jzV1l2fny/MCZ4R2q24Us+WHMQf/WWAq22+2Vg3BTftslXS2zKGWJ9sblPF0aWMXP1xhqXF2CIW+EDjloD5l4nB4X/ABTcwnGDfvybVuGAykxhzkam3kxlDT9EzmhlQ+p55q1XPsydprZs1JuZAjtO8VNwmb2KzImp5B2qY/Waetx7FXXENt3OJx7xV8TqS2Mq9GMJVk3mW5XqvslOAJ3mODhhq6xuAnJRYsWkrLO/2fo81eDHDO59cmOlRGHEx7ZqwTTsYzvjo8tXIzeKSwwRzOMw0DDMFwG8xM/aathJMvqzEZldquljFo7pmZ2akC6BMc/p1mtFl0iG937s02qFvXYDf7NW6mW6EVQg8lAb3a/arr7VE6SXcJLCuatEZ5gunkzkjPetgMYnOd+KLrU2MN12qI47S03f8c2uMl0NxEQhwzUSR6bDkXHJLHtFej5gmIRUYknEfWrUum19NqrFtwC9N6GxND6VLrQkIZdUx7FCs9eZWZxBdH0pLn1Wy6hG+WHlqVdIIm6APtzXyg2nEwidI6VD8uk2PTgZic9Ks1JeAuIUmF2ZIZ9mollDM/mN5P1q3Ft1oYI1W6TOOaPiWNsarbI9PzBHG9aLlYxBEZUOLsstMxLqRjYuxyCM02XajfUrDvmIh78Vb8Nw3SpqFSZzlt3KLBtLryFLQS6PFWyrZGblyPH8TeriXSszjPqtw+8V8KPi3aZE9coXKY9cpgq7PpHVBd37XTs8zUxJM/3y85RuwZ5GroFtUMEEpDMM4iftVy/8YT1tku9ku+zM02GqXWgl58QtVDcn/S1qLG4WS20vVfKXdXpQWRdaeptW1RtjdweNygtW54tFuLrkDZHYmYiKbde1zaM4dkCLdTI0ji0LgLkNQiMT6hx96tmLbiCXSWDheMCnertaq2kEit04wKMQzVqmZHUYUQMYbt4iQptbNNzZc7m0rLOSMxLwUWFsYAxdbMGIkxjO870mqW0IXSKHgxDnin4JfjNmpkIiDSMjNPwrm30zbqwLwxBa8M5rSttrzM6uCKuuU0kursBM7/mrSyS7RZKyOnfkw4aAJZXHB98VcI4lwjthii+W2XO/DiTH5qwl42VRtjpNWWCLI8GX69SpsfE4VMOcVZK4IN8nberPm5xPUeyVcG7iYJ59qNyYmXnG/ZKt27RE9DmdzvQvChvv9e1abYu7T2r4XU+r+1FyI6hk35OtX3l06046wOz0q8G0NSbrt7xjFOuUc3SyDNOBtd7ei4xNBaEyGTx2ii8m2HInpMO32Cgn7Ghq0tGcKAh7+GvSOkT/AGcRFWbKRbvmeO/XcKvwBGNnHE7c1deHq1F3KyeHrWD0vadmeCgkONkEc8wbT1q25bdWAcYZHjBT/wAZpti/tCzDnYxWq41XWny9+HDPCYRq8utmJgGOZNs7NXfEuGXIIhF205+nFZbcabo5n8Vcjlg1bZN8vFNl16QNszEH1MZ71HxCbPVbKXJsHc228VFs8ujCrHMgGavhW/0YS4SOkyREUNui1tZU/VPTMjW3Qd7pu8zn2irtJaSNoRtDG0YTZ5qQ+Zt/t5YMkdqW662bpl3Lf7oduTs0ItgkDDp+WMSzPppVCy49VxtwPPWKmNIdOh4awNhao8O73Cp0TF0RFpOE44f3qdLqC2LTLxxCcUXbQEWk2hEk7ask9NqFtZOIIyCz6mJNqtflEu6lpiWMLh8b1JJDawvIm200iCXayHbKnfr0mr7mXTvGrrERLPNfDsG1EgQMDERENaobXmW211TPjE1aqIXtwSgs4d3ZmtLHy+lc2DM45wCUfEUjVbnF1sp2/wBbU6dNiRlHLDuNjA1qkg1XbMPLOcn71bdp3hRDEErub555qwbfUFyFzck3HK+npw02hmLYDCSahucsydmi6z5rWdoLoJt1Cz9zetWdEkDGUzLy9clarrfRaW6hNguLmVD2ovubbbSbtJkUVncckVgmyPhzbkSJuYyXYNXNajIWBnVk3n6lDZrAuG1iLeG2T5ozwkVcN+lzNwGCO0p8zO1R8S+3SWJxMz6phjZKHGLhWASHXiR7vFF64JZPlmXbA/LtV0TNx80zCLuztmkuwy543DOcFBZHqIzLCezsSVptR74MdsdymyLiC6Z2Rx1mkBLvuhtSkpBzOxxOdqtcYZ6ZXo96JUxvwY4RikuuRi2D2zRf3mNzjrOIoTrbP580Yd+g/kalBPOatg9K95/xRelsyXv91zu4GOzRfe6ZzCDZa5XIpTLAZmIdu2NqAJEySBkAiK9Ldqt0j7TviPxWXUbLp/uiM8bFI6kl7yc7H4aB+aGOMd9nOKwscd99sdKui71atxZUPc3mr434Oj3gjmrR0xYipGtjeReBq+1m7DkZcqdNpSrG+25xf8Tb0+rr9acDi1+VWLcv2ouF1MowzydWrRvN7ZEGHFvEdTikJsSRycMUlsFiOAHPecY9q+HAERIijGci7RRfiGHGyXmZ3803YRwO8J4/douxcDDcRqlOumrsTbGF9OOIC38sVbbzpFmZHAcS4Ki6BS4TMEnHES1NubW65dktxOM4MEUXQwILLCpxWmdUSk4kynPfo7NWSwWqEY3iJPlxmidiIl0jJFar5tiYdLpkOmcb1GbYbU+j7uMFfK/vM7h2H81e/wB256bgLX1ONuGj0MjggbnUdPps1NwQlskcq98ZmmX1LOJuxMYivi3WdbMaRRpvvPS4MOW7bO+0VNy3CE82wz0KsC+30mWYADjOKPW6czmfhtqSg4cKcNFtl8Zni3SRDjB+SrbQdU795zI5cvRqzU23W6gBZkk2iOfNXxApNuGU2wqPLQj7XXSSbxhyYjarbzVqEC4uQcITEOx5w1Z8NbrbSAc2jwLOZjeY6Vpv0D10XQ502wAm1AoF9wFoJaChKQCfStO8DhjY6/3ZCawGLcwtw4A5jvRcovqVnJckkHEsdaLrLtZYGjWpakrl+bDHNWE6rgCC83bDTLEwkcVElwAzFqcoYIeTNtWlw3NlubYiAznY6hn7Vf8A3R/cQxdDzb6qulvgbQhsTEiMGdnrWm1OS7COO2TZfpW+FNO7ahvkY+jVvplk9K+vMCsIbyUlpg1Bxj5eDOyfLNMwihe+rcxOf8VdoumS4GVgTzHFarhbc5MntEi/5qAQ9LvKbHfqOauw3ZiZhMoxjpNWzJEscu/Q5KLpgkeUYY71k/uJNnb9603mrD3wrvUcnBKO/EzUyDLiZjB3oZI33YjM1qiNj3q+Pl//AFVvGSJSS0o+ICMqOEwgypSoo3M+q3ybz1Kt07kAZ5AeIrNyYlzkGaLiIbuAnvs/uVN0xBCOZxPM1pFOLUFzAd/FDJHqefHjetZ6YLvmy5tOYtOlXTvFqm1pG84XasRdO1scCPUKhBfmIOJY+jRdaRPqlhN48dCly+nKfNOU/uo0zbETOm3dxDjZokZQ69Y6pS59TYwDGTEOd6QyELljB7n8Kb2267VbbglzBOz17NW2OtEBm1iMpJ7V8K1XQ6HSs2iRdyJRZa269OBfSQIwSGWiIZnSYFmNXNLdNt1zcwyMcwXO/TOKsuAC1mdABkNop1hdZ8R1Nzq0pGJzdkPevVcLmYMrd0WrbviWlqDciRBzGxxHDRcAtue6k1LyjLG74HE/kq1mVSSbyZZYmaLbszEPM7ZjFWWlvcI4+9uatss1DswGWDePB2q6PSOS7nSb/atSAHyysXZOmk3K6DYscw458VcOktSTF0BhoQlmEOH6cD3aVUdnMBuZRottYlQy7LiBPZr4dq+qcuwZhiDDhq4YjA+nTI78HNJHpnrbE3MNTokuhbcQmrOE7tOrFrfcxcxjUympMJNDZINyhDDN2NPDL3qwsdK3rBNzKYk0rmXp0r0oKiPGqSdwtAO9f8rd6TUkQlxD0SOIqwWLYxKw/wBzB3JeWjUWCirLasfNEyjH60WIg8IlsPXAvWoiLjVBAoi27nLV1lyWaDfaRg9Ixmd6LbLCTSDFxdbgWZF/FOpJhcouiU69BnEUqm8SEIyYIi77FLcjLclvIpurtyFFulm6OEslLtXQkmotiCdNslou0nGWTrQwsANtuzy8auK/47SboE26emeM+Xii+5thxhILk52yS8cNEty27wsjA7ZKtW8yMZwMTtEbMtBfqYcqERHTfjtWRFgZ1aeTo0trtpJw9Dz0qLIZAIfUwU2ibvOYzsTvQwXZcLnrUWwv0UoSYhRF7Jkg4pLpzqO29K/l8eKbds2sxtXw/wDr/wDn/FGpNMAE3xi361Ym7q9MfqwYfNadWBd4/To1/wCoIzaJmYGXifuVddard6XeMO/ZpUIIbZEydMTW2J5nUONq+I3Wp2VlPlwnemG3kzDkiaypIDL/AKTNfDu+I/LqhIRxjqcFJYSh8pJdAafbatd5d6pYm3UQvRngq20NQFrKnMmyxzmlsdTLkcj3SOChNNsQswEBJODu024jZtbTTgTeN6tYXjTJGaL7bi0zIMbsXZcUXCXGJZtCMxtRAKJiXfMf+WPVVqWrBJc9Pp0XaOaLd5MswmUOG2m1Y1NkYBkYg9/xNMoNoaklwBazHUamSZ7LaM7AywNWDrtm1gZT0sdAxLyNW6i0ugjJ5ZnScVdbbMssETp740zMcVdb6WdDwu577UrdpyOLpl75/evUCLyJbMG/tTy+oLW5l+aEzFNjsQZGIjP8zUWAW6sTMROrkim5vkLbZQyRM7KPFXpbcY6qdfvVtnxGHSDsYjgjmguumLnObY3ccxgrS+kbNtKvUyd/0q6S1tYtmPSbWkUCwTAFpMxzzvHDTbZIK59n+OKlZSM4ZQJnIklFths4QTCsygzirW2SfmbUthMZ9LKtXXXwjFzJJE71BdcXLqzOMp1CKu/49V1rPTVxEITtvLWRvhyBciW+kCFTvtUWw5NQLpdV0EBB/dFWuVsDTF7xjfosdGm261utRtulxGbeCdzPgrQy226g5uzqtMxqJpuu9N+u8yWiJ34MDVieiEulIw6nAj1ligvZbgY1LiQd064y1quS/DLI3ct2/Wahh4VMWp4OxQ2s2mjhWTadn7NRI2FsfPgflJhjaHZq0uLV9Tq9IAsWkxPJRY6G20lTRzEQ028oEfYhDqTmi2cKwcXJjEgbTVqIKRqLYjlDCmYp04EJdPedsFDdvyaWeuDerm3AjO3PSO++9JbjiEyAwb+503rA2me9pySSVp/+LBnVnajjJjvviBowK7pnb7/elG38nXzBVzhyLEfpin4ebuO2nntRkiDru18Ti77U6jUy+F9yOatL+IJwcxnbardGPVbdDhwnP5q2RknTuRKTGKyRDDBB1djpRdkgk8pJvVt9xqcx0lSJ8NRqPJIsIFI3S3EKjITJk9q0t2XVHHA852q9MJE7F23kHDDsVJOli4ku6nOHcoVudS55NhxM4Zr/AIxuRgw3GCYrSars2iZX9iviWNqm2XETp7qwVakXA4tyBOH6S1YiSjtHyxPB4rUK5hxLyOKcttwTP8YYaLrAhSTrcdUnvxRZnCpaSGUuzDkmouuM5mUIYu6v4atusfiN6khcs3GTPy9OavHab1GC3fEQJxFXW2YHVHPrtiHOxFX+lLoviBjJHCsyD7lNloyxvGwQLmDFX22i2mn+66IRDOLZHrI1fpsiFkcJqIYz/wBu9WXMk9sqETEVGoLTvNoh2w1dclunJx0Oh1jimWR1LgnOPoUBtlkElI5J7UuInfOLv9McUaQLQkZnc22XcqJbeJhJq68SFYTI3MKNQwsN0s7SzlzJJTbdptC1/t0jblzI1bESkkTEYcf4q4tRhYRC0jrGOkb1K6iEmVuyXGIKsVJIYxBOYCYw1bbdqjfALCk4CJ+jSDpE3FIBeGHeauuZJXMSKjtk4r/kCBmJtLrguOMhucpVzcXFl7CRgzMWh6tv2qxtLt4GbhTGOYncrUao1dsYiSF4IM0EpNxdm6fTdCJyZrUo3sN250GZMCPSi/4cXZWNTdcQKr7K03arpG3K3QMp7Qy4xULaWmoY9EjjrKUtqWpdah6YIicKFNlqFnpXJ/bM6suQJq2WLhuvPnSFwCobhzQK2p0BhAjTleKvsI/tCGSJ4JXZxlKw3OEGbgYJZe0Dmr4Yyq9GMRC3RTquW6bjU8nnbam21POtgBStLM54iRxw8MPFXWRnS8LC/wCqutZRxMMxkMnOe9JjVEdGWYyY6VbltZhTHC7nbtVtk4/ucS8bTSXoiTLG+Jmi6yQIuM92O34pnSG8hmptTt0CrbUgNJwRxxWm8Nmc0mNX4/apHIby7O3bmtIykkoPOOnNYuZuBElx06lQXCXbwmqexNNlzM79VMcYr4tjC6Y9g+vFWR9ZfDM1E7xMRBl3jstLGp2d4J5lpuAg3ENwbjfFat3diV4bd0qy7XBayd5xxn60WoX2xzEwd3tRpkO2HbMxM4q6JtziW0mYTStWgxMK+q0GOrSupVm2HMjnG/3au2L2MDadXaTvTB6ZmdrjjIeaPhWyWqudokiV7zVvbHMQztVzDngtzOEyFD81wkABP2OK+WRbzTKKM9TipiHSXaTple+8UQM3bZcZHHDE16LmSdl9pzPJ1KbJhhlgm1ReCYJKU+WLguEmIyMSPtWsSS5B6LNMGVCYulWYqxxwbSl3sD16VeCXWBcR6X1Q/MSZ4rTBuF1svtHLjNDpAJ08kgh3q67DMvLlHuJROjZmNOrIuGosBxv8xBN2aHWRba7ur24O3NapIM7wqAecPZq3Ri0cLHQ3zFNlxLsTpeYPu1tcGbQ39MwRu0zupxN0SJHNLagPqM4LvMzGavTSxzPOxGauuu4JugBtYS/UiJxSaUgiImcpkWTdftTYaUgLyLZucBqmP0oGGC0wl1lrEHysbwbFfGusWVz82+Yc8E/+LQ3sKESGjY7t2ai7F1ppyWiGH0zjmrkld7beNaTge8HPJV11tttkwTiy7U5HaYq34txISxNwyhEzjEVY2Z0FyjpblifUQPbNac5LhE6+8S4rTeSQXQS2InuSTmlthkNNr2N9+w7tLcxKoYLgeuZmTolW2WGhPTJbeEeecd614LBlxdajbO2F3ioViECWBkg36DWmbJzJbCRmfvvLQjAoH2TYg4pi106kiS3p2Hngq20Y/wDyAZJyVI6dtjnfgphuNy1Ynb29qyzl1bXfwaECPS4Fx1KNYCJvyOXfzWre3utMQZczMeKy5lds8bb1w8uWoNO9vvz5r/xf/u1/6bCmHTxnGJpi3pEZZy1cwAwYOYXiWiTXcwI9oelJcXaULgJfonLVh6pxG2wNGOuNs9+aLLTMYtMDjt/im1I6PSY3z4a14ISWbd6dcCZYDYYJii60dUsHMQG88YKuubNUAmc4q261UNTup6vS7yYZoW5E5ScQT1N6cwACFt0Q5e/SdqfQRCJCzdheepUWWnGziSKUZIyGoAyuGerV19wCGXTbbby4BGtOlHpHBbwqZkdmrI9MLtFjtykc9uSgcwT/AOcy8kHFXXWwIiwQMA52PFDfJcufJEyV6LVJUhhOXie2aQU6kQQ4C3mn5ZgbjG+DZSm1yMm2ZzOxO1XoWxKEluXz9fzWMbZyyQTqyPHnJSk3S2xb0iFo3REdPjncqzClultYODj3qLhLZ9TGnaAJqzQAT4MbRE0NkXonzcznEhFWYgiWI3GeTr+lXL6Rb4mI0ymPvQhcGHOSY+u1X2WziRtuGTvl6tT8S0yaYmEe0fpT8OxJ+txEq5hpjTlOZM45igsNTklBJxpwDbXrBeEMSs5GnTbN7IzsMTjpgUqBbRFANx2gwZQrLaEBOH1QmNhJmrAiIMicxMQJvRct128JB6oglPptXw/Tda2TaN9qBATA2pkjeea1XhN11xqcucsGbSAPETTFkyQCLp1EOfSnHXmmfmVhYhWbbYIbukzUWXTcYIdWzNu8bZPZqUtLupDdK7W4P7jGaG1zi2OMWx2dzMJXxHeAiLokjnBsNfFNKkXcCszE4LucknNR8K0PVYQFqAKdJ2Vq8W9smLjOTb0s8TWk1OAxrYTpu02pqxbayztsi022o2qlpj5shsj96H4sHY2zhxExtWu5lESBCZHptJjFGq2QFCdvleWeGm2yZWTK8kSLO+9aol9RIgHc5ner01KEHH2M1c6ouQTff0nDVgGUYmReMOK0gp9DZq2CUB7nXLHakYnDkly1dK6eRcd9jrUaV6E/zLBXxOC72uoW5sg9Xqc89Yr1lxb0Mx+Sgt3FS3O/bmgC22DaAGZOc4qzJE+2+NmoDMbc8tJd5cnvtTrG1PPaYq1YuyaZiYV5K9MXFsASXEDxzNDlh0zGfUZjNDaEw4jKZ4iolJ7JdGYmGrrmW0Mihwe/FNhNzp2gUjGISPdrWtwChIrMx3dxpC221TEE9mcDuk1aE3QxZyBhfsVzA4+bS9Zmm6BDJk2xtI71iEJnMHsQ536tXI/Md9XTaTvVzbjBcXSai16faK0fMhmSZlKLRJ6RseNqLm1URZWOHfBmgBtmdPnvGKuDUAkOlM8ddoqy0uNNpuptucx0pmEwZh3mJ5q2z4UQQQ+nb78UkYxu8fV6TWPVdnMRcJhhMfxqxluWHd1RMs7VpX0gy+pNnZXp2absxtISZjcr0tiNopthJwJ3KdWbjPQDEvDtUCZEZQwvpmd5PO1RbBvgMhTbcltxFowDm1mB9qtmJZTAkT6uQ4/DU/EIYNQDJHqZnnnhqC1LYUMFjMPn5u1NhIQQR82KNd1u4YuBtCdojGX71cW5Hk2iHpjZrVECZ02w/iZauRNOohNVscx9yrRxHOZmSYi3zvUjbcBbGRIwymO8U/Eu02zOqcPdXpSCFils+tnF86oztVt1r3FMJqYwHOKtNriPmEOcJi7mkUdRCsQIchJ8veptutUb4uuhg9HzFz+pSguMELvPszjpTdDfiVtRbnTqX8xJV0DdaLuncyjPbpVogAghss6ev71bbEnAGAd47GTmr9UgahCVhh2yT4otnAAxL9Ik2718R+Iu6guIlXt23qVYgW2GOIjim5Vt2ZuDfbtx3rQpzdyHWBefo0Co2k5jBnG1LO71kSFzRvAPNEkRNriT9qIiHD2SuO2x02cgU2sO5ubOGlV4Ig3jEe9WrDMm01bxC3bYr4ksXXR//oFNyAsvD+g80XEsuYSDnhOGhiVlzhjLhrMFxkHLPY7VqnaZMQAu1eu3rP0/bxUMgAoDHMRGaFLplSRiVkjC1dvMDELxnmrbkNhwbdIkaIbm1JIQY36u1FtqOkwzEptwFWX3Jp6hFtXuqcbuSd+znwlA6hDuennj2KzmFeHO3cKsQ1RiNWRVDZI+tfDzkcuTPc/1Swm/eWMTmfu81bDEx7PeRKutvumAUIiHLxFapEf9O/etIEXFlpgT8TS3z1Ny1KLNtQ7yScywVbY3Zi6YjE+CWrrXTrzOCYj7UuL8uSW2M/vXqCCd947TgxvQBi2Ny2QIT+S0CyIGUht2NPstTdqUHHS1l4zs4ol0zgBgznah+VSQZH/dBqUjKQ3RHYOtXk5t5Vnk3E770ha6rSeVptm5XPrm48ZmDDXw4vC4CInAAvKcda02oTMJISis5qy+9bQRNWVzLqh7vSm1uLiBWZtTr/Fq4uTU8EaSMeN6s0xZDIzOTBAsc1fdcRErJw9JNPRovst2AtSTOEJDlqbdQFpmPS4Nk8Zq52UZ2gYhJBdxduSkdTHXVjbKZO+Gm0C17JO1xvEcjR8PMBpVSCwnZe01aemIRLcYi6YPH61ehvrg9KlzvPNSssWq6tUjEJnT02KZm4ERU0q5MnhqwudQAuGDCo6udnak9DdG3peHtSlyX5ZV3Ju3cbZM0tkCQdLkAbgAjBa1eyIFup2k2nHQavtnLagIuIUUTfDOelNswRI7CGLZrAFxpSFIyONP7DWn4cqhEyTtHHfGSj5BhtYQYSdxjpV0y7SamN9RFx7VdPM2mVu2erXrW5VtxIj4mKbSfUQkjBmZZ7wUjBbAJsKBFLKRMGAfx+1SrpdmYZ7wdmstuox58VqtmbojEue1A6nMRqpzpAjtztRJxMc5z4q3Nsjc7z2p/wD67PcaW2SYDk9qsbBLVACD1uKSwwbRGX6PWkbYNSMyT15qIl2yCacHWoAt2tNtIkGa2Z/PsVd8S231Dlk6k9XpVz8SUtZzKjv1abbRbc242598TVk4xKAnLM02SGuEZF6/mrkBTHScParbb/lxtw1pfTdmYYYjGXMaam4l3kVQ9nTV5knCdXN23h70tsCRBBxh+XtVs3Zl3WYjHX3ousmYHHynBB9atTG2xp6ORxRqu6F0x7cG+aG0I25NvAV/x3A5F91DvvSWxpSGLosQlq661S5h35PxmeaNJN0z1ZtxzWm2X5eRnnvvVyMTpS4M6Y4qbt93AwzMfoVscKpEu/NXGmBQtwHSeqUPC2qGzeUtioLmE7nDiKRJxDle0dKAYWInEQQcFAuSDGHpziHekbW4AdtWLtusstI/N2GAcbvRO1FqcROCrFbXZNt5F2oLoCTBEhPG2PcqLLQS9SN9InJmJqYbcqi8v/aIem5Vj8UJM3CkkrqydznOSosi7VDi8Rd7VnGUeKYzbmBi3fBq8TFNzdE4UgF38/gqW3Q2SwrBEq79CKLomxCAhcm6GackWsCuBCDU85q2xC4LD+2WNssUEhu5hbYO4cFNoRclrdMjEd/FFkwuyPQe/cq34u6PqhTaNg88jV9+E1Ti7EPqu79eaZLwFuMpu8ZWr26HjIxJ63eO9WWadtIEg7Afdq74do2xpCSJCXuVaLb6W60Pp26tQ6sgamXAhGJ7UEvl7YTl3I2avtuVJu+WTLPvExW0ESYmJ7masJS71Rv3tx9pqBt7aUR22ImCrLTNpq4t9423ouUkX3d+a1rlT23e/G1Z6xMT152q4tFYjvIdmdq19jhDmncF2xzvVrK/NnVir5i1mHnFBnVAZTyRQY02f/WtKM22hO7vHerXC8gM9SeKuugut1IEST7Ypn1SxGdL+lW2WGUAJjp79aLmXO0uH8VCRnFsswi1ALHGJnnjvV2yQKf2iSY9qLReYz4nicFW22yxBvzOYrRG5hhgmlTqHSDGBzVssMjviYgnPVrVDJ7sxUppQfYcSc1ddbay+A3IMSUSWuXgkVjPvSXaRuPUsH5DmgNJO0Rbx271d8uk1erTMYU+5G9QzalwjEHeJoWUEIfrgSa9AL7z1O8pVtt3IbSMbMavJXpW7F27WqW6IFEzEm52q5NW6W7+eFKtbmXbLDG8HHNBdpfVKyYasttBui0AmfqpkK1OYnu5kc18t8MkQxG3eMU+mUtEgzjHbpSLq+9uXbnrV2p33UcCxj3iv+S6DmAYjmRO0UN0ACxHDnlouiG4jAbQx8uaNFxqJZljc6vUpuAXj04QwSctap3iQySbzhN2r/iaAFnLIO3SabxREw6ZwyJt3p7Qbzk8PXeoutkkiGZ6NW6ckipG04yVdskrnFvaJq41XKYlnOI2N+OYp+F6iEZumFInSy4iav1PYtlYiBjVHXitMglnDhMdGi61J4YF2U+2+9RLBOZjOX9OlAhnGyTyRztVltuboAdOcLxl5aFckI8Jv2cnetapZOZmCXMlXb3GYlScFGlbm6BdWrmDt5zFfD/5YvJv6k5ibWOirV6C4bWG4h++xNf+pa2/+OUevMb1ZbdZNqQTIdJmIxVxhTUhzb5mOaOZiLXxAvFCZ+blcjBC0QKDGxP9tQEOkkkGTcMNCYPYw+004ukXqZAiavMXW5DwHFOq5hRyuMcQNIYymASGrrzSNzttzQWk9otXbxTb3xnqxSzNvHGJq3kV8f5q2200rBzqLZ5otWHMZjnvDUkoRsKqbdLattutuQY4leKLZtVmJVuyxulJh9Uq+XzxXxGHWILAKw+EoRCTLKJh65KC/QhIoTv2AK2lGCro6LkecH69KGVydT6NDawChMQbHn71F0LEgSu0M88nWt7oMokE5y4iuLU2A9UeEOhVqdlxE2kvTx0Kvm42IwgCLkkpTEkkuYI2jNW6LklsV2WJc/irmdIbMGqFjtwxRCi5nHSD7RWqYJIjTHfihl4Mzhz06T5oNriN99kyfKNWFpg1EemTMYhBM1PxIthSK+IWDvDKpEhbAM8NJnXcpbJngMfnNcxGZB2MdIabnY1KLBOThSJp+IhddI7rLMrWoGZu9M5a0warta3Jx0dnlmrC65kEcZRxgnYahwmq2NVphMTs8VaWsrzkScEcVbffqut1NuAATEbashV1wJaJGWfbboVAXAjOJuXPUaZRUJtF3j/dar2dKKtx4tz96ZMxcjEpPaEmF4q64mW4lconTcpGLcssjaHeY57FKy8zPj355itFpKjCbyukzTGmMYjgX9VpgkdOyzMeE5K0JJs7mpJ7rMMc0gooQqxgTEurzEc16ktBwEasn+uXmkgZ0omVJ4q/OdNzrzg/gbJ9K+JKJLti7O8wtN2rJBuQL9t5q4SXVEFsMrjSDjJ1q3c4bjbLHy4MDh70BEbLMSBFu2fuVdcqZHDMcGXvTpOu4/dTjz2r1CxPdcoduk70xqXAiwiR04iGj5T5gP7YJ0YUeK+FtAnBA/8Ajsd96tkMwhEuBdvvTfepN8I+kz2nvRlwn2nY++5VpMyEu5ximQlmeFdvJC1FsTjOZXii44y7yNN12qFcGI+7Sj6YAe/+hq1HGDqGmt4xqgxh/hVvKrxDLXru1AvbG5vPevg8t40IsZnMRDnd3K1bBh80HADHq+1RdpcO2842Y4olm4Zgcz+KPisbic7ZpYmUWSAN6CFyz5u/hQpbImGW3eGKhIdyOOsNJ6vlfo9dyvXqheQN4rVqOIyD1d5M561dba6SI7AZYjMy0tmzCIoIHeiZutdLdKaPzPOanGmIERdMfmK1Wjqm7TGQJjOBiCrPVEyEPDHDmZ32pL9SZ1ZYdQf5rKMybwKvUyMmeKtubAtJFbJcnDuVdfbBZC3PdmO7hildZBBm5/fGKbTcJlsIXAbEVuFmnEgcu/FRvIkwITv5xStwQOfmOZT01dom22Em7PqZ76eCo3uJySGXnnNFlpLBM5Ugn6BV1pJaSx9YwmnM0kZDJlygEY4M7NHy6hYhyK9ku3ovsBlEg9UkJjejNuLboWD67JNR8S8t29S26dvY56jQXDFwPqx6oNpKuuHULmYg7XMZpuPSjNrs8dnO9W3i2X26ZuW8xaEmbY3M5ocb3SSW5RmeGWI3obLr1wMtsuJ4E5etXXq25XC6InPaJo/4ri7Bj2GTphxUskqrDHG7E0aALWA2jSMdf3qyy2XMu7huT+3HNFvxBG4uwSBGOKE5tQTkjp23w1N4JKS26Xtvdq2q1IVYmYZCO0cNepgS9wBMZX7NT8iZnTvHTZfpURBdlS3mQyHeiQttn5GesGRSiTHp0nZZO/L3qzSTHD2wOYN6IdWJyYdw1Qpstf8AHdcrDdM4iZNsbzTb8TTqONXpjfCVps1KzcH5TnzRdfxLhlyaeZK306n0qb9J7tXepm6Idrfbyw16kbgMkbBIYq+83L4VAhXrFYbhHMj4Yq4lLsp1MwTMG3dq71FxvK4yZdx4ii55CJh6MREdOlalXjIf6+9XHxJVBcdGvTEM/Kfwq+ZJ37DBjmgwuT7R2OMVB8ssPMfmrrbEECMR9Wvhx83wztqrTeqvzBw1drwJiHO528NA2iuoZGcn2p2zlJIzvVxaBOTOf2pDJFue3bioutj6mYjrUXBEkkwdMQd6TJEzkk3rPKFo9wHmSjJBYgDjrmiza+Rk7vjxXhxh3txvLhpWdsclolNhqutmMSjsGz0OtWWGC1UwwCzzvvVlozqlfSMBO8Gn9aNTOpmRX1dLpXmvi6p4tjvL0/xVqWtm2cuzGYnfiiGc7zE5yMtChEnDaisUWTi3BDxE9J4aVXeNwiDyuCri8uIz05xtuUaYwWk+JeWkvPQDmCNhIi56xSxszhxv7ua+FfZ6gutUYdTnrBznzTKud8bfd2atbcQKyT3yKbP5oyiMjP7e9SttsqzpBHbkn9abbT1GJG0Z2RknLTeWxbczpO5qUO9N1tpZnVzPgKtkVXI5w+pj1PNRe6rj5vKL1mrrnBdhwWxlAYK9HWS1jBNvvmgtufTDa7IgyPqng6lfPKY2lWJYZ5+lHw09SEkkvJp4q5S5eR1OMxFZExxJNqC7Pnmr0lUN9Wx13nmOaRcmq0wksLtv2o/5CZJ4XeeqcvelNOm5ElE39traTRaKN0YDfcx3CrVBuuu1abt5mWpuGTSJvnEx+eauS1icShbMSysNWpK6bbpLxTP/AGTEq9sFa7RbcDCwcudLbVw6UIZc7SvQmJikTUIYVPKw/iCm24tmEzpCHHUJcx9KRbW1gdOcXbYKm60Rm7ozL1HcmixhnYmbS2ByrumMzWgATUxcKzj5k/epYbUg5lKtuIwNrELDqePMlFqNqB2Ee/udKltCEgYhg422im8utuvw/Ny5jeeStSMTMF0vulMzEREsDTqVAeBt/VqBGXgXfJBkqLtUeoAB2f8AUVaWxF1y6pQnNW3EJOdprADl4c9qMS+lIH7Vm704jHG9XKRKzJ1x1ivh9PxWu5S475n61dcZzayhvvtgpXjwyFXWmGBccHmmNnnifY70OS3baCPxild0224z23KZiSORe/TiuOqoZw+9Ftpdxz6uvTu1beoEAInnpSTdcMM41QfXmOauGVlxm7PvWZN4YRJnfwVF1hFvEcg9vHFFzHOJ9J7rFG9slyGY64zWq11BiITAicjU51QdJJNTSSDF0DIx3mYa41W4zjJIcLwLQSiuFm5NiBk7cV/wpagA43IzmeOax6rlwRnIOJkIKbrQuiGCcRnGeWaX4YwqczV2+rbAH9uc1MzOffqpEyvYoutuuyuUJuiN+GjTktE05VMLJFPqlTjVOx7VlS2HC4h3JfIVqt3AC1hlAGavBtQ6luyPnbfmkvJtVnGxx260Pw2Av2xDgIuntmrtREGl3OP4tXiZ3QbenD9OpTqZ+HOrOp2nTEuKu+HbyCIaoDJDPd6dabsk6rV0LkGIiSIxvSFwZRdvmz3KNe6E50u0ZeKvRm0BBSHvJPbZd5q6YzqRydMZ/RazqiJX1RgJ57HBRY7TncDbkzK9mtTcbmCcOeelN0um3EM4TVmBOtRarjJMC2sYN99qh07xq2RHMbETWm/O20DgBynFY9Q7w4B9o3Xlr43w0u03IoXRieONhaG0wNuJdJbMKS+DilNPfoxyHdxxW7bPKJsMTEtSJsGLdwtghMPFRNhbJG3y433KLW0sXcxwM9ABDtW/EywyTjTBRcPyzqUkheMS1oDCQYYjtMLWqB6toTDlyQmDzReiqHLLaIjdJNJ/d68YT/vinTMXxmBZ4cSc/pWwfKuTYeMFF6HQBmcNM4PV2gzlxRpfSfK21mJG3lmTeNzrU4LodNaoyzLpI/RouTEn1JoZkYnritsyRy9OzXw9RsM7RIhXx3Yxxt+9OkjEYzn8YBojJiBFq4u3ldiMk8G33qfcyjM9+/irdS225ZB09aAhtjsbC8TRpi67Bzqmtt4eIfsxvSdAnbS/Uq/FpcDInMvPhOaMSRb3wdZ96tdzdYyMMR2qxUFlyh+ASZpTG+pD07PZcNTexlbd+cHHHtXGqcMGcdg/er1jT6hcOfevSaUwCYgxnvFBF2cN2cuD+c1dOmfljE56TV1wDquNkLsOqmRvCN9U5nb+NMWOS1TOB9TqdMVcF26l2M83eea3UxjKfWf8VNuAuc6XYfL2pvtJfVMW5UNLxkwUAEAf3RAGFzzPSpv0z6v7YQXURkOaG0T5bgjuPFaG4mIn26gnSr5tGZwshx0hwUq/3YxhduAkedqnNvYw7hik6hvPYYavB3kM74j67VbZbqyTmbrp285Zq1Y1GmIMsxiEjmrXZjkJYJgr4ZcMRgYAIlWnRkFDJMbHUrVhu9T3CcdA5r1JIy8vClXFyrMot0IA+MGM5oXAbjcMcsZ07Od6S2In0mIDjdOlu7V8N13OoZ2z+Z3oudTb65X1b2zlTpSIJGDfpkkjfNTaDHcnGYDbmrLpRlZldsOzPGKvLrzjgIyhvjeHarrbrgRNsiSe+NitBOIicGARZXevht2oMRh2ykHfzRZYzefLvpecxFvFN4MTdkYjsHlqwFtH1TDM9LQUnaK9UrcBNzx4etMnqAbSAPULlPtNXCIPyzNpvFuxGBxVmltbTJjY7HuUXMESqTulr7yuMVv3FzdIEyccdWrATVEZYwz0Z5q4tDUbc7Yd4PwUtryD80rv5Ymr0ubZJXG23Y61A5Y3HIZwGyRx2pWeTaMvTBtWq+ImYSLZJ2g3q9jcgU69MdulLPW12cziaZkHd4YnFBBEejuIK1pNjpCPPQotvzi0cfsuKvbcoTG/HDDXwen4rhubnljL4CjVMkzJnnsFFsaRA42j6bVN048uc0qRE84dvaa0HMu6/wAZotn1cZVT8Vl3RHbv0CrUVYVXcD3zNPxLSWBMJDx2oTVG8+rbParZmYAV6Z4abSRY4433ietbTblxt2nmj4kudHaUgZpLY0wm++OzQ4noyDx+HzWmx7MsD444r0gwQxv+36VNqyz1dX1O1XqDqMAi9fFXTKwsJtIb7uYpstDSnQeOVio+FvgNlgxjT3zu1aOBcwaWYju/ihi03MBg2zxQ36hz2VfTGONqgxmMGcnbc0tBpm5mCXBk8YzQprSHcYj/ACdjNDBEXTELkztPFLYYttHYjUZeF+6VAsHUwqcTng60/EFTC3RakmTJMwxzV6gKrF1rvMbOelBZ6sFvJkSZnPVp1LPqSbk3X9KfhWqWbXfL9/eo1hayfVJ5iobpdOcGcn6DVxbcFolu5JiDckpL4uZBhJ3TzTbq9SpKcOFB5YaQmYA+aBGIY7zVymqGbubec7JtmltwoIek0kRsHFFzGqbzHpYYiYniZqPhMLsRdLG+/qqwlgidUyQwm/G1Xlw6uOesbnMUihLBassc4M9elWlsSzbbtdpmLeWF5p+HqZtLczBA598lXDEmNiSTfpV5czjBg+YMZz+tPw4tcC8MBiPKtNtt45BQJmYYYXerbrYzNwgMT07Y6NXfEW0XInzbkhmMpNOqNUMcZPVOcS1NuS0ut353g77Rio7LA25cOQ7xWsVFsI4eZ5oHJ6WBg7BIc+GiwlTVbvbCGHZM4q1t9S28DmcdX7RVsilt3QPvVrYRzh5/HPTpVlvxMu9zvd9dqIdQBjV9fpVpK5jLw4loEMng374ai3duf91dwsSymI/ataHzQABqxxtRdmzmNpInBSizvsL1r4lsoL3SHL2FmrDDYz4msxklMasFagSYhzVzg5md6YGMx8oVaO2eGf2zVpeaknpgqF4HmArVYajHuz4igyY5xNQ5nGd+NoniviNw5FIJCetBlwyxz7lW9Akdg28kzUDG/wB6VZJSNGP1r1SQvHRx1N1pn/xCJmLWOlALsCq27YzOattJlIAkcz0AzUn7KET1aLrSEuHmbSZO3FXg9U4kl22iWhueV3zMMbPXbbim6xeG3G++/LV03aoxMqyn1xNEcbXCZTBt/utd1u+nJMTl3tOxEzWq0QbpHB5lcdYioLoSR3EjfttHSjPEp4mclEaQXGDPdq6GREY5yb55Hkq9+HJmOhMd3vRLLu9Ie8hS2kRxq9iRjH1p1SKTnpG7M16g09HbtMEZe1fLDOwEsEbb8UFkQkmxG5+GvQcWjnMh3Rp+GYbUtMAxnM4eKu+HdD2lFtUCd2iSXTMSbC780WqyqwMb7xhKLb9SAkKGOrubxzVxdcLv3RxCwMzNRdKf+Wxx1/VaEulmC0e/13KYblkN1QmMYenYreLJkS9iUOSXbv1r/ktNA6uXCTdjnH70shFozcgekx9PSUwsbN2WSHfP6tX3k6tPqGGfZjKZpbQu/wChhxGre6Gr/h3MraMFztC3c9qLfh6gYkEeZyDvt2w1HwlYR1HbU5yFNqzAl06Y3g2A/NXW2k3OmbZWX5cAc5KmywXpaMZ6QUtkaRDDjaHmH8VbNurnFvCLJhwjNKLvckRvsdMezWr0dYEs4OoP3rPqTTMmbs5nM1b8s/LLBK4zg65iKvlt9TdtlJmMIO/Rouu1QKsQbSZjpNM2yu2T2lCtdhaNpDdggIau5tRc5Pb3aVAPSFsL+DetFgsOJ37cBV2qCAJncYK12WDcAmJd+5G9LvcZ6eNuswRV6sg4Y9u5irw2u+ltFt20mE4PvQXS80cTFRjHVFxWhyhttitLBhWd8rv71yYlkxFDlhOsO/kgVpZl3/fdkoS5glyunL+lXQ4m0JGCPyU2DK7+JTmoXEHtub7U2yIYZZefejrh5DDPLO9MXT4m7CTglcUqhnB5jxFXLgljG+7QyBlMQ8Lg60a1EF2DfOImaWFv3cr0TxXp9QbRlwdcbsdGi5dKNuxEJ1g6FKYtlf7rj/4/XmCrrZ1IWx7Z/H5ouglUiDJ26U3Py5AmSUOJhxNKW6kcEpCeaHTcy91wMzEmKs1W3CLKS7zkNua9VxlwDbHYk7lPxTCMKTq22KOcFsnAx0SeeOlM3XSDp09nkiGi2A2yLl5qbi6JVc7nhWhtzEcPWYDyNMLaIwwZiricRnE4XPVj2q2yG50p6hn8Tmog4IEkRTMMc0ZiZbd4hi7NQJ6s2vGmZ/XHFapuZuFkSOatDSmMSgvPSvWmnd2x6lY2q9tsVlkZWcr/AIylTicdy4kOvuVdI6YI37RnLydKQ4SLj9omnWXFsrMOTEgQnWjTghY54ifYrBddOEezzjr4d6ek32gvCu9y43l+labS0bsC3AwuIcGXtUCsmH+3aXeXpRbcQHzGnLyuF3zTARqILTbJlg6TyVNxtc/mTkaMLneZjO1SGyBHBxOF61EuXIxpNh3Z27TTcOq7UofQzPeV8U3aS7MHpMztgrYUdwtRj6VesxkEiMh59qPi2wGomY3GeOMNOlTEkyS53lpsZLp2LRXjyccFHxD5cBMbsdYKblW5mcZMm4EBC1caXS9pyxtdHlxQExbgTKhjEtWswpfIObRiAO9JaQfb0odan4bOpkdnCbPA0lyOQwwTviHbertg9cmIz92gtD0bH9xWoDE5l3pZ3Pt+K1ERHUc/7rQh7TiCc033GO4SznsZmswD3M02md5y439mkiQnE1IQcgc7bGN2rS2II+p9+Cj5kAd1hPUQc81ZZZEYOtvvmZq+7Mxzs5PaaTdjBBsz702g2iZgi1PcrRJky8OOOJ+tXaXOJ7pn96tkN/KUXXAq5Df9OrSWpiX347xJSm8+UeMTNRa6SXfl9qcugXaGMmWhHf07p6Z92IKnUQCp+xs1ddCkqzpHCyrG9B8PYg7DHHUIpuPU9dSI5MStOpuuxpcXPpA6u59a0i7ekZkyPcmavutSFk4HpwbW0XZzyk5wHGoKbLbzLoXIbQ8UZmxxq2xJGYn+FXuYNyXLMZxitUXITG6T7C7RTZENwOZh32q2LYeBystW2lwW/cZ53mrfhiADjtn7zUWzAcYhgcmrrPNCl0xJ7feltmUCZWd0nmtLCZnYftxirU6WzCwuJ758U2swziEHbJu1qvODJsiYg8VEYCWZxVufS8yr0zM8UWCoZGZInmWOGM02zsZZulJZOk1huhSIJAYHHTaadWMisBy2vE80X2wQXMFqHVYQu3qJkATbYJZDwVY3WxBa3Z/t3k7u7liaZ06sZNcnQKuutGHKrOf9AtDDqC2Iy7sYmdlditMZngUy7dNzNXMXorxfhV2EattC3dynHYY4XiaB0o/2yHT5Z2F80aNTbDwAqMcDFXaobSIn9gnaOtLsN2ZTz2KVcKgPWOMmKtuX0d9UZO+8lC2szhkxK9k4KbtOF7yJPt12ra3/AD3rYlbhxDHFXAiuBPSeCJ6VcXoXcs2bVlxMZyZyzu1dZ8qPVehxVt1pNpaTg6rVpYCxbxtFXKpfA7VcyKsZJ48C02wHHQyPtRmXO2OneGlAh9qJ6JL7NWJmC0OurBtliaA3Chh56qnjagIlcA1GxHYr1EXc42d6LXe0jA/stAacASp/qi3AidRhDzwUepjs8LjvlWh453qbUztjOPaaym7yUlqRwROakZd57P35qLx9MhhbmB/SvW+hbYhXPEU/ELtneOlE7ybbkSO50qwvnTbOw48QKNayBm2eIZ4XG9ImZZ7R7lrK0tm+YYZXjpFQyfDLc7Tpwp5KvsvIQuMyIPPL1KtvBLZ2bZHrzcQvmgfllUNiXzO9aSPSvseU10Z3465Tc794q3a4NXOCZME7VN09Yl3Xg9XO1Te+lHLIZjyu34pwbDvn+DQu8ZxmZ8LWNpk2mN/E0xK6jzqZcobUad5DM4jy0iCXWgxs7TSh6ZQyHjie9C4QWeMw/eriwiNU4xJ0+hQ25nntttlrdYuBziJ6WunpWlstBLlOyjnAceauuVxq2wbS/pvWLrrLS03wKvM4/NFt7CnS407zGTpO9PxLY/45It9JmY43yP3qcIsJBmXG6Enam0C2IRl2zG2OhtG9F10u2rb6OQFpACcbyngo4CIl3lOvkpt4lhjRn6VEwImACMdt96GXiE6mXk7VGm1PSbGkY5nFWl+LZkyP3ky1EGQB1GHbLtTrt0npkVjnbhowsmEPp9mjRqm27Pn9qCDUAKrifeNvNX6ceex2ZzFeokbsGJhaHTm3xOPCO1O+pWWPxyUAjAYcH2KLmIbunPfmoyaZJhcz4X81bm6eMYl9mhTUZzmd+ffvQaptE6xAnd5q9D03HYKLbjJBmIP13+uKEEDB0mDq5q5mU3OH6eqi52HqANbG3Q29wcVwXR0gSmI90n87e016ZGTsYrUvVPGx0/Sv+Mzjpx9qzEZXpO1Kbm/l6bRzTb/2OjsH1auTC+zl6tbxK7ZZ38U68oOxGK3yxtE4zVsNoAbRGH2KubibYPOffSNWqq8/yJpllSNzbbrnYq1lnicGx2ihJYndwxL0iYKypuncXytNql1sTIyn3OVrUjKgeuAe8Kp+1Nu6v90587HeidLIyRynYCrbUzCuYlZpFGDEHqMG+93TrQtuDrnfrs5Yo0tuonoJcHdjFNobNsbR9PODaiM743R8d/ass24JA32q0uPULPu5jgVqVll/9oxxWFJhmZuUaTlMj3jeH9JrTvAS54mMhFX3hpz1z18LEuIqF1KgTg7auRmrbYkhnPG2eHakhd15d9u2autBJWe47p/a5q23j0kSBBXotghAFPq5ZzwUpOJAwMw747Z4otHGNnHXGRoSeMIkwdxKUTsl2cdGW7xvQmrUJGdo3iTakOGeZ3x3eWi43uwMBzcE/WcgVvaY+b5XeTpwHBTc3Lhcm/36FAHTPW7HXsrmpwTniHA+PzXHpmOpKnGSec1Ex5QDzPbarp1DLxLOzPvX/wBrYZNLsQtKrjzEhGKi4Ltx3mEglN4HxUwXElrOD64Z+7RaLFoQddzMEd6VdS8C4fvfUG8285wac+1ZYgicxHq/+VabLrS2bXOBcbTDQZgYmYaNQ3eMylE2nO/g2ntNDlDIhCZp1MYehxFa7tJpRc7EE0ITmd14pHFkQ4lr4buM/wA70WGbrYmtK9Bnb74r1TOfdx2MHvWGfx+jUG8WnTB9qtg3rEbsmJjvRdOZHvNFvDmDY343ikNkMEGK6xvjgfvLQkH19TztiiejgwUTGkl9vYVpzO0Lyxz3q+YNUxtDjyTTpD5XCYcfSm+H09jijZtMmA3eNiol3TbUzE8uqmUhOmM47FQHqA6Sfo5zT8OCHs7rzRauUQ9Q+Y+tOBNOQiOP1jtWqQbU5d07G+etaSJxaPL+7jvmrgQX/wBsuOch071qXMBhFnbthq9ZMSsRNCK3umPUt0m/OqazNy7zCnD3PTSqxCQfKT4auiLNxRhmHZkKDT6YR34D2mlSUzEQnhwMNPkJ443Ynhq6HJgIesbjzS6tMRO2Bn93mkF7ZuDttijU8hu/xgHtVw4njdYXbMxFRtmdgibpZmIPekbgSGeuYwSu/WvhsRAYQSOcQMRT1xC9+larpSY945gjasZWQlkc/U52rJzGCKhmS1YyKOdmp3jM5CXGU9quuyM4JdZq93+NLlzGqYiJ9tqGZfOMA5nn261CAF4TA/X2q3VBpjEd8GccVqNMW0WSIbq5265WtRLd/wC2brX9piaXEaTG59p61dd6nONwk64jpRbPQwj++3NWXKTucjc798UpbcZyBEnWN9jtVuItItMb+wdPzVupca/um8O9W/LAkQQ9cd6zlzGHqdSBai4dSERJjvzVuJCIEcwv5q1viQul6EcFIJkJjP8AGUKLxMr0TbjilLrHaf41B/a5nM18SEcAQzgwdsU2bEEGP2n8V8MECAmHh/BTx8S0OD/kP2pEznY/xQb/AKrWV7/zdajJzNWpF2ZMjz+rRMzLyszj81EAxXcMdTPaDerRd+k4PtkrOIziDD2NirehycUtzKYjOOm9G/UzH14rRjYeIim3233kq1dNwd7Yl36UdI8AfrTcb4eQWfKzNTbtgkTz1PzUM7QHAey0SGn7bH71dbbbAluMA2mXikCRNoUnmtkmGSQfOKEIx13GTO37VpSCYUjODeDgouQNuwoQcB2pQMEQE7dMTWyLx1PzIFAY6n8aUGcxvqTjjnNFmRfT3nwMy0NsTjbIMTjtE1quz7YVz7TUMgwxs4xWsidwM7vBgGkmZB52O29XWmQLfqeM7UamWbZ2/Q8vSjSTCwe77ddkpbt5vXff71/d+n4079mrrsIvfLQasio8P3GtImyYAH7RNctpMsDCKfmKNPYwO811QeUYzEULuyTgyxd2/i16Qsm32jHtHFNtp6twZljDg/YpmNwdpN+8UDaSJsslWjPq+rM+3UrVnTBzgDL2pRm31O/pwz9KsbNw8Xd9yKC7SSCioRn2FxWo8xusda0OIB4kJ7ZaGy21u4xk4PxG1RNzFrhyA9XBRa4WbaCwJnHBPEJkyUalxsMBzGabyBugEicPBs71quFIT5TEvG29OySK7k+zQ3IfPBiAehj+QVoQI1OF5awaTAMQ9qtvtxcCdznG/M1bZclvLqfVDNIfLG2HFMfNd3sk3ohYSMhpecYip3k2Uj96brs2u8RnPhr4bnQveXNAO0VsuQ2jP3q0twHHMbccDSM/3TuP7Oakj7Ud2e6z5qefx+k07czn/RH3rbftgDrTCK57xP1laLdnJ0xWAJ+31alObtPZgrSSBnfhpTmcJvH2KLAttPB+sDRd422qXh74feaHSTt4296jiCNvNKJx4fcIpd5z2/H4jeoXEPgKJlthnd/VaI3k8BPPmi0MAnt+uK08qcSd58RUW8bGzWRyTnHXtQkO0dnfcJ/Fb9n6UMyvQ49iQq5ecmLgQjsvFW3ZhJnPGcfyaElFzEmY+ucdKGdsRgcfXH3qJhDDwYaLVjjdk+8uJq4YzNuTj7UzJdcYxj9agFzboWZ2HBlyzU73XT7u9a+sl0TH2pnLckzMRjvMpQEG01Axm7TjH3xmrW7dl4Ynruzkq48TAE7D7VqOYz1O+am5zk5T25/emX5tUE8Y6Q5oJz7Ty7b1My+lY93DTdGHq9BfcCheiOc5z55rAMLEu0ZHYMVbduy/NCY++OMRvQsjHLvsYnpVy4M9O7jDtXxbbSHEckERTPcM8NFrc5shzxkZqYunAI5PMLxU6bmIN+V7lRNr1/xzzRKSdXt2GM7UTg6yy+80XCY07Rxj9ulGQmMSanYljihO4GJJyHmKUlFcuokzPRofSoxgMH2f0qSG4LJJzA/Wi62WfMpxuTRF0smd6tZgjfmP2q27Tbp09uWhwrd2qwfkHvH+KS6RRN4kqDtxh/OaZeGSr3YZSmSMzk5q6Ifld5tuBpUCdXYV/wDzRYOQe+KsuLbpkSZjSx3HakHfjAzP4mt2feR+/FSAqz/o3ay+2IDuTFJBLtITl7k1ai9n+YKFJyc/wq6SYZOmZ35plzJ347VKwgx/GiSWM9Mk+Qo2EmTDigWI27H13oLj3xmJ3mIp0sAELvt3XDTnD3Uqfl3jEEb1baMkRwn5GGhunpPfHdCnlDHhfZr/ADTAYwbJHjeKtMjgibskHU4KHYt3ZSHtOGo/OSf40W7RxyEPl6zUXG87yZaIy8PJERlGoMvQ46YiasfSBK7ETOx1+1f3byrMpKO6y0p6ZI6CP+GsXZRj6eaG7NprlkTOeHVOa0MrERl2/SKer11E567q1bou8ZtxjHbE96dtWYjkMY2MxQMmFzbtidsjn3o2gxGE28kOfFXWbbhgcQhTa6WQlkzHBBVt0RdO+Rj3x2qxFQwZcJB+CjfswzDtmEq7KdpBB77VaZCcxsQjG1Rbztk88b06gkzx1euJq23Y26Z74KbeAiQZiON2YpWM9NMPTkM1dlh54uD2Ya+JYGcjAy46PmnVM9EnJju1jnOCalxu46z2zzG9F93YQmtO68hl8xCNKSOz0VP90uFbs7OTxFAO/VTfs/5q0VljGFwxWBleJq25UjqoWrV6qCGOEz7H2ouc8vb71a72kdWpJnETERLVgb1xaTjhP0qEYx1gPvVrdmHDtNd8+3H0p7z3GMVaOoPtDFQQ1xbPt/itTu44mKAyrn6znZ3aZ3zJD/qsjkWo/Q6rUJGrL3z3rl235iaLSW0OM1thmPH5ox2Or9JeKU5V2y5+tROY77fcrowHn6wFQsORznZ775olYWHZirCVgjfrPVou2VnuftUmUefZ80gQsB/aO3aKfLjP+6uzv3yz+K31OUVmdu88VybdSaubiZmcMv2WaXGfu1v6vwfmKSITB1j2zWNLnt/sqdpXt1txxSyHGEDrttNLGFH2Kl2HG8mI8EAUEMeMM5xzNDEm/wCueZoj1AY6QgYDGxUPpQ3MY7YgpuRjCoXbfgrVw9Ov4ptMFwZEBz5hq8Zlhen7UWmYxOMGxwExPSo3GTGLXr788VY2TYkZJs/xO3ma1E3GRUkz5zQIzhTfaPl5louhHLttP32atUwkDjmN+lA9VjJvnu70BOydzAnY2qBJOfpRDc4iFh4352q0JHMzqMVbbbICacBlqXBsTxPvmrS75s9gaImAXnq8mZmoxiOCYmpOunvgjOYw0qxMwQxPigQEzxCx1KLcI8w1ImrHjB35ipIyIch79KCW5zn/AC1aXapywyvfqUX/ACrxirDc3envWYl7R9MUsY6m7mHs5qXEncKv/wCt30peeMTmm1Uf57VLk/ao7UW8G/Qp2cdm6p3j+cxTljj+FSaX/X02KZ/bvVxE1AuA3nEdJriWOirP1iaNKyaeWMd1aJ/W39yncynBBvVwfKxnhKU3zPcaMkkd3f2auHJ2mX8tOZzno0yFxDsfn2oDiDH8zjxV1p2O36KUXQZWdyoSU3n5g98y/Shw7MBD7YzUmrf2ee+xWPeVH8p+aiImN+TvMVJJnvn8sUc6cc8dPBUjP5lh7S1dqXJjY/0Uy4JmMzV0zJk6ff8AyVJuo5mF/OGi63OYMb845MFWONI2pvTeOVf4cTTp2QlmRMPNSZDuR+k/QrsQ9wH6Uj6tjnJ+hFS7eCd+M1AMS4DGTobVYYMW7An2z+OK1T1eh9TMxQXbpFu7tDXw7QbUw8Y/FWxgJFMGTO3arbYBMbH6E8FCuIufvt0/FS3Tsz3mm3M8mNjpvXMPOCrsMfaKLiZd5I+s0O28nOe2c+aVWA65zkjLL9aLrt/bu5MUIj9+jy0SDskhGGvVhe4PBnjek4JSFN6g9RPvwd3q0smf99J3nvS2kgm8p09moZeOO3TLXqyp19/CxVtoqIbuMNaVVk4meu8hTqLpTkaypt5z1+tDvg6ZcTUm7EZZfvREsPtvHii22YwbQUdX620vP3oM5y4KEY+tWuJnx/qkpMq49qLfrmoECvsYkf6OQjxUuZ4Taf3qx2z7n7M0t07+y1MM95/jNen/AEmftVhHynG1tQfj9isP53Pzkq2fzNarsdemp+tfqcfoUccEHEftRZ+mP0oyQe7TML1xNS7yqdWf1im67vjqtM5IXqc8d6d+M1crMzMZIV94anIvnJHdeKkyMHeuemPcr0kFsDtxXlXef1/xVr/1md/SvvvTqXvvkq65mfYVa1Ry74Z7O1WhkOjtHvVuNh6HcnmcO9H/AG3Jxz0YN2mwYgg4lJKJQye2X239qk/uzjI9I44KicPTH4wtDrEmJFc9MPTwU5SYyuUO7NdVXEz7dTmlnd3/AN44Ku25nieXDE4SgjOE2jG/ah39mT8DW3/Y3wDNQoCsUCrvvv8AdoJjJL7wd4pmJjcrSKag3wKU3YY8RJ32qB35/mJ+1W3YN4758+SgcCzC4z1MVcSAj7ym+1cbI7SD0xNaSccDwj3pMRxnh226e1YGM8EZGnQQ89KLQcY24qJQzM5oIR+hH3KGJclXKjs8jRLmUITdq28m4k2zRlnBvDVyYuY42q7t9P3rq+wxWo3Gp3fJtQSrFb8D2j71O1Rj7ZKG3EH/ANf0ohU3y03McGwpFAP7xj2GlIXiIZ/pBDldiZ8tdIl22pAyhHUKZYjbOP24rnK46tWu2ccFanKv3/NLvuYmJok7cYftVrtHGcM98VhiRP503rBARjx7Uhz4Rz55oTiI8/aSkkYwswD+M0TsY6H2/wBVGOzxitLNcnGZ/wAlMmPz/mhPPasbEZ7RV/Ezz/ponEEb/wAR+9algfov7zFCZh6v+2h3TaMP4j7pRnYyy7fWt5SHcmk24IXP5M1fn6bn8+9WXyQMhuEdeu9L07YDvSRbGehwDHSrTLBzL/CpmFgjOX3YpTOVd93HGKtuxqHfmaDI4/tjbeMUJMDBivTv6fpvUqCZu4cT3mktmWImcn7E1m7hxT08b5yxj96sLV1cLiPripEUSZmPphq1Fm1U7Oz1M1MwF08JWoyiR5fOaQQ299/ZKbdvGP1ilt4McUu0cmIoiMEnT9oqSSPrWcZBwyfafxRid/evSMSGck/YrlHHHFY2Yed2tSKycwtXYxF1CxORr4l2fTnvdWq6rvasstMGfv8AsU9c16onNT/CsZ28xTH36BT/AA5pDD07VqiJ7YaHEHgz+ClY3X3mo585qFOHj7RFdGXt/ig6fSnaHuRvOKVf2nG0pVq/5/zWpiP50qdvtP7FXIvvTIMDimaH9jH4mvzM966zA7ND3DcnB5IgqI4+pSEEz0hrUQE5/FTGPDp/auRIDuyHmrkpgMR785o0icc7H2oudx95r1lrdlJrKTv1VqH85MVpnKPLMZeeaT255D8zQzJsccHt0+lF1x156/YxNJ/dBjp+KTAAz7L7Ujh/f8U3xz09+mFnxTv6f55hamZnKBklo9/5mRydKb3jcn/M0Tzt74KZ5cdc02osahwxvHmoHYwpiKLXLAxEwNThmSJ3CoiINolmr7l/eTNGmehhie++ag6NYz3F8/WnTM8cUg56GfHtV1z5aAcE0PCxxFXDzik5zlR/arXfJJyfwpBxtvjJxmljBM8FRLOfP2npUQiCOMFZxJ1Gh/vDtioIgh4jFKZKZFxQ7pHn9oqYr+2e2kj8FTCc0dc1nfvigkHczEbV7tHU68R5goT1YHGc/mh3P54YqXhJn/OaxFRh3OOemzWc71HSTjFBA56fL+CmcMdIf2zVobi9ArcZXpH+a1McuTEvnNI9FnEdaN1OopB+8UkQMcS53781dq29X/t/ehcucY2xwc/ajGc4QhN6GIurLJI9qmYlxVmcJLK9XbE1mVZXfdc0u4Txj3q2es/yM1ndnfmf3K6PjePvQc9qQy/pV3Rn3/zWp9PExE/pTw9stSQ8dePxFKPjwZpTcZ3iH7G9SxG+/wCM9acQu1YhIEhIjzjpUm88eXtW0YHtv+Zaglny9dq9OwEyTsUIJCMQ+n7cVPmZzutAkbdv8FdJnx+7vQLF0TJjHfvNJj7efcpECUocO73/AN03jKJ35mXNaHYPeJg4pnZMdppYyMMmKuHZBOZ3KI2265fdq26JHfpDTqWecoFYmptiecG1XHLHHac1/AfbelwRBig69Kzh9+KFlcvNX/8Aa2o337tIR1Xj9qMbc9KOXxL+9PDl6VM9Jzvmux3pe70K71dusFLJLHSUpuoxufb6BXp/aWs7tD3FqIA8bHuVh0xHGKTbY9oqYtu2fPtin22puUaxknmKUXrlxjHVjao2OeA/SsxL7V2M1xAGOgV6crp5H+RSYz3gq/VdqTf6EVjlz2/SY61+xGV7Zq23M1HPlf8AB9Coe2RIqcqvd7938UFvJb0k/TamWN/v702jL7qfvSGZOEzzxUGMeDmhMhD1jx0rJ+322rMqTxPHjV+lGR92Qx3WrrhHaIFn9/xRnHeMSVaDVpxnH++2aP8ASedsNEMaduM/iof4RSnc2ZayzdLEZ/GazyTjmtQSnf8AjtNTjkw4jPirndcvGfFETt7sfVojOX2rE7MdYpxDxhP0qRzitzM5e1ZCTiN81aYEU4YnbakgkwkjFGDA9GKTvtz17tZbjvn9aIN4MpU46nB7Uaf1j96Oz9IoCXZ2oOaGc+RKv6fn9qiCZqJ2muIWk6+T96bu/wB6wcDSZzS3ZPNEZn3f8Ue9H8R/FGM77S/vUszvHUkp53o5jaKd/v8A6pZJbsxBUZOlRAfj8RROO+3XnbehoHLvtOFrPeg/Tap7vWhJK5QDq7Qd2t4uzRa9O+33aiO2Qj96TtW3Y36UJPGeX8jWMqC99/xNbvsZ68c1if0f0Wu9RmshvsxuRTbnbvUZCN4Y2+g/Wp/apZlzzx03mGgyUy9TCj/H2mmTpxRPdODP61dGFh6LvQ7MHbs9q9PbrttQhHy9D/FXO87kSzTjnGHZlo4nzNdvJXb7b07S4HmWiZ5DYSPtUy4Z3qb4zLzUndKYevc5+rmouZ3/ADUHtAxNOUjPXbHmjUgVe7XOMAXVPLA8T+lE9Tlw1k3cH0oQOv0aV3tc+aTD9/8AM0bAVPmmTf2xUk6qYqx3tz5rz7z+tYxz2r37Ur+WpzC/j710+stSTJSUzTMrsZ3CKVepxDXE5rPvvE/irZw0zigTPifzWOPeMU5ifOWhff8Ambqkz/Djjbzihznb+PFAYf0/3WE3/nkK3fqyv7VBgrvUuN432a/ih+XmrTBu9P8AFJ2Z26NYeAKDf77/AHpWc9qjnfChE0qMbEe3StW5PT2rn8x+pX8GfpRP5MvvH60mTr/NorjFPUexB9aW/M91zV2pV++1ZjM074ejO/2Zq1PmxJgd3p6Y/pt/v2rUyZfvNLwPeP8ANW5yfWKl23O0NS7+81yG3v7Yipk+32o6RmD/ABNXdyl6+clctIRGdwKk26RANTjq7UGX+TwUbcvQKPpwtSZRw5xUGwHiKQ1ODtmi0iMc0XK4y85mp5IrTsHeoxUMd5qF2KJTjhqJ3esV8Ix/ylPbvisQ/co5+tM4I9q/3it5z23p6w0P4jNdvNSKcPG1RHAUxETS2o1v+7WKOeImWKQ/WnSSE4lD95ow5zUhtE8p+MVnJP3aOq9xoMyedVEmecVnH7/ip/c4+tTg9szTGGcdTmpSoOYwFRx4ignJ9Z/3XSnpXgfap7dX7VGCSK9nn/Oa/nnytQkwd2tg+mHD9aXH4aIkij7+SvSxgJxx9sVu8+Wm7lWOX95q20UxHbb261MO+UjnpDuy0oDHbdKtWcfYoE9RKdcsVz15jelobjaawURuR7V46hirDzFO0EVE5xOSnuVIkyACZpU+3apFHDTM/wBv4KWvTiKJwRHeu5DU/fvWqbp7jvWhy5rP+KRifanjE7xTmcR3Kg4O1HRoO3eo/kf08ULTtwdBoenTYrw+c0G/FJmeN/8AdRtj2qT8RMYpGvtmlH9lpnDnj+W081/jOacz71y58U7557/lqZlKu4WDu7eZqPmwdP5NGJh44+wUtdWhU3c4y0gk+Kjp/j9q02+3822piD9T2KP9Ifj9Wtv2moDJ24/M0+cV/MUz34ou4IzEd/FJgc/zo0o/nP64qy6m7LLUxOaJTmIfHiKSmcFYEnbB+0ZoMfsEV3K7+Ce9auZ92ssd9sVLtQpTzB1jpTzj3j8VA5mi67mZmsGcnL396PfegaKTMveiIiQ2az3oiU96BpQ4aYcP0qMtEZrGaTFOSusRUC8dnAe1MyEVZ/1oHj6Vjeu1HDUFKU8V34rS/wCIioZxmnfajmPP++Co4Kg7UZmPNT/lkqDj+eJKnP5Zrvn6UvWe5W3WKfao/Ro42jrQ45goOQpecvDR27fxr2OaY8tDk4f5MFEdj9eKZVYDmSpw7vlpzDmrex22x4xRnntSYmDMkgUMbPSOnbtXV6R/AhrDKHep5/nsU9+u1K+atiMUxtSd8/zesdusUx0KjOeOvtWMP3mjdajiM7xWcy03eeD+TURBGe/FQvZpF3mnkplIx5q3MuJSl70xUkjJitq8R1ooWknae/8AmhMb+KhWm5pj0pWMmKCvUyxSuf6PW7/7Ndc0b0T0pXt3Z/eu1P8AmiCngqIg4xNQ01uz7rUb4qZ1bdD8US9aRn7tJ2/naK1czXuUFB0+v7Uxx+/HM0UJv+f0pntScx9aIhSHiftVzQZxRl5jLufrNT4MZa6vj3xBS/px+aSfFMzLTtPXH+JojFNL1nz/AEEx9YBrFNW3P8il2kzNE4iemGiEGgMYrSz052aTlO/JS03Kyz3x9OKePNdIrhaTH3CtorjGPco355RpjfHmT70+0b17NNwjzJ9aQDiP6RlcNYKXiSorVx+tRy1aTGxUvNW8eeKGJpD/AFWKTnNXU/0anv4rMYrOIqNt6OZwdf3q6Wtss19ImsrP9Z5xSb0wfz8Nd58tTlSPJ+tJSZnjrRBDBy7zNIOZPZ+qVdDL7/7rG59Q/p3ohxgqXfLSpv1Mv9H1QseaVit4o52/Qrr+a3U9/wCg+9SZxQV+KTD7fwiaU3/X+i25z5z+1crPn/NbZZ4aTNKbtWyQQnbNdnvW5mj36b0+3MUJvQbViv0qc0zhzzUO+1dH6lPB9yslZ37tLzk70BvXWuN6Oq0z+KtWiN6lYKzV880Vb/3qd4KSianND4+tLs0ztTSBO3E1LtmoZ5qY70u1RRHbtNFMV58Zpzh+9TmmruVnhmpJ6ZXHFKpEVdHP3nNXTjfpj9KyrvW3SGCh46SRip6rzu10odyuzTgj2f6lqxTsNYKkcsVvD+WpNqxXL5adv2r81hZZr7/1UxRiU7xmKiJxHH9PZ7FEzTXGaGak4+3P9IMx5n+k2zn3pmopjfNT4prDXqp96704z71w/n+jWZp6Xff9/wChFDTP9MbrWKio8f045oxniOn9JjNKzvWd/B+3NLsUEjBNC/4KOp9qZpJgxWZNq0lWpyL96nNXcFKpl7128YKLmPp/GlP40pP9uJ6UHaOxQhUwu9NYj6VIw4q7ekXrz/n+l2k1J7be01y5pp/ozivsMk1PUihdqSnb8tMRStIM9fH9GvpRj+nFJXWg49qxK1maO1TNRbvgoCloA/pdDXXHH9D+nei6IpWoaZo5/py3VFe/9Arp/QVBnqVc9WaYaxTvNG60HNG1T7PSpa7x3/1S5jMZzUealpuP40e70rtUv4imdQYjesxMbUOQ7TQ4/n3n+kZcNEVHnPT+jSHmmpp2g+lE58zUGcvFY55fFHXB/OKxzU1E0PLFTUUe9YiaJ/o1BX2rq5n+ku9B0rpU0uzScf06/wBJej/R5RaElq6UbtTOMRBwURsUb1HAUdaUxtTzS9P6LgnHsURT+/8AD+ktTP7UYjap4+1C1EUHavNJTP8ARu8bVmuaOKaJcFOIcxFRNTvtQs0qcnSlqTDUPag9/PHin3oDt3o5KCpmYrE0yVsYntUEVzRySeK+v3rauKSKTrQ709c1PaaWiVWon8Vj+mPxT+9SdKGo2qZyUVpKE4is0S1LvQdPFQ04ziicV96u6n3pHf8ApHK09c1BOP6OGj+RTwNH8ZprCdd5pZk8fzinvX8aOueajMJ/TEzR/ArGxUYo7ZpYxT/GmhcUBhYqHrURRLmkmf8AVNfUrpNF2fq5KVmjjfsU25mPH7179IJqaMYSmZmsbUv0+1bM4omlK2zW00doqanH9DpjaKlQ4rIczTIf0iczTz+KgrP6jXehxJNTjenvTjpScw0zNfapaPBWYrH9YP6IvXFDEVheCn9qkGvtWmV6o80pOYmrgZDAP1pSesc9dq4969MmJn7VxzhqPrFM022t3BSB3rSK8UiHXiaYnq/cr1BzVsbVOr7y1M9mH3rSC9cRW3WYqD2moT6/pXJxH3rC8VhpApLgxnJVxB4rVbNRn3MUsxsUM9t/egWJEpvHpW1PaEmmJ7DXqttjLtXHeKReoxS2r2rEzy081ltOrV7CcuM0grsYrNIM1Fs8UuaUUozbSaqPYzWa03Ru1FafEo02ivFZClxtBmpJ/pHtQsc1GOa38L7UidKgn2px3JrEm1PvFWPH2r//xAAgEQABAwQDAQEAAAAAAAAAAAABABARITAxQCBQYEGA/9oACAECAQE/AEHlVabVGlTLTYlTck3sOFjnhG9gPCKqhp0vwF9RQY8K88qEBXmGN2LA54skKuqWOgdgaMKPN16kePHUDyFOjnyksPHz1A2Y/J//xAAhEQACAQMEAwEAAAAAAAAAAAABETAQIFAAITFgQEFwYf/aAAgBAwEBPwAaKvdGKPaHnQFjcwWlA7PVXYFV0MRs205WYeKe8MKOEYh4hdSeceJdORUdKWHUIwp8Nfpi28AYZdmHUBt8aZt5+THxBF//2Q=="
            }
          )
        ] })
      ]
    }
  );
}
const button = "_button_1ndxo_1", closeButton$4 = "_closeButton_1ndxo_5", styles$G = {
  button,
  closeButton: closeButton$4
}, IconButton = ({
  icon: rv,
  disabled: tv = !1,
  onPress: ev,
  type: iv = "button",
  style: ov
}) => /* @__PURE__ */ jsxRuntimeExports.jsx(
  "button",
  {
    className: clsx(styles$G.button, { [styles$G.disabled]: tv }),
    style: ov,
    disabled: tv,
    onClick: ev,
    type: iv,
    children: rv
  }
);
function truncateText(rv, tv = 10) {
  return rv.length <= tv ? rv : `${rv.substring(0, tv - 3)}...`;
}
const CameraAvatar = ({
  id: rv,
  name: tv,
  active: ev,
  micActive: iv,
  videoRef: ov,
  isMultiple: av,
  onPressNext: sv
}) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$I.container, children: [
  av && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { marginLeft: -10 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(CameraAvatarIcon, {}) }),
  !ev && /* @__PURE__ */ jsxRuntimeExports.jsx(CameraAvatarIcon, {}),
  /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      className: `${styles$I.videoContainer} ${ev ? "" : styles$I.displayNone}`,
      style: { zIndex: 2 },
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "video",
        {
          id: `video-personal-avatar-${rv}`,
          ref: ov,
          autoPlay: !0,
          muted: !0,
          playsInline: !0,
          className: styles$I.circularVideo
        }
      )
    }
  ),
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$I.micIcon, children: iv ? /* @__PURE__ */ jsxRuntimeExports.jsx(MicSmallActive, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(MicSmallInactive, {}) }),
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$I.userNameContainer, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body", color: "#FFFFFF", children: truncateText(tv) }) }),
  av && /* @__PURE__ */ jsxRuntimeExports.jsx(
    IconButton,
    {
      style: { alignSelf: "center", marginLeft: -150, zIndex: 16 },
      icon: /* @__PURE__ */ jsxRuntimeExports.jsx(LeftIcon, {}),
      onPress: sv
    }
  )
] }), useCameraAvatar = () => {
  const rv = reactExports.useRef(null), [tv, ev] = reactExports.useState(null), iv = reactExports.useCallback(async () => {
    try {
      const av = await navigator.mediaDevices.getUserMedia({ video: !0 });
      ev(av), rv.current && (rv.current.srcObject = av);
    } catch (av) {
      console.error("Error accessing camera:", av);
    }
  }, []), ov = reactExports.useCallback(async () => {
    tv && (tv.getTracks().forEach((sv) => sv.stop()), rv.current && (rv.current.srcObject = null), ev(null));
  }, [tv]);
  return {
    videoRef: rv,
    startCamera: iv,
    stopCamera: ov
  };
}, CameraActiveIcon = ({ styleMode: rv }) => {
  const tv = rv === "waitMode" ? "#989FAE" : "none", ev = "#fff";
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "50",
      height: "50",
      fill: "none",
      viewBox: "0 0 50 50",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "25",
            cy: "25",
            r: "24.5",
            fill: tv,
            stroke: ev
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: ev,
            d: "M16.947 32.576h9.89c2.443 0 3.86-1.379 3.86-3.775V27.66l3.414 2.89c.447.38.913.637 1.37.637.864 0 1.464-.627 1.464-1.569v-9.937c0-.941-.6-1.569-1.465-1.569-.456 0-.922.257-1.37.628l-3.413 2.9v-1.189c0-2.396-1.417-3.784-3.86-3.784h-9.89c-2.359 0-3.852 1.388-3.852 3.784v8.416c0 2.387 1.408 3.709 3.851 3.709zm.313-1.712c-1.483 0-2.33-.799-2.33-2.34v-7.797c0-1.569.847-2.34 2.33-2.34h9.262c1.484 0 2.33.79 2.33 2.34v7.798c0 1.54-.856 2.34-2.33 2.34H17.26zm17.564-1.873l-4.127-3.376v-1.93l4.127-3.376c.086-.067.143-.105.219-.105.104 0 .161.076.161.21v8.472c0 .124-.057.21-.161.21-.076 0-.133-.048-.219-.105z"
          }
        )
      ]
    }
  );
}, CameraInactiveIcon = ({ styleMode: rv }) => {
  const tv = rv === "waitMode" ? "#43464E" : "#fff", ev = rv === "waitMode" ? "#fff" : "#323845";
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "50",
      height: "50",
      fill: "none",
      viewBox: "0 0 50 50",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "25",
            cy: "25",
            r: "24.5",
            fill: tv,
            stroke: ev
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: ev,
            d: "M16.947 32.576h9.89c2.443 0 3.86-1.379 3.86-3.775V27.66l3.414 2.89c.447.38.913.637 1.37.637.864 0 1.464-.627 1.464-1.569v-9.937c0-.941-.6-1.569-1.465-1.569-.456 0-.922.257-1.37.628l-3.413 2.9v-1.189c0-2.396-1.417-3.784-3.86-3.784h-9.89c-2.359 0-3.852 1.388-3.852 3.784v8.416c0 2.387 1.408 3.709 3.851 3.709zm.313-1.712c-1.483 0-2.33-.799-2.33-2.34v-7.797c0-1.569.847-2.34 2.33-2.34h9.262c1.484 0 2.33.79 2.33 2.34v7.798c0 1.54-.856 2.34-2.33 2.34H17.26zm17.564-1.873l-4.127-3.376v-1.93l4.127-3.376c.086-.067.143-.105.219-.105.104 0 .161.076.161.21v8.472c0 .124-.057.21-.161.21-.076 0-.133-.048-.219-.105z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: ev,
            stroke: tv,
            d: "M29.562 33.095h0l.005.005c.498.468 1.304.483 1.798-.01h0l.006-.006c.47-.486.504-1.275-.012-1.774h0L15.727 16.192s0 0 0 0a1.292 1.292 0 00-1.797 0 1.23 1.23 0 00.002 1.779l15.63 15.123z"
          }
        )
      ]
    }
  );
}, CameraButton = ({
  active: rv,
  disabled: tv = !1,
  styleMode: ev = "callMode",
  onPress: iv
}) => /* @__PURE__ */ jsxRuntimeExports.jsx("button", { disabled: tv, onClick: iv, type: "button", children: rv ? /* @__PURE__ */ jsxRuntimeExports.jsx(CameraActiveIcon, { styleMode: ev }) : /* @__PURE__ */ jsxRuntimeExports.jsx(CameraInactiveIcon, { styleMode: ev }) });
function CloseIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "20",
      height: "20",
      fill: "currentColor",
      viewBox: "0 0 20 20",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "currentColor",
            fillRule: "evenodd",
            d: "M10 1.818a8.182 8.182 0 100 16.364 8.182 8.182 0 000-16.364zM0 10C0 4.477 4.477 0 10 0s10 4.477 10 10-4.477 10-10 10S0 15.523 0 10z",
            clipRule: "evenodd"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "currentColor",
            fillRule: "evenodd",
            d: "M13.673 6.327a.909.909 0 010 1.286l-6.06 6.06a.909.909 0 11-1.286-1.286l6.06-6.06a.909.909 0 011.286 0z",
            clipRule: "evenodd"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "currentColor",
            fillRule: "evenodd",
            d: "M6.327 6.327a.91.91 0 011.286 0l6.06 6.06a.909.909 0 11-1.286 1.286l-6.06-6.06a.91.91 0 010-1.286z",
            clipRule: "evenodd"
          }
        )
      ]
    }
  );
}
const closeButton$3 = "_closeButton_1ke3h_1", styles$F = {
  closeButton: closeButton$3
}, CloseButton = ({ disabled: rv, onPress: tv }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
  "button",
  {
    className: styles$F.closeButton,
    disabled: rv,
    onClick: tv,
    type: "button",
    children: /* @__PURE__ */ jsxRuntimeExports.jsx(CloseIcon, {})
  }
);
function EndCallIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "51",
      height: "51",
      fill: "none",
      viewBox: "0 0 51 51",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "25.494", cy: "25.165", r: "25", fill: "#FF4C4C" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("g", { clipPath: "url(#clip0_2198_76829)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            stroke: "#fff",
            strokeLinecap: "round",
            strokeLinejoin: "round",
            strokeWidth: "1.5",
            d: "M16.93 28.094l-1.734-1.734a1.635 1.635 0 01.104-2.416 16.174 16.174 0 016.762-3.213 15.938 15.938 0 016.935 0 16.175 16.175 0 016.784 3.236 1.635 1.635 0 01.11 2.41l-1.734 1.734a1.635 1.635 0 01-2.15.162 10.497 10.497 0 00-2.028-1.22 1.634 1.634 0 01-.96-1.479v-1.468a13.075 13.075 0 00-6.934 0v1.468a1.634 1.634 0 01-.96 1.48c-.72.328-1.4.737-2.028 1.219a1.635 1.635 0 01-2.167-.18z"
          }
        ) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_2198_76829", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M0 0H25V25H0z",
            transform: "translate(12.994 12.665)"
          }
        ) }) })
      ]
    }
  );
}
const EndCallButton = ({ disabled: rv, onPress: tv }) => /* @__PURE__ */ jsxRuntimeExports.jsx("button", { disabled: rv, onClick: tv, type: "button", children: /* @__PURE__ */ jsxRuntimeExports.jsx(EndCallIcon, {}) });
function AssistantIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "46",
      height: "43",
      fill: "none",
      viewBox: "0 0 46 43",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("g", { filter: "url(#filter0_b_2183_95973)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            fillOpacity: "0.7",
            fillRule: "evenodd",
            d: "M33.444 26.565a11.887 11.887 0 001.629-6.024c0-6.596-5.347-11.942-11.942-11.942S11.19 13.945 11.19 20.541c0 6.595 5.346 11.941 11.941 11.941 2.175 0 4.215-.581 5.971-1.597.573-.332 1.556.099 2.521.522 2.058.903 4.038 1.771 1.821-4.842zM17.16 22.712a1.628 1.628 0 100-3.257 1.628 1.628 0 000 3.257zm8.142-1.628a1.628 1.628 0 11-3.257 0 1.628 1.628 0 013.257 0zm4.885 1.628a1.628 1.628 0 100-3.257 1.628 1.628 0 000 3.257z",
            clipRule: "evenodd",
            style: { mixBlendMode: "luminosity" }
          }
        ) }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "mask",
          {
            id: "path-2-outside-1_2183_95973",
            width: "46",
            height: "44",
            x: "0",
            y: "-0.5",
            fill: "#000",
            maskUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("path", { fill: "#fff", d: "M0 -0.5H46V43.5H0z" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M21.307 1.048c-1.772.187-3.74.653-5.216 1.238C10.587 4.45 6.388 8.86 4.565 14.406l-.416 1.272-.585.051c-.712.068-1.179.289-1.577.764-.535.619-.569.84-.569 3.469 0 2.586.034 2.832.518 3.418.356.44.899.729 1.475.805l.492.06.28 1.06c.687 2.654 1.756 4.868 3.393 7.04 2.943 3.9 7.54 6.683 12.357 7.471.62.102.653.119.653.323 0 .356.458 1.22.806 1.526.534.467 1.01.645 1.739.645 1.06 0 1.815-.467 2.29-1.417.28-.56.339-1.246.17-1.865-.332-1.17-1.723-2.019-2.918-1.765-.9.187-1.832.993-1.977 1.722-.05.246-.05.246-.517.187-1.747-.22-4.427-1.154-6.25-2.18-4.496-2.544-7.829-6.861-9.076-11.764-.118-.466-.212-.899-.212-.966 0-.06.144-.162.323-.213.466-.144.907-.55 1.178-1.102l.238-.483v-5.09l-.255-.457c-.262-.475-.72-.916-1.034-.993-.272-.067-.246-.246.152-1.433 1.57-4.682 5.021-8.634 9.491-10.856 4.47-2.222 9.575-2.587 14.376-1.018 3.223 1.052 6.598 3.393 8.693 6.022 1.349 1.705 2.57 3.91 3.215 5.852.398 1.187.424 1.366.16 1.433-.321.077-.78.518-1.042.993l-.255.458v5.173l.255.458c.5.9 1.187 1.239 2.408 1.18.849-.043 1.332-.255 1.781-.806.484-.586.518-.832.518-3.418 0-2.63-.034-2.85-.568-3.47-.4-.474-.865-.695-1.578-.763l-.585-.05-.407-1.247c-2.316-7.04-8.337-12.12-15.69-13.257-1.044-.16-3.733-.229-4.708-.127zM5.006 16.654c.17.11.39.364.5.551.187.33.195.424.22 2.561.035 2.486-.008 2.748-.457 3.249-.382.415-.738.534-1.51.492-.772-.034-1.213-.289-1.484-.857-.178-.373-.187-.466-.161-2.79l.025-2.418.23-.347c.364-.551.729-.704 1.602-.679.61.026.772.06 1.035.238zm38.31-.085c.187.093.441.33.568.526l.238.348.025 2.417c.026 2.324.017 2.417-.16 2.79-.272.568-.713.823-1.485.857-.772.042-1.128-.077-1.51-.492-.45-.5-.492-.764-.458-3.249.026-1.925.043-2.256.178-2.493.34-.636.78-.865 1.654-.874.458 0 .704.043.95.17zM23.597 37.95c.204.051.534.23.73.399 1.28 1.103.635 3.121-1.06 3.3-.4.042-.543.016-.934-.179-1.772-.873-1.221-3.443.78-3.604.06-.009.28.034.484.084z" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M24.759 39.842a1.628 1.628 0 11-3.257 0 1.628 1.628 0 013.257 0zM1 18.39a2.9 2.9 0 015.799 0v3.261a2.9 2.9 0 01-5.799 0V18.39zM39.417 18.39a2.9 2.9 0 115.8 0v3.261a2.9 2.9 0 11-5.8 0V18.39z" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M26.008 39.773a2.9 2.9 0 11-5.8 0 2.9 2.9 0 015.8 0z" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "path",
                {
                  fillRule: "evenodd",
                  d: "M23.258 1.5C12.904 1.5 4.5 10 4.5 20.5s8.404 19 18.758 19v1C12.34 40.5 3.5 31.54 3.5 20.5S12.34.5 23.258.5c9.347 0 17.172 6.57 19.229 15.386l-.974.228C39.557 7.73 32.123 1.5 23.258 1.5z",
                  clipRule: "evenodd"
                }
              )
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M21.307 1.048c-1.772.187-3.74.653-5.216 1.238C10.587 4.45 6.388 8.86 4.565 14.406l-.416 1.272-.585.051c-.712.068-1.179.289-1.577.764-.535.619-.569.84-.569 3.469 0 2.586.034 2.832.518 3.418.356.44.899.729 1.475.805l.492.06.28 1.06c.687 2.654 1.756 4.868 3.393 7.04 2.943 3.9 7.54 6.683 12.357 7.471.62.102.653.119.653.323 0 .356.458 1.22.806 1.526.534.467 1.01.645 1.739.645 1.06 0 1.815-.467 2.29-1.417.28-.56.339-1.246.17-1.865-.332-1.17-1.723-2.019-2.918-1.765-.9.187-1.832.993-1.977 1.722-.05.246-.05.246-.517.187-1.747-.22-4.427-1.154-6.25-2.18-4.496-2.544-7.829-6.861-9.076-11.764-.118-.466-.212-.899-.212-.966 0-.06.144-.162.323-.213.466-.144.907-.55 1.178-1.102l.238-.483v-5.09l-.255-.457c-.262-.475-.72-.916-1.034-.993-.272-.067-.246-.246.152-1.433 1.57-4.682 5.021-8.634 9.491-10.856 4.47-2.222 9.575-2.587 14.376-1.018 3.223 1.052 6.598 3.393 8.693 6.022 1.349 1.705 2.57 3.91 3.215 5.852.398 1.187.424 1.366.16 1.433-.321.077-.78.518-1.042.993l-.255.458v5.173l.255.458c.5.9 1.187 1.239 2.408 1.18.849-.043 1.332-.255 1.781-.806.484-.586.518-.832.518-3.418 0-2.63-.034-2.85-.568-3.47-.4-.474-.865-.695-1.578-.763l-.585-.05-.407-1.247c-2.316-7.04-8.337-12.12-15.69-13.257-1.044-.16-3.733-.229-4.708-.127zM5.006 16.654c.17.11.39.364.5.551.187.33.195.424.22 2.561.035 2.486-.008 2.748-.457 3.249-.382.415-.738.534-1.51.492-.772-.034-1.213-.289-1.484-.857-.178-.373-.187-.466-.161-2.79l.025-2.418.23-.347c.364-.551.729-.704 1.602-.679.61.026.772.06 1.035.238zm38.31-.085c.187.093.441.33.568.526l.238.348.025 2.417c.026 2.324.017 2.417-.16 2.79-.272.568-.713.823-1.485.857-.772.042-1.128-.077-1.51-.492-.45-.5-.492-.764-.458-3.249.026-1.925.043-2.256.178-2.493.34-.636.78-.865 1.654-.874.458 0 .704.043.95.17zM23.597 37.95c.204.051.534.23.73.399 1.28 1.103.635 3.121-1.06 3.3-.4.042-.543.016-.934-.179-1.772-.873-1.221-3.443.78-3.604.06-.009.28.034.484.084z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M24.759 39.842a1.628 1.628 0 11-3.257 0 1.628 1.628 0 013.257 0zM1 18.39a2.9 2.9 0 015.799 0v3.261a2.9 2.9 0 01-5.799 0V18.39zM39.417 18.39a2.9 2.9 0 115.8 0v3.261a2.9 2.9 0 11-5.8 0V18.39z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M26.008 39.773a2.9 2.9 0 11-5.8 0 2.9 2.9 0 015.8 0z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            fillRule: "evenodd",
            d: "M23.258 1.5C12.904 1.5 4.5 10 4.5 20.5s8.404 19 18.758 19v1C12.34 40.5 3.5 31.54 3.5 20.5S12.34.5 23.258.5c9.347 0 17.172 6.57 19.229 15.386l-.974.228C39.557 7.73 32.123 1.5 23.258 1.5z",
            clipRule: "evenodd"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            stroke: "#fff",
            strokeWidth: "0.4",
            d: "M21.307 1.048c-1.772.187-3.74.653-5.216 1.238C10.587 4.45 6.388 8.86 4.565 14.406l-.416 1.272-.585.051c-.712.068-1.179.289-1.577.764-.535.619-.569.84-.569 3.469 0 2.586.034 2.832.518 3.418.356.44.899.729 1.475.805l.492.06.28 1.06c.687 2.654 1.756 4.868 3.393 7.04 2.943 3.9 7.54 6.683 12.357 7.471.62.102.653.119.653.323 0 .356.458 1.22.806 1.526.534.467 1.01.645 1.739.645 1.06 0 1.815-.467 2.29-1.417.28-.56.339-1.246.17-1.865-.332-1.17-1.723-2.019-2.918-1.765-.9.187-1.832.993-1.977 1.722-.05.246-.05.246-.517.187-1.747-.22-4.427-1.154-6.25-2.18-4.496-2.544-7.829-6.861-9.076-11.764-.118-.466-.212-.899-.212-.966 0-.06.144-.162.323-.213.466-.144.907-.55 1.178-1.102l.238-.483v-5.09l-.255-.457c-.262-.475-.72-.916-1.034-.993-.272-.067-.246-.246.152-1.433 1.57-4.682 5.021-8.634 9.491-10.856 4.47-2.222 9.575-2.587 14.376-1.018 3.223 1.052 6.598 3.393 8.693 6.022 1.349 1.705 2.57 3.91 3.215 5.852.398 1.187.424 1.366.16 1.433-.321.077-.78.518-1.042.993l-.255.458v5.173l.255.458c.5.9 1.187 1.239 2.408 1.18.849-.043 1.332-.255 1.781-.806.484-.586.518-.832.518-3.418 0-2.63-.034-2.85-.568-3.47-.4-.474-.865-.695-1.578-.763l-.585-.05-.407-1.247c-2.316-7.04-8.337-12.12-15.69-13.257-1.044-.16-3.733-.229-4.708-.127zM5.006 16.654c.17.11.39.364.5.551.187.33.195.424.22 2.561.035 2.486-.008 2.748-.457 3.249-.382.415-.738.534-1.51.492-.772-.034-1.213-.289-1.484-.857-.178-.373-.187-.466-.161-2.79l.025-2.418.23-.347c.364-.551.729-.704 1.602-.679.61.026.772.06 1.035.238zm38.31-.085c.187.093.441.33.568.526l.238.348.025 2.417c.026 2.324.017 2.417-.16 2.79-.272.568-.713.823-1.485.857-.772.042-1.128-.077-1.51-.492-.45-.5-.492-.764-.458-3.249.026-1.925.043-2.256.178-2.493.34-.636.78-.865 1.654-.874.458 0 .704.043.95.17zM23.597 37.95c.204.051.534.23.73.399 1.28 1.103.635 3.121-1.06 3.3-.4.042-.543.016-.934-.179-1.772-.873-1.221-3.443.78-3.604.06-.009.28.034.484.084z",
            mask: "url(#path-2-outside-1_2183_95973)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            stroke: "#fff",
            strokeWidth: "0.4",
            d: "M24.759 39.842a1.628 1.628 0 11-3.257 0 1.628 1.628 0 013.257 0zM1 18.39a2.9 2.9 0 015.799 0v3.261a2.9 2.9 0 01-5.799 0V18.39zM39.417 18.39a2.9 2.9 0 115.8 0v3.261a2.9 2.9 0 11-5.8 0V18.39z",
            mask: "url(#path-2-outside-1_2183_95973)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            stroke: "#fff",
            strokeWidth: "0.4",
            d: "M26.008 39.773a2.9 2.9 0 11-5.8 0 2.9 2.9 0 015.8 0z",
            mask: "url(#path-2-outside-1_2183_95973)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            stroke: "#fff",
            strokeWidth: "0.4",
            d: "M23.258 1.5C12.904 1.5 4.5 10 4.5 20.5s8.404 19 18.758 19v1C12.34 40.5 3.5 31.54 3.5 20.5S12.34.5 23.258.5c9.347 0 17.172 6.57 19.229 15.386l-.974.228C39.557 7.73 32.123 1.5 23.258 1.5z",
            clipRule: "evenodd",
            mask: "url(#path-2-outside-1_2183_95973)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "filter",
          {
            id: "filter0_b_2183_95973",
            width: "163.884",
            height: "163.883",
            x: "-58.81",
            y: "-61.401",
            colorInterpolationFilters: "sRGB",
            filterUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feGaussianBlur",
                {
                  in: "BackgroundImageFix",
                  stdDeviation: "35"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feComposite",
                {
                  in2: "SourceAlpha",
                  operator: "in",
                  result: "effect1_backgroundBlur_2183_95973"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feBlend",
                {
                  in: "SourceGraphic",
                  in2: "effect1_backgroundBlur_2183_95973",
                  result: "shape"
                }
              )
            ]
          }
        ) })
      ]
    }
  );
}
const flowStartButton = "_flowStartButton_o7yax_1", styles$E = {
  flowStartButton
}, spinner = "_spinner_1c0ad_1", spin = "_spin_1c0ad_1", styles$D = {
  spinner,
  spin
}, Spinner = (rv) => {
  const { color: tv = "#ffffff", size: ev = 20, borderWidth: iv = ev / 10 } = rv, ov = {
    borderTopColor: tv,
    width: ev,
    height: ev,
    borderWidth: iv
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$D.spinner, style: ov });
}, FlowStartButton = (rv) => {
  const { loading: tv = !1, disabled: ev, onPress: iv } = rv;
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "button",
    {
      className: styles$E.flowStartButton,
      disabled: ev,
      onClick: iv,
      type: "button",
      children: tv ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { size: 26 }) : /* @__PURE__ */ jsxRuntimeExports.jsx(AssistantIcon, {})
    }
  );
};
function ArrowHeadIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "16",
      height: "16",
      fill: "none",
      viewBox: "0 0 16 16",
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          stroke: "#6B7280",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: "1.5",
          d: "M6 12l4-4-4-4"
        }
      )
    }
  );
}
function BackIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "18",
      height: "16",
      fill: "none",
      viewBox: "0 0 18 16",
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          fill: "#747474",
          fillRule: "evenodd",
          d: "M8.208 1.23a.825.825 0 010 1.166L3.43 7.175h13.133a.825.825 0 010 1.65H3.43l4.78 4.78A.825.825 0 117.04 14.77L.854 8.583a.825.825 0 010-1.166L7.04 1.229a.825.825 0 011.167 0z",
          clipRule: "evenodd"
        }
      )
    }
  );
}
function CameraSelfIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "48",
      height: "48",
      fill: "none",
      viewBox: "0 0 48 48",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "24.176",
            cy: "24.176",
            r: "20.654",
            fill: "#323845",
            fillOpacity: "0.5",
            stroke: "#fff"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M20.946 13.935c-.338.079-.743.241-.988.403-.45.296-.743.646-1.212 1.433l-.44.734-1.496.005c-.846 0-1.618.025-1.784.054-.954.173-1.77.985-1.97 1.955-.074.35-.074 11.405-.005 11.784.17.926.958 1.753 1.857 1.96.303.074 17.882.074 18.185 0 .895-.207 1.687-1.04 1.858-1.96.03-.167.049-2.285.049-5.884 0-6.18.005-6.008-.303-6.584a2.565 2.565 0 00-1.72-1.27c-.167-.03-.94-.055-1.785-.055l-1.496-.005-.44-.734c-.606-1.024-1.051-1.452-1.799-1.733l-.303-.113-3.055-.005c-1.682-.005-3.1 0-3.153.015zm6.252 1.142c.44.177.719.492 1.32 1.497.288.478.572.901.63.936.079.044.616.064 1.966.083l1.857.025.225.133c.245.143.48.389.616.645.083.148.088.517.103 5.963l.01 5.801-.118.261a1.476 1.476 0 01-.694.72l-.24.117H15.129l-.23-.113a1.592 1.592 0 01-.708-.729l-.113-.256.01-5.8c.015-5.447.02-5.816.103-5.964a1.73 1.73 0 01.616-.645l.225-.133 1.857-.025c1.35-.02 1.887-.039 1.965-.083.059-.035.342-.458.636-.936.572-.955.758-1.187 1.06-1.369.445-.26.51-.266 3.55-.256l2.81.01.289.118z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M23.19 19.484c-.778.148-1.536.453-1.721.694a.504.504 0 00.386.813c.098 0 .318-.064.489-.143.435-.197.806-.3 1.266-.345 1.98-.201 3.798 1.133 4.228 3.117.127.567.084 1.433-.097 1.99l-.127.414-.289-.276c-.47-.453-.489-.424-.489.812 0 .764.015.98.069 1.025.044.039.366.054 1.06.044 1.198-.02 1.208-.025.729-.507l-.303-.306.147-.34c.327-.763.42-1.24.42-2.087-.005-.498-.03-.768-.108-1.084-.44-1.831-1.828-3.26-3.607-3.722-.597-.158-1.526-.202-2.053-.099zM19.22 21.222c-.269.035-.25.143.088.483l.308.31-.161.39c-.523 1.265-.567 2.545-.127 3.727.576 1.541 1.73 2.624 3.329 3.117.41.123.498.133 1.344.133.846 0 .934-.01 1.34-.133.679-.212 1.133-.443 1.221-.616.113-.221.098-.423-.048-.595-.196-.237-.382-.247-.86-.04-.538.236-.905.33-1.409.364-1.808.124-3.456-1.043-4.018-2.84-.098-.32-.112-.469-.108-1.109 0-.67.015-.778.137-1.147.074-.222.147-.404.167-.404.02 0 .146.108.278.246.25.251.381.306.435.168.015-.045.03-.508.03-1.03 0-.896-.005-.96-.093-1.009-.093-.05-1.491-.06-1.853-.015z"
          }
        )
      ]
    }
  );
}
function ChatIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "40",
      height: "40",
      fill: "none",
      viewBox: "0 0 30 30",
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          fill: "#B9B9B9",
          fillRule: "evenodd",
          d: "M6 6.98v15.851l3.149-2.615c.092-.077.198-.136.311-.176l.386-.134c.106-.037.218-.056.331-.056H24V6.98H6zM4.537 5.532c.344-.34.81-.532 1.296-.532h18.334c.486 0 .952.191 1.296.532.344.34.537.802.537 1.283v13.2c0 .482-.193.943-.537 1.284-.344.34-.81.531-1.296.531h-13.82l-.052.019-3.288 2.73-.005.004a1.842 1.842 0 01-1.943.247 1.829 1.829 0 01-.768-.663 1.802 1.802 0 01-.29-.968L4 23.191V6.816c0-.481.193-.943.537-1.283zm6.13 6.233c0-.547.447-.99 1-.99h6.666c.553 0 1 .443 1 .99 0 .547-.447.99-1 .99h-6.666c-.553 0-1-.443-1-.99zm1 2.31c-.553 0-1 .443-1 .99 0 .547.447.99 1 .99h6.666c.553 0 1-.443 1-.99a.995.995 0 00-1-.99h-6.666z",
          clipRule: "evenodd"
        }
      )
    }
  );
}
const ChatRoundIcon = ({ active: rv }) => {
  const tv = rv ? "#fff" : "none", ev = rv ? "#323845" : "#fff";
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "48",
      height: "48",
      fill: "none",
      viewBox: "0 0 48 48",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "23.825",
            cy: "23.825",
            r: "23.325",
            fill: tv,
            stroke: ev
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: ev,
            fillRule: "evenodd",
            d: "M18.607 17.033c-1.873.132-3.573 1.068-4.603 2.535-.418.594-.667 1.143-.874 1.926l-.113.426-.014 5.464c-.007 3.006-.001 5.465.015 5.465.015 0 1.403-.602 3.085-1.338l3.056-1.339h4.98c3.148 0 5.143-.015 5.425-.042 2.081-.198 3.88-1.37 4.824-3.141a6.16 6.16 0 00.513-1.404c.095-.402.1-.494.099-2.003 0-1.754-.025-1.956-.327-2.765-.627-1.674-2.076-2.997-3.868-3.532-.935-.28-.66-.267-6.497-.275-2.899-.004-5.464.006-5.7.023zm11.176 1.316a4.858 4.858 0 012.962 1.724c.462.577.808 1.412.897 2.165.06.501.06 2.188 0 2.69-.214 1.814-1.548 3.29-3.447 3.814l-.4.11-5.442.013-5.442.012-2.266.992c-1.246.546-2.277.993-2.292.993-.049 0-.03-8.207.02-8.624.218-1.854 1.64-3.381 3.557-3.825.183-.042.391-.085.462-.094.071-.009 2.588-.019 5.594-.021 4.474-.004 5.524.005 5.797.051zm-10.735 4.338c-.28.095-.554.33-.713.612-.097.171-.114.252-.112.527.001.27.021.36.116.532.432.788 1.584.894 2.147.198.412-.51.341-1.22-.162-1.638a1.44 1.44 0 00-.393-.225c-.24-.077-.662-.08-.883-.006zm4.498.01c-.261.087-.584.376-.704.63-.074.157-.101.291-.102.499-.003.473.245.846.72 1.084.147.074.25.09.547.09.313 0 .397-.015.585-.108.611-.302.862-1.007.563-1.583-.144-.276-.432-.528-.706-.616a1.735 1.735 0 00-.903.003zm4.52-.001c-.259.086-.55.345-.688.613-.236.453-.117 1.067.268 1.386.292.241.477.306.879.306.313 0 .397-.016.58-.108.462-.23.69-.591.686-1.088-.002-.246-.023-.343-.116-.511-.14-.258-.445-.516-.708-.6a1.734 1.734 0 00-.901.002z",
            clipRule: "evenodd"
          }
        )
      ]
    }
  );
};
function CheckIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "36",
      height: "36",
      fill: "currentColor",
      viewBox: "0 0 36 36",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "currentColor",
            fillRule: "evenodd",
            d: "M25.164 13.693a1.35 1.35 0 01-.045 1.908l-8.25 7.875a1.35 1.35 0 01-1.864 0L10.88 19.54a1.35 1.35 0 111.865-1.953l3.192 3.048 7.318-6.986a1.35 1.35 0 011.909.045z",
            clipRule: "evenodd"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "currentColor",
            fillRule: "evenodd",
            d: "M18 5.85C11.29 5.85 5.85 11.29 5.85 18S11.29 30.15 18 30.15 30.15 24.71 30.15 18 24.71 5.85 18 5.85zM3.15 18C3.15 9.798 9.798 3.15 18 3.15 26.2 3.15 32.85 9.798 32.85 18 32.85 26.2 26.2 32.85 18 32.85 9.798 32.85 3.15 26.2 3.15 18z",
            clipRule: "evenodd"
          }
        )
      ]
    }
  );
}
function ClipIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "20",
      height: "20",
      viewBox: "0 0 20 18",
      fill: "currentColor",
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M4.8664 17.2496C3.97611 17.2508 3.10547 16.9879 2.36464 16.4941C1.62381 16.0003 1.0461 15.2979 0.704589 14.4757C0.363081 13.6536 0.27313 12.7485 0.446118 11.8752C0.619105 11.0019 1.04726 10.1995 1.6764 9.56958L9.4364 1.70958C9.73474 1.39966 10.0962 1.15751 10.4964 0.999585C10.8908 0.834834 11.314 0.75 11.7414 0.75C12.1688 0.75 12.592 0.834834 12.9864 0.999585C13.3833 1.15902 13.7439 1.39715 14.0464 1.69962C14.3488 2.00209 14.587 2.36265 14.7464 2.75958C14.9114 3.15216 14.9964 3.57373 14.9964 3.99958C14.9964 4.42544 14.9114 4.847 14.7464 5.23958C14.5848 5.6354 14.347 5.99557 14.0464 6.29958L6.2764 14.1596C6.09065 14.3455 5.87007 14.4931 5.62728 14.5937C5.38448 14.6944 5.12423 14.7462 4.8614 14.7462C4.59857 14.7462 4.33831 14.6944 4.09552 14.5937C3.85272 14.4931 3.63214 14.3455 3.4464 14.1596C3.07448 13.7846 2.86598 13.2777 2.8664 12.7496C2.86598 12.2214 3.07448 11.7146 3.4464 11.3396L9.9864 4.71958C10.0482 4.62425 10.1309 4.54421 10.2281 4.4855C10.3254 4.42679 10.4347 4.39094 10.5479 4.38067C10.661 4.3704 10.7751 4.38597 10.8813 4.4262C10.9876 4.46644 11.0833 4.53029 11.1612 4.61293C11.2392 4.69558 11.2974 4.79485 11.3314 4.90327C11.3653 5.01168 11.3743 5.1264 11.3574 5.23876C11.3406 5.35112 11.2984 5.45819 11.2342 5.55188C11.1699 5.64557 11.119 5.72343 11.0202 5.77958L4.52024 12.3896C4.42452 12.485 4.33673 12.6145 4.3364 12.7496C4.33561 12.88 4.38585 13.0057 4.4764 13.0996C4.57155 13.1918 4.69887 13.2434 4.8314 13.2434C4.96392 13.2434 5.09125 13.1918 5.1864 13.0996L12.9864 5.23958C13.1518 5.07638 13.2842 4.88286 13.3764 4.66958C13.5499 4.23977 13.5499 3.7594 13.3764 3.32958C13.2804 3.11841 13.1485 2.92553 12.9864 2.75958C12.8197 2.60108 12.6268 2.47253 12.4164 2.37958C11.986 2.20917 11.5068 2.20917 11.0764 2.37958C10.866 2.47253 10.6731 2.60108 10.5064 2.75958L2.7464 10.6196C2.46655 10.8991 2.24473 11.2312 2.0937 11.5967C1.94268 11.9623 1.86543 12.3541 1.8664 12.7496C1.86444 13.5435 2.17729 14.3059 2.7364 14.8696C3.31034 15.4133 4.07083 15.7163 4.8614 15.7163C5.65196 15.7163 6.41245 15.4133 6.9864 14.8696L13.3964 8.46958C13.5386 8.3371 13.7266 8.26498 13.9209 8.26841C14.1152 8.27184 14.3006 8.35055 14.438 8.48796C14.5754 8.62538 14.6541 8.81076 14.6576 9.00506C14.661 9.19936 14.5889 9.38741 14.4564 9.52958L8.0464 15.9296C7.62992 16.3489 7.13443 16.6815 6.58859 16.908C6.04275 17.1346 5.4574 17.2507 4.8664 17.2496Z",
          fill: "#CACBCC"
        }
      )
    }
  );
}
function CrossIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "34",
      height: "34",
      fill: "none",
      viewBox: "0 0 34 34",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("g", { filter: "url(#filter0_b_2517_50146)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "rect",
          {
            width: "34",
            height: "34",
            fill: "#4F6677",
            fillOpacity: "0.85",
            rx: "17"
          }
        ) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            fillRule: "evenodd",
            d: "M17.98 10.478a.978.978 0 00-1.957 0v5.544H10.48a.978.978 0 100 1.956h5.544v5.544a.978.978 0 001.957 0v-5.544h5.545a.978.978 0 100-1.956H17.98v-5.544z",
            clipRule: "evenodd"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "filter",
          {
            id: "filter0_b_2517_50146",
            width: "84",
            height: "84",
            x: "-25",
            y: "-25",
            colorInterpolationFilters: "sRGB",
            filterUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feGaussianBlur",
                {
                  in: "BackgroundImageFix",
                  stdDeviation: "12.5"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feComposite",
                {
                  in2: "SourceAlpha",
                  operator: "in",
                  result: "effect1_backgroundBlur_2517_50146"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feBlend",
                {
                  in: "SourceGraphic",
                  in2: "effect1_backgroundBlur_2517_50146",
                  result: "shape"
                }
              )
            ]
          }
        ) })
      ]
    }
  );
}
function DownloadIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "svg",
    {
      width: "20",
      height: "20",
      viewBox: "0 0 20 20",
      fill: "currentColor",
      xmlns: "http://www.w3.org/2000/svg",
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          fillRule: "evenodd",
          clipRule: "evenodd",
          d: "M11.0739 14.8221C10.7915 15.0593 10.3335 15.0593 10.0511 14.8221L5.71182 11.1771C5.42939 10.9398 5.42939 10.5552 5.71182 10.3179C5.99426 10.0807 6.45217 10.0807 6.7346 10.3179L9.83929 12.9259L9.83929 2.1075C9.83929 1.77199 10.5625 1.5 10.5625 1.5C10.9619 1.5 11.2857 1.77199 11.2857 2.1075L11.2857 12.9259L14.3904 10.3179C14.6728 10.0807 15.1307 10.0807 15.4132 10.3179C15.6956 10.5552 15.6956 10.9398 15.4132 11.1771L11.0739 14.8221Z",
          strokeWidth: "0.5",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          fill: "#ffff",
          stroke: "#ffff"
        }
      )
    }
  );
}
function ExcelIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      width: "25",
      height: "25",
      viewBox: "0 0 3600 3600",
      fill: "none",
      xmlns: "http://www.w3.org/2000/svg",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M0 800C0 358.172 358.172 0 800 0H2800C3241.83 0 3600 358.172 3600 800V2800C3600 3241.83 3241.83 3600 2800 3600H800C358.172 3600 0 3241.83 0 2800V800Z",
            fill: "#007A5A"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M2400 2400H2129.55C2102.27 2400 2086.36 2384.09 2072.73 2361.36L1795.45 1900L1511.36 2361.36C1497.73 2386.36 1481.82 2400 1454.55 2400H1200L1600 1784.09L1218.18 1200H1484.09C1513.64 1200 1525 1204.55 1538.64 1227.27L1811.36 1665.91L2081.82 1229.55C2095.45 1209.09 2111.36 1200 2129.55 1200H2388.64L2000 1772.73L2400 2400Z",
            fill: "white"
          }
        )
      ]
    }
  );
}
function GenericFileIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      width: "25",
      height: "25",
      viewBox: "0 0 3600 3600",
      fill: "none",
      xmlns: "http://www.w3.org/2000/svg",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M0 800C0 358.172 358.172 0 800 0H2800C3241.83 0 3600 358.172 3600 800V2800C3600 3241.83 3241.83 3600 2800 3600H800C358.172 3600 0 3241.83 0 2800V800Z",
            fill: "#1D9BD1"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M1213.91 1224.65C1213.91 1210.89 1225.13 1199.78 1238.88 1199.91L1810.05 1205.32L1809.94 1589.44C1809.9 1706.99 1905.21 1802.29 2022.76 1802.26L2395.48 1802.14L2390.3 2374.57C2390.17 2388.24 2378.99 2399.22 2365.32 2399.09L1238.41 2388.31C1224.84 2388.18 1213.91 2377.14 1213.91 2363.57V1224.65ZM2391.65 1624.03C2391.14 1623.38 2390.59 1622.76 2390.02 1622.16L1996.53 1214.48C1994.14 1212 1991.29 1210.08 1988.17 1208.79L1988.06 1589.49C1988.05 1608.63 2003.57 1624.14 2022.7 1624.14L2391.65 1624.03ZM1240.76 1002.01C1116.97 1000.84 1016 1100.86 1016 1224.65L1016 2363.57C1016 2485.7 1114.39 2585.04 1236.52 2586.21L2363.43 2596.99C2486.43 2598.16 2587.08 2499.37 2588.2 2376.37L2594.86 1641.36C2595.39 1582.98 2572.97 1526.73 2532.42 1484.72L2138.94 1077.04C2097.49 1034.09 2040.53 1009.59 1980.84 1009.02L1240.76 1002.01Z",
            fill: "white"
          }
        )
      ]
    }
  );
}
function HeadSetIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "28",
      height: "30",
      fill: "none",
      viewBox: "0 0 28 30",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#B9B9B9",
            fillRule: "evenodd",
            d: "M14.09.8A13.2 13.2 0 0127.383 14v7a3.2 3.2 0 01-3.2 3.2h-2a3.2 3.2 0 01-3.2-3.2v-5a3.2 3.2 0 013.2-3.2h2.733A10.8 10.8 0 0014.1 3.2h-.018a10.8 10.8 0 00-10.815 9.6H6A3.2 3.2 0 019.2 16v5A3.2 3.2 0 016 24.2H4A3.2 3.2 0 01.8 21v-7A13.2 13.2 0 0114.09.8zM3.2 15.2V21a.8.8 0 00.8.8h2a.8.8 0 00.8-.8v-5a.8.8 0 00-.8-.8H3.2zm21.782 0h-2.8a.8.8 0 00-.8.8v5a.8.8 0 00.8.8h2a.8.8 0 00.8-.8v-5.8z",
            clipRule: "evenodd"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#B9B9B9",
            fillRule: "evenodd",
            d: "M26.182 19.8a1.2 1.2 0 011.2 1.2v3a5.2 5.2 0 01-5.2 5.2H15a1.2 1.2 0 010-2.4h7.182a2.8 2.8 0 002.8-2.8v-3a1.2 1.2 0 011.2-1.2z",
            clipRule: "evenodd"
          }
        )
      ]
    }
  );
}
const IconLeft = () => /* @__PURE__ */ jsxRuntimeExports.jsxs(
  "svg",
  {
    width: "20",
    height: "31",
    viewBox: "0 0 20 31",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          fillRule: "evenodd",
          clipRule: "evenodd",
          d: "M11.8698 25.5942C12.0944 25.9422 12.5586 26.0424 12.9066 25.8178C13.2547 25.5933 13.3548 25.1291 13.1303 24.781L7.14257 15.5001L13.1303 6.21919C13.3548 5.87112 13.2547 5.40692 12.9066 5.18237C12.5586 4.95781 12.0944 5.05793 11.8698 5.40599L5.62903 15.0792C5.54461 15.2039 5.50011 15.351 5.49994 15.5C5.49982 15.6059 5.52212 15.7128 5.56843 15.8132C5.58553 15.8506 5.60576 15.8866 5.62902 15.921L11.8698 25.5942Z",
          fill: "white"
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M12.9066 25.8178L13.1777 26.238L13.1777 26.238L12.9066 25.8178ZM11.8698 25.5942L12.29 25.3231L12.29 25.3231L11.8698 25.5942ZM13.1303 24.781L12.7101 25.0521L12.7101 25.0521L13.1303 24.781ZM7.14257 15.5001L6.72242 15.229C6.61596 15.3941 6.61596 15.6061 6.72242 15.7712L7.14257 15.5001ZM13.1303 6.21919L12.7101 5.94812L12.7101 5.94812L13.1303 6.21919ZM12.9066 5.18237L13.1777 4.76222L13.1777 4.76222L12.9066 5.18237ZM11.8698 5.40599L11.4497 5.13493L11.8698 5.40599ZM5.62903 15.0792L6.04315 15.3596L6.04918 15.3503L5.62903 15.0792ZM5.49994 15.5L5.99994 15.5005L5.99994 15.5005L5.49994 15.5ZM5.56843 15.8132L6.02297 15.6049L6.02251 15.6039L5.56843 15.8132ZM5.62902 15.921L6.04927 15.6498L6.04305 15.6406L5.62902 15.921ZM12.6356 25.3977C12.5195 25.4725 12.3648 25.4391 12.29 25.3231L11.4497 25.8652C11.8239 26.4453 12.5976 26.6122 13.1777 26.238L12.6356 25.3977ZM12.7101 25.0521C12.785 25.1681 12.7516 25.3228 12.6356 25.3977L13.1777 26.238C13.7578 25.8637 13.9247 25.09 13.5504 24.5099L12.7101 25.0521ZM6.72242 15.7712L12.7101 25.0521L13.5504 24.5099L7.56272 15.229L6.72242 15.7712ZM12.7101 5.94812L6.72242 15.229L7.56272 15.7712L13.5504 6.49025L12.7101 5.94812ZM12.6356 5.60252C12.7516 5.67737 12.785 5.8321 12.7101 5.94812L13.5504 6.49025C13.9247 5.91015 13.7578 5.13648 13.1777 4.76222L12.6356 5.60252ZM12.29 5.67706C12.3648 5.56104 12.5195 5.52766 12.6356 5.60252L13.1777 4.76222C12.5976 4.38796 11.8239 4.55483 11.4497 5.13493L12.29 5.67706ZM6.04918 15.3503L12.29 5.67706L11.4497 5.13493L5.20888 14.8081L6.04918 15.3503ZM5.99994 15.5005C6 15.4503 6.01513 15.4008 6.04305 15.3595L5.21501 14.7989C5.07409 15.007 5.00022 15.2517 4.99994 15.4994L5.99994 15.5005ZM6.02251 15.6039C6.00727 15.5709 5.9999 15.5358 5.99994 15.5005L4.99994 15.4994C4.99975 15.676 5.03697 15.8547 5.11435 16.0225L6.02251 15.6039ZM6.04305 15.6406C6.03539 15.6293 6.02868 15.6174 6.02297 15.6049L5.11389 16.0216C5.14239 16.0837 5.17614 16.1439 5.21499 16.2013L6.04305 15.6406ZM12.29 25.3231L6.04916 15.6499L5.20887 16.192L11.4497 25.8652L12.29 25.3231Z",
          fill: "white"
        }
      )
    ]
  }
);
function ImageIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      width: "25",
      height: "25",
      viewBox: "0 0 25 25",
      fill: "currentColor",
      xmlns: "http://www.w3.org/2000/svg",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("rect", { width: "25", height: "25", rx: "2", fill: "#927AD6" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            "fill-rule": "evenodd",
            "clip-rule": "evenodd",
            d: "M6.81861 5.78812C6.26633 5.78812 5.81861 6.23584 5.81861 6.78812V18.0144C5.81861 18.5667 6.26633 19.0144 6.81861 19.0144H18.2167C18.769 19.0144 19.2167 18.5667 19.2167 18.0144V6.78812C19.2167 6.23584 18.769 5.78812 18.2167 5.78812H6.81861ZM5.00586 6.32996C5.00586 5.58184 5.61233 5 6.36045 5H18.6749C19.423 5 20.0295 5.58184 20.0295 6.32996V18.6444C20.0295 19.3925 19.423 19.999 18.6749 19.999H6.36045C5.61233 19.999 5.00586 19.3925 5.00586 18.6444V6.32996Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            "fill-rule": "evenodd",
            "clip-rule": "evenodd",
            d: "M14.6384 11.1686C14.8925 10.9145 15.237 10.7718 15.5963 10.7718C15.9555 10.7718 16.3001 10.9145 16.5541 11.1686L19.8131 14.4275C20.1016 14.7161 20.1016 15.1839 19.8131 15.4724C19.5245 15.761 19.5053 19.7029 19.2167 19.4143L17.5 19.5H14C13.746 19.754 10.8593 19.5 10.5 19.5C10.1407 19.5 10.254 19.754 10 19.5H9H6C5.71146 19.7885 5.51081 16.9924 5.22227 16.7039C4.93372 16.4153 4.93372 15.9475 5.22227 15.659L7.86549 13.0157C8.11953 12.7617 8.46408 12.619 8.82333 12.619C9.18259 12.619 9.52714 12.7617 9.78117 13.0157L11.2862 14.5208L14.6384 11.1686Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "9.2", cy: "9.2", r: "1.2", fill: "white" })
      ]
    }
  );
}
function LessValueIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "22",
      height: "23",
      fill: "none",
      viewBox: "0 0 22 23",
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          fill: "#000",
          fillRule: "evenodd",
          d: "M4.138 11c0-.373.302-.675.675-.675h12.375a.675.675 0 110 1.35H4.813A.675.675 0 014.138 11z",
          clipRule: "evenodd"
        }
      )
    }
  );
}
const MicActiveIcon = ({ styleMode: rv }) => {
  const tv = rv === "waitMode" ? "#989FAE" : "none";
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "50",
      height: "50",
      fill: "none",
      viewBox: "0 0 50 50",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "25", cy: "25", r: "24.5", fill: tv, stroke: "#fff" }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "g",
          {
            stroke: "#fff",
            strokeLinecap: "round",
            strokeLinejoin: "round",
            strokeWidth: "1.5",
            clipPath: "url(#clip0_2198_110835)",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M25 13.542a3.125 3.125 0 00-3.125 3.125V25a3.125 3.125 0 106.25 0v-8.333A3.125 3.125 0 0025 13.542v0z" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M32.292 22.917V25a7.292 7.292 0 11-14.584 0v-2.083M25 32.292v4.166M20.833 36.458h8.334" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_2198_110835", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M0 0H25V25H0z",
            transform: "translate(12.5 12.5)"
          }
        ) }) })
      ]
    }
  );
}, MicInactiveIcon = ({ styleMode: rv }) => {
  const tv = rv === "waitMode" ? "#43464E" : "#fff", ev = rv === "waitMode" ? "#fff" : "#323845";
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "50",
      height: "50",
      fill: "none",
      viewBox: "0 0 50 50",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "25",
            cy: "25",
            r: "24.5",
            fill: tv,
            stroke: ev
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { clipPath: "url(#clip0_2203_77908)", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              stroke: ev,
              strokeLinecap: "round",
              strokeLinejoin: "round",
              strokeWidth: "1.5",
              d: "M21.375 17.167a3.125 3.125 0 116.25 0v6.458M21.375 23v2.5a3.125 3.125 0 005 2.5"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              stroke: ev,
              strokeLinecap: "round",
              strokeLinejoin: "round",
              strokeWidth: "1.5",
              d: "M31.792 23.417V25.5c0 .639-.084 1.269-.246 1.875m-14.338-3.958V25.5a7.292 7.292 0 0011.667 5.834M24.5 32.792v4.166M20.333 36.958h8.334"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              fill: ev,
              d: "M31.74 31.416c.314.296.815.296 1.11 0 .295-.304.305-.78 0-1.075L17.09 15.1a.799.799 0 00-1.111 0 .736.736 0 000 1.066l15.76 15.25z"
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_2203_77908", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: ev,
            d: "M0 0H25V25H0z",
            transform: "translate(12.5 12.5)"
          }
        ) }) })
      ]
    }
  );
};
function MoreValueIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "22",
      height: "23",
      fill: "none",
      viewBox: "0 0 22 23",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#000",
            fillRule: "evenodd",
            d: "M4.138 11c0-.373.302-.675.675-.675h12.375a.675.675 0 110 1.35H4.813A.675.675 0 014.138 11z",
            clipRule: "evenodd"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#000",
            fillRule: "evenodd",
            d: "M11 4.138c.373 0 .675.302.675.675v12.375a.675.675 0 11-1.35 0V4.813c0-.373.302-.675.675-.675z",
            clipRule: "evenodd"
          }
        )
      ]
    }
  );
}
function PdfIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      viewBox: "0 0 3600 3600",
      fill: "none",
      xmlns: "http://www.w3.org/2000/svg",
      width: "25",
      height: "25",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M0 800C0 358.172 358.172 0 800 0H2800C3241.83 0 3600 358.172 3600 800V2800C3600 3241.83 3241.83 3600 2800 3600H800C358.172 3600 0 3241.83 0 2800V800Z",
            fill: "#E01E5A"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M1722 1125.98C1610 1125.98 1554 1199.98 1554 1321.98C1554 1393.98 1580 1479.98 1632 1579.98C1586 1743.98 1514 1929.98 1440 2079.98C1212 2185.98 1100 2287.98 1100 2399.98C1100 2485.98 1178 2577.98 1278 2577.98C1414 2577.98 1518 2385.98 1592 2235.98C1722 2185.98 1868 2135.98 2004 2109.98C2094 2185.98 2174 2223.98 2250 2223.98C2376 2223.98 2456 2127.98 2456 2043.98C2456 1957.98 2386 1875.98 2234 1875.98C2184 1875.98 2136 1885.98 2076 1891.98C1994 1803.98 1908 1683.98 1844 1561.98C1866 1461.98 1872 1393.98 1872 1333.98C1872 1175.98 1810 1125.98 1722 1125.98ZM1750 1755.98C1800 1827.98 1848 1895.98 1902 1957.98C1818 1977.98 1734 2007.98 1652 2035.98C1686 1943.98 1724 1849.98 1750 1755.98Z",
            fill: "white"
          }
        )
      ]
    }
  );
}
function PlainTextIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      width: "25",
      height: "25",
      viewBox: "0 0 3600 3600",
      fill: "none",
      xmlns: "http://www.w3.org/2000/svg",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M0 800C0 358.172 358.172 0 800 0H2800C3241.83 0 3600 358.172 3600 800V2800C3600 3241.83 3241.83 3600 2800 3600H800C358.172 3600 0 3241.83 0 2800V800Z",
            fill: "#1D9BD1"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M2300 1400C2300 1372 2290 1346 2272 1328C2254 1310 2228 1300 2200 1300H2198H1402C1402 1300 1402 1300 1400 1300C1372 1300 1346 1310 1328 1328C1310 1346 1300 1372 1300 1400V1402V1598C1300 1658 1342 1700 1400 1700C1458 1700 1500 1658 1500 1598V1500H1700V2100H1602C1542 2100 1500 2142 1500 2200C1500 2258 1542 2300 1602 2300H1998C2058 2300 2100 2258 2100 2200C2100 2142 2058 2100 1998 2100H1900V1500H2100V1600C2100 1660 2142 1702 2200 1702C2258 1702 2300 1660 2300 1600V1402C2300 1402 2300 1402 2300 1400Z",
            fill: "white"
          }
        )
      ]
    }
  );
}
function SendIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "19",
      height: "16",
      fill: "none",
      viewBox: "0 0 19 16",
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          fill: "#CACBCC",
          d: "M.009 16l18.19-8L.009 0 0 6.222 12.999 8 0 9.778.009 16z"
        }
      )
    }
  );
}
function ShareIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "48",
      height: "48",
      fill: "none",
      viewBox: "0 0 48 48",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "24.176",
            cy: "24.176",
            r: "20.654",
            fill: "#323845",
            fillOpacity: "0.5",
            stroke: "#fff"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M25.99 14.148a1.323 1.323 0 00-.6.676c-.106.25-.106.265-.106 2.006v1.755l-.802.055c-.445.03-1.036.1-1.314.16-4.425.87-7.96 4.698-8.921 9.655-.18.926-.247 1.716-.247 2.891 0 1.186.022 1.316.278 1.521.194.155.577.18.767.045.083-.06.564-.74 1.141-1.61.547-.831 1.146-1.686 1.331-1.907.886-1.05 1.97-1.835 3.178-2.29 1.054-.4 1.865-.516 3.531-.49l1.036.014.022 1.826.022 1.826.119.235c.335.64 1.01.86 1.573.515.291-.18 6.744-7.513 6.881-7.818.132-.31.159-.636.066-.99l-.075-.296-3.332-3.792c-1.834-2.086-3.425-3.852-3.53-3.922-.27-.185-.737-.215-1.019-.065zm6.479 8.48c0 .03-1.3 1.525-2.888 3.326l-2.887 3.276v-1.725c0-1.01-.017-1.801-.044-1.911-.066-.26-.34-.526-.59-.566-.38-.065-3.668.01-4.148.09a9.003 9.003 0 00-4.575 2.277c-.445.415-1.19 1.3-1.547 1.835l-.3.45.03-.274c.05-.44.305-1.536.486-2.076a12.49 12.49 0 011.551-3.077 10.956 10.956 0 012.583-2.511c1.582-1.07 3.244-1.54 5.435-1.54.573 0 .634-.01.767-.116.084-.06.19-.19.238-.285.088-.165.092-.265.106-1.971l.013-1.8 2.882 3.27c1.587 1.802 2.888 3.297 2.888 3.327z"
          }
        )
      ]
    }
  );
}
function SwitchCameraDisabledIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "48",
      height: "48",
      fill: "none",
      viewBox: "0 0 48 48",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "23.825",
            cy: "23.825",
            r: "23.325",
            fill: "#323845",
            fillOpacity: "0.32",
            stroke: "#A7A7A7"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { fill: "#989898", clipPath: "url(#clip0_2827_94837)", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M21.73 12.042l.171-.003c.188-.003.375-.004.562-.005l.39-.003.82-.004c.35 0 .7-.005 1.049-.01.27-.004.538-.005.807-.005.13 0 .258-.002.387-.005 1.005-.018 1.005-.018 1.327.197.133.15.231.294.33.468.078.102.155.204.234.303a65.075 65.075 0 01.447.605l.097.133.116.15.152.239c.124.146.192.201.38.247.199.012.394.011.594.005h.222c.313 0 .625-.006.938-.01 1.865-.024 1.865-.024 2.589.664.376.398.576.687.578 1.243l.003.28v.309l.002.324a215.842 215.842 0 01.004 1.433l.003 1.925c0 .597.002 1.194.005 1.792.003.513.004 1.026.004 1.54 0 .306 0 .612.003.918.002.289.002.577 0 .866l.002.316c.008.697-.053 1.22-.546 1.738-.497.47-1.01.655-1.686.648l-.206.001c-.226.001-.452 0-.678 0l-.488.001h-2.708c-.825 0-1.65 0-2.474-.002h-2.242c-.869.002-1.738.003-2.607.002h-1.378c-.432.001-.864 0-1.296-.001h-.475c-.217.001-.433 0-.65-.001l-.189.002c-.563-.008-.998-.213-1.42-.584l-.14-.12c-.492-.548-.48-1.039-.477-1.75 0-.11 0-.218-.002-.328v-.885l-.001-.741v-1.748c.002-.6 0-1.2-.002-1.8-.002-.517-.003-1.033-.002-1.55l-.001-.923c-.002-.29-.001-.58 0-.869v-.318c-.006-.727.08-1.146.566-1.685l.138-.117.136-.12c.528-.368.929-.459 1.57-.436l.464.004c.241.003.482.008.723.015.92.06.92.06 1.754-.242.173-.21.3-.415.428-.654a11.5 11.5 0 01.253-.332 79.861 79.861 0 00.446-.605l.097-.132.097-.122.083-.117c.214-.162.438-.14.697-.14zm-.433 1.695l-.133.183-.135.19c-.505.705-.505.705-.763 1.022l-.1.124c-.214.189-.481.18-.755.182l-.207.002-.223.002-.47.006-.738.008c-.238.002-.476.006-.713.01h-.223c-.457.008-.77.067-1.144.35-.147.19-.13.33-.13.569l-.003.276.001.304-.001.32c-.002.29-.002.58-.001.87v.724c-.002.57-.002 1.141 0 1.711 0 .589-.001 1.177-.003 1.766-.002.505-.002 1.01-.002 1.515l-.001.905v1.164c-.001.142 0 .284.001.427v.24c.047.26.127.346.335.504.832.329 2.07.16 2.956.162a176069.821 176069.821 0 001.824.005h.483l2.264.004c.87 0 1.74.002 2.609.005.674.003 1.348.004 2.022.004.402 0 .804 0 1.206.003.377.001.754.002 1.131.001a50.922 50.922 0 00.981.001l.166.003c.45-.006.708-.161 1.018-.477.113-.208.114-.359.115-.595l.002-.27-.001-.297a141.434 141.434 0 00.002-1.162v-.71c.002-.557.002-1.115.001-1.673 0-.575 0-1.15.002-1.725.002-.494.002-.988.002-1.482l.001-.885v-.832l.001-.45-.002-.273v-.235c-.047-.267-.149-.39-.335-.584-.393-.196-.812-.17-1.242-.171l-.469-.006-.735-.005-.713-.008h-.221c-.445-.006-.724-.044-1.05-.37l-.095-.12-.108-.137-.111-.145-.118-.15a42.51 42.51 0 01-.888-1.18c-.116-.17-.116-.17-.278-.238a8.283 8.283 0 00-.415-.013l-.262-.003-.285-.002-.292-.001-.613-.003c-.262 0-.523-.003-.784-.006-.25-.003-.5-.003-.749-.004l-.284-.003h-.265l-.232-.001c-.39.067-.61.344-.831.654z" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M12.093 26.59c.219.196.219.196.373.447.009.233.009.233-.075.446-.307.279-.66.468-1.023.664-.431.239-.856.507-1.06.974-.043.28-.016.416.11.67 1.815 2.176 6.066 2.402 8.693 2.66.787.071 1.57.119 2.36.093l-.158-.155-.205-.203-.204-.201c-.177-.185-.177-.185-.326-.408.01-.285.04-.467.195-.707.177-.112.177-.112.42-.105.325.08.496.22.724.449l.123.118.26.256c.147.146.295.29.444.435l.304.298.146.143.136.136.12.12c.18.21.255.358.25.635-.087.286-.238.456-.443.664l-.111.117c-.111.115-.223.23-.335.343l-.183.189c-.406.414-.822.828-1.306 1.151-.285-.006-.411-.044-.628-.233-.157-.288-.124-.419-.042-.734.13-.18.283-.323.447-.47.297-.258.297-.258.52-.572l-.134.004c-3.608.107-8.915-.277-11.699-2.832-.477-.462-.754-.963-.786-1.633.025-.68.367-1.259.86-1.717.56-.46 1.481-1.139 2.233-1.042z" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              fillRule: "evenodd",
              d: "M24.28 17.777l-.218-.002c-.338-.003-.662-.002-.992.078-.984.316-1.788.983-2.325 1.868l-.093.171c-.44.775-.418 1.828-.27 2.689.25 1.023 1.033 1.838 1.907 2.372.8.461 1.892.548 2.79.326 1.04-.335 1.875-.951 2.402-1.924l.093-.188c.245-.46.316-.886.328-1.401l.002-.209c.01-.912-.265-1.734-.854-2.443-.795-.826-1.61-1.31-2.77-1.337zm2.4 3.231c-.232-.836-.692-1.375-1.431-1.81-1.01-.486-2.234-.225-3.036.524-.472.548-.713 1.123-.71 1.84.024.764.24 1.366.79 1.901.711.588 1.387.758 2.304.671.694-.125 1.23-.563 1.671-1.098.424-.617.488-1.296.413-2.028z",
              clipRule: "evenodd"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M36.58 26.59c.212.077.406.177.604.285l.168.09c.833.468 1.523 1.08 1.832 2.008.06.54-.027.945-.297 1.414l-.086.15c-1.022 1.562-3.61 2.18-5.296 2.55-1.924.399-3.894.716-5.861.76l-.172.007c-.28 0-.397-.023-.605-.215-.152-.274-.12-.425-.037-.722.259-.333.647-.321 1.042-.372.403-.045.806-.08 1.21-.117 4.703-.35 4.703-.35 8.688-2.562.132-.217.148-.33.154-.582-.228-.683-.818-.987-1.416-1.316-.544-.3-.544-.3-.747-.558-.042-.26-.042-.26 0-.521.255-.293.44-.336.818-.298z" })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_2827_94837", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { fill: "#fff", d: "M0 0H30V30H0z", transform: "translate(9 9)" }) }) })
      ]
    }
  );
}
function SwitchCameraIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "48",
      height: "48",
      fill: "none",
      viewBox: "0 0 48 48",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "circle",
          {
            cx: "23.825",
            cy: "23.825",
            r: "23.325",
            fill: "#323845",
            fillOpacity: "0.32",
            stroke: "#fff"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M21.73 12.042l.171-.003c.188-.003.375-.004.562-.005l.39-.003.82-.004c.35 0 .7-.005 1.049-.01.27-.004.538-.005.807-.005.13 0 .258-.002.387-.005 1.005-.018 1.005-.018 1.327.197.133.15.231.294.33.468.078.102.155.204.234.303a65.075 65.075 0 01.447.605l.097.133.116.15.152.239c.124.146.192.201.38.247.199.012.394.011.594.005h.222c.313 0 .625-.006.938-.01 1.865-.024 1.865-.024 2.589.664.376.398.576.687.578 1.243l.003.28v.309l.002.324a215.842 215.842 0 01.004 1.433l.003 1.925c0 .597.002 1.194.005 1.792.003.513.004 1.026.004 1.54 0 .306 0 .612.003.918.002.289.002.577 0 .866l.002.316c.008.697-.053 1.22-.546 1.738-.497.47-1.01.655-1.686.648l-.206.001c-.226.001-.452 0-.678 0l-.488.001h-2.708c-.825 0-1.65 0-2.474-.002h-2.242c-.869.002-1.738.003-2.607.002h-1.378c-.432.001-.864 0-1.296-.001h-.475c-.217.001-.433 0-.65-.001l-.189.002c-.563-.008-.998-.213-1.42-.584l-.14-.12c-.492-.548-.48-1.039-.477-1.75 0-.11 0-.218-.002-.328v-.885l-.001-.741v-1.748c.002-.6 0-1.2-.002-1.8-.002-.517-.003-1.033-.002-1.55l-.001-.923c-.002-.29-.001-.58 0-.869v-.318c-.006-.727.08-1.146.566-1.685l.138-.117.136-.12c.528-.368.929-.459 1.57-.436l.464.004c.241.003.482.008.723.015.92.06.92.06 1.754-.242.173-.21.3-.415.428-.654a11.5 11.5 0 01.253-.332 79.861 79.861 0 00.446-.605l.097-.132.097-.122.083-.117c.214-.162.438-.14.697-.14zm-.433 1.695l-.133.183-.135.19c-.505.705-.505.705-.763 1.022l-.1.124c-.214.189-.481.18-.755.182l-.207.002-.223.002-.47.006-.738.008c-.238.002-.476.006-.713.01h-.223c-.457.008-.77.067-1.144.35-.147.19-.13.33-.13.569l-.003.276.001.304-.001.32c-.002.29-.002.58-.001.87v.724c-.002.57-.002 1.141 0 1.711 0 .589-.001 1.177-.003 1.766-.002.505-.002 1.01-.002 1.515l-.001.905v1.164c-.001.142 0 .284.001.427v.24c.047.26.127.346.335.504.832.329 2.07.16 2.956.162a176069.821 176069.821 0 001.824.005h.483l2.264.004c.87 0 1.74.002 2.609.005.674.003 1.348.004 2.022.004.402 0 .804 0 1.206.003.377.001.754.002 1.131.001a50.922 50.922 0 00.981.001l.166.003c.45-.006.708-.161 1.018-.477.113-.208.114-.359.115-.595l.002-.27-.001-.297a141.434 141.434 0 00.002-1.162v-.71c.002-.557.002-1.115.001-1.673 0-.575 0-1.15.002-1.725.002-.494.002-.988.002-1.482l.001-.885v-.832l.001-.45-.002-.273v-.235c-.047-.267-.149-.39-.335-.584-.393-.196-.812-.17-1.242-.171l-.469-.006-.735-.005-.713-.008h-.221c-.445-.006-.724-.044-1.05-.37l-.095-.12-.108-.137-.111-.145-.118-.15a42.51 42.51 0 01-.888-1.18c-.116-.17-.116-.17-.278-.238a8.283 8.283 0 00-.415-.013l-.262-.003-.285-.002-.292-.001-.613-.003c-.262 0-.523-.003-.784-.006-.25-.003-.5-.003-.749-.004l-.284-.003h-.265l-.232-.001c-.39.067-.61.344-.831.654z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M12.093 26.59c.219.196.219.196.373.447.009.233.009.233-.075.446-.307.279-.66.468-1.023.664-.431.239-.856.507-1.06.974-.043.28-.016.416.11.67 1.815 2.176 6.066 2.402 8.693 2.66.787.071 1.57.119 2.36.093l-.158-.155-.205-.203-.204-.201c-.177-.185-.177-.185-.326-.408.01-.285.04-.467.195-.707.177-.112.177-.112.42-.105.325.08.496.22.724.449l.123.118.26.256c.147.146.295.29.444.435l.304.298.146.143.136.136.12.12c.18.21.255.358.25.635-.087.286-.238.456-.443.664l-.111.117c-.111.115-.223.23-.335.343l-.183.189c-.406.414-.822.828-1.306 1.151-.285-.006-.411-.044-.628-.233-.157-.288-.124-.419-.042-.734.13-.18.283-.323.447-.47.297-.258.297-.258.52-.572l-.134.004c-3.608.107-8.915-.277-11.699-2.832-.477-.462-.754-.963-.786-1.633.025-.68.367-1.259.86-1.717.56-.46 1.481-1.139 2.233-1.042z"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            fillRule: "evenodd",
            d: "M24.28 17.777l-.218-.002c-.338-.003-.662-.002-.992.078-.984.316-1.788.983-2.325 1.868l-.093.171c-.44.775-.418 1.828-.27 2.689.25 1.023 1.033 1.838 1.907 2.372.8.461 1.892.548 2.79.326 1.04-.335 1.875-.951 2.402-1.924l.093-.188c.245-.46.316-.886.328-1.401l.002-.209c.01-.912-.265-1.734-.854-2.443-.795-.826-1.61-1.31-2.77-1.337zm2.4 3.231c-.232-.836-.692-1.375-1.431-1.81-1.01-.486-2.234-.225-3.036.524-.472.548-.713 1.123-.71 1.84.024.764.24 1.366.79 1.901.711.588 1.387.758 2.304.671.694-.125 1.23-.563 1.671-1.098.424-.617.488-1.296.413-2.028z",
            clipRule: "evenodd"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M36.58 26.59c.212.077.406.177.604.285l.168.09c.833.468 1.523 1.08 1.832 2.008.06.54-.027.945-.297 1.414l-.086.15c-1.022 1.562-3.61 2.18-5.296 2.55-1.924.399-3.894.716-5.861.76l-.172.007c-.28 0-.397-.023-.605-.215-.152-.274-.12-.425-.037-.722.259-.333.647-.321 1.042-.372.403-.045.806-.08 1.21-.117 4.703-.35 4.703-.35 8.688-2.562.132-.217.148-.33.154-.582-.228-.683-.818-.987-1.416-1.316-.544-.3-.544-.3-.747-.558-.042-.26-.042-.26 0-.521.255-.293.44-.336.818-.298z"
          }
        )
      ]
    }
  );
}
function TrashIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "svg",
    {
      fill: "currentColor",
      height: "800px",
      width: "800px",
      version: "1.1",
      id: "Capa_1",
      xmlns: "http://www.w3.org/2000/svg",
      viewBox: "0 0 465.311 465.311",
      children: /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: `M372.811,51.002h-59.908V36.566C312.902,16.404,296.499,0,276.335,0h-87.356c-20.163,0-36.567,16.404-36.567,36.566v14.436
		H92.5c-20.726,0-37.587,16.861-37.587,37.587v38.91c0,8.284,6.716,15,15,15h7.728v307.812c0,8.284,6.716,15,15,15H372.67
		c8.284,0,15-6.716,15-15V142.499h7.728c8.284,0,15-6.716,15-15v-38.91C410.397,67.863,393.536,51.002,372.811,51.002z
		 M182.412,36.566c0-3.621,2.946-6.566,6.567-6.566h87.356c3.621,0,6.567,2.946,6.567,6.566v14.436h-100.49V36.566z M84.914,88.589
		c0-4.184,3.403-7.587,7.587-7.587h280.31c4.184,0,7.587,3.403,7.587,7.587v23.91H84.914V88.589z M357.67,435.311H107.641V142.499
		H357.67V435.311z`
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: `M137.41,413.485c5.523,0,10-4.477,10-10V166.497c0-5.523-4.477-10-10-10s-10,4.477-10,10v236.988
		C127.41,409.008,131.887,413.485,137.41,413.485z`
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: `M200.907,413.485c5.523,0,10-4.477,10-10V166.497c0-5.523-4.477-10-10-10s-10,4.477-10,10v236.988
		C190.907,409.008,195.384,413.485,200.907,413.485z`
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: `M264.404,413.485c5.523,0,10-4.477,10-10V166.497c0-5.523-4.477-10-10-10s-10,4.477-10,10v236.988
		C254.404,409.008,258.881,413.485,264.404,413.485z`
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: `M327.901,413.485c5.523,0,10-4.477,10-10V166.497c0-5.523-4.477-10-10-10s-10,4.477-10,10v236.988
		C317.901,409.008,322.378,413.485,327.901,413.485z`
          }
        )
      ] })
    }
  );
}
function FullScreenIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "18",
      height: "18",
      fill: "none",
      viewBox: "0 0 18 18",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "rect",
          {
            width: "17",
            height: "17",
            x: "0.5",
            y: "0.5",
            stroke: "#fff",
            rx: "1.5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            stroke: "#fff",
            d: "M11.862 2.65h-.027c.204.012.49.016.903.016h2.54l-.853.854-1.553 1.552c-.234.234-.433.436-.602.61.174-.17.376-.368.61-.603l1.552-1.552.854-.853v2.54c0 .439.005.735.018.941l.003-.083c.017-.382.026-.905.026-1.515 0-.979-.003-1.468-.025-1.74a1.405 1.405 0 00-.02-.152 1.44 1.44 0 00-.154-.02c-.273-.023-.765-.026-1.748-.026-.614 0-1.141.012-1.524.03zm3.402 3.99a.043.043 0 000 0zM6.073 15.307c.028 0 .056-.002.083-.004a16.344 16.344 0 00-.942-.018h-2.54l.853-.853 1.553-1.553c.234-.234.433-.435.602-.609-.174.169-.375.368-.61.602L3.52 14.425l-.853.853v-2.54c0-.44-.005-.735-.018-.942l-.004.083a37.57 37.57 0 00-.026 1.516c0 .979.003 1.468.026 1.739a1.42 1.42 0 00.02.153l.017.004c.029.005.072.011.136.016.271.023.76.026 1.74.026.61 0 1.133-.01 1.515-.026zm-3.385-3.995a.065.065 0 000 0zm3.953 3.952a.049.049 0 000 0z"
          }
        )
      ]
    }
  );
}
const main = "_main_5vb9n_1", isSelf = "_isSelf_5vb9n_12", content$d = "_content_5vb9n_16", fileIcon = "_fileIcon_5vb9n_17", downloadButton = "_downloadButton_5vb9n_18", name = "_name_5vb9n_31", styles$C = {
  main,
  isSelf,
  content: content$d,
  fileIcon,
  downloadButton,
  name
}, MessageAttachment = (rv) => {
  const { name: tv, fileIcon: ev, onClickDownload: iv, isSelf: ov } = rv;
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "div",
    {
      className: clsx(styles$C.main, {
        [styles$C.isSelf]: ov
      }),
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$C.content, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$C.fileIcon, children: ev }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$C.name, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { title: tv, children: tv }) })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$C.downloadButton, onClick: iv, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DownloadIcon, {}) })
      ]
    }
  );
}, MicButton = ({
  active: rv,
  disabled: tv = !1,
  styleMode: ev = "callMode",
  onPress: iv
}) => /* @__PURE__ */ jsxRuntimeExports.jsx("button", { disabled: tv, onClick: iv, type: "button", children: rv ? /* @__PURE__ */ jsxRuntimeExports.jsx(MicActiveIcon, { styleMode: ev }) : /* @__PURE__ */ jsxRuntimeExports.jsx(MicInactiveIcon, { styleMode: ev }) }), minimizeicon = "_minimizeicon_1jgcg_1", container$d = "_container_1jgcg_8", styles$B = {
  minimizeicon,
  container: container$d
}, MinimizeButton = ({ disabled: rv, onPress: tv }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
  "button",
  {
    onClick: tv,
    disabled: rv,
    className: styles$B.container,
    type: "button",
    children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$B.minimizeicon })
  }
), numberButton = "_numberButton_1hwlt_1", chosen = "_chosen_1hwlt_15", styles$A = {
  numberButton,
  chosen
}, NumberButton = ({ number: rv, chosen: tv, onPress: ev }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
  "button",
  {
    className: `${styles$A.numberButton} ${tv ? styles$A.chosen : ""}`,
    onClick: ev,
    type: "button",
    children: rv
  }
), variationItem = "_variationItem_1ri1m_1", variationItemSelected = "_variationItemSelected_1ri1m_12", variationColor = "_variationColor_1ri1m_16", variationColorSelected = "_variationColorSelected_1ri1m_22", styles$z = {
  variationItem,
  variationItemSelected,
  variationColor,
  variationColorSelected
}, ProductVariationOption = ({
  option: rv,
  type: tv,
  selected: ev,
  onPress: iv
}) => {
  const ov = () => {
    iv(rv.name);
  };
  return tv === "Color" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      onClick: ov,
      className: `${styles$z.variationColor} ${ev ? styles$z.variationColorSelected : ""}`,
      children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: rv.image.imageUrl, alt: rv.name })
    }
  ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      onClick: ov,
      className: `${styles$z.variationItem} ${ev ? styles$z.variationItemSelected : ""}`,
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body", color: ev ? "#FFFFFF" : "#505152", children: rv.name })
    }
  );
}, SwitchCameraButton = ({ disabled: rv, onPress: tv }) => /* @__PURE__ */ jsxRuntimeExports.jsx("button", { disabled: rv, onClick: tv, type: "button", children: rv ? /* @__PURE__ */ jsxRuntimeExports.jsx(SwitchCameraDisabledIcon, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(SwitchCameraIcon, {}) });
var invariant = function(rv, tv, ev, iv, ov, av, sv, lv) {
  if (!rv) {
    var uv;
    if (tv === void 0)
      uv = new Error(
        "Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."
      );
    else {
      var cv = [ev, iv, ov, av, sv, lv], dv = 0;
      uv = new Error(
        tv.replace(/%s/g, function() {
          return cv[dv++];
        })
      ), uv.name = "Invariant Violation";
    }
    throw uv.framesToPop = 1, uv;
  }
}, browser = invariant;
const invariant$1 = /* @__PURE__ */ getDefaultExportFromCjs(browser);
var functionThrottle = throttle;
function throttle(rv, tv, ev) {
  var iv = null, ov = null, av = ev && ev.leading, sv = ev && ev.trailing;
  av == null && (av = !0), sv == null && (sv = !av), av == !0 && (sv = !1);
  var lv = function() {
    iv && (clearTimeout(iv), iv = null);
  }, uv = function() {
    var dv = ov;
    lv(), dv && dv();
  }, cv = function() {
    var dv = av && !iv, hv = this, pv = arguments;
    if (ov = function() {
      return rv.apply(hv, pv);
    }, iv || (iv = setTimeout(function() {
      if (iv = null, sv)
        return ov();
    }, tv)), dv)
      return dv = !1, ov();
  };
  return cv.cancel = lv, cv.flush = uv, cv;
}
const DEBUG_LOG_KEY = "__rpldy-logger-debug__", BATCH_STATES = {
  PENDING: "pending",
  ADDED: "added",
  PROCESSING: "processing",
  UPLOADING: "uploading",
  CANCELLED: "cancelled",
  FINISHED: "finished",
  ABORTED: "aborted",
  ERROR: "error"
}, FILE_STATES = {
  PENDING: "pending",
  ADDED: "added",
  UPLOADING: "uploading",
  CANCELLED: "cancelled",
  FINISHED: "finished",
  ERROR: "error",
  ABORTED: "aborted"
}, hasWindow = () => typeof window == "object" && !!window.document;
let isDebug = null;
const isDebugOn = () => (typeof isDebug != "boolean" && (isDebug = hasWindow() && ("location" in window && !!~window.location.search.indexOf("rpldy_debug=true") || window[DEBUG_LOG_KEY] === !0)), !!isDebug), setDebug = (rv) => {
  hasWindow() && (window[DEBUG_LOG_KEY] = rv), isDebug = rv ? !0 : null;
}, debugLog = (...rv) => {
  isDebugOn() && console.log(...rv);
}, triggerCancellable = (rv, tv, ...ev) => (ov, ...av) => new Promise((sv, lv) => {
  const uv = rv(ov, ...av);
  uv && uv.length ? Promise.all(uv).catch(lv).then((cv) => cv && sv(!!~cv.findIndex((dv) => dv === !1))) : sv(!1);
});
function isFunction$1(rv) {
  return typeof rv == "function";
}
var isFunction_1 = isFunction$1;
const isFunction$2 = /* @__PURE__ */ getDefaultExportFromCjs(isFunction_1), getPropsExtractor = (rv) => {
  const tv = [].concat(rv);
  return (ev) => ev.map((iv) => tv.map((ov) => iv[ov]).join());
}, isSamePropInArrays = (rv, tv, ev) => {
  let iv = !0;
  const ov = getPropsExtractor(ev);
  if (rv && tv && rv.length === tv.length) {
    const av = ov(rv), sv = ov(tv);
    iv = !!av.find((lv, uv) => lv !== sv[uv]);
  }
  return !iv;
};
function isProduction() {
  return !0;
}
var isProduction_1 = isProduction;
const isProduction$1 = /* @__PURE__ */ getDefaultExportFromCjs(isProduction_1), devFreeze = (rv) => isProduction$1() ? rv : Object.freeze(rv), isPlainObject$1 = (rv) => {
  var tv;
  return !!rv && typeof rv == "object" && (((tv = Object.getPrototypeOf(rv)) == null ? void 0 : tv.constructor.name) === "Object" || Object.getPrototypeOf(rv) === null);
}, isMergeObj = (rv) => isPlainObject$1(rv) || Array.isArray(rv), getKeys = (rv, tv) => {
  const ev = Object.keys(rv);
  return tv.withSymbols ? ev.concat(Object.getOwnPropertySymbols(rv)) : ev;
}, getMerge = (rv = {}) => {
  const tv = (ev, ...iv) => (ev && iv.length && iv.forEach((ov) => {
    ov && getKeys(ov, rv).forEach((av) => {
      const sv = ov[av];
      (!rv.predicate || rv.predicate(av, sv)) && (typeof sv < "u" || rv.undefinedOverwrites) && (isMergeObj(sv) ? ((typeof ev[av] > "u" || !isPlainObject$1(ev[av])) && (ev[av] = Array.isArray(sv) ? [] : {}), tv(ev[av], sv)) : ev[av] = sv);
    });
  }), ev);
  return tv;
}, merge = getMerge(), clone$1 = (rv, tv = merge) => isMergeObj(rv) ? tv(Array.isArray(rv) ? [] : {}, rv) : rv, pick = (rv, tv) => rv && Object.keys(rv).reduce((ev, iv) => (~tv.indexOf(iv) && (ev[iv] = rv[iv]), ev), {});
function isPromise(rv) {
  return !!rv && typeof rv == "object" && typeof rv.then == "function";
}
const supportsIdle = hasWindow() && window.requestIdleCallback, scheduler = supportsIdle ? window.requestIdleCallback : setTimeout, clear = supportsIdle ? window.cancelIdleCallback : clearTimeout, scheduleIdleWork = (rv, tv = 0) => {
  const ev = scheduler(rv, supportsIdle ? {
    timeout: tv
  } : tv);
  return () => clear(ev);
};
function isEmpty(rv) {
  return rv == null;
}
const triggerUpdater = (rv, tv, ...ev) => {
  const iv = (ov, ...av) => new Promise((sv, lv) => {
    const uv = rv(ov, ...av);
    uv && uv.length ? Promise.all(uv).catch(lv).then((cv) => {
      let dv;
      if (cv)
        for (; isEmpty(dv) && cv.length; )
          dv = cv.pop();
      sv(isEmpty(dv) ? void 0 : dv);
    }) : sv();
  });
  return tv ? iv(tv, ...ev) : iv;
}, BISYM = Symbol.for("__rpldy-bi__");
let iCounter = 0;
const getBatchItemWithUrl = (rv, tv) => (rv.url = tv, rv), getBatchItemWithFile = (rv, tv) => (rv.file = tv, rv), isLikeFile = (rv) => rv && (rv instanceof File || rv instanceof Blob || !!(typeof rv == "object" && rv.name && rv.type)), getIsBatchItem = (rv) => !!(typeof rv == "object" && rv.id && rv.batchId && rv[BISYM] === !0), createBatchItem = (rv, tv, ev = !1) => {
  const iv = getIsBatchItem(rv);
  iCounter += iv ? 0 : 1;
  const ov = iv && rv.id && typeof rv.id == "string" ? rv.id : `${tv}.item-${iCounter}`, av = ev ? FILE_STATES.PENDING : FILE_STATES.ADDED;
  let sv = {
    id: ov,
    batchId: tv,
    state: av,
    uploadStatus: 0,
    total: 0,
    completed: 0,
    loaded: 0,
    recycled: iv,
    previousBatch: iv ? rv.batchId : null
  };
  Object.defineProperty(sv, BISYM, {
    value: !0,
    writable: !0
  });
  const lv = iv ? rv.file || rv.url : rv;
  if (typeof lv == "string")
    sv = getBatchItemWithUrl(sv, lv);
  else if (isLikeFile(lv))
    sv = getBatchItemWithFile(sv, lv);
  else
    throw new Error(`Unknown type of file added: ${typeof lv}`);
  return sv;
};
class XhrPromise extends Promise {
  constructor(tv, ev) {
    super(tv), this.xhr = ev;
  }
}
const setHeaders = (rv, tv) => {
  tv && Object.keys(tv).forEach((ev) => {
    tv[ev] !== void 0 && rv.setRequestHeader(ev, tv[ev]);
  });
}, request = (rv, tv, ev = {}) => {
  const iv = new XMLHttpRequest();
  return new XhrPromise((ov, av) => {
    var sv;
    iv.onerror = () => av(iv), iv.ontimeout = () => av(iv), iv.onabort = () => av(iv), iv.onload = () => ov(iv), iv.open((ev == null ? void 0 : ev.method) || "GET", rv), setHeaders(iv, ev == null ? void 0 : ev.headers), iv.withCredentials = !!(ev != null && ev.withCredentials), (sv = ev == null ? void 0 : ev.preSend) == null || sv.call(ev, iv), iv.send(tv);
  }, iv);
}, parseResponseHeaders = (rv) => {
  let tv;
  try {
    tv = rv.getAllResponseHeaders().trim().split(/[\r\n]+/).reduce((ev, iv) => {
      const [ov, av] = iv.split(": ");
      return ev[ov] = av, ev;
    }, {});
  } catch {
    debugLog("uploady.request: failed to read response headers", rv);
  }
  return tv;
}, defaults = devFreeze({
  allowRegisterNonExistent: !0,
  canAddEvents: !0,
  canRemoveEvents: !0,
  collectStats: !1
}), validateFunction = (rv, tv) => {
  if (!isFunction$2(rv))
    throw new Error(`'${tv}' is not a valid function`);
}, isUndefined$1 = (rv) => typeof rv > "u", LESYM = Symbol.for("__le__"), LE_PACK_SYM = Symbol.for("__le__pack__"), getLE = (rv) => rv ? rv[LESYM] : null, getValidLE = (rv) => {
  const tv = getLE(rv);
  if (!tv)
    throw new Error("Didnt find LE internal object. Something very bad happened!");
  return tv;
}, isLE = (rv) => !!getLE(rv), addRegistration = (rv, tv, ev, iv = !1) => {
  validateFunction(ev, "cb");
  const ov = getValidLE(rv);
  if (!ov.options.allowRegisterNonExistent && !~ov.events.indexOf(tv))
    throw new Error(`Cannot register for event ${tv.toString()} that wasn't already defined (allowRegisterNonExistent = false)`);
  const av = ov.registry[tv] || [];
  return av.find((sv) => sv.cb === ev) || (av.push({
    name: tv,
    cb: ev,
    once: iv
  }), ov.registry[tv] = av), () => unregister.call(rv, tv, ev);
}, findRegistrations = (rv, tv) => {
  const ev = getValidLE(rv).registry;
  return tv ? ev[tv] ? ev[tv].slice() : [] : Object.values(ev).flat();
}, publicMethods = {
  on: register,
  once: registerOnce,
  off: unregister,
  getEvents
}, getPublicMethods = () => Object.entries(publicMethods).reduce((rv, [tv, ev]) => (rv[tv] = {
  value: ev
}, rv), {}), apiMethods = {
  trigger,
  addEvent,
  removeEvent,
  hasEvent,
  hasEventRegistrations,
  assign
}, createApi = (rv) => Object.keys(apiMethods).reduce((tv, ev) => (tv[ev] = apiMethods[ev].bind(rv), tv), {
  target: rv,
  ...apiMethods
}), cleanRegistryForName = (rv, tv, ev = !1) => {
  const iv = getValidLE(rv).registry;
  iv[tv] && (ev || !iv[tv].length) && delete iv[tv];
}, removeRegItem = (rv, tv, ev) => {
  const iv = getValidLE(rv).registry;
  iv[tv] && (ev ? (iv[tv] = iv[tv].filter((ov) => ov.cb !== ev), cleanRegistryForName(rv, tv)) : cleanRegistryForName(rv, tv, !0));
};
function register(rv, tv) {
  return addRegistration(this, rv, tv);
}
function registerOnce(rv, tv) {
  return addRegistration(this, rv, tv, !0);
}
function unregister(rv, tv) {
  removeRegItem(this, rv, tv);
}
function getEvents() {
  return getValidLE(this).events.slice();
}
function trigger(rv, ...tv) {
  var ov;
  const ev = findRegistrations(this, rv);
  let iv;
  if (ev.length) {
    let av;
    tv.length === 1 && ((ov = tv[0]) == null ? void 0 : ov[LE_PACK_SYM]) === !0 && (av = tv[0].resolve()), iv = ev.map((sv) => {
      let lv;
      return sv.once && removeRegItem(this, rv, sv.cb), av ? lv = sv.cb(...av) : tv.length ? tv.length === 1 ? lv = sv.cb(tv[0]) : tv.length === 2 ? lv = sv.cb(tv[0], tv[1]) : tv.length === 3 ? lv = sv.cb(tv[0], tv[1], tv[2]) : lv = sv.cb(...tv) : lv = sv.cb(), lv;
    }).filter((sv) => !isUndefined$1(sv)).map((sv) => isPromise(sv) ? sv : Promise.resolve(sv));
  }
  return iv && (iv.length ? iv : void 0);
}
function assign(rv) {
  const tv = getValidLE(this);
  return defineLifeData(rv, tv.options, tv.events, tv.registry, tv.stats), createApi(rv);
}
function addEvent(rv) {
  const tv = getValidLE(this);
  if (tv.options.canAddEvents)
    if (!~tv.events.indexOf(rv))
      tv.events.push(rv);
    else
      throw new Error(`Event '${rv}' already defined`);
  else
    throw new Error("Cannot add new events (canAddEvents = false)");
}
function removeEvent(rv) {
  const tv = getValidLE(this);
  if (tv.options.canRemoveEvents) {
    const ev = tv.events.indexOf(rv);
    tv.events.splice(ev, 1);
  } else
    throw new Error("Cannot remove events (canRemoveEvents = false)");
}
function hasEvent(rv) {
  return !!~getValidLE(this).events.indexOf(rv);
}
function hasEventRegistrations(rv) {
  return !!findRegistrations(this, rv).length;
}
const defineLifeData = (rv, tv, ev = [], iv = {}, ov = {}) => {
  Object.defineProperties(rv, {
    [LESYM]: {
      value: Object.seal({
        registry: iv,
        events: ev,
        options: tv,
        stats: ov
      })
    },
    ...getPublicMethods()
  });
}, addLife = (rv, tv = [], ev) => {
  const iv = rv || {}, ov = {
    ...defaults,
    ...ev
  };
  return isLE(iv) || defineLifeData(iv, ov, tv), createApi(iv);
}, createLifePack = (rv) => {
  const tv = {
    resolve: () => [].concat(rv())
  };
  return Object.defineProperty(tv, LE_PACK_SYM, {
    value: !0,
    configurable: !1
  }), tv;
}, fastAbortBatch = (rv, tv) => {
  rv.items.forEach(({
    id: ev
  }) => {
    var iv;
    return (iv = tv[ev]) == null ? void 0 : iv.call(tv);
  });
}, fastAbortAll = (rv) => {
  Object.values(rv).forEach((tv) => tv());
}, abortNonUploadingItem = (rv, tv, ev) => (debugLog(`abort: aborting ${rv.state} item  - `, rv), ev(rv.id, {
  status: 0,
  state: FILE_STATES.ABORTED,
  response: "aborted"
}), !0), ITEM_STATE_ABORTS = {
  [FILE_STATES.UPLOADING]: (rv, tv) => (debugLog("abort: aborting uploading item  - ", rv), tv[rv.id]()),
  [FILE_STATES.ADDED]: abortNonUploadingItem,
  [FILE_STATES.PENDING]: abortNonUploadingItem
}, callAbortOnItem = (rv, tv, ev) => {
  const iv = rv == null ? void 0 : rv.state, ov = !!iv && ITEM_STATE_ABORTS[iv];
  return ov ? ov(rv, tv, ev) : !1;
}, abortItem = (rv, tv, ev, iv) => callAbortOnItem(tv[rv], ev, iv), getIsFastAbortNeeded = (rv, tv) => {
  let ev = !1;
  return tv !== 0 && tv && (ev = rv >= tv), ev;
}, abortAll = (rv, tv, ev, iv, ov) => {
  const av = Object.values(ev).flat(), sv = getIsFastAbortNeeded(av.length, ov.fastAbortThreshold);
  return debugLog(`abort: doing abort-all (${sv ? "fast" : "normal"} abort)`), sv ? fastAbortAll(tv) : av.forEach((lv) => abortItem(lv, rv, tv, iv)), {
    isFast: sv
  };
}, abortBatch = (rv, tv, ev, iv, ov, av) => {
  const sv = tv.fastAbortThreshold === 0 ? 0 : tv.fastAbortThreshold || av.fastAbortThreshold, lv = getIsFastAbortNeeded(iv[rv.id].length, sv);
  return debugLog(`abort: doing abort-batch on: ${rv.id} (${lv ? "fast" : "normal"} abort)`), lv ? fastAbortBatch(rv, ev) : rv.items.forEach((uv) => callAbortOnItem(uv, ev, ov)), {
    isFast: lv
  };
}, getAbortEnhancer = () => (rv) => (rv.update({
  abortAll,
  abortBatch,
  abortItem
}), rv), UPLOADER_EVENTS = devFreeze({
  BATCH_ADD: "BATCH-ADD",
  BATCH_START: "BATCH-START",
  BATCH_PROGRESS: "BATCH_PROGRESS",
  BATCH_FINISH: "BATCH-FINISH",
  BATCH_ABORT: "BATCH-ABORT",
  BATCH_CANCEL: "BATCH-CANCEL",
  BATCH_ERROR: "BATCH-ERROR",
  BATCH_FINALIZE: "BATCH-FINALIZE",
  ITEM_START: "FILE-START",
  ITEM_CANCEL: "FILE-CANCEL",
  ITEM_PROGRESS: "FILE-PROGRESS",
  ITEM_FINISH: "FILE-FINISH",
  ITEM_ABORT: "FILE-ABORT",
  ITEM_ERROR: "FILE-ERROR",
  ITEM_FINALIZE: "FILE-FINALIZE",
  REQUEST_PRE_SEND: "REQUEST_PRE_SEND",
  ALL_ABORT: "ALL_ABORT"
}), PROGRESS_DELAY = 50, SENDER_EVENTS = devFreeze({
  ITEM_PROGRESS: "ITEM_PROGRESS",
  BATCH_PROGRESS: "BATCH_PROGRESS"
}), ITEM_FINALIZE_STATES = [FILE_STATES.FINISHED, FILE_STATES.ERROR, FILE_STATES.CANCELLED, FILE_STATES.ABORTED], PROXY_SYM = Symbol.for("__rpldy-sstt-proxy__"), STATE_SYM = Symbol.for("__rpldy-sstt-state__"), isProxy = (rv) => !isProduction$1() && !!rv && !!~Object.getOwnPropertySymbols(rv).indexOf(PROXY_SYM), isNativeFile = (rv) => hasWindow() && rv instanceof File || rv.name && rv.size && rv.uri, isProxiable = (rv) => Array.isArray(rv) || isPlainObject$1(rv) && !isNativeFile(rv), mergeWithSymbols = getMerge({
  withSymbols: !0,
  predicate: (rv) => rv !== PROXY_SYM && rv !== STATE_SYM
}), getIsUpdateable = (rv) => isProduction$1() ? !0 : rv[STATE_SYM].isUpdateable, setIsUpdateable = (rv, tv) => {
  isProduction$1() || (rv[STATE_SYM].isUpdateable = tv);
}, deepProxy = (rv, tv) => {
  let ev;
  return isProxiable(rv) && (isProxy(rv) || (rv[PROXY_SYM] = !0, ev = new Proxy(rv, tv)), Object.keys(rv).forEach((iv) => {
    rv[iv] = deepProxy(rv[iv], tv);
  })), ev || rv;
}, unwrapProxy = (rv) => isProxy(rv) ? clone$1(rv, mergeWithSymbols) : rv, createState = (rv) => {
  const tv = {
    set: (iv, ov, av) => (getIsUpdateable(ev) && (iv[ov] = deepProxy(av, tv)), !0),
    get: (iv, ov) => ov === PROXY_SYM ? unwrapProxy(iv) : iv[ov],
    defineProperty: () => {
      throw new Error("Simple State doesnt support defining property");
    },
    setPrototypeOf: () => {
      throw new Error("Simple State doesnt support setting prototype");
    },
    deleteProperty: (iv, ov) => (getIsUpdateable(ev) && delete iv[ov], !0)
  };
  !isProduction$1() && !isProxy(rv) && Object.defineProperty(rv, STATE_SYM, {
    value: {
      isUpdateable: !1
    },
    configurable: !0
  });
  const ev = isProduction$1() ? rv : deepProxy(rv, tv);
  return {
    state: ev,
    update: (iv) => {
      if (!isProduction$1() && getIsUpdateable(ev))
        throw new Error("Can't call update on State already being updated!");
      try {
        setIsUpdateable(ev, !0), iv(ev);
      } finally {
        setIsUpdateable(ev, !1);
      }
      return ev;
    },
    unwrap: (iv) => iv ? unwrapProxy(iv) : isProxy(ev) ? unwrapProxy(ev) : ev
  };
}, finalizeItem = (rv, tv, ev = !1) => {
  rv.updateState((iv) => {
    const {
      batchId: ov
    } = iv.items[tv] || {
      batchId: null
    };
    ev && delete iv.items[tv];
    const av = ov ? iv.itemQueue[ov].indexOf(tv) : -1;
    ~av && ov && iv.itemQueue[ov].splice(av, 1);
    const sv = iv.activeIds.indexOf(tv);
    ~sv && iv.activeIds.splice(sv, 1);
  });
}, getIsItemExists = (rv, tv) => !!rv.getState().items[tv], getIsItemFinalized = (rv) => ITEM_FINALIZE_STATES.includes(rv.state), mergeWithUndefined = getMerge({
  undefinedOverwrites: !0
}), processPrepareResponse = (rv, tv, ev, iv) => {
  let ov = ev, av = tv;
  if (iv) {
    if (debugLog(`uploader.queue: REQUEST_PRE_SEND(${rv}) event returned updated items/options`, iv), iv.items) {
      if (iv.items.length !== tv.length || !isSamePropInArrays(iv.items, tv, ["id", "batchId", "recycled"]))
        throw new Error(`REQUEST_PRE_SEND(${rv}) event handlers must return same items with same ids`);
      av = iv.items;
    }
    iv.options && (ov = mergeWithUndefined({}, ev, iv.options));
  }
  return {
    items: av,
    options: ov,
    cancelled: iv === !1
  };
}, triggerItemsPrepareEvent = (rv, tv, ev, iv, ov, av) => triggerUpdater(rv.trigger, ov, tv, iv).then((sv) => (av == null || av(sv), processPrepareResponse(ov, ev, iv, sv))), persistPrepareResponse = (rv, tv) => {
  if (tv.items[0] && rv.getState().batches[tv.items[0].batchId]) {
    rv.updateState((iv) => {
      tv.items.forEach((ov) => {
        getIsItemFinalized(iv.items[ov.id]) || (iv.items[ov.id] = ov);
      }), iv.batches[tv.items[0].batchId].batchOptions = tv.options;
    });
    const ev = rv.getState();
    tv.items = tv.items.map((iv) => ev.items[iv.id]), tv.options = ev.batches[tv.items[0].batchId].batchOptions;
  }
}, prepareItems = (rv, tv, ev, iv, ov, av) => {
  const sv = ev(tv), lv = rv.getState().batches[sv[0].batchId].batchOptions, uv = (iv == null ? void 0 : iv(tv, lv)) || tv;
  return triggerItemsPrepareEvent(rv, uv, sv, lv, av, ov).then((cv) => (cv.cancelled || persistPrepareResponse(rv, cv), cv));
}, getItemsPrepareUpdater = (rv, tv, ev = null, iv = null) => (ov, av) => prepareItems(ov, av, tv, ev, iv, rv), prepareBatchStartItems = getItemsPrepareUpdater(UPLOADER_EVENTS.BATCH_START, (rv) => rv.items, null, ({
  batch: rv
} = {
  batch: !1
}) => {
  if (rv)
    throw new Error("BATCH_START event handlers cannot update batch data. Only items & options");
}), BATCH_READY_STATES = [BATCH_STATES.ADDED, BATCH_STATES.PROCESSING, BATCH_STATES.UPLOADING], BATCH_FINISHED_STATES = [BATCH_STATES.ABORTED, BATCH_STATES.CANCELLED, BATCH_STATES.FINISHED, BATCH_STATES.ERROR], getBatchFromState = (rv, tv) => rv.batches[tv].batch, getBatch = (rv, tv) => getBatchFromState(rv.getState(), tv), getBatchDataFromItemId = (rv, tv) => {
  const ev = rv.getState(), iv = ev.items[tv];
  return ev.batches[iv.batchId];
}, getBatchFromItemId = (rv, tv) => getBatchDataFromItemId(rv, tv).batch, removeBatchItems = (rv, tv) => {
  getBatch(rv, tv).items.forEach(({
    id: iv
  }) => finalizeItem(rv, iv, !0));
}, removeBatch = (rv, tv) => {
  rv.updateState((ev) => {
    delete ev.batches[tv], delete ev.itemQueue[tv];
    const iv = ev.batchQueue.indexOf(tv);
    ~iv && ev.batchQueue.splice(iv, 1);
    const ov = ev.batchesStartPending.indexOf(tv);
    ~ov && ev.batchesStartPending.splice(ov, 1);
  });
}, finalizeBatch = (rv, tv, ev, iv = BATCH_STATES.FINISHED, ov) => {
  rv.updateState((av) => {
    const sv = getBatchFromState(av, tv);
    sv.state = iv, ov && (sv.additionalInfo = ov);
  }), triggerUploaderBatchEvent(rv, tv, ev), triggerUploaderBatchEvent(rv, tv, UPLOADER_EVENTS.BATCH_FINALIZE);
}, cancelBatchWithId = (rv, tv) => {
  debugLog("uploady.uploader.batchHelpers: cancelling batch: ", tv), finalizeBatch(rv, tv, UPLOADER_EVENTS.BATCH_CANCEL, BATCH_STATES.CANCELLED), removeBatchItems(rv, tv), removeBatch(rv, tv);
}, cancelBatchForItem = (rv, tv) => {
  if (getIsItemExists(rv, tv)) {
    const ev = getBatchDataFromItemId(rv, tv), iv = ev == null ? void 0 : ev.batch.id;
    iv ? cancelBatchWithId(rv, iv) : debugLog(`uploady.uploader.batchHelpers: cancel batch called for batch already removed (item id = ${tv})`);
  }
}, failBatchForItem = (rv, tv, ev) => {
  const iv = getBatchFromItemId(rv, tv), ov = iv.id;
  debugLog("uploady.uploader.batchHelpers: failing batch: ", {
    batch: iv
  }), finalizeBatch(rv, ov, UPLOADER_EVENTS.BATCH_ERROR, BATCH_STATES.ERROR, ev.message), removeBatchItems(rv, ov), removeBatch(rv, ov);
}, isItemBatchStartPending = (rv, tv) => {
  const ev = getBatchFromItemId(rv, tv);
  return rv.getState().batchesStartPending.includes(ev.id);
}, isNewBatchStarting = (rv, tv) => {
  const ev = getBatchFromItemId(rv, tv);
  return rv.getState().currentBatch !== ev.id;
}, loadNewBatchForItem = (rv, tv) => {
  const ev = getBatchFromItemId(rv, tv);
  return rv.updateState((iv) => {
    iv.batchesStartPending.push(ev.id);
  }), prepareBatchStartItems(rv, ev).then(({
    cancelled: iv
  }) => {
    let ov = !1;
    return rv.updateState((av) => {
      const sv = av.batchesStartPending.indexOf(ev.id);
      av.batchesStartPending.splice(sv, 1);
    }), iv || (ov = !getIsItemExists(rv, tv), ov || rv.updateState((av) => {
      av.currentBatch = ev.id;
    })), !iv && !ov;
  });
}, cleanUpFinishedBatches = (rv) => {
  scheduleIdleWork(() => {
    const tv = rv.getState();
    Object.keys(tv.batches).forEach((ev) => {
      const {
        batch: iv,
        finishedCounter: ov
      } = tv.batches[ev], {
        orgItemCount: av
      } = iv, sv = getIsBatchFinalized(iv);
      av === ov && (!sv && iv.completed !== 100 && (rv.updateState((lv) => {
        const uv = getBatchFromState(lv, ev);
        uv.completed = 100, uv.loaded = uv.items.reduce((cv, {
          loaded: dv
        }) => cv + dv, 0);
      }), triggerUploaderBatchEvent(rv, ev, UPLOADER_EVENTS.BATCH_PROGRESS)), rv.updateState((lv) => {
        lv.currentBatch === ev && (lv.currentBatch = null);
      }), debugLog(`uploady.uploader.batchHelpers: cleaning up batch: ${iv.id}`), sv || finalizeBatch(rv, ev, UPLOADER_EVENTS.BATCH_FINISH), removeBatchItems(rv, ev), removeBatch(rv, ev));
    });
  });
}, triggerUploaderBatchEvent = (rv, tv, ev) => {
  const iv = rv.getState(), {
    batch: ov,
    batchOptions: av
  } = iv.batches[tv], sv = iv.items, lv = {
    ...unwrapProxy(ov),
    items: ov.items.map(({
      id: uv
    }) => unwrapProxy(sv[uv]))
  };
  rv.trigger(ev, lv, unwrapProxy(av));
}, getIsBatchReady = (rv, tv) => {
  const ev = getBatchFromState(rv.getState(), tv);
  return BATCH_READY_STATES.includes(ev.state);
}, detachRecycledFromPreviousBatch = (rv, tv) => {
  const {
    previousBatch: ev
  } = tv;
  if (tv.recycled && ev && rv.getState().batches[ev]) {
    const {
      id: iv
    } = getBatchFromItemId(rv, tv.id);
    iv === ev && rv.updateState((ov) => {
      const av = getBatchFromState(ov, iv), sv = av.items.findIndex(({
        id: lv
      }) => lv === tv.id);
      ~sv && av.items.splice(sv, 1);
    });
  }
}, preparePendingForUpload = (rv, tv) => {
  rv.updateState((ev) => {
    Object.keys(ev.batches).forEach((iv) => {
      const ov = ev.batches[iv], {
        batch: av,
        batchOptions: sv
      } = ov;
      av.state === BATCH_STATES.PENDING && (av.items.forEach((lv) => {
        lv.state = FILE_STATES.ADDED;
      }), av.state = BATCH_STATES.ADDED, ov.batchOptions = merge({}, sv, tv));
    });
  });
}, removePendingBatches = (rv) => {
  const tv = rv.getState().batches;
  Object.keys(tv).filter((ev) => tv[ev].batch.state === BATCH_STATES.PENDING).forEach((ev) => {
    removeBatchItems(rv, ev), removeBatch(rv, ev);
  });
}, incrementBatchFinishedCounter = (rv, tv) => {
  rv.updateState((ev) => {
    ev.batches[tv].finishedCounter += 1;
  });
}, getIsBatchFinalized = (rv) => BATCH_FINISHED_STATES.includes(rv.state), clearBatchData = (rv, tv) => {
  rv.updateState((ev) => {
    const {
      items: iv
    } = getBatchFromState(ev, tv);
    delete ev.batches[tv], delete ev.itemQueue[tv];
    const ov = ev.batchQueue.indexOf(tv);
    ~ov && ev.batchQueue.splice(ov, 1), ev.currentBatch === tv && (ev.currentBatch = null), iv.forEach(({
      id: av
    }) => {
      delete ev.items[av];
      const sv = ev.activeIds.indexOf(av);
      ~sv && ev.activeIds.splice(sv, 1);
    });
  });
}, FILE_STATE_TO_EVENT_MAP = {
  [FILE_STATES.PENDING]: null,
  [FILE_STATES.ADDED]: UPLOADER_EVENTS.ITEM_START,
  [FILE_STATES.FINISHED]: UPLOADER_EVENTS.ITEM_FINISH,
  [FILE_STATES.ERROR]: UPLOADER_EVENTS.ITEM_ERROR,
  [FILE_STATES.CANCELLED]: UPLOADER_EVENTS.ITEM_CANCEL,
  [FILE_STATES.ABORTED]: UPLOADER_EVENTS.ITEM_ABORT,
  [FILE_STATES.UPLOADING]: UPLOADER_EVENTS.ITEM_PROGRESS
}, getIsFinalized = (rv) => !!~ITEM_FINALIZE_STATES.indexOf(rv.state), processFinishedRequest = (rv, tv, ev) => {
  tv.forEach((iv) => {
    var lv;
    const ov = rv.getState(), {
      id: av,
      info: sv
    } = iv;
    if (debugLog("uploader.processor.queue: request finished for item - ", {
      id: av,
      info: sv
    }), ov.items[av]) {
      rv.updateState((dv) => {
        const hv = dv.items[av];
        hv.state = sv.state, hv.uploadResponse = sv.response, hv.uploadStatus = sv.status, getIsFinalized(hv) && delete dv.aborts[av];
      });
      const uv = rv.getState().items[av];
      if (sv.state === FILE_STATES.FINISHED && uv.completed < 100) {
        const dv = ((lv = uv.file) == null ? void 0 : lv.size) || 0;
        rv.handleItemProgress(uv, 100, dv, dv);
      }
      const {
        batchOptions: cv
      } = getBatchDataFromItemId(rv, av);
      FILE_STATE_TO_EVENT_MAP[uv.state] && rv.trigger(FILE_STATE_TO_EVENT_MAP[uv.state], uv, cv), getIsFinalized(uv) && (incrementBatchFinishedCounter(rv, uv.batchId), rv.trigger(UPLOADER_EVENTS.ITEM_FINALIZE, uv, cv));
    }
    finalizeItem(rv, av);
  }), cleanUpFinishedBatches(rv), ev(rv);
}, preparePreRequestItems = getItemsPrepareUpdater(UPLOADER_EVENTS.REQUEST_PRE_SEND, (rv) => rv, (rv, tv) => ({
  items: rv,
  options: tv
})), updateUploadingState = (rv, tv, ev) => {
  rv.updateState((iv) => {
    tv.forEach((ov) => {
      const av = iv.items[ov.id];
      av.state = FILE_STATES.UPLOADING, iv.aborts[ov.id] = ev.abort;
    });
  });
}, sendAllowedItems = (rv, tv, ev) => {
  var sv;
  const {
    items: iv,
    options: ov
  } = tv, av = (sv = rv.getState().batches[iv[0].batchId]) == null ? void 0 : sv.batch;
  if (av) {
    let lv;
    try {
      lv = rv.sender.send(iv, av, ov);
    } catch (cv) {
      debugLog("uploader.queue: sender failed with unexpected error", cv), lv = {
        request: Promise.resolve({
          status: 0,
          state: FILE_STATES.ERROR,
          response: cv.message
        }),
        abort: () => !1,
        senderType: "exception-handler"
      };
    }
    const {
      request: uv
    } = lv;
    updateUploadingState(rv, iv, lv), uv.then((cv) => {
      const dv = iv.map((hv) => ({
        id: hv.id,
        info: cv
      }));
      processFinishedRequest(rv, dv, ev);
    });
  }
}, reportCancelledItems = (rv, tv, ev, iv) => {
  const ov = ev.map((av, sv) => av ? tv[sv].id : null).filter(Boolean);
  if (ov.length) {
    const av = ov.map((sv) => ({
      id: sv,
      info: {
        status: 0,
        state: FILE_STATES.CANCELLED,
        response: "cancel"
      }
    }));
    processFinishedRequest(rv, av, iv);
  }
  return !!ov.length;
}, reportPreparedError = (rv, tv, ev, iv) => {
  const ov = ev.map(({
    id: av
  }) => ({
    id: av,
    info: {
      status: 0,
      state: FILE_STATES.ERROR,
      response: rv
    }
  }));
  processFinishedRequest(tv, ov, iv);
}, getAllowedItem = (rv, tv) => {
  const ev = tv.getState().items[rv];
  return ev && !getIsItemFinalized(ev) ? ev : void 0;
}, processAllowedItems = ({
  allowedItems: rv,
  cancelledResults: tv,
  queue: ev,
  items: iv,
  ids: ov,
  next: av
}) => {
  const sv = rv.length ? preparePreRequestItems(ev, rv) : Promise.resolve();
  let lv = tv;
  return sv.catch((uv) => {
    debugLog("uploader.queue: encountered error while preparing items for request", uv), reportPreparedError(uv, ev, iv, av);
  }).then((uv) => {
    let cv;
    return uv && (uv.cancelled ? lv = ov.map(() => !0) : uv.items.some((hv) => getIsItemFinalized(hv)) ? debugLog("uploader.queue: send data contains aborted items - not sending") : sendAllowedItems(ev, {
      items: uv.items,
      options: uv.options
    }, av)), reportCancelledItems(ev, iv, lv, av) || (cv = av(ev)), cv;
  });
}, processBatchItems = (rv, tv, ev) => {
  const iv = rv.getState();
  let ov = Object.values(iv.items);
  return ov = ov.filter((av) => tv.includes(av.id) && !getIsItemFinalized(av)), Promise.all(ov.map((av) => {
    const {
      batchOptions: sv
    } = getBatchDataFromItemId(rv, av.id);
    return rv.runCancellable(UPLOADER_EVENTS.ITEM_START, av, sv);
  })).then((av) => ({
    allowedItems: av.map((lv, uv) => lv ? null : getAllowedItem(ov[uv].id, rv)).filter(Boolean),
    cancelledResults: av,
    queue: rv,
    items: ov,
    ids: tv,
    next: ev
  })).then(processAllowedItems);
}, getIsItemInActiveRequest = (rv, tv) => rv.getState().activeIds.flat().includes(tv), getIsItemReady = (rv) => rv.state === FILE_STATES.ADDED, findNextItemIndex = (rv) => {
  const tv = rv.getState(), ev = tv.itemQueue, iv = tv.items;
  let ov = null, av = 0, sv = 0, lv = tv.batchQueue[av];
  for (; lv && !ov; ) {
    if (getIsBatchReady(rv, lv))
      for (ov = ev[lv][sv]; ov && (getIsItemInActiveRequest(rv, ov) || !getIsItemReady(iv[ov])); )
        sv += 1, ov = ev[lv][sv];
    ov || (av += 1, lv = tv.batchQueue[av], sv = 0);
  }
  return ov ? [lv, sv] : null;
}, getNextIdGroup = (rv) => {
  const tv = rv.getState(), ev = tv.itemQueue, [iv, ov] = findNextItemIndex(rv) || [];
  let av = iv && ~ov ? ev[iv][ov] : null, sv;
  if (av) {
    const {
      batchOptions: lv
    } = tv.batches[iv], uv = lv.maxGroupSize || 0;
    lv.grouped && uv > 1 ? sv = tv.itemQueue[iv].slice(ov, ov + uv) : sv = [av];
  }
  return sv;
}, updateItemsAsActive = (rv, tv) => {
  rv.updateState((ev) => {
    ev.activeIds = ev.activeIds.concat(tv);
  });
}, processNextWithBatch = (rv, tv) => {
  let ev;
  return isItemBatchStartPending(rv, tv[0]) ? ev = Promise.resolve(!0) : (updateItemsAsActive(rv, tv), isNewBatchStarting(rv, tv[0]) ? ev = loadNewBatchForItem(rv, tv[0]).then((iv) => {
    let ov = !iv;
    return ov && (cancelBatchForItem(rv, tv[0]), processNext(rv)), ov;
  }).catch((iv) => (debugLog("uploader.processor: encountered error while preparing batch for request", iv), failBatchForItem(rv, tv[0], iv), processNext(rv), !0)) : ev = Promise.resolve(!1)), ev;
}, processNext = (rv) => {
  let tv;
  const ev = getNextIdGroup(rv);
  if (ev) {
    const iv = rv.getCurrentActiveCount(), {
      concurrent: ov = !1,
      maxConcurrent: av = 0
    } = rv.getOptions();
    (!iv || ov && iv < av) && (debugLog("uploader.processor: Processing next upload - ", {
      ids: ev,
      currentCount: iv
    }), tv = processNextWithBatch(rv, ev).then((sv) => {
      sv || (processBatchItems(rv, ev, processNext), ov && processNext(rv));
    }));
  }
  return tv;
}, getFinalizeAbortedItem = (rv) => (tv, ev) => processFinishedRequest(rv, [{
  id: tv,
  info: ev
}], processNext), processAbortItem = (rv, tv) => {
  const ev = rv.getOptions().abortItem;
  invariant$1(!!ev, "Abort Item method not provided yet abortItem was called");
  const iv = rv.getState();
  return ev(tv, iv.items, iv.aborts, getFinalizeAbortedItem(rv));
}, processAbortBatch = (rv, tv) => {
  const ev = rv.getOptions().abortBatch;
  invariant$1(!!ev, "Abort Batch method not provided yet abortItem was called");
  const iv = rv.getState(), ov = iv.batches[tv], av = ov == null ? void 0 : ov.batch;
  if (av && !getIsBatchFinalized(av)) {
    finalizeBatch(rv, tv, UPLOADER_EVENTS.BATCH_ABORT, BATCH_STATES.ABORTED);
    const {
      isFast: sv
    } = ev(av, ov.batchOptions, iv.aborts, iv.itemQueue, getFinalizeAbortedItem(rv), rv.getOptions());
    sv && rv.clearBatchUploads(av.id);
  }
}, processAbortAll = (rv) => {
  const tv = rv.getOptions().abortAll;
  invariant$1(!!tv, "Abort All method not provided yet abortAll was called"), rv.trigger(UPLOADER_EVENTS.ALL_ABORT);
  const ev = rv.getState(), {
    isFast: iv
  } = tv(ev.items, ev.aborts, ev.itemQueue, getFinalizeAbortedItem(rv), rv.getOptions());
  iv && rv.clearAllUploads();
}, createUploaderQueue = (rv, tv, ev, iv, ov) => {
  const {
    state: av,
    update: sv
  } = createState({
    itemQueue: {},
    batchQueue: [],
    currentBatch: null,
    batchesStartPending: [],
    batches: {},
    items: {},
    activeIds: [],
    aborts: {}
  }), lv = () => av, uv = (pv) => {
    sv(pv);
  }, cv = (pv) => {
    if (av.items[pv.id] && !pv.recycled)
      throw new Error(`Uploader queue conflict - item ${pv.id} already exists`);
    pv.recycled && detachRecycledFromPreviousBatch(hv, pv), uv((yv) => {
      yv.items[pv.id] = pv;
    });
  }, dv = (pv, yv, Sv, _v) => {
    av.items[pv.id] && (uv((Ev) => {
      const wv = Ev.items[pv.id];
      wv.loaded = Sv, wv.completed = yv, wv.total = _v;
    }), tv(UPLOADER_EVENTS.ITEM_PROGRESS, lv().items[pv.id]));
  };
  iv.on(SENDER_EVENTS.ITEM_PROGRESS, dv), iv.on(SENDER_EVENTS.BATCH_PROGRESS, (pv) => {
    var Sv;
    const yv = (Sv = av.batches[pv.id]) == null ? void 0 : Sv.batch.items;
    if (yv) {
      const [_v, Ev] = yv.reduce((wv, {
        id: xv
      }) => {
        const {
          loaded: Cv,
          file: Av
        } = av.items[xv], Ov = (Av == null ? void 0 : Av.size) || Cv || 1;
        return wv[0] += Cv, wv[1] += Ov, wv;
      }, [0, 0]);
      uv((wv) => {
        const xv = wv.batches[pv.id].batch;
        xv.total = Ev, xv.loaded = _v, xv.completed = _v / Ev;
      }), triggerUploaderBatchEvent(hv, pv.id, UPLOADER_EVENTS.BATCH_PROGRESS);
    }
  });
  const hv = {
    uploaderId: ov,
    getOptions: () => rv,
    getCurrentActiveCount: () => av.activeIds.length,
    getState: lv,
    updateState: uv,
    trigger: tv,
    runCancellable: (pv, ...yv) => {
      if (!isFunction$2(ev))
        throw new Error("Uploader queue - cancellable is of wrong type");
      return ev(pv, ...yv);
    },
    sender: iv,
    handleItemProgress: dv,
    clearAllUploads: () => {
      hv.updateState((pv) => {
        pv.itemQueue = {}, pv.batchQueue = [], pv.currentBatch = null, pv.batches = {}, pv.items = {}, pv.activeIds = [];
      });
    },
    clearBatchUploads: (pv) => {
      scheduleIdleWork(() => {
        debugLog(`uploader.queue: started scheduled work to clear batch uploads (${pv})`), lv().batches[pv] && clearBatchData(hv, pv);
      });
    }
  };
  return hasWindow() && isDebugOn() && (window[`__rpldy_${ov}_queue_state`] = hv), {
    updateState: uv,
    getState: hv.getState,
    runCancellable: hv.runCancellable,
    uploadBatch: (pv, yv) => {
      yv && uv((Sv) => {
        Sv.batches[pv.id].batchOptions = yv;
      }), processNext(hv);
    },
    addBatch: (pv, yv) => (uv((Sv) => {
      Sv.batches[pv.id] = {
        batch: pv,
        batchOptions: yv,
        finishedCounter: 0
      }, Sv.batchQueue.push(pv.id), Sv.itemQueue[pv.id] = pv.items.map(({
        id: _v
      }) => _v);
    }), pv.items.forEach(cv), getBatchFromState(av, pv.id)),
    abortItem: (...pv) => processAbortItem(hv, ...pv),
    abortBatch: (...pv) => processAbortBatch(hv, ...pv),
    abortAll: (...pv) => processAbortAll(hv, ...pv),
    clearPendingBatches: () => {
      removePendingBatches(hv);
    },
    uploadPendingBatches: (pv) => {
      preparePendingForUpload(hv, pv), processNext(hv);
    },
    cancelBatch: (pv) => cancelBatchWithId(hv, pv.id)
  };
}, XHR_SENDER_TYPE = "rpldy-sender";
class MissingUrlError extends Error {
  constructor(tv) {
    super(`${tv} didn't receive upload URL`), this.name = "MissingUrlError";
  }
}
const addToFormData = (rv, tv, ...ev) => {
  "set" in rv ? rv.set(tv, ...ev) : ("delete" in rv && rv.delete(tv), rv.append(tv, ...ev));
}, getFormFileField = (rv, tv, ev) => {
  const iv = tv.length === 1;
  tv.forEach((ov, av) => {
    const sv = iv ? ev.paramName : isFunction$2(ev.formatGroupParamName) ? ev.formatGroupParamName(av, ev.paramName) : `${ev.paramName}[${av}]`;
    ov.file ? addToFormData(rv, sv, ov.file, ov.file.name) : ov.url && addToFormData(rv, sv, ov.url);
  });
}, prepareFormData = (rv, tv) => {
  const ev = new FormData();
  return tv.params && Object.entries(tv.params).forEach(([iv, ov]) => {
    (tv.formDataAllowUndefined || ov !== void 0) && addToFormData(ev, iv, ov);
  }), getFormFileField(ev, rv, tv), ev;
}, SUCCESS_CODES = [200, 201, 202, 203, 204], getRequestData = (rv, tv) => {
  let ev;
  if (tv.sendWithFormData)
    debugLog(`uploady.sender: sending ${rv.length} item(s) as form data`), ev = prepareFormData(rv, tv);
  else {
    if (rv.length > 1)
      throw new Error(`XHR Sender - Request without form data can only contain 1 item. received ${rv.length}`);
    const iv = rv[0];
    debugLog(`uploady.sender: sending item ${iv.id} as request body`), ev = iv.file || iv.url;
  }
  return ev;
}, makeRequest = (rv, tv, ev, iv, ov) => {
  let av;
  const sv = getRequestData(rv, ev), uv = ((cv = tv, dv = sv, hv) => {
    const pv = merge({
      ...pick(ev, ["method", "headers", "withCredentials"]),
      preSend: (Sv) => {
        Sv.upload.onprogress = (_v) => {
          _v.lengthComputable && iv && iv(_v, rv.slice());
        };
      }
    }, hv), yv = request(cv, dv, pv);
    return av = yv.xhr, yv;
  })();
  return {
    url: tv,
    count: rv.length,
    pXhr: uv,
    getXhr: () => av,
    aborted: !1
  };
}, parseResponseJson = (rv, tv, ev) => {
  let iv = rv;
  const ov = tv == null ? void 0 : tv["content-type"];
  if (ev.forceJsonResponse || ov != null && ov.includes("json"))
    try {
      iv = JSON.parse(rv);
    } catch {
    }
  return iv;
}, checkIsResponseSuccessful = (rv, tv) => {
  const ev = tv.isSuccessfulCall ? tv.isSuccessfulCall(rv) : SUCCESS_CODES.includes(rv.status);
  return isPromise(ev) ? ev : Promise.resolve(ev);
}, processResponse = (rv, tv) => rv.pXhr.then((ev) => (debugLog("uploady.sender: received upload response ", ev), checkIsResponseSuccessful(ev, tv).then((iv) => {
  var uv;
  const ov = iv ? FILE_STATES.FINISHED : FILE_STATES.ERROR, av = ev.status, sv = parseResponseHeaders(ev), lv = {
    data: ((uv = tv.formatServerResponse) == null ? void 0 : uv.call(tv, ev.response, av, sv)) ?? parseResponseJson(ev.response, sv, tv),
    headers: sv
  };
  return {
    status: av,
    state: ov,
    response: lv
  };
}))).catch((ev) => {
  let iv, ov;
  return rv.aborted ? (iv = FILE_STATES.ABORTED, ov = "aborted") : (debugLog("uploady.sender: upload failed: ", ev), iv = FILE_STATES.ERROR, ov = ev), {
    error: !0,
    state: iv,
    response: ov,
    status: 0
  };
}), abortRequest = (rv) => {
  let tv = !1;
  const {
    aborted: ev,
    getXhr: iv
  } = rv, ov = iv();
  return !ev && ov && ov.readyState && ov.readyState !== 4 && (debugLog(`uploady.sender: cancelling request with ${rv.count} items to: ${rv.url}`), ov.abort(), rv.aborted = !0, tv = !0), tv;
}, getXhrSend = (rv) => (tv, ev, iv, ov) => {
  if (!ev)
    throw new MissingUrlError(XHR_SENDER_TYPE);
  debugLog("uploady.sender: sending file: ", {
    items: tv,
    url: ev,
    options: iv
  });
  const av = makeRequest(tv, ev, iv, ov);
  return {
    request: processResponse(av, iv),
    abort: () => abortRequest(av),
    senderType: XHR_SENDER_TYPE
  };
}, send = getXhrSend(), DEFAULT_PARAM_NAME = "file", DEFAULT_FILTER = () => !0, DEFAULT_OPTIONS = devFreeze({
  autoUpload: !0,
  clearPendingOnAdd: !1,
  inputFieldName: "file",
  concurrent: !1,
  maxConcurrent: 2,
  grouped: !1,
  maxGroupSize: 5,
  method: "POST",
  params: {},
  fileFilter: DEFAULT_FILTER,
  forceJsonResponse: !1,
  withCredentials: !1,
  destination: {},
  send: null,
  sendWithFormData: !0,
  formDataAllowUndefined: !1,
  fastAbortThreshold: 100
}), reportItemsProgress = (rv, tv, ev, iv, ov) => {
  rv.forEach((av) => {
    debugLog(`uploady.uploader.processor: file: ${av.id} progress event: loaded(${ev}) - completed(${tv})`), ov(SENDER_EVENTS.ITEM_PROGRESS, av, tv, ev, iv);
  });
}, onItemUploadProgress = (rv, tv, ev, iv) => {
  const ov = Math.min(ev.loaded / ev.total * 100, 100), av = ov / rv.length, sv = ev.loaded / rv.length;
  reportItemsProgress(rv, av, sv, ev.total, iv), iv(SENDER_EVENTS.BATCH_PROGRESS, tv);
}, createBatchItemsSender = () => {
  const {
    trigger: rv,
    target: tv
  } = addLife({
    send: (ev, iv, ov) => {
      const av = ov.destination, sv = av == null ? void 0 : av.url, lv = functionThrottle((cv) => onItemUploadProgress(ev, iv, cv, rv), PROGRESS_DELAY, !0);
      return (isFunction$2(ov.send) ? ov.send : send)(ev, sv, {
        method: (av == null ? void 0 : av.method) || ov.method || DEFAULT_OPTIONS.method,
        paramName: (av == null ? void 0 : av.filesParamName) || ov.inputFieldName || DEFAULT_PARAM_NAME,
        params: {
          ...ov.params,
          ...av == null ? void 0 : av.params
        },
        forceJsonResponse: ov.forceJsonResponse,
        withCredentials: ov.withCredentials,
        formatGroupParamName: ov.formatGroupParamName,
        headers: av == null ? void 0 : av.headers,
        sendWithFormData: ov.sendWithFormData,
        formatServerResponse: ov.formatServerResponse,
        formDataAllowUndefined: ov.formDataAllowUndefined,
        isSuccessfulCall: ov.isSuccessfulCall
      }, lv);
    }
  }, Object.values(SENDER_EVENTS));
  return tv;
}, FILE_LIST_SUPPORT = hasWindow() && "FileList" in window, getMandatoryDestination = (rv) => ({
  params: {},
  ...rv
}), getMandatoryOptions = (rv) => ({
  ...DEFAULT_OPTIONS,
  ...rv,
  destination: rv && rv.destination ? getMandatoryDestination(rv.destination) : null
}), getIsFileList = (rv) => FILE_LIST_SUPPORT && rv instanceof FileList || rv.toString() === "[object FileList]", deepProxyUnwrap = (rv, tv = 0) => {
  let ev = rv;
  return isProduction$1() || (tv < 3 && isProxy(rv) ? ev = unwrapProxy(rv) : tv < 3 && isProxiable(rv) && (ev = Array.isArray(rv) ? rv.map((iv) => deepProxyUnwrap(iv, tv + 1)) : Object.keys(rv).reduce((iv, ov) => (iv[ov] = deepProxyUnwrap(rv[ov], tv + 1), iv), {}))), ev;
};
let bCounter = 0;
const processFiles = (rv, tv, ev, iv) => {
  const ov = iv ? Array.prototype.map.call(tv, (av) => getIsBatchItem(av) ? av.file || av.url : av) : [];
  return Promise.all(Array.prototype.map.call(tv, (av, sv) => {
    const lv = (iv || DEFAULT_FILTER)(ov[sv], sv, ov);
    return isPromise(lv) ? lv.then((uv) => !!uv && av) : !!lv && av;
  })).then((av) => av.filter(Boolean).map((sv) => createBatchItem(sv, rv, ev)));
}, createBatch = (rv, tv, ev) => {
  bCounter += 1;
  const iv = `batch-${bCounter}`, ov = getIsFileList(rv), av = Array.isArray(rv) || ov ? rv : [rv], sv = !ev.autoUpload;
  return processFiles(iv, av, sv, ev.fileFilter).then((lv) => ({
    id: iv,
    uploaderId: tv,
    items: lv,
    state: sv ? BATCH_STATES.PENDING : BATCH_STATES.ADDED,
    completed: 0,
    loaded: 0,
    orgItemCount: lv.length,
    additionalInfo: null
  }));
}, createProcessor = (rv, tv, ev, iv) => {
  const ov = createBatchItemsSender(), av = createUploaderQueue(ev, rv, tv, ov, iv);
  return {
    abortBatch: (sv) => {
      av.abortBatch(sv);
    },
    abort: (sv) => {
      sv ? av.abortItem(sv) : av.abortAll();
    },
    addNewBatch: (sv, lv) => createBatch(sv, iv, lv).then((uv) => {
      let cv;
      if (uv.items.length) {
        const dv = av.addBatch(uv, lv);
        cv = av.runCancellable(UPLOADER_EVENTS.BATCH_ADD, dv, lv).then((hv) => (hv ? av.cancelBatch(dv) : (debugLog(`uploady.uploader [${iv}]: new items added - auto upload =
                       ${String(lv.autoUpload)}`, dv.items), lv.autoUpload && av.uploadBatch(dv)), dv));
      } else
        debugLog(`uploady.uploader: no items to add. batch ${uv.id} is empty. check fileFilter if this isn't intended`);
      return cv || Promise.resolve(null);
    }),
    clearPendingBatches: () => {
      av.clearPendingBatches();
    },
    processPendingBatches: (sv) => {
      av.uploadPendingBatches(sv);
    }
  };
}, composeEnhancers = (...rv) => (tv, ...ev) => rv.reduce((iv, ov) => ov(iv, ...ev) || iv, tv), EVENT_NAMES = Object.values(UPLOADER_EVENTS), EXT_OUTSIDE_ENHANCER_TIME = "Uploady - uploader extensions can only be registered by enhancers", EXT_ALREADY_EXISTS = "Uploady - uploader extension by this name [%s] already exists";
let counter$1 = 0;
const getComposedEnhancer = (rv) => composeEnhancers(getAbortEnhancer(), rv), getEnhancedUploader = (rv, tv, ev, iv) => {
  const ov = tv.enhancer ? getComposedEnhancer(tv.enhancer) : getAbortEnhancer();
  iv(!0);
  const av = ov(rv, ev);
  return iv(!1), av || rv;
}, createUploader = (rv) => {
  counter$1 += 1;
  const tv = `uploader-${counter$1}`;
  let ev = !1;
  const iv = {};
  debugLog(`uploady.uploader: creating new instance (${tv})`, {
    options: rv,
    counter: counter$1
  });
  let ov = getMandatoryOptions(rv);
  const av = () => {
    pv.clearPendingBatches();
  }, sv = () => clone$1(ov);
  let {
    trigger: lv,
    target: uv
  } = addLife({
    id: tv,
    update: (yv) => (ov = merge({}, ov, yv), uv),
    add: (yv, Sv) => {
      const _v = merge({}, ov, Sv);
      return _v.clearPendingOnAdd && av(), pv.addNewBatch(yv, _v).then(() => {
        debugLog("uploady.uploader: finished adding file data to be processed");
      });
    },
    upload: (yv) => {
      pv.processPendingBatches(yv);
    },
    abort: (yv) => {
      pv.abort(yv);
    },
    abortBatch: (yv) => {
      pv.abortBatch(yv);
    },
    getOptions: sv,
    clearPending: av,
    registerExtension: (yv, Sv) => {
      invariant$1(ev, EXT_OUTSIDE_ENHANCER_TIME), invariant$1(!iv[yv], EXT_ALREADY_EXISTS, yv), debugLog(`uploady.uploader: registering extension: ${yv.toString()}`, Sv), iv[yv] = Sv;
    },
    getExtension: (yv) => iv[yv]
  }, EVENT_NAMES, {
    canAddEvents: !1,
    canRemoveEvents: !1
  });
  const cv = (yv, ...Sv) => {
    const _v = createLifePack(() => Sv.map(deepProxyUnwrap));
    return lv(yv, _v);
  }, dv = triggerCancellable(cv), hv = getEnhancedUploader(uv, ov, cv, (yv) => {
    ev = yv;
  }), pv = createProcessor(cv, dv, ov, hv.id);
  return devFreeze(hv);
}, GLOBAL_VERSION_SYM = Symbol.for("_rpldy-version_"), getVersion = () => "1.8.3", getGlobal = () => hasWindow() ? window : globalThis || process, getRegisteredVersion = () => getGlobal()[GLOBAL_VERSION_SYM], registerUploadyContextVersion = () => {
  getGlobal()[GLOBAL_VERSION_SYM] = getVersion();
}, getIsVersionRegisteredAndDifferent = () => {
  const rv = getRegisteredVersion();
  return !!rv && rv !== getVersion();
}, UploadyContext = /* @__PURE__ */ React.createContext(null), NO_INPUT_ERROR_MSG = "Uploady - Context. File input isn't available", createContextApi = (rv, tv) => {
  let ev, iv, ov = !1;
  tv ? ev = tv : debugLog("Uploady context - didn't receive input field ref - waiting for external ref");
  const av = () => ev == null ? void 0 : ev.current, sv = () => (ev && (ov = !0), ev), lv = () => ov, uv = () => {
    const dv = av();
    invariant$1(dv, NO_INPUT_ERROR_MSG), dv.removeEventListener("change", uv);
    const hv = iv;
    iv = null, cv(dv.files, hv);
  }, cv = (dv, hv) => {
    rv.add(dv, hv);
  };
  return registerUploadyContextVersion(), {
    hasUploader: () => !!rv,
    getInternalFileInput: sv,
    setExternalFileInput: (dv) => {
      ov = !0, ev = dv;
    },
    getIsUsingExternalInput: lv,
    showFileUpload: (dv) => {
      const hv = av();
      invariant$1(hv, NO_INPUT_ERROR_MSG), iv = dv, hv.removeEventListener("change", uv), hv.addEventListener("change", uv), hv.value = "", hv.click();
    },
    upload: cv,
    processPending: (dv) => {
      rv.upload(dv);
    },
    clearPending: () => {
      rv.clearPending();
    },
    setOptions: (dv) => {
      rv.update(dv);
    },
    getOptions: () => rv.getOptions(),
    getExtension: (dv) => rv.getExtension(dv),
    abort: (dv) => {
      rv.abort(dv);
    },
    abortBatch: (dv) => {
      rv.abortBatch(dv);
    },
    on: (dv, hv) => rv.on(dv, hv),
    once: (dv, hv) => rv.once(dv, hv),
    off: (dv, hv) => rv.off(dv, hv)
  };
}, ERROR_MSG = "Uploady - Valid UploadyContext not found. Make sure you render inside <Uploady>", DIFFERENT_VERSION_ERROR_MSG = `Uploady - Valid UploadyContext not found.
You may be using packages of different Uploady versions. <Uploady> and all other packages using the context provider must be of the same version: %s`, assertContext = (rv) => (invariant$1(!getIsVersionRegisteredAndDifferent(), DIFFERENT_VERSION_ERROR_MSG, getRegisteredVersion()), invariant$1(rv && rv.hasUploader(), ERROR_MSG), rv), useUploadyContext = () => assertContext(reactExports.useContext(UploadyContext)), useEventEffect = (rv, tv) => {
  const ev = useUploadyContext(), {
    on: iv,
    off: ov
  } = ev;
  reactExports.useEffect(() => (iv(rv, tv), () => {
    ov(rv, tv);
  }), [rv, tv, iv, ov]);
}, generateUploaderEventHookWithState = (rv, tv) => (ev, iv) => {
  const [ov, av] = reactExports.useState(null);
  let sv = ev, lv = iv;
  ev && !isFunction$2(ev) && (lv = ev, sv = void 0);
  const uv = reactExports.useCallback((cv, ...dv) => {
    (!lv || cv.id === lv) && (av(tv(cv, ...dv)), isFunction$2(sv) && sv(cv, ...dv));
  }, [sv, lv]);
  return useEventEffect(rv, uv), ov;
}, generateUploaderEventHook = (rv, tv = !0) => (ev, iv) => {
  const ov = reactExports.useCallback((av, ...sv) => ev && (!tv || !iv || av.id === iv) ? ev(av, ...sv) : void 0, [ev, iv]);
  useEventEffect(rv, ov);
}, useBatchAddListener = generateUploaderEventHook(UPLOADER_EVENTS.BATCH_ADD, !1);
generateUploaderEventHook(UPLOADER_EVENTS.BATCH_START);
generateUploaderEventHook(UPLOADER_EVENTS.BATCH_FINISH);
generateUploaderEventHook(UPLOADER_EVENTS.BATCH_CANCEL);
generateUploaderEventHook(UPLOADER_EVENTS.BATCH_ERROR);
const useBatchFinalizeListener = generateUploaderEventHook(UPLOADER_EVENTS.BATCH_FINALIZE);
generateUploaderEventHook(UPLOADER_EVENTS.BATCH_ABORT);
generateUploaderEventHookWithState(UPLOADER_EVENTS.BATCH_PROGRESS, (rv) => ({
  ...rv
}));
generateUploaderEventHook(UPLOADER_EVENTS.ITEM_START);
generateUploaderEventHook(UPLOADER_EVENTS.ITEM_FINISH);
generateUploaderEventHook(UPLOADER_EVENTS.ITEM_CANCEL);
generateUploaderEventHook(UPLOADER_EVENTS.ITEM_ERROR);
generateUploaderEventHook(UPLOADER_EVENTS.ITEM_ABORT);
const useItemFinalizeListener = generateUploaderEventHook(UPLOADER_EVENTS.ITEM_FINALIZE), useItemProgressListener = generateUploaderEventHookWithState(UPLOADER_EVENTS.ITEM_PROGRESS, (rv) => ({
  ...rv
})), useRequestPreSend = generateUploaderEventHook(UPLOADER_EVENTS.REQUEST_PRE_SEND, !1);
generateUploaderEventHook(UPLOADER_EVENTS.ALL_ABORT, !1);
const UPLOAD_OPTIONS_COMP = Symbol.for("rpldy_component"), markAsUploadOptionsComponent = (rv) => {
  rv[UPLOAD_OPTIONS_COMP] = !0;
}, useUploader = (rv, tv) => {
  const ev = reactExports.useMemo(() => (debugLog("Uploady creating a new uploader instance", rv), createUploader(rv)), [rv.enhancer]);
  return ev.update(rv), reactExports.useEffect(() => (tv && (debugLog("Uploady setting event listeners", tv), Object.entries(tv).forEach(([iv, ov]) => {
    ev.on(iv, ov);
  })), () => {
    tv && (debugLog("Uploady removing event listeners", tv), Object.entries(tv).forEach(([iv, ov]) => ev.off(iv, ov)));
  }), [tv, ev]), ev;
}, NoDomUploady = (rv) => {
  const {
    listeners: tv,
    debug: ev,
    children: iv,
    inputRef: ov,
    ...av
  } = rv;
  setDebug(!!ev), debugLog("@@@@@@ Uploady Rendering @@@@@@", rv);
  const sv = useUploader(av, tv), lv = reactExports.useMemo(() => createContextApi(sv, ov), [sv, ov]);
  return /* @__PURE__ */ React.createElement(UploadyContext.Provider, {
    value: lv
  }, iv);
}, useUploadOptions = (rv) => useUploadyContext().getOptions(), useAbortItem = () => {
  const rv = useUploadyContext();
  return reactExports.useCallback((tv) => rv.abort(tv), [rv]);
};
function _extends$3() {
  return _extends$3 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        ({}).hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, _extends$3.apply(null, arguments);
}
const createRequestUpdateHoc = ({
  eventType: rv,
  getIsValidEventData: tv,
  getRequestData: ev
}) => (iv) => (ov) => {
  const av = useUploadyContext(), [sv, lv] = reactExports.useState({
    updateRequest: null,
    requestData: null
  }), {
    id: uv
  } = ov;
  return reactExports.useLayoutEffect(() => {
    const cv = (...dv) => tv(uv, ...dv) === !0 ? new Promise((hv) => {
      lv({
        updateRequest: (pv) => {
          av.off(rv, cv), hv(pv);
        },
        requestData: ev(...dv)
      });
    }) : void 0;
    return uv && av.on(rv, cv), () => {
      uv && av.off(rv, cv);
    };
  }, [av, uv]), /* @__PURE__ */ React.createElement(iv, _extends$3({}, ov, sv));
};
createRequestUpdateHoc({
  eventType: UPLOADER_EVENTS.REQUEST_PRE_SEND,
  getIsValidEventData: (rv, {
    items: tv
  }) => !!tv.find((ev) => ev.id === rv),
  getRequestData: ({
    items: rv,
    options: tv
  }) => ({
    items: rv,
    options: tv
  })
});
createRequestUpdateHoc({
  eventType: UPLOADER_EVENTS.BATCH_START,
  getIsValidEventData: (rv, tv) => tv.id === rv,
  getRequestData: (rv, tv) => ({
    batch: rv,
    items: rv.items,
    options: tv
  })
});
function _extends$2() {
  return _extends$2 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        ({}).hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, _extends$2.apply(null, arguments);
}
const asUploadButton = (rv) => {
  const tv = (ev, iv) => {
    const {
      showFileUpload: ov
    } = useUploadyContext(), {
      id: av,
      className: sv,
      text: lv,
      children: uv,
      extraProps: cv,
      onClick: dv,
      ...hv
    } = ev, pv = reactExports.useRef();
    pv.current = hv;
    const yv = reactExports.useCallback((Sv) => {
      ov(pv.current), dv == null || dv(Sv);
    }, [ov, pv, dv]);
    return /* @__PURE__ */ React.createElement(rv, _extends$2({
      ref: iv,
      onClick: yv,
      id: av,
      className: sv,
      children: uv || lv || "Upload"
    }, cv));
  };
  return markAsUploadOptionsComponent(tv), /* @__PURE__ */ reactExports.forwardRef(tv);
};
function _extends$1() {
  return _extends$1 = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        ({}).hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, _extends$1.apply(null, arguments);
}
const UploadButton$1 = asUploadButton(/* @__PURE__ */ reactExports.forwardRef((rv, tv) => /* @__PURE__ */ React.createElement("button", _extends$1({
  ref: tv
}, rv))));
function UploadButton() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(UploadButton$1, { className: "mr2", extraProps: { type: "button" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ClipIcon, {}) });
}
function _extends() {
  return _extends = Object.assign ? Object.assign.bind() : function(rv) {
    for (var tv = 1; tv < arguments.length; tv++) {
      var ev = arguments[tv];
      for (var iv in ev)
        ({}).hasOwnProperty.call(ev, iv) && (rv[iv] = ev[iv]);
    }
    return rv;
  }, _extends.apply(null, arguments);
}
const NO_CONTAINER_ERROR_MSG = "Uploady - Container for file input must be a valid dom element", renderInput = (rv, tv, ev) => /* @__PURE__ */ React.createElement("input", _extends({}, rv, {
  name: tv.inputFieldName,
  type: "file",
  ref: ev
})), renderInPortal = (rv, tv, ev, iv, ov) => rv && tv ? /* @__PURE__ */ ReactDOM.createPortal(renderInput(ev, iv, ov), rv) : null, FileInputField = /* @__PURE__ */ reactExports.memo(/* @__PURE__ */ reactExports.forwardRef(({
  container: rv,
  noPortal: tv,
  ...ev
}, iv) => {
  const ov = useUploadOptions(), av = rv && rv.nodeType === 1;
  return invariant$1(av || !hasWindow(), NO_CONTAINER_ERROR_MSG), tv ? renderInput(ev, ov, iv) : renderInPortal(rv, av, ev, ov, iv);
})), Uploady = (rv) => {
  const {
    multiple: tv = !0,
    capture: ev,
    accept: iv,
    webkitdirectory: ov,
    children: av,
    inputFieldContainer: sv,
    customInput: lv,
    fileInputId: uv,
    noPortal: cv = !1,
    ...dv
  } = rv, hv = lv ? null : sv || (hasWindow() ? document.body : null), pv = reactExports.useRef();
  return /* @__PURE__ */ React.createElement(NoDomUploady, _extends({}, dv, {
    inputRef: pv
  }), lv ? null : /* @__PURE__ */ React.createElement(FileInputField, {
    container: hv,
    multiple: tv,
    capture: ev,
    accept: iv,
    webkitdirectory: ov == null ? void 0 : ov.toString(),
    style: {
      display: "none"
    },
    ref: pv,
    id: uv,
    noPortal: cv
  }), av);
};
var Screens = /* @__PURE__ */ ((rv) => (rv.options = "assistant-options", rv.callRequest = "call-request", rv.callWait = "call-wait", rv.information = "information", rv.clientCall = "client-call", rv.assistedSales = "assisted-sales", rv.nps = "nps-screen", rv.joinCall = "join-call", rv))(Screens || {});
const INCOGNITO_CALL_FORM = {
  name: "Disabled",
  email: "disabled@email.com",
  phone: "0"
}, CHAT_HEIGHT = 641, HIGHLIGHT_HEIGHT = 478, NORMAL_HEIGHT = 393, QUICK_VIEW_HEIGHT = 500, error$2 = (rv, ...tv) => logger$1.error(`useAddToCart ${rv}`, ...tv), useAddToCart = () => {
  const { t: rv } = useTranslation(), tv = usePerant((yv) => yv.account), ev = tv == null ? void 0 : tv.modeButtonCart, iv = usePerant((yv) => {
    var Sv;
    return (Sv = yv.config) == null ? void 0 : Sv.addToCartConfig;
  }), [ov, av] = useAtom(addToCartNotificationAtom), [sv, lv] = useAtom(
    isVariationSelectorOpenAtom
  );
  reactExports.useEffect(() => {
    let yv;
    return ov && (yv = setTimeout(() => {
      av(null);
    }, 5e3)), () => {
      clearTimeout(yv);
    };
  }, [ov, av]);
  const uv = (yv, Sv) => {
    var Av;
    const { actionFactory: _v, product: Ev } = yv, wv = !!((Av = Ev == null ? void 0 : Ev.variationSelector) != null && Av.length), { addToCartLink: xv } = Ev;
    let Cv;
    return wv && !sv ? Cv = _v.openVariationSelector(!0) : ev === AddToCartBehavior.REDIRECT ? Cv = _v.openTab(xv) : Cv = _v.addToCart({ product: Ev, quantity: Sv }), Cv;
  };
  function cv(yv, Sv = 1) {
    runAddToCartHooks({
      product: yv,
      userAddToCartConfig: iv,
      context: {
        isVariationSelectorOpen: sv,
        quantity: Sv
      },
      hookStrategy: {
        validate: (_v) => uv(_v, Sv)
      },
      actionFactory: {
        openTab: dv,
        openVariationSelector: lv,
        addToCart: () => error$2("addToCart not implemented")
      },
      notifyFactory: {
        error: (_v) => pv(_v),
        success: (_v) => hv(_v)
      }
    });
  }
  function dv(yv) {
    yv ? window.open(yv, "_blank") : (error$2(`The link "${yv}" is invalid`), pv(addToCartMessages.errorAddingToCart));
  }
  function hv(yv) {
    av({ type: "success", message: rv(yv) });
  }
  function pv(yv) {
    av({ type: "error", message: rv(yv) });
  }
  return cv;
}, config = {
  ...environment$3
}, environment$2 = config;
class AudioVideoChimeProvider {
  constructor(tv) {
    T$(this, "tileId", -1);
    T$(this, "currentVideoIndex", 0);
    this.audioVideo = tv;
  }
  async bindAudioOutput(tv) {
    this.audioVideo.bindAudioElement(tv);
  }
  getLocalTile() {
    return this.tileId;
  }
  addVideoObserver(tv, ev) {
    this.audioVideo.addObserver({
      videoTileWasRemoved: (iv) => {
        ev(iv);
      },
      videoTileDidUpdate: (iv) => {
        var av, sv, lv;
        if (!iv.boundAttendeeId || !iv.tileId)
          return;
        const ov = ((av = iv.boundExternalUserId) == null ? void 0 : av.includes("moderator")) ?? !1;
        if (iv.isContent) {
          tv(
            iv.tileId,
            iv.boundAttendeeId,
            iv.localTile,
            !1,
            ((sv = iv.boundVideoStream) == null ? void 0 : sv.active) ?? !1,
            !0
          );
          return;
        }
        tv(
          iv.tileId,
          iv.boundAttendeeId,
          iv.localTile,
          ov,
          ((lv = iv.boundVideoStream) == null ? void 0 : lv.active) ?? !1,
          !1
        );
      },
      audioVideoDidStop: async (iv) => {
        iv.statusCode() === 6 && logger$1.error("error on audio video");
      }
    });
  }
  addAudioObserver(tv, ev) {
    this.audioVideo.realtimeUnsubscribeFromVolumeIndicator(tv), this.audioVideo.realtimeSubscribeToVolumeIndicator(
      tv,
      (iv, ov, av) => {
        ev(iv, av);
      }
    );
  }
  bindVideoElement(tv, ev) {
    this.audioVideo.bindVideoElement(tv, ev);
  }
  unbindVideoElement(tv) {
    this.audioVideo.unbindVideoElement(tv);
  }
  async startLocalVideo() {
    const tv = await this.audioVideo.listVideoInputDevices();
    tv && tv.length > 0 && tv[this.currentVideoIndex].deviceId && await this.audioVideo.chooseVideoInputDevice(
      tv[this.currentVideoIndex].deviceId
    ), this.tileId = this.audioVideo.startLocalVideoTile();
  }
  async switchLocalVideoInput() {
    const tv = await this.audioVideo.listVideoInputDevices(), ev = this.currentVideoIndex === 0 ? 1 : 0;
    tv && tv.length >= ev + 1 && tv[ev].deviceId && (await this.audioVideo.chooseVideoInputDevice(
      tv[ev].deviceId
    ), this.currentVideoIndex = ev);
  }
  stopLocalVideo() {
    this.audioVideo.stopLocalVideoTile();
  }
  startLocalAudio() {
    this.audioVideo.realtimeUnmuteLocalAudio();
  }
  stopLocalAudio() {
    this.audioVideo.realtimeMuteLocalAudio();
  }
}
const DATA_MESSAGE_TOPIC = "channelPersonalShopper", DATA_MESSAGE_LIFETIME_MS = 3e4;
class ChatChimeProvider {
  constructor(tv) {
    this.audioVideo = tv;
  }
  sendMessage(tv) {
    const ev = {
      message: [
        {
          content: tv.content,
          metadata: {
            type: "str",
            mimeType: "application/text"
          }
        },
        ...tv.attachments.map((iv) => ({
          content: iv.content,
          metadata: {
            type: "file",
            mimeType: iv.mimeType,
            nameFile: iv.name
          }
        }))
      ],
      senderName: tv.user
    };
    this.audioVideo.realtimeSendDataMessage(
      DATA_MESSAGE_TOPIC,
      ev,
      DATA_MESSAGE_LIFETIME_MS
    );
  }
  subscribeReceiveMessage(tv) {
    this.audioVideo.realtimeSubscribeToReceiveDataMessage(
      DATA_MESSAGE_TOPIC,
      (ev) => {
        var sv;
        const iv = ev.json(), ov = `${(sv = iv == null ? void 0 : iv.message[0]) == null ? void 0 : sv.content}`, av = this.getDomainAttachments(iv);
        tv({
          id: ar$2(),
          content: ov,
          user: iv.senderName,
          date: /* @__PURE__ */ new Date(),
          type: "str",
          attachments: av
        });
      }
    );
  }
  unsubscribeReceiveMessage() {
    this.audioVideo.realtimeUnsubscribeFromReceiveDataMessage(
      DATA_MESSAGE_TOPIC
    );
  }
  getDomainAttachments(tv) {
    return tv.message.filter((ev) => ev.metadata.type === "file").map((ev) => {
      const iv = ev.content, { nameFile: ov, type: av, mimeType: sv } = ev.metadata;
      return {
        type: av,
        content: iv,
        mimeType: sv,
        name: ov ?? ar$2()
      };
    });
  }
}
var build = {}, AllHighestVideoBandwidthPolicy$1 = {}, DefaultVideoStreamIdSet$1 = {};
Object.defineProperty(DefaultVideoStreamIdSet$1, "__esModule", { value: !0 });
class DefaultVideoStreamIdSet {
  constructor(tv) {
    this.ids = new Set(tv);
  }
  add(tv) {
    this.ids.add(tv);
  }
  array() {
    return Array.from(this.ids.values()).sort((ev, iv) => ev - iv);
  }
  contain(tv) {
    return this.ids.has(tv);
  }
  forEach(tv) {
    this.ids.forEach(tv);
  }
  empty() {
    return this.ids.size === 0;
  }
  size() {
    return this.ids.size;
  }
  equal(tv) {
    if (!tv)
      return this.ids.size === 0;
    const ev = this.array(), iv = tv.array();
    if (ev.length !== iv.length)
      return !1;
    for (let ov = 0; ov < ev.length; ov++)
      if (ev[ov] !== iv[ov])
        return !1;
    return !0;
  }
  clone() {
    return new DefaultVideoStreamIdSet(this.array());
  }
  remove(tv) {
    this.ids.delete(tv);
  }
  toJSON() {
    return this.array();
  }
  truncate(tv) {
    const ev = this.array();
    return new DefaultVideoStreamIdSet(ev.splice(0, tv));
  }
}
DefaultVideoStreamIdSet$1.default = DefaultVideoStreamIdSet;
Object.defineProperty(AllHighestVideoBandwidthPolicy$1, "__esModule", { value: !0 });
const DefaultVideoStreamIdSet_1$3 = DefaultVideoStreamIdSet$1;
class AllHighestVideoBandwidthPolicy {
  constructor(tv) {
    this.selfAttendeeId = tv, this.reset();
  }
  reset() {
    this.optimalReceiveSet = new DefaultVideoStreamIdSet_1$3.default(), this.subscribedReceiveSet = new DefaultVideoStreamIdSet_1$3.default(), this.videoSources = void 0;
  }
  updateIndex(tv) {
    this.videoIndex = tv, this.optimalReceiveSet = this.calculateOptimalReceiveSet(tv);
  }
  updateMetrics(tv) {
  }
  wantsResubscribe() {
    return !this.subscribedReceiveSet.equal(this.optimalReceiveSet);
  }
  chooseSubscriptions() {
    return this.subscribedReceiveSet = this.optimalReceiveSet.clone(), this.subscribedReceiveSet.clone();
  }
  chooseRemoteVideoSources(tv) {
    this.videoSources = tv, this.optimalReceiveSet = this.calculateOptimalReceiveSet(this.videoIndex).clone();
  }
  calculateOptimalReceiveSet(tv) {
    const ev = new DefaultVideoStreamIdSet_1$3.default();
    if (!this.videoIndex || this.videoIndex.allStreams().empty())
      return ev;
    const iv = tv.highestQualityStreamFromEachGroupExcludingSelf(this.selfAttendeeId);
    if (this.videoSources === void 0)
      return iv;
    const ov = this.videoIndex.remoteStreamDescriptions(), av = /* @__PURE__ */ new Map();
    for (const sv of ov)
      iv.contain(sv.streamId) && av.set(sv.attendeeId, sv.streamId);
    for (const sv of this.videoSources) {
      const lv = sv.attendee.attendeeId;
      av.has(lv) && ev.add(av.get(lv));
    }
    return ev;
  }
}
AllHighestVideoBandwidthPolicy$1.default = AllHighestVideoBandwidthPolicy;
var ApplicationMetadata$1 = {};
Object.defineProperty(ApplicationMetadata$1, "__esModule", { value: !0 });
class ApplicationMetadata {
  constructor(tv, ev) {
    this.appName = tv, this.appVersion = ev;
  }
  /**
   *
   * @param appName Builder's application name.
   * The app name must satisfy following regular expression:
   * `/^[a-zA-Z0-9]+[a-zA-Z0-9_-]*[a-zA-Z0-9]+$/g`
   *
   * @param appVersion Builder's application version.
   * The app version must follow the [Semantic Versioning](https://semver.org/) format.
   *
   * @returns [[ApplicationMetadata]]
   */
  static create(tv, ev) {
    const iv = /^[a-zA-Z0-9]+[a-zA-Z0-9_-]*[a-zA-Z0-9]+$/g;
    if (!tv || tv.length > 32)
      throw new Error("appName should be a valid string and 1 to 32 characters in length");
    if (!iv.test(tv))
      throw new Error(`appName must satisfy ${iv} regular expression`);
    const ov = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/gm;
    if (!ev || ev.length > 32)
      throw new Error("appVersion should be a valid string and 1 to 32 characters in length");
    if (!ov.test(ev))
      throw new Error("appVersion must satisfy Semantic Versioning format");
    return new ApplicationMetadata(tv, ev);
  }
}
ApplicationMetadata$1.default = ApplicationMetadata;
var AsyncScheduler$1 = {}, TimeoutScheduler$1 = {};
Object.defineProperty(TimeoutScheduler$1, "__esModule", { value: !0 });
class TimeoutScheduler {
  constructor(tv) {
    this.timeoutMs = tv, this.timer = null;
  }
  start(tv) {
    this.stop(), this.timer = setTimeout(() => {
      clearTimeout(this.timer), tv();
    }, this.timeoutMs);
  }
  stop() {
    this.timer !== null && (clearTimeout(this.timer), this.timer = null);
  }
}
TimeoutScheduler$1.default = TimeoutScheduler;
Object.defineProperty(AsyncScheduler$1, "__esModule", { value: !0 });
const TimeoutScheduler_1$3 = TimeoutScheduler$1;
class AsyncScheduler extends TimeoutScheduler_1$3.default {
  constructor() {
    super(0);
  }
  /**
   * Execute the provided callback on the next tick of the event loop.
   * This is semantically equivalent to
   *
   * ```typescript
   * new AsyncScheduler(callback).start();
   * ```
   *
   * but with less overhead.
   *
   * @param callback the code to run.
   */
  static nextTick(tv) {
    setTimeout(tv, 0);
  }
}
AsyncScheduler$1.default = AsyncScheduler;
var AttachMediaInputTask$1 = {}, VideoLogEvent = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.VideoLogEvent = void 0;
  var tv;
  (function(ev) {
    ev[ev.InputAttached = 0] = "InputAttached", ev[ev.SendingFailed = 1] = "SendingFailed", ev[ev.SendingSuccess = 2] = "SendingSuccess";
  })(tv = rv.VideoLogEvent || (rv.VideoLogEvent = {})), rv.default = tv;
})(VideoLogEvent);
var BaseTask$1 = {}, OnceTask$1 = {}, LogLevel = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.LogLevel = void 0;
  var tv;
  (function(ev) {
    ev[ev.DEBUG = 0] = "DEBUG", ev[ev.INFO = 1] = "INFO", ev[ev.WARN = 2] = "WARN", ev[ev.ERROR = 3] = "ERROR", ev[ev.OFF = 4] = "OFF";
  })(tv = rv.LogLevel || (rv.LogLevel = {})), rv.default = tv;
})(LogLevel);
Object.defineProperty(OnceTask$1, "__esModule", { value: !0 });
const LogLevel_1$8 = LogLevel, AsyncScheduler_1$7 = AsyncScheduler$1;
class OnceTask {
  constructor(tv, ev, iv) {
    this.logger = tv, this.task = ev, this.dependencies = iv, this.canceled = !1;
  }
  name() {
    return `${this.task.name()} (once)`;
  }
  cancel() {
    if (!this.canceled) {
      if (this.dependencies)
        for (const tv of this.dependencies)
          tv.cancel();
      this.logger.info(`Canceling ${this.name()}`), AsyncScheduler_1$7.default.nextTick(() => this.task.cancel()), this.canceled = !0, this.cancelPromise && AsyncScheduler_1$7.default.nextTick(() => this.cancelPromise(new Error(`canceling ${this.name()}`)));
    }
  }
  logDependencies() {
    if (this.logger.getLogLevel() > LogLevel_1$8.default.INFO || !this.dependencies)
      return;
    const tv = this.dependencies.filter((ev) => ev).map((ev) => ev.name()).join(", ");
    this.logger.info(`${this.task.name()} waiting for dependencies: ${tv}`);
  }
  run() {
    if (this.promise)
      return this.promise;
    const tv = this.dependencies ? Promise.all(this.dependencies.map((ev) => ev == null ? void 0 : ev.run())) : Promise.resolve();
    return this.logDependencies(), this.ongoing = tv.then(() => this.task.run()), this.promise = new Promise((ev, iv) => {
      this.cancelPromise = iv, this.ongoing.then(ev).catch(iv);
    });
  }
  setParent(tv) {
    this.task.setParent(tv);
  }
}
OnceTask$1.default = OnceTask;
var TaskStatus$1 = {};
Object.defineProperty(TaskStatus$1, "__esModule", { value: !0 });
var TaskStatus;
(function(rv) {
  rv.IDLE = "IDLE", rv.RUNNING = "RUNNING", rv.CANCELED = "CANCELED", rv.FINISHED = "FINISHED";
})(TaskStatus || (TaskStatus = {}));
TaskStatus$1.default = TaskStatus;
var __awaiter$10 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(BaseTask$1, "__esModule", { value: !0 });
const OnceTask_1 = OnceTask$1, TaskStatus_1$1 = TaskStatus$1;
class BaseTask {
  constructor(tv) {
    this.logger = tv, this.taskName = "BaseTask", this.parentTask = null, this.status = TaskStatus_1$1.default.IDLE, this.run = this.baseRun.bind(this, this.run), this.cancel = this.baseCancel.bind(this, this.cancel);
  }
  once(...tv) {
    return new OnceTask_1.default(this.logger, this, tv);
  }
  cancel() {
  }
  name() {
    return this.parentTask ? `${this.parentTask.name()}/${this.taskName}` : this.taskName;
  }
  setParent(tv) {
    this.parentTask = tv;
  }
  getStatus() {
    return this.status;
  }
  logAndThrow(tv) {
    throw this.logger.info(tv), new Error(tv);
  }
  baseRun(tv) {
    return __awaiter$10(this, void 0, void 0, function* () {
      try {
        const ev = Date.now();
        switch (this.logger.info(`running task ${this.name()}`), this.status) {
          case TaskStatus_1$1.default.RUNNING:
            this.logAndThrow(`${this.name()} is already running`);
          case TaskStatus_1$1.default.CANCELED:
            this.logAndThrow(`${this.name()} was canceled before running`);
          case TaskStatus_1$1.default.FINISHED:
            this.logAndThrow(`${this.name()} was already finished`);
        }
        this.status = TaskStatus_1$1.default.RUNNING, yield tv.call(this), this.logger.info(`${this.name()} took ${Math.round(Date.now() - ev)} ms`);
      } catch (ev) {
        throw ev;
      } finally {
        this.status !== TaskStatus_1$1.default.CANCELED && (this.status = TaskStatus_1$1.default.FINISHED);
      }
    });
  }
  baseCancel(tv) {
    if (this.status === TaskStatus_1$1.default.CANCELED || this.status === TaskStatus_1$1.default.FINISHED) {
      this.logger.info(`Not canceling ${this.name()}: state is ${this.status}`);
      return;
    }
    this.logger.info(`canceling task ${this.name()}`), this.status = TaskStatus_1$1.default.CANCELED, tv.call(this);
  }
}
BaseTask$1.default = BaseTask;
var __awaiter$$ = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(AttachMediaInputTask$1, "__esModule", { value: !0 });
const VideoLogEvent_1$2 = VideoLogEvent, BaseTask_1$p = BaseTask$1;
class AttachMediaInputTask extends BaseTask_1$p.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "AttachMediaInputTask";
  }
  run() {
    return __awaiter$$(this, void 0, void 0, function* () {
      const tv = this.context.transceiverController;
      tv.setPeer(this.context.peer), tv.setupLocalTransceivers();
      const ev = this.context.activeAudioInput;
      if (ev) {
        const ov = ev.getAudioTracks();
        if (this.context.browserBehavior.requiresUnifiedPlan())
          this.context.logger.info("attaching audio track to peer connection (unified-plan)"), yield tv.setAudioInput(ov.length ? ov[0] : null);
        else {
          this.context.logger.info("attaching audio track to peer connection (plan-b)");
          const av = this.context.peer.getSenders();
          ev.getAudioTracks().forEach((sv) => {
            av.find((lv) => lv.track.id === sv.id) || (this.context.localAudioSender = this.context.peer.addTrack(sv, ev));
          });
        }
      } else
        yield tv.setAudioInput(null), this.context.logger.info("no audio track");
      const iv = this.context.activeVideoInput;
      if (iv) {
        const ov = iv.getVideoTracks(), av = ov.length ? ov[0] : null;
        if (this.context.browserBehavior.requiresUnifiedPlan()) {
          if (this.context.logger.info("attaching video track to peer connection (unified-plan)"), yield tv.setVideoInput(av), this.context.enableSimulcast && this.context.videoUplinkBandwidthPolicy) {
            const sv = this.context.videoUplinkBandwidthPolicy.chooseEncodingParameters();
            tv.setEncodingParameters(sv);
          }
        } else
          this.context.logger.info("attaching video track to peer connection (plan-b)"), this.context.peer.getSenders().find((lv) => lv.track && lv.track.id === ov[0].id) || (this.context.localVideoSender && (this.context.peer.removeTrack(this.context.localVideoSender), this.context.localVideoSender = null), this.context.localVideoSender = this.context.peer.addTrack(ov[0], iv));
        av && (this.context.statsCollector.logVideoEvent(VideoLogEvent_1$2.default.InputAttached, this.context.videoDeviceInformation), this.context.videoInputAttachedTimestampMs = Date.now());
      } else
        yield tv.setVideoInput(null), this.context.logger.info("no video track"), this.context.localVideoSender && (this.context.logger.info("removing track from peer"), this.context.peer.removeTrack(this.context.localVideoSender), this.context.localVideoSender = null);
      this.context.videoSubscriptions = tv.updateVideoTransceivers(this.context.videoStreamIndex, this.context.videosToReceive);
    });
  }
}
AttachMediaInputTask$1.default = AttachMediaInputTask;
var Attendee$1 = {};
Object.defineProperty(Attendee$1, "__esModule", { value: !0 });
class Attendee {
}
Attendee$1.default = Attendee;
var AudioLogEvent = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.AudioLogEvent = void 0;
  var tv;
  (function(ev) {
    ev[ev.DeviceChanged = 0] = "DeviceChanged", ev[ev.MutedLocal = 1] = "MutedLocal", ev[ev.UnmutedLocal = 2] = "UnmutedLocal", ev[ev.Connected = 3] = "Connected", ev[ev.ConnectFailed = 4] = "ConnectFailed", ev[ev.RedmicStartLoss = 5] = "RedmicStartLoss", ev[ev.RedmicEndLoss = 6] = "RedmicEndLoss";
  })(tv = rv.AudioLogEvent || (rv.AudioLogEvent = {})), rv.default = tv;
})(AudioLogEvent);
var AudioProfile$1 = {};
Object.defineProperty(AudioProfile$1, "__esModule", { value: !0 });
class AudioProfile {
  /**
   * Constructs an AudioProfile given an audio bitrate. If no
   * audio bitrate is supplied, then the default AudioProfile
   * is constructed. The default AudioProfile does not adjust
   * the browser's internal bitrate setting.
   */
  constructor(tv = null) {
    this.audioBitrateBps = tv;
  }
  /**
   * Creates an AudioProfile optimized for fullband speech (40 kbit/s mono).
   */
  static fullbandSpeechMono() {
    return new AudioProfile(4e4);
  }
  /**
   * Creates an AudioProfile optimized for fullband music (64 kbit/s mono).
   */
  static fullbandMusicMono() {
    return new AudioProfile(64e3);
  }
  /**
   * Creates an AudioProfile optimized for fullband stereo music (128 kbit/s stereo).
   */
  static fullbandMusicStereo() {
    return new AudioProfile(128e3);
  }
  /**
   * Returns true if audio profile is set to stereo mode.
   */
  isStereo() {
    return this.audioBitrateBps === 128e3;
  }
}
AudioProfile$1.default = AudioProfile;
var AudioVideoControllerState$1 = {};
Object.defineProperty(AudioVideoControllerState$1, "__esModule", { value: !0 });
class AudioVideoControllerState {
  constructor() {
    this.logger = null, this.browserBehavior = null, this.signalingClient = null, this.meetingSessionConfiguration = null, this.peer = null, this.previousSdpOffer = null, this.sdpOfferInit = null, this.audioVideoController = null, this.realtimeController = null, this.videoTileController = null, this.mediaStreamBroker = null, this.audioMixController = null, this.activeAudioInput = null, this.activeVideoInput = null, this.transceiverController = null, this.indexFrame = null, this.iceCandidates = [], this.iceCandidateHandler = null, this.iceGatheringStateEventHandler = null, this.sdpAnswer = null, this.turnCredentials = null, this.reconnectController = null, this.removableObservers = [], this.audioProfile = null, this.videoStreamIndex = null, this.videoDownlinkBandwidthPolicy = null, this.videoUplinkBandwidthPolicy = null, this.lastKnownVideoAvailability = null, this.localVideoSender = null, this.localAudioSender = null, this.videoCaptureAndEncodeParameter = null, this.videosToReceive = null, this.lastVideosToReceive = null, this.videoSubscriptions = null, this.videoSubscriptionLimit = 25, this.previousSdpAnswerAsString = "", this.serverSupportsCompression = !1, this.videosPaused = null, this.videoDuplexMode = null, this.volumeIndicatorAdapter = null, this.statsCollector = null, this.connectionMonitor = null, this.videoInputAttachedTimestampMs = 0, this.audioDeviceInformation = {}, this.videoDeviceInformation = {}, this.enableSimulcast = !1, this.eventController = null, this.signalingOpenDurationMs = null, this.iceGatheringDurationMs = null, this.startAudioVideoTimestamp = null, this.attendeePresenceDurationMs = null, this.meetingStartDurationMs = null, this.poorConnectionCount = 0, this.maxVideoTileCount = 0, this.startTimeMs = null;
  }
}
AudioVideoControllerState$1.default = AudioVideoControllerState;
var BackgroundBlurStrength = {};
Object.defineProperty(BackgroundBlurStrength, "__esModule", { value: !0 });
BackgroundBlurStrength.BlurStrengthMapper = void 0;
const BlurStrength = {
  LOW: 7,
  MEDIUM: 15,
  HIGH: 30
};
class BlurStrengthMapper {
  static getBlurAmount(tv, ev) {
    if (tv <= 0)
      throw new Error(`invalid value for blur strength: ${tv}`);
    return Math.round(tv * ev.height / this.BLUR_STRENGTH_DIVISOR);
  }
}
BackgroundBlurStrength.BlurStrengthMapper = BlurStrengthMapper;
BlurStrengthMapper.BLUR_STRENGTH_DIVISOR = 540;
BackgroundBlurStrength.default = BlurStrength;
var BackgroundBlurVideoFrameProcessor$1 = {}, BackgroundFilterVideoFrameProcessor$1 = {}, loader = {}, fetch$1 = {};
Object.defineProperty(fetch$1, "__esModule", { value: !0 });
fetch$1.isValidRevisionID = fetch$1.isValidAssetGroup = fetch$1.resolveURL = fetch$1.addQueryParams = fetch$1.withQueryString = fetch$1.withRequestHeaders = fetch$1.fetchWithBehavior = void 0;
function fetchWithBehavior(rv, tv, ev) {
  if (!ev)
    return fetch(rv, tv);
  const iv = withQueryString(rv, ev), ov = withRequestHeaders(tv, ev);
  return fetch(iv, ov);
}
fetch$1.fetchWithBehavior = fetchWithBehavior;
function withRequestHeaders(rv, tv) {
  return tv != null && tv.headers ? rv ? Object.assign(Object.assign({}, rv), { headers: Object.assign(Object.assign({}, rv.headers || {}), tv.headers) }) : {
    headers: tv.headers
  } : rv;
}
fetch$1.withRequestHeaders = withRequestHeaders;
function withQueryString(rv, tv) {
  if (!(tv != null && tv.escapedQueryString))
    return rv;
  const ev = rv.lastIndexOf("?") !== -1;
  return `${rv}${ev ? "&" : "?"}${tv.escapedQueryString}`;
}
fetch$1.withQueryString = withQueryString;
function addQueryParams(rv, tv) {
  const ev = Object.keys(tv);
  if (!ev.length)
    return rv;
  const iv = new URLSearchParams(rv == null ? void 0 : rv.escapedQueryString);
  for (const ov of ev)
    iv.append(ov, tv[ov]);
  return Object.assign(Object.assign({}, rv), { escapedQueryString: iv.toString() });
}
fetch$1.addQueryParams = addQueryParams;
const HEAD_OPTIONS = {
  method: "HEAD",
  mode: "cors",
  credentials: "omit",
  redirect: "follow",
  referrerPolicy: "origin"
};
function resolveURL(rv, tv) {
  return fetchWithBehavior(rv, HEAD_OPTIONS, tv).then((ev) => ev.redirected ? ev.url : rv);
}
fetch$1.resolveURL = resolveURL;
function isValidAssetGroup(rv) {
  return !!rv && /^[-.a-zA-Z0-9]+$/.test(rv);
}
fetch$1.isValidAssetGroup = isValidAssetGroup;
function isValidRevisionID(rv) {
  return !!rv && /^[123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ]{22}$/.test(rv);
}
fetch$1.isValidRevisionID = isValidRevisionID;
Object.defineProperty(loader, "__esModule", { value: !0 });
loader.loadWorker = void 0;
const fetch_js_1$1 = fetch$1, WORKER_FETCH_OPTIONS = {
  method: "GET",
  mode: "cors",
  credentials: "omit",
  redirect: "follow",
  referrerPolicy: "no-referrer"
}, loadWorker = (rv, tv, ev, iv) => {
  iv == null || iv.debug(`Loading ${tv} worker from ${rv}.`);
  let ov = !1;
  try {
    ov = self.origin === new URL(rv).origin;
  } catch (av) {
    iv == null || iv.error("Could not compare origins.", av);
  }
  if (ov) {
    const av = fetch_js_1$1.withQueryString(rv, ev);
    return Promise.resolve(new Worker(av, { name: tv }));
  }
  return fetch_js_1$1.fetchWithBehavior(rv, WORKER_FETCH_OPTIONS, ev).then((av) => {
    if (av.ok)
      return av.blob().then((sv) => new Worker(window.URL.createObjectURL(sv)));
    throw new Error("Fetch failed.");
  });
};
loader.loadWorker = loadWorker;
var support = {};
(function(rv) {
  var tv = commonjsGlobal && commonjsGlobal.__awaiter || function(_v, Ev, wv, xv) {
    function Cv(Av) {
      return Av instanceof wv ? Av : new wv(function(Ov) {
        Ov(Av);
      });
    }
    return new (wv || (wv = Promise))(function(Av, Ov) {
      function Lv(Vv) {
        try {
          Dv(xv.next(Vv));
        } catch (Gv) {
          Ov(Gv);
        }
      }
      function jv(Vv) {
        try {
          Dv(xv.throw(Vv));
        } catch (Gv) {
          Ov(Gv);
        }
      }
      function Dv(Vv) {
        Vv.done ? Av(Vv.value) : Cv(Vv.value).then(Lv, jv);
      }
      Dv((xv = xv.apply(_v, Ev || [])).next());
    });
  };
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.isOldChrome = rv.supportsWASMStreaming = rv.supportsSharedArrayBuffer = rv.supportsWASM = rv.supportsAudioWorklet = rv.supportsWorker = rv.supportsVoiceFocusWorker = rv.supportsWASMPostMessage = rv.isSafari = void 0;
  const ev = loader, iv = (_v = globalThis) => !!_v.navigator.userAgent.match(/Chrom(?:e|ium)\/([0-9]+)/), ov = (_v = globalThis) => {
    const Ev = _v.navigator.userAgent, wv = Ev.match(/Safari\//), xv = Ev.match(/Chrom(?:e|ium)\//);
    return !!(wv && !xv);
  };
  rv.isSafari = ov;
  const av = (_v = globalThis) => rv.isSafari(_v) ? !1 : iv(_v) ? (yv(_v) || 0) < 95 : !0;
  rv.supportsWASMPostMessage = av;
  const sv = (_v = globalThis, Ev, wv) => tv(void 0, void 0, void 0, function* () {
    if (!rv.supportsWorker(_v, wv))
      return !1;
    const xv = `${Ev.paths.workers}worker-v1.js`;
    try {
      const Cv = yield ev.loadWorker(xv, "VoiceFocusTestWorker", Ev, wv);
      try {
        Cv.terminate();
      } catch (Av) {
        wv == null || wv.debug("Failed to terminate worker.", Av);
      }
      return !0;
    } catch (Cv) {
      return wv == null || wv.info("Failed to fetch and instantiate test worker", Cv), !1;
    }
  });
  rv.supportsVoiceFocusWorker = sv;
  const lv = (_v = globalThis, Ev) => {
    try {
      return !!_v.Worker;
    } catch (wv) {
      return Ev == null || Ev.info("Does not support Worker", wv), !1;
    }
  };
  rv.supportsWorker = lv;
  const uv = (_v = globalThis, Ev) => {
    try {
      return !!_v.AudioWorklet && !!_v.AudioWorkletNode;
    } catch (wv) {
      return Ev == null || Ev.info("Does not support Audio Worklet", wv), !1;
    }
  };
  rv.supportsAudioWorklet = uv;
  const cv = (_v = globalThis, Ev) => {
    try {
      return !!_v.WebAssembly && (!!_v.WebAssembly.compile || !!_v.WebAssembly.compileStreaming);
    } catch (wv) {
      return Ev == null || Ev.info("Does not support WASM", wv), !1;
    }
  };
  rv.supportsWASM = cv;
  const dv = (_v = globalThis, Ev = globalThis, wv) => {
    try {
      return !!_v.SharedArrayBuffer && (!!Ev.chrome || !!_v.crossOriginIsolated);
    } catch {
      return wv == null || wv.info("Does not support SharedArrayBuffer."), !1;
    }
  };
  rv.supportsSharedArrayBuffer = dv;
  const hv = (_v = globalThis, Ev) => {
    var wv;
    try {
      return !!(!((wv = _v.WebAssembly) === null || wv === void 0) && wv.compileStreaming);
    } catch (xv) {
      return Ev == null || Ev.info("Does not support WASM streaming compilation", xv), !1;
    }
  };
  rv.supportsWASMStreaming = hv;
  const pv = 90, yv = (_v = globalThis) => {
    try {
      if (!_v.chrome)
        return;
    } catch {
    }
    const Ev = _v.navigator.userAgent.match(/Chrom(?:e|ium)\/([0-9]+)/);
    if (Ev)
      return parseInt(Ev[1], 10);
  }, Sv = (_v = globalThis, Ev) => {
    const wv = yv(_v);
    return wv && wv < pv ? (Ev == null || Ev.debug(`Chrome ${wv} has incomplete SIMD support.`), !0) : !1;
  };
  rv.isOldChrome = Sv;
})(support);
var ModelSpecBuilder$1 = {};
Object.defineProperty(ModelSpecBuilder$1, "__esModule", { value: !0 });
class ModelSpecBuilder {
  constructor() {
    this.path = null, this.input = null, this.output = null;
  }
  static builder() {
    return new ModelSpecBuilder();
  }
  /**
   * Set up the builder to use the default model implementation.
   *
   * Members of this interface can change without a major version bump to accommodate new browser
   * bugs and capabilities. If you extend this type, you might need to rework your code for new minor
   * versions of this library.
   * @returns a reference to the current builder.
   */
  withDefaultModel() {
    return this.withSelfieSegmentationDefaults();
  }
  /**
   * Set up the builder to use the defaults for selfie segmentation model.
   * @returns the builder to allow for fluent API (e.g., ModelSpecBuilder.withSelfieSegmentationDefaults().build()).
   */
  withSelfieSegmentationDefaults() {
    const tv = {
      height: 144,
      width: 256,
      range: [0, 1],
      channels: 3
    }, ev = {
      height: 144,
      width: 256,
      range: [0, 1],
      channels: 1
    }, iv = "https://static.sdkassets.chime.aws/bgblur/models/selfie_segmentation_landscape.tflite";
    return this.path = iv, this.input = tv, this.output = ev, this;
  }
  /**
   * A method to override the path to the segmentation model.
   * @param path A function that returns the path to the segmentation model.
   * @returns the builder to allow for fluent API (e.g., ModelSpecBuilder.builder().withPath("some path").build()).
   */
  withPath(tv) {
    return this.path = tv, this;
  }
  /**
   * A method to override the input shape to the segmentation model.
   * @param input An object that defines input shape of the segmentation model.
   * @returns the builder to allow for fluent API (e.g., ModelSpecBuilder.builder().withInput({}).build()).
   */
  withInput(tv) {
    return this.input = tv, this;
  }
  /**
   * A method to override the output shape to the segmentation model.
   * @param input An object that defines input shape of the segmentation model.
   * @returns the builder to allow for fluent API (e.g., ModelSpecBuilder.builder().withOutput({}).build()).
   */
  withOutput(tv) {
    return this.output = tv, this;
  }
  /**
   * Validate that inputs to the model spec are valid.
   */
  validate() {
    if (!this.path)
      throw new Error("model spec path is not set");
    if (!this.input)
      throw new Error("model spec input is not set");
    if (!this.output)
      throw new Error("model spec output is not set");
  }
  /**
   * A method that returns an instantiated object that implements the ModelSpec interface with values set for
   * the use of the selfie segmentation model.
   * @returns an object that implements the ModelSpec interface.
   */
  build() {
    return this.validate(), {
      path: this.path,
      input: this.input,
      output: this.output
    };
  }
}
ModelSpecBuilder$1.default = ModelSpecBuilder;
var DefaultBrowserBehavior$1 = {}, __spreadArray = function(rv, tv, ev) {
  if (ev || arguments.length === 2)
    for (var iv = 0, ov = tv.length, av; iv < ov; iv++)
      (av || !(iv in tv)) && (av || (av = Array.prototype.slice.call(tv, 0, iv)), av[iv] = tv[iv]);
  return rv.concat(av || Array.prototype.slice.call(tv));
}, BrowserInfo = (
  /** @class */
  /* @__PURE__ */ function() {
    function rv(tv, ev, iv) {
      this.name = tv, this.version = ev, this.os = iv, this.type = "browser";
    }
    return rv;
  }()
), NodeInfo = (
  /** @class */
  /* @__PURE__ */ function() {
    function rv(tv) {
      this.version = tv, this.type = "node", this.name = "node", this.os = process.platform;
    }
    return rv;
  }()
), SearchBotDeviceInfo = (
  /** @class */
  /* @__PURE__ */ function() {
    function rv(tv, ev, iv, ov) {
      this.name = tv, this.version = ev, this.os = iv, this.bot = ov, this.type = "bot-device";
    }
    return rv;
  }()
), BotInfo = (
  /** @class */
  /* @__PURE__ */ function() {
    function rv() {
      this.type = "bot", this.bot = !0, this.name = "bot", this.version = null, this.os = null;
    }
    return rv;
  }()
), ReactNativeInfo = (
  /** @class */
  /* @__PURE__ */ function() {
    function rv() {
      this.type = "react-native", this.name = "react-native", this.version = null, this.os = null;
    }
    return rv;
  }()
), SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/, SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/, REQUIRED_VERSION_PARTS = 3, userAgentRules = [
  ["aol", /AOLShield\/([0-9\._]+)/],
  ["edge", /Edge\/([0-9\._]+)/],
  ["edge-ios", /EdgiOS\/([0-9\._]+)/],
  ["yandexbrowser", /YaBrowser\/([0-9\._]+)/],
  ["kakaotalk", /KAKAOTALK\s([0-9\.]+)/],
  ["samsung", /SamsungBrowser\/([0-9\.]+)/],
  ["silk", /\bSilk\/([0-9._-]+)\b/],
  ["miui", /MiuiBrowser\/([0-9\.]+)$/],
  ["beaker", /BeakerBrowser\/([0-9\.]+)/],
  ["edge-chromium", /EdgA?\/([0-9\.]+)/],
  [
    "chromium-webview",
    /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/
  ],
  ["chrome", /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],
  ["phantomjs", /PhantomJS\/([0-9\.]+)(:?\s|$)/],
  ["crios", /CriOS\/([0-9\.]+)(:?\s|$)/],
  ["firefox", /Firefox\/([0-9\.]+)(?:\s|$)/],
  ["fxios", /FxiOS\/([0-9\.]+)/],
  ["opera-mini", /Opera Mini.*Version\/([0-9\.]+)/],
  ["opera", /Opera\/([0-9\.]+)(?:\s|$)/],
  ["opera", /OPR\/([0-9\.]+)(:?\s|$)/],
  ["pie", /^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/],
  ["pie", /^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/],
  ["netfront", /^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/],
  ["ie", /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],
  ["ie", /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],
  ["ie", /MSIE\s(7\.0)/],
  ["bb10", /BB10;\sTouch.*Version\/([0-9\.]+)/],
  ["android", /Android\s([0-9\.]+)/],
  ["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/],
  ["safari", /Version\/([0-9\._]+).*Safari/],
  ["facebook", /FB[AS]V\/([0-9\.]+)/],
  ["instagram", /Instagram\s([0-9\.]+)/],
  ["ios-webview", /AppleWebKit\/([0-9\.]+).*Mobile/],
  ["ios-webview", /AppleWebKit\/([0-9\.]+).*Gecko\)$/],
  ["curl", /^curl\/([0-9\.]+)$/],
  ["searchbot", SEARCHBOX_UA_REGEX]
], operatingSystemRules = [
  ["iOS", /iP(hone|od|ad)/],
  ["Android OS", /Android/],
  ["BlackBerry OS", /BlackBerry|BB10/],
  ["Windows Mobile", /IEMobile/],
  ["Amazon OS", /Kindle/],
  ["Windows 3.11", /Win16/],
  ["Windows 95", /(Windows 95)|(Win95)|(Windows_95)/],
  ["Windows 98", /(Windows 98)|(Win98)/],
  ["Windows 2000", /(Windows NT 5.0)|(Windows 2000)/],
  ["Windows XP", /(Windows NT 5.1)|(Windows XP)/],
  ["Windows Server 2003", /(Windows NT 5.2)/],
  ["Windows Vista", /(Windows NT 6.0)/],
  ["Windows 7", /(Windows NT 6.1)/],
  ["Windows 8", /(Windows NT 6.2)/],
  ["Windows 8.1", /(Windows NT 6.3)/],
  ["Windows 10", /(Windows NT 10.0)/],
  ["Windows ME", /Windows ME/],
  ["Windows CE", /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],
  ["Open BSD", /OpenBSD/],
  ["Sun OS", /SunOS/],
  ["Chrome OS", /CrOS/],
  ["Linux", /(Linux)|(X11)/],
  ["Mac OS", /(Mac_PowerPC)|(Macintosh)/],
  ["QNX", /QNX/],
  ["BeOS", /BeOS/],
  ["OS/2", /OS\/2/]
];
function detect(rv) {
  return rv ? parseUserAgent(rv) : typeof document > "u" && typeof navigator < "u" && navigator.product === "ReactNative" ? new ReactNativeInfo() : typeof navigator < "u" ? parseUserAgent(navigator.userAgent) : getNodeVersion();
}
function matchUserAgent(rv) {
  return rv !== "" && userAgentRules.reduce(function(tv, ev) {
    var iv = ev[0], ov = ev[1];
    if (tv)
      return tv;
    var av = ov.exec(rv);
    return !!av && [iv, av];
  }, !1);
}
function browserName(rv) {
  var tv = matchUserAgent(rv);
  return tv ? tv[0] : null;
}
function parseUserAgent(rv) {
  var tv = matchUserAgent(rv);
  if (!tv)
    return null;
  var ev = tv[0], iv = tv[1];
  if (ev === "searchbot")
    return new BotInfo();
  var ov = iv[1] && iv[1].split(".").join("_").split("_").slice(0, 3);
  ov ? ov.length < REQUIRED_VERSION_PARTS && (ov = __spreadArray(__spreadArray([], ov, !0), createVersionParts(REQUIRED_VERSION_PARTS - ov.length), !0)) : ov = [];
  var av = ov.join("."), sv = detectOS(rv), lv = SEARCHBOT_OS_REGEX.exec(rv);
  return lv && lv[1] ? new SearchBotDeviceInfo(ev, av, sv, lv[1]) : new BrowserInfo(ev, av, sv);
}
function detectOS(rv) {
  for (var tv = 0, ev = operatingSystemRules.length; tv < ev; tv++) {
    var iv = operatingSystemRules[tv], ov = iv[0], av = iv[1], sv = av.exec(rv);
    if (sv)
      return ov;
  }
  return null;
}
function getNodeVersion() {
  var rv = typeof process < "u" && process.version;
  return rv ? new NodeInfo(process.version.slice(1)) : null;
}
function createVersionParts(rv) {
  for (var tv = [], ev = 0; ev < rv; ev++)
    tv.push("0");
  return tv;
}
const es = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  BotInfo,
  BrowserInfo,
  NodeInfo,
  ReactNativeInfo,
  SearchBotDeviceInfo,
  browserName,
  detect,
  detectOS,
  getNodeVersion,
  parseUserAgent
}, Symbol.toStringTag, { value: "Module" })), require$$0 = /* @__PURE__ */ getAugmentedNamespace(es);
var __awaiter$_ = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultBrowserBehavior$1, "__esModule", { value: !0 });
const detect_browser_1 = require$$0;
class DefaultBrowserBehavior {
  constructor({
    // Temporarily disable this workaround while we work out the kinks.
    recreateAudioContextIfNeeded: tv = !1
  } = {}) {
    this.browser = detect_browser_1.detect(), this.browserSupport = {
      chrome: 78,
      "edge-chromium": 79,
      electron: 7,
      firefox: 75,
      ios: 12,
      safari: 12,
      opera: 66,
      samsung: 12,
      crios: 86,
      fxios: 23,
      "ios-webview": 605,
      "chromium-webview": 92
    }, this.browserName = {
      chrome: "Google Chrome",
      "edge-chromium": "Microsoft Edge",
      electron: "Electron",
      firefox: "Mozilla Firefox",
      ios: "Safari iOS",
      safari: "Safari",
      opera: "Opera",
      samsung: "Samsung Internet",
      crios: "Chrome iOS",
      fxios: "Firefox iOS",
      "ios-webview": "WKWebView iOS",
      "chromium-webview": "Chrome WebView"
    }, this.chromeLike = [
      "chrome",
      "edge-chromium",
      "chromium-webview",
      "opera",
      "samsung"
    ], this.webkitBrowsers = ["crios", "fxios", "safari", "ios", "ios-webview"], this.recreateAudioContextIfNeeded = tv;
  }
  version() {
    return this.browser.version;
  }
  majorVersion() {
    return parseInt(this.version().split(".")[0]);
  }
  name() {
    return this.browser.name;
  }
  hasChromiumWebRTC() {
    for (const tv of this.chromeLike)
      if (tv === this.browser.name)
        return !0;
    return !1;
  }
  hasWebKitWebRTC() {
    for (const tv of this.webkitBrowsers)
      if (tv === this.browser.name)
        return !0;
    return !1;
  }
  hasFirefoxWebRTC() {
    return this.isFirefox();
  }
  supportsCanvasCapturedStreamPlayback() {
    return !this.isIOSSafari() && !this.isIOSChrome() && !this.isIOSFirefox();
  }
  supportsBackgroundFilter() {
    return !(this.name() === "safari" && this.majorVersion() === 15 || !this.supportsCanvasCapturedStreamPlayback());
  }
  requiresUnifiedPlan() {
    return this.isFirefox() || this.hasChromiumWebRTC() || this.hasWebKitWebRTC() && this.isUnifiedPlanSupported();
  }
  requiresResolutionAlignment(tv, ev) {
    return this.isAndroid() && this.isPixel3() ? [Math.ceil(tv / 64) * 64, Math.ceil(ev / 64) * 64] : [tv, ev];
  }
  requiresCheckForSdpConnectionAttributes() {
    return !this.isIOSSafari() && !this.isIOSChrome() && !this.isIOSFirefox();
  }
  requiresIceCandidateGatheringTimeoutWorkaround() {
    return this.hasChromiumWebRTC();
  }
  requiresUnifiedPlanMunging() {
    return this.hasChromiumWebRTC() || this.hasWebKitWebRTC() && this.isUnifiedPlanSupported();
  }
  requiresSortCodecPreferencesForSdpAnswer() {
    return this.isFirefox() && this.majorVersion() <= 68;
  }
  requiresSimulcastMunging() {
    return this.isSafari();
  }
  requiresBundlePolicy() {
    return "max-bundle";
  }
  requiresPromiseBasedWebRTCGetStats() {
    return !this.hasChromiumWebRTC();
  }
  requiresVideoElementWorkaround() {
    return this.isSafari() && this.majorVersion() === 12;
  }
  requiresNoExactMediaStreamConstraints() {
    return this.isSamsungInternet() || this.isIOSSafari() && (this.version() === "12.0.0" || this.version() === "12.1.0");
  }
  requiresGroupIdMediaStreamConstraints() {
    return this.isSamsungInternet();
  }
  requiresContextRecreationForAudioWorklet() {
    return !this.recreateAudioContextIfNeeded || !("chrome" in commonjsGlobal) || this.browser.os !== "Mac OS" ? !1 : !!(this.isChrome() || this.isEdge());
  }
  getDisplayMediaAudioCaptureSupport() {
    return this.isChrome() || this.isEdge();
  }
  supportsSenderSideBandwidthEstimation() {
    return this.hasChromiumWebRTC() || this.isSafari();
  }
  // There's a issue in Chormium WebView that causes enumerate devices to return empty labels, this is a check for this issue.
  // https://bugs.chromium.org/p/chromium/issues/detail?id=669492
  doesNotSupportMediaDeviceLabels() {
    return this.browser.name === "chromium-webview";
  }
  // TODO: Deprecated, needs to be removed
  screenShareUnsupported() {
    return console.warn("This function is no longer supported."), !0;
  }
  isSupported() {
    return !(!this.browserSupport[this.browser.name] || this.majorVersion() < this.browserSupport[this.browser.name] || this.browser.name === "firefox" && this.isAndroid());
  }
  isSimulcastSupported() {
    return this.hasChromiumWebRTC();
  }
  supportDownlinkBandwidthEstimation() {
    return !this.isFirefox();
  }
  supportString() {
    if (this.isAndroid())
      return `${this.browserName.chrome} ${this.browserSupport.chrome}+, ${this.browserName.samsung} ${this.browserSupport.samsung}+`;
    const tv = [];
    for (const ev in this.browserSupport)
      tv.push(`${this.browserName[ev]} ${this.browserSupport[ev]}+`);
    return tv.join(", ");
  }
  supportedVideoCodecs() {
    return __awaiter$_(this, void 0, void 0, function* () {
      const tv = new RTCPeerConnection();
      return tv.addTransceiver("video", { direction: "inactive", streams: [] }), (yield tv.createOffer({ offerToReceiveVideo: !0 })).sdp.split(`\r
`).filter((ev) => ev.includes("a=rtpmap:")).map((ev) => ev.replace(/.* /, "").replace(/\/.*/, "")).filter((ev, iv, ov) => ov.indexOf(ev) === iv).filter((ev) => ev !== "rtx" && ev !== "red" && ev !== "ulpfec");
    });
  }
  supportsSetSinkId() {
    return "setSinkId" in HTMLAudioElement.prototype;
  }
  disableResolutionScaleDown() {
    return this.isAndroid();
  }
  disable480pResolutionScaleDown() {
    return /( Chrome\/98\.)/i.test(navigator.userAgent) && this.browser.os.startsWith("Windows");
  }
  requiresDisablingH264Encoding() {
    return (this.isIOSSafari() || this.isIOSChrome() || this.isIOSFirefox()) && (this.version() === "15.1.0" || /( OS 15_1)/i.test(navigator.userAgent));
  }
  // These helpers should be kept private to encourage
  // feature detection instead of browser detection.
  isIOSSafari() {
    return this.browser.name === "ios" || this.browser.name === "ios-webview" || this.browser.name === "safari" && /( Mac )/i.test(navigator.userAgent) && navigator.maxTouchPoints > 1;
  }
  isSafari() {
    return this.browser.name === "safari" || this.browser.name === "ios";
  }
  isFirefox() {
    return this.browser.name === "firefox";
  }
  isIOSFirefox() {
    return this.browser.name === "fxios";
  }
  isIOSChrome() {
    return this.browser.name === "crios";
  }
  isChrome() {
    return this.browser.name === "chrome";
  }
  isEdge() {
    return this.browser.name === "edge-chromium";
  }
  isSamsungInternet() {
    return this.browser.name === "samsung";
  }
  isAndroid() {
    return /(android)/i.test(navigator.userAgent);
  }
  isPixel3() {
    return /( pixel 3)/i.test(navigator.userAgent);
  }
  isUnifiedPlanSupported() {
    return RTCRtpTransceiver.prototype.hasOwnProperty("currentDirection");
  }
}
DefaultBrowserBehavior$1.default = DefaultBrowserBehavior;
var Versioning$1 = {}, version = {};
Object.defineProperty(version, "__esModule", { value: !0 });
version.default = {
  hash: "aac3723",
  raw: "v2.30.0",
  semverString: "2.30.0"
};
Object.defineProperty(Versioning$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1$b = DefaultBrowserBehavior$1, version_1 = version;
class Versioning {
  /**
   * Return string representation of SDK name
   */
  static get sdkName() {
    return "amazon-chime-sdk-js";
  }
  /**
   * Return string representation of SDK version
   */
  static get sdkVersion() {
    return version_1.default.semverString;
  }
  /**
   * Returns the parts of the semver, so major/minor/patch can be extracted individually.
   */
  static get sdkVersionSemVer() {
    var tv, ev, iv;
    const ov = version_1.default.semverString.match(/^(?<major>[0-9]+)\.(?<minor>[0-9]+)(?:\.(?<patch>[0-9]+))?/);
    return {
      major: (tv = ov == null ? void 0 : ov.groups) === null || tv === void 0 ? void 0 : tv.major,
      minor: (ev = ov == null ? void 0 : ov.groups) === null || ev === void 0 ? void 0 : ev.minor,
      patch: (iv = ov == null ? void 0 : ov.groups) === null || iv === void 0 ? void 0 : iv.patch
    };
  }
  /**
   * Return the SHA-1 of the Git commit from which this build was created.
   */
  static get buildSHA() {
    return version_1.default.hash.substr(1);
  }
  /**
   * Return low-resolution string representation of SDK user agent (e.g. `chrome-78`)
   */
  static get sdkUserAgentLowResolution() {
    const tv = new DefaultBrowserBehavior_1$b.default();
    return `${tv.name()}-${tv.majorVersion()}`;
  }
  /**
   * Return URL with versioning information appended
   */
  static urlWithVersion(tv) {
    const ev = new URL(tv);
    return ev.searchParams.append(Versioning.X_AMZN_VERSION, Versioning.sdkVersion), ev.searchParams.append(Versioning.X_AMZN_USER_AGENT, Versioning.sdkUserAgentLowResolution), ev.toString();
  }
}
Versioning$1.default = Versioning;
Versioning.X_AMZN_VERSION = "X-Amzn-Version";
Versioning.X_AMZN_USER_AGENT = "X-Amzn-User-Agent";
var __awaiter$Z = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(BackgroundFilterVideoFrameProcessor$1, "__esModule", { value: !0 });
const loader_1$1 = loader, support_1 = support, ModelSpecBuilder_1 = ModelSpecBuilder$1, DefaultBrowserBehavior_1$a = DefaultBrowserBehavior$1, Versioning_1$7 = Versioning$1, CREATE_DEFAULT_MODEL_SPEC = () => ModelSpecBuilder_1.default.builder().withSelfieSegmentationDefaults().build(), DEFAULT_CDN$1 = "https://static.sdkassets.chime.aws", DEFAULT_PATHS$1 = {
  worker: `${DEFAULT_CDN$1}/bgblur/workers/worker.js`,
  wasm: `${DEFAULT_CDN$1}/bgblur/wasm/_cwt-wasm.wasm`,
  simd: `${DEFAULT_CDN$1}/bgblur/wasm/_cwt-wasm-simd.wasm`
};
class BackgroundFilterVideoFrameProcessor {
  /**
   * Based on the SDK version, return an asset group.
   *
   * @returns the default asset spec, based on the SDK version.
   */
  static defaultAssetSpec() {
    const tv = Versioning_1$7.default.sdkVersionSemVer;
    return {
      assetGroup: `sdk-${tv.major}.${tv.minor}`
    };
  }
  /**
   * Set the given parameters to the url. Existing parameters in the url are preserved.
   * If duplicate parameters exist, they are overwritten, so it's safe to call this method multiple
   * times on the same url.
   *
   * @param url the initial url, can include query parameters
   * @param queryParams the query parameters to set
   * @returns a new url with the given query parameters.
   */
  static createUrlWithParams(tv, ev) {
    const iv = new URL(tv), ov = Object.keys(ev);
    for (const av of ov)
      ev[av] !== void 0 && iv.searchParams.set(av, ev[av]);
    return iv.toString();
  }
  /**
   * Based on the spec that is passed in set defaults for spec
   * @param spec the spec that was passed in
   * @returns An updated spec with defaults set
   */
  static resolveSpec(tv) {
    const { paths: ev = DEFAULT_PATHS$1, model: iv = CREATE_DEFAULT_MODEL_SPEC(), assetGroup: ov = this.defaultAssetSpec().assetGroup, revisionID: av = this.defaultAssetSpec().revisionID } = tv || {}, sv = {
      assetGroup: ov,
      revisionID: av,
      sdk: encodeURIComponent(Versioning_1$7.default.sdkVersion),
      ua: encodeURIComponent(Versioning_1$7.default.sdkUserAgentLowResolution)
    };
    return ev.worker = this.createUrlWithParams(ev.worker, sv), ev.wasm = this.createUrlWithParams(ev.wasm, sv), ev.simd = this.createUrlWithParams(ev.simd, sv), iv.path = this.createUrlWithParams(iv.path, sv), {
      paths: ev,
      model: iv,
      assetGroup: ov,
      revisionID: av
    };
  }
  /**
   * Based on the options that are passed in set defaults for options
   * @param options  the options that are passed in
   * @returns An updated set of options with defaults set
   */
  static resolveOptions(tv) {
    tv.reportingPeriodMillis || (tv.reportingPeriodMillis = 1e3);
    const ev = 30;
    return tv.filterCPUUtilization ? (tv.filterCPUUtilization < 0 || tv.filterCPUUtilization > 100) && (tv.logger.warn(`filterCPUUtilization must be set to a range between 0 and 100 percent. Falling back to default of ${ev} percent`), tv.filterCPUUtilization = ev) : tv.filterCPUUtilization = ev, tv;
  }
  /**
   * This method will detect the environment in which it is being used and determine if background
   * blur/replacement can be used.
   * @param spec The {@link BackgroundBlurSpec} spec that will be used to initialize assets
   * @param options options such as logger
   * @returns a boolean promise that will resolve to true if supported and false if not
   */
  static isSupported(tv, ev) {
    const { logger: iv } = ev;
    return typeof globalThis > "u" ? (iv.info("Browser does not have globalThis."), Promise.resolve(!1)) : new DefaultBrowserBehavior_1$a.default().supportsBackgroundFilter() ? support_1.supportsWASM(globalThis, iv) ? this.supportsBackgroundFilter(globalThis, tv, iv) : (iv.info("Browser does not support WASM."), Promise.resolve(!1)) : (iv.info("Browser is not supported."), Promise.resolve(!1));
  }
  static supportsBackgroundFilter(tv = globalThis, ev, iv) {
    return __awaiter$Z(this, void 0, void 0, function* () {
      if (!support_1.supportsWorker(tv, iv))
        return iv.info("Browser does not support web workers."), !1;
      const ov = ev.paths.worker;
      try {
        const av = yield loader_1$1.loadWorker(ov, "BackgroundFilterWorker", {}, null);
        try {
          av.terminate();
        } catch (sv) {
          iv.info(`Failed to terminate worker. ${sv.message}`);
        }
        return !0;
      } catch (av) {
        return iv.info(`Failed to fetch and instantiate test worker ${av.message}`), !1;
      }
    });
  }
}
BackgroundFilterVideoFrameProcessor$1.default = BackgroundFilterVideoFrameProcessor;
var ConsoleLogger$1 = {};
Object.defineProperty(ConsoleLogger$1, "__esModule", { value: !0 });
const LogLevel_1$7 = LogLevel;
class ConsoleLogger {
  constructor(tv, ev = LogLevel_1$7.default.WARN) {
    this.name = tv, this.level = ev;
  }
  info(tv) {
    this.log(LogLevel_1$7.default.INFO, tv);
  }
  warn(tv) {
    this.log(LogLevel_1$7.default.WARN, tv);
  }
  error(tv) {
    this.log(LogLevel_1$7.default.ERROR, tv);
  }
  debug(tv) {
    LogLevel_1$7.default.DEBUG < this.level || (typeof tv == "string" ? this.log(LogLevel_1$7.default.DEBUG, tv) : tv ? this.log(LogLevel_1$7.default.DEBUG, tv()) : this.log(LogLevel_1$7.default.DEBUG, "" + tv));
  }
  setLogLevel(tv) {
    this.level = tv;
  }
  getLogLevel() {
    return this.level;
  }
  log(tv, ev) {
    if (tv < this.level)
      return;
    const ov = `${(/* @__PURE__ */ new Date()).toISOString()} [${LogLevel_1$7.default[tv]}] ${this.name} - ${ev}`;
    switch (tv) {
      case LogLevel_1$7.default.ERROR:
        console.error(ov);
        break;
      case LogLevel_1$7.default.WARN:
        console.warn(ov);
        break;
      case LogLevel_1$7.default.DEBUG:
        console.debug(ov.replace(/\\r\\n/g, `
`));
        break;
      case LogLevel_1$7.default.INFO:
        console.info(ov);
        break;
    }
  }
}
ConsoleLogger$1.default = ConsoleLogger;
var NoOpVideoFrameProcessor$1 = {}, __awaiter$Y = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(NoOpVideoFrameProcessor$1, "__esModule", { value: !0 });
class NoOpVideoFrameProcessor {
  process(tv) {
    return __awaiter$Y(this, void 0, void 0, function* () {
      return tv;
    });
  }
  destroy() {
    return __awaiter$Y(this, void 0, void 0, function* () {
    });
  }
}
NoOpVideoFrameProcessor$1.default = NoOpVideoFrameProcessor;
var BackgroundBlurProcessorBuiltIn$1 = {}, BackgroundBlurProcessorProvided$1 = {}, BackgroundFilterProcessor$1 = {}, CanvasVideoFrameBuffer$1 = {}, __awaiter$X = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(CanvasVideoFrameBuffer$1, "__esModule", { value: !0 });
class CanvasVideoFrameBuffer {
  constructor(tv) {
    this.canvas = tv, this.destroyed = !1;
  }
  destroy() {
    this.canvas = null, this.destroyed = !0;
  }
  asCanvasImageSource() {
    return __awaiter$X(this, void 0, void 0, function* () {
      return this.destroyed ? Promise.reject("canvas buffer is destroyed") : Promise.resolve(this.canvas);
    });
  }
  asCanvasElement() {
    return this.canvas;
  }
}
CanvasVideoFrameBuffer$1.default = CanvasVideoFrameBuffer;
var BackgroundFilterFrameCounter$1 = {};
Object.defineProperty(BackgroundFilterFrameCounter$1, "__esModule", { value: !0 });
const FILTER_DURATION_FACTOR = 0.8;
class BackgroundFilterFrameCounter {
  constructor(tv, ev, iv, ov) {
    this.delegate = tv, this.reportingPeriodMillis = ev, this.filterCPUUtilization = iv, this.logger = ov, this._processingFilter = !0, this.lastReportedEventTimestamp = 0, this.lastFilterCompleteTimestamp = 0, this.filterTotalMillis = 0, this.filterCount = 0, this.framerate = 0, this.filterDurationNotifyMillis = 0, this.setSegmentationDuration();
  }
  /**
   * Report events once per period.
   */
  reportEvent(tv) {
    const ev = tv - this.lastReportedEventTimestamp;
    if (ev >= this.reportingPeriodMillis) {
      const iv = this.filterCount, ov = this.filterTotalMillis;
      if (this.filterCount = 0, this.filterTotalMillis = 0, this.lastReportedEventTimestamp = tv, this.framerate === 0 || iv === 0)
        return;
      const av = Math.round(ov / iv), sv = Math.round(this.framerate * (ev / 1e3)) - iv, lv = Math.round(100 * ov / ev);
      av >= this.filterDurationNotifyMillis && this.delegate.filterFrameDurationHigh({
        framesDropped: sv,
        avgFilterDurationMillis: av,
        framerate: this.framerate,
        periodMillis: ev
      }), lv >= this.filterCPUUtilization && this.delegate.filterCPUUtilizationHigh({
        cpuUtilization: lv,
        filterMillis: ov,
        periodMillis: ev
      });
    }
  }
  setSegmentationDuration() {
    this.filterDurationNotifyMillis = Math.round(1e3 / this.framerate * FILTER_DURATION_FACTOR);
  }
  frameReceived(tv) {
    tv !== this.framerate && (this.framerate = tv, this.logger.info(`frame counter setting frame rate to ${this.framerate}`), this.setSegmentationDuration());
    const ev = Date.now();
    this.reportEvent(ev);
  }
  filterSubmitted() {
    this._processingFilter = !0, this.lastFilterCompleteTimestamp = Date.now();
  }
  filterComplete() {
    this.filterTotalMillis += Date.now() - this.lastFilterCompleteTimestamp, this._processingFilter = !1, this.filterCount++;
  }
  get processingSegment() {
    return this._processingFilter;
  }
}
BackgroundFilterFrameCounter$1.default = BackgroundFilterFrameCounter;
var __awaiter$W = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(BackgroundFilterProcessor$1, "__esModule", { value: !0 });
BackgroundFilterProcessor$1.BackgroundFilterMonitor = void 0;
const loader_1 = loader, CanvasVideoFrameBuffer_1$1 = CanvasVideoFrameBuffer$1, BackgroundFilterFrameCounter_1 = BackgroundFilterFrameCounter$1;
class DeferredObservable {
  constructor() {
    this.value = void 0, this.resolve = null;
  }
  /** Create a promise that resolves once next() is called
   */
  whenNext() {
    return this.promise || (this.promise = new Promise((tv) => this.resolve = tv)), this.promise;
  }
  /** Update the value and resolve
   */
  next(tv) {
    this.value = tv, this.resolve(tv), delete this.promise;
  }
}
class BackgroundFilterProcessor {
  constructor(tv, ev, iv, ov) {
    this.targetCanvas = document.createElement("canvas"), this.canvasCtx = this.targetCanvas.getContext("2d"), this.canvasVideoFrameBuffer = new CanvasVideoFrameBuffer_1$1.default(this.targetCanvas), this.mask$ = new DeferredObservable(), this.sourceWidth = 0, this.sourceHeight = 0, this.frameNumber = 0, this.videoFramesPerFilterUpdate = 1, this.initWorkerPromise = BackgroundFilterProcessor.createWorkerPromise(), this.loadModelPromise = BackgroundFilterProcessor.createWorkerPromise(), this.modelInitialized = !1, this.destroyed = !1, this.filterType = tv, this.validateSpec(ev), this.validateOptions(iv), this.spec = ev, this.logger = iv.logger, this.delegate = ov, this.initCPUMonitor(iv);
  }
  static createWorkerPromise() {
    const tv = { resolve: null, reject: null, promise: null };
    return tv.promise = new Promise((ev, iv) => {
      tv.resolve = ev, tv.reject = iv;
    }), tv;
  }
  /** Check if the input spec are not null
   */
  validateSpec(tv) {
    if (!tv)
      throw new Error("processor has null spec");
    if (!tv.model)
      throw new Error("processor spec has null model");
    if (!tv.paths)
      throw new Error("processor spec has null paths");
  }
  validateOptions(tv) {
    if (!tv)
      throw new Error("processor has null options");
    if (!tv.logger)
      throw new Error("processor has null options - logger");
    if (!tv.reportingPeriodMillis)
      throw new Error("processor has null options - reportingPeriodMillis");
    if (!tv.filterCPUUtilization)
      throw new Error("processor has null options - filterCPUUtilization");
  }
  initCPUMonitor(tv) {
    this.videoFramesPerFilterUpdate = 1, this.frameCounter = new BackgroundFilterFrameCounter_1.default(this.delegate, tv.reportingPeriodMillis, tv.filterCPUUtilization, this.logger), this.cpuMonitor = new BackgroundFilterMonitor(5e3, {
      reduceCPUUtilization: () => {
        this.updateVideoFramesPerFilterUpdate(Math.min(this.videoFramesPerFilterUpdate + 1, 10));
      },
      increaseCPUUtilization: () => {
        this.updateVideoFramesPerFilterUpdate(Math.max(this.videoFramesPerFilterUpdate - 1, 1));
      }
    }), this.delegate.addObserver(this.cpuMonitor);
  }
  /** Converts a value to a JSON string
   */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  stringify(tv) {
    return JSON.stringify(tv, null, 2);
  }
  /**
   * Sends a message to worker and resolves promise in response to worker's initialize event
   */
  handleInitialize(tv) {
    if (this.logger.info(`received initialize message: ${this.stringify(tv)}`), !tv.payload) {
      this.logger.error("failed to initialize module"), this.initWorkerPromise.reject(new Error("failed to initialize the module"));
      return;
    }
    const ev = this.spec.model;
    this.worker.postMessage({
      msg: "loadModel",
      payload: {
        modelUrl: ev.path,
        inputHeight: ev.input.height,
        inputWidth: ev.input.width,
        inputChannels: 4,
        modelRangeMin: ev.input.range[0],
        modelRangeMax: ev.input.range[1],
        blurPixels: 0
      }
    }), this.initWorkerPromise.resolve({});
  }
  /**
   * Resolves promise in response to worker's loadModel event
   */
  handleLoadModel(tv) {
    if (this.logger.info(`received load model message: ${this.stringify(tv)}`), tv.payload !== 2) {
      this.logger.error("failed to load model! status: " + tv.payload), this.loadModelPromise.reject(new Error("failed to load model! status: " + tv.payload));
      return;
    }
    this.modelInitialized = !0, this.loadModelPromise.resolve({});
  }
  /** Updates the payload output value in response to worker's predict event
   */
  handlePredict(tv) {
    this.mask$.next(tv.payload.output);
  }
  /**
   * This method will handle the asynchronous messaging between the main JS thread
   * and the worker thread.
   * @param evt An event that was sent from the worker to the JS thread.
   * @returns
   */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  handleWorkerEvent(tv) {
    const ev = tv.data;
    switch (ev.msg) {
      case "initialize":
        this.handleInitialize(ev);
        break;
      case "loadModel":
        this.handleLoadModel(ev);
        break;
      case "predict":
        this.handlePredict(ev);
        break;
      default:
        this.logger.info(`unexpected event msg: ${this.stringify(ev)}`);
        break;
    }
  }
  /**
   * This method initializes all of the resource necessary to processs background filter. It returns
   * a promise and resolves or rejects the promise once the initialization is complete.
   * @returns
   * @throws An error will be thrown
   */
  loadAssets() {
    return __awaiter$W(this, void 0, void 0, function* () {
      this.logger.info("start initializing the processor");
      try {
        this.worker = yield loader_1.loadWorker(this.spec.paths.worker, "BackgroundFilterWorker", {}, null), this.worker.addEventListener("message", (tv) => this.handleWorkerEvent(tv)), this.worker.postMessage({
          msg: "initialize",
          payload: {
            wasmPath: this.spec.paths.wasm,
            simdPath: this.spec.paths.simd
          }
        }), yield this.initWorkerPromise.promise, this.logger.info(`successfully initialized the ${this.filterType} worker`), yield this.loadModelPromise.promise, this.logger.info(`successfully loaded ${this.filterType} worker segmentation model`);
      } catch (tv) {
        throw new Error(`could not initialize the ${this.filterType} video frame processor due to '${tv.message}'`);
      }
      this.logger.info(`successfully initialized the ${this.filterType} processor`);
    });
  }
  /**
   * Processes the VideoFrameBuffer by applying a segmentation mask and replacing the background.
   * @param buffers object that contains the canvas element that will be used to obtain the image data to process
   * @returns the updated buffer that contains the image with the background replaced.
   */
  process(tv) {
    return __awaiter$W(this, void 0, void 0, function* () {
      if (this.destroyed)
        return tv;
      this.frameCounter.frameReceived(tv[0].framerate), this.cpuMonitor.frameReceived();
      const ev = tv[0].asCanvasElement();
      if (!ev)
        return tv;
      if (!this.modelInitialized)
        return tv[0] = this.canvasVideoFrameBuffer, tv;
      const iv = ev.width, ov = ev.height;
      if (iv === 0 || ov === 0)
        return tv;
      this.sourceWidth === 0 && (this.sourceWidth = iv, this.sourceHeight = ov, this.targetCanvas.width = this.sourceWidth, this.targetCanvas.height = this.sourceHeight, this.logger.info(`${this.filterType} source width: ${this.sourceWidth}`), this.logger.info(`${this.filterType} source height: ${this.sourceHeight}`), this.initOnFirstExecution()), (this.sourceWidth !== iv || this.sourceHeight !== ov) && (this.sourceWidth = iv, this.sourceHeight = ov, this.targetCanvas.width = this.sourceWidth, this.targetCanvas.height = this.sourceHeight);
      try {
        this.frameCounter.filterSubmitted();
        let av = this.mask$.value;
        const sv = this.spec.model.input.width / ev.width, lv = this.spec.model.input.height / ev.height;
        this.scaledCanvas === void 0 && (this.scaledCanvas = document.createElement("canvas"), this.scaledCanvas.width = this.spec.model.input.width, this.scaledCanvas.height = this.spec.model.input.height);
        const uv = this.scaledCanvas.getContext("2d");
        uv.save(), uv.scale(sv, lv), uv.drawImage(ev, 0, 0), uv.restore();
        const cv = uv.getImageData(0, 0, this.scaledCanvas.width, this.scaledCanvas.height);
        if (this.frameNumber % this.videoFramesPerFilterUpdate === 0) {
          const dv = this.mask$.whenNext();
          this.worker.postMessage({ msg: "predict", payload: cv }, [cv.data.buffer]), av = yield dv;
        }
        this.destroyed || this.drawImageWithMask(ev, av);
      } catch (av) {
        return this.logger.error(`could not process ${this.filterType} frame buffer due to ${av}`), tv;
      } finally {
        this.frameCounter.filterComplete(), this.frameNumber++;
      }
      return tv[0] = this.canvasVideoFrameBuffer, tv;
    });
  }
  updateVideoFramesPerFilterUpdate(tv) {
    tv !== this.videoFramesPerFilterUpdate && (this.videoFramesPerFilterUpdate = tv, this.logger.info(`Adjusting filter rate to compensate for CPU utilization. Filter rate is ${this.videoFramesPerFilterUpdate} video frames per filter.`));
  }
  /**
   * Clean up processor resources
   */
  destroy() {
    var tv, ev, iv, ov;
    return __awaiter$W(this, void 0, void 0, function* () {
      this.destroyed = !0, this.delegate.removeObserver(this.cpuMonitor), this.canvasVideoFrameBuffer.destroy(), (tv = this.worker) === null || tv === void 0 || tv.postMessage({ msg: "destroy" }), (ev = this.worker) === null || ev === void 0 || ev.postMessage({ msg: "stop" }), (iv = this.targetCanvas) === null || iv === void 0 || iv.remove(), this.targetCanvas = void 0, (ov = this.scaledCanvas) === null || ov === void 0 || ov.remove(), this.scaledCanvas = void 0, this.logger.info(`${this.filterType} frame process destroyed`);
    });
  }
}
BackgroundFilterProcessor$1.default = BackgroundFilterProcessor;
class BackgroundFilterMonitor {
  constructor(tv, ev) {
    this.monitoringPeriodMillis = tv, this.observer = ev, this.lastCPUChangeTimestamp = 0;
  }
  filterCPUUtilizationHigh() {
    const tv = Date.now();
    tv - this.lastCPUChangeTimestamp >= this.monitoringPeriodMillis && (this.lastCPUChangeTimestamp = tv, this.observer.reduceCPUUtilization());
  }
  frameReceived() {
    const tv = Date.now();
    tv - this.lastCPUChangeTimestamp >= this.monitoringPeriodMillis * 2 && (this.lastCPUChangeTimestamp = tv, this.observer.increaseCPUUtilization());
  }
}
BackgroundFilterProcessor$1.BackgroundFilterMonitor = BackgroundFilterMonitor;
var BackgroundBlurVideoFrameProcessorDelegate$1 = {}, BackgroundFilterVideoFrameProcessorDelegate$1 = {};
Object.defineProperty(BackgroundFilterVideoFrameProcessorDelegate$1, "__esModule", { value: !0 });
class BackgroundFilterVideoFrameProcessorDelegate {
  constructor() {
    this.observers = /* @__PURE__ */ new Set();
  }
  /**
   * Add an observer to the unique set. If a duplicate observer cannot be added.
   * @param observer An implementation of the observer interface.
   */
  addObserver(tv) {
    this.observers.add(tv);
  }
  /**
   * Remove the observer from the set of observers.
   * @param observer An implementation of the observer interface.
   */
  removeObserver(tv) {
    this.observers.delete(tv);
  }
  /**
   * Call the observer method with the event information. See [[BackgroundFilterVideoFrameProcessorObserver]]
   * for detailed info on this event.
   * @param event
   */
  filterFrameDurationHigh(tv) {
    var ev;
    for (const iv of this.observers)
      (ev = iv.filterFrameDurationHigh) === null || ev === void 0 || ev.call(iv, tv);
  }
  filterCPUUtilizationHigh(tv) {
    var ev;
    for (const iv of this.observers)
      (ev = iv.filterCPUUtilizationHigh) === null || ev === void 0 || ev.call(iv, tv);
  }
}
BackgroundFilterVideoFrameProcessorDelegate$1.default = BackgroundFilterVideoFrameProcessorDelegate;
Object.defineProperty(BackgroundBlurVideoFrameProcessorDelegate$1, "__esModule", { value: !0 });
const BackgroundFilterVideoFrameProcessorDelegate_1$1 = BackgroundFilterVideoFrameProcessorDelegate$1;
class BackgroundBlurVideoFrameProcessorDelegate extends BackgroundFilterVideoFrameProcessorDelegate_1$1.default {
}
BackgroundBlurVideoFrameProcessorDelegate$1.default = BackgroundBlurVideoFrameProcessorDelegate;
var __awaiter$V = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(BackgroundBlurProcessorProvided$1, "__esModule", { value: !0 });
const BackgroundFilterProcessor_1$1 = BackgroundFilterProcessor$1, BackgroundBlurStrength_1$2 = BackgroundBlurStrength, BackgroundBlurVideoFrameProcessorDelegate_1 = BackgroundBlurVideoFrameProcessorDelegate$1;
class BackgroundBlurProcessorProvided extends BackgroundFilterProcessor_1$1.default {
  /**
   * A constructor that will apply default values if spec and strength are not provided.
   * If no spec is provided the selfie segmentation model is used with default paths to CDN for the
   * worker and wasm files used to process each frame.
   * @param spec The spec defines the assets that will be used for adding background blur to a frame
   * @param options How much blur to apply to a frame
   */
  constructor(tv, ev) {
    super("background blur", tv, ev, new BackgroundBlurVideoFrameProcessorDelegate_1.default()), this.blurAmount = 0, this.setBlurStrength(ev.blurStrength), this.logger.info("BackgroundBlur processor successfully created"), this.logger.info(`BackgroundBlur spec: ${this.stringify(this.spec)}`), this.logger.info(`BackgroundBlur options: ${this.stringify(ev)}`);
  }
  validateOptions(tv) {
    if (super.validateOptions(tv), !tv.blurStrength)
      throw new Error("processor has null options - blurStrength");
  }
  initOnFirstExecution() {
    this.setBlurPixels();
  }
  drawImageWithMask(tv, ev) {
    ev || (ev = new ImageData(this.spec.model.input.width, this.spec.model.input.height)), this.scaledCanvas.getContext("2d").putImageData(ev, 0, 0);
    const { canvasCtx: ov, targetCanvas: av } = this, { width: sv, height: lv } = av;
    ov.save(), ov.clearRect(0, 0, sv, lv), ov.drawImage(this.scaledCanvas, 0, 0, sv, lv), ov.globalCompositeOperation = "source-in", ov.drawImage(tv, 0, 0, sv, lv), ov.globalCompositeOperation = "destination-over", ov.filter = `blur(${this.blurAmount}px)`, ov.drawImage(tv, 0, 0, av.width, av.height), ov.restore();
  }
  setBlurStrength(tv) {
    this._blurStrength = tv, this.logger.info(`blur strength set to ${this._blurStrength}`), this.setBlurPixels();
  }
  /**
   * Calculate the blur amount based on the blur strength passed in and height of the image being blurred.
   */
  setBlurPixels() {
    this.blurAmount = BackgroundBlurStrength_1$2.BlurStrengthMapper.getBlurAmount(this._blurStrength, {
      height: this.sourceHeight
    }), this.logger.info(`background blur amount set to ${this.blurAmount}`);
  }
  addObserver(tv) {
    this.delegate.addObserver(tv);
  }
  removeObserver(tv) {
    this.delegate.removeObserver(tv);
  }
  static isSupported() {
    return __awaiter$V(this, void 0, void 0, function* () {
      const tv = document.createElement("canvas"), ev = tv.getContext("2d").filter !== void 0;
      return tv.remove(), ev;
    });
  }
}
BackgroundBlurProcessorProvided$1.default = BackgroundBlurProcessorProvided;
var __awaiter$U = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(BackgroundBlurProcessorBuiltIn$1, "__esModule", { value: !0 });
const BackgroundBlurProcessorProvided_1$1 = BackgroundBlurProcessorProvided$1, BackgroundBlurStrength_1$1 = BackgroundBlurStrength;
class BackgroundBlurProcessorBuiltIn extends BackgroundBlurProcessorProvided_1$1.default {
  /**
   * A constructor that will apply default values if spec and strength are not provided.
   * If no spec is provided the selfie segmentation model is used with default paths to CDN for the
   * worker and wasm files used to process each frame.
   * @param spec The spec defines the assets that will be used for adding background blur to a frame.
   * @param options How much blur to apply to a frame.
   */
  constructor(tv, ev) {
    super(tv, ev), this.blurCanvas = document.createElement("canvas"), this.blurCanvasCtx = this.blurCanvas.getContext("2d"), this.blurCanvas.width = this.spec.model.input.width, this.blurCanvas.height = this.spec.model.input.height, this.logger.info("BackgroundBlur processor using builtin blur");
  }
  drawImageWithMask(tv, ev) {
    const iv = this.blurredImage, { canvasCtx: ov, targetCanvas: av } = this, { width: sv, height: lv } = av;
    if (!ev || !iv) {
      ov.clearRect(0, 0, sv, lv);
      return;
    }
    this.scaledCanvas.getContext("2d").putImageData(ev, 0, 0), this.blurCanvasCtx.putImageData(this.blurredImage, 0, 0), ov.save(), ov.clearRect(0, 0, sv, lv), ov.drawImage(this.scaledCanvas, 0, 0, sv, lv), ov.globalCompositeOperation = "source-in", ov.drawImage(tv, 0, 0, sv, lv), ov.globalCompositeOperation = "destination-over", ov.drawImage(this.blurCanvas, 0, 0, sv, lv), ov.restore();
  }
  setBlurStrength(tv) {
    if (super.setBlurStrength(tv), this.worker) {
      this.modelInitialized = !1, this.worker.postMessage({ msg: "destroy" });
      const ev = this.spec.model;
      this.worker.postMessage({
        msg: "loadModel",
        payload: {
          modelUrl: ev.path,
          inputHeight: ev.input.height,
          inputWidth: ev.input.width,
          inputChannels: 4,
          modelRangeMin: ev.input.range[0],
          modelRangeMax: ev.input.range[1],
          blurPixels: this.blurAmount
        }
      });
    }
  }
  setBlurPixels() {
    this.blurAmount = BackgroundBlurStrength_1$1.BlurStrengthMapper.getBlurAmount(this._blurStrength, { height: 540 }), this.logger.info(`background blur amount set to ${this.blurAmount}`);
  }
  handleInitialize(tv) {
    if (this.logger.info(`received initialize message: ${this.stringify(tv)}`), !tv.payload) {
      this.logger.error("failed to initialize module"), this.initWorkerPromise.reject(new Error("failed to initialize the module"));
      return;
    }
    const ev = this.spec.model;
    this.worker.postMessage({
      msg: "loadModel",
      payload: {
        modelUrl: ev.path,
        inputHeight: ev.input.height,
        inputWidth: ev.input.width,
        inputChannels: 4,
        modelRangeMin: ev.input.range[0],
        modelRangeMax: ev.input.range[1],
        blurPixels: this.blurAmount
      }
    }), this.initWorkerPromise.resolve({});
  }
  handlePredict(tv) {
    this.blurredImage = tv.payload.blurOutput, super.handlePredict(tv);
  }
  destroy() {
    const tv = Object.create(null, {
      destroy: { get: () => super.destroy }
    });
    var ev;
    return __awaiter$U(this, void 0, void 0, function* () {
      tv.destroy.call(this), (ev = this.blurCanvas) === null || ev === void 0 || ev.remove(), this.blurCanvas = void 0;
    });
  }
}
BackgroundBlurProcessorBuiltIn$1.default = BackgroundBlurProcessorBuiltIn;
var __awaiter$T = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(BackgroundBlurVideoFrameProcessor$1, "__esModule", { value: !0 });
const BackgroundFilterVideoFrameProcessor_1$1 = BackgroundFilterVideoFrameProcessor$1, ConsoleLogger_1$1 = ConsoleLogger$1, LogLevel_1$6 = LogLevel, NoOpVideoFrameProcessor_1$1 = NoOpVideoFrameProcessor$1, BackgroundBlurProcessorBuiltIn_1 = BackgroundBlurProcessorBuiltIn$1, BackgroundBlurProcessorProvided_1 = BackgroundBlurProcessorProvided$1, BackgroundBlurStrength_1 = BackgroundBlurStrength;
class NoOpBackgroundBlurProcessor extends NoOpVideoFrameProcessor_1$1.default {
  /**
   * no-op
   */
  setBlurStrength() {
  }
  /**
   * no-op
   * @returns
   */
  loadAssets() {
    return __awaiter$T(this, void 0, void 0, function* () {
    });
  }
  /**
   * no-op
   */
  addObserver() {
  }
  /**
   * no-op
   */
  removeObserver() {
  }
}
class BackgroundBlurVideoFrameProcessor extends BackgroundFilterVideoFrameProcessor_1$1.default {
  /**
   * A factory method that will call the private constructor to instantiate the processor and asynchronously
   * initialize the worker, wasm, and ML models. Upon completion of the initialization the promise will either
   * be resolved or rejected.
   * @param spec The spec defines the assets that will be used for adding background blur to a frame
   * @param blurStrength How much blur to apply to a frame
   * @returns
   */
  static create(tv, ev) {
    return __awaiter$T(this, void 0, void 0, function* () {
      tv = BackgroundBlurVideoFrameProcessor.resolveSpec(tv), ev = BackgroundBlurVideoFrameProcessor.resolveOptions(ev);
      const { logger: iv } = ev, ov = yield BackgroundBlurVideoFrameProcessor.isSupported(tv, ev);
      if (iv.info(`processor is ${ov ? "" : "not"} supported`), !ov)
        return iv.warn("Using no-op processor because background blur is not supported"), new NoOpBackgroundBlurProcessor();
      let av;
      return (yield BackgroundBlurProcessorProvided_1.default.isSupported()) ? (iv.info("Using browser-provided background blur"), av = new BackgroundBlurProcessorProvided_1.default(tv, ev)) : (iv.info("Using built-in background blur"), av = new BackgroundBlurProcessorBuiltIn_1.default(tv, ev)), yield av.loadAssets(), av;
    });
  }
  /**
   * Based on the options that are passed in set defaults for options
   * @param options  the options that are passed in
   * @returns An updated set of options with defaults set
   */
  static resolveOptions(tv = {}) {
    return tv.blurStrength || (tv.blurStrength = BackgroundBlurStrength_1.default.MEDIUM), tv.logger || (tv.logger = new ConsoleLogger_1$1.default("BackgroundBlurProcessor", LogLevel_1$6.default.INFO)), tv = super.resolveOptions(tv), tv;
  }
  /**
   * This method will detect the environment in which it is being used and determine if background
   * blur can be used.
   * @param spec The {@link BackgroundBlurSpec} spec that will be used to initialize assets
   * @param options options such as logger
   * @returns a boolean promise that will resolve to true if supported and false if not
   */
  static isSupported(tv, ev) {
    return tv = BackgroundBlurVideoFrameProcessor.resolveSpec(tv), ev = BackgroundBlurVideoFrameProcessor.resolveOptions(ev), super.isSupported(tv, ev);
  }
}
BackgroundBlurVideoFrameProcessor$1.default = BackgroundBlurVideoFrameProcessor;
var BackgroundReplacementVideoFrameProcessor$1 = {}, BackgroundReplacementFilter$1 = {}, BackgroundReplacementVideoFrameProcessorDelegate$1 = {};
Object.defineProperty(BackgroundReplacementVideoFrameProcessorDelegate$1, "__esModule", { value: !0 });
const BackgroundFilterVideoFrameProcessorDelegate_1 = BackgroundFilterVideoFrameProcessorDelegate$1;
class BackgroundReplacementVideoFrameProcessorDelegate extends BackgroundFilterVideoFrameProcessorDelegate_1.default {
}
BackgroundReplacementVideoFrameProcessorDelegate$1.default = BackgroundReplacementVideoFrameProcessorDelegate;
var __awaiter$S = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(BackgroundReplacementFilter$1, "__esModule", { value: !0 });
const BackgroundFilterProcessor_1 = BackgroundFilterProcessor$1, BackgroundReplacementVideoFrameProcessorDelegate_1 = BackgroundReplacementVideoFrameProcessorDelegate$1;
class BackgroundReplacementFilter extends BackgroundFilterProcessor_1.default {
  /**
   * A constructor that will apply default values if spec and strength are not provided.
   * If no spec is provided the selfie segmentation model is used with default paths to CDN for the
   * worker and wasm files used to process each frame.
   * @param spec The spec defines the assets that will be used for adding background filter to a frame
   * @param options The background replacement image path
   */
  constructor(tv, ev) {
    super("background replacement", tv, ev, new BackgroundReplacementVideoFrameProcessorDelegate_1.default()), this.replacementBlob = ev.imageBlob, this.logger.info("BackgroundReplacement processor successfully created"), this.logger.info(`BackgroundReplacement spec: ${this.stringify(this.spec)}`), this.logger.info(`BackgroundReplacement options: ${this.stringify(ev)}`);
  }
  setImageBlob(tv) {
    return __awaiter$S(this, void 0, void 0, function* () {
      this.replacementBlob = tv, this.replacementImage = yield BackgroundReplacementFilter.loadImage(this.createReplacementObjectUrl());
    });
  }
  initOnFirstExecution() {
  }
  drawImageWithMask(tv, ev) {
    ev || (ev = new ImageData(this.spec.model.input.width, this.spec.model.input.height)), this.scaledCanvas.getContext("2d").putImageData(ev, 0, 0);
    const { canvasCtx: ov, targetCanvas: av } = this, { width: sv, height: lv } = av;
    ov.save(), ov.clearRect(0, 0, sv, lv), ov.drawImage(this.scaledCanvas, 0, 0, sv, lv), ov.globalCompositeOperation = "source-in", ov.drawImage(tv, 0, 0, sv, lv), ov.globalCompositeOperation = "destination-over", ov.drawImage(this.replacementImage, 0, 0, av.width, av.height), ov.restore();
  }
  /* istanbul ignore next */
  static loadImageExecutor(tv, ev, iv) {
    const ov = new Image();
    ov.crossOrigin = "Anonymous", ov.addEventListener("load", () => {
      tv(ov);
    }, !1), ov.addEventListener("error", (av) => {
      ev(new Error(`Could not load replacement image ${ov.src}: ${av.message}`));
    }, !1), ov.src = iv;
  }
  /** @internal */
  static loadImage(tv) {
    return __awaiter$S(this, void 0, void 0, function* () {
      return new Promise((ev, iv) => this.loadImageExecutor(ev, iv, tv));
    });
  }
  revokeReplacementObjectUrl() {
    this.replacementObjectUrl && URL.revokeObjectURL(this.replacementObjectUrl);
  }
  createReplacementObjectUrl() {
    return this.revokeReplacementObjectUrl(), this.replacementObjectUrl = URL.createObjectURL(this.replacementBlob), this.replacementObjectUrl;
  }
  /**
   * This method initializes all of the resource necessary to process background replacement. It returns
   * a promise and resolves or rejects the promise once the initialization is complete.
   * @returns
   * @throws An error will be thrown
   */
  loadAssets() {
    const tv = Object.create(null, {
      loadAssets: { get: () => super.loadAssets }
    });
    return __awaiter$S(this, void 0, void 0, function* () {
      this.replacementImage = yield BackgroundReplacementFilter.loadImage(this.createReplacementObjectUrl()), tv.loadAssets.call(this);
    });
  }
  addObserver(tv) {
    this.delegate.addObserver(tv);
  }
  removeObserver(tv) {
    this.delegate.removeObserver(tv);
  }
  destroy() {
    const tv = Object.create(null, {
      destroy: { get: () => super.destroy }
    });
    return __awaiter$S(this, void 0, void 0, function* () {
      tv.destroy.call(this), this.revokeReplacementObjectUrl();
    });
  }
}
BackgroundReplacementFilter$1.default = BackgroundReplacementFilter;
var __awaiter$R = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(BackgroundReplacementVideoFrameProcessor$1, "__esModule", { value: !0 });
const BackgroundFilterVideoFrameProcessor_1 = BackgroundFilterVideoFrameProcessor$1, ConsoleLogger_1 = ConsoleLogger$1, LogLevel_1$5 = LogLevel, NoOpVideoFrameProcessor_1 = NoOpVideoFrameProcessor$1, BackgroundReplacementFilter_1 = BackgroundReplacementFilter$1;
class NoOpBackgroundReplacementProcessor extends NoOpVideoFrameProcessor_1.default {
  /**
   * no-op
   * @returns
   */
  loadAssets() {
    return __awaiter$R(this, void 0, void 0, function* () {
    });
  }
  /**
   * no-op
   */
  addObserver() {
  }
  /**
   * no-op
   */
  removeObserver() {
  }
  /**
   * no-op
   */
  setImageBlob() {
    return __awaiter$R(this, void 0, void 0, function* () {
    });
  }
}
class BackgroundReplacementVideoFrameProcessor extends BackgroundFilterVideoFrameProcessor_1.default {
  /**
   * A factory method that will call the private constructor to instantiate the processor and asynchronously
   * initialize the worker, wasm, and ML models. Upon completion of the initialization the promise will either
   * be resolved or rejected.
   * @param spec The spec defines the assets that will be used for adding background filter to a frame
   * @param imagePath The background replacement image path
   */
  static create(tv, ev) {
    return __awaiter$R(this, void 0, void 0, function* () {
      tv = this.resolveSpec(tv), ev = this.resolveOptions(ev), yield this.resolveOptionsAsync(ev);
      const { logger: iv } = ev;
      if (!(yield BackgroundReplacementVideoFrameProcessor.isSupported(tv, ev)))
        return iv.warn("Using no-op processor because background replacement is not supported"), new NoOpBackgroundReplacementProcessor();
      iv.info("Using background replacement filter");
      const av = new BackgroundReplacementFilter_1.default(tv, ev);
      return yield av.loadAssets(), av;
    });
  }
  /**
   * Based on the options that are passed in set defaults for options
   * @param options  the options that are passed in
   * @returns An updated set of options with defaults set
   */
  static resolveOptions(tv = {}) {
    return tv.logger || (tv.logger = new ConsoleLogger_1.default("BackgroundReplacementProcessor", LogLevel_1$5.default.INFO)), super.resolveOptions(tv);
  }
  static resolveOptionsAsync(tv) {
    return __awaiter$R(this, void 0, void 0, function* () {
      if (!tv.imageBlob) {
        const ev = document.createElement("canvas");
        ev.width = 100, ev.height = 100;
        const iv = ev.getContext("2d");
        iv.fillStyle = "blue", iv.fillRect(0, 0, 100, 100);
        const ov = yield new Promise((av) => {
          ev.toBlob(av);
        });
        tv.imageBlob = ov;
      }
    });
  }
  /**
   * This method will detect the environment in which it is being used and determine if background
   * replacement can be used.
   * @param spec The {@link BackgroundFilterSpec} spec that will be used to initialize assets
   * @param options options such as logger and imagePath
   * @returns a boolean promise that will resolve to true if supported and false if not
   */
  static isSupported(tv, ev) {
    const iv = Object.create(null, {
      isSupported: { get: () => super.isSupported }
    });
    return __awaiter$R(this, void 0, void 0, function* () {
      tv = this.resolveSpec(tv), ev = this.resolveOptions(ev), yield this.resolveOptionsAsync(ev);
      const ov = ev.imageBlob, av = URL.createObjectURL(ov);
      try {
        yield BackgroundReplacementFilter_1.default.loadImage(av);
      } catch (sv) {
        return ev.logger.info(`Failed to fetch load replacement image ${sv.message}`), !1;
      } finally {
        URL.revokeObjectURL(av);
      }
      return iv.isSupported.call(this, tv, ev);
    });
  }
}
BackgroundReplacementVideoFrameProcessor$1.default = BackgroundReplacementVideoFrameProcessor;
var BaseConnectionHealthPolicy$1 = {};
Object.defineProperty(BaseConnectionHealthPolicy$1, "__esModule", { value: !0 });
class BaseConnectionHealthPolicy {
  constructor(tv, ev) {
    this.minHealth = tv.minHealth, this.maxHealth = tv.maxHealth, this.currentHealth = tv.initialHealth, this.currentData = ev.clone();
  }
  minimumHealth() {
    return this.minHealth;
  }
  maximumHealth() {
    return this.maxHealth;
  }
  health() {
    return this.maximumHealth();
  }
  update(tv) {
    this.currentData = tv;
  }
  getConnectionHealthData() {
    return this.currentData.clone();
  }
  healthy() {
    return this.health() > this.minimumHealth();
  }
  healthIfChanged() {
    const tv = this.health();
    return tv !== this.currentHealth ? (this.currentHealth = tv, tv) : null;
  }
}
BaseConnectionHealthPolicy$1.default = BaseConnectionHealthPolicy;
var BitrateParameters$1 = {};
Object.defineProperty(BitrateParameters$1, "__esModule", { value: !0 });
class BitrateParameters {
}
BitrateParameters$1.default = BitrateParameters;
var CSPMonitor$1 = {};
Object.defineProperty(CSPMonitor$1, "__esModule", { value: !0 });
class CSPMonitor {
  /* istanbul ignore next */
  static register() {
    !("document" in commonjsGlobal) || !document.addEventListener || CSPMonitor.shouldRegisterCSPMonitor && (CSPMonitor.added || (document.addEventListener("securitypolicyviolation", CSPMonitor.listener), CSPMonitor.added = !0));
  }
  /* istanbul ignore next */
  static unregister() {
    !("document" in commonjsGlobal) || !document.removeEventListener || (document.removeEventListener("securitypolicyviolation", CSPMonitor.listener), CSPMonitor.loggers = /* @__PURE__ */ new Set(), CSPMonitor.added = !1);
  }
  static disable() {
    CSPMonitor.shouldRegisterCSPMonitor = !1, CSPMonitor.unregister();
  }
  static addLogger(tv) {
    tv && CSPMonitor.loggers.add(tv);
  }
  static removeLogger(tv) {
    tv && CSPMonitor.loggers.delete(tv);
  }
}
CSPMonitor$1.default = CSPMonitor;
CSPMonitor.loggers = /* @__PURE__ */ new Set();
CSPMonitor.shouldRegisterCSPMonitor = !0;
CSPMonitor.added = !1;
CSPMonitor.listener = (rv) => {
  const tv = `Security Policy Violation
Blocked URI: ${rv.blockedURI}
Violated Directive: ${rv.violatedDirective}
Original Policy: ${rv.originalPolicy}
Document URI: ${rv.documentURI}
Source File: ${rv.sourceFile}
Line No.: ${rv.lineNumber}
`;
  for (const ev of CSPMonitor.loggers)
    ev.error(tv);
  CSPMonitor.loggers.size === 0 && console.error(tv);
};
var CheckAudioConnectivityFeedback = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.CheckAudioConnectivityFeedback = void 0;
  var tv;
  (function(ev) {
    ev[ev.Succeeded = 0] = "Succeeded", ev[ev.AudioInputRequestFailed = 1] = "AudioInputRequestFailed", ev[ev.AudioInputPermissionDenied = 2] = "AudioInputPermissionDenied", ev[ev.ConnectionFailed = 3] = "ConnectionFailed", ev[ev.AudioNotReceived = 4] = "AudioNotReceived";
  })(tv = rv.CheckAudioConnectivityFeedback || (rv.CheckAudioConnectivityFeedback = {})), rv.default = tv;
})(CheckAudioConnectivityFeedback);
var CheckAudioInputFeedback = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.CheckAudioInputFeedback = void 0;
  var tv;
  (function(ev) {
    ev[ev.Succeeded = 0] = "Succeeded", ev[ev.Failed = 1] = "Failed", ev[ev.PermissionDenied = 2] = "PermissionDenied";
  })(tv = rv.CheckAudioInputFeedback || (rv.CheckAudioInputFeedback = {})), rv.default = tv;
})(CheckAudioInputFeedback);
var CheckAudioOutputFeedback = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.CheckAudioOutputFeedback = void 0;
  var tv;
  (function(ev) {
    ev[ev.Succeeded = 0] = "Succeeded", ev[ev.Failed = 1] = "Failed";
  })(tv = rv.CheckAudioOutputFeedback || (rv.CheckAudioOutputFeedback = {})), rv.default = tv;
})(CheckAudioOutputFeedback);
var CheckCameraResolutionFeedback = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.CheckCameraResolutionFeedback = void 0;
  var tv;
  (function(ev) {
    ev[ev.Succeeded = 0] = "Succeeded", ev[ev.Failed = 1] = "Failed", ev[ev.ResolutionNotSupported = 2] = "ResolutionNotSupported", ev[ev.PermissionDenied = 3] = "PermissionDenied";
  })(tv = rv.CheckCameraResolutionFeedback || (rv.CheckCameraResolutionFeedback = {})), rv.default = tv;
})(CheckCameraResolutionFeedback);
var CheckContentShareConnectivityFeedback = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.CheckContentShareConnectivityFeedback = void 0;
  var tv;
  (function(ev) {
    ev[ev.Succeeded = 0] = "Succeeded", ev[ev.Failed = 1] = "Failed", ev[ev.PermissionDenied = 2] = "PermissionDenied", ev[ev.TimedOut = 3] = "TimedOut", ev[ev.ConnectionFailed = 4] = "ConnectionFailed";
  })(tv = rv.CheckContentShareConnectivityFeedback || (rv.CheckContentShareConnectivityFeedback = {})), rv.default = tv;
})(CheckContentShareConnectivityFeedback);
var CheckNetworkTCPConnectivityFeedback = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.CheckNetworkTCPConnectivityFeedback = void 0;
  var tv;
  (function(ev) {
    ev[ev.Succeeded = 0] = "Succeeded", ev[ev.MeetingSessionURLsNotInitialized = 1] = "MeetingSessionURLsNotInitialized", ev[ev.ConnectionFailed = 2] = "ConnectionFailed", ev[ev.ICENegotiationFailed = 3] = "ICENegotiationFailed";
  })(tv = rv.CheckNetworkTCPConnectivityFeedback || (rv.CheckNetworkTCPConnectivityFeedback = {})), rv.default = tv;
})(CheckNetworkTCPConnectivityFeedback);
var CheckNetworkUDPConnectivityFeedback = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.CheckNetworkUDPConnectivityFeedback = void 0;
  var tv;
  (function(ev) {
    ev[ev.Succeeded = 0] = "Succeeded", ev[ev.MeetingSessionURLsNotInitialized = 1] = "MeetingSessionURLsNotInitialized", ev[ev.ConnectionFailed = 2] = "ConnectionFailed", ev[ev.ICENegotiationFailed = 3] = "ICENegotiationFailed";
  })(tv = rv.CheckNetworkUDPConnectivityFeedback || (rv.CheckNetworkUDPConnectivityFeedback = {})), rv.default = tv;
})(CheckNetworkUDPConnectivityFeedback);
var CheckVideoConnectivityFeedback = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.CheckVideoConnectivityFeedback = void 0;
  var tv;
  (function(ev) {
    ev[ev.Succeeded = 0] = "Succeeded", ev[ev.VideoInputRequestFailed = 1] = "VideoInputRequestFailed", ev[ev.VideoInputPermissionDenied = 2] = "VideoInputPermissionDenied", ev[ev.ConnectionFailed = 3] = "ConnectionFailed", ev[ev.VideoNotSent = 4] = "VideoNotSent";
  })(tv = rv.CheckVideoConnectivityFeedback || (rv.CheckVideoConnectivityFeedback = {})), rv.default = tv;
})(CheckVideoConnectivityFeedback);
var CheckVideoInputFeedback = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.CheckVideoInputFeedback = void 0;
  var tv;
  (function(ev) {
    ev[ev.Succeeded = 0] = "Succeeded", ev[ev.Failed = 1] = "Failed", ev[ev.PermissionDenied = 2] = "PermissionDenied";
  })(tv = rv.CheckVideoInputFeedback || (rv.CheckVideoInputFeedback = {})), rv.default = tv;
})(CheckVideoInputFeedback);
var CleanRestartedSessionTask$1 = {}, __awaiter$Q = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(CleanRestartedSessionTask$1, "__esModule", { value: !0 });
const BaseTask_1$o = BaseTask$1;
class CleanRestartedSessionTask extends BaseTask_1$o.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "CleanRestartedSessionTask";
  }
  run() {
    return __awaiter$Q(this, void 0, void 0, function* () {
      this.context.peer && this.context.peer.close(), this.context.transceiverController.reset(), this.context.localVideoSender = null, this.context.peer = null, this.context.videoDownlinkBandwidthPolicy.reset(), this.context.iceCandidateHandler = null, this.context.iceCandidates = [], this.context.previousSdpOffer = null;
    });
  }
}
CleanRestartedSessionTask$1.default = CleanRestartedSessionTask;
var CleanStoppedSessionTask$1 = {}, SignalingClientEventType = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.SignalingClientEventType = void 0;
  var tv;
  (function(ev) {
    ev[ev.WebSocketConnecting = 0] = "WebSocketConnecting", ev[ev.WebSocketOpen = 1] = "WebSocketOpen", ev[ev.WebSocketError = 2] = "WebSocketError", ev[ev.WebSocketClosing = 3] = "WebSocketClosing", ev[ev.WebSocketClosed = 4] = "WebSocketClosed", ev[ev.WebSocketFailed = 5] = "WebSocketFailed", ev[ev.WebSocketMessage = 6] = "WebSocketMessage", ev[ev.WebSocketSendMessageFailure = 7] = "WebSocketSendMessageFailure", ev[ev.WebSocketSentMessage = 8] = "WebSocketSentMessage", ev[ev.ProtocolDecodeFailure = 9] = "ProtocolDecodeFailure", ev[ev.ReceivedSignalFrame = 10] = "ReceivedSignalFrame", ev[ev.WebSocketSkippedMessage = 11] = "WebSocketSkippedMessage";
  })(tv = rv.SignalingClientEventType || (rv.SignalingClientEventType = {})), rv.default = tv;
})(SignalingClientEventType);
var __awaiter$P = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(CleanStoppedSessionTask$1, "__esModule", { value: !0 });
const SignalingClientEventType_1$b = SignalingClientEventType, BaseTask_1$n = BaseTask$1;
class CleanStoppedSessionTask extends BaseTask_1$n.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "CleanStoppedSessionTask", this.taskCanceler = null;
  }
  cancel() {
    this.taskCanceler && (this.taskCanceler.cancel(), this.taskCanceler = null);
  }
  run() {
    return __awaiter$P(this, void 0, void 0, function* () {
      try {
        this.context.signalingClient.ready() && (this.context.signalingClient.closeConnection(), yield this.receiveWebSocketClosedEvent());
      } catch (tv) {
        throw tv;
      } finally {
        for (const ev of this.context.removableObservers)
          ev.removeObserver();
        this.context.statsCollector.stop(), this.context.statsCollector = null, this.context.connectionMonitor.stop(), this.context.connectionMonitor = null, this.context.peer && this.context.peer.close(), this.context.peer = null, this.context.localVideoSender = null, this.context.sdpAnswer = null, this.context.sdpOfferInit = null, this.context.indexFrame = null, this.context.videoDownlinkBandwidthPolicy.reset(), this.context.iceCandidateHandler = null, this.context.iceCandidates = [], this.context.turnCredentials = null, this.context.videoSubscriptions = null, this.context.transceiverController.reset(), this.context.videoUplinkBandwidthPolicy.setTransceiverController && this.context.videoUplinkBandwidthPolicy.setTransceiverController(void 0), this.context.videoDownlinkBandwidthPolicy.bindToTileController && this.context.videoDownlinkBandwidthPolicy.bindToTileController(void 0);
        const tv = this.context.videoTileController.getLocalVideoTile();
        tv && tv.bindVideoStream("", !0, null, null, null, null), this.context.videoTileController.removeAllVideoTiles();
      }
    });
  }
  receiveWebSocketClosedEvent() {
    return new Promise((tv, ev) => {
      class iv {
        constructor(sv) {
          this.signalingClient = sv;
        }
        cancel() {
          this.signalingClient.removeObserver(this), ev(new Error("CleanStoppedSessionTask got canceled while waiting for the WebSocket closed event"));
        }
        handleSignalingClientEvent(sv) {
          sv.type === SignalingClientEventType_1$b.default.WebSocketClosed && (this.signalingClient.removeObserver(this), tv());
        }
      }
      const ov = new iv(this.context.signalingClient);
      this.taskCanceler = ov, this.context.signalingClient.registerObserver(ov);
    });
  }
}
CleanStoppedSessionTask$1.default = CleanStoppedSessionTask;
var ClientMetricReportDirection = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.ClientMetricReportDirection = void 0;
  var tv;
  (function(ev) {
    ev[ev.UPSTREAM = 0] = "UPSTREAM", ev[ev.DOWNSTREAM = 1] = "DOWNSTREAM";
  })(tv = rv.ClientMetricReportDirection || (rv.ClientMetricReportDirection = {})), rv.default = tv;
})(ClientMetricReportDirection);
var ClientMetricReportMediaType = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.ClientMetricReportMediaType = void 0;
  var tv;
  (function(ev) {
    ev[ev.AUDIO = 0] = "AUDIO", ev[ev.VIDEO = 1] = "VIDEO";
  })(tv = rv.ClientMetricReportMediaType || (rv.ClientMetricReportMediaType = {})), rv.default = tv;
})(ClientMetricReportMediaType);
var ClientVideoStreamReceivingReport$1 = {};
Object.defineProperty(ClientVideoStreamReceivingReport$1, "__esModule", { value: !0 });
class ClientVideoStreamReceivingReport {
}
ClientVideoStreamReceivingReport$1.default = ClientVideoStreamReceivingReport;
var ConnectionHealthData$1 = {};
Object.defineProperty(ConnectionHealthData$1, "__esModule", { value: !0 });
class ConnectionHealthData {
  constructor() {
    this.connectionStartTimestampMs = 0, this.consecutiveStatsWithNoPackets = 0, this.lastPacketLossInboundTimestampMs = 0, this.lastGoodSignalTimestampMs = 0, this.lastWeakSignalTimestampMs = 0, this.lastNoSignalTimestampMs = 0, this.consecutiveMissedPongs = 0, this.packetsReceivedInLastMinute = [], this.fractionPacketsLostInboundInLastMinute = [], this.audioSpeakerDelayMs = 0, this.connectionStartTimestampMs = Date.now(), this.lastGoodSignalTimestampMs = Date.now();
  }
  static isTimestampRecent(tv, ev) {
    return Date.now() < tv + ev;
  }
  setConnectionStartTime() {
    this.connectionStartTimestampMs = Date.now(), this.lastGoodSignalTimestampMs = Date.now();
  }
  reset() {
    this.connectionStartTimestampMs = 0, this.consecutiveStatsWithNoPackets = 0, this.lastPacketLossInboundTimestampMs = 0, this.lastGoodSignalTimestampMs = 0, this.lastWeakSignalTimestampMs = 0, this.lastNoSignalTimestampMs = 0, this.consecutiveMissedPongs = 0, this.packetsReceivedInLastMinute = [], this.fractionPacketsLostInboundInLastMinute = [], this.audioSpeakerDelayMs = 0, this.connectionStartTimestampMs = Date.now(), this.lastGoodSignalTimestampMs = Date.now();
  }
  isConnectionStartRecent(tv) {
    return ConnectionHealthData.isTimestampRecent(this.connectionStartTimestampMs, tv);
  }
  isLastPacketLossRecent(tv) {
    return ConnectionHealthData.isTimestampRecent(this.lastPacketLossInboundTimestampMs, tv);
  }
  isGoodSignalRecent(tv) {
    return ConnectionHealthData.isTimestampRecent(this.lastGoodSignalTimestampMs, tv);
  }
  isWeakSignalRecent(tv) {
    return ConnectionHealthData.isTimestampRecent(this.lastWeakSignalTimestampMs, tv);
  }
  isNoSignalRecent(tv) {
    return ConnectionHealthData.isTimestampRecent(this.lastNoSignalTimestampMs, tv);
  }
  clone() {
    const tv = new ConnectionHealthData();
    return tv.connectionStartTimestampMs = this.connectionStartTimestampMs, tv.consecutiveStatsWithNoPackets = this.consecutiveStatsWithNoPackets, tv.lastPacketLossInboundTimestampMs = this.lastPacketLossInboundTimestampMs, tv.lastGoodSignalTimestampMs = this.lastGoodSignalTimestampMs, tv.lastWeakSignalTimestampMs = this.lastWeakSignalTimestampMs, tv.lastNoSignalTimestampMs = this.lastNoSignalTimestampMs, tv.consecutiveMissedPongs = this.consecutiveMissedPongs, tv.packetsReceivedInLastMinute = this.packetsReceivedInLastMinute.slice(0), tv.fractionPacketsLostInboundInLastMinute = this.fractionPacketsLostInboundInLastMinute.slice(0), tv.audioSpeakerDelayMs = this.audioSpeakerDelayMs, tv;
  }
  setConsecutiveMissedPongs(tv) {
    this.consecutiveMissedPongs = tv;
  }
  setConsecutiveStatsWithNoPackets(tv) {
    this.consecutiveStatsWithNoPackets = tv;
  }
  setLastPacketLossInboundTimestampMs(tv) {
    this.lastPacketLossInboundTimestampMs = tv;
  }
  setLastNoSignalTimestampMs(tv) {
    this.lastNoSignalTimestampMs = tv;
  }
  setLastWeakSignalTimestampMs(tv) {
    this.lastWeakSignalTimestampMs = tv;
  }
  setLastGoodSignalTimestampMs(tv) {
    this.lastGoodSignalTimestampMs = tv;
  }
  setAudioSpeakerDelayMs(tv) {
    this.audioSpeakerDelayMs = tv;
  }
}
ConnectionHealthData$1.default = ConnectionHealthData;
var ConnectionHealthPolicyConfiguration$1 = {};
Object.defineProperty(ConnectionHealthPolicyConfiguration$1, "__esModule", { value: !0 });
class ConnectionHealthPolicyConfiguration {
  constructor() {
    this.minHealth = 0, this.maxHealth = 1, this.initialHealth = 1, this.connectionUnhealthyThreshold = 25, this.noSignalThresholdTimeMs = 1e4, this.connectionWaitTimeMs = 1e4, this.zeroBarsNoSignalTimeMs = 5e3, this.oneBarWeakSignalTimeMs = 5e3, this.twoBarsTimeMs = 5e3, this.threeBarsTimeMs = 1e4, this.fourBarsTimeMs = 2e4, this.fiveBarsTimeMs = 6e4, this.cooldownTimeMs = 6e4, this.pastSamplesToConsider = 15, this.goodSignalTimeMs = 15e3, this.fractionalLoss = 0.5, this.packetsExpected = 50, this.maximumTimesToWarn = 2, this.missedPongsLowerThreshold = 1, this.missedPongsUpperThreshold = 4, this.maximumAudioDelayMs = 6e4, this.maximumAudioDelayDataPoints = 10;
  }
}
ConnectionHealthPolicyConfiguration$1.default = ConnectionHealthPolicyConfiguration;
var ContentShareConstants$1 = {};
Object.defineProperty(ContentShareConstants$1, "__esModule", { value: !0 });
var ContentShareConstants;
(function(rv) {
  rv.Modality = "#content";
})(ContentShareConstants || (ContentShareConstants = {}));
ContentShareConstants$1.default = ContentShareConstants;
var ContentShareMediaStreamBroker$1 = {}, DefaultDeviceController$1 = {}, DefaultMediaDeviceFactory$1 = {}, MediaDeviceProxyHandler$1 = {}, IntervalScheduler$1 = {};
Object.defineProperty(IntervalScheduler$1, "__esModule", { value: !0 });
class IntervalScheduler {
  constructor(tv) {
    this.intervalMs = tv;
  }
  start(tv) {
    this.stop(), this.timer = setInterval(tv, this.intervalMs);
  }
  stop() {
    this.timer !== void 0 && (clearInterval(this.timer), this.timer = void 0);
  }
  running() {
    return this.timer !== void 0;
  }
}
IntervalScheduler$1.default = IntervalScheduler;
var __awaiter$O = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(MediaDeviceProxyHandler$1, "__esModule", { value: !0 });
const AsyncScheduler_1$6 = AsyncScheduler$1, IntervalScheduler_1$6 = IntervalScheduler$1;
class MediaDeviceProxyHandler {
  constructor() {
    this.scheduler = null, this.devices = null, this.deviceChangeListeners = /* @__PURE__ */ new Set(), this.get = (tv, ev, iv) => {
      if (!Reflect.has(tv, ev))
        return;
      if (!("ondevicechange" in navigator.mediaDevices)) {
        if (ev === "addEventListener")
          return this.patchAddEventListener(tv, ev, iv);
        if (ev === "removeEventListener")
          return this.patchRemoveEventListener(tv, ev, iv);
      }
      const ov = Reflect.get(tv, ev, iv);
      return typeof ov == "function" ? ov.bind(tv) : ov;
    }, this.patchAddEventListener = (tv, ev, iv) => {
      const ov = Reflect.get(tv, ev, iv);
      return (av, sv, lv) => {
        if (av === "devicechange")
          this.deviceChangeListeners.add(sv), this.scheduler || (this.scheduler = new IntervalScheduler_1$6.default(MediaDeviceProxyHandler.INTERVAL_MS), this.scheduler.start(this.pollDeviceLists));
        else
          return Reflect.apply(ov, tv, [av, sv, lv]);
      };
    }, this.patchRemoveEventListener = (tv, ev, iv) => {
      const ov = Reflect.get(tv, ev, iv);
      return (av, sv, lv) => {
        if (av === "devicechange")
          this.deviceChangeListeners.delete(sv), this.deviceChangeListeners.size === 0 && this.scheduler && (this.scheduler.stop(), this.scheduler = null);
        else
          return Reflect.apply(ov, tv, [av, sv, lv]);
      };
    }, this.pollDeviceLists = () => __awaiter$O(this, void 0, void 0, function* () {
      const tv = yield this.sortedDeviceList();
      this.devices && (tv.length !== this.devices.length || tv.some((iv, ov) => iv.deviceId !== this.devices[ov].deviceId)) && this.handleDeviceChangeEvent(), this.devices = tv;
    });
  }
  sortedDeviceList() {
    return __awaiter$O(this, void 0, void 0, function* () {
      return (yield navigator.mediaDevices.enumerateDevices()).sort((ev, iv) => ev.deviceId < iv.deviceId ? 1 : ev.deviceId > iv.deviceId ? -1 : 0);
    });
  }
  handleDeviceChangeEvent() {
    for (const tv of this.deviceChangeListeners)
      AsyncScheduler_1$6.default.nextTick(() => {
        if (this.deviceChangeListeners.has(tv)) {
          const ev = new Event("devicechange");
          typeof tv == "function" ? tv(ev) : tv.handleEvent(ev);
        }
      });
  }
}
MediaDeviceProxyHandler$1.default = MediaDeviceProxyHandler;
MediaDeviceProxyHandler.INTERVAL_MS = 1e3;
Object.defineProperty(DefaultMediaDeviceFactory$1, "__esModule", { value: !0 });
const MediaDeviceProxyHandler_1 = MediaDeviceProxyHandler$1;
class DefaultMediaDeviceFactory {
  constructor() {
    this.isMediaDevicesSupported = typeof navigator < "u" && !!navigator.mediaDevices;
  }
  create() {
    if (this.isMediaDevicesSupported)
      return new Proxy(navigator.mediaDevices, new MediaDeviceProxyHandler_1.default());
    throw new Error("navigator.mediaDevices is not supported");
  }
}
DefaultMediaDeviceFactory$1.default = DefaultMediaDeviceFactory;
var Types = {};
Object.defineProperty(Types, "__esModule", { value: !0 });
Types.None = Types.Some = Types.Maybe = void 0;
class Maybe {
  static of(tv) {
    return tv == null ? None.of() : Some.of(tv);
  }
}
Types.Maybe = Maybe;
class Some {
  constructor(tv) {
    this.value = tv, this.isSome = !0, this.isNone = !1;
  }
  map(tv) {
    return Maybe.of(tv(this.value));
  }
  flatMap(tv) {
    return tv(this.value);
  }
  get() {
    return this.value;
  }
  getOrElse(tv) {
    return this.value;
  }
  defaulting(tv) {
    return Maybe.of(this.getOrElse(tv));
  }
  static of(tv) {
    if (tv == null)
      throw new Error("value is ${value}");
    return new Some(tv);
  }
}
Types.Some = Some;
class None {
  constructor() {
    this.isSome = !1, this.isNone = !0;
  }
  get() {
    throw new Error("value is null");
  }
  getOrElse(tv) {
    return tv;
  }
  map(tv) {
    return new None();
  }
  flatMap(tv) {
    return new None();
  }
  defaulting(tv) {
    return Maybe.of(this.getOrElse(tv));
  }
  static of() {
    return new None();
  }
}
Types.None = None;
var DefaultVideoTile$1 = {}, DefaultModality$1 = {};
Object.defineProperty(DefaultModality$1, "__esModule", { value: !0 });
const ContentShareConstants_1$3 = ContentShareConstants$1;
class DefaultModality {
  constructor(tv) {
    this._id = tv;
  }
  id() {
    return this._id;
  }
  base() {
    return this._id ? this._id.split(DefaultModality.MODALITY_SEPARATOR)[0] : "";
  }
  modality() {
    if (!this._id)
      return "";
    const tv = this._id.split(DefaultModality.MODALITY_SEPARATOR);
    return tv.length === 2 ? tv[1] : "";
  }
  hasModality(tv) {
    return tv !== "" && this.modality() === tv;
  }
  withModality(tv) {
    const ev = new DefaultModality(this.base() + DefaultModality.MODALITY_SEPARATOR + tv);
    return tv === "" || this.base() === "" || new DefaultModality(ev._id).modality() !== tv ? new DefaultModality(this.base()) : ev;
  }
}
DefaultModality$1.default = DefaultModality;
DefaultModality.MODALITY_SEPARATOR = ContentShareConstants_1$3.default.Modality[0];
DefaultModality.MODALITY_CONTENT = ContentShareConstants_1$3.default.Modality.substr(1);
var VideoTileState$1 = {};
Object.defineProperty(VideoTileState$1, "__esModule", { value: !0 });
class VideoTileState {
  constructor() {
    this.tileId = null, this.localTile = !1, this.localTileStarted = !1, this.isContent = !1, this.active = !1, this.paused = !1, this.poorConnection = !1, this.boundAttendeeId = null, this.boundExternalUserId = null, this.boundVideoStream = null, this.boundVideoElement = null, this.nameplate = null, this.videoStreamContentWidth = null, this.videoStreamContentHeight = null, this.videoElementCSSWidthPixels = null, this.videoElementCSSHeightPixels = null, this.devicePixelRatio = 0, this.videoElementPhysicalWidthPixels = null, this.videoElementPhysicalHeightPixels = null, this.streamId = null;
  }
  clone() {
    const tv = new VideoTileState();
    return tv.tileId = this.tileId, tv.localTile = this.localTile, tv.isContent = this.isContent, tv.active = this.active, tv.paused = this.paused, tv.poorConnection = this.poorConnection, tv.boundAttendeeId = this.boundAttendeeId, tv.boundExternalUserId = this.boundExternalUserId, tv.boundVideoStream = this.boundVideoStream, tv.boundVideoElement = this.boundVideoElement, tv.nameplate = this.nameplate, tv.videoStreamContentWidth = this.videoStreamContentWidth, tv.videoStreamContentHeight = this.videoStreamContentHeight, tv.videoElementCSSWidthPixels = this.videoElementCSSWidthPixels, tv.videoElementCSSHeightPixels = this.videoElementCSSHeightPixels, tv.devicePixelRatio = this.devicePixelRatio, tv.videoElementPhysicalWidthPixels = this.videoElementPhysicalWidthPixels, tv.videoElementPhysicalHeightPixels = this.videoElementPhysicalHeightPixels, tv.streamId = this.streamId, tv;
  }
}
VideoTileState$1.default = VideoTileState;
var __awaiter$N = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultVideoTile$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1$9 = DefaultBrowserBehavior$1, DefaultModality_1$3 = DefaultModality$1, AsyncScheduler_1$5 = AsyncScheduler$1, VideoTileState_1 = VideoTileState$1;
class DefaultVideoTile {
  constructor(tv, ev, iv, ov) {
    this.tileController = iv, this.devicePixelRatioMonitor = ov, this.tileState = new VideoTileState_1.default(), this.tileState.tileId = tv, this.tileState.localTile = ev, this.devicePixelRatioMonitor.registerObserver(this);
  }
  /**
   * Connect a video stream to a video element by setting the srcObject of the video element to the video stream.
   * @param videoStream The video stream input.
   * @param videoElement The video element input.
   * @param localTile Flag to indicate whether this is a local video.
   */
  static connectVideoStreamToVideoElement(tv, ev, iv) {
    const ov = iv && tv.getVideoTracks()[0].getSettings().facingMode !== "environment" ? "rotateY(180deg)" : "";
    DefaultVideoTile.setVideoElementFlag(ev, "disablePictureInPicture", iv), DefaultVideoTile.setVideoElementFlag(ev, "disableRemotePlayback", iv), ev.style.transform !== ov && (ev.style.transform = ov), ev.hasAttribute("controls") && ev.removeAttribute("controls"), ev.hasAttribute("autoplay") || ev.setAttribute("autoplay", "true"), ev.hasAttribute("playsinline") || ev.setAttribute("playsinline", "true"), ev.hasAttribute("muted") || (ev.setAttribute("muted", "true"), ev.muted = !0), ev.srcObject !== tv && (ev.srcObject = tv), new DefaultBrowserBehavior_1$9.default().requiresVideoElementWorkaround() && AsyncScheduler_1$5.default.nextTick(() => __awaiter$N(this, void 0, void 0, function* () {
      try {
        yield ev.play();
      } catch {
      }
    }));
  }
  /**
   * Disconnect a video stream to a video element by clearing the srcObject of the video element.
   * This will also stop all the tracks of the current stream in the srcObject.
   * @param videoElement The video element input.
   * @param dueToPause A flag to indicate whether this function is called due to pausing video tile.
   *  If true, then we will not stop the stream's tracks and just clearing out the srcObject.
   * @param keepLastFrameWhenPaused If true and dueToPause is also true, then we will not clear out the srcObject of the
   * video element when it is paused and therefore, the last frame of the stream will be shown.
   */
  static disconnectVideoStreamFromVideoElement(tv, ev, iv = !1) {
    if (tv)
      if (ev)
        iv || (tv.srcObject = null, tv.style.transform = "");
      else {
        if (!tv.srcObject)
          return;
        tv.pause(), tv.style.transform = "", DefaultVideoTile.setVideoElementFlag(tv, "disablePictureInPicture", !1), DefaultVideoTile.setVideoElementFlag(tv, "disableRemotePlayback", !1);
        const ov = tv.srcObject, av = ov.getTracks();
        for (const sv of av)
          sv.stop(), ov.removeTrack(sv);
        if (new DefaultBrowserBehavior_1$9.default().requiresVideoElementWorkaround()) {
          const sv = tv.srcObject;
          AsyncScheduler_1$5.default.nextTick(() => {
            tv.srcObject === sv && (tv.srcObject = null);
          });
        } else
          tv.srcObject = null;
      }
  }
  destroy() {
    this.devicePixelRatioMonitor.removeObserver(this), this.tileState.boundVideoElement && this.tileState.boundVideoElement.srcObject === this.tileState.boundVideoStream && DefaultVideoTile.disconnectVideoStreamFromVideoElement(this.tileState.boundVideoElement, !1), this.tileState = new VideoTileState_1.default();
  }
  devicePixelRatioChanged(tv) {
    this.tileState.devicePixelRatio = tv, this.sendTileStateUpdate();
  }
  id() {
    return this.tileState.tileId;
  }
  state() {
    return this.tileState.clone();
  }
  stateRef() {
    return this.tileState;
  }
  bindVideoStream(tv, ev, iv, ov, av, sv, lv) {
    let uv = !1;
    this.tileState.boundAttendeeId !== tv && (this.tileState.boundAttendeeId = tv, new DefaultModality_1$3.default(tv).hasModality(DefaultModality_1$3.default.MODALITY_CONTENT) && (this.tileState.isContent = !0), uv = !0), this.tileState.boundExternalUserId !== lv && (this.tileState.boundExternalUserId = lv, uv = !0), this.tileState.localTile !== ev && (this.tileState.localTile = ev, uv = !0), this.tileState.boundVideoStream !== iv && (this.tileState.boundVideoStream = iv, uv = !0), this.tileState.videoStreamContentWidth !== ov && (this.tileState.videoStreamContentWidth = ov, uv = !0), this.tileState.videoStreamContentHeight !== av && (this.tileState.videoStreamContentHeight = av, uv = !0), this.tileState.streamId !== sv && (this.tileState.streamId = sv, uv = !0), uv && this.sendTileStateUpdate();
  }
  bindVideoElement(tv) {
    let ev = !1;
    this.tileState.boundVideoElement !== tv && (this.tileState.boundVideoElement = tv, ev = !0), this.tileState.boundVideoElement !== null ? (this.tileState.videoElementCSSWidthPixels !== tv.clientWidth && (this.tileState.videoElementCSSWidthPixels = tv.clientWidth, ev = !0), this.tileState.videoElementCSSHeightPixels !== tv.clientHeight && (this.tileState.videoElementCSSHeightPixels = tv.clientHeight, ev = !0)) : (this.tileState.videoElementCSSWidthPixels = null, this.tileState.videoElementCSSHeightPixels = null), ev && this.sendTileStateUpdate();
  }
  pause() {
    this.tileState.paused || (this.tileState.paused = !0, this.sendTileStateUpdate());
  }
  unpause() {
    this.tileState.paused && (this.tileState.paused = !1, this.sendTileStateUpdate());
  }
  markPoorConnection() {
    return this.tileState.poorConnection ? !1 : (this.tileState.poorConnection = !0, this.sendTileStateUpdate(), !0);
  }
  unmarkPoorConnection() {
    return this.tileState.poorConnection ? (this.tileState.poorConnection = !1, this.sendTileStateUpdate(), !0) : !1;
  }
  capture() {
    if (!this.tileState.active)
      return null;
    const tv = document.createElement("canvas"), ev = this.tileState.boundVideoElement;
    tv.width = ev.videoWidth || ev.width, tv.height = ev.videoHeight || ev.height;
    const iv = tv.getContext("2d");
    return iv.drawImage(ev, 0, 0, tv.width, tv.height), iv.getImageData(0, 0, tv.width, tv.height);
  }
  setStreamId(tv) {
    this.tileState.streamId = tv, this.tileController.sendTileStateUpdate(this.state());
  }
  sendTileStateUpdate() {
    this.updateActiveState(), this.updateVideoStreamOnVideoElement(), this.updateVideoElementPhysicalPixels(), this.tileController.sendTileStateUpdate(this.state());
  }
  updateActiveState() {
    this.tileState.active = !!(!this.tileState.paused && !this.tileState.poorConnection && this.tileState.boundAttendeeId && this.tileState.boundVideoElement && this.tileState.boundVideoStream);
  }
  updateVideoElementPhysicalPixels() {
    typeof this.tileState.videoElementCSSWidthPixels == "number" && typeof this.tileState.videoElementCSSHeightPixels == "number" ? (this.tileState.videoElementPhysicalWidthPixels = this.tileState.devicePixelRatio * this.tileState.videoElementCSSWidthPixels, this.tileState.videoElementPhysicalHeightPixels = this.tileState.devicePixelRatio * this.tileState.videoElementCSSHeightPixels) : (this.tileState.videoElementPhysicalWidthPixels = null, this.tileState.videoElementPhysicalHeightPixels = null);
  }
  updateVideoStreamOnVideoElement() {
    this.tileState.active ? DefaultVideoTile.connectVideoStreamToVideoElement(this.tileState.boundVideoStream, this.tileState.boundVideoElement, this.tileState.localTile) : DefaultVideoTile.disconnectVideoStreamFromVideoElement(this.tileState.boundVideoElement, this.tileState.paused, this.tileController.keepLastFrameWhenPaused);
  }
  static setVideoElementFlag(tv, ev, iv) {
    ev in tv && (tv[ev] = iv);
  }
}
DefaultVideoTile$1.default = DefaultVideoTile;
var AudioTransformDevice = {};
Object.defineProperty(AudioTransformDevice, "__esModule", { value: !0 });
AudioTransformDevice.isAudioTransformDevice = void 0;
function isAudioTransformDevice(rv) {
  return !!rv && typeof rv == "object" && "mute" in rv && "stop" in rv && "intrinsicDevice" in rv;
}
AudioTransformDevice.isAudioTransformDevice = isAudioTransformDevice;
var DeviceSelection$1 = {};
Object.defineProperty(DeviceSelection$1, "__esModule", { value: !0 });
class DeviceSelection {
  constructor() {
    this.groupId = "";
  }
  matchesConstraints(tv) {
    return JSON.stringify(this.constraints) === JSON.stringify(tv);
  }
}
DeviceSelection$1.default = DeviceSelection;
var GetUserMediaError$1 = {};
Object.defineProperty(GetUserMediaError$1, "__esModule", { value: !0 });
class GetUserMediaError extends Error {
  constructor(tv, ev) {
    super(ev || "Error fetching device."), this.cause = tv, this.name = "GetUserMediaError";
  }
}
GetUserMediaError$1.default = GetUserMediaError;
var NotFoundError$1 = {};
Object.defineProperty(NotFoundError$1, "__esModule", { value: !0 });
const GetUserMediaError_1$5 = GetUserMediaError$1;
class NotFoundError extends GetUserMediaError_1$5.default {
  constructor(tv) {
    super(tv), this.name = "NotFoundError";
  }
}
NotFoundError$1.default = NotFoundError;
var NotReadableError$1 = {};
Object.defineProperty(NotReadableError$1, "__esModule", { value: !0 });
const GetUserMediaError_1$4 = GetUserMediaError$1;
class NotReadableError extends GetUserMediaError_1$4.default {
  constructor(tv) {
    super(tv), this.name = "NotReadableError";
  }
}
NotReadableError$1.default = NotReadableError;
var OverconstrainedError$1 = {};
Object.defineProperty(OverconstrainedError$1, "__esModule", { value: !0 });
const GetUserMediaError_1$3 = GetUserMediaError$1;
class OverconstrainedError extends GetUserMediaError_1$3.default {
  constructor(tv, ev) {
    super(tv), this.constraint = ev, this.name = "OverconstrainedError";
  }
}
OverconstrainedError$1.default = OverconstrainedError;
var PermissionDeniedError$1 = {};
Object.defineProperty(PermissionDeniedError$1, "__esModule", { value: !0 });
const GetUserMediaError_1$2 = GetUserMediaError$1;
class PermissionDeniedError extends GetUserMediaError_1$2.default {
  constructor(tv, ev) {
    super(tv, ev), this.name = "PermissionDeniedError";
  }
}
PermissionDeniedError$1.default = PermissionDeniedError;
var _TypeError = {};
Object.defineProperty(_TypeError, "__esModule", { value: !0 });
const GetUserMediaError_1$1 = GetUserMediaError$1;
let TypeError$1 = class extends GetUserMediaError_1$1.default {
  constructor(tv) {
    super(tv), this.name = "TypeError";
  }
};
_TypeError.default = TypeError$1;
var VideoQualitySettings$1 = {};
Object.defineProperty(VideoQualitySettings$1, "__esModule", { value: !0 });
class VideoQualitySettings {
  constructor(tv, ev, iv, ov) {
    this.videoWidth = tv, this.videoHeight = ev, this.videoFrameRate = iv, this.videoMaxBandwidthKbps = ov;
  }
}
VideoQualitySettings$1.default = VideoQualitySettings;
var VideoTransformDevice = {};
Object.defineProperty(VideoTransformDevice, "__esModule", { value: !0 });
VideoTransformDevice.isVideoTransformDevice = void 0;
function isVideoTransformDevice(rv) {
  return !!rv && typeof rv == "object" && "transformStream" in rv && "stop" in rv && "intrinsicDevice" in rv;
}
VideoTransformDevice.isVideoTransformDevice = isVideoTransformDevice;
var __awaiter$M = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultDeviceController$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1$8 = DefaultBrowserBehavior$1, DefaultMediaDeviceFactory_1 = DefaultMediaDeviceFactory$1, AsyncScheduler_1$4 = AsyncScheduler$1, IntervalScheduler_1$5 = IntervalScheduler$1, Types_1$8 = Types, DefaultVideoTile_1$1 = DefaultVideoTile$1, AudioTransformDevice_1 = AudioTransformDevice, DeviceSelection_1 = DeviceSelection$1, GetUserMediaError_1 = GetUserMediaError$1, NotFoundError_1 = NotFoundError$1, NotReadableError_1 = NotReadableError$1, OverconstrainedError_1 = OverconstrainedError$1, PermissionDeniedError_1$1 = PermissionDeniedError$1, TypeError_1 = _TypeError, VideoQualitySettings_1 = VideoQualitySettings$1, VideoTransformDevice_1$1 = VideoTransformDevice;
function fillSMPTEColorBars(rv, tv) {
  const ev = rv.width, iv = rv.height, ov = iv * 2 / 3, av = iv * 3 / 4, sv = iv, lv = ["#c0c0c0", "#c0c000", "#00c0c0", "#00c000", "#c000c0", "#c00000", "#0000c0"], uv = ["#0000c0", "#000000", "#c000c0", "#000000", "#00c0c0", "#000000", "#c0c0c0"], cv = [
    "#00214c",
    "#ffffff",
    "#32006a",
    "#131313",
    "#090909",
    "#131313",
    "#1d1d1d",
    "#131313"
  ], dv = [
    ev * 0,
    ev * 1 / 4 * (5 / 7),
    ev * 2 / 4 * (5 / 7),
    ev * 3 / 4 * (5 / 7),
    ev * (5 / 7),
    ev * (5 / 7 + 1 / 21),
    ev * (5 / 7 + 2 / 21),
    ev * (6 / 7),
    ev * 1
  ], hv = ev / lv.length, pv = rv.getContext("2d");
  for (let yv = 0; yv < lv.length; yv++)
    pv.fillStyle = lv[yv], pv.fillRect(tv + yv * hv, 0, hv, ov), pv.fillStyle = uv[yv], pv.fillRect(tv + yv * hv, ov, hv, av - ov);
  for (let yv = 0; yv < cv.length; yv++)
    pv.fillStyle = cv[yv], pv.fillRect(tv + dv[yv], av, dv[yv + 1] - dv[yv], sv - av);
}
function makeColorBars(rv, tv) {
  const ev = new IntervalScheduler_1$5.default(1e3), iv = rv.getContext("2d"), ov = rv.captureStream(5) || null;
  if (!ov)
    return;
  const av = () => {
    tv === "smpte" ? fillSMPTEColorBars(rv, 0) : (iv.fillStyle = tv, iv.fillRect(0, 0, rv.width, rv.height));
  };
  ev.start(av);
  const sv = () => {
    ev.stop();
  };
  return ov.getVideoTracks()[0].addEventListener("ended", sv), { listener: sv, scheduler: ev, stream: ov };
}
class DefaultDeviceController {
  constructor(tv, ev, iv = new DefaultBrowserBehavior_1$8.default()) {
    this.logger = tv, this.browserBehavior = iv, this.deviceInfoCache = null, this.activeDevices = { audio: null, video: null }, this.chosenVideoTransformDevice = null, this.audioOutputDeviceId = null, this.deviceChangeObservers = /* @__PURE__ */ new Set(), this.deviceLabelTrigger = () => navigator.mediaDevices.getUserMedia({ audio: !0, video: !0 }), this.audioInputDestinationNode = null, this.audioInputSourceNode = null, this.videoInputQualitySettings = null, this.useWebAudio = !1, this.inputDeviceCount = 0, this.mediaStreamMuteObserver = (sv, lv) => {
      for (const uv of this.deviceChangeObservers)
        AsyncScheduler_1$4.default.nextTick(() => {
          this.deviceChangeObservers.has(uv) && uv.audioInputMuteStateChanged && uv.audioInputMuteStateChanged(sv, lv);
        });
    }, this.alreadyHandlingDeviceChange = !1;
    const { enableWebAudio: ov = !1 } = ev || {};
    this.useWebAudio = ov, this.muteCallback = (sv) => {
      var lv;
      (lv = this.transform) === null || lv === void 0 || lv.device.mute(sv);
    }, this.videoInputQualitySettings = new VideoQualitySettings_1.default(DefaultDeviceController.defaultVideoWidth, DefaultDeviceController.defaultVideoHeight, DefaultDeviceController.defaultVideoFrameRate, DefaultDeviceController.defaultVideoMaxBandwidthKbps);
    const av = this.browserBehavior.requiresResolutionAlignment(this.videoInputQualitySettings.videoWidth, this.videoInputQualitySettings.videoHeight);
    this.videoInputQualitySettings.videoWidth = av[0], this.videoInputQualitySettings.videoHeight = av[1], this.logger.info(`DefaultDeviceController video dimension ${this.videoInputQualitySettings.videoWidth} x ${this.videoInputQualitySettings.videoHeight}`);
    try {
      this.mediaDeviceWrapper = new DefaultMediaDeviceFactory_1.default().create();
      const sv = navigator.mediaDevices.getSupportedConstraints();
      this.logger.info(`Supported Constraints in this browser ${JSON.stringify(sv)}`);
    } catch (sv) {
      tv.error(sv.message);
    }
  }
  isWatchingForDeviceChanges() {
    return !!this.onDeviceChangeCallback;
  }
  ensureWatchingDeviceChanges() {
    var tv;
    this.isWatchingForDeviceChanges() || (this.logger.info("Starting devicechange listener."), this.onDeviceChangeCallback = () => {
      this.logger.info("Device change event callback is triggered"), this.handleDeviceChange();
    }, (tv = this.mediaDeviceWrapper) === null || tv === void 0 || tv.addEventListener("devicechange", this.onDeviceChangeCallback));
  }
  /**
   * Unsubscribe from the `devicechange` event, which allows the device controller to
   * update its device cache.
   */
  stopWatchingDeviceChanges() {
    var tv;
    this.isWatchingForDeviceChanges() && (this.logger.info("Stopping devicechange listener."), (tv = this.mediaDeviceWrapper) === null || tv === void 0 || tv.removeEventListener("devicechange", this.onDeviceChangeCallback), this.onDeviceChangeCallback = void 0);
  }
  shouldObserveDeviceChanges() {
    return this.deviceChangeObservers.size ? !0 : this.activeDevices.audio && this.activeDevices.audio.constraints !== null || this.activeDevices.video && this.activeDevices.video.constraints !== null || !!this.audioOutputDeviceId;
  }
  watchForDeviceChangesIfNecessary() {
    this.shouldObserveDeviceChanges() ? this.ensureWatchingDeviceChanges() : this.stopWatchingDeviceChanges();
  }
  destroy() {
    var tv, ev;
    return __awaiter$M(this, void 0, void 0, function* () {
      this.stopWatchingDeviceChanges(), yield this.chooseAudioInputDevice(null), yield this.chooseVideoInputDevice(null), (tv = this.audioInputSourceNode) === null || tv === void 0 || tv.disconnect(), (ev = this.audioInputDestinationNode) === null || ev === void 0 || ev.disconnect(), this.audioInputSourceNode = void 0, this.audioInputDestinationNode = void 0;
    });
  }
  listAudioInputDevices(tv = !1) {
    return __awaiter$M(this, void 0, void 0, function* () {
      const ev = yield this.listDevicesOfKind("audioinput", tv);
      return this.trace("listAudioInputDevices", tv, ev), ev;
    });
  }
  listVideoInputDevices(tv = !1) {
    return __awaiter$M(this, void 0, void 0, function* () {
      const ev = yield this.listDevicesOfKind("videoinput", tv);
      return this.trace("listVideoInputDevices", tv, ev), ev;
    });
  }
  listAudioOutputDevices(tv = !1) {
    return __awaiter$M(this, void 0, void 0, function* () {
      const ev = yield this.listDevicesOfKind("audiooutput", tv);
      return this.trace("listAudioOutputDevices", tv, ev), ev;
    });
  }
  pushAudioMeetingStateForPermissions(tv) {
    var ev, iv;
    (iv = (ev = this.boundAudioVideoController) === null || ev === void 0 ? void 0 : ev.eventController) === null || iv === void 0 || iv.publishEvent(tv === null ? "audioInputUnselected" : "audioInputSelected");
  }
  pushVideoMeetingStateForPermissions(tv) {
    var ev, iv;
    (iv = (ev = this.boundAudioVideoController) === null || ev === void 0 ? void 0 : ev.eventController) === null || iv === void 0 || iv.publishEvent(tv === null ? "videoInputUnselected" : "videoInputSelected");
  }
  chooseAudioInputDevice(tv) {
    var ev, iv;
    return __awaiter$M(this, void 0, void 0, function* () {
      if (tv === void 0) {
        this.logger.error("Audio input device cannot be undefined");
        return;
      }
      let ov = this.useWebAudio;
      this.useWebAudio || this.logger.debug("Not using Web Audio. No need to recreate audio context."), ((ev = DefaultDeviceController.audioContext) === null || ev === void 0 ? void 0 : ev.state) === "suspended" && (ov = !1), ov && !this.browserBehavior.requiresContextRecreationForAudioWorklet() && (this.logger.debug("Browser does not require audio context recreation hack."), ov = !1), ov && !this.transform && AudioTransformDevice_1.isAudioTransformDevice(tv) && (this.logger.debug("Neither device is a transform. No need to recreate audio context."), ov = !1), ov && (this.logger.info("Recreating audio context when selecting new device."), this.transform && (this.transform.nodes && (this.transform.nodes.end.disconnect(), this.transform.nodes = void 0), this.transform = void 0), this.audioInputSourceNode && (this.audioInputSourceNode.disconnect(), this.audioInputSourceNode = void 0), this.audioInputDestinationNode && (this.audioInputDestinationNode.disconnect(), this.audioInputDestinationNode = void 0), DefaultDeviceController.closeAudioContext()), AudioTransformDevice_1.isAudioTransformDevice(tv) ? (this.logger.info(`Choosing transform input device ${tv}`), yield this.chooseAudioTransformInputDevice(tv)) : (this.logger.info(`Choosing intrinsic audio input device ${tv}`), this.removeTransform(), yield this.chooseInputIntrinsicDevice("audio", tv, !1), this.trace("chooseAudioInputDevice", tv, "success")), ov && (!((iv = this.boundAudioVideoController) === null || iv === void 0) && iv.rtcPeerConnection) && this.boundAudioVideoController.restartLocalAudio(() => {
        this.logger.info("Local audio restarted.");
      }), this.pushAudioMeetingStateForPermissions(tv);
    });
  }
  chooseAudioTransformInputDevice(tv) {
    var ev;
    return __awaiter$M(this, void 0, void 0, function* () {
      if (((ev = this.transform) === null || ev === void 0 ? void 0 : ev.device) === tv)
        return;
      if (!this.useWebAudio)
        throw new Error("Cannot apply transform device without enabling Web Audio.");
      const iv = DefaultDeviceController.getAudioContext();
      if (!(iv instanceof OfflineAudioContext))
        switch (iv.state) {
          case "running":
            break;
          case "closed":
            throw new Error("Cannot choose a transform device with a closed audio context.");
          case "suspended":
            yield iv.resume();
        }
      let ov;
      try {
        ov = yield tv.createAudioNode(iv);
      } catch (sv) {
        throw this.logger.error(`Unable to create transform device node: ${sv}.`), sv;
      }
      const av = yield tv.intrinsicDevice();
      yield this.chooseInputIntrinsicDevice("audio", av, !1), this.logger.debug(`Got inner stream: ${av}.`), this.setTransform(tv, ov);
    });
  }
  chooseVideoTransformInputDevice(tv) {
    var ev, iv;
    return __awaiter$M(this, void 0, void 0, function* () {
      if (tv === this.chosenVideoTransformDevice) {
        this.logger.info("Reselecting same VideoTransformDevice");
        return;
      }
      const ov = this.chosenVideoTransformDevice;
      ov && this.logger.info("Switched from previous VideoTransformDevice");
      const av = !!ov, sv = yield tv.intrinsicDevice();
      if (!this.isMediaStreamReusableByDeviceId((ev = this.activeDevices.video) === null || ev === void 0 ? void 0 : ev.stream, sv)) {
        this.logger.info("video transform device needs new intrinsic device"), av && ov.onOutputStreamDisconnect(), this.chosenVideoTransformDevice = tv, this.activeDevices.video = null, yield this.chooseInputIntrinsicDevice("video", sv, !1, !0);
        return;
      }
      this.chosenVideoTransformDevice = tv;
      const uv = this.activeDevices.video.stream;
      if (this.logger.info("video transform device uses previous stream"), !sv.id) {
        const cv = sv;
        cv.width = cv.width || this.videoInputQualitySettings.videoWidth, cv.height = cv.height || this.videoInputQualitySettings.videoHeight, cv.frameRate = cv.frameRate || this.videoInputQualitySettings.videoFrameRate, yield uv.getVideoTracks()[0].applyConstraints(cv);
      }
      yield tv.transformStream(this.activeDevices.video.stream), !((iv = this.boundAudioVideoController) === null || iv === void 0) && iv.videoTileController.hasStartedLocalVideoTile() && (this.boundAudioVideoController.replaceLocalVideo ? this.restartLocalVideoAfterSelection(!1, !0) : yield this.boundAudioVideoController.update({ needsRenegotiation: !0 }));
    });
  }
  chooseVideoInputDevice(tv) {
    return __awaiter$M(this, void 0, void 0, function* () {
      if (tv === void 0) {
        this.logger.error("Video input device cannot be undefined");
        return;
      }
      if (VideoTransformDevice_1$1.isVideoTransformDevice(tv))
        return this.logger.info(`Choosing video transform device ${tv}`), this.chooseVideoTransformInputDevice(tv);
      this.updateMaxBandwidthKbps(), this.chosenVideoInputIsTransformDevice() && (this.chosenVideoTransformDevice.onOutputStreamDisconnect(), this.chosenVideoTransformDevice = null), yield this.chooseInputIntrinsicDevice("video", tv, !1), this.trace("chooseVideoInputDevice", tv), this.pushVideoMeetingStateForPermissions(tv);
    });
  }
  chooseAudioOutputDevice(tv) {
    return __awaiter$M(this, void 0, void 0, function* () {
      this.audioOutputDeviceId = tv, this.watchForDeviceChangesIfNecessary(), yield this.bindAudioOutput(), this.trace("chooseAudioOutputDevice", tv, null);
    });
  }
  addDeviceChangeObserver(tv) {
    this.logger.info("adding device change observer"), this.deviceChangeObservers.add(tv), this.watchForDeviceChangesIfNecessary(), this.trace("addDeviceChangeObserver");
  }
  removeDeviceChangeObserver(tv) {
    this.logger.info("removing device change observer"), this.deviceChangeObservers.delete(tv), this.watchForDeviceChangesIfNecessary(), this.trace("removeDeviceChangeObserver");
  }
  createAnalyserNodeForAudioInput() {
    var tv, ev;
    if (!this.activeDevices.audio)
      return null;
    const iv = (ev = (tv = this.transform) === null || tv === void 0 ? void 0 : tv.nodes) === null || ev === void 0 ? void 0 : ev.end;
    if (iv) {
      const ov = iv.context.createAnalyser();
      return ov.removeOriginalInputs = () => {
        try {
          iv.disconnect(ov);
        } catch {
        }
      }, iv.connect(ov), ov;
    }
    return this.createAnalyserNodeForRawAudioInput();
  }
  //
  // N.B., this bypasses any applied transform node.
  //
  createAnalyserNodeForRawAudioInput() {
    return this.activeDevices.audio ? this.createAnalyserNodeForStream(this.activeDevices.audio.stream) : null;
  }
  createAnalyserNodeForStream(tv) {
    const ev = DefaultDeviceController.getAudioContext(), iv = ev.createAnalyser(), ov = ev.createMediaStreamSource(tv);
    return ov.connect(iv), this.trace("createAnalyserNodeForAudioInput"), iv.removeOriginalInputs = () => {
      try {
        ov.disconnect(iv);
      } catch {
      }
    }, iv;
  }
  startVideoPreviewForVideoInput(tv) {
    if (!this.activeDevices.video) {
      this.logger.warn("cannot bind video preview since video input device has not been chosen"), this.trace("startVideoPreviewForVideoInput", tv.id);
      return;
    }
    const ev = tv.srcObject;
    ev && this.activeDevices.video.stream !== ev && (this.releaseMediaStream(tv.srcObject), DefaultVideoTile_1$1.default.disconnectVideoStreamFromVideoElement(tv, !1)), this.chosenVideoTransformDevice ? DefaultVideoTile_1$1.default.connectVideoStreamToVideoElement(this.chosenVideoTransformDevice.outputMediaStream, tv, !0) : DefaultVideoTile_1$1.default.connectVideoStreamToVideoElement(this.activeDevices.video.stream, tv, !0), this.trace("startVideoPreviewForVideoInput", tv.id);
  }
  stopVideoPreviewForVideoInput(tv) {
    const ev = tv.srcObject, iv = this.activeDevices.video;
    iv && this.releaseActiveDevice(iv), ev && (this.releaseMediaStream(ev), DefaultVideoTile_1$1.default.disconnectVideoStreamFromVideoElement(tv, !1)), this.trace("stopVideoPreviewForVideoInput", tv.id);
  }
  setDeviceLabelTrigger(tv) {
    if (this.deviceInfoCache) {
      for (const ev of this.deviceInfoCache)
        if (!ev.label) {
          this.deviceInfoCache = null;
          break;
        }
    }
    this.deviceLabelTrigger = tv, this.trace("setDeviceLabelTrigger");
  }
  mixIntoAudioInput(tv) {
    let ev = null;
    return this.useWebAudio ? (ev = DefaultDeviceController.getAudioContext().createMediaStreamSource(tv), ev.connect(this.getMediaStreamOutputNode())) : this.logger.warn("WebAudio is not enabled, mixIntoAudioInput will not work"), this.trace("mixIntoAudioInput", tv.id), ev;
  }
  chooseVideoInputQuality(tv, ev, iv, ov) {
    const av = this.browserBehavior.requiresResolutionAlignment(tv, ev);
    this.videoInputQualitySettings = new VideoQualitySettings_1.default(av[0], av[1], iv, ov), this.updateMaxBandwidthKbps();
  }
  getVideoInputQualitySettings() {
    return this.videoInputQualitySettings;
  }
  acquireAudioInputStream() {
    return this.acquireInputStream("audio");
  }
  acquireVideoInputStream() {
    return this.acquireInputStream("video");
  }
  acquireDisplayInputStream(tv) {
    return __awaiter$M(this, void 0, void 0, function* () {
      return tv && tv.video && // @ts-ignore
      tv.video.mandatory && // @ts-ignore
      tv.video.mandatory.chromeMediaSource && // @ts-ignore
      tv.video.mandatory.chromeMediaSourceId ? navigator.mediaDevices.getUserMedia(tv) : navigator.mediaDevices.getDisplayMedia(tv);
    });
  }
  /**
   * This function helps `releaseMediaStream` do the right thing.
   *
   * We need to do three things:
   *
   * * Close the tracks of the source stream.
   * * Remove the transform.
   * * Clean up the _source_ stream's callback, as if `releaseMediaStream` had
   *   been called with that stream -- that's the stream that's tracked in
   *   `activeDevices` and needs to have its callbacks removed.
   *
   * This is a little fiddly because the stream broker interface doesn't
   * know about the innards of the device controller, and only has the
   * meeting session state's stream to work with.
   *
   */
  releaseAudioTransformStream() {
    this.logger.info("Stopping audio track for Web Audio graph"), this.stopTracksAndRemoveCallbacks("audio"), this.logger.info("Removing audio transform, if there is one."), this.removeTransform(), this.audioInputSourceNode && (this.audioInputSourceNode.disconnect(), this.audioInputSourceNode = void 0), this.audioInputDestinationNode && (this.audioInputDestinationNode.disconnect(), this.audioInputDestinationNode = void 0);
  }
  releaseVideoTransformStream() {
    this.logger.info("Stopping video track for transform"), this.stopTracksAndRemoveCallbacks("video"), this.logger.info("Disconnecting video transform"), this.chosenVideoTransformDevice.onOutputStreamDisconnect(), this.chosenVideoTransformDevice = null;
  }
  stopTracksAndRemoveCallbacks(tv) {
    const ev = this.activeDevices[tv];
    if (!ev)
      return;
    const iv = ev.endedCallback, ov = ev.trackMuteCallback, av = ev.trackUnmuteCallback;
    for (const sv of ev.stream.getTracks())
      sv.stop(), iv && sv.removeEventListener("ended", iv), ov && sv.removeEventListener("mute", ov), av && sv.removeEventListener("unmute", av), delete ev.endedCallback, delete ev.trackMuteCallback, delete ev.trackUnmuteCallback, delete this.activeDevices[tv];
  }
  releaseOrdinaryStream(tv) {
    var ev;
    const iv = tv.getTracks();
    if (iv.length) {
      for (const ov of iv)
        ov.stop();
      for (const ov in this.activeDevices) {
        const av = this.activeDevices[ov];
        if ((av == null ? void 0 : av.stream) === tv) {
          switch (ov) {
            case "audio": {
              for (const sv of tv.getAudioTracks())
                sv.removeEventListener("mute", av.trackMuteCallback), sv.removeEventListener("unmute", av.trackUnmuteCallback), sv.removeEventListener("ended", av.endedCallback);
              delete av.trackMuteCallback, delete av.trackUnmuteCallback, delete av.endedCallback;
              break;
            }
            case "video": {
              if (av.endedCallback) {
                for (const uv of tv.getTracks())
                  uv.removeEventListener("ended", av.endedCallback);
                delete av.endedCallback;
              }
              const lv = (ev = this.boundAudioVideoController) === null || ev === void 0 ? void 0 : ev.videoTileController;
              lv != null && lv.hasStartedLocalVideoTile() && lv.stopLocalVideoTile();
              break;
            }
          }
          delete this.activeDevices[ov];
        }
      }
    }
  }
  releaseMediaStream(tv) {
    var ev, iv;
    if (tv)
      try {
        if (tv === ((ev = this.audioInputDestinationNode) === null || ev === void 0 ? void 0 : ev.stream)) {
          this.releaseAudioTransformStream();
          return;
        }
        if (tv === ((iv = this.chosenVideoTransformDevice) === null || iv === void 0 ? void 0 : iv.outputMediaStream)) {
          this.releaseVideoTransformStream();
          return;
        }
        this.releaseOrdinaryStream(tv);
      } finally {
        this.watchForDeviceChangesIfNecessary();
      }
  }
  chosenVideoInputIsTransformDevice() {
    return !!this.chosenVideoTransformDevice;
  }
  bindToAudioVideoController(tv) {
    this.boundAudioVideoController && this.unsubscribeFromMuteAndUnmuteLocalAudio(), this.boundAudioVideoController = tv, this.subscribeToMuteAndUnmuteLocalAudio(), this.browserBehavior.supportsSetSinkId() && AsyncScheduler_1$4.default.nextTick(() => {
      this.bindAudioOutput();
    });
  }
  subscribeToMuteAndUnmuteLocalAudio() {
    this.boundAudioVideoController && this.boundAudioVideoController.realtimeController && this.boundAudioVideoController.realtimeController.realtimeSubscribeToMuteAndUnmuteLocalAudio(this.muteCallback);
  }
  unsubscribeFromMuteAndUnmuteLocalAudio() {
    this.boundAudioVideoController.realtimeController && this.boundAudioVideoController.realtimeController.realtimeUnsubscribeToMuteAndUnmuteLocalAudio(this.muteCallback);
  }
  static getIntrinsicDeviceId(tv) {
    if (tv === void 0)
      return;
    if (tv === null)
      return null;
    if (typeof tv == "string")
      return tv;
    if (tv.id)
      return tv.id;
    const iv = tv.deviceId;
    if (iv === void 0)
      return;
    if (iv === null)
      return null;
    if (typeof iv == "string" || Array.isArray(iv))
      return iv;
    const ov = iv;
    if (typeof ov.exact == "string" || Array.isArray(ov.exact))
      return ov.exact;
  }
  static createEmptyAudioDevice() {
    return DefaultDeviceController.synthesizeAudioDevice(0);
  }
  static createEmptyVideoDevice() {
    return DefaultDeviceController.synthesizeVideoDevice("black");
  }
  static synthesizeAudioDevice(tv) {
    const ev = DefaultDeviceController.getAudioContext(), iv = ev.createMediaStreamDestination();
    if (tv) {
      const ov = ev.createGain();
      ov.gain.value = 0.1, ov.connect(iv);
      const av = ev.createOscillator();
      av.frequency.value = tv, av.connect(ov), av.start();
    } else {
      const ov = ev.createBufferSource();
      try {
        ov.buffer = ev.createBuffer(1, ev.sampleRate * 5, ev.sampleRate);
      } catch (av) {
        if (av && av.name === "NotSupportedError")
          ov.buffer = ev.createBuffer(1, DefaultDeviceController.defaultSampleRate * 5, DefaultDeviceController.defaultSampleRate);
        else
          throw av;
      }
      ov.buffer.getChannelData(0)[0] = 3e-4, ov.loop = !0, ov.connect(iv), ov.start();
    }
    return iv.stream;
  }
  static synthesizeVideoDevice(tv) {
    const ev = document.createElement("canvas");
    ev.width = 480, ev.height = ev.width / 16 * 9;
    const iv = makeColorBars(ev, tv);
    if (!iv)
      return null;
    const { stream: ov } = iv;
    return ov;
  }
  updateMaxBandwidthKbps() {
    this.boundAudioVideoController && this.boundAudioVideoController.setVideoMaxBandwidthKbps(this.videoInputQualitySettings.videoMaxBandwidthKbps);
  }
  listDevicesOfKind(tv, ev) {
    return __awaiter$M(this, void 0, void 0, function* () {
      return (ev || this.deviceInfoCache === null || !this.isWatchingForDeviceChanges()) && (yield this.updateDeviceInfoCacheFromBrowser()), this.listCachedDevicesOfKind(tv);
    });
  }
  updateDeviceInfoCacheFromBrowser() {
    return __awaiter$M(this, void 0, void 0, function* () {
      if (typeof MediaDeviceInfo > "u") {
        this.deviceInfoCache = [];
        return;
      }
      let ev = yield navigator.mediaDevices.enumerateDevices(), iv = !0;
      for (const ov of ev)
        if (!ov.label) {
          iv = !1;
          break;
        }
      if (!iv)
        try {
          this.logger.info("attempting to trigger media device labels since they are hidden");
          const ov = yield this.deviceLabelTrigger();
          ev = yield navigator.mediaDevices.enumerateDevices();
          for (const av of ov.getTracks())
            av.stop();
        } catch {
          this.logger.info("unable to get media device labels");
        }
      this.logger.debug(`Update device info cache with devices: ${JSON.stringify(ev)}`), this.deviceInfoCache = ev;
    });
  }
  listCachedDevicesOfKind(tv) {
    const ev = [];
    for (const iv of this.deviceInfoCache)
      iv.kind === tv && ev.push(iv);
    return ev;
  }
  handleDeviceChange() {
    return __awaiter$M(this, void 0, void 0, function* () {
      if (this.deviceInfoCache === null)
        return;
      if (this.alreadyHandlingDeviceChange) {
        AsyncScheduler_1$4.default.nextTick(() => {
          this.handleDeviceChange();
        });
        return;
      }
      this.alreadyHandlingDeviceChange = !0;
      const tv = this.listCachedDevicesOfKind("audioinput"), ev = this.listCachedDevicesOfKind("videoinput"), iv = this.listCachedDevicesOfKind("audiooutput");
      yield this.updateDeviceInfoCacheFromBrowser();
      const ov = this.listCachedDevicesOfKind("audioinput"), av = this.listCachedDevicesOfKind("videoinput"), sv = this.listCachedDevicesOfKind("audiooutput");
      this.forEachObserver((lv) => {
        this.areDeviceListsEqual(tv, ov) || Types_1$8.Maybe.of(lv.audioInputsChanged).map((uv) => uv.bind(lv)(ov)), this.areDeviceListsEqual(ev, av) || Types_1$8.Maybe.of(lv.videoInputsChanged).map((uv) => uv.bind(lv)(av)), this.areDeviceListsEqual(iv, sv) || Types_1$8.Maybe.of(lv.audioOutputsChanged).map((uv) => uv.bind(lv)(sv));
      }), this.alreadyHandlingDeviceChange = !1;
    });
  }
  handleDeviceStreamEnded(tv, ev) {
    return __awaiter$M(this, void 0, void 0, function* () {
      try {
        yield this.chooseInputIntrinsicDevice(tv, null, !1);
      } catch {
        this.logger.error("Failed to choose null device after stream ended.");
      }
      tv === "audio" ? this.forEachObserver((iv) => {
        Types_1$8.Maybe.of(iv.audioInputStreamEnded).map((ov) => ov.bind(iv)(ev));
      }) : this.forEachObserver((iv) => {
        Types_1$8.Maybe.of(iv.videoInputStreamEnded).map((ov) => ov.bind(iv)(ev));
      });
    });
  }
  forEachObserver(tv) {
    for (const ev of this.deviceChangeObservers)
      AsyncScheduler_1$4.default.nextTick(() => {
        this.deviceChangeObservers.has(ev) && tv(ev);
      });
  }
  areDeviceListsEqual(tv, ev) {
    return JSON.stringify(tv.map((iv) => JSON.stringify(iv)).sort()) === JSON.stringify(ev.map((iv) => JSON.stringify(iv)).sort());
  }
  intrinsicDeviceAsMediaStream(tv) {
    return tv && tv.id ? tv : null;
  }
  hasSameMediaStreamId(tv, ev, iv) {
    var ov, av, sv, lv;
    let uv;
    return tv === "audio" ? (uv = iv == null ? void 0 : iv.audio.streamId, !!uv && uv === ((av = (ov = ev.constraints) === null || ov === void 0 ? void 0 : ov.audio) === null || av === void 0 ? void 0 : av.streamId)) : (uv = iv == null ? void 0 : iv.video.streamId, !!uv && uv === ((lv = (sv = ev == null ? void 0 : ev.constraints) === null || sv === void 0 ? void 0 : sv.video) === null || lv === void 0 ? void 0 : lv.streamId));
  }
  hasSameGroupId(tv, ev, iv) {
    if (tv === "")
      return !0;
    const ov = DefaultDeviceController.getIntrinsicDeviceId(iv);
    return this.logger.debug(`Checking deviceIds ${ov} of type ${typeof ov} with groupId ${tv}`), typeof ov == "string" && tv === this.getGroupIdFromDeviceId(ev, ov);
  }
  getGroupIdFromDeviceId(tv, ev) {
    if (this.deviceInfoCache !== null) {
      const iv = this.listCachedDevicesOfKind(`${tv}input`).find((ov) => ov.deviceId === ev);
      if (iv && iv.groupId)
        return this.logger.debug(`GroupId of deviceId ${ev} found in cache is ${iv.groupId}`), iv.groupId;
    } else
      this.logger.error("Device cache is not populated. Please make sure to call list devices first");
    return this.logger.debug(`GroupId of deviceId ${ev} found in cache is empty`), "";
  }
  getActiveDeviceId(tv) {
    if (this.activeDevices[tv] && this.activeDevices[tv].constraints) {
      const iv = (this.activeDevices[tv].constraints.audio || this.activeDevices[tv].constraints.video).deviceId;
      let ov;
      return typeof iv == "string" ? ov = iv : ov = iv.exact, ov;
    }
    return null;
  }
  restartLocalVideoAfterSelection(tv, ev) {
    return __awaiter$M(this, void 0, void 0, function* () {
      !tv && this.boundAudioVideoController && this.boundAudioVideoController.videoTileController.hasStartedLocalVideoTile() && (ev ? (yield this.boundAudioVideoController.replaceLocalVideo(), this.logger.info("successfully replaced video track")) : (this.logger.info("restarting local video to switch to new device"), this.boundAudioVideoController.restartLocalVideo(() => {
      })));
    });
  }
  handleGetUserMediaError(tv, ev) {
    if (!tv)
      throw new GetUserMediaError_1.default(tv);
    switch (tv.name) {
      case "NotReadableError":
      case "TrackStartError":
        throw new NotReadableError_1.default(tv);
      case "NotFoundError":
      case "DevicesNotFoundError":
        throw new NotFoundError_1.default(tv);
      case "NotAllowedError":
      case "PermissionDeniedError":
      case "SecurityError":
        throw ev && ev < DefaultDeviceController.permissionDeniedOriginDetectionThresholdMs ? new PermissionDeniedError_1$1.default(tv, "Permission denied by browser") : new PermissionDeniedError_1$1.default(tv, "Permission denied by user");
      case "OverconstrainedError":
      case "ConstraintNotSatisfiedError":
        throw new OverconstrainedError_1.default(tv);
      case "TypeError":
        throw new TypeError_1.default(tv);
      case "AbortError":
      default:
        throw new GetUserMediaError_1.default(tv);
    }
  }
  releaseActiveDevice(tv) {
    if (!(!tv || !tv.stream)) {
      if (tv.endedCallback) {
        const ev = tv.stream.getTracks()[0];
        ev && ev.removeEventListener("ended", tv.endedCallback);
      }
      delete tv.endedCallback, this.releaseMediaStream(tv.stream), delete tv.stream;
    }
  }
  /**
   * Check whether a device is already selected.
   *
   * @param kind typically 'audio' or 'video'.
   * @param device the device about to be selected.
   * @param selection the existing device selection of this kind.
   * @param proposedConstraints the constraints that will be used when this device is selected.
   * @returns whether `device` matches `selection` — that is, whether this device is already selected.
   */
  matchesDeviceSelection(tv, ev, iv, ov) {
    return iv && iv.stream.active && (this.hasSameMediaStreamId(tv, iv, ov) || iv.groupId !== null && this.hasSameGroupId(iv.groupId, tv, ev)) ? (this.logger.debug(`Compare current device constraint ${JSON.stringify(iv.constraints)} to proposed constraints ${JSON.stringify(ov)}`), iv.matchesConstraints(ov)) : !1;
  }
  chooseInputIntrinsicDevice(tv, ev, iv, ov = !1) {
    var av, sv, lv, uv, cv;
    return __awaiter$M(this, void 0, void 0, function* () {
      this.inputDeviceCount += 1;
      const dv = this.inputDeviceCount;
      if (ev === null && tv === "video") {
        this.lastNoVideoInputDeviceCount = this.inputDeviceCount;
        const Sv = this.activeDevices[tv];
        Sv && (this.releaseActiveDevice(Sv), delete this.activeDevices[tv], this.watchForDeviceChangesIfNecessary());
        return;
      }
      const hv = this.calculateMediaStreamConstraints(tv, ev);
      if (this.matchesDeviceSelection(tv, ev, this.activeDevices[tv], hv)) {
        this.logger.info(`reusing existing ${tv} input device`);
        return;
      }
      this.activeDevices[tv] && this.activeDevices[tv].stream && (tv === "audio" ? this.releaseActiveDevice(this.activeDevices[tv]) : tv === "video" && (this.stopTracksAndRemoveCallbacks("video"), delete this.activeDevices[tv]));
      const pv = Date.now(), yv = new DeviceSelection_1.default();
      try {
        this.logger.info(`requesting new ${tv} device with constraint ${JSON.stringify(hv)}`);
        const Sv = this.intrinsicDeviceAsMediaStream(ev);
        if (tv === "audio" && ev === null)
          yv.stream = DefaultDeviceController.createEmptyAudioDevice(), yv.constraints = null;
        else if (Sv)
          this.logger.info(`using media stream ${Sv.id} for ${tv} device`), yv.stream = Sv, yv.constraints = hv;
        else {
          if (yv.stream = yield navigator.mediaDevices.getUserMedia(hv), yv.constraints = hv, tv === "video" && this.lastNoVideoInputDeviceCount > dv) {
            this.logger.warn(`ignored to get video device for constraints ${JSON.stringify(hv)} as no device was requested`), this.releaseMediaStream(yv.stream);
            return;
          }
          yield this.handleDeviceChange();
          const _v = yv.stream.getTracks()[0];
          yv.endedCallback = () => {
            this.activeDevices[tv] && this.activeDevices[tv].stream === yv.stream && (this.logger.warn(`${tv} input device which was active is no longer available, resetting to null device`), this.handleDeviceStreamEnded(tv, this.getActiveDeviceId(tv)), delete yv.endedCallback);
          }, _v.addEventListener("ended", yv.endedCallback, { once: !0 });
        }
        if (ev !== null) {
          const _v = (av = this.getMediaTrackSettings(yv.stream)) === null || av === void 0 ? void 0 : av.deviceId;
          yv.groupId = _v ? this.getGroupIdFromDeviceId(tv, _v) : "";
        } else
          yv.groupId = "";
        if (tv === "audio") {
          const _v = yv.stream.getAudioTracks()[0];
          if (_v) {
            const Ev = _v.getSettings().deviceId || yv.stream;
            yv.trackMuteCallback = () => {
              this.mediaStreamMuteObserver(Ev, !0);
            }, yv.trackUnmuteCallback = () => {
              this.mediaStreamMuteObserver(Ev, !1);
            }, _v.addEventListener("mute", yv.trackMuteCallback, { once: !1 }), _v.addEventListener("unmute", yv.trackUnmuteCallback, { once: !1 });
          }
        }
      } catch (Sv) {
        let _v;
        if (Sv != null && Sv.name && Sv.message ? _v = `${Sv.name}: ${Sv.message}` : Sv != null && Sv.name ? _v = Sv.name : Sv != null && Sv.message ? _v = Sv.message : _v = "UnknownError", tv === "audio" ? (lv = (sv = this.boundAudioVideoController) === null || sv === void 0 ? void 0 : sv.eventController) === null || lv === void 0 || lv.publishEvent("audioInputFailed", {
          audioInputErrorMessage: _v
        }) : (cv = (uv = this.boundAudioVideoController) === null || uv === void 0 ? void 0 : uv.eventController) === null || cv === void 0 || cv.publishEvent("videoInputFailed", {
          videoInputErrorMessage: _v
        }), this.logger.error(`failed to get ${tv} device for constraints ${JSON.stringify(hv)}: ${_v}`), Sv && "constraint" in Sv && this.logger.error(`Over-constrained by constraint: ${Sv.constraint}`), tv === "audio") {
          this.logger.info(`choosing null ${tv} device instead`);
          try {
            yv.stream = DefaultDeviceController.createEmptyAudioDevice(), yv.constraints = null, yield this.handleNewInputDevice(tv, yv, iv);
          } catch (Ev) {
            this.logger.error(`failed to choose null ${tv} device. ${Ev.name}: ${Ev.message}`);
          }
        }
        this.handleGetUserMediaError(Sv, Date.now() - pv);
      } finally {
        this.watchForDeviceChangesIfNecessary();
      }
      if (this.logger.info(`got ${tv} device for constraints ${JSON.stringify(hv)}`), yield this.handleNewInputDevice(tv, yv, iv, ov), tv === "audio") {
        this.logger.debug("Notifying mute state after selection");
        for (const Sv of yv.stream.getAudioTracks())
          Sv.muted ? yv.trackMuteCallback() : yv.trackUnmuteCallback();
      }
    });
  }
  handleNewInputDevice(tv, ev, iv, ov = !1) {
    return __awaiter$M(this, void 0, void 0, function* () {
      if (this.activeDevices[tv] = ev, this.logger.debug(`Set activeDevice to ${JSON.stringify(ev)}`), this.watchForDeviceChangesIfNecessary(), tv === "video")
        this.chosenVideoInputIsTransformDevice() && (this.logger.info("apply processors to transform"), yield this.chosenVideoTransformDevice.transformStream(this.activeDevices.video.stream)), yield this.restartLocalVideoAfterSelection(iv, ov);
      else if (this.useWebAudio)
        this.attachAudioInputStreamToAudioContext(this.activeDevices[tv].stream);
      else if (this.boundAudioVideoController)
        try {
          yield this.boundAudioVideoController.restartLocalAudio(() => {
          });
        } catch (av) {
          this.logger.info(`cannot replace audio track due to: ${av.message}`);
        }
      else
        this.logger.info("no audio-video controller is bound to the device controller");
    });
  }
  bindAudioOutput() {
    return __awaiter$M(this, void 0, void 0, function* () {
      if (!this.boundAudioVideoController)
        return;
      const tv = this.deviceInfoFromDeviceId("audiooutput", this.audioOutputDeviceId);
      yield this.boundAudioVideoController.audioMixController.bindAudioDevice(tv);
    });
  }
  calculateMediaStreamConstraints(tv, ev) {
    let iv = {};
    ev === "" && (ev = null);
    const ov = this.intrinsicDeviceAsMediaStream(ev);
    return ev === null ? null : (typeof ev == "string" ? this.browserBehavior.requiresNoExactMediaStreamConstraints() && this.browserBehavior.requiresGroupIdMediaStreamConstraints() ? (iv.deviceId = ev, iv.groupId = this.getGroupIdFromDeviceId(tv, ev)) : this.browserBehavior.requiresNoExactMediaStreamConstraints() ? iv.deviceId = ev : iv.deviceId = { exact: ev } : ov ? iv.streamId = ov.id : isMediaDeviceInfo(ev) ? (iv.deviceId = ev.deviceId, iv.groupId = ev.groupId) : iv = ev, tv === "video" && (iv.width = iv.width || {
      ideal: this.videoInputQualitySettings.videoWidth
    }, iv.height = iv.height || {
      ideal: this.videoInputQualitySettings.videoHeight
    }, iv.frameRate = iv.frameRate || {
      ideal: this.videoInputQualitySettings.videoFrameRate
    }), tv === "audio" && this.supportSampleRateConstraint() && (iv.sampleRate = { ideal: DefaultDeviceController.defaultSampleRate }), tv === "audio" && this.supportSampleSizeConstraint() && (iv.sampleSize = { ideal: DefaultDeviceController.defaultSampleSize }), tv === "audio" && this.supportChannelCountConstraint() && (iv.channelCount = { ideal: DefaultDeviceController.defaultChannelCount }), tv === "audio" && (iv = Object.assign({ echoCancellation: !0, googEchoCancellation: !0, googEchoCancellation2: !0, googAutoGainControl: !0, googAutoGainControl2: !0, googNoiseSuppression: !0, googNoiseSuppression2: !0, googHighpassFilter: !0 }, iv)), tv === "audio" ? { audio: iv } : { video: iv });
  }
  deviceInfoFromDeviceId(tv, ev) {
    if (this.deviceInfoCache === null)
      return null;
    for (const iv of this.deviceInfoCache)
      if (iv.kind === tv && iv.deviceId === ev)
        return iv;
    return null;
  }
  acquireInputStream(tv) {
    return __awaiter$M(this, void 0, void 0, function* () {
      if (tv === "audio" && this.useWebAudio)
        return this.getMediaStreamDestinationNode().stream;
      if (tv === "video" && this.chosenVideoInputIsTransformDevice())
        return this.chosenVideoTransformDevice.outputMediaStream;
      let ev = null;
      if (this.activeDevices[tv]) {
        this.logger.info(`checking whether existing ${tv} input device can be reused`);
        const iv = this.activeDevices[tv];
        ev = iv.constraints ? iv.constraints[tv] : null;
      } else if (tv === "audio")
        this.logger.info(`no ${tv} device chosen, creating empty ${tv} device`);
      else
        throw this.logger.error(`no ${tv} device chosen, stopping local video tile`), this.boundAudioVideoController.videoTileController.stopLocalVideoTile(), new Error(`no ${tv} device chosen, stopping local video tile`);
      try {
        yield this.chooseInputIntrinsicDevice(tv, ev, !0);
      } catch (iv) {
        throw this.logger.error(`unable to acquire ${tv} device`), iv instanceof PermissionDeniedError_1$1.default ? iv : new GetUserMediaError_1.default(iv, `unable to acquire ${tv} device`);
      }
      return this.activeDevices[tv].stream;
    });
  }
  hasAppliedTransform() {
    return !!this.transform;
  }
  isMediaStreamReusableByDeviceId(tv, ev) {
    if (!tv || !tv.active || !ev)
      return !1;
    if (ev.id)
      return tv.id === ev.id;
    const iv = this.getMediaTrackSettings(tv);
    if (!iv.deviceId)
      return !1;
    const ov = DefaultDeviceController.getIntrinsicDeviceId(ev);
    return typeof ov == "string" ? iv.deviceId === ov : !1;
  }
  getMediaTrackSettings(tv) {
    var ev;
    return (ev = tv.getTracks()[0]) === null || ev === void 0 ? void 0 : ev.getSettings();
  }
  reconnectAudioInputs() {
    if (!this.audioInputSourceNode)
      return;
    this.audioInputSourceNode.disconnect();
    const tv = this.getMediaStreamOutputNode();
    this.audioInputSourceNode.connect(tv);
  }
  setTransform(tv, ev) {
    var iv, ov;
    (ov = (iv = this.transform) === null || iv === void 0 ? void 0 : iv.nodes) === null || ov === void 0 || ov.end.disconnect(), this.transform = { nodes: ev, device: tv };
    const av = ev == null ? void 0 : ev.end, sv = this.getMediaStreamDestinationNode();
    this.logger.debug(`Connecting transform node ${av} to destination ${sv}.`), av == null || av.connect(sv), this.reconnectAudioInputs();
  }
  removeTransform() {
    var tv;
    const ev = this.transform;
    if (ev)
      return (tv = this.transform.nodes) === null || tv === void 0 || tv.end.disconnect(), this.transform = void 0, this.reconnectAudioInputs(), ev;
  }
  attachAudioInputStreamToAudioContext(tv) {
    var ev;
    (ev = this.audioInputSourceNode) === null || ev === void 0 || ev.disconnect(), this.audioInputSourceNode = DefaultDeviceController.getAudioContext().createMediaStreamSource(tv);
    const iv = this.getMediaStreamOutputNode();
    this.audioInputSourceNode.connect(iv);
  }
  /**
   * Return the end of the Web Audio graph: post-transform audio.
   */
  getMediaStreamDestinationNode() {
    return this.audioInputDestinationNode || (this.audioInputDestinationNode = DefaultDeviceController.getAudioContext().createMediaStreamDestination()), this.audioInputDestinationNode;
  }
  /**
   * Return the start of the Web Audio graph: pre-transform audio.
   * If there's no transform node, this is the destination node.
   */
  getMediaStreamOutputNode() {
    var tv, ev;
    return ((ev = (tv = this.transform) === null || tv === void 0 ? void 0 : tv.nodes) === null || ev === void 0 ? void 0 : ev.start) || this.getMediaStreamDestinationNode();
  }
  static getAudioContext() {
    if (!DefaultDeviceController.audioContext) {
      const tv = {};
      navigator.mediaDevices.getSupportedConstraints().sampleRate && (tv.sampleRate = DefaultDeviceController.defaultSampleRate), DefaultDeviceController.audioContext = new (window.AudioContext || window.webkitAudioContext)(tv);
    }
    return DefaultDeviceController.audioContext;
  }
  static closeAudioContext() {
    if (DefaultDeviceController.audioContext)
      try {
        DefaultDeviceController.audioContext.close();
      } catch {
      }
    DefaultDeviceController.audioContext = null;
  }
  supportSampleRateConstraint() {
    return this.useWebAudio && !!navigator.mediaDevices.getSupportedConstraints().sampleRate;
  }
  supportSampleSizeConstraint() {
    return this.useWebAudio && !!navigator.mediaDevices.getSupportedConstraints().sampleSize;
  }
  supportChannelCountConstraint() {
    return this.useWebAudio && !!navigator.mediaDevices.getSupportedConstraints().channelCount;
  }
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  trace(tv, ev, iv) {
    let ov = `API/DefaultDeviceController/${tv}`;
    typeof ev < "u" && (ov += ` ${JSON.stringify(ev)}`), typeof iv < "u" && (ov += ` -> ${JSON.stringify(iv)}`), this.logger.info(ov);
  }
}
DefaultDeviceController$1.default = DefaultDeviceController;
DefaultDeviceController.permissionDeniedOriginDetectionThresholdMs = 500;
DefaultDeviceController.defaultVideoWidth = 960;
DefaultDeviceController.defaultVideoHeight = 540;
DefaultDeviceController.defaultVideoFrameRate = 15;
DefaultDeviceController.defaultVideoMaxBandwidthKbps = 1400;
DefaultDeviceController.defaultSampleRate = 48e3;
DefaultDeviceController.defaultSampleSize = 16;
DefaultDeviceController.defaultChannelCount = 1;
DefaultDeviceController.audioContext = null;
function isMediaDeviceInfo(rv) {
  return typeof rv == "object" && "deviceId" in rv && "groupId" in rv && "kind" in rv && "label" in rv;
}
var __awaiter$L = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(ContentShareMediaStreamBroker$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1$7 = DefaultBrowserBehavior$1, DefaultDeviceController_1$1 = DefaultDeviceController$1;
class ContentShareMediaStreamBroker {
  constructor(tv) {
    this.logger = tv;
  }
  get mediaStream() {
    return this._mediaStream;
  }
  set mediaStream(tv) {
    this._mediaStream = tv;
  }
  acquireAudioInputStream() {
    return __awaiter$L(this, void 0, void 0, function* () {
      return this._mediaStream.getAudioTracks().length === 0 ? (this.logger.info("No audio stream available. Synthesizing an audio stream."), DefaultDeviceController_1$1.default.synthesizeAudioDevice(0)) : this._mediaStream;
    });
  }
  acquireVideoInputStream() {
    return __awaiter$L(this, void 0, void 0, function* () {
      return this._mediaStream;
    });
  }
  releaseMediaStream(tv) {
    this.logger.info("release media stream called");
  }
  acquireDisplayInputStream(tv) {
    return __awaiter$L(this, void 0, void 0, function* () {
      return tv && tv.video && // @ts-ignore
      tv.video.mandatory && // @ts-ignore
      tv.video.mandatory.chromeMediaSource && // @ts-ignore
      tv.video.mandatory.chromeMediaSourceId ? navigator.mediaDevices.getUserMedia(tv) : navigator.mediaDevices.getDisplayMedia(tv);
    });
  }
  bindToAudioVideoController(tv) {
    throw new Error("unsupported");
  }
  acquireScreenCaptureDisplayInputStream(tv, ev) {
    return __awaiter$L(this, void 0, void 0, function* () {
      return this.acquireDisplayInputStream(this.screenCaptureDisplayMediaConstraints(tv, ev));
    });
  }
  screenCaptureDisplayMediaConstraints(tv, ev) {
    return {
      audio: !!(!tv && new DefaultBrowserBehavior_1$7.default().getDisplayMediaAudioCaptureSupport()),
      video: Object.assign(Object.assign({}, !tv && {
        frameRate: {
          max: ev || ContentShareMediaStreamBroker.defaultFrameRate
        }
      }), tv && {
        mandatory: {
          chromeMediaSource: "desktop",
          chromeMediaSourceId: tv,
          maxFrameRate: ev || ContentShareMediaStreamBroker.defaultFrameRate
        }
      })
    };
  }
  toggleMediaStream(tv) {
    let ev = !1;
    if (this.mediaStream)
      for (let iv = 0; iv < this.mediaStream.getTracks().length; iv++)
        this.mediaStream.getTracks()[iv].enabled !== tv && (this.mediaStream.getTracks()[iv].enabled = tv, ev = !0);
    return ev;
  }
  cleanup() {
    if (this.mediaStream)
      for (let tv = 0; tv < this.mediaStream.getTracks().length; tv++)
        this.mediaStream.getTracks()[tv].stop();
    this.mediaStream = null;
  }
}
ContentShareMediaStreamBroker$1.default = ContentShareMediaStreamBroker;
ContentShareMediaStreamBroker.defaultFrameRate = 15;
var CreatePeerConnectionTask$1 = {}, __awaiter$K = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(CreatePeerConnectionTask$1, "__esModule", { value: !0 });
const BaseTask_1$m = BaseTask$1;
class CreatePeerConnectionTask extends BaseTask_1$m.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "CreatePeerConnectionTask", this.removeTrackAddedEventListener = null, this.removeTrackRemovedEventListeners = {}, this.trackEvents = [
      "ended",
      "mute",
      "unmute",
      "isolationchange",
      "overconstrained"
    ], this.removeVideoTrackEventListeners = {}, this.trackAddedHandler = (ev) => {
      const iv = ev.track;
      if (this.context.logger.info(`received track event: kind=${iv.kind} id=${iv.id} label=${iv.label}`), ev.transceiver && ev.transceiver.currentDirection === "inactive")
        return;
      if (ev.streams.length === 0) {
        this.context.logger.warn("Track event but no stream");
        return;
      }
      const ov = ev.streams[0];
      iv.kind === "audio" ? this.context.audioMixController.bindAudioStream(ov) : iv.kind === "video" && !this.trackIsVideoInput(iv) && this.addRemoteVideoTrack(iv, ov);
    };
  }
  removeObserver() {
    this.removeTrackAddedEventListener && this.removeTrackAddedEventListener();
    for (const tv in this.removeTrackRemovedEventListeners)
      this.removeTrackRemovedEventListeners[tv]();
  }
  addPeerConnectionEventLogger() {
    const tv = this.context.peer;
    tv.addEventListener("connectionstatechange", () => {
      this.context.logger.info(`peer connection state changed: ${tv.connectionState}`);
    }), tv.addEventListener("negotiationneeded", () => {
      this.context.logger.info("peer connection negotiation is needed");
    }), tv.addEventListener("icegatheringstatechange", () => {
      this.context.logger.info(`peer connection ice gathering state changed: ${tv.iceGatheringState}`);
    }), tv.addEventListener("icecandidate", (ev) => {
      this.context.logger.info(`peer connection ice candidate: ${ev.candidate ? ev.candidate.candidate : "(null)"}`);
    }), tv.addEventListener("iceconnectionstatechange", () => {
      this.context.logger.info(`peer connection ice connection state changed: ${tv.iceConnectionState}`);
    });
  }
  run() {
    return __awaiter$K(this, void 0, void 0, function* () {
      this.context.removableObservers.push(this);
      const ev = this.context.turnCredentials && this.context.turnCredentials.uris.length > 0 ? {
        iceServers: [
          {
            urls: this.context.turnCredentials.uris,
            username: this.context.turnCredentials.username,
            credential: this.context.turnCredentials.password,
            credentialType: "password"
          }
        ],
        iceTransportPolicy: "relay"
      } : {};
      ev.bundlePolicy = this.context.browserBehavior.requiresBundlePolicy(), ev.sdpSemantics = this.context.browserBehavior.requiresUnifiedPlan() ? "unified-plan" : "plan-b", this.logger.info(`SDP semantics are ${ev.sdpSemantics}`);
      const iv = {
        optional: [{ googCpuOveruseDetection: !1 }, { googCombinedAudioVideoBwe: !0 }]
      };
      this.context.peer ? this.context.logger.info("reusing peer connection") : (this.context.logger.info("creating new peer connection"), this.context.peer = new RTCPeerConnection(ev, iv), this.addPeerConnectionEventLogger()), this.removeTrackAddedEventListener = () => {
        this.context.peer && this.context.peer.removeEventListener("track", this.trackAddedHandler), this.removeTrackAddedEventListener = null;
      }, this.context.peer.addEventListener("track", this.trackAddedHandler);
    });
  }
  trackIsVideoInput(tv) {
    if (this.context.transceiverController.useTransceivers())
      return this.logger.debug(() => "getting video track type (unified-plan)"), this.context.transceiverController.trackIsVideoInput(tv);
    if (this.logger.debug(() => "getting video track type (plan-b)"), this.context.activeVideoInput) {
      const ev = this.context.activeVideoInput.getVideoTracks();
      if (ev && ev.length > 0 && ev[0].id === tv.id)
        return !0;
    }
    return !1;
  }
  addRemoteVideoTrack(tv, ev) {
    var iv;
    let ov = ev.id;
    this.context.browserBehavior.requiresUnifiedPlan() || (ev = new MediaStream([tv]), ov = tv.id);
    const av = this.context.videoStreamIndex.attendeeIdForTrack(ov);
    let sv, lv;
    if (this.context.videoTileController.getVideoTileForAttendeeId ? (lv = this.context.videoTileController.getVideoTileForAttendeeId(av), sv = !!(!((iv = lv == null ? void 0 : lv.state()) === null || iv === void 0) && iv.boundVideoStream)) : sv = this.context.videoTileController.haveVideoTileForAttendeeId(av), sv) {
      this.context.logger.info(`Not adding remote track. Already have tile for attendeeId:  ${av}`);
      return;
    }
    lv || (lv = this.context.videoTileController.addVideoTile(), this.logger.info(`Created video tile ${lv.id()}`));
    let uv = this.context.videoStreamIndex.streamIdForTrack(ov);
    typeof uv > "u" && (this.logger.warn(`stream not found for tile=${lv.id()} track=${ov}`), uv = null);
    for (let _v = 0; _v < this.trackEvents.length; _v++) {
      const Ev = this.trackEvents[_v], wv = ev.getVideoTracks();
      if (wv && wv.length) {
        const xv = wv[0], Cv = () => {
          this.context.logger.info(`received the ${Ev} event for tile=${lv.id()} id=${tv.id} streamId=${uv}`), Ev === "ended" && this.context.browserBehavior.requiresUnifiedPlan() && this.removeRemoteVideoTrack(tv, lv.state());
        };
        xv.addEventListener(Ev, Cv), this.removeVideoTrackEventListeners[tv.id] || (this.removeVideoTrackEventListeners[tv.id] = []), this.removeVideoTrackEventListeners[tv.id].push(() => {
          xv.removeEventListener(Ev, Cv);
        });
      }
    }
    let cv, dv;
    if (tv.getSettings) {
      const _v = tv.getSettings();
      cv = _v.width, dv = _v.height;
    } else {
      const _v = tv.getCapabilities();
      cv = _v.width, dv = _v.height;
    }
    const hv = this.context.videoStreamIndex.externalUserIdForTrack(ov);
    lv.bindVideoStream(av, !1, ev, cv, dv, uv, hv), this.logger.info(`video track added, use tile=${lv.id()} track=${ov} streamId=${uv}`);
    let pv = "removetrack", yv = ev;
    this.context.browserBehavior.requiresUnifiedPlan() || (this.logger.debug(() => "updating end event and target track (plan-b)"), pv = "ended", yv = tv);
    const Sv = () => this.removeRemoteVideoTrack(tv, lv.state());
    this.removeTrackRemovedEventListeners[tv.id] = () => {
      yv.removeEventListener(pv, Sv), delete this.removeTrackRemovedEventListeners[tv.id];
    }, yv.addEventListener(pv, Sv);
  }
  removeRemoteVideoTrack(tv, ev) {
    if (this.removeTrackRemovedEventListeners.hasOwnProperty(tv.id)) {
      this.removeTrackRemovedEventListeners[tv.id]();
      for (const iv of this.removeVideoTrackEventListeners[tv.id])
        iv();
      delete this.removeVideoTrackEventListeners[tv.id];
    }
    this.logger.info(`video track ended, removing tile=${ev.tileId} id=${tv.id} stream=${ev.streamId}`), ev.streamId ? this.context.videosPaused.remove(ev.streamId) : this.logger.warn(`no stream found for tile=${ev.tileId}`), this.context.videoTileController.removeVideoTile(ev.tileId);
  }
}
CreatePeerConnectionTask$1.default = CreatePeerConnectionTask;
CreatePeerConnectionTask.REMOVE_HANDLER_INTERVAL_MS = 1e4;
var CreateSDPTask$1 = {}, MeetingSessionStatusCode = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.MeetingSessionStatusCode = void 0;
  var tv;
  (function(ev) {
    ev[ev.OK = 0] = "OK", ev[ev.Left = 1] = "Left", ev[ev.AudioJoinedFromAnotherDevice = 2] = "AudioJoinedFromAnotherDevice", ev[ev.AudioDisconnectAudio = 3] = "AudioDisconnectAudio", ev[ev.AudioAuthenticationRejected = 4] = "AudioAuthenticationRejected", ev[ev.AudioCallAtCapacity = 5] = "AudioCallAtCapacity", ev[ev.AudioCallEnded = 6] = "AudioCallEnded", ev[ev.TURNMeetingEnded = 6] = "TURNMeetingEnded", ev[ev.MeetingEnded = 6] = "MeetingEnded", ev[ev.AudioInternalServerError = 7] = "AudioInternalServerError", ev[ev.AudioServiceUnavailable = 8] = "AudioServiceUnavailable", ev[ev.AudioDisconnected = 9] = "AudioDisconnected", ev[ev.VideoCallSwitchToViewOnly = 10] = "VideoCallSwitchToViewOnly", ev[ev.VideoCallAtSourceCapacity = 11] = "VideoCallAtSourceCapacity", ev[ev.SignalingBadRequest = 12] = "SignalingBadRequest", ev[ev.SignalingInternalServerError = 13] = "SignalingInternalServerError", ev[ev.SignalingRequestFailed = 14] = "SignalingRequestFailed", ev[ev.StateMachineTransitionFailed = 15] = "StateMachineTransitionFailed", ev[ev.ICEGatheringTimeoutWorkaround = 16] = "ICEGatheringTimeoutWorkaround", ev[ev.ConnectionHealthReconnect = 17] = "ConnectionHealthReconnect", ev[ev.RealtimeApiFailed = 18] = "RealtimeApiFailed", ev[ev.TaskFailed = 19] = "TaskFailed", ev[ev.AudioDeviceSwitched = 20] = "AudioDeviceSwitched", ev[ev.IncompatibleSDP = 21] = "IncompatibleSDP", ev[ev.TURNCredentialsForbidden = 22] = "TURNCredentialsForbidden", ev[ev.NoAttendeePresent = 23] = "NoAttendeePresent", ev[ev.AudioAttendeeRemoved = 24] = "AudioAttendeeRemoved", ev[ev.AudioVideoWasRemovedFromPrimaryMeeting = 25] = "AudioVideoWasRemovedFromPrimaryMeeting";
  })(tv = rv.MeetingSessionStatusCode || (rv.MeetingSessionStatusCode = {})), rv.default = tv;
})(MeetingSessionStatusCode);
var DefaultSDP$1 = {}, SDPCandidateType = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.SDPCandidateType = void 0;
  var tv;
  (function(ev) {
    ev.Host = "host", ev.ServerReflexive = "srflx", ev.PeerReflexive = "prflx", ev.Relay = "relay";
  })(tv = rv.SDPCandidateType || (rv.SDPCandidateType = {})), rv.default = tv;
})(SDPCandidateType);
var SDPMediaSection$1 = {};
Object.defineProperty(SDPMediaSection$1, "__esModule", { value: !0 });
class SDPMediaSection {
}
SDPMediaSection$1.default = SDPMediaSection;
Object.defineProperty(DefaultSDP$1, "__esModule", { value: !0 });
const SDPCandidateType_1 = SDPCandidateType, SDPMediaSection_1 = SDPMediaSection$1;
class DefaultSDP {
  constructor(tv) {
    this.sdp = tv;
  }
  clone() {
    return new DefaultSDP(this.sdp);
  }
  static isRTPCandidate(tv) {
    const ev = /candidate[:](\S+) (\d+)/g.exec(tv);
    return !(ev === null || ev[2] !== "1");
  }
  static linesToSDP(tv) {
    return new DefaultSDP(tv.join(DefaultSDP.CRLF));
  }
  static candidateTypeFromString(tv) {
    switch (tv) {
      case SDPCandidateType_1.default.Host:
        return SDPCandidateType_1.default.Host;
      case SDPCandidateType_1.default.ServerReflexive:
        return SDPCandidateType_1.default.ServerReflexive;
      case SDPCandidateType_1.default.PeerReflexive:
        return SDPCandidateType_1.default.PeerReflexive;
      case SDPCandidateType_1.default.Relay:
        return SDPCandidateType_1.default.Relay;
    }
    return null;
  }
  static candidateType(tv) {
    const ev = /a[=]candidate[:].* typ ([a-z]+) /g.exec(tv);
    return ev === null ? null : DefaultSDP.candidateTypeFromString(ev[1]);
  }
  static mediaType(tv) {
    const ev = /m=(audio|video)/g.exec(tv);
    if (ev !== null)
      return ev[1];
  }
  static mid(tv) {
    if (tv.includes("a=mid:"))
      return tv.replace(/^(a=mid:)/, "");
  }
  static direction(tv) {
    const ev = /a=(sendrecv|sendonly|recvonly|inactive)/g.exec(tv);
    if (ev !== null)
      return ev[1];
  }
  static splitLines(tv) {
    return tv.trim().split(`
`).map((ev) => ev.trim());
  }
  static splitSections(tv) {
    return tv.split(`
m=`).map((iv, ov) => (ov > 0 ? "m=" + iv : iv).trim() + DefaultSDP.CRLF);
  }
  static findActiveCameraSection(tv) {
    let ev = 0, iv = !1;
    for (const ov of tv) {
      if (/^m=video/.test(ov) && ov.indexOf("sendrecv") > -1) {
        iv = !0;
        break;
      }
      ev++;
    }
    return iv === !1 && (ev = -1), ev;
  }
  static parseSSRCMedia(tv) {
    const ev = tv.indexOf(" ");
    let iv = 0, ov = "", av = "";
    iv = DefaultSDP.extractSSRCFromAttributeLine(tv);
    const sv = tv.indexOf(":", ev);
    return sv > -1 ? (ov = tv.substr(ev + 1, sv - ev - 1), av = tv.substr(sv + 1)) : ov = tv.substr(ev + 1), [iv, ov, av];
  }
  // a=ssrc-group:<semantics> <ssrc-id> ...
  static extractSSRCsFromFIDGroupLine(tv) {
    return /^a=ssrc-group:FID\s(.+)/.exec(tv)[1];
  }
  // a=ssrc:<ssrc-id> <attribute> or a=ssrc:<ssrc-id> <attribute>:<value>, ssrc-id is a 32bit integer
  static extractSSRCFromAttributeLine(tv) {
    const ev = /^a=ssrc:([0-9]+)\s/.exec(tv);
    return ev === null ? 0 : parseInt(ev[1], 10);
  }
  static matchPrefix(tv, ev) {
    return DefaultSDP.splitLines(tv).filter((iv) => iv.indexOf(ev) === 0);
  }
  lines() {
    return this.sdp.split(DefaultSDP.CRLF);
  }
  hasVideo() {
    return /^m=video/gm.exec(this.sdp) !== null;
  }
  hasCandidates() {
    return /a[=]candidate[:]/g.exec(this.sdp) !== null;
  }
  hasCandidatesForAllMLines() {
    return !(this.sdp.indexOf("c=IN IP4 0.0.0.0") > -1);
  }
  withBundleAudioVideo() {
    const tv = this.lines(), ev = [];
    for (const iv of tv) {
      const ov = iv.replace(/^a=group:BUNDLE audio$/, "a=group:BUNDLE audio video");
      if (ov !== iv) {
        ev.push(ov);
        continue;
      }
      ev.push(iv);
    }
    return DefaultSDP.linesToSDP(ev);
  }
  copyVideo(tv) {
    const ev = tv.split(DefaultSDP.CRLF), iv = DefaultSDP.splitLines(this.sdp);
    let ov = !1;
    for (const av of ev)
      /^m=video/.test(av) ? ov = !0 : /^m=/.test(av) && (ov = !1), ov && iv.push(av);
    return DefaultSDP.linesToSDP(iv);
  }
  withoutCandidateType(tv) {
    return DefaultSDP.linesToSDP(this.lines().filter((ev) => DefaultSDP.candidateType(ev) !== tv));
  }
  withoutServerReflexiveCandidates() {
    return this.withoutCandidateType(SDPCandidateType_1.default.ServerReflexive);
  }
  withBandwidthRestriction(tv, ev) {
    const iv = this.lines(), ov = [];
    for (const av of iv)
      ov.push(av), /^m=video/.test(av) && (ev ? ov.push(`b=TIAS:${tv * 1e3}`) : ov.push(`b=AS:${tv}`));
    return DefaultSDP.linesToSDP(ov);
  }
  withAudioMaxAverageBitrate(tv) {
    if (!tv)
      return this.clone();
    tv = Math.trunc(Math.min(Math.max(tv, DefaultSDP.rfc7587LowestBitrate), DefaultSDP.rfc7587HighestBitrate));
    const ev = this.lines(), iv = DefaultSDP.findOpusFmtpAttributes(ev), ov = DefaultSDP.updateOpusFmtpAttributes(ev, iv, [
      `maxaveragebitrate=${tv}`
    ]);
    return DefaultSDP.linesToSDP(ov);
  }
  withStereoAudio() {
    const tv = this.lines(), ev = DefaultSDP.findOpusFmtpAttributes(tv), iv = DefaultSDP.updateOpusFmtpAttributes(tv, ev, [
      "stereo=1",
      "sprop-stereo=1"
    ]);
    return DefaultSDP.linesToSDP(iv);
  }
  /**
   * Here we loop through each line in the SDP
   * and construct an array containing the fmtp
   * attribute for all the audio m lines that use
   * the opus codec. If it doesn't use opus codec
   * we add null to the array which tells
   * updateOpusFmtpAttributes that no update is
   * needed for that particular fmtp attribute line
   */
  static findOpusFmtpAttributes(tv) {
    const ev = /^a=rtpmap:\s*(\d+)\s+opus\/48000/;
    let iv = !1;
    const ov = [];
    for (const av of tv)
      if (av.startsWith("m=audio") && (ov.push(null), iv = !0), av.startsWith("m=video") && (iv = !1), iv) {
        const sv = ev.exec(av);
        sv !== null && (ov[ov.length - 1] = `a=fmtp:${sv[1]} `);
      }
    return ov;
  }
  /**
   * Update the fmtp lines in each audio m section
   * that correspond to the opus codec with the parameters
   * specifief in additionalParams
   */
  static updateOpusFmtpAttributes(tv, ev, iv) {
    const ov = [];
    let av = 0, sv = null;
    for (const lv of tv)
      if (lv.startsWith("m=audio") && (sv = ev[av], av++), lv.startsWith("m=video") && (sv = null), sv && lv.startsWith(sv)) {
        const uv = lv.slice(sv.length).split(";"), cv = [];
        for (const dv of uv)
          iv.findIndex((pv) => pv.startsWith(dv.split("=")[0])) < 0 && cv.push(dv);
        for (const dv of iv)
          cv.push(dv);
        ov.push(sv + cv.join(";"));
      } else
        ov.push(lv);
    return ov;
  }
  // TODO: will remove this soon.
  withUnifiedPlanFormat() {
    let tv = this.sdp;
    return tv.includes("mozilla") ? this.clone() : (tv = tv.replace("o=-", "o=mozilla-chrome"), new DefaultSDP(tv));
  }
  getUniqueRtpHeaderExtensionId(tv) {
    const ev = [];
    for (const ov of tv)
      if (/^a=extmap:/.test(ov.trim())) {
        const sv = +ov.split("a=extmap:")[1].split(" ")[0];
        ev.push(sv);
      }
    ev.sort((ov, av) => ov - av);
    let iv = 0;
    for (const ov of ev) {
      if (ov - iv > 1)
        return iv + 1;
      iv = ov;
    }
    return iv === 14 ? -1 : iv + 1;
  }
  // negotiate with the back end to determine whether to use layers allocation header extension
  // to avoid resubscribing to preemptively turn off simulcast streams or to switch layers
  // this will not add the packet overhead unless negotiated to avoid waste
  withVideoLayersAllocationRtpHeaderExtension() {
    const tv = DefaultSDP.splitSections(this.sdp), ev = [];
    for (let ov of tv) {
      if (/^m=video/.test(ov)) {
        const av = DefaultSDP.splitLines(ov), sv = [], lv = this.getUniqueRtpHeaderExtensionId(av);
        if (lv === -1) {
          ev.push(ov);
          continue;
        }
        for (const uv of av)
          if (sv.push(uv), /^a=sendrecv/.test(uv.trim())) {
            const cv = "a=extmap:" + lv + " http://www.webrtc.org/experiments/rtp-hdrext/video-layers-allocation00";
            sv.push(cv);
          }
        ov = sv.join(DefaultSDP.CRLF) + DefaultSDP.CRLF;
      }
      ev.push(ov);
    }
    const iv = ev.join("");
    return new DefaultSDP(iv);
  }
  preferH264IfExists() {
    const tv = this.sdp, ev = DefaultSDP.splitSections(tv);
    if (ev.length < 2)
      return new DefaultSDP(this.sdp);
    const iv = [];
    for (let av = 0; av < ev.length; av++) {
      if (/^m=video/.test(ev[av])) {
        const sv = DefaultSDP.splitLines(ev[av]);
        let lv = 0, uv = 0;
        if (sv.forEach((cv) => {
          if (/^a=rtpmap:/.test(cv)) {
            const dv = /^a=rtpmap:([0-9]+)\s/.exec(cv);
            cv.toLowerCase().includes("vp8") ? lv = parseInt(dv[1], 10) : cv.toLowerCase().includes("h264") && (uv = parseInt(dv[1], 10));
          }
        }), lv !== 0 && uv !== 0) {
          const cv = sv[0].split(" ");
          let dv = -1, hv = -1;
          for (let pv = 3; pv < cv.length; pv++) {
            const yv = parseInt(cv[pv], 10);
            yv === lv ? dv = pv : yv === uv && (hv = pv);
          }
          dv < hv && (cv[dv] = uv.toString(), cv[hv] = lv.toString()), sv[0] = cv.join(" ");
        }
        ev[av] = sv.join(DefaultSDP.CRLF) + DefaultSDP.CRLF;
      }
      iv.push(ev[av]);
    }
    const ov = iv.join("");
    return new DefaultSDP(ov);
  }
  withOldFashionedMungingSimulcast(tv) {
    if (tv < 2)
      return this.clone();
    const ev = this.sdp, iv = DefaultSDP.splitSections(ev);
    if (iv.length < 2)
      return new DefaultSDP(this.sdp);
    const ov = DefaultSDP.findActiveCameraSection(iv);
    if (ov === -1)
      return new DefaultSDP(this.sdp);
    let av = "", sv = "";
    DefaultSDP.matchPrefix(iv[ov], "a=ssrc:").forEach((Ev) => {
      const wv = DefaultSDP.parseSSRCMedia(Ev);
      wv[1] === "cname" ? av = wv[2] : wv[1] === "msid" && (sv = wv[2]);
    });
    const lv = DefaultSDP.matchPrefix(iv[ov], "a=ssrc-group:FID ");
    if (av === "" || sv === "" || lv.length < 1)
      return new DefaultSDP(this.sdp);
    const uv = DefaultSDP.extractSSRCsFromFIDGroupLine(lv[0]), cv = iv[ov].trim().split(DefaultSDP.CRLF).filter((Ev) => Ev.indexOf("a=ssrc:") !== 0 && Ev.indexOf("a=ssrc-group:") !== 0), dv = [], [hv, pv] = uv.split(" ").map((Ev) => parseInt(Ev, 10));
    let yv = hv, Sv = pv;
    for (let Ev = 0; Ev < tv; Ev++)
      cv.push("a=ssrc:" + yv + " cname:" + av), cv.push("a=ssrc:" + yv + " msid:" + sv), cv.push("a=ssrc:" + Sv + " cname:" + av), cv.push("a=ssrc:" + Sv + " msid:" + sv), cv.push("a=ssrc-group:FID " + yv + " " + Sv), dv.push(yv), yv = yv + 1, Sv = yv + 1;
    cv.push("a=ssrc-group:SIM " + dv.join(" ")), iv[ov] = cv.join(DefaultSDP.CRLF) + DefaultSDP.CRLF;
    const _v = iv.join("");
    return new DefaultSDP(_v);
  }
  ssrcForVideoSendingSection() {
    const tv = this.sdp, ev = DefaultSDP.splitSections(tv);
    if (ev.length < 2)
      return "";
    const iv = DefaultSDP.findActiveCameraSection(ev);
    if (iv === -1)
      return "";
    const ov = DefaultSDP.matchPrefix(ev[iv], "a=ssrc-group:FID ");
    if (ov.length < 1)
      return "";
    const av = DefaultSDP.extractSSRCsFromFIDGroupLine(ov[0]), [sv] = av.split(" ").map((lv) => parseInt(lv, 10));
    return sv.toString();
  }
  videoSendSectionHasDifferentSSRC(tv) {
    const ev = this.ssrcForVideoSendingSection(), iv = tv.ssrcForVideoSendingSection();
    if (ev === "" || iv === "")
      return !1;
    const ov = parseInt(ev, 10), av = parseInt(iv, 10);
    return ov !== av;
  }
  removeH264SupportFromSendSection() {
    const tv = this.sdp, ev = DefaultSDP.splitSections(tv), iv = DefaultSDP.findActiveCameraSection(ev);
    if (iv === -1)
      return new DefaultSDP(this.sdp);
    const ov = ev[iv], av = DefaultSDP.splitLines(ov), sv = [], lv = /* @__PURE__ */ new Map();
    av.forEach((hv) => {
      if (/^a=rtpmap:/.test(hv)) {
        const pv = /^a=rtpmap:([0-9]+)\s/.exec(hv);
        pv && hv.toLowerCase().includes("h264") && sv.push(parseInt(pv[1], 10));
      }
      if (/^a=fmtp:/.test(hv)) {
        const pv = /^a=fmtp:([0-9]+) apt=([0-9]+)/.exec(hv);
        if (pv && pv.length === 3) {
          const yv = parseInt(pv[1], 10), Sv = parseInt(pv[2], 10);
          lv.has(Sv) ? lv.get(Sv).push(yv) : lv.set(Sv, [yv]);
        }
      }
    });
    const uv = /* @__PURE__ */ new Set();
    for (const hv of sv) {
      uv.add(hv);
      const pv = lv.get(hv);
      if (pv)
        for (const yv of pv)
          uv.add(yv);
    }
    if (sv.length > 0) {
      const hv = av[0].split(" ");
      av[0] = hv.filter((pv) => !uv.has(parseInt(pv))).join(" ");
    }
    const cv = av.filter((hv) => {
      if (!hv.includes("rtpmap") && !hv.includes("rtcp-fb") && !hv.includes("fmtp"))
        return !0;
      for (const pv of uv)
        if (hv.includes(pv.toString()))
          return !1;
      return !0;
    });
    ev[iv] = cv.join(DefaultSDP.CRLF) + DefaultSDP.CRLF;
    const dv = ev.join("");
    return new DefaultSDP(dv);
  }
  mediaSections() {
    const tv = DefaultSDP.splitSections(this.sdp);
    if (tv.length < 2)
      return [];
    const ev = [];
    for (let iv = 1; iv < tv.length; iv++) {
      const ov = new SDPMediaSection_1.default(), av = DefaultSDP.splitLines(tv[iv]);
      for (const sv of av) {
        const lv = DefaultSDP.mediaType(sv);
        if (lv !== void 0) {
          ov.mediaType = lv;
          continue;
        }
        const uv = DefaultSDP.direction(sv);
        if (uv !== void 0) {
          ov.direction = uv;
          continue;
        }
        const cv = DefaultSDP.mid(sv);
        if (cv !== void 0) {
          ov.mid = cv;
          continue;
        }
      }
      ev.push(ov);
    }
    return ev;
  }
}
DefaultSDP$1.default = DefaultSDP;
DefaultSDP.CRLF = `\r
`;
DefaultSDP.rfc7587LowestBitrate = 6e3;
DefaultSDP.rfc7587HighestBitrate = 51e4;
var __awaiter$J = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(CreateSDPTask$1, "__esModule", { value: !0 });
const MeetingSessionStatusCode_1$7 = MeetingSessionStatusCode, DefaultSDP_1$4 = DefaultSDP$1, BaseTask_1$l = BaseTask$1;
class CreateSDPTask extends BaseTask_1$l.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "CreateSDPTask";
  }
  cancel() {
    if (this.cancelPromise) {
      const tv = new Error(`canceling ${this.name()}`);
      this.cancelPromise(tv), delete this.cancelPromise;
    }
  }
  sessionUsesAudio() {
    var tv, ev;
    return !!(!((ev = (tv = this.context.meetingSessionConfiguration) === null || tv === void 0 ? void 0 : tv.urls) === null || ev === void 0) && ev.audioHostURL);
  }
  sessionUsesVideo() {
    let ev;
    this.context.transceiverController.useTransceivers() ? ev = this.context.transceiverController.hasVideoInput() : ev = this.context.videoTileController.hasStartedLocalVideoTile();
    const iv = !!this.context.videosToReceive && !this.context.videosToReceive.empty(), ov = ev || iv;
    return this.context.logger.info(`uses video: ${ov} (enabled: true, sending: ${ev}, receiving: ${iv})`), ov;
  }
  run() {
    return __awaiter$J(this, void 0, void 0, function* () {
      const tv = {
        offerToReceiveAudio: this.sessionUsesAudio(),
        offerToReceiveVideo: this.sessionUsesVideo()
      };
      this.logger.info(`peer connection offerOptions: ${JSON.stringify(tv)}`), yield new Promise((ev, iv) => __awaiter$J(this, void 0, void 0, function* () {
        this.cancelPromise = (ov) => {
          iv(ov);
        };
        try {
          if (this.context.sdpOfferInit = yield this.context.peer.createOffer(tv), this.context.logger.info("peer connection created offer"), this.context.previousSdpOffer && new DefaultSDP_1$4.default(this.context.sdpOfferInit.sdp).videoSendSectionHasDifferentSSRC(this.context.previousSdpOffer)) {
            const ov = new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1$7.default.IncompatibleSDP}`);
            this.context.previousSdpOffer = null, iv(ov);
            return;
          }
          ev();
        } catch (ov) {
          iv(ov);
        } finally {
          delete this.cancelPromise;
        }
      }));
    });
  }
}
CreateSDPTask$1.default = CreateSDPTask;
var DataMessage$1 = {};
Object.defineProperty(DataMessage$1, "__esModule", { value: !0 });
class DataMessage {
  constructor(tv, ev, iv, ov, av, sv) {
    this.timestampMs = tv, this.topic = ev, this.data = iv, this.senderAttendeeId = ov, this.senderExternalUserId = av, this.throttled = !!sv;
  }
  /**
   * Helper conversion methods to convert {@link Uint8Array} data to string
   */
  text() {
    return new TextDecoder().decode(this.data);
  }
  /**
   * Helper conversion methods to convert {@link Uint8Array} data to JSON
   */
  json() {
    return JSON.parse(new TextDecoder().decode(this.data));
  }
}
DataMessage$1.default = DataMessage;
var DefaultActiveSpeakerDetector$1 = {}, __awaiter$I = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultActiveSpeakerDetector$1, "__esModule", { value: !0 });
const IntervalScheduler_1$4 = IntervalScheduler$1;
class DefaultActiveSpeakerDetector {
  constructor(tv, ev, iv, ov = 1e3, av = 200) {
    this.realtimeController = tv, this.selfAttendeeId = ev, this.hasBandwidthPriorityCallback = iv, this.waitIntervalMs = ov, this.updateIntervalMs = av, this.speakerScores = {}, this.speakerMuteState = {}, this.detectorCallbackToHandler = /* @__PURE__ */ new Map(), this.detectorCallbackToScoresTimer = /* @__PURE__ */ new Map(), this.detectorCallbackToActivityTimer = /* @__PURE__ */ new Map(), this.hasBandwidthPriority = !1, this.mostRecentUpdateTimestamp = {};
  }
  needUpdate(tv) {
    return this.activeSpeakers ? this.speakerScores[tv] === 0 && this.activeSpeakers.includes(tv) || this.speakerScores[tv] > 0 && !this.activeSpeakers.includes(tv) : !0;
  }
  updateActiveSpeakers(tv, ev, iv) {
    if (!this.needUpdate(iv))
      return;
    const ov = [], av = Object.keys(this.speakerScores);
    for (let dv = 0; dv < av.length; dv++) {
      const hv = av[dv];
      ov.push({ attendeeId: hv, activeScore: this.speakerScores[hv] });
    }
    const sv = ov.sort((dv, hv) => hv.activeScore - dv.activeScore).filter(function(dv) {
      return dv.activeScore > 0;
    }).map(function(dv) {
      return dv.attendeeId;
    });
    this.activeSpeakers = sv, ev(sv);
    const uv = sv.length > 0 && sv[0] === this.selfAttendeeId && tv.prioritizeVideoSendBandwidthForActiveSpeaker();
    this.hasBandwidthPriority !== uv && (this.hasBandwidthPriority = uv, this.hasBandwidthPriorityCallback(uv));
  }
  updateScore(tv, ev, iv, ov, av) {
    const sv = tv.calculateScore(iv, ov, av);
    this.speakerScores[iv] !== sv && (this.speakerScores[iv] = sv, this.mostRecentUpdateTimestamp[iv] = Date.now(), this.updateActiveSpeakers(tv, ev, iv));
  }
  subscribe(tv, ev, iv, ov) {
    const av = (lv, uv) => {
      if (!uv) {
        this.speakerScores[lv] = 0, this.mostRecentUpdateTimestamp[lv] = Date.now(), this.updateActiveSpeakers(tv, ev, lv);
        return;
      }
      this.realtimeController.realtimeSubscribeToVolumeIndicator(lv, (cv, dv, hv, pv) => {
        this.mostRecentUpdateTimestamp[cv] = Date.now(), hv !== null && (this.speakerMuteState[cv] = hv), this.updateScore(tv, ev, cv, dv, hv);
      });
    };
    this.detectorCallbackToHandler.set(ev, av);
    const sv = new IntervalScheduler_1$4.default(this.updateIntervalMs);
    if (sv.start(() => {
      for (const lv in this.speakerScores)
        Date.now() - this.mostRecentUpdateTimestamp[lv] > this.waitIntervalMs && this.updateScore(tv, ev, lv, 0, this.speakerMuteState[lv]);
    }), this.detectorCallbackToActivityTimer.set(ev, sv), iv && ov) {
      const lv = new IntervalScheduler_1$4.default(ov);
      lv.start(() => {
        iv(this.speakerScores);
      }), this.detectorCallbackToScoresTimer.set(ev, lv);
    }
    this.realtimeController.realtimeSubscribeToAttendeeIdPresence(av);
  }
  unsubscribe(tv) {
    const ev = this.detectorCallbackToHandler.get(tv);
    this.detectorCallbackToHandler.delete(tv), ev && this.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(ev);
    const iv = this.detectorCallbackToActivityTimer.get(tv);
    iv && (iv.stop(), this.detectorCallbackToActivityTimer.delete(tv));
    const ov = this.detectorCallbackToScoresTimer.get(tv);
    ov && (ov.stop(), this.detectorCallbackToHandler.delete(tv));
  }
  destroy() {
    return __awaiter$I(this, void 0, void 0, function* () {
      for (const tv of this.detectorCallbackToHandler.values())
        this.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(tv);
      for (const tv of this.detectorCallbackToActivityTimer.values())
        tv.stop();
      for (const tv of this.detectorCallbackToScoresTimer.values())
        tv.stop();
      this.detectorCallbackToHandler.clear(), this.detectorCallbackToActivityTimer.clear(), this.detectorCallbackToScoresTimer.clear();
    });
  }
}
DefaultActiveSpeakerDetector$1.default = DefaultActiveSpeakerDetector;
var DefaultActiveSpeakerPolicy$1 = {};
Object.defineProperty(DefaultActiveSpeakerPolicy$1, "__esModule", { value: !0 });
class DefaultActiveSpeakerPolicy {
  /** Creates active speaker policy with speakerWeight, cutoffThreshold, silenceThreshold, and takeoverRate.
   *
   * @param speakerWeight
   * The number used to calculate new active speaker score for current attendee.
   * ```js
   * Formula:
   * updatedCurrentAttendeeScore = currentAttendeeExistingScore * speakerWeight + currentReceivedVolume * (1 - speakerWeight)
   * ```
   *
   * @param cutoffThreshold
   * The threshold number compared with updated active speaker score.
   * If the updated active speaker score is less than this threshold value,
   * the updated score is returned as 0, else the updated score is returned.
   *
   * @param silenceThreshold
   * The threshold number compared with current received volume.
   * While calculating the new active speaker score, if the current received
   * volume is less than this threshold value, the current received volume is considered as 0,
   * else 1.
   *
   * @param takeoverRate
   * The number used to calculate other attendee's active speaker score, other than the current attendee.
   * ```js
   * Formula:
   *  updatedOtherAttendeeActiveSpeakerScore = Math.max(
   *    existingOtherAttendeeActiveSpeakerScore - takeoverRate * currentReceivedVolume,
   *    0
   *  );
   * ```
   */
  constructor(tv = 0.9, ev = 0.01, iv = 0.2, ov = 0.2) {
    this.speakerWeight = tv, this.cutoffThreshold = ev, this.silenceThreshold = iv, this.takeoverRate = ov, this.volumes = {};
  }
  calculateScore(tv, ev, iv) {
    (iv || ev === null) && (ev = 0), this.volumes.hasOwnProperty(tv) || (this.volumes[tv] = 0), ev > this.silenceThreshold ? ev = 1 : ev = 0;
    const ov = this.volumes[tv] * this.speakerWeight + ev * (1 - this.speakerWeight);
    this.volumes[tv] = ov;
    for (const av in this.volumes)
      av !== tv && (this.volumes[av] = Math.max(this.volumes[av] - this.takeoverRate * ev, 0));
    return ov < this.cutoffThreshold ? 0 : ov;
  }
  prioritizeVideoSendBandwidthForActiveSpeaker() {
    return !0;
  }
}
DefaultActiveSpeakerPolicy$1.default = DefaultActiveSpeakerPolicy;
var DefaultAudioMixController$1 = {}, __awaiter$H = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultAudioMixController$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1$6 = DefaultBrowserBehavior$1, AsyncScheduler_1$3 = AsyncScheduler$1;
class DefaultAudioMixController {
  constructor(tv) {
    this.logger = tv, this.audioDevice = null, this.audioElement = null, this.audioStream = null, this.browserBehavior = new DefaultBrowserBehavior_1$6.default(), this.observers = /* @__PURE__ */ new Set();
  }
  bindAudioElement(tv) {
    return __awaiter$H(this, void 0, void 0, function* () {
      if (!tv)
        throw new Error(`Cannot bind audio element: ${tv}`);
      return this.audioElement = tv, this.audioElement.autoplay = !0, this.bindAudioMix();
    });
  }
  unbindAudioElement() {
    this.audioElement && (this.audioElement.srcObject = null, this.audioElement = null, this.forEachObserver((tv) => {
      this.audioStream && tv.meetingAudioStreamBecameInactive(this.audioStream);
    }));
  }
  bindAudioStream(tv) {
    return __awaiter$H(this, void 0, void 0, function* () {
      if (tv) {
        this.audioStream = tv;
        try {
          yield this.bindAudioMix();
        } catch (ev) {
          this.logger && this.logger.warn(`Failed to bind audio stream: ${ev}`);
        }
      }
    });
  }
  bindAudioDevice(tv) {
    return __awaiter$H(this, void 0, void 0, function* () {
      if (tv && !this.browserBehavior.supportsSetSinkId())
        throw new Error("Cannot select audio output device. This browser does not support setSinkId.");
      return this.audioDevice = tv, this.bindAudioMix();
    });
  }
  forEachObserver(tv) {
    for (const ev of this.observers)
      AsyncScheduler_1$3.default.nextTick(() => {
        tv(ev);
      });
  }
  bindAudioMix() {
    var tv, ev;
    return __awaiter$H(this, void 0, void 0, function* () {
      if (!this.audioElement)
        return;
      const iv = this.audioElement.srcObject;
      this.audioStream && (this.audioElement.srcObject = this.audioStream), iv !== this.audioStream && this.forEachObserver((cv) => {
        iv && cv.meetingAudioStreamBecameInactive(iv), this.audioStream && cv.meetingAudioStreamBecameActive(this.audioStream);
      });
      const ov = ((tv = this.audioDevice) === null || tv === void 0 ? void 0 : tv.deviceId) !== this.audioElement.sinkId;
      if (ov && typeof this.audioElement.sinkId > "u")
        throw new Error("Cannot select audio output device. This browser does not support setSinkId.");
      const av = this.audioDevice ? this.audioDevice.deviceId : "", sv = this.audioElement.sinkId;
      if (av === sv)
        return;
      const lv = this.audioElement, uv = this.audioStream;
      if (this.browserBehavior.hasChromiumWebRTC() && (lv.srcObject = null), ov)
        try {
          yield lv.setSinkId(av);
        } catch (cv) {
          throw (ev = this.logger) === null || ev === void 0 || ev.error(`Failed to set sinkId for audio element: ${cv}`), cv;
        }
      this.browserBehavior.hasChromiumWebRTC() && (lv.srcObject = uv);
    });
  }
  getCurrentMeetingAudioStream() {
    return __awaiter$H(this, void 0, void 0, function* () {
      return this.audioStream;
    });
  }
  addAudioMixObserver(tv) {
    return __awaiter$H(this, void 0, void 0, function* () {
      this.observers.add(tv);
    });
  }
  removeAudioMixObserver(tv) {
    return __awaiter$H(this, void 0, void 0, function* () {
      this.observers.delete(tv);
    });
  }
}
DefaultAudioMixController$1.default = DefaultAudioMixController;
var DefaultAudioVideoController = {}, SignalingAndMetricsConnectionMonitor$1 = {};
Object.defineProperty(SignalingAndMetricsConnectionMonitor$1, "__esModule", { value: !0 });
const Types_1$7 = Types;
class SignalingAndMetricsConnectionMonitor {
  constructor(tv, ev, iv, ov, av, sv) {
    this.audioVideoController = tv, this.realtimeController = ev, this.videoTileController = iv, this.connectionHealthData = ov, this.pingPong = av, this.statsCollector = sv, this.isActive = !1, this.hasSeenValidPacketMetricsBefore = !1, this.lastAvailableSendBandwidthKbps = 0, this.lastAvailableRecvBandwidthKbps = 0, this.realtimeController.realtimeSubscribeToLocalSignalStrengthChange((lv) => {
      this.isActive && this.receiveSignalStrengthChange(lv);
    });
  }
  start() {
    this.isActive = !0, this.pingPong.addObserver(this), this.pingPong.start(), this.audioVideoController.addObserver(this);
  }
  stop() {
    this.isActive = !1, this.pingPong.removeObserver(this), this.pingPong.stop(), this.audioVideoController.removeObserver(this);
  }
  receiveSignalStrengthChange(tv) {
    tv === 0 ? this.connectionHealthData.setLastNoSignalTimestampMs(Date.now()) : tv <= 0.5 ? this.connectionHealthData.setLastWeakSignalTimestampMs(Date.now()) : this.connectionHealthData.setLastGoodSignalTimestampMs(Date.now()), this.updateConnectionHealth();
  }
  didReceivePong(tv, ev, iv) {
    this.connectionHealthData.setConsecutiveMissedPongs(0), this.statsCollector.logLatency("ping_pong", ev), this.statsCollector.logLatency("ping_pong_clock_skew", iv), this.updateConnectionHealth();
  }
  didMissPongs() {
    this.connectionHealthData.setConsecutiveMissedPongs(this.connectionHealthData.consecutiveMissedPongs + 1), this.updateConnectionHealth();
  }
  metricsDidReceive(tv) {
    let ev = 0, iv = 0;
    const ov = tv.getObservableMetrics(), av = ov.audioPacketsReceived, sv = ov.audioPacketsReceivedFractionLoss;
    let lv = 0;
    const uv = ov.videoPacketSentPerSecond, cv = ov.videoUpstreamBitrate, dv = ov.availableSendBandwidth || ov.availableOutgoingBitrate, hv = ov.availableReceiveBandwidth || ov.availableIncomingBitrate, pv = ov.audioSpeakerDelayMs, yv = ov.nackCountReceivedPerSecond || ov.googNackCountReceivedPerSecond;
    if (typeof dv == "number" && !isNaN(dv) && this.updateAvailableSendBandwidth(dv / 1e3, yv), typeof hv == "number" && !isNaN(hv) && this.updateAvailableReceiveBandwidth(hv / 1e3), typeof cv == "number" && !isNaN(cv) && (lv = cv / 1e3), typeof pv == "number" && !isNaN(pv) && this.connectionHealthData.setAudioSpeakerDelayMs(pv), this.monitorVideoUplinkHealth(lv, uv), typeof av == "number" && typeof sv == "number") {
      if (ev = av, iv = sv, ev < 0 || iv < 0)
        return;
    } else
      return;
    this.addToMinuteWindow(this.connectionHealthData.packetsReceivedInLastMinute, ev), this.addToMinuteWindow(this.connectionHealthData.fractionPacketsLostInboundInLastMinute, iv), ev > 0 ? (this.hasSeenValidPacketMetricsBefore = !0, this.connectionHealthData.setConsecutiveStatsWithNoPackets(0)) : this.hasSeenValidPacketMetricsBefore && this.connectionHealthData.setConsecutiveStatsWithNoPackets(this.connectionHealthData.consecutiveStatsWithNoPackets + 1), (ev === 0 || iv > 0) && this.connectionHealthData.setLastPacketLossInboundTimestampMs(Date.now()), this.updateConnectionHealth();
  }
  addToMinuteWindow(tv, ev) {
    tv.unshift(ev), tv.length > 60 && tv.pop();
  }
  updateAvailableSendBandwidth(tv, ev) {
    if (tv !== this.lastAvailableSendBandwidthKbps) {
      if (this.lastAvailableSendBandwidthKbps === 0) {
        this.lastAvailableSendBandwidthKbps = tv;
        return;
      }
      const iv = this.lastAvailableSendBandwidthKbps;
      this.lastAvailableSendBandwidthKbps = tv, this.audioVideoController.forEachObserver((ov) => {
        Types_1$7.Maybe.of(ov.videoSendBandwidthDidChange).map((av) => av.bind(ov)(tv, iv, ev));
      });
    }
  }
  updateAvailableReceiveBandwidth(tv) {
    if (tv !== this.lastAvailableRecvBandwidthKbps) {
      if (this.lastAvailableRecvBandwidthKbps === 0) {
        this.lastAvailableRecvBandwidthKbps = tv;
        return;
      }
      const ev = this.lastAvailableRecvBandwidthKbps;
      this.lastAvailableRecvBandwidthKbps = tv, this.audioVideoController.forEachObserver((iv) => {
        Types_1$7.Maybe.of(iv.videoReceiveBandwidthDidChange).map((ov) => ov.bind(iv)(tv, ev));
      });
    }
  }
  updateConnectionHealth() {
    this.audioVideoController.forEachObserver((tv) => {
      Types_1$7.Maybe.of(tv.connectionHealthDidChange).map((ev) => ev.bind(tv)(this.connectionHealthData.clone()));
    });
  }
  monitorVideoUplinkHealth(tv, ev) {
    this.videoTileController.hasStartedLocalVideoTile() && this.audioVideoController.forEachObserver((iv) => {
      Types_1$7.Maybe.of(iv.videoSendHealthDidChange).map((ov) => ov.bind(iv)(tv, ev));
    });
  }
}
SignalingAndMetricsConnectionMonitor$1.default = SignalingAndMetricsConnectionMonitor;
var DefaultEventController$1 = {}, uaParser = { exports: {} };
(function(rv, tv) {
  (function(ev, iv) {
    var ov = "1.0.37", av = "", sv = "?", lv = "function", uv = "undefined", cv = "object", dv = "string", hv = "major", pv = "model", yv = "name", Sv = "type", _v = "vendor", Ev = "version", wv = "architecture", xv = "console", Cv = "mobile", Av = "tablet", Ov = "smarttv", Lv = "wearable", jv = "embedded", Dv = 500, Vv = "Amazon", Gv = "Apple", Yv = "ASUS", Xv = "BlackBerry", L1 = "Browser", Bv = "Chrome", Qv = "Edge", B1 = "Firefox", K1 = "Google", j1 = "Huawei", P1 = "LG", D1 = "Microsoft", I1 = "Motorola", F1 = "Opera", M1 = "Samsung", U1 = "Sharp", H1 = "Sony", k1 = "Xiaomi", Q1 = "Zebra", Y1 = "Facebook", r$ = "Chromium OS", a$ = "Mac OS", S$ = function(Kv, c1) {
      var $1 = {};
      for (var N1 in Kv)
        c1[N1] && c1[N1].length % 2 === 0 ? $1[N1] = c1[N1].concat(Kv[N1]) : $1[N1] = Kv[N1];
      return $1;
    }, d$ = function(Kv) {
      for (var c1 = {}, $1 = 0; $1 < Kv.length; $1++)
        c1[Kv[$1].toUpperCase()] = Kv[$1];
      return c1;
    }, x$ = function(Kv, c1) {
      return typeof Kv === dv ? g$(c1).indexOf(g$(Kv)) !== -1 : !1;
    }, g$ = function(Kv) {
      return Kv.toLowerCase();
    }, _$ = function(Kv) {
      return typeof Kv === dv ? Kv.replace(/[^\d\.]/g, av).split(".")[0] : iv;
    }, O$ = function(Kv, c1) {
      if (typeof Kv === dv)
        return Kv = Kv.replace(/^\s\s*/, av), typeof c1 === uv ? Kv : Kv.substring(0, Dv);
    }, E$ = function(Kv, c1) {
      for (var $1 = 0, N1, e$, R1, Zv, C1, q1; $1 < c1.length && !C1; ) {
        var t$ = c1[$1], _b = c1[$1 + 1];
        for (N1 = e$ = 0; N1 < t$.length && !C1 && t$[N1]; )
          if (C1 = t$[N1++].exec(Kv), C1)
            for (R1 = 0; R1 < _b.length; R1++)
              q1 = C1[++e$], Zv = _b[R1], typeof Zv === cv && Zv.length > 0 ? Zv.length === 2 ? typeof Zv[1] == lv ? this[Zv[0]] = Zv[1].call(this, q1) : this[Zv[0]] = Zv[1] : Zv.length === 3 ? typeof Zv[1] === lv && !(Zv[1].exec && Zv[1].test) ? this[Zv[0]] = q1 ? Zv[1].call(this, q1, Zv[2]) : iv : this[Zv[0]] = q1 ? q1.replace(Zv[1], Zv[2]) : iv : Zv.length === 4 && (this[Zv[0]] = q1 ? Zv[3].call(this, q1.replace(Zv[1], Zv[2])) : iv) : this[Zv] = q1 || iv;
        $1 += 2;
      }
    }, O1 = function(Kv, c1) {
      for (var $1 in c1)
        if (typeof c1[$1] === cv && c1[$1].length > 0) {
          for (var N1 = 0; N1 < c1[$1].length; N1++)
            if (x$(c1[$1][N1], Kv))
              return $1 === sv ? iv : $1;
        } else if (x$(c1[$1], Kv))
          return $1 === sv ? iv : $1;
      return Kv;
    }, Z1 = {
      "1.0": "/8",
      "1.2": "/1",
      "1.3": "/3",
      "2.0": "/412",
      "2.0.2": "/416",
      "2.0.3": "/417",
      "2.0.4": "/419",
      "?": "/"
    }, Hv = {
      ME: "4.90",
      "NT 3.11": "NT3.51",
      "NT 4.0": "NT4.0",
      2e3: "NT 5.0",
      XP: ["NT 5.1", "NT 5.2"],
      Vista: "NT 6.0",
      7: "NT 6.1",
      8: "NT 6.2",
      "8.1": "NT 6.3",
      10: ["NT 6.4", "NT 10.0"],
      RT: "ARM"
    }, Jv = {
      browser: [
        [
          /\b(?:crmo|crios)\/([\w\.]+)/i
          // Chrome for Android/iOS
        ],
        [Ev, [yv, "Chrome"]],
        [
          /edg(?:e|ios|a)?\/([\w\.]+)/i
          // Microsoft Edge
        ],
        [Ev, [yv, "Edge"]],
        [
          // Presto based
          /(opera mini)\/([-\w\.]+)/i,
          // Opera Mini
          /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
          // Opera Mobi/Tablet
          /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
          // Opera
        ],
        [yv, Ev],
        [
          /opios[\/ ]+([\w\.]+)/i
          // Opera mini on iphone >= 8.0
        ],
        [Ev, [yv, F1 + " Mini"]],
        [
          /\bopr\/([\w\.]+)/i
          // Opera Webkit
        ],
        [Ev, [yv, F1]],
        [
          // Mixed
          /\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
          // Baidu
        ],
        [Ev, [yv, "Baidu"]],
        [
          /(kindle)\/([\w\.]+)/i,
          // Kindle
          /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,
          // Lunascape/Maxthon/Netfront/Jasmine/Blazer
          // Trident based
          /(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,
          // Avant/IEMobile/SlimBrowser
          /(?:ms|\()(ie) ([\w\.]+)/i,
          // Internet Explorer
          // Webkit/KHTML based                                               // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
          /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
          // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ
          /(heytap|ovi)browser\/([\d\.]+)/i,
          // Heytap/Ovi
          /(weibo)__([\d\.]+)/i
          // Weibo
        ],
        [yv, Ev],
        [
          /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
          // UCBrowser
        ],
        [Ev, [yv, "UC" + L1]],
        [
          /microm.+\bqbcore\/([\w\.]+)/i,
          // WeChat Desktop for Windows Built-in Browser
          /\bqbcore\/([\w\.]+).+microm/i,
          /micromessenger\/([\w\.]+)/i
          // WeChat
        ],
        [Ev, [yv, "WeChat"]],
        [
          /konqueror\/([\w\.]+)/i
          // Konqueror
        ],
        [Ev, [yv, "Konqueror"]],
        [
          /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
          // IE11
        ],
        [Ev, [yv, "IE"]],
        [
          /ya(?:search)?browser\/([\w\.]+)/i
          // Yandex
        ],
        [Ev, [yv, "Yandex"]],
        [
          /slbrowser\/([\w\.]+)/i
          // Smart Lenovo Browser
        ],
        [Ev, [yv, "Smart Lenovo " + L1]],
        [
          /(avast|avg)\/([\w\.]+)/i
          // Avast/AVG Secure Browser
        ],
        [[yv, /(.+)/, "$1 Secure " + L1], Ev],
        [
          /\bfocus\/([\w\.]+)/i
          // Firefox Focus
        ],
        [Ev, [yv, B1 + " Focus"]],
        [
          /\bopt\/([\w\.]+)/i
          // Opera Touch
        ],
        [Ev, [yv, F1 + " Touch"]],
        [
          /coc_coc\w+\/([\w\.]+)/i
          // Coc Coc Browser
        ],
        [Ev, [yv, "Coc Coc"]],
        [
          /dolfin\/([\w\.]+)/i
          // Dolphin
        ],
        [Ev, [yv, "Dolphin"]],
        [
          /coast\/([\w\.]+)/i
          // Opera Coast
        ],
        [Ev, [yv, F1 + " Coast"]],
        [
          /miuibrowser\/([\w\.]+)/i
          // MIUI Browser
        ],
        [Ev, [yv, "MIUI " + L1]],
        [
          /fxios\/([-\w\.]+)/i
          // Firefox for iOS
        ],
        [Ev, [yv, B1]],
        [
          /\bqihu|(qi?ho?o?|360)browser/i
          // 360
        ],
        [[yv, "360 " + L1]],
        [
          /(oculus|sailfish|huawei|vivo)browser\/([\w\.]+)/i
        ],
        [[yv, /(.+)/, "$1 " + L1], Ev],
        [
          // Oculus/Sailfish/HuaweiBrowser/VivoBrowser
          /samsungbrowser\/([\w\.]+)/i
          // Samsung Internet
        ],
        [Ev, [yv, M1 + " Internet"]],
        [
          /(comodo_dragon)\/([\w\.]+)/i
          // Comodo Dragon
        ],
        [[yv, /_/g, " "], Ev],
        [
          /metasr[\/ ]?([\d\.]+)/i
          // Sogou Explorer
        ],
        [Ev, [yv, "Sogou Explorer"]],
        [
          /(sogou)mo\w+\/([\d\.]+)/i
          // Sogou Mobile
        ],
        [[yv, "Sogou Mobile"], Ev],
        [
          /(electron)\/([\w\.]+) safari/i,
          // Electron-based App
          /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
          // Tesla
          /m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i
          // QQBrowser/2345 Browser
        ],
        [yv, Ev],
        [
          /(lbbrowser)/i,
          // LieBao Browser
          /\[(linkedin)app\]/i
          // LinkedIn App for iOS & Android
        ],
        [yv],
        [
          // WebView
          /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
          // Facebook App for iOS & Android
        ],
        [[yv, Y1], Ev],
        [
          /(Klarna)\/([\w\.]+)/i,
          // Klarna Shopping Browser for iOS & Android
          /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
          // Kakao App
          /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
          // Naver InApp
          /safari (line)\/([\w\.]+)/i,
          // Line App for iOS
          /\b(line)\/([\w\.]+)\/iab/i,
          // Line App for Android
          /(alipay)client\/([\w\.]+)/i,
          // Alipay
          /(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i
          // Chromium/Instagram/Snapchat
        ],
        [yv, Ev],
        [
          /\bgsa\/([\w\.]+) .*safari\//i
          // Google Search Appliance on iOS
        ],
        [Ev, [yv, "GSA"]],
        [
          /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
          // TikTok
        ],
        [Ev, [yv, "TikTok"]],
        [
          /headlesschrome(?:\/([\w\.]+)| )/i
          // Chrome Headless
        ],
        [Ev, [yv, Bv + " Headless"]],
        [
          / wv\).+(chrome)\/([\w\.]+)/i
          // Chrome WebView
        ],
        [[yv, Bv + " WebView"], Ev],
        [
          /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
          // Android Browser
        ],
        [Ev, [yv, "Android " + L1]],
        [
          /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
          // Chrome/OmniWeb/Arora/Tizen/Nokia
        ],
        [yv, Ev],
        [
          /version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i
          // Mobile Safari
        ],
        [Ev, [yv, "Mobile Safari"]],
        [
          /version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i
          // Safari & Safari Mobile
        ],
        [Ev, yv],
        [
          /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
          // Safari < 3.0
        ],
        [yv, [Ev, O1, Z1]],
        [
          /(webkit|khtml)\/([\w\.]+)/i
        ],
        [yv, Ev],
        [
          // Gecko based
          /(navigator|netscape\d?)\/([-\w\.]+)/i
          // Netscape
        ],
        [[yv, "Netscape"], Ev],
        [
          /mobile vr; rv:([\w\.]+)\).+firefox/i
          // Firefox Reality
        ],
        [Ev, [yv, B1 + " Reality"]],
        [
          /ekiohf.+(flow)\/([\w\.]+)/i,
          // Flow
          /(swiftfox)/i,
          // Swiftfox
          /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,
          // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar
          /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
          // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
          /(firefox)\/([\w\.]+)/i,
          // Other Firefox-based
          /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
          // Mozilla
          // Other
          /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
          // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser
          /(links) \(([\w\.]+)/i,
          // Links
          /panasonic;(viera)/i
          // Panasonic Viera
        ],
        [yv, Ev],
        [
          /(cobalt)\/([\w\.]+)/i
          // Cobalt
        ],
        [yv, [Ev, /master.|lts./, ""]]
      ],
      cpu: [
        [
          /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i
          // AMD64 (x64)
        ],
        [[wv, "amd64"]],
        [
          /(ia32(?=;))/i
          // IA32 (quicktime)
        ],
        [[wv, g$]],
        [
          /((?:i[346]|x)86)[;\)]/i
          // IA32 (x86)
        ],
        [[wv, "ia32"]],
        [
          /\b(aarch64|arm(v?8e?l?|_?64))\b/i
          // ARM64
        ],
        [[wv, "arm64"]],
        [
          /\b(arm(?:v[67])?ht?n?[fl]p?)\b/i
          // ARMHF
        ],
        [[wv, "armhf"]],
        [
          // PocketPC mistakenly identified as PowerPC
          /windows (ce|mobile); ppc;/i
        ],
        [[wv, "arm"]],
        [
          /((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i
          // PowerPC
        ],
        [[wv, /ower/, av, g$]],
        [
          /(sun4\w)[;\)]/i
          // SPARC
        ],
        [[wv, "sparc"]],
        [
          /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
          // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
        ],
        [[wv, g$]]
      ],
      device: [
        [
          //////////////////////////
          // MOBILES & TABLETS
          /////////////////////////
          // Samsung
          /\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
        ],
        [pv, [_v, M1], [Sv, Av]],
        [
          /\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
          /samsung[- ]([-\w]+)/i,
          /sec-(sgh\w+)/i
        ],
        [pv, [_v, M1], [Sv, Cv]],
        [
          // Apple
          /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
          // iPod/iPhone
        ],
        [pv, [_v, Gv], [Sv, Cv]],
        [
          /\((ipad);[-\w\),; ]+apple/i,
          // iPad
          /applecoremedia\/[\w\.]+ \((ipad)/i,
          /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
        ],
        [pv, [_v, Gv], [Sv, Av]],
        [
          /(macintosh);/i
        ],
        [pv, [_v, Gv]],
        [
          // Sharp
          /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
        ],
        [pv, [_v, U1], [Sv, Cv]],
        [
          // Huawei
          /\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
        ],
        [pv, [_v, j1], [Sv, Av]],
        [
          /(?:huawei|honor)([-\w ]+)[;\)]/i,
          /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
        ],
        [pv, [_v, j1], [Sv, Cv]],
        [
          // Xiaomi
          /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
          // Xiaomi POCO
          /\b; (\w+) build\/hm\1/i,
          // Xiaomi Hongmi 'numeric' models
          /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
          // Xiaomi Hongmi
          /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
          // Xiaomi Redmi
          /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
          // Xiaomi Redmi 'numeric' models
          /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i
          // Xiaomi Mi
        ],
        [[pv, /_/g, " "], [_v, k1], [Sv, Cv]],
        [
          /oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,
          // Redmi Pad
          /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i
          // Mi Pad tablets
        ],
        [[pv, /_/g, " "], [_v, k1], [Sv, Av]],
        [
          // OPPO
          /; (\w+) bui.+ oppo/i,
          /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
        ],
        [pv, [_v, "OPPO"], [Sv, Cv]],
        [
          // Vivo
          /vivo (\w+)(?: bui|\))/i,
          /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
        ],
        [pv, [_v, "Vivo"], [Sv, Cv]],
        [
          // Realme
          /\b(rmx[1-3]\d{3})(?: bui|;|\))/i
        ],
        [pv, [_v, "Realme"], [Sv, Cv]],
        [
          // Motorola
          /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
          /\bmot(?:orola)?[- ](\w*)/i,
          /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
        ],
        [pv, [_v, I1], [Sv, Cv]],
        [
          /\b(mz60\d|xoom[2 ]{0,2}) build\//i
        ],
        [pv, [_v, I1], [Sv, Av]],
        [
          // LG
          /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
        ],
        [pv, [_v, P1], [Sv, Av]],
        [
          /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
          /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
          /\blg-?([\d\w]+) bui/i
        ],
        [pv, [_v, P1], [Sv, Cv]],
        [
          // Lenovo
          /(ideatab[-\w ]+)/i,
          /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i
        ],
        [pv, [_v, "Lenovo"], [Sv, Av]],
        [
          // Nokia
          /(?:maemo|nokia).*(n900|lumia \d+)/i,
          /nokia[-_ ]?([-\w\.]*)/i
        ],
        [[pv, /_/g, " "], [_v, "Nokia"], [Sv, Cv]],
        [
          // Google
          /(pixel c)\b/i
          // Google Pixel C
        ],
        [pv, [_v, K1], [Sv, Av]],
        [
          /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
          // Google Pixel
        ],
        [pv, [_v, K1], [Sv, Cv]],
        [
          // Sony
          /droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
        ],
        [pv, [_v, H1], [Sv, Cv]],
        [
          /sony tablet [ps]/i,
          /\b(?:sony)?sgp\w+(?: bui|\))/i
        ],
        [[pv, "Xperia Tablet"], [_v, H1], [Sv, Av]],
        [
          // OnePlus
          / (kb2005|in20[12]5|be20[12][59])\b/i,
          /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
        ],
        [pv, [_v, "OnePlus"], [Sv, Cv]],
        [
          // Amazon
          /(alexa)webm/i,
          /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,
          // Kindle Fire without Silk / Echo Show
          /(kf[a-z]+)( bui|\)).+silk\//i
          // Kindle Fire HD
        ],
        [pv, [_v, Vv], [Sv, Av]],
        [
          /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
          // Fire Phone
        ],
        [[pv, /(.+)/g, "Fire Phone $1"], [_v, Vv], [Sv, Cv]],
        [
          // BlackBerry
          /(playbook);[-\w\),; ]+(rim)/i
          // BlackBerry PlayBook
        ],
        [pv, _v, [Sv, Av]],
        [
          /\b((?:bb[a-f]|st[hv])100-\d)/i,
          /\(bb10; (\w+)/i
          // BlackBerry 10
        ],
        [pv, [_v, Xv], [Sv, Cv]],
        [
          // Asus
          /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
        ],
        [pv, [_v, Yv], [Sv, Av]],
        [
          / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
        ],
        [pv, [_v, Yv], [Sv, Cv]],
        [
          // HTC
          /(nexus 9)/i
          // HTC Nexus 9
        ],
        [pv, [_v, "HTC"], [Sv, Av]],
        [
          /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
          // HTC
          // ZTE
          /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
          /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
          // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
        ],
        [_v, [pv, /_/g, " "], [Sv, Cv]],
        [
          // Acer
          /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
        ],
        [pv, [_v, "Acer"], [Sv, Av]],
        [
          // Meizu
          /droid.+; (m[1-5] note) bui/i,
          /\bmz-([-\w]{2,})/i
        ],
        [pv, [_v, "Meizu"], [Sv, Cv]],
        [
          // Ulefone
          /; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
        ],
        [pv, [_v, "Ulefone"], [Sv, Cv]],
        [
          // MIXED
          /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
          // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
          /(hp) ([\w ]+\w)/i,
          // HP iPAQ
          /(asus)-?(\w+)/i,
          // Asus
          /(microsoft); (lumia[\w ]+)/i,
          // Microsoft Lumia
          /(lenovo)[-_ ]?([-\w]+)/i,
          // Lenovo
          /(jolla)/i,
          // Jolla
          /(oppo) ?([\w ]+) bui/i
          // OPPO
        ],
        [_v, pv, [Sv, Cv]],
        [
          /(kobo)\s(ereader|touch)/i,
          // Kobo
          /(archos) (gamepad2?)/i,
          // Archos
          /(hp).+(touchpad(?!.+tablet)|tablet)/i,
          // HP TouchPad
          /(kindle)\/([\w\.]+)/i,
          // Kindle
          /(nook)[\w ]+build\/(\w+)/i,
          // Nook
          /(dell) (strea[kpr\d ]*[\dko])/i,
          // Dell Streak
          /(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
          // Le Pan Tablets
          /(trinity)[- ]*(t\d{3}) bui/i,
          // Trinity Tablets
          /(gigaset)[- ]+(q\w{1,9}) bui/i,
          // Gigaset Tablets
          /(vodafone) ([\w ]+)(?:\)| bui)/i
          // Vodafone
        ],
        [_v, pv, [Sv, Av]],
        [
          /(surface duo)/i
          // Surface Duo
        ],
        [pv, [_v, D1], [Sv, Av]],
        [
          /droid [\d\.]+; (fp\du?)(?: b|\))/i
          // Fairphone
        ],
        [pv, [_v, "Fairphone"], [Sv, Cv]],
        [
          /(u304aa)/i
          // AT&T
        ],
        [pv, [_v, "AT&T"], [Sv, Cv]],
        [
          /\bsie-(\w*)/i
          // Siemens
        ],
        [pv, [_v, "Siemens"], [Sv, Cv]],
        [
          /\b(rct\w+) b/i
          // RCA Tablets
        ],
        [pv, [_v, "RCA"], [Sv, Av]],
        [
          /\b(venue[\d ]{2,7}) b/i
          // Dell Venue Tablets
        ],
        [pv, [_v, "Dell"], [Sv, Av]],
        [
          /\b(q(?:mv|ta)\w+) b/i
          // Verizon Tablet
        ],
        [pv, [_v, "Verizon"], [Sv, Av]],
        [
          /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i
          // Barnes & Noble Tablet
        ],
        [pv, [_v, "Barnes & Noble"], [Sv, Av]],
        [
          /\b(tm\d{3}\w+) b/i
        ],
        [pv, [_v, "NuVision"], [Sv, Av]],
        [
          /\b(k88) b/i
          // ZTE K Series Tablet
        ],
        [pv, [_v, "ZTE"], [Sv, Av]],
        [
          /\b(nx\d{3}j) b/i
          // ZTE Nubia
        ],
        [pv, [_v, "ZTE"], [Sv, Cv]],
        [
          /\b(gen\d{3}) b.+49h/i
          // Swiss GEN Mobile
        ],
        [pv, [_v, "Swiss"], [Sv, Cv]],
        [
          /\b(zur\d{3}) b/i
          // Swiss ZUR Tablet
        ],
        [pv, [_v, "Swiss"], [Sv, Av]],
        [
          /\b((zeki)?tb.*\b) b/i
          // Zeki Tablets
        ],
        [pv, [_v, "Zeki"], [Sv, Av]],
        [
          /\b([yr]\d{2}) b/i,
          /\b(dragon[- ]+touch |dt)(\w{5}) b/i
          // Dragon Touch Tablet
        ],
        [[_v, "Dragon Touch"], pv, [Sv, Av]],
        [
          /\b(ns-?\w{0,9}) b/i
          // Insignia Tablets
        ],
        [pv, [_v, "Insignia"], [Sv, Av]],
        [
          /\b((nxa|next)-?\w{0,9}) b/i
          // NextBook Tablets
        ],
        [pv, [_v, "NextBook"], [Sv, Av]],
        [
          /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i
          // Voice Xtreme Phones
        ],
        [[_v, "Voice"], pv, [Sv, Cv]],
        [
          /\b(lvtel\-)?(v1[12]) b/i
          // LvTel Phones
        ],
        [[_v, "LvTel"], pv, [Sv, Cv]],
        [
          /\b(ph-1) /i
          // Essential PH-1
        ],
        [pv, [_v, "Essential"], [Sv, Cv]],
        [
          /\b(v(100md|700na|7011|917g).*\b) b/i
          // Envizen Tablets
        ],
        [pv, [_v, "Envizen"], [Sv, Av]],
        [
          /\b(trio[-\w\. ]+) b/i
          // MachSpeed Tablets
        ],
        [pv, [_v, "MachSpeed"], [Sv, Av]],
        [
          /\btu_(1491) b/i
          // Rotor Tablets
        ],
        [pv, [_v, "Rotor"], [Sv, Av]],
        [
          /(shield[\w ]+) b/i
          // Nvidia Shield Tablets
        ],
        [pv, [_v, "Nvidia"], [Sv, Av]],
        [
          /(sprint) (\w+)/i
          // Sprint Phones
        ],
        [_v, pv, [Sv, Cv]],
        [
          /(kin\.[onetw]{3})/i
          // Microsoft Kin
        ],
        [[pv, /\./g, " "], [_v, D1], [Sv, Cv]],
        [
          /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
          // Zebra
        ],
        [pv, [_v, Q1], [Sv, Av]],
        [
          /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
        ],
        [pv, [_v, Q1], [Sv, Cv]],
        [
          ///////////////////
          // SMARTTVS
          ///////////////////
          /smart-tv.+(samsung)/i
          // Samsung
        ],
        [_v, [Sv, Ov]],
        [
          /hbbtv.+maple;(\d+)/i
        ],
        [[pv, /^/, "SmartTV"], [_v, M1], [Sv, Ov]],
        [
          /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
          // LG SmartTV
        ],
        [[_v, P1], [Sv, Ov]],
        [
          /(apple) ?tv/i
          // Apple TV
        ],
        [_v, [pv, Gv + " TV"], [Sv, Ov]],
        [
          /crkey/i
          // Google Chromecast
        ],
        [[pv, Bv + "cast"], [_v, K1], [Sv, Ov]],
        [
          /droid.+aft(\w+)( bui|\))/i
          // Fire TV
        ],
        [pv, [_v, Vv], [Sv, Ov]],
        [
          /\(dtv[\);].+(aquos)/i,
          /(aquos-tv[\w ]+)\)/i
          // Sharp
        ],
        [pv, [_v, U1], [Sv, Ov]],
        [
          /(bravia[\w ]+)( bui|\))/i
          // Sony
        ],
        [pv, [_v, H1], [Sv, Ov]],
        [
          /(mitv-\w{5}) bui/i
          // Xiaomi
        ],
        [pv, [_v, k1], [Sv, Ov]],
        [
          /Hbbtv.*(technisat) (.*);/i
          // TechniSAT
        ],
        [_v, pv, [Sv, Ov]],
        [
          /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
          // Roku
          /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
          // HbbTV devices
        ],
        [[_v, O$], [pv, O$], [Sv, Ov]],
        [
          /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
          // SmartTV from Unidentified Vendors
        ],
        [[Sv, Ov]],
        [
          ///////////////////
          // CONSOLES
          ///////////////////
          /(ouya)/i,
          // Ouya
          /(nintendo) ([wids3utch]+)/i
          // Nintendo
        ],
        [_v, pv, [Sv, xv]],
        [
          /droid.+; (shield) bui/i
          // Nvidia
        ],
        [pv, [_v, "Nvidia"], [Sv, xv]],
        [
          /(playstation [345portablevi]+)/i
          // Playstation
        ],
        [pv, [_v, H1], [Sv, xv]],
        [
          /\b(xbox(?: one)?(?!; xbox))[\); ]/i
          // Microsoft Xbox
        ],
        [pv, [_v, D1], [Sv, xv]],
        [
          ///////////////////
          // WEARABLES
          ///////////////////
          /((pebble))app/i
          // Pebble
        ],
        [_v, pv, [Sv, Lv]],
        [
          /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
          // Apple Watch
        ],
        [pv, [_v, Gv], [Sv, Lv]],
        [
          /droid.+; (glass) \d/i
          // Google Glass
        ],
        [pv, [_v, K1], [Sv, Lv]],
        [
          /droid.+; (wt63?0{2,3})\)/i
        ],
        [pv, [_v, Q1], [Sv, Lv]],
        [
          /(quest( 2| pro)?)/i
          // Oculus Quest
        ],
        [pv, [_v, Y1], [Sv, Lv]],
        [
          ///////////////////
          // EMBEDDED
          ///////////////////
          /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
          // Tesla
        ],
        [_v, [Sv, jv]],
        [
          /(aeobc)\b/i
          // Echo Dot
        ],
        [pv, [_v, Vv], [Sv, jv]],
        [
          ////////////////////
          // MIXED (GENERIC)
          ///////////////////
          /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i
          // Android Phones from Unidentified Vendors
        ],
        [pv, [Sv, Cv]],
        [
          /droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i
          // Android Tablets from Unidentified Vendors
        ],
        [pv, [Sv, Av]],
        [
          /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
          // Unidentifiable Tablet
        ],
        [[Sv, Av]],
        [
          /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
          // Unidentifiable Mobile
        ],
        [[Sv, Cv]],
        [
          /(android[-\w\. ]{0,9});.+buil/i
          // Generic Android Device
        ],
        [pv, [_v, "Generic"]]
      ],
      engine: [
        [
          /windows.+ edge\/([\w\.]+)/i
          // EdgeHTML
        ],
        [Ev, [yv, Qv + "HTML"]],
        [
          /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
          // Blink
        ],
        [Ev, [yv, "Blink"]],
        [
          /(presto)\/([\w\.]+)/i,
          // Presto
          /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,
          // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna
          /ekioh(flow)\/([\w\.]+)/i,
          // Flow
          /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
          // KHTML/Tasman/Links
          /(icab)[\/ ]([23]\.[\d\.]+)/i,
          // iCab
          /\b(libweb)/i
        ],
        [yv, Ev],
        [
          /rv\:([\w\.]{1,9})\b.+(gecko)/i
          // Gecko
        ],
        [Ev, yv]
      ],
      os: [
        [
          // Windows
          /microsoft (windows) (vista|xp)/i
          // Windows (iTunes)
        ],
        [yv, Ev],
        [
          /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i
          // Windows Phone
        ],
        [yv, [Ev, O1, Hv]],
        [
          /windows nt 6\.2; (arm)/i,
          // Windows RT
          /windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,
          /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
        ],
        [[Ev, O1, Hv], [yv, "Windows"]],
        [
          // iOS/macOS
          /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,
          // iOS
          /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
          /cfnetwork\/.+darwin/i
        ],
        [[Ev, /_/g, "."], [yv, "iOS"]],
        [
          /(mac os x) ?([\w\. ]*)/i,
          /(macintosh|mac_powerpc\b)(?!.+haiku)/i
          // Mac OS
        ],
        [[yv, a$], [Ev, /_/g, "."]],
        [
          // Mobile OSes
          /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
          // Android-x86/HarmonyOS
        ],
        [Ev, yv],
        [
          // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS
          /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
          /(blackberry)\w*\/([\w\.]*)/i,
          // Blackberry
          /(tizen|kaios)[\/ ]([\w\.]+)/i,
          // Tizen/KaiOS
          /\((series40);/i
          // Series 40
        ],
        [yv, Ev],
        [
          /\(bb(10);/i
          // BlackBerry 10
        ],
        [Ev, [yv, Xv]],
        [
          /(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i
          // Symbian
        ],
        [Ev, [yv, "Symbian"]],
        [
          /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
          // Firefox OS
        ],
        [Ev, [yv, B1 + " OS"]],
        [
          /web0s;.+rt(tv)/i,
          /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
          // WebOS
        ],
        [Ev, [yv, "webOS"]],
        [
          /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
          // watchOS
        ],
        [Ev, [yv, "watchOS"]],
        [
          // Google Chromecast
          /crkey\/([\d\.]+)/i
          // Google Chromecast
        ],
        [Ev, [yv, Bv + "cast"]],
        [
          /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
          // Chromium OS
        ],
        [[yv, r$], Ev],
        [
          // Smart TVs
          /panasonic;(viera)/i,
          // Panasonic Viera
          /(netrange)mmh/i,
          // Netrange
          /(nettv)\/(\d+\.[\w\.]+)/i,
          // NetTV
          // Console
          /(nintendo|playstation) ([wids345portablevuch]+)/i,
          // Nintendo/Playstation
          /(xbox); +xbox ([^\);]+)/i,
          // Microsoft Xbox (360, One, X, S, Series X, Series S)
          // Other
          /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
          // Joli/Palm
          /(mint)[\/\(\) ]?(\w*)/i,
          // Mint
          /(mageia|vectorlinux)[; ]/i,
          // Mageia/VectorLinux
          /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
          // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
          /(hurd|linux) ?([\w\.]*)/i,
          // Hurd/Linux
          /(gnu) ?([\w\.]*)/i,
          // GNU
          /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
          // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
          /(haiku) (\w+)/i
          // Haiku
        ],
        [yv, Ev],
        [
          /(sunos) ?([\w\.\d]*)/i
          // Solaris
        ],
        [[yv, "Solaris"], Ev],
        [
          /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
          // Solaris
          /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
          // AIX
          /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
          // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
          /(unix) ?([\w\.]*)/i
          // UNIX
        ],
        [yv, Ev]
      ]
    }, Mv = function(Kv, c1) {
      if (typeof Kv === cv && (c1 = Kv, Kv = iv), !(this instanceof Mv))
        return new Mv(Kv, c1).getResult();
      var $1 = typeof ev !== uv && ev.navigator ? ev.navigator : iv, N1 = Kv || ($1 && $1.userAgent ? $1.userAgent : av), e$ = $1 && $1.userAgentData ? $1.userAgentData : iv, R1 = c1 ? S$(Jv, c1) : Jv, Zv = $1 && $1.userAgent == N1;
      return this.getBrowser = function() {
        var C1 = {};
        return C1[yv] = iv, C1[Ev] = iv, E$.call(C1, N1, R1.browser), C1[hv] = _$(C1[Ev]), Zv && $1 && $1.brave && typeof $1.brave.isBrave == lv && (C1[yv] = "Brave"), C1;
      }, this.getCPU = function() {
        var C1 = {};
        return C1[wv] = iv, E$.call(C1, N1, R1.cpu), C1;
      }, this.getDevice = function() {
        var C1 = {};
        return C1[_v] = iv, C1[pv] = iv, C1[Sv] = iv, E$.call(C1, N1, R1.device), Zv && !C1[Sv] && e$ && e$.mobile && (C1[Sv] = Cv), Zv && C1[pv] == "Macintosh" && $1 && typeof $1.standalone !== uv && $1.maxTouchPoints && $1.maxTouchPoints > 2 && (C1[pv] = "iPad", C1[Sv] = Av), C1;
      }, this.getEngine = function() {
        var C1 = {};
        return C1[yv] = iv, C1[Ev] = iv, E$.call(C1, N1, R1.engine), C1;
      }, this.getOS = function() {
        var C1 = {};
        return C1[yv] = iv, C1[Ev] = iv, E$.call(C1, N1, R1.os), Zv && !C1[yv] && e$ && e$.platform != "Unknown" && (C1[yv] = e$.platform.replace(/chrome os/i, r$).replace(/macos/i, a$)), C1;
      }, this.getResult = function() {
        return {
          ua: this.getUA(),
          browser: this.getBrowser(),
          engine: this.getEngine(),
          os: this.getOS(),
          device: this.getDevice(),
          cpu: this.getCPU()
        };
      }, this.getUA = function() {
        return N1;
      }, this.setUA = function(C1) {
        return N1 = typeof C1 === dv && C1.length > Dv ? O$(C1, Dv) : C1, this;
      }, this.setUA(N1), this;
    };
    Mv.VERSION = ov, Mv.BROWSER = d$([yv, Ev, hv]), Mv.CPU = d$([wv]), Mv.DEVICE = d$([pv, _v, Sv, xv, Cv, Ov, Av, Lv, jv]), Mv.ENGINE = Mv.OS = d$([yv, Ev]), rv.exports && (tv = rv.exports = Mv), tv.UAParser = Mv;
    var zv = typeof ev !== uv && (ev.jQuery || ev.Zepto);
    if (zv && !zv.ua) {
      var Wv = new Mv();
      zv.ua = Wv.getResult(), zv.ua.get = function() {
        return Wv.getUA();
      }, zv.ua.set = function(Kv) {
        Wv.setUA(Kv);
        var c1 = Wv.getResult();
        for (var $1 in c1)
          zv.ua[$1] = c1[$1];
      };
    }
  })(typeof window == "object" ? window : commonjsGlobal);
})(uaParser, uaParser.exports);
var uaParserExports = uaParser.exports, flattenEventAttributes$1 = {};
Object.defineProperty(flattenEventAttributes$1, "__esModule", { value: !0 });
const flattenEventAttributes = (rv) => {
  const tv = {};
  for (const [ev, iv] of Object.entries(rv))
    if (!(iv == null || iv === ""))
      if (typeof iv == "number" || typeof iv == "string")
        tv[ev] = iv;
      else
        throw new TypeError("Unhandled type received while flattening attributes.");
  return tv;
};
flattenEventAttributes$1.default = flattenEventAttributes;
var __awaiter$G = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultEventController$1, "__esModule", { value: !0 });
const ua_parser_js_1$1 = uaParserExports, Versioning_1$6 = Versioning$1, flattenEventAttributes_1 = flattenEventAttributes$1;
class DefaultEventController {
  constructor(tv, ev) {
    var iv, ov, av, sv, lv, uv, cv;
    this.audioVideoController = tv, this.eventReporter = ev, this.meetingHistoryStates = [];
    try {
      this.parserResult = navigator && navigator.userAgent ? new ua_parser_js_1$1.UAParser(navigator.userAgent).getResult() : null;
    } catch (dv) {
      tv.logger.error(dv.message);
    }
    this.browserMajorVersion = ((av = (ov = (iv = this.parserResult) === null || iv === void 0 ? void 0 : iv.browser) === null || ov === void 0 ? void 0 : ov.version) === null || av === void 0 ? void 0 : av.split(".")[0]) || DefaultEventController.UNAVAILABLE, this.browserName = ((sv = this.parserResult) === null || sv === void 0 ? void 0 : sv.browser.name) || DefaultEventController.UNAVAILABLE, this.browserVersion = ((lv = this.parserResult) === null || lv === void 0 ? void 0 : lv.browser.version) || DefaultEventController.UNAVAILABLE, this.deviceName = [((uv = this.parserResult) === null || uv === void 0 ? void 0 : uv.device.vendor) || "", ((cv = this.parserResult) === null || cv === void 0 ? void 0 : cv.device.model) || ""].join(" ").trim() || DefaultEventController.UNAVAILABLE;
  }
  publishEvent(tv, ev) {
    return __awaiter$G(this, void 0, void 0, function* () {
      const iv = Date.now();
      this.meetingHistoryStates.push({
        name: tv,
        timestampMs: iv
      });
      const ov = Object.freeze(Object.assign(this.getAttributes(iv), ev));
      this.audioVideoController.forEachObserver((av) => {
        av.eventDidReceive && av.eventDidReceive(tv, ov);
      }), this.reportEvent(tv, iv, ev);
    });
  }
  reportEvent(tv, ev, iv) {
    var ov;
    return __awaiter$G(this, void 0, void 0, function* () {
      let av;
      try {
        iv && (av = flattenEventAttributes_1.default(iv)), yield (ov = this.eventReporter) === null || ov === void 0 ? void 0 : ov.reportEvent(ev, tv, av);
      } catch (sv) {
        this.audioVideoController.logger.error(`Error reporting event ${sv}`);
      }
    });
  }
  pushMeetingState(tv, ev = Date.now()) {
    return __awaiter$G(this, void 0, void 0, function* () {
      this.meetingHistoryStates.push({
        name: tv,
        timestampMs: ev
      }), this.reportEvent(tv, ev);
    });
  }
  getAttributes(tv) {
    var ev, iv;
    return {
      attendeeId: this.audioVideoController.configuration.credentials.attendeeId,
      browserMajorVersion: this.browserMajorVersion,
      browserName: this.browserName,
      browserVersion: this.browserVersion,
      deviceName: this.deviceName,
      externalMeetingId: typeof this.audioVideoController.configuration.externalMeetingId == "string" ? this.audioVideoController.configuration.externalMeetingId : "",
      externalUserId: this.audioVideoController.configuration.credentials.externalUserId,
      meetingHistory: this.meetingHistoryStates,
      meetingId: this.audioVideoController.configuration.meetingId,
      osName: ((ev = this.parserResult) === null || ev === void 0 ? void 0 : ev.os.name) || DefaultEventController.UNAVAILABLE,
      osVersion: ((iv = this.parserResult) === null || iv === void 0 ? void 0 : iv.os.version) || DefaultEventController.UNAVAILABLE,
      sdkVersion: Versioning_1$6.default.sdkVersion,
      sdkName: Versioning_1$6.default.sdkName,
      timestampMs: tv
    };
  }
}
DefaultEventController$1.default = DefaultEventController;
DefaultEventController.UNAVAILABLE = "Unavailable";
var MeetingSessionStatus$1 = {}, indexMinimal = {}, minimal$1 = {}, aspromise = asPromise;
function asPromise(rv, tv) {
  for (var ev = new Array(arguments.length - 1), iv = 0, ov = 2, av = !0; ov < arguments.length; )
    ev[iv++] = arguments[ov++];
  return new Promise(function(lv, uv) {
    ev[iv] = function(dv) {
      if (av)
        if (av = !1, dv)
          uv(dv);
        else {
          for (var hv = new Array(arguments.length - 1), pv = 0; pv < hv.length; )
            hv[pv++] = arguments[pv];
          lv.apply(null, hv);
        }
    };
    try {
      rv.apply(tv || null, ev);
    } catch (cv) {
      av && (av = !1, uv(cv));
    }
  });
}
var base64$1 = {};
(function(rv) {
  var tv = rv;
  tv.length = function(lv) {
    var uv = lv.length;
    if (!uv)
      return 0;
    for (var cv = 0; --uv % 4 > 1 && lv.charAt(uv) === "="; )
      ++cv;
    return Math.ceil(lv.length * 3) / 4 - cv;
  };
  for (var ev = new Array(64), iv = new Array(123), ov = 0; ov < 64; )
    iv[ev[ov] = ov < 26 ? ov + 65 : ov < 52 ? ov + 71 : ov < 62 ? ov - 4 : ov - 59 | 43] = ov++;
  tv.encode = function(lv, uv, cv) {
    for (var dv = null, hv = [], pv = 0, yv = 0, Sv; uv < cv; ) {
      var _v = lv[uv++];
      switch (yv) {
        case 0:
          hv[pv++] = ev[_v >> 2], Sv = (_v & 3) << 4, yv = 1;
          break;
        case 1:
          hv[pv++] = ev[Sv | _v >> 4], Sv = (_v & 15) << 2, yv = 2;
          break;
        case 2:
          hv[pv++] = ev[Sv | _v >> 6], hv[pv++] = ev[_v & 63], yv = 0;
          break;
      }
      pv > 8191 && ((dv || (dv = [])).push(String.fromCharCode.apply(String, hv)), pv = 0);
    }
    return yv && (hv[pv++] = ev[Sv], hv[pv++] = 61, yv === 1 && (hv[pv++] = 61)), dv ? (pv && dv.push(String.fromCharCode.apply(String, hv.slice(0, pv))), dv.join("")) : String.fromCharCode.apply(String, hv.slice(0, pv));
  };
  var av = "invalid encoding";
  tv.decode = function(lv, uv, cv) {
    for (var dv = cv, hv = 0, pv, yv = 0; yv < lv.length; ) {
      var Sv = lv.charCodeAt(yv++);
      if (Sv === 61 && hv > 1)
        break;
      if ((Sv = iv[Sv]) === void 0)
        throw Error(av);
      switch (hv) {
        case 0:
          pv = Sv, hv = 1;
          break;
        case 1:
          uv[cv++] = pv << 2 | (Sv & 48) >> 4, pv = Sv, hv = 2;
          break;
        case 2:
          uv[cv++] = (pv & 15) << 4 | (Sv & 60) >> 2, pv = Sv, hv = 3;
          break;
        case 3:
          uv[cv++] = (pv & 3) << 6 | Sv, hv = 0;
          break;
      }
    }
    if (hv === 1)
      throw Error(av);
    return cv - dv;
  }, tv.test = function(lv) {
    return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(lv);
  };
})(base64$1);
var eventemitter = EventEmitter;
function EventEmitter() {
  this._listeners = {};
}
EventEmitter.prototype.on = function(tv, ev, iv) {
  return (this._listeners[tv] || (this._listeners[tv] = [])).push({
    fn: ev,
    ctx: iv || this
  }), this;
};
EventEmitter.prototype.off = function(tv, ev) {
  if (tv === void 0)
    this._listeners = {};
  else if (ev === void 0)
    this._listeners[tv] = [];
  else
    for (var iv = this._listeners[tv], ov = 0; ov < iv.length; )
      iv[ov].fn === ev ? iv.splice(ov, 1) : ++ov;
  return this;
};
EventEmitter.prototype.emit = function(tv) {
  var ev = this._listeners[tv];
  if (ev) {
    for (var iv = [], ov = 1; ov < arguments.length; )
      iv.push(arguments[ov++]);
    for (ov = 0; ov < ev.length; )
      ev[ov].fn.apply(ev[ov++].ctx, iv);
  }
  return this;
};
var float = factory(factory);
function factory(rv) {
  return typeof Float32Array < "u" ? function() {
    var tv = new Float32Array([-0]), ev = new Uint8Array(tv.buffer), iv = ev[3] === 128;
    function ov(uv, cv, dv) {
      tv[0] = uv, cv[dv] = ev[0], cv[dv + 1] = ev[1], cv[dv + 2] = ev[2], cv[dv + 3] = ev[3];
    }
    function av(uv, cv, dv) {
      tv[0] = uv, cv[dv] = ev[3], cv[dv + 1] = ev[2], cv[dv + 2] = ev[1], cv[dv + 3] = ev[0];
    }
    rv.writeFloatLE = iv ? ov : av, rv.writeFloatBE = iv ? av : ov;
    function sv(uv, cv) {
      return ev[0] = uv[cv], ev[1] = uv[cv + 1], ev[2] = uv[cv + 2], ev[3] = uv[cv + 3], tv[0];
    }
    function lv(uv, cv) {
      return ev[3] = uv[cv], ev[2] = uv[cv + 1], ev[1] = uv[cv + 2], ev[0] = uv[cv + 3], tv[0];
    }
    rv.readFloatLE = iv ? sv : lv, rv.readFloatBE = iv ? lv : sv;
  }() : function() {
    function tv(iv, ov, av, sv) {
      var lv = ov < 0 ? 1 : 0;
      if (lv && (ov = -ov), ov === 0)
        iv(1 / ov > 0 ? (
          /* positive */
          0
        ) : (
          /* negative 0 */
          2147483648
        ), av, sv);
      else if (isNaN(ov))
        iv(2143289344, av, sv);
      else if (ov > 34028234663852886e22)
        iv((lv << 31 | 2139095040) >>> 0, av, sv);
      else if (ov < 11754943508222875e-54)
        iv((lv << 31 | Math.round(ov / 1401298464324817e-60)) >>> 0, av, sv);
      else {
        var uv = Math.floor(Math.log(ov) / Math.LN2), cv = Math.round(ov * Math.pow(2, -uv) * 8388608) & 8388607;
        iv((lv << 31 | uv + 127 << 23 | cv) >>> 0, av, sv);
      }
    }
    rv.writeFloatLE = tv.bind(null, writeUintLE), rv.writeFloatBE = tv.bind(null, writeUintBE);
    function ev(iv, ov, av) {
      var sv = iv(ov, av), lv = (sv >> 31) * 2 + 1, uv = sv >>> 23 & 255, cv = sv & 8388607;
      return uv === 255 ? cv ? NaN : lv * (1 / 0) : uv === 0 ? lv * 1401298464324817e-60 * cv : lv * Math.pow(2, uv - 150) * (cv + 8388608);
    }
    rv.readFloatLE = ev.bind(null, readUintLE), rv.readFloatBE = ev.bind(null, readUintBE);
  }(), typeof Float64Array < "u" ? function() {
    var tv = new Float64Array([-0]), ev = new Uint8Array(tv.buffer), iv = ev[7] === 128;
    function ov(uv, cv, dv) {
      tv[0] = uv, cv[dv] = ev[0], cv[dv + 1] = ev[1], cv[dv + 2] = ev[2], cv[dv + 3] = ev[3], cv[dv + 4] = ev[4], cv[dv + 5] = ev[5], cv[dv + 6] = ev[6], cv[dv + 7] = ev[7];
    }
    function av(uv, cv, dv) {
      tv[0] = uv, cv[dv] = ev[7], cv[dv + 1] = ev[6], cv[dv + 2] = ev[5], cv[dv + 3] = ev[4], cv[dv + 4] = ev[3], cv[dv + 5] = ev[2], cv[dv + 6] = ev[1], cv[dv + 7] = ev[0];
    }
    rv.writeDoubleLE = iv ? ov : av, rv.writeDoubleBE = iv ? av : ov;
    function sv(uv, cv) {
      return ev[0] = uv[cv], ev[1] = uv[cv + 1], ev[2] = uv[cv + 2], ev[3] = uv[cv + 3], ev[4] = uv[cv + 4], ev[5] = uv[cv + 5], ev[6] = uv[cv + 6], ev[7] = uv[cv + 7], tv[0];
    }
    function lv(uv, cv) {
      return ev[7] = uv[cv], ev[6] = uv[cv + 1], ev[5] = uv[cv + 2], ev[4] = uv[cv + 3], ev[3] = uv[cv + 4], ev[2] = uv[cv + 5], ev[1] = uv[cv + 6], ev[0] = uv[cv + 7], tv[0];
    }
    rv.readDoubleLE = iv ? sv : lv, rv.readDoubleBE = iv ? lv : sv;
  }() : function() {
    function tv(iv, ov, av, sv, lv, uv) {
      var cv = sv < 0 ? 1 : 0;
      if (cv && (sv = -sv), sv === 0)
        iv(0, lv, uv + ov), iv(1 / sv > 0 ? (
          /* positive */
          0
        ) : (
          /* negative 0 */
          2147483648
        ), lv, uv + av);
      else if (isNaN(sv))
        iv(0, lv, uv + ov), iv(2146959360, lv, uv + av);
      else if (sv > 17976931348623157e292)
        iv(0, lv, uv + ov), iv((cv << 31 | 2146435072) >>> 0, lv, uv + av);
      else {
        var dv;
        if (sv < 22250738585072014e-324)
          dv = sv / 5e-324, iv(dv >>> 0, lv, uv + ov), iv((cv << 31 | dv / 4294967296) >>> 0, lv, uv + av);
        else {
          var hv = Math.floor(Math.log(sv) / Math.LN2);
          hv === 1024 && (hv = 1023), dv = sv * Math.pow(2, -hv), iv(dv * 4503599627370496 >>> 0, lv, uv + ov), iv((cv << 31 | hv + 1023 << 20 | dv * 1048576 & 1048575) >>> 0, lv, uv + av);
        }
      }
    }
    rv.writeDoubleLE = tv.bind(null, writeUintLE, 0, 4), rv.writeDoubleBE = tv.bind(null, writeUintBE, 4, 0);
    function ev(iv, ov, av, sv, lv) {
      var uv = iv(sv, lv + ov), cv = iv(sv, lv + av), dv = (cv >> 31) * 2 + 1, hv = cv >>> 20 & 2047, pv = 4294967296 * (cv & 1048575) + uv;
      return hv === 2047 ? pv ? NaN : dv * (1 / 0) : hv === 0 ? dv * 5e-324 * pv : dv * Math.pow(2, hv - 1075) * (pv + 4503599627370496);
    }
    rv.readDoubleLE = ev.bind(null, readUintLE, 0, 4), rv.readDoubleBE = ev.bind(null, readUintBE, 4, 0);
  }(), rv;
}
function writeUintLE(rv, tv, ev) {
  tv[ev] = rv & 255, tv[ev + 1] = rv >>> 8 & 255, tv[ev + 2] = rv >>> 16 & 255, tv[ev + 3] = rv >>> 24;
}
function writeUintBE(rv, tv, ev) {
  tv[ev] = rv >>> 24, tv[ev + 1] = rv >>> 16 & 255, tv[ev + 2] = rv >>> 8 & 255, tv[ev + 3] = rv & 255;
}
function readUintLE(rv, tv) {
  return (rv[tv] | rv[tv + 1] << 8 | rv[tv + 2] << 16 | rv[tv + 3] << 24) >>> 0;
}
function readUintBE(rv, tv) {
  return (rv[tv] << 24 | rv[tv + 1] << 16 | rv[tv + 2] << 8 | rv[tv + 3]) >>> 0;
}
var inquire_1 = inquire;
function inquire(moduleName) {
  try {
    var mod = eval("quire".replace(/^/, "re"))(moduleName);
    if (mod && (mod.length || Object.keys(mod).length))
      return mod;
  } catch (rv) {
  }
  return null;
}
var utf8$2 = {};
(function(rv) {
  var tv = rv;
  tv.length = function(iv) {
    for (var ov = 0, av = 0, sv = 0; sv < iv.length; ++sv)
      av = iv.charCodeAt(sv), av < 128 ? ov += 1 : av < 2048 ? ov += 2 : (av & 64512) === 55296 && (iv.charCodeAt(sv + 1) & 64512) === 56320 ? (++sv, ov += 4) : ov += 3;
    return ov;
  }, tv.read = function(iv, ov, av) {
    var sv = av - ov;
    if (sv < 1)
      return "";
    for (var lv = null, uv = [], cv = 0, dv; ov < av; )
      dv = iv[ov++], dv < 128 ? uv[cv++] = dv : dv > 191 && dv < 224 ? uv[cv++] = (dv & 31) << 6 | iv[ov++] & 63 : dv > 239 && dv < 365 ? (dv = ((dv & 7) << 18 | (iv[ov++] & 63) << 12 | (iv[ov++] & 63) << 6 | iv[ov++] & 63) - 65536, uv[cv++] = 55296 + (dv >> 10), uv[cv++] = 56320 + (dv & 1023)) : uv[cv++] = (dv & 15) << 12 | (iv[ov++] & 63) << 6 | iv[ov++] & 63, cv > 8191 && ((lv || (lv = [])).push(String.fromCharCode.apply(String, uv)), cv = 0);
    return lv ? (cv && lv.push(String.fromCharCode.apply(String, uv.slice(0, cv))), lv.join("")) : String.fromCharCode.apply(String, uv.slice(0, cv));
  }, tv.write = function(iv, ov, av) {
    for (var sv = av, lv, uv, cv = 0; cv < iv.length; ++cv)
      lv = iv.charCodeAt(cv), lv < 128 ? ov[av++] = lv : lv < 2048 ? (ov[av++] = lv >> 6 | 192, ov[av++] = lv & 63 | 128) : (lv & 64512) === 55296 && ((uv = iv.charCodeAt(cv + 1)) & 64512) === 56320 ? (lv = 65536 + ((lv & 1023) << 10) + (uv & 1023), ++cv, ov[av++] = lv >> 18 | 240, ov[av++] = lv >> 12 & 63 | 128, ov[av++] = lv >> 6 & 63 | 128, ov[av++] = lv & 63 | 128) : (ov[av++] = lv >> 12 | 224, ov[av++] = lv >> 6 & 63 | 128, ov[av++] = lv & 63 | 128);
    return av - sv;
  };
})(utf8$2);
var pool_1 = pool;
function pool(rv, tv, ev) {
  var iv = ev || 8192, ov = iv >>> 1, av = null, sv = iv;
  return function(uv) {
    if (uv < 1 || uv > ov)
      return rv(uv);
    sv + uv > iv && (av = rv(iv), sv = 0);
    var cv = tv.call(av, sv, sv += uv);
    return sv & 7 && (sv = (sv | 7) + 1), cv;
  };
}
var longbits, hasRequiredLongbits;
function requireLongbits() {
  if (hasRequiredLongbits)
    return longbits;
  hasRequiredLongbits = 1, longbits = tv;
  var rv = requireMinimal();
  function tv(av, sv) {
    this.lo = av >>> 0, this.hi = sv >>> 0;
  }
  var ev = tv.zero = new tv(0, 0);
  ev.toNumber = function() {
    return 0;
  }, ev.zzEncode = ev.zzDecode = function() {
    return this;
  }, ev.length = function() {
    return 1;
  };
  var iv = tv.zeroHash = "\0\0\0\0\0\0\0\0";
  tv.fromNumber = function(sv) {
    if (sv === 0)
      return ev;
    var lv = sv < 0;
    lv && (sv = -sv);
    var uv = sv >>> 0, cv = (sv - uv) / 4294967296 >>> 0;
    return lv && (cv = ~cv >>> 0, uv = ~uv >>> 0, ++uv > 4294967295 && (uv = 0, ++cv > 4294967295 && (cv = 0))), new tv(uv, cv);
  }, tv.from = function(sv) {
    if (typeof sv == "number")
      return tv.fromNumber(sv);
    if (rv.isString(sv))
      if (rv.Long)
        sv = rv.Long.fromString(sv);
      else
        return tv.fromNumber(parseInt(sv, 10));
    return sv.low || sv.high ? new tv(sv.low >>> 0, sv.high >>> 0) : ev;
  }, tv.prototype.toNumber = function(sv) {
    if (!sv && this.hi >>> 31) {
      var lv = ~this.lo + 1 >>> 0, uv = ~this.hi >>> 0;
      return lv || (uv = uv + 1 >>> 0), -(lv + uv * 4294967296);
    }
    return this.lo + this.hi * 4294967296;
  }, tv.prototype.toLong = function(sv) {
    return rv.Long ? new rv.Long(this.lo | 0, this.hi | 0, !!sv) : { low: this.lo | 0, high: this.hi | 0, unsigned: !!sv };
  };
  var ov = String.prototype.charCodeAt;
  return tv.fromHash = function(sv) {
    return sv === iv ? ev : new tv(
      (ov.call(sv, 0) | ov.call(sv, 1) << 8 | ov.call(sv, 2) << 16 | ov.call(sv, 3) << 24) >>> 0,
      (ov.call(sv, 4) | ov.call(sv, 5) << 8 | ov.call(sv, 6) << 16 | ov.call(sv, 7) << 24) >>> 0
    );
  }, tv.prototype.toHash = function() {
    return String.fromCharCode(
      this.lo & 255,
      this.lo >>> 8 & 255,
      this.lo >>> 16 & 255,
      this.lo >>> 24,
      this.hi & 255,
      this.hi >>> 8 & 255,
      this.hi >>> 16 & 255,
      this.hi >>> 24
    );
  }, tv.prototype.zzEncode = function() {
    var sv = this.hi >> 31;
    return this.hi = ((this.hi << 1 | this.lo >>> 31) ^ sv) >>> 0, this.lo = (this.lo << 1 ^ sv) >>> 0, this;
  }, tv.prototype.zzDecode = function() {
    var sv = -(this.lo & 1);
    return this.lo = ((this.lo >>> 1 | this.hi << 31) ^ sv) >>> 0, this.hi = (this.hi >>> 1 ^ sv) >>> 0, this;
  }, tv.prototype.length = function() {
    var sv = this.lo, lv = (this.lo >>> 28 | this.hi << 4) >>> 0, uv = this.hi >>> 24;
    return uv === 0 ? lv === 0 ? sv < 16384 ? sv < 128 ? 1 : 2 : sv < 2097152 ? 3 : 4 : lv < 16384 ? lv < 128 ? 5 : 6 : lv < 2097152 ? 7 : 8 : uv < 128 ? 9 : 10;
  }, longbits;
}
var hasRequiredMinimal;
function requireMinimal() {
  return hasRequiredMinimal || (hasRequiredMinimal = 1, function(rv) {
    var tv = rv;
    tv.asPromise = aspromise, tv.base64 = base64$1, tv.EventEmitter = eventemitter, tv.float = float, tv.inquire = inquire_1, tv.utf8 = utf8$2, tv.pool = pool_1, tv.LongBits = requireLongbits(), tv.global = typeof window < "u" && window || typeof commonjsGlobal < "u" && commonjsGlobal || typeof self < "u" && self || commonjsGlobal, tv.emptyArray = Object.freeze ? Object.freeze([]) : (
      /* istanbul ignore next */
      []
    ), tv.emptyObject = Object.freeze ? Object.freeze({}) : (
      /* istanbul ignore next */
      {}
    ), tv.isNode = !!(tv.global.process && tv.global.process.versions && tv.global.process.versions.node), tv.isInteger = Number.isInteger || /* istanbul ignore next */
    function(av) {
      return typeof av == "number" && isFinite(av) && Math.floor(av) === av;
    }, tv.isString = function(av) {
      return typeof av == "string" || av instanceof String;
    }, tv.isObject = function(av) {
      return av && typeof av == "object";
    }, tv.isset = /**
     * Checks if a property on a message is considered to be present.
     * @param {Object} obj Plain object or message instance
     * @param {string} prop Property name
     * @returns {boolean} `true` if considered to be present, otherwise `false`
     */
    tv.isSet = function(av, sv) {
      var lv = av[sv];
      return lv != null && av.hasOwnProperty(sv) ? typeof lv != "object" || (Array.isArray(lv) ? lv.length : Object.keys(lv).length) > 0 : !1;
    }, tv.Buffer = function() {
      try {
        var ov = tv.inquire("buffer").Buffer;
        return ov.prototype.utf8Write ? ov : (
          /* istanbul ignore next */
          null
        );
      } catch {
        return null;
      }
    }(), tv._Buffer_from = null, tv._Buffer_allocUnsafe = null, tv.newBuffer = function(av) {
      return typeof av == "number" ? tv.Buffer ? tv._Buffer_allocUnsafe(av) : new tv.Array(av) : tv.Buffer ? tv._Buffer_from(av) : typeof Uint8Array > "u" ? av : new Uint8Array(av);
    }, tv.Array = typeof Uint8Array < "u" ? Uint8Array : Array, tv.Long = /* istanbul ignore next */
    tv.global.dcodeIO && /* istanbul ignore next */
    tv.global.dcodeIO.Long || /* istanbul ignore next */
    tv.global.Long || tv.inquire("long"), tv.key2Re = /^true|false|0|1$/, tv.key32Re = /^-?(?:0|[1-9][0-9]*)$/, tv.key64Re = /^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/, tv.longToHash = function(av) {
      return av ? tv.LongBits.from(av).toHash() : tv.LongBits.zeroHash;
    }, tv.longFromHash = function(av, sv) {
      var lv = tv.LongBits.fromHash(av);
      return tv.Long ? tv.Long.fromBits(lv.lo, lv.hi, sv) : lv.toNumber(!!sv);
    };
    function ev(ov, av, sv) {
      for (var lv = Object.keys(av), uv = 0; uv < lv.length; ++uv)
        (ov[lv[uv]] === void 0 || !sv) && (ov[lv[uv]] = av[lv[uv]]);
      return ov;
    }
    tv.merge = ev, tv.lcFirst = function(av) {
      return av.charAt(0).toLowerCase() + av.substring(1);
    };
    function iv(ov) {
      function av(sv, lv) {
        if (!(this instanceof av))
          return new av(sv, lv);
        Object.defineProperty(this, "message", { get: function() {
          return sv;
        } }), Error.captureStackTrace ? Error.captureStackTrace(this, av) : Object.defineProperty(this, "stack", { value: new Error().stack || "" }), lv && ev(this, lv);
      }
      return (av.prototype = Object.create(Error.prototype)).constructor = av, Object.defineProperty(av.prototype, "name", { get: function() {
        return ov;
      } }), av.prototype.toString = function() {
        return this.name + ": " + this.message;
      }, av;
    }
    tv.newError = iv, tv.ProtocolError = iv("ProtocolError"), tv.oneOfGetter = function(av) {
      for (var sv = {}, lv = 0; lv < av.length; ++lv)
        sv[av[lv]] = 1;
      return function() {
        for (var uv = Object.keys(this), cv = uv.length - 1; cv > -1; --cv)
          if (sv[uv[cv]] === 1 && this[uv[cv]] !== void 0 && this[uv[cv]] !== null)
            return uv[cv];
      };
    }, tv.oneOfSetter = function(av) {
      return function(sv) {
        for (var lv = 0; lv < av.length; ++lv)
          av[lv] !== sv && delete this[av[lv]];
      };
    }, tv.toJSONOptions = {
      longs: String,
      enums: String,
      bytes: String,
      json: !0
    }, tv._configure = function() {
      var ov = tv.Buffer;
      if (!ov) {
        tv._Buffer_from = tv._Buffer_allocUnsafe = null;
        return;
      }
      tv._Buffer_from = ov.from !== Uint8Array.from && ov.from || /* istanbul ignore next */
      function(sv, lv) {
        return new ov(sv, lv);
      }, tv._Buffer_allocUnsafe = ov.allocUnsafe || /* istanbul ignore next */
      function(sv) {
        return new ov(sv);
      };
    };
  }(minimal$1)), minimal$1;
}
var writer = Writer$1, util$4 = requireMinimal(), BufferWriter$1, LongBits$1 = util$4.LongBits, base64 = util$4.base64, utf8$1 = util$4.utf8;
function Op(rv, tv, ev) {
  this.fn = rv, this.len = tv, this.next = void 0, this.val = ev;
}
function noop() {
}
function State(rv) {
  this.head = rv.head, this.tail = rv.tail, this.len = rv.len, this.next = rv.states;
}
function Writer$1() {
  this.len = 0, this.head = new Op(noop, 0, 0), this.tail = this.head, this.states = null;
}
Writer$1.create = util$4.Buffer ? function rv() {
  return (Writer$1.create = function() {
    return new BufferWriter$1();
  })();
} : function rv() {
  return new Writer$1();
};
Writer$1.alloc = function rv(tv) {
  return new util$4.Array(tv);
};
util$4.Array !== Array && (Writer$1.alloc = util$4.pool(Writer$1.alloc, util$4.Array.prototype.subarray));
Writer$1.prototype._push = function rv(tv, ev, iv) {
  return this.tail = this.tail.next = new Op(tv, ev, iv), this.len += ev, this;
};
function writeByte(rv, tv, ev) {
  tv[ev] = rv & 255;
}
function writeVarint32(rv, tv, ev) {
  for (; rv > 127; )
    tv[ev++] = rv & 127 | 128, rv >>>= 7;
  tv[ev] = rv;
}
function VarintOp(rv, tv) {
  this.len = rv, this.next = void 0, this.val = tv;
}
VarintOp.prototype = Object.create(Op.prototype);
VarintOp.prototype.fn = writeVarint32;
Writer$1.prototype.uint32 = function rv(tv) {
  return this.len += (this.tail = this.tail.next = new VarintOp(
    (tv = tv >>> 0) < 128 ? 1 : tv < 16384 ? 2 : tv < 2097152 ? 3 : tv < 268435456 ? 4 : 5,
    tv
  )).len, this;
};
Writer$1.prototype.int32 = function rv(tv) {
  return tv < 0 ? this._push(writeVarint64, 10, LongBits$1.fromNumber(tv)) : this.uint32(tv);
};
Writer$1.prototype.sint32 = function rv(tv) {
  return this.uint32((tv << 1 ^ tv >> 31) >>> 0);
};
function writeVarint64(rv, tv, ev) {
  for (; rv.hi; )
    tv[ev++] = rv.lo & 127 | 128, rv.lo = (rv.lo >>> 7 | rv.hi << 25) >>> 0, rv.hi >>>= 7;
  for (; rv.lo > 127; )
    tv[ev++] = rv.lo & 127 | 128, rv.lo = rv.lo >>> 7;
  tv[ev++] = rv.lo;
}
Writer$1.prototype.uint64 = function rv(tv) {
  var ev = LongBits$1.from(tv);
  return this._push(writeVarint64, ev.length(), ev);
};
Writer$1.prototype.int64 = Writer$1.prototype.uint64;
Writer$1.prototype.sint64 = function rv(tv) {
  var ev = LongBits$1.from(tv).zzEncode();
  return this._push(writeVarint64, ev.length(), ev);
};
Writer$1.prototype.bool = function rv(tv) {
  return this._push(writeByte, 1, tv ? 1 : 0);
};
function writeFixed32(rv, tv, ev) {
  tv[ev] = rv & 255, tv[ev + 1] = rv >>> 8 & 255, tv[ev + 2] = rv >>> 16 & 255, tv[ev + 3] = rv >>> 24;
}
Writer$1.prototype.fixed32 = function rv(tv) {
  return this._push(writeFixed32, 4, tv >>> 0);
};
Writer$1.prototype.sfixed32 = Writer$1.prototype.fixed32;
Writer$1.prototype.fixed64 = function rv(tv) {
  var ev = LongBits$1.from(tv);
  return this._push(writeFixed32, 4, ev.lo)._push(writeFixed32, 4, ev.hi);
};
Writer$1.prototype.sfixed64 = Writer$1.prototype.fixed64;
Writer$1.prototype.float = function rv(tv) {
  return this._push(util$4.float.writeFloatLE, 4, tv);
};
Writer$1.prototype.double = function rv(tv) {
  return this._push(util$4.float.writeDoubleLE, 8, tv);
};
var writeBytes = util$4.Array.prototype.set ? function rv(tv, ev, iv) {
  ev.set(tv, iv);
} : function rv(tv, ev, iv) {
  for (var ov = 0; ov < tv.length; ++ov)
    ev[iv + ov] = tv[ov];
};
Writer$1.prototype.bytes = function rv(tv) {
  var ev = tv.length >>> 0;
  if (!ev)
    return this._push(writeByte, 1, 0);
  if (util$4.isString(tv)) {
    var iv = Writer$1.alloc(ev = base64.length(tv));
    base64.decode(tv, iv, 0), tv = iv;
  }
  return this.uint32(ev)._push(writeBytes, ev, tv);
};
Writer$1.prototype.string = function rv(tv) {
  var ev = utf8$1.length(tv);
  return ev ? this.uint32(ev)._push(utf8$1.write, ev, tv) : this._push(writeByte, 1, 0);
};
Writer$1.prototype.fork = function rv() {
  return this.states = new State(this), this.head = this.tail = new Op(noop, 0, 0), this.len = 0, this;
};
Writer$1.prototype.reset = function rv() {
  return this.states ? (this.head = this.states.head, this.tail = this.states.tail, this.len = this.states.len, this.states = this.states.next) : (this.head = this.tail = new Op(noop, 0, 0), this.len = 0), this;
};
Writer$1.prototype.ldelim = function rv() {
  var tv = this.head, ev = this.tail, iv = this.len;
  return this.reset().uint32(iv), iv && (this.tail.next = tv.next, this.tail = ev, this.len += iv), this;
};
Writer$1.prototype.finish = function rv() {
  for (var tv = this.head.next, ev = this.constructor.alloc(this.len), iv = 0; tv; )
    tv.fn(tv.val, ev, iv), iv += tv.len, tv = tv.next;
  return ev;
};
Writer$1._configure = function(rv) {
  BufferWriter$1 = rv;
};
var writer_buffer = BufferWriter, Writer = writer;
(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;
var util$3 = requireMinimal(), Buffer$1 = util$3.Buffer;
function BufferWriter() {
  Writer.call(this);
}
BufferWriter.alloc = function rv(tv) {
  return (BufferWriter.alloc = util$3._Buffer_allocUnsafe)(tv);
};
var writeBytesBuffer = Buffer$1 && Buffer$1.prototype instanceof Uint8Array && Buffer$1.prototype.set.name === "set" ? function rv(tv, ev, iv) {
  ev.set(tv, iv);
} : function rv(tv, ev, iv) {
  if (tv.copy)
    tv.copy(ev, iv, 0, tv.length);
  else
    for (var ov = 0; ov < tv.length; )
      ev[iv++] = tv[ov++];
};
BufferWriter.prototype.bytes = function rv(tv) {
  util$3.isString(tv) && (tv = util$3._Buffer_from(tv, "base64"));
  var ev = tv.length >>> 0;
  return this.uint32(ev), ev && this._push(writeBytesBuffer, ev, tv), this;
};
function writeStringBuffer(rv, tv, ev) {
  rv.length < 40 ? util$3.utf8.write(rv, tv, ev) : tv.utf8Write(rv, ev);
}
BufferWriter.prototype.string = function rv(tv) {
  var ev = Buffer$1.byteLength(tv);
  return this.uint32(ev), ev && this._push(writeStringBuffer, ev, tv), this;
};
var reader = Reader$1, util$2 = requireMinimal(), BufferReader$1, LongBits = util$2.LongBits, utf8 = util$2.utf8;
function indexOutOfRange(rv, tv) {
  return RangeError("index out of range: " + rv.pos + " + " + (tv || 1) + " > " + rv.len);
}
function Reader$1(rv) {
  this.buf = rv, this.pos = 0, this.len = rv.length;
}
var create_array = typeof Uint8Array < "u" ? function rv(tv) {
  if (tv instanceof Uint8Array || Array.isArray(tv))
    return new Reader$1(tv);
  throw Error("illegal buffer");
} : function rv(tv) {
  if (Array.isArray(tv))
    return new Reader$1(tv);
  throw Error("illegal buffer");
};
Reader$1.create = util$2.Buffer ? function rv(tv) {
  return (Reader$1.create = function(iv) {
    return util$2.Buffer.isBuffer(iv) ? new BufferReader$1(iv) : create_array(iv);
  })(tv);
} : create_array;
Reader$1.prototype._slice = util$2.Array.prototype.subarray || /* istanbul ignore next */
util$2.Array.prototype.slice;
Reader$1.prototype.uint32 = /* @__PURE__ */ function rv() {
  var tv = 4294967295;
  return function() {
    if (tv = (this.buf[this.pos] & 127) >>> 0, this.buf[this.pos++] < 128 || (tv = (tv | (this.buf[this.pos] & 127) << 7) >>> 0, this.buf[this.pos++] < 128) || (tv = (tv | (this.buf[this.pos] & 127) << 14) >>> 0, this.buf[this.pos++] < 128) || (tv = (tv | (this.buf[this.pos] & 127) << 21) >>> 0, this.buf[this.pos++] < 128) || (tv = (tv | (this.buf[this.pos] & 15) << 28) >>> 0, this.buf[this.pos++] < 128))
      return tv;
    if ((this.pos += 5) > this.len)
      throw this.pos = this.len, indexOutOfRange(this, 10);
    return tv;
  };
}();
Reader$1.prototype.int32 = function rv() {
  return this.uint32() | 0;
};
Reader$1.prototype.sint32 = function rv() {
  var tv = this.uint32();
  return tv >>> 1 ^ -(tv & 1) | 0;
};
function readLongVarint() {
  var rv = new LongBits(0, 0), tv = 0;
  if (this.len - this.pos > 4) {
    for (; tv < 4; ++tv)
      if (rv.lo = (rv.lo | (this.buf[this.pos] & 127) << tv * 7) >>> 0, this.buf[this.pos++] < 128)
        return rv;
    if (rv.lo = (rv.lo | (this.buf[this.pos] & 127) << 28) >>> 0, rv.hi = (rv.hi | (this.buf[this.pos] & 127) >> 4) >>> 0, this.buf[this.pos++] < 128)
      return rv;
    tv = 0;
  } else {
    for (; tv < 3; ++tv) {
      if (this.pos >= this.len)
        throw indexOutOfRange(this);
      if (rv.lo = (rv.lo | (this.buf[this.pos] & 127) << tv * 7) >>> 0, this.buf[this.pos++] < 128)
        return rv;
    }
    return rv.lo = (rv.lo | (this.buf[this.pos++] & 127) << tv * 7) >>> 0, rv;
  }
  if (this.len - this.pos > 4) {
    for (; tv < 5; ++tv)
      if (rv.hi = (rv.hi | (this.buf[this.pos] & 127) << tv * 7 + 3) >>> 0, this.buf[this.pos++] < 128)
        return rv;
  } else
    for (; tv < 5; ++tv) {
      if (this.pos >= this.len)
        throw indexOutOfRange(this);
      if (rv.hi = (rv.hi | (this.buf[this.pos] & 127) << tv * 7 + 3) >>> 0, this.buf[this.pos++] < 128)
        return rv;
    }
  throw Error("invalid varint encoding");
}
Reader$1.prototype.bool = function rv() {
  return this.uint32() !== 0;
};
function readFixed32_end(rv, tv) {
  return (rv[tv - 4] | rv[tv - 3] << 8 | rv[tv - 2] << 16 | rv[tv - 1] << 24) >>> 0;
}
Reader$1.prototype.fixed32 = function rv() {
  if (this.pos + 4 > this.len)
    throw indexOutOfRange(this, 4);
  return readFixed32_end(this.buf, this.pos += 4);
};
Reader$1.prototype.sfixed32 = function rv() {
  if (this.pos + 4 > this.len)
    throw indexOutOfRange(this, 4);
  return readFixed32_end(this.buf, this.pos += 4) | 0;
};
function readFixed64() {
  if (this.pos + 8 > this.len)
    throw indexOutOfRange(this, 8);
  return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));
}
Reader$1.prototype.float = function rv() {
  if (this.pos + 4 > this.len)
    throw indexOutOfRange(this, 4);
  var tv = util$2.float.readFloatLE(this.buf, this.pos);
  return this.pos += 4, tv;
};
Reader$1.prototype.double = function rv() {
  if (this.pos + 8 > this.len)
    throw indexOutOfRange(this, 4);
  var tv = util$2.float.readDoubleLE(this.buf, this.pos);
  return this.pos += 8, tv;
};
Reader$1.prototype.bytes = function rv() {
  var tv = this.uint32(), ev = this.pos, iv = this.pos + tv;
  if (iv > this.len)
    throw indexOutOfRange(this, tv);
  return this.pos += tv, Array.isArray(this.buf) ? this.buf.slice(ev, iv) : ev === iv ? new this.buf.constructor(0) : this._slice.call(this.buf, ev, iv);
};
Reader$1.prototype.string = function rv() {
  var tv = this.bytes();
  return utf8.read(tv, 0, tv.length);
};
Reader$1.prototype.skip = function rv(tv) {
  if (typeof tv == "number") {
    if (this.pos + tv > this.len)
      throw indexOutOfRange(this, tv);
    this.pos += tv;
  } else
    do
      if (this.pos >= this.len)
        throw indexOutOfRange(this);
    while (this.buf[this.pos++] & 128);
  return this;
};
Reader$1.prototype.skipType = function(rv) {
  switch (rv) {
    case 0:
      this.skip();
      break;
    case 1:
      this.skip(8);
      break;
    case 2:
      this.skip(this.uint32());
      break;
    case 3:
      for (; (rv = this.uint32() & 7) !== 4; )
        this.skipType(rv);
      break;
    case 5:
      this.skip(4);
      break;
    default:
      throw Error("invalid wire type " + rv + " at offset " + this.pos);
  }
  return this;
};
Reader$1._configure = function(rv) {
  BufferReader$1 = rv;
  var tv = util$2.Long ? "toLong" : (
    /* istanbul ignore next */
    "toNumber"
  );
  util$2.merge(Reader$1.prototype, {
    int64: function() {
      return readLongVarint.call(this)[tv](!1);
    },
    uint64: function() {
      return readLongVarint.call(this)[tv](!0);
    },
    sint64: function() {
      return readLongVarint.call(this).zzDecode()[tv](!1);
    },
    fixed64: function() {
      return readFixed64.call(this)[tv](!0);
    },
    sfixed64: function() {
      return readFixed64.call(this)[tv](!1);
    }
  });
};
var reader_buffer = BufferReader, Reader = reader;
(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;
var util$1 = requireMinimal();
function BufferReader(rv) {
  Reader.call(this, rv);
}
util$1.Buffer && (BufferReader.prototype._slice = util$1.Buffer.prototype.slice);
BufferReader.prototype.string = function rv() {
  var tv = this.uint32();
  return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + tv, this.len));
};
var rpc = {}, service = Service, util = requireMinimal();
(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;
function Service(rv, tv, ev) {
  if (typeof rv != "function")
    throw TypeError("rpcImpl must be a function");
  util.EventEmitter.call(this), this.rpcImpl = rv, this.requestDelimited = !!tv, this.responseDelimited = !!ev;
}
Service.prototype.rpcCall = function rv(tv, ev, iv, ov, av) {
  if (!ov)
    throw TypeError("request must be specified");
  var sv = this;
  if (!av)
    return util.asPromise(rv, sv, tv, ev, iv, ov);
  if (!sv.rpcImpl) {
    setTimeout(function() {
      av(Error("already ended"));
    }, 0);
    return;
  }
  try {
    return sv.rpcImpl(
      tv,
      ev[sv.requestDelimited ? "encodeDelimited" : "encode"](ov).finish(),
      function(uv, cv) {
        if (uv)
          return sv.emit("error", uv, tv), av(uv);
        if (cv === null) {
          sv.end(
            /* endedByRPC */
            !0
          );
          return;
        }
        if (!(cv instanceof iv))
          try {
            cv = iv[sv.responseDelimited ? "decodeDelimited" : "decode"](cv);
          } catch (dv) {
            return sv.emit("error", dv, tv), av(dv);
          }
        return sv.emit("data", cv, tv), av(null, cv);
      }
    );
  } catch (lv) {
    sv.emit("error", lv, tv), setTimeout(function() {
      av(lv);
    }, 0);
    return;
  }
};
Service.prototype.end = function rv(tv) {
  return this.rpcImpl && (tv || this.rpcImpl(null, null, null), this.rpcImpl = null, this.emit("end").off()), this;
};
(function(rv) {
  var tv = rv;
  tv.Service = service;
})(rpc);
var roots = {};
(function(rv) {
  var tv = rv;
  tv.build = "minimal", tv.Writer = writer, tv.BufferWriter = writer_buffer, tv.Reader = reader, tv.BufferReader = reader_buffer, tv.util = requireMinimal(), tv.rpc = rpc, tv.roots = roots, tv.configure = ev;
  function ev() {
    tv.Reader._configure(tv.BufferReader), tv.util._configure();
  }
  tv.Writer._configure(tv.BufferWriter), ev();
})(indexMinimal);
var minimal = indexMinimal, $protobuf = minimal, $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util, $root = $protobuf.roots.default || ($protobuf.roots.default = {});
$root.SdkSignalFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.timestampMs = $util.Long ? $util.Long.fromBits(0, 0, !0) : 0, rv.prototype.type = 1, rv.prototype.error = null, rv.prototype.join = null, rv.prototype.joinack = null, rv.prototype.sub = null, rv.prototype.suback = null, rv.prototype.index = null, rv.prototype.pause = null, rv.prototype.leave = null, rv.prototype.leaveAck = null, rv.prototype.bitrates = null, rv.prototype.audioControl = null, rv.prototype.audioMetadata = null, rv.prototype.audioStreamIdInfo = null, rv.prototype.pingPong = null, rv.prototype.audioStatus = null, rv.prototype.clientMetric = null, rv.prototype.dataMessage = null, rv.prototype.remoteVideoUpdate = null, rv.prototype.primaryMeetingJoin = null, rv.prototype.primaryMeetingJoinAck = null, rv.prototype.primaryMeetingLeave = null, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).uint64(ev.timestampMs), iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).int32(ev.type), ev.error != null && ev.hasOwnProperty("error") && $root.SdkErrorFrame.encode(ev.error, iv.uint32(
      /* id 3, wireType 2 =*/
      26
    ).fork()).ldelim(), ev.join != null && ev.hasOwnProperty("join") && $root.SdkJoinFrame.encode(ev.join, iv.uint32(
      /* id 4, wireType 2 =*/
      34
    ).fork()).ldelim(), ev.joinack != null && ev.hasOwnProperty("joinack") && $root.SdkJoinAckFrame.encode(ev.joinack, iv.uint32(
      /* id 5, wireType 2 =*/
      42
    ).fork()).ldelim(), ev.sub != null && ev.hasOwnProperty("sub") && $root.SdkSubscribeFrame.encode(ev.sub, iv.uint32(
      /* id 6, wireType 2 =*/
      50
    ).fork()).ldelim(), ev.suback != null && ev.hasOwnProperty("suback") && $root.SdkSubscribeAckFrame.encode(ev.suback, iv.uint32(
      /* id 7, wireType 2 =*/
      58
    ).fork()).ldelim(), ev.index != null && ev.hasOwnProperty("index") && $root.SdkIndexFrame.encode(ev.index, iv.uint32(
      /* id 8, wireType 2 =*/
      66
    ).fork()).ldelim(), ev.pause != null && ev.hasOwnProperty("pause") && $root.SdkPauseResumeFrame.encode(ev.pause, iv.uint32(
      /* id 10, wireType 2 =*/
      82
    ).fork()).ldelim(), ev.leave != null && ev.hasOwnProperty("leave") && $root.SdkLeaveFrame.encode(ev.leave, iv.uint32(
      /* id 11, wireType 2 =*/
      90
    ).fork()).ldelim(), ev.leaveAck != null && ev.hasOwnProperty("leaveAck") && $root.SdkLeaveAckFrame.encode(ev.leaveAck, iv.uint32(
      /* id 12, wireType 2 =*/
      98
    ).fork()).ldelim(), ev.bitrates != null && ev.hasOwnProperty("bitrates") && $root.SdkBitrateFrame.encode(ev.bitrates, iv.uint32(
      /* id 14, wireType 2 =*/
      114
    ).fork()).ldelim(), ev.audioControl != null && ev.hasOwnProperty("audioControl") && $root.SdkAudioControlFrame.encode(ev.audioControl, iv.uint32(
      /* id 17, wireType 2 =*/
      138
    ).fork()).ldelim(), ev.audioMetadata != null && ev.hasOwnProperty("audioMetadata") && $root.SdkAudioMetadataFrame.encode(ev.audioMetadata, iv.uint32(
      /* id 18, wireType 2 =*/
      146
    ).fork()).ldelim(), ev.audioStreamIdInfo != null && ev.hasOwnProperty("audioStreamIdInfo") && $root.SdkAudioStreamIdInfoFrame.encode(ev.audioStreamIdInfo, iv.uint32(
      /* id 19, wireType 2 =*/
      154
    ).fork()).ldelim(), ev.pingPong != null && ev.hasOwnProperty("pingPong") && $root.SdkPingPongFrame.encode(ev.pingPong, iv.uint32(
      /* id 20, wireType 2 =*/
      162
    ).fork()).ldelim(), ev.audioStatus != null && ev.hasOwnProperty("audioStatus") && $root.SdkAudioStatusFrame.encode(ev.audioStatus, iv.uint32(
      /* id 21, wireType 2 =*/
      170
    ).fork()).ldelim(), ev.clientMetric != null && ev.hasOwnProperty("clientMetric") && $root.SdkClientMetricFrame.encode(ev.clientMetric, iv.uint32(
      /* id 22, wireType 2 =*/
      178
    ).fork()).ldelim(), ev.dataMessage != null && ev.hasOwnProperty("dataMessage") && $root.SdkDataMessageFrame.encode(ev.dataMessage, iv.uint32(
      /* id 23, wireType 2 =*/
      186
    ).fork()).ldelim(), ev.remoteVideoUpdate != null && ev.hasOwnProperty("remoteVideoUpdate") && $root.SdkRemoteVideoUpdateFrame.encode(ev.remoteVideoUpdate, iv.uint32(
      /* id 25, wireType 2 =*/
      202
    ).fork()).ldelim(), ev.primaryMeetingJoin != null && ev.hasOwnProperty("primaryMeetingJoin") && $root.SdkPrimaryMeetingJoinFrame.encode(ev.primaryMeetingJoin, iv.uint32(
      /* id 26, wireType 2 =*/
      210
    ).fork()).ldelim(), ev.primaryMeetingJoinAck != null && ev.hasOwnProperty("primaryMeetingJoinAck") && $root.SdkPrimaryMeetingJoinAckFrame.encode(ev.primaryMeetingJoinAck, iv.uint32(
      /* id 27, wireType 2 =*/
      218
    ).fork()).ldelim(), ev.primaryMeetingLeave != null && ev.hasOwnProperty("primaryMeetingLeave") && $root.SdkPrimaryMeetingLeaveFrame.encode(ev.primaryMeetingLeave, iv.uint32(
      /* id 28, wireType 2 =*/
      226
    ).fork()).ldelim(), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkSignalFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.timestampMs = ev.uint64();
          break;
        case 2:
          av.type = ev.int32();
          break;
        case 3:
          av.error = $root.SdkErrorFrame.decode(ev, ev.uint32());
          break;
        case 4:
          av.join = $root.SdkJoinFrame.decode(ev, ev.uint32());
          break;
        case 5:
          av.joinack = $root.SdkJoinAckFrame.decode(ev, ev.uint32());
          break;
        case 6:
          av.sub = $root.SdkSubscribeFrame.decode(ev, ev.uint32());
          break;
        case 7:
          av.suback = $root.SdkSubscribeAckFrame.decode(ev, ev.uint32());
          break;
        case 8:
          av.index = $root.SdkIndexFrame.decode(ev, ev.uint32());
          break;
        case 10:
          av.pause = $root.SdkPauseResumeFrame.decode(ev, ev.uint32());
          break;
        case 11:
          av.leave = $root.SdkLeaveFrame.decode(ev, ev.uint32());
          break;
        case 12:
          av.leaveAck = $root.SdkLeaveAckFrame.decode(ev, ev.uint32());
          break;
        case 14:
          av.bitrates = $root.SdkBitrateFrame.decode(ev, ev.uint32());
          break;
        case 17:
          av.audioControl = $root.SdkAudioControlFrame.decode(ev, ev.uint32());
          break;
        case 18:
          av.audioMetadata = $root.SdkAudioMetadataFrame.decode(ev, ev.uint32());
          break;
        case 19:
          av.audioStreamIdInfo = $root.SdkAudioStreamIdInfoFrame.decode(ev, ev.uint32());
          break;
        case 20:
          av.pingPong = $root.SdkPingPongFrame.decode(ev, ev.uint32());
          break;
        case 21:
          av.audioStatus = $root.SdkAudioStatusFrame.decode(ev, ev.uint32());
          break;
        case 22:
          av.clientMetric = $root.SdkClientMetricFrame.decode(ev, ev.uint32());
          break;
        case 23:
          av.dataMessage = $root.SdkDataMessageFrame.decode(ev, ev.uint32());
          break;
        case 25:
          av.remoteVideoUpdate = $root.SdkRemoteVideoUpdateFrame.decode(ev, ev.uint32());
          break;
        case 26:
          av.primaryMeetingJoin = $root.SdkPrimaryMeetingJoinFrame.decode(ev, ev.uint32());
          break;
        case 27:
          av.primaryMeetingJoinAck = $root.SdkPrimaryMeetingJoinAckFrame.decode(ev, ev.uint32());
          break;
        case 28:
          av.primaryMeetingLeave = $root.SdkPrimaryMeetingLeaveFrame.decode(ev, ev.uint32());
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    if (!av.hasOwnProperty("timestampMs"))
      throw $util.ProtocolError("missing required 'timestampMs'", { instance: av });
    if (!av.hasOwnProperty("type"))
      throw $util.ProtocolError("missing required 'type'", { instance: av });
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (!$util.isInteger(ev.timestampMs) && !(ev.timestampMs && $util.isInteger(ev.timestampMs.low) && $util.isInteger(ev.timestampMs.high)))
      return "timestampMs: integer|Long expected";
    switch (ev.type) {
      default:
        return "type: enum value expected";
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 7:
      case 8:
      case 9:
      case 10:
      case 13:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
        break;
    }
    if (ev.error != null && ev.hasOwnProperty("error")) {
      var iv = $root.SdkErrorFrame.verify(ev.error);
      if (iv)
        return "error." + iv;
    }
    if (ev.join != null && ev.hasOwnProperty("join")) {
      var iv = $root.SdkJoinFrame.verify(ev.join);
      if (iv)
        return "join." + iv;
    }
    if (ev.joinack != null && ev.hasOwnProperty("joinack")) {
      var iv = $root.SdkJoinAckFrame.verify(ev.joinack);
      if (iv)
        return "joinack." + iv;
    }
    if (ev.sub != null && ev.hasOwnProperty("sub")) {
      var iv = $root.SdkSubscribeFrame.verify(ev.sub);
      if (iv)
        return "sub." + iv;
    }
    if (ev.suback != null && ev.hasOwnProperty("suback")) {
      var iv = $root.SdkSubscribeAckFrame.verify(ev.suback);
      if (iv)
        return "suback." + iv;
    }
    if (ev.index != null && ev.hasOwnProperty("index")) {
      var iv = $root.SdkIndexFrame.verify(ev.index);
      if (iv)
        return "index." + iv;
    }
    if (ev.pause != null && ev.hasOwnProperty("pause")) {
      var iv = $root.SdkPauseResumeFrame.verify(ev.pause);
      if (iv)
        return "pause." + iv;
    }
    if (ev.leave != null && ev.hasOwnProperty("leave")) {
      var iv = $root.SdkLeaveFrame.verify(ev.leave);
      if (iv)
        return "leave." + iv;
    }
    if (ev.leaveAck != null && ev.hasOwnProperty("leaveAck")) {
      var iv = $root.SdkLeaveAckFrame.verify(ev.leaveAck);
      if (iv)
        return "leaveAck." + iv;
    }
    if (ev.bitrates != null && ev.hasOwnProperty("bitrates")) {
      var iv = $root.SdkBitrateFrame.verify(ev.bitrates);
      if (iv)
        return "bitrates." + iv;
    }
    if (ev.audioControl != null && ev.hasOwnProperty("audioControl")) {
      var iv = $root.SdkAudioControlFrame.verify(ev.audioControl);
      if (iv)
        return "audioControl." + iv;
    }
    if (ev.audioMetadata != null && ev.hasOwnProperty("audioMetadata")) {
      var iv = $root.SdkAudioMetadataFrame.verify(ev.audioMetadata);
      if (iv)
        return "audioMetadata." + iv;
    }
    if (ev.audioStreamIdInfo != null && ev.hasOwnProperty("audioStreamIdInfo")) {
      var iv = $root.SdkAudioStreamIdInfoFrame.verify(ev.audioStreamIdInfo);
      if (iv)
        return "audioStreamIdInfo." + iv;
    }
    if (ev.pingPong != null && ev.hasOwnProperty("pingPong")) {
      var iv = $root.SdkPingPongFrame.verify(ev.pingPong);
      if (iv)
        return "pingPong." + iv;
    }
    if (ev.audioStatus != null && ev.hasOwnProperty("audioStatus")) {
      var iv = $root.SdkAudioStatusFrame.verify(ev.audioStatus);
      if (iv)
        return "audioStatus." + iv;
    }
    if (ev.clientMetric != null && ev.hasOwnProperty("clientMetric")) {
      var iv = $root.SdkClientMetricFrame.verify(ev.clientMetric);
      if (iv)
        return "clientMetric." + iv;
    }
    if (ev.dataMessage != null && ev.hasOwnProperty("dataMessage")) {
      var iv = $root.SdkDataMessageFrame.verify(ev.dataMessage);
      if (iv)
        return "dataMessage." + iv;
    }
    if (ev.remoteVideoUpdate != null && ev.hasOwnProperty("remoteVideoUpdate")) {
      var iv = $root.SdkRemoteVideoUpdateFrame.verify(ev.remoteVideoUpdate);
      if (iv)
        return "remoteVideoUpdate." + iv;
    }
    if (ev.primaryMeetingJoin != null && ev.hasOwnProperty("primaryMeetingJoin")) {
      var iv = $root.SdkPrimaryMeetingJoinFrame.verify(ev.primaryMeetingJoin);
      if (iv)
        return "primaryMeetingJoin." + iv;
    }
    if (ev.primaryMeetingJoinAck != null && ev.hasOwnProperty("primaryMeetingJoinAck")) {
      var iv = $root.SdkPrimaryMeetingJoinAckFrame.verify(ev.primaryMeetingJoinAck);
      if (iv)
        return "primaryMeetingJoinAck." + iv;
    }
    if (ev.primaryMeetingLeave != null && ev.hasOwnProperty("primaryMeetingLeave")) {
      var iv = $root.SdkPrimaryMeetingLeaveFrame.verify(ev.primaryMeetingLeave);
      if (iv)
        return "primaryMeetingLeave." + iv;
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkSignalFrame)
      return ev;
    var iv = new $root.SdkSignalFrame();
    switch (ev.timestampMs != null && ($util.Long ? (iv.timestampMs = $util.Long.fromValue(ev.timestampMs)).unsigned = !0 : typeof ev.timestampMs == "string" ? iv.timestampMs = parseInt(ev.timestampMs, 10) : typeof ev.timestampMs == "number" ? iv.timestampMs = ev.timestampMs : typeof ev.timestampMs == "object" && (iv.timestampMs = new $util.LongBits(ev.timestampMs.low >>> 0, ev.timestampMs.high >>> 0).toNumber(!0))), ev.type) {
      case "JOIN":
      case 1:
        iv.type = 1;
        break;
      case "JOIN_ACK":
      case 2:
        iv.type = 2;
        break;
      case "SUBSCRIBE":
      case 3:
        iv.type = 3;
        break;
      case "SUBSCRIBE_ACK":
      case 4:
        iv.type = 4;
        break;
      case "INDEX":
      case 5:
        iv.type = 5;
        break;
      case "PAUSE":
      case 7:
        iv.type = 7;
        break;
      case "RESUME":
      case 8:
        iv.type = 8;
        break;
      case "LEAVE":
      case 9:
        iv.type = 9;
        break;
      case "LEAVE_ACK":
      case 10:
        iv.type = 10;
        break;
      case "BITRATES":
      case 13:
        iv.type = 13;
        break;
      case "AUDIO_CONTROL":
      case 16:
        iv.type = 16;
        break;
      case "AUDIO_METADATA":
      case 17:
        iv.type = 17;
        break;
      case "AUDIO_STREAM_ID_INFO":
      case 18:
        iv.type = 18;
        break;
      case "PING_PONG":
      case 19:
        iv.type = 19;
        break;
      case "AUDIO_STATUS":
      case 20:
        iv.type = 20;
        break;
      case "CLIENT_METRIC":
      case 21:
        iv.type = 21;
        break;
      case "DATA_MESSAGE":
      case 22:
        iv.type = 22;
        break;
      case "REMOTE_VIDEO_UPDATE":
      case 24:
        iv.type = 24;
        break;
      case "PRIMARY_MEETING_JOIN":
      case 25:
        iv.type = 25;
        break;
      case "PRIMARY_MEETING_JOIN_ACK":
      case 26:
        iv.type = 26;
        break;
      case "PRIMARY_MEETING_LEAVE":
      case 27:
        iv.type = 27;
        break;
    }
    if (ev.error != null) {
      if (typeof ev.error != "object")
        throw TypeError(".SdkSignalFrame.error: object expected");
      iv.error = $root.SdkErrorFrame.fromObject(ev.error);
    }
    if (ev.join != null) {
      if (typeof ev.join != "object")
        throw TypeError(".SdkSignalFrame.join: object expected");
      iv.join = $root.SdkJoinFrame.fromObject(ev.join);
    }
    if (ev.joinack != null) {
      if (typeof ev.joinack != "object")
        throw TypeError(".SdkSignalFrame.joinack: object expected");
      iv.joinack = $root.SdkJoinAckFrame.fromObject(ev.joinack);
    }
    if (ev.sub != null) {
      if (typeof ev.sub != "object")
        throw TypeError(".SdkSignalFrame.sub: object expected");
      iv.sub = $root.SdkSubscribeFrame.fromObject(ev.sub);
    }
    if (ev.suback != null) {
      if (typeof ev.suback != "object")
        throw TypeError(".SdkSignalFrame.suback: object expected");
      iv.suback = $root.SdkSubscribeAckFrame.fromObject(ev.suback);
    }
    if (ev.index != null) {
      if (typeof ev.index != "object")
        throw TypeError(".SdkSignalFrame.index: object expected");
      iv.index = $root.SdkIndexFrame.fromObject(ev.index);
    }
    if (ev.pause != null) {
      if (typeof ev.pause != "object")
        throw TypeError(".SdkSignalFrame.pause: object expected");
      iv.pause = $root.SdkPauseResumeFrame.fromObject(ev.pause);
    }
    if (ev.leave != null) {
      if (typeof ev.leave != "object")
        throw TypeError(".SdkSignalFrame.leave: object expected");
      iv.leave = $root.SdkLeaveFrame.fromObject(ev.leave);
    }
    if (ev.leaveAck != null) {
      if (typeof ev.leaveAck != "object")
        throw TypeError(".SdkSignalFrame.leaveAck: object expected");
      iv.leaveAck = $root.SdkLeaveAckFrame.fromObject(ev.leaveAck);
    }
    if (ev.bitrates != null) {
      if (typeof ev.bitrates != "object")
        throw TypeError(".SdkSignalFrame.bitrates: object expected");
      iv.bitrates = $root.SdkBitrateFrame.fromObject(ev.bitrates);
    }
    if (ev.audioControl != null) {
      if (typeof ev.audioControl != "object")
        throw TypeError(".SdkSignalFrame.audioControl: object expected");
      iv.audioControl = $root.SdkAudioControlFrame.fromObject(ev.audioControl);
    }
    if (ev.audioMetadata != null) {
      if (typeof ev.audioMetadata != "object")
        throw TypeError(".SdkSignalFrame.audioMetadata: object expected");
      iv.audioMetadata = $root.SdkAudioMetadataFrame.fromObject(ev.audioMetadata);
    }
    if (ev.audioStreamIdInfo != null) {
      if (typeof ev.audioStreamIdInfo != "object")
        throw TypeError(".SdkSignalFrame.audioStreamIdInfo: object expected");
      iv.audioStreamIdInfo = $root.SdkAudioStreamIdInfoFrame.fromObject(ev.audioStreamIdInfo);
    }
    if (ev.pingPong != null) {
      if (typeof ev.pingPong != "object")
        throw TypeError(".SdkSignalFrame.pingPong: object expected");
      iv.pingPong = $root.SdkPingPongFrame.fromObject(ev.pingPong);
    }
    if (ev.audioStatus != null) {
      if (typeof ev.audioStatus != "object")
        throw TypeError(".SdkSignalFrame.audioStatus: object expected");
      iv.audioStatus = $root.SdkAudioStatusFrame.fromObject(ev.audioStatus);
    }
    if (ev.clientMetric != null) {
      if (typeof ev.clientMetric != "object")
        throw TypeError(".SdkSignalFrame.clientMetric: object expected");
      iv.clientMetric = $root.SdkClientMetricFrame.fromObject(ev.clientMetric);
    }
    if (ev.dataMessage != null) {
      if (typeof ev.dataMessage != "object")
        throw TypeError(".SdkSignalFrame.dataMessage: object expected");
      iv.dataMessage = $root.SdkDataMessageFrame.fromObject(ev.dataMessage);
    }
    if (ev.remoteVideoUpdate != null) {
      if (typeof ev.remoteVideoUpdate != "object")
        throw TypeError(".SdkSignalFrame.remoteVideoUpdate: object expected");
      iv.remoteVideoUpdate = $root.SdkRemoteVideoUpdateFrame.fromObject(ev.remoteVideoUpdate);
    }
    if (ev.primaryMeetingJoin != null) {
      if (typeof ev.primaryMeetingJoin != "object")
        throw TypeError(".SdkSignalFrame.primaryMeetingJoin: object expected");
      iv.primaryMeetingJoin = $root.SdkPrimaryMeetingJoinFrame.fromObject(ev.primaryMeetingJoin);
    }
    if (ev.primaryMeetingJoinAck != null) {
      if (typeof ev.primaryMeetingJoinAck != "object")
        throw TypeError(".SdkSignalFrame.primaryMeetingJoinAck: object expected");
      iv.primaryMeetingJoinAck = $root.SdkPrimaryMeetingJoinAckFrame.fromObject(ev.primaryMeetingJoinAck);
    }
    if (ev.primaryMeetingLeave != null) {
      if (typeof ev.primaryMeetingLeave != "object")
        throw TypeError(".SdkSignalFrame.primaryMeetingLeave: object expected");
      iv.primaryMeetingLeave = $root.SdkPrimaryMeetingLeaveFrame.fromObject(ev.primaryMeetingLeave);
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if (iv.defaults) {
      if ($util.Long) {
        var av = new $util.Long(0, 0, !0);
        ov.timestampMs = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.timestampMs = iv.longs === String ? "0" : 0;
      ov.type = iv.enums === String ? "JOIN" : 1, ov.error = null, ov.join = null, ov.joinack = null, ov.sub = null, ov.suback = null, ov.index = null, ov.pause = null, ov.leave = null, ov.leaveAck = null, ov.bitrates = null, ov.audioControl = null, ov.audioMetadata = null, ov.audioStreamIdInfo = null, ov.pingPong = null, ov.audioStatus = null, ov.clientMetric = null, ov.dataMessage = null, ov.remoteVideoUpdate = null, ov.primaryMeetingJoin = null, ov.primaryMeetingJoinAck = null, ov.primaryMeetingLeave = null;
    }
    return ev.timestampMs != null && ev.hasOwnProperty("timestampMs") && (typeof ev.timestampMs == "number" ? ov.timestampMs = iv.longs === String ? String(ev.timestampMs) : ev.timestampMs : ov.timestampMs = iv.longs === String ? $util.Long.prototype.toString.call(ev.timestampMs) : iv.longs === Number ? new $util.LongBits(ev.timestampMs.low >>> 0, ev.timestampMs.high >>> 0).toNumber(!0) : ev.timestampMs), ev.type != null && ev.hasOwnProperty("type") && (ov.type = iv.enums === String ? $root.SdkSignalFrame.Type[ev.type] : ev.type), ev.error != null && ev.hasOwnProperty("error") && (ov.error = $root.SdkErrorFrame.toObject(ev.error, iv)), ev.join != null && ev.hasOwnProperty("join") && (ov.join = $root.SdkJoinFrame.toObject(ev.join, iv)), ev.joinack != null && ev.hasOwnProperty("joinack") && (ov.joinack = $root.SdkJoinAckFrame.toObject(ev.joinack, iv)), ev.sub != null && ev.hasOwnProperty("sub") && (ov.sub = $root.SdkSubscribeFrame.toObject(ev.sub, iv)), ev.suback != null && ev.hasOwnProperty("suback") && (ov.suback = $root.SdkSubscribeAckFrame.toObject(ev.suback, iv)), ev.index != null && ev.hasOwnProperty("index") && (ov.index = $root.SdkIndexFrame.toObject(ev.index, iv)), ev.pause != null && ev.hasOwnProperty("pause") && (ov.pause = $root.SdkPauseResumeFrame.toObject(ev.pause, iv)), ev.leave != null && ev.hasOwnProperty("leave") && (ov.leave = $root.SdkLeaveFrame.toObject(ev.leave, iv)), ev.leaveAck != null && ev.hasOwnProperty("leaveAck") && (ov.leaveAck = $root.SdkLeaveAckFrame.toObject(ev.leaveAck, iv)), ev.bitrates != null && ev.hasOwnProperty("bitrates") && (ov.bitrates = $root.SdkBitrateFrame.toObject(ev.bitrates, iv)), ev.audioControl != null && ev.hasOwnProperty("audioControl") && (ov.audioControl = $root.SdkAudioControlFrame.toObject(ev.audioControl, iv)), ev.audioMetadata != null && ev.hasOwnProperty("audioMetadata") && (ov.audioMetadata = $root.SdkAudioMetadataFrame.toObject(ev.audioMetadata, iv)), ev.audioStreamIdInfo != null && ev.hasOwnProperty("audioStreamIdInfo") && (ov.audioStreamIdInfo = $root.SdkAudioStreamIdInfoFrame.toObject(ev.audioStreamIdInfo, iv)), ev.pingPong != null && ev.hasOwnProperty("pingPong") && (ov.pingPong = $root.SdkPingPongFrame.toObject(ev.pingPong, iv)), ev.audioStatus != null && ev.hasOwnProperty("audioStatus") && (ov.audioStatus = $root.SdkAudioStatusFrame.toObject(ev.audioStatus, iv)), ev.clientMetric != null && ev.hasOwnProperty("clientMetric") && (ov.clientMetric = $root.SdkClientMetricFrame.toObject(ev.clientMetric, iv)), ev.dataMessage != null && ev.hasOwnProperty("dataMessage") && (ov.dataMessage = $root.SdkDataMessageFrame.toObject(ev.dataMessage, iv)), ev.remoteVideoUpdate != null && ev.hasOwnProperty("remoteVideoUpdate") && (ov.remoteVideoUpdate = $root.SdkRemoteVideoUpdateFrame.toObject(ev.remoteVideoUpdate, iv)), ev.primaryMeetingJoin != null && ev.hasOwnProperty("primaryMeetingJoin") && (ov.primaryMeetingJoin = $root.SdkPrimaryMeetingJoinFrame.toObject(ev.primaryMeetingJoin, iv)), ev.primaryMeetingJoinAck != null && ev.hasOwnProperty("primaryMeetingJoinAck") && (ov.primaryMeetingJoinAck = $root.SdkPrimaryMeetingJoinAckFrame.toObject(ev.primaryMeetingJoinAck, iv)), ev.primaryMeetingLeave != null && ev.hasOwnProperty("primaryMeetingLeave") && (ov.primaryMeetingLeave = $root.SdkPrimaryMeetingLeaveFrame.toObject(ev.primaryMeetingLeave, iv)), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv.Type = function() {
    var tv = {}, ev = Object.create(tv);
    return ev[tv[1] = "JOIN"] = 1, ev[tv[2] = "JOIN_ACK"] = 2, ev[tv[3] = "SUBSCRIBE"] = 3, ev[tv[4] = "SUBSCRIBE_ACK"] = 4, ev[tv[5] = "INDEX"] = 5, ev[tv[7] = "PAUSE"] = 7, ev[tv[8] = "RESUME"] = 8, ev[tv[9] = "LEAVE"] = 9, ev[tv[10] = "LEAVE_ACK"] = 10, ev[tv[13] = "BITRATES"] = 13, ev[tv[16] = "AUDIO_CONTROL"] = 16, ev[tv[17] = "AUDIO_METADATA"] = 17, ev[tv[18] = "AUDIO_STREAM_ID_INFO"] = 18, ev[tv[19] = "PING_PONG"] = 19, ev[tv[20] = "AUDIO_STATUS"] = 20, ev[tv[21] = "CLIENT_METRIC"] = 21, ev[tv[22] = "DATA_MESSAGE"] = 22, ev[tv[24] = "REMOTE_VIDEO_UPDATE"] = 24, ev[tv[25] = "PRIMARY_MEETING_JOIN"] = 25, ev[tv[26] = "PRIMARY_MEETING_JOIN_ACK"] = 26, ev[tv[27] = "PRIMARY_MEETING_LEAVE"] = 27, ev;
  }(), rv;
}();
$root.SdkErrorFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.status = 0, rv.prototype.description = "", rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.status != null && ev.hasOwnProperty("status") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).uint32(ev.status), ev.description != null && ev.hasOwnProperty("description") && iv.uint32(
      /* id 2, wireType 2 =*/
      18
    ).string(ev.description), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkErrorFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.status = ev.uint32();
          break;
        case 2:
          av.description = ev.string();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.status != null && ev.hasOwnProperty("status") && !$util.isInteger(ev.status) ? "status: integer expected" : ev.description != null && ev.hasOwnProperty("description") && !$util.isString(ev.description) ? "description: string expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkErrorFrame)
      return ev;
    var iv = new $root.SdkErrorFrame();
    return ev.status != null && (iv.status = ev.status >>> 0), ev.description != null && (iv.description = String(ev.description)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.status = 0, ov.description = ""), ev.status != null && ev.hasOwnProperty("status") && (ov.status = ev.status), ev.description != null && ev.hasOwnProperty("description") && (ov.description = ev.description), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkJoinFlags = function() {
  var rv = {}, tv = Object.create(rv);
  return tv[rv[1] = "SEND_BITRATES"] = 1, tv[rv[2] = "HAS_STREAM_UPDATE"] = 2, tv[rv[8] = "USE_SEND_SIDE_BWE"] = 8, tv[rv[16] = "COMPLETE_VIDEO_SOURCES_LIST"] = 16, tv[rv[32] = "EXCLUDE_SELF_CONTENT_IN_INDEX"] = 32, tv;
}();
$root.SdkClientDetails = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.appName = "", rv.prototype.appVersion = "", rv.prototype.deviceModel = "", rv.prototype.deviceMake = "", rv.prototype.platformName = "", rv.prototype.platformVersion = "", rv.prototype.clientSource = "", rv.prototype.chimeSdkVersion = "", rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.appName != null && ev.hasOwnProperty("appName") && iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).string(ev.appName), ev.appVersion != null && ev.hasOwnProperty("appVersion") && iv.uint32(
      /* id 2, wireType 2 =*/
      18
    ).string(ev.appVersion), ev.deviceModel != null && ev.hasOwnProperty("deviceModel") && iv.uint32(
      /* id 3, wireType 2 =*/
      26
    ).string(ev.deviceModel), ev.deviceMake != null && ev.hasOwnProperty("deviceMake") && iv.uint32(
      /* id 4, wireType 2 =*/
      34
    ).string(ev.deviceMake), ev.platformName != null && ev.hasOwnProperty("platformName") && iv.uint32(
      /* id 5, wireType 2 =*/
      42
    ).string(ev.platformName), ev.platformVersion != null && ev.hasOwnProperty("platformVersion") && iv.uint32(
      /* id 6, wireType 2 =*/
      50
    ).string(ev.platformVersion), ev.clientSource != null && ev.hasOwnProperty("clientSource") && iv.uint32(
      /* id 7, wireType 2 =*/
      58
    ).string(ev.clientSource), ev.chimeSdkVersion != null && ev.hasOwnProperty("chimeSdkVersion") && iv.uint32(
      /* id 8, wireType 2 =*/
      66
    ).string(ev.chimeSdkVersion), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkClientDetails(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.appName = ev.string();
          break;
        case 2:
          av.appVersion = ev.string();
          break;
        case 3:
          av.deviceModel = ev.string();
          break;
        case 4:
          av.deviceMake = ev.string();
          break;
        case 5:
          av.platformName = ev.string();
          break;
        case 6:
          av.platformVersion = ev.string();
          break;
        case 7:
          av.clientSource = ev.string();
          break;
        case 8:
          av.chimeSdkVersion = ev.string();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.appName != null && ev.hasOwnProperty("appName") && !$util.isString(ev.appName) ? "appName: string expected" : ev.appVersion != null && ev.hasOwnProperty("appVersion") && !$util.isString(ev.appVersion) ? "appVersion: string expected" : ev.deviceModel != null && ev.hasOwnProperty("deviceModel") && !$util.isString(ev.deviceModel) ? "deviceModel: string expected" : ev.deviceMake != null && ev.hasOwnProperty("deviceMake") && !$util.isString(ev.deviceMake) ? "deviceMake: string expected" : ev.platformName != null && ev.hasOwnProperty("platformName") && !$util.isString(ev.platformName) ? "platformName: string expected" : ev.platformVersion != null && ev.hasOwnProperty("platformVersion") && !$util.isString(ev.platformVersion) ? "platformVersion: string expected" : ev.clientSource != null && ev.hasOwnProperty("clientSource") && !$util.isString(ev.clientSource) ? "clientSource: string expected" : ev.chimeSdkVersion != null && ev.hasOwnProperty("chimeSdkVersion") && !$util.isString(ev.chimeSdkVersion) ? "chimeSdkVersion: string expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkClientDetails)
      return ev;
    var iv = new $root.SdkClientDetails();
    return ev.appName != null && (iv.appName = String(ev.appName)), ev.appVersion != null && (iv.appVersion = String(ev.appVersion)), ev.deviceModel != null && (iv.deviceModel = String(ev.deviceModel)), ev.deviceMake != null && (iv.deviceMake = String(ev.deviceMake)), ev.platformName != null && (iv.platformName = String(ev.platformName)), ev.platformVersion != null && (iv.platformVersion = String(ev.platformVersion)), ev.clientSource != null && (iv.clientSource = String(ev.clientSource)), ev.chimeSdkVersion != null && (iv.chimeSdkVersion = String(ev.chimeSdkVersion)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.appName = "", ov.appVersion = "", ov.deviceModel = "", ov.deviceMake = "", ov.platformName = "", ov.platformVersion = "", ov.clientSource = "", ov.chimeSdkVersion = ""), ev.appName != null && ev.hasOwnProperty("appName") && (ov.appName = ev.appName), ev.appVersion != null && ev.hasOwnProperty("appVersion") && (ov.appVersion = ev.appVersion), ev.deviceModel != null && ev.hasOwnProperty("deviceModel") && (ov.deviceModel = ev.deviceModel), ev.deviceMake != null && ev.hasOwnProperty("deviceMake") && (ov.deviceMake = ev.deviceMake), ev.platformName != null && ev.hasOwnProperty("platformName") && (ov.platformName = ev.platformName), ev.platformVersion != null && ev.hasOwnProperty("platformVersion") && (ov.platformVersion = ev.platformVersion), ev.clientSource != null && ev.hasOwnProperty("clientSource") && (ov.clientSource = ev.clientSource), ev.chimeSdkVersion != null && ev.hasOwnProperty("chimeSdkVersion") && (ov.chimeSdkVersion = ev.chimeSdkVersion), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkJoinFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.protocolVersion = 2, rv.prototype.maxNumOfVideos = 0, rv.prototype.flags = 0, rv.prototype.clientDetails = null, rv.prototype.audioSessionId = $util.Long ? $util.Long.fromBits(0, 0, !0) : 0, rv.prototype.wantsCompressedSdp = !1, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.protocolVersion != null && ev.hasOwnProperty("protocolVersion") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).uint32(ev.protocolVersion), ev.maxNumOfVideos != null && ev.hasOwnProperty("maxNumOfVideos") && iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).uint32(ev.maxNumOfVideos), ev.flags != null && ev.hasOwnProperty("flags") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).uint32(ev.flags), ev.clientDetails != null && ev.hasOwnProperty("clientDetails") && $root.SdkClientDetails.encode(ev.clientDetails, iv.uint32(
      /* id 4, wireType 2 =*/
      34
    ).fork()).ldelim(), ev.audioSessionId != null && ev.hasOwnProperty("audioSessionId") && iv.uint32(
      /* id 6, wireType 0 =*/
      48
    ).uint64(ev.audioSessionId), ev.wantsCompressedSdp != null && ev.hasOwnProperty("wantsCompressedSdp") && iv.uint32(
      /* id 7, wireType 0 =*/
      56
    ).bool(ev.wantsCompressedSdp), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkJoinFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.protocolVersion = ev.uint32();
          break;
        case 2:
          av.maxNumOfVideos = ev.uint32();
          break;
        case 3:
          av.flags = ev.uint32();
          break;
        case 4:
          av.clientDetails = $root.SdkClientDetails.decode(ev, ev.uint32());
          break;
        case 6:
          av.audioSessionId = ev.uint64();
          break;
        case 7:
          av.wantsCompressedSdp = ev.bool();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.protocolVersion != null && ev.hasOwnProperty("protocolVersion") && !$util.isInteger(ev.protocolVersion))
      return "protocolVersion: integer expected";
    if (ev.maxNumOfVideos != null && ev.hasOwnProperty("maxNumOfVideos") && !$util.isInteger(ev.maxNumOfVideos))
      return "maxNumOfVideos: integer expected";
    if (ev.flags != null && ev.hasOwnProperty("flags") && !$util.isInteger(ev.flags))
      return "flags: integer expected";
    if (ev.clientDetails != null && ev.hasOwnProperty("clientDetails")) {
      var iv = $root.SdkClientDetails.verify(ev.clientDetails);
      if (iv)
        return "clientDetails." + iv;
    }
    return ev.audioSessionId != null && ev.hasOwnProperty("audioSessionId") && !$util.isInteger(ev.audioSessionId) && !(ev.audioSessionId && $util.isInteger(ev.audioSessionId.low) && $util.isInteger(ev.audioSessionId.high)) ? "audioSessionId: integer|Long expected" : ev.wantsCompressedSdp != null && ev.hasOwnProperty("wantsCompressedSdp") && typeof ev.wantsCompressedSdp != "boolean" ? "wantsCompressedSdp: boolean expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkJoinFrame)
      return ev;
    var iv = new $root.SdkJoinFrame();
    if (ev.protocolVersion != null && (iv.protocolVersion = ev.protocolVersion >>> 0), ev.maxNumOfVideos != null && (iv.maxNumOfVideos = ev.maxNumOfVideos >>> 0), ev.flags != null && (iv.flags = ev.flags >>> 0), ev.clientDetails != null) {
      if (typeof ev.clientDetails != "object")
        throw TypeError(".SdkJoinFrame.clientDetails: object expected");
      iv.clientDetails = $root.SdkClientDetails.fromObject(ev.clientDetails);
    }
    return ev.audioSessionId != null && ($util.Long ? (iv.audioSessionId = $util.Long.fromValue(ev.audioSessionId)).unsigned = !0 : typeof ev.audioSessionId == "string" ? iv.audioSessionId = parseInt(ev.audioSessionId, 10) : typeof ev.audioSessionId == "number" ? iv.audioSessionId = ev.audioSessionId : typeof ev.audioSessionId == "object" && (iv.audioSessionId = new $util.LongBits(ev.audioSessionId.low >>> 0, ev.audioSessionId.high >>> 0).toNumber(!0))), ev.wantsCompressedSdp != null && (iv.wantsCompressedSdp = !!ev.wantsCompressedSdp), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if (iv.defaults) {
      if (ov.protocolVersion = 2, ov.maxNumOfVideos = 0, ov.flags = 0, ov.clientDetails = null, $util.Long) {
        var av = new $util.Long(0, 0, !0);
        ov.audioSessionId = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.audioSessionId = iv.longs === String ? "0" : 0;
      ov.wantsCompressedSdp = !1;
    }
    return ev.protocolVersion != null && ev.hasOwnProperty("protocolVersion") && (ov.protocolVersion = ev.protocolVersion), ev.maxNumOfVideos != null && ev.hasOwnProperty("maxNumOfVideos") && (ov.maxNumOfVideos = ev.maxNumOfVideos), ev.flags != null && ev.hasOwnProperty("flags") && (ov.flags = ev.flags), ev.clientDetails != null && ev.hasOwnProperty("clientDetails") && (ov.clientDetails = $root.SdkClientDetails.toObject(ev.clientDetails, iv)), ev.audioSessionId != null && ev.hasOwnProperty("audioSessionId") && (typeof ev.audioSessionId == "number" ? ov.audioSessionId = iv.longs === String ? String(ev.audioSessionId) : ev.audioSessionId : ov.audioSessionId = iv.longs === String ? $util.Long.prototype.toString.call(ev.audioSessionId) : iv.longs === Number ? new $util.LongBits(ev.audioSessionId.low >>> 0, ev.audioSessionId.high >>> 0).toNumber(!0) : ev.audioSessionId), ev.wantsCompressedSdp != null && ev.hasOwnProperty("wantsCompressedSdp") && (ov.wantsCompressedSdp = ev.wantsCompressedSdp), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkJoinAckFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.turnCredentials = null, rv.prototype.videoSubscriptionLimit = 25, rv.prototype.wantsCompressedSdp = !1, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.turnCredentials != null && ev.hasOwnProperty("turnCredentials") && $root.SdkTurnCredentials.encode(ev.turnCredentials, iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).fork()).ldelim(), ev.videoSubscriptionLimit != null && ev.hasOwnProperty("videoSubscriptionLimit") && iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).uint32(ev.videoSubscriptionLimit), ev.wantsCompressedSdp != null && ev.hasOwnProperty("wantsCompressedSdp") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).bool(ev.wantsCompressedSdp), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkJoinAckFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.turnCredentials = $root.SdkTurnCredentials.decode(ev, ev.uint32());
          break;
        case 2:
          av.videoSubscriptionLimit = ev.uint32();
          break;
        case 3:
          av.wantsCompressedSdp = ev.bool();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.turnCredentials != null && ev.hasOwnProperty("turnCredentials")) {
      var iv = $root.SdkTurnCredentials.verify(ev.turnCredentials);
      if (iv)
        return "turnCredentials." + iv;
    }
    return ev.videoSubscriptionLimit != null && ev.hasOwnProperty("videoSubscriptionLimit") && !$util.isInteger(ev.videoSubscriptionLimit) ? "videoSubscriptionLimit: integer expected" : ev.wantsCompressedSdp != null && ev.hasOwnProperty("wantsCompressedSdp") && typeof ev.wantsCompressedSdp != "boolean" ? "wantsCompressedSdp: boolean expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkJoinAckFrame)
      return ev;
    var iv = new $root.SdkJoinAckFrame();
    if (ev.turnCredentials != null) {
      if (typeof ev.turnCredentials != "object")
        throw TypeError(".SdkJoinAckFrame.turnCredentials: object expected");
      iv.turnCredentials = $root.SdkTurnCredentials.fromObject(ev.turnCredentials);
    }
    return ev.videoSubscriptionLimit != null && (iv.videoSubscriptionLimit = ev.videoSubscriptionLimit >>> 0), ev.wantsCompressedSdp != null && (iv.wantsCompressedSdp = !!ev.wantsCompressedSdp), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.turnCredentials = null, ov.videoSubscriptionLimit = 25, ov.wantsCompressedSdp = !1), ev.turnCredentials != null && ev.hasOwnProperty("turnCredentials") && (ov.turnCredentials = $root.SdkTurnCredentials.toObject(ev.turnCredentials, iv)), ev.videoSubscriptionLimit != null && ev.hasOwnProperty("videoSubscriptionLimit") && (ov.videoSubscriptionLimit = ev.videoSubscriptionLimit), ev.wantsCompressedSdp != null && ev.hasOwnProperty("wantsCompressedSdp") && (ov.wantsCompressedSdp = ev.wantsCompressedSdp), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkLeaveFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkLeaveFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : null;
  }, rv.fromObject = function(ev) {
    return ev instanceof $root.SdkLeaveFrame ? ev : new $root.SdkLeaveFrame();
  }, rv.toObject = function() {
    return {};
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkLeaveAckFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkLeaveAckFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : null;
  }, rv.fromObject = function(ev) {
    return ev instanceof $root.SdkLeaveAckFrame ? ev : new $root.SdkLeaveAckFrame();
  }, rv.toObject = function() {
    return {};
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkStreamServiceType = function() {
  var rv = {}, tv = Object.create(rv);
  return tv[rv[1] = "RX"] = 1, tv[rv[2] = "TX"] = 2, tv[rv[3] = "DUPLEX"] = 3, tv;
}();
$root.SdkStreamMediaType = function() {
  var rv = {}, tv = Object.create(rv);
  return tv[rv[1] = "AUDIO"] = 1, tv[rv[2] = "VIDEO"] = 2, tv;
}();
$root.SdkSubscribeFrame = function() {
  function rv(tv) {
    if (this.sendStreams = [], this.receiveStreamIds = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.duplex = 1, rv.prototype.sendStreams = $util.emptyArray, rv.prototype.receiveStreamIds = $util.emptyArray, rv.prototype.sdpOffer = "", rv.prototype.audioHost = "", rv.prototype.audioCheckin = !1, rv.prototype.audioMuted = !1, rv.prototype.compressedSdpOffer = $util.newBuffer([]), rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.duplex != null && ev.hasOwnProperty("duplex") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).int32(ev.duplex), ev.sendStreams != null && ev.sendStreams.length)
      for (var ov = 0; ov < ev.sendStreams.length; ++ov)
        $root.SdkStreamDescriptor.encode(ev.sendStreams[ov], iv.uint32(
          /* id 2, wireType 2 =*/
          18
        ).fork()).ldelim();
    if (ev.receiveStreamIds != null && ev.receiveStreamIds.length)
      for (var ov = 0; ov < ev.receiveStreamIds.length; ++ov)
        iv.uint32(
          /* id 3, wireType 0 =*/
          24
        ).uint32(ev.receiveStreamIds[ov]);
    return ev.sdpOffer != null && ev.hasOwnProperty("sdpOffer") && iv.uint32(
      /* id 4, wireType 2 =*/
      34
    ).string(ev.sdpOffer), ev.audioHost != null && ev.hasOwnProperty("audioHost") && iv.uint32(
      /* id 5, wireType 2 =*/
      42
    ).string(ev.audioHost), ev.audioCheckin != null && ev.hasOwnProperty("audioCheckin") && iv.uint32(
      /* id 6, wireType 0 =*/
      48
    ).bool(ev.audioCheckin), ev.audioMuted != null && ev.hasOwnProperty("audioMuted") && iv.uint32(
      /* id 7, wireType 0 =*/
      56
    ).bool(ev.audioMuted), ev.compressedSdpOffer != null && ev.hasOwnProperty("compressedSdpOffer") && iv.uint32(
      /* id 8, wireType 2 =*/
      66
    ).bytes(ev.compressedSdpOffer), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkSubscribeFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.duplex = ev.int32();
          break;
        case 2:
          av.sendStreams && av.sendStreams.length || (av.sendStreams = []), av.sendStreams.push($root.SdkStreamDescriptor.decode(ev, ev.uint32()));
          break;
        case 3:
          if (av.receiveStreamIds && av.receiveStreamIds.length || (av.receiveStreamIds = []), (sv & 7) === 2)
            for (var lv = ev.uint32() + ev.pos; ev.pos < lv; )
              av.receiveStreamIds.push(ev.uint32());
          else
            av.receiveStreamIds.push(ev.uint32());
          break;
        case 4:
          av.sdpOffer = ev.string();
          break;
        case 5:
          av.audioHost = ev.string();
          break;
        case 6:
          av.audioCheckin = ev.bool();
          break;
        case 7:
          av.audioMuted = ev.bool();
          break;
        case 8:
          av.compressedSdpOffer = ev.bytes();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.duplex != null && ev.hasOwnProperty("duplex"))
      switch (ev.duplex) {
        default:
          return "duplex: enum value expected";
        case 1:
        case 2:
        case 3:
          break;
      }
    if (ev.sendStreams != null && ev.hasOwnProperty("sendStreams")) {
      if (!Array.isArray(ev.sendStreams))
        return "sendStreams: array expected";
      for (var iv = 0; iv < ev.sendStreams.length; ++iv) {
        var ov = $root.SdkStreamDescriptor.verify(ev.sendStreams[iv]);
        if (ov)
          return "sendStreams." + ov;
      }
    }
    if (ev.receiveStreamIds != null && ev.hasOwnProperty("receiveStreamIds")) {
      if (!Array.isArray(ev.receiveStreamIds))
        return "receiveStreamIds: array expected";
      for (var iv = 0; iv < ev.receiveStreamIds.length; ++iv)
        if (!$util.isInteger(ev.receiveStreamIds[iv]))
          return "receiveStreamIds: integer[] expected";
    }
    return ev.sdpOffer != null && ev.hasOwnProperty("sdpOffer") && !$util.isString(ev.sdpOffer) ? "sdpOffer: string expected" : ev.audioHost != null && ev.hasOwnProperty("audioHost") && !$util.isString(ev.audioHost) ? "audioHost: string expected" : ev.audioCheckin != null && ev.hasOwnProperty("audioCheckin") && typeof ev.audioCheckin != "boolean" ? "audioCheckin: boolean expected" : ev.audioMuted != null && ev.hasOwnProperty("audioMuted") && typeof ev.audioMuted != "boolean" ? "audioMuted: boolean expected" : ev.compressedSdpOffer != null && ev.hasOwnProperty("compressedSdpOffer") && !(ev.compressedSdpOffer && typeof ev.compressedSdpOffer.length == "number" || $util.isString(ev.compressedSdpOffer)) ? "compressedSdpOffer: buffer expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkSubscribeFrame)
      return ev;
    var iv = new $root.SdkSubscribeFrame();
    switch (ev.duplex) {
      case "RX":
      case 1:
        iv.duplex = 1;
        break;
      case "TX":
      case 2:
        iv.duplex = 2;
        break;
      case "DUPLEX":
      case 3:
        iv.duplex = 3;
        break;
    }
    if (ev.sendStreams) {
      if (!Array.isArray(ev.sendStreams))
        throw TypeError(".SdkSubscribeFrame.sendStreams: array expected");
      iv.sendStreams = [];
      for (var ov = 0; ov < ev.sendStreams.length; ++ov) {
        if (typeof ev.sendStreams[ov] != "object")
          throw TypeError(".SdkSubscribeFrame.sendStreams: object expected");
        iv.sendStreams[ov] = $root.SdkStreamDescriptor.fromObject(ev.sendStreams[ov]);
      }
    }
    if (ev.receiveStreamIds) {
      if (!Array.isArray(ev.receiveStreamIds))
        throw TypeError(".SdkSubscribeFrame.receiveStreamIds: array expected");
      iv.receiveStreamIds = [];
      for (var ov = 0; ov < ev.receiveStreamIds.length; ++ov)
        iv.receiveStreamIds[ov] = ev.receiveStreamIds[ov] >>> 0;
    }
    return ev.sdpOffer != null && (iv.sdpOffer = String(ev.sdpOffer)), ev.audioHost != null && (iv.audioHost = String(ev.audioHost)), ev.audioCheckin != null && (iv.audioCheckin = !!ev.audioCheckin), ev.audioMuted != null && (iv.audioMuted = !!ev.audioMuted), ev.compressedSdpOffer != null && (typeof ev.compressedSdpOffer == "string" ? $util.base64.decode(ev.compressedSdpOffer, iv.compressedSdpOffer = $util.newBuffer($util.base64.length(ev.compressedSdpOffer)), 0) : ev.compressedSdpOffer.length && (iv.compressedSdpOffer = ev.compressedSdpOffer)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.sendStreams = [], ov.receiveStreamIds = []), iv.defaults && (ov.duplex = iv.enums === String ? "RX" : 1, ov.sdpOffer = "", ov.audioHost = "", ov.audioCheckin = !1, ov.audioMuted = !1, iv.bytes === String ? ov.compressedSdpOffer = "" : (ov.compressedSdpOffer = [], iv.bytes !== Array && (ov.compressedSdpOffer = $util.newBuffer(ov.compressedSdpOffer)))), ev.duplex != null && ev.hasOwnProperty("duplex") && (ov.duplex = iv.enums === String ? $root.SdkStreamServiceType[ev.duplex] : ev.duplex), ev.sendStreams && ev.sendStreams.length) {
      ov.sendStreams = [];
      for (var av = 0; av < ev.sendStreams.length; ++av)
        ov.sendStreams[av] = $root.SdkStreamDescriptor.toObject(ev.sendStreams[av], iv);
    }
    if (ev.receiveStreamIds && ev.receiveStreamIds.length) {
      ov.receiveStreamIds = [];
      for (var av = 0; av < ev.receiveStreamIds.length; ++av)
        ov.receiveStreamIds[av] = ev.receiveStreamIds[av];
    }
    return ev.sdpOffer != null && ev.hasOwnProperty("sdpOffer") && (ov.sdpOffer = ev.sdpOffer), ev.audioHost != null && ev.hasOwnProperty("audioHost") && (ov.audioHost = ev.audioHost), ev.audioCheckin != null && ev.hasOwnProperty("audioCheckin") && (ov.audioCheckin = ev.audioCheckin), ev.audioMuted != null && ev.hasOwnProperty("audioMuted") && (ov.audioMuted = ev.audioMuted), ev.compressedSdpOffer != null && ev.hasOwnProperty("compressedSdpOffer") && (ov.compressedSdpOffer = iv.bytes === String ? $util.base64.encode(ev.compressedSdpOffer, 0, ev.compressedSdpOffer.length) : iv.bytes === Array ? Array.prototype.slice.call(ev.compressedSdpOffer) : ev.compressedSdpOffer), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkSubscribeAckFrame = function() {
  function rv(tv) {
    if (this.allocations = [], this.tracks = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.duplex = 1, rv.prototype.allocations = $util.emptyArray, rv.prototype.sdpAnswer = "", rv.prototype.tracks = $util.emptyArray, rv.prototype.compressedSdpAnswer = $util.newBuffer([]), rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.duplex != null && ev.hasOwnProperty("duplex") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).int32(ev.duplex), ev.allocations != null && ev.allocations.length)
      for (var ov = 0; ov < ev.allocations.length; ++ov)
        $root.SdkStreamAllocation.encode(ev.allocations[ov], iv.uint32(
          /* id 2, wireType 2 =*/
          18
        ).fork()).ldelim();
    if (ev.sdpAnswer != null && ev.hasOwnProperty("sdpAnswer") && iv.uint32(
      /* id 3, wireType 2 =*/
      26
    ).string(ev.sdpAnswer), ev.tracks != null && ev.tracks.length)
      for (var ov = 0; ov < ev.tracks.length; ++ov)
        $root.SdkTrackMapping.encode(ev.tracks[ov], iv.uint32(
          /* id 4, wireType 2 =*/
          34
        ).fork()).ldelim();
    return ev.compressedSdpAnswer != null && ev.hasOwnProperty("compressedSdpAnswer") && iv.uint32(
      /* id 5, wireType 2 =*/
      42
    ).bytes(ev.compressedSdpAnswer), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkSubscribeAckFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.duplex = ev.int32();
          break;
        case 2:
          av.allocations && av.allocations.length || (av.allocations = []), av.allocations.push($root.SdkStreamAllocation.decode(ev, ev.uint32()));
          break;
        case 3:
          av.sdpAnswer = ev.string();
          break;
        case 4:
          av.tracks && av.tracks.length || (av.tracks = []), av.tracks.push($root.SdkTrackMapping.decode(ev, ev.uint32()));
          break;
        case 5:
          av.compressedSdpAnswer = ev.bytes();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.duplex != null && ev.hasOwnProperty("duplex"))
      switch (ev.duplex) {
        default:
          return "duplex: enum value expected";
        case 1:
        case 2:
        case 3:
          break;
      }
    if (ev.allocations != null && ev.hasOwnProperty("allocations")) {
      if (!Array.isArray(ev.allocations))
        return "allocations: array expected";
      for (var iv = 0; iv < ev.allocations.length; ++iv) {
        var ov = $root.SdkStreamAllocation.verify(ev.allocations[iv]);
        if (ov)
          return "allocations." + ov;
      }
    }
    if (ev.sdpAnswer != null && ev.hasOwnProperty("sdpAnswer") && !$util.isString(ev.sdpAnswer))
      return "sdpAnswer: string expected";
    if (ev.tracks != null && ev.hasOwnProperty("tracks")) {
      if (!Array.isArray(ev.tracks))
        return "tracks: array expected";
      for (var iv = 0; iv < ev.tracks.length; ++iv) {
        var ov = $root.SdkTrackMapping.verify(ev.tracks[iv]);
        if (ov)
          return "tracks." + ov;
      }
    }
    return ev.compressedSdpAnswer != null && ev.hasOwnProperty("compressedSdpAnswer") && !(ev.compressedSdpAnswer && typeof ev.compressedSdpAnswer.length == "number" || $util.isString(ev.compressedSdpAnswer)) ? "compressedSdpAnswer: buffer expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkSubscribeAckFrame)
      return ev;
    var iv = new $root.SdkSubscribeAckFrame();
    switch (ev.duplex) {
      case "RX":
      case 1:
        iv.duplex = 1;
        break;
      case "TX":
      case 2:
        iv.duplex = 2;
        break;
      case "DUPLEX":
      case 3:
        iv.duplex = 3;
        break;
    }
    if (ev.allocations) {
      if (!Array.isArray(ev.allocations))
        throw TypeError(".SdkSubscribeAckFrame.allocations: array expected");
      iv.allocations = [];
      for (var ov = 0; ov < ev.allocations.length; ++ov) {
        if (typeof ev.allocations[ov] != "object")
          throw TypeError(".SdkSubscribeAckFrame.allocations: object expected");
        iv.allocations[ov] = $root.SdkStreamAllocation.fromObject(ev.allocations[ov]);
      }
    }
    if (ev.sdpAnswer != null && (iv.sdpAnswer = String(ev.sdpAnswer)), ev.tracks) {
      if (!Array.isArray(ev.tracks))
        throw TypeError(".SdkSubscribeAckFrame.tracks: array expected");
      iv.tracks = [];
      for (var ov = 0; ov < ev.tracks.length; ++ov) {
        if (typeof ev.tracks[ov] != "object")
          throw TypeError(".SdkSubscribeAckFrame.tracks: object expected");
        iv.tracks[ov] = $root.SdkTrackMapping.fromObject(ev.tracks[ov]);
      }
    }
    return ev.compressedSdpAnswer != null && (typeof ev.compressedSdpAnswer == "string" ? $util.base64.decode(ev.compressedSdpAnswer, iv.compressedSdpAnswer = $util.newBuffer($util.base64.length(ev.compressedSdpAnswer)), 0) : ev.compressedSdpAnswer.length && (iv.compressedSdpAnswer = ev.compressedSdpAnswer)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.allocations = [], ov.tracks = []), iv.defaults && (ov.duplex = iv.enums === String ? "RX" : 1, ov.sdpAnswer = "", iv.bytes === String ? ov.compressedSdpAnswer = "" : (ov.compressedSdpAnswer = [], iv.bytes !== Array && (ov.compressedSdpAnswer = $util.newBuffer(ov.compressedSdpAnswer)))), ev.duplex != null && ev.hasOwnProperty("duplex") && (ov.duplex = iv.enums === String ? $root.SdkStreamServiceType[ev.duplex] : ev.duplex), ev.allocations && ev.allocations.length) {
      ov.allocations = [];
      for (var av = 0; av < ev.allocations.length; ++av)
        ov.allocations[av] = $root.SdkStreamAllocation.toObject(ev.allocations[av], iv);
    }
    if (ev.sdpAnswer != null && ev.hasOwnProperty("sdpAnswer") && (ov.sdpAnswer = ev.sdpAnswer), ev.tracks && ev.tracks.length) {
      ov.tracks = [];
      for (var av = 0; av < ev.tracks.length; ++av)
        ov.tracks[av] = $root.SdkTrackMapping.toObject(ev.tracks[av], iv);
    }
    return ev.compressedSdpAnswer != null && ev.hasOwnProperty("compressedSdpAnswer") && (ov.compressedSdpAnswer = iv.bytes === String ? $util.base64.encode(ev.compressedSdpAnswer, 0, ev.compressedSdpAnswer.length) : iv.bytes === Array ? Array.prototype.slice.call(ev.compressedSdpAnswer) : ev.compressedSdpAnswer), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkIndexFrame = function() {
  function rv(tv) {
    if (this.sources = [], this.pausedAtSourceIds = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.atCapacity = !1, rv.prototype.sources = $util.emptyArray, rv.prototype.pausedAtSourceIds = $util.emptyArray, rv.prototype.numParticipants = 0, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.atCapacity != null && ev.hasOwnProperty("atCapacity") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).bool(ev.atCapacity), ev.sources != null && ev.sources.length)
      for (var ov = 0; ov < ev.sources.length; ++ov)
        $root.SdkStreamDescriptor.encode(ev.sources[ov], iv.uint32(
          /* id 2, wireType 2 =*/
          18
        ).fork()).ldelim();
    if (ev.pausedAtSourceIds != null && ev.pausedAtSourceIds.length)
      for (var ov = 0; ov < ev.pausedAtSourceIds.length; ++ov)
        iv.uint32(
          /* id 3, wireType 0 =*/
          24
        ).uint32(ev.pausedAtSourceIds[ov]);
    return ev.numParticipants != null && ev.hasOwnProperty("numParticipants") && iv.uint32(
      /* id 4, wireType 0 =*/
      32
    ).uint32(ev.numParticipants), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkIndexFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.atCapacity = ev.bool();
          break;
        case 2:
          av.sources && av.sources.length || (av.sources = []), av.sources.push($root.SdkStreamDescriptor.decode(ev, ev.uint32()));
          break;
        case 3:
          if (av.pausedAtSourceIds && av.pausedAtSourceIds.length || (av.pausedAtSourceIds = []), (sv & 7) === 2)
            for (var lv = ev.uint32() + ev.pos; ev.pos < lv; )
              av.pausedAtSourceIds.push(ev.uint32());
          else
            av.pausedAtSourceIds.push(ev.uint32());
          break;
        case 4:
          av.numParticipants = ev.uint32();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.atCapacity != null && ev.hasOwnProperty("atCapacity") && typeof ev.atCapacity != "boolean")
      return "atCapacity: boolean expected";
    if (ev.sources != null && ev.hasOwnProperty("sources")) {
      if (!Array.isArray(ev.sources))
        return "sources: array expected";
      for (var iv = 0; iv < ev.sources.length; ++iv) {
        var ov = $root.SdkStreamDescriptor.verify(ev.sources[iv]);
        if (ov)
          return "sources." + ov;
      }
    }
    if (ev.pausedAtSourceIds != null && ev.hasOwnProperty("pausedAtSourceIds")) {
      if (!Array.isArray(ev.pausedAtSourceIds))
        return "pausedAtSourceIds: array expected";
      for (var iv = 0; iv < ev.pausedAtSourceIds.length; ++iv)
        if (!$util.isInteger(ev.pausedAtSourceIds[iv]))
          return "pausedAtSourceIds: integer[] expected";
    }
    return ev.numParticipants != null && ev.hasOwnProperty("numParticipants") && !$util.isInteger(ev.numParticipants) ? "numParticipants: integer expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkIndexFrame)
      return ev;
    var iv = new $root.SdkIndexFrame();
    if (ev.atCapacity != null && (iv.atCapacity = !!ev.atCapacity), ev.sources) {
      if (!Array.isArray(ev.sources))
        throw TypeError(".SdkIndexFrame.sources: array expected");
      iv.sources = [];
      for (var ov = 0; ov < ev.sources.length; ++ov) {
        if (typeof ev.sources[ov] != "object")
          throw TypeError(".SdkIndexFrame.sources: object expected");
        iv.sources[ov] = $root.SdkStreamDescriptor.fromObject(ev.sources[ov]);
      }
    }
    if (ev.pausedAtSourceIds) {
      if (!Array.isArray(ev.pausedAtSourceIds))
        throw TypeError(".SdkIndexFrame.pausedAtSourceIds: array expected");
      iv.pausedAtSourceIds = [];
      for (var ov = 0; ov < ev.pausedAtSourceIds.length; ++ov)
        iv.pausedAtSourceIds[ov] = ev.pausedAtSourceIds[ov] >>> 0;
    }
    return ev.numParticipants != null && (iv.numParticipants = ev.numParticipants >>> 0), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.sources = [], ov.pausedAtSourceIds = []), iv.defaults && (ov.atCapacity = !1, ov.numParticipants = 0), ev.atCapacity != null && ev.hasOwnProperty("atCapacity") && (ov.atCapacity = ev.atCapacity), ev.sources && ev.sources.length) {
      ov.sources = [];
      for (var av = 0; av < ev.sources.length; ++av)
        ov.sources[av] = $root.SdkStreamDescriptor.toObject(ev.sources[av], iv);
    }
    if (ev.pausedAtSourceIds && ev.pausedAtSourceIds.length) {
      ov.pausedAtSourceIds = [];
      for (var av = 0; av < ev.pausedAtSourceIds.length; ++av)
        ov.pausedAtSourceIds[av] = ev.pausedAtSourceIds[av];
    }
    return ev.numParticipants != null && ev.hasOwnProperty("numParticipants") && (ov.numParticipants = ev.numParticipants), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkPauseResumeFrame = function() {
  function rv(tv) {
    if (this.streamIds = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.streamIds = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.streamIds != null && ev.streamIds.length)
      for (var ov = 0; ov < ev.streamIds.length; ++ov)
        iv.uint32(
          /* id 1, wireType 0 =*/
          8
        ).uint32(ev.streamIds[ov]);
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkPauseResumeFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          if (av.streamIds && av.streamIds.length || (av.streamIds = []), (sv & 7) === 2)
            for (var lv = ev.uint32() + ev.pos; ev.pos < lv; )
              av.streamIds.push(ev.uint32());
          else
            av.streamIds.push(ev.uint32());
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.streamIds != null && ev.hasOwnProperty("streamIds")) {
      if (!Array.isArray(ev.streamIds))
        return "streamIds: array expected";
      for (var iv = 0; iv < ev.streamIds.length; ++iv)
        if (!$util.isInteger(ev.streamIds[iv]))
          return "streamIds: integer[] expected";
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkPauseResumeFrame)
      return ev;
    var iv = new $root.SdkPauseResumeFrame();
    if (ev.streamIds) {
      if (!Array.isArray(ev.streamIds))
        throw TypeError(".SdkPauseResumeFrame.streamIds: array expected");
      iv.streamIds = [];
      for (var ov = 0; ov < ev.streamIds.length; ++ov)
        iv.streamIds[ov] = ev.streamIds[ov] >>> 0;
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.streamIds = []), ev.streamIds && ev.streamIds.length) {
      ov.streamIds = [];
      for (var av = 0; av < ev.streamIds.length; ++av)
        ov.streamIds[av] = ev.streamIds[av];
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkBitrateFrame = function() {
  function rv(tv) {
    if (this.bitrates = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.bitrates = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.bitrates != null && ev.bitrates.length)
      for (var ov = 0; ov < ev.bitrates.length; ++ov)
        $root.SdkBitrate.encode(ev.bitrates[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkBitrateFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.bitrates && av.bitrates.length || (av.bitrates = []), av.bitrates.push($root.SdkBitrate.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.bitrates != null && ev.hasOwnProperty("bitrates")) {
      if (!Array.isArray(ev.bitrates))
        return "bitrates: array expected";
      for (var iv = 0; iv < ev.bitrates.length; ++iv) {
        var ov = $root.SdkBitrate.verify(ev.bitrates[iv]);
        if (ov)
          return "bitrates." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkBitrateFrame)
      return ev;
    var iv = new $root.SdkBitrateFrame();
    if (ev.bitrates) {
      if (!Array.isArray(ev.bitrates))
        throw TypeError(".SdkBitrateFrame.bitrates: array expected");
      iv.bitrates = [];
      for (var ov = 0; ov < ev.bitrates.length; ++ov) {
        if (typeof ev.bitrates[ov] != "object")
          throw TypeError(".SdkBitrateFrame.bitrates: object expected");
        iv.bitrates[ov] = $root.SdkBitrate.fromObject(ev.bitrates[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.bitrates = []), ev.bitrates && ev.bitrates.length) {
      ov.bitrates = [];
      for (var av = 0; av < ev.bitrates.length; ++av)
        ov.bitrates[av] = $root.SdkBitrate.toObject(ev.bitrates[av], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkStreamDescriptor = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.streamId = 0, rv.prototype.framerate = 0, rv.prototype.maxBitrateKbps = 0, rv.prototype.trackLabel = "", rv.prototype.groupId = 0, rv.prototype.avgBitrateBps = 0, rv.prototype.attendeeId = "", rv.prototype.mediaType = 1, rv.prototype.externalUserId = "", rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.streamId != null && ev.hasOwnProperty("streamId") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).uint32(ev.streamId), ev.framerate != null && ev.hasOwnProperty("framerate") && iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).uint32(ev.framerate), ev.maxBitrateKbps != null && ev.hasOwnProperty("maxBitrateKbps") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).uint32(ev.maxBitrateKbps), ev.trackLabel != null && ev.hasOwnProperty("trackLabel") && iv.uint32(
      /* id 4, wireType 2 =*/
      34
    ).string(ev.trackLabel), ev.groupId != null && ev.hasOwnProperty("groupId") && iv.uint32(
      /* id 6, wireType 0 =*/
      48
    ).uint32(ev.groupId), ev.avgBitrateBps != null && ev.hasOwnProperty("avgBitrateBps") && iv.uint32(
      /* id 7, wireType 0 =*/
      56
    ).uint32(ev.avgBitrateBps), ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && iv.uint32(
      /* id 8, wireType 2 =*/
      66
    ).string(ev.attendeeId), ev.mediaType != null && ev.hasOwnProperty("mediaType") && iv.uint32(
      /* id 9, wireType 0 =*/
      72
    ).int32(ev.mediaType), ev.externalUserId != null && ev.hasOwnProperty("externalUserId") && iv.uint32(
      /* id 10, wireType 2 =*/
      82
    ).string(ev.externalUserId), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkStreamDescriptor(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.streamId = ev.uint32();
          break;
        case 2:
          av.framerate = ev.uint32();
          break;
        case 3:
          av.maxBitrateKbps = ev.uint32();
          break;
        case 4:
          av.trackLabel = ev.string();
          break;
        case 6:
          av.groupId = ev.uint32();
          break;
        case 7:
          av.avgBitrateBps = ev.uint32();
          break;
        case 8:
          av.attendeeId = ev.string();
          break;
        case 9:
          av.mediaType = ev.int32();
          break;
        case 10:
          av.externalUserId = ev.string();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.streamId != null && ev.hasOwnProperty("streamId") && !$util.isInteger(ev.streamId))
      return "streamId: integer expected";
    if (ev.framerate != null && ev.hasOwnProperty("framerate") && !$util.isInteger(ev.framerate))
      return "framerate: integer expected";
    if (ev.maxBitrateKbps != null && ev.hasOwnProperty("maxBitrateKbps") && !$util.isInteger(ev.maxBitrateKbps))
      return "maxBitrateKbps: integer expected";
    if (ev.trackLabel != null && ev.hasOwnProperty("trackLabel") && !$util.isString(ev.trackLabel))
      return "trackLabel: string expected";
    if (ev.groupId != null && ev.hasOwnProperty("groupId") && !$util.isInteger(ev.groupId))
      return "groupId: integer expected";
    if (ev.avgBitrateBps != null && ev.hasOwnProperty("avgBitrateBps") && !$util.isInteger(ev.avgBitrateBps))
      return "avgBitrateBps: integer expected";
    if (ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && !$util.isString(ev.attendeeId))
      return "attendeeId: string expected";
    if (ev.mediaType != null && ev.hasOwnProperty("mediaType"))
      switch (ev.mediaType) {
        default:
          return "mediaType: enum value expected";
        case 1:
        case 2:
          break;
      }
    return ev.externalUserId != null && ev.hasOwnProperty("externalUserId") && !$util.isString(ev.externalUserId) ? "externalUserId: string expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkStreamDescriptor)
      return ev;
    var iv = new $root.SdkStreamDescriptor();
    switch (ev.streamId != null && (iv.streamId = ev.streamId >>> 0), ev.framerate != null && (iv.framerate = ev.framerate >>> 0), ev.maxBitrateKbps != null && (iv.maxBitrateKbps = ev.maxBitrateKbps >>> 0), ev.trackLabel != null && (iv.trackLabel = String(ev.trackLabel)), ev.groupId != null && (iv.groupId = ev.groupId >>> 0), ev.avgBitrateBps != null && (iv.avgBitrateBps = ev.avgBitrateBps >>> 0), ev.attendeeId != null && (iv.attendeeId = String(ev.attendeeId)), ev.mediaType) {
      case "AUDIO":
      case 1:
        iv.mediaType = 1;
        break;
      case "VIDEO":
      case 2:
        iv.mediaType = 2;
        break;
    }
    return ev.externalUserId != null && (iv.externalUserId = String(ev.externalUserId)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.streamId = 0, ov.framerate = 0, ov.maxBitrateKbps = 0, ov.trackLabel = "", ov.groupId = 0, ov.avgBitrateBps = 0, ov.attendeeId = "", ov.mediaType = iv.enums === String ? "AUDIO" : 1, ov.externalUserId = ""), ev.streamId != null && ev.hasOwnProperty("streamId") && (ov.streamId = ev.streamId), ev.framerate != null && ev.hasOwnProperty("framerate") && (ov.framerate = ev.framerate), ev.maxBitrateKbps != null && ev.hasOwnProperty("maxBitrateKbps") && (ov.maxBitrateKbps = ev.maxBitrateKbps), ev.trackLabel != null && ev.hasOwnProperty("trackLabel") && (ov.trackLabel = ev.trackLabel), ev.groupId != null && ev.hasOwnProperty("groupId") && (ov.groupId = ev.groupId), ev.avgBitrateBps != null && ev.hasOwnProperty("avgBitrateBps") && (ov.avgBitrateBps = ev.avgBitrateBps), ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && (ov.attendeeId = ev.attendeeId), ev.mediaType != null && ev.hasOwnProperty("mediaType") && (ov.mediaType = iv.enums === String ? $root.SdkStreamMediaType[ev.mediaType] : ev.mediaType), ev.externalUserId != null && ev.hasOwnProperty("externalUserId") && (ov.externalUserId = ev.externalUserId), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkStreamAllocation = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.trackLabel = "", rv.prototype.streamId = 0, rv.prototype.groupId = 0, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.trackLabel != null && ev.hasOwnProperty("trackLabel") && iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).string(ev.trackLabel), ev.streamId != null && ev.hasOwnProperty("streamId") && iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).uint32(ev.streamId), ev.groupId != null && ev.hasOwnProperty("groupId") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).uint32(ev.groupId), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkStreamAllocation(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.trackLabel = ev.string();
          break;
        case 2:
          av.streamId = ev.uint32();
          break;
        case 3:
          av.groupId = ev.uint32();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.trackLabel != null && ev.hasOwnProperty("trackLabel") && !$util.isString(ev.trackLabel) ? "trackLabel: string expected" : ev.streamId != null && ev.hasOwnProperty("streamId") && !$util.isInteger(ev.streamId) ? "streamId: integer expected" : ev.groupId != null && ev.hasOwnProperty("groupId") && !$util.isInteger(ev.groupId) ? "groupId: integer expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkStreamAllocation)
      return ev;
    var iv = new $root.SdkStreamAllocation();
    return ev.trackLabel != null && (iv.trackLabel = String(ev.trackLabel)), ev.streamId != null && (iv.streamId = ev.streamId >>> 0), ev.groupId != null && (iv.groupId = ev.groupId >>> 0), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.trackLabel = "", ov.streamId = 0, ov.groupId = 0), ev.trackLabel != null && ev.hasOwnProperty("trackLabel") && (ov.trackLabel = ev.trackLabel), ev.streamId != null && ev.hasOwnProperty("streamId") && (ov.streamId = ev.streamId), ev.groupId != null && ev.hasOwnProperty("groupId") && (ov.groupId = ev.groupId), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkTrackMapping = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.streamId = 0, rv.prototype.ssrc = 0, rv.prototype.trackLabel = "", rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.streamId != null && ev.hasOwnProperty("streamId") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).uint32(ev.streamId), ev.ssrc != null && ev.hasOwnProperty("ssrc") && iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).uint32(ev.ssrc), ev.trackLabel != null && ev.hasOwnProperty("trackLabel") && iv.uint32(
      /* id 3, wireType 2 =*/
      26
    ).string(ev.trackLabel), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTrackMapping(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.streamId = ev.uint32();
          break;
        case 2:
          av.ssrc = ev.uint32();
          break;
        case 3:
          av.trackLabel = ev.string();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.streamId != null && ev.hasOwnProperty("streamId") && !$util.isInteger(ev.streamId) ? "streamId: integer expected" : ev.ssrc != null && ev.hasOwnProperty("ssrc") && !$util.isInteger(ev.ssrc) ? "ssrc: integer expected" : ev.trackLabel != null && ev.hasOwnProperty("trackLabel") && !$util.isString(ev.trackLabel) ? "trackLabel: string expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTrackMapping)
      return ev;
    var iv = new $root.SdkTrackMapping();
    return ev.streamId != null && (iv.streamId = ev.streamId >>> 0), ev.ssrc != null && (iv.ssrc = ev.ssrc >>> 0), ev.trackLabel != null && (iv.trackLabel = String(ev.trackLabel)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.streamId = 0, ov.ssrc = 0, ov.trackLabel = ""), ev.streamId != null && ev.hasOwnProperty("streamId") && (ov.streamId = ev.streamId), ev.ssrc != null && ev.hasOwnProperty("ssrc") && (ov.ssrc = ev.ssrc), ev.trackLabel != null && ev.hasOwnProperty("trackLabel") && (ov.trackLabel = ev.trackLabel), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkBitrate = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.sourceStreamId = 0, rv.prototype.avgBitrateBps = 0, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.sourceStreamId != null && ev.hasOwnProperty("sourceStreamId") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).uint32(ev.sourceStreamId), ev.avgBitrateBps != null && ev.hasOwnProperty("avgBitrateBps") && iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).uint32(ev.avgBitrateBps), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkBitrate(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.sourceStreamId = ev.uint32();
          break;
        case 2:
          av.avgBitrateBps = ev.uint32();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.sourceStreamId != null && ev.hasOwnProperty("sourceStreamId") && !$util.isInteger(ev.sourceStreamId) ? "sourceStreamId: integer expected" : ev.avgBitrateBps != null && ev.hasOwnProperty("avgBitrateBps") && !$util.isInteger(ev.avgBitrateBps) ? "avgBitrateBps: integer expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkBitrate)
      return ev;
    var iv = new $root.SdkBitrate();
    return ev.sourceStreamId != null && (iv.sourceStreamId = ev.sourceStreamId >>> 0), ev.avgBitrateBps != null && (iv.avgBitrateBps = ev.avgBitrateBps >>> 0), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.sourceStreamId = 0, ov.avgBitrateBps = 0), ev.sourceStreamId != null && ev.hasOwnProperty("sourceStreamId") && (ov.sourceStreamId = ev.sourceStreamId), ev.avgBitrateBps != null && ev.hasOwnProperty("avgBitrateBps") && (ov.avgBitrateBps = ev.avgBitrateBps), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkAudioControlFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.muted = !1, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.muted != null && ev.hasOwnProperty("muted") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).bool(ev.muted), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkAudioControlFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.muted = ev.bool();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.muted != null && ev.hasOwnProperty("muted") && typeof ev.muted != "boolean" ? "muted: boolean expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkAudioControlFrame)
      return ev;
    var iv = new $root.SdkAudioControlFrame();
    return ev.muted != null && (iv.muted = !!ev.muted), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.muted = !1), ev.muted != null && ev.hasOwnProperty("muted") && (ov.muted = ev.muted), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkAudioMetadataFrame = function() {
  function rv(tv) {
    if (this.attendeeStates = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.attendeeStates = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.attendeeStates != null && ev.attendeeStates.length)
      for (var ov = 0; ov < ev.attendeeStates.length; ++ov)
        $root.SdkAudioAttendeeState.encode(ev.attendeeStates[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkAudioMetadataFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.attendeeStates && av.attendeeStates.length || (av.attendeeStates = []), av.attendeeStates.push($root.SdkAudioAttendeeState.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.attendeeStates != null && ev.hasOwnProperty("attendeeStates")) {
      if (!Array.isArray(ev.attendeeStates))
        return "attendeeStates: array expected";
      for (var iv = 0; iv < ev.attendeeStates.length; ++iv) {
        var ov = $root.SdkAudioAttendeeState.verify(ev.attendeeStates[iv]);
        if (ov)
          return "attendeeStates." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkAudioMetadataFrame)
      return ev;
    var iv = new $root.SdkAudioMetadataFrame();
    if (ev.attendeeStates) {
      if (!Array.isArray(ev.attendeeStates))
        throw TypeError(".SdkAudioMetadataFrame.attendeeStates: array expected");
      iv.attendeeStates = [];
      for (var ov = 0; ov < ev.attendeeStates.length; ++ov) {
        if (typeof ev.attendeeStates[ov] != "object")
          throw TypeError(".SdkAudioMetadataFrame.attendeeStates: object expected");
        iv.attendeeStates[ov] = $root.SdkAudioAttendeeState.fromObject(ev.attendeeStates[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.attendeeStates = []), ev.attendeeStates && ev.attendeeStates.length) {
      ov.attendeeStates = [];
      for (var av = 0; av < ev.attendeeStates.length; ++av)
        ov.attendeeStates[av] = $root.SdkAudioAttendeeState.toObject(ev.attendeeStates[av], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkAudioAttendeeState = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.audioStreamId = 0, rv.prototype.volume = 0, rv.prototype.muted = !1, rv.prototype.signalStrength = 0, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.audioStreamId != null && ev.hasOwnProperty("audioStreamId") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).uint32(ev.audioStreamId), ev.volume != null && ev.hasOwnProperty("volume") && iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).uint32(ev.volume), ev.muted != null && ev.hasOwnProperty("muted") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).bool(ev.muted), ev.signalStrength != null && ev.hasOwnProperty("signalStrength") && iv.uint32(
      /* id 4, wireType 0 =*/
      32
    ).uint32(ev.signalStrength), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkAudioAttendeeState(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.audioStreamId = ev.uint32();
          break;
        case 2:
          av.volume = ev.uint32();
          break;
        case 3:
          av.muted = ev.bool();
          break;
        case 4:
          av.signalStrength = ev.uint32();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.audioStreamId != null && ev.hasOwnProperty("audioStreamId") && !$util.isInteger(ev.audioStreamId) ? "audioStreamId: integer expected" : ev.volume != null && ev.hasOwnProperty("volume") && !$util.isInteger(ev.volume) ? "volume: integer expected" : ev.muted != null && ev.hasOwnProperty("muted") && typeof ev.muted != "boolean" ? "muted: boolean expected" : ev.signalStrength != null && ev.hasOwnProperty("signalStrength") && !$util.isInteger(ev.signalStrength) ? "signalStrength: integer expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkAudioAttendeeState)
      return ev;
    var iv = new $root.SdkAudioAttendeeState();
    return ev.audioStreamId != null && (iv.audioStreamId = ev.audioStreamId >>> 0), ev.volume != null && (iv.volume = ev.volume >>> 0), ev.muted != null && (iv.muted = !!ev.muted), ev.signalStrength != null && (iv.signalStrength = ev.signalStrength >>> 0), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.audioStreamId = 0, ov.volume = 0, ov.muted = !1, ov.signalStrength = 0), ev.audioStreamId != null && ev.hasOwnProperty("audioStreamId") && (ov.audioStreamId = ev.audioStreamId), ev.volume != null && ev.hasOwnProperty("volume") && (ov.volume = ev.volume), ev.muted != null && ev.hasOwnProperty("muted") && (ov.muted = ev.muted), ev.signalStrength != null && ev.hasOwnProperty("signalStrength") && (ov.signalStrength = ev.signalStrength), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkAudioStreamIdInfoFrame = function() {
  function rv(tv) {
    if (this.streams = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.streams = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.streams != null && ev.streams.length)
      for (var ov = 0; ov < ev.streams.length; ++ov)
        $root.SdkAudioStreamIdInfo.encode(ev.streams[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkAudioStreamIdInfoFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.streams && av.streams.length || (av.streams = []), av.streams.push($root.SdkAudioStreamIdInfo.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.streams != null && ev.hasOwnProperty("streams")) {
      if (!Array.isArray(ev.streams))
        return "streams: array expected";
      for (var iv = 0; iv < ev.streams.length; ++iv) {
        var ov = $root.SdkAudioStreamIdInfo.verify(ev.streams[iv]);
        if (ov)
          return "streams." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkAudioStreamIdInfoFrame)
      return ev;
    var iv = new $root.SdkAudioStreamIdInfoFrame();
    if (ev.streams) {
      if (!Array.isArray(ev.streams))
        throw TypeError(".SdkAudioStreamIdInfoFrame.streams: array expected");
      iv.streams = [];
      for (var ov = 0; ov < ev.streams.length; ++ov) {
        if (typeof ev.streams[ov] != "object")
          throw TypeError(".SdkAudioStreamIdInfoFrame.streams: object expected");
        iv.streams[ov] = $root.SdkAudioStreamIdInfo.fromObject(ev.streams[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.streams = []), ev.streams && ev.streams.length) {
      ov.streams = [];
      for (var av = 0; av < ev.streams.length; ++av)
        ov.streams[av] = $root.SdkAudioStreamIdInfo.toObject(ev.streams[av], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkAudioStreamIdInfo = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.audioStreamId = 0, rv.prototype.attendeeId = "", rv.prototype.muted = !1, rv.prototype.externalUserId = "", rv.prototype.dropped = !1, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.audioStreamId != null && ev.hasOwnProperty("audioStreamId") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).uint32(ev.audioStreamId), ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && iv.uint32(
      /* id 2, wireType 2 =*/
      18
    ).string(ev.attendeeId), ev.muted != null && ev.hasOwnProperty("muted") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).bool(ev.muted), ev.externalUserId != null && ev.hasOwnProperty("externalUserId") && iv.uint32(
      /* id 4, wireType 2 =*/
      34
    ).string(ev.externalUserId), ev.dropped != null && ev.hasOwnProperty("dropped") && iv.uint32(
      /* id 5, wireType 0 =*/
      40
    ).bool(ev.dropped), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkAudioStreamIdInfo(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.audioStreamId = ev.uint32();
          break;
        case 2:
          av.attendeeId = ev.string();
          break;
        case 3:
          av.muted = ev.bool();
          break;
        case 4:
          av.externalUserId = ev.string();
          break;
        case 5:
          av.dropped = ev.bool();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.audioStreamId != null && ev.hasOwnProperty("audioStreamId") && !$util.isInteger(ev.audioStreamId) ? "audioStreamId: integer expected" : ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && !$util.isString(ev.attendeeId) ? "attendeeId: string expected" : ev.muted != null && ev.hasOwnProperty("muted") && typeof ev.muted != "boolean" ? "muted: boolean expected" : ev.externalUserId != null && ev.hasOwnProperty("externalUserId") && !$util.isString(ev.externalUserId) ? "externalUserId: string expected" : ev.dropped != null && ev.hasOwnProperty("dropped") && typeof ev.dropped != "boolean" ? "dropped: boolean expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkAudioStreamIdInfo)
      return ev;
    var iv = new $root.SdkAudioStreamIdInfo();
    return ev.audioStreamId != null && (iv.audioStreamId = ev.audioStreamId >>> 0), ev.attendeeId != null && (iv.attendeeId = String(ev.attendeeId)), ev.muted != null && (iv.muted = !!ev.muted), ev.externalUserId != null && (iv.externalUserId = String(ev.externalUserId)), ev.dropped != null && (iv.dropped = !!ev.dropped), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.audioStreamId = 0, ov.attendeeId = "", ov.muted = !1, ov.externalUserId = "", ov.dropped = !1), ev.audioStreamId != null && ev.hasOwnProperty("audioStreamId") && (ov.audioStreamId = ev.audioStreamId), ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && (ov.attendeeId = ev.attendeeId), ev.muted != null && ev.hasOwnProperty("muted") && (ov.muted = ev.muted), ev.externalUserId != null && ev.hasOwnProperty("externalUserId") && (ov.externalUserId = ev.externalUserId), ev.dropped != null && ev.hasOwnProperty("dropped") && (ov.dropped = ev.dropped), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkPingPongType = function() {
  var rv = {}, tv = Object.create(rv);
  return tv[rv[1] = "PING"] = 1, tv[rv[2] = "PONG"] = 2, tv;
}();
$root.SdkPingPongFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.type = 1, rv.prototype.pingId = 0, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).int32(ev.type), iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).uint32(ev.pingId), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkPingPongFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.type = ev.int32();
          break;
        case 2:
          av.pingId = ev.uint32();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    if (!av.hasOwnProperty("type"))
      throw $util.ProtocolError("missing required 'type'", { instance: av });
    if (!av.hasOwnProperty("pingId"))
      throw $util.ProtocolError("missing required 'pingId'", { instance: av });
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    switch (ev.type) {
      default:
        return "type: enum value expected";
      case 1:
      case 2:
        break;
    }
    return $util.isInteger(ev.pingId) ? null : "pingId: integer expected";
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkPingPongFrame)
      return ev;
    var iv = new $root.SdkPingPongFrame();
    switch (ev.type) {
      case "PING":
      case 1:
        iv.type = 1;
        break;
      case "PONG":
      case 2:
        iv.type = 2;
        break;
    }
    return ev.pingId != null && (iv.pingId = ev.pingId >>> 0), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.type = iv.enums === String ? "PING" : 1, ov.pingId = 0), ev.type != null && ev.hasOwnProperty("type") && (ov.type = iv.enums === String ? $root.SdkPingPongType[ev.type] : ev.type), ev.pingId != null && ev.hasOwnProperty("pingId") && (ov.pingId = ev.pingId), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkAudioStatusFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.audioStatus = 0, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.audioStatus != null && ev.hasOwnProperty("audioStatus") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).uint32(ev.audioStatus), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkAudioStatusFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.audioStatus = ev.uint32();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.audioStatus != null && ev.hasOwnProperty("audioStatus") && !$util.isInteger(ev.audioStatus) ? "audioStatus: integer expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkAudioStatusFrame)
      return ev;
    var iv = new $root.SdkAudioStatusFrame();
    return ev.audioStatus != null && (iv.audioStatus = ev.audioStatus >>> 0), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.audioStatus = 0), ev.audioStatus != null && ev.hasOwnProperty("audioStatus") && (ov.audioStatus = ev.audioStatus), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkMetric = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.type = 1, rv.prototype.value = 0, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.type != null && ev.hasOwnProperty("type") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).int32(ev.type), ev.value != null && ev.hasOwnProperty("value") && iv.uint32(
      /* id 2, wireType 1 =*/
      17
    ).double(ev.value), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkMetric(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.type = ev.int32();
          break;
        case 2:
          av.value = ev.double();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.type != null && ev.hasOwnProperty("type"))
      switch (ev.type) {
        default:
          return "type: enum value expected";
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
        case 7:
        case 8:
        case 9:
        case 10:
        case 11:
        case 12:
        case 13:
        case 14:
        case 15:
        case 16:
        case 17:
        case 18:
        case 19:
        case 20:
        case 21:
        case 22:
        case 23:
        case 24:
        case 25:
        case 26:
        case 27:
        case 28:
        case 29:
        case 30:
        case 31:
        case 32:
        case 33:
        case 34:
        case 35:
        case 36:
        case 37:
        case 38:
        case 39:
        case 40:
        case 41:
        case 42:
        case 43:
        case 44:
        case 45:
        case 46:
        case 47:
        case 48:
        case 49:
        case 64:
        case 66:
        case 69:
        case 72:
        case 86:
        case 87:
          break;
      }
    return ev.value != null && ev.hasOwnProperty("value") && typeof ev.value != "number" ? "value: number expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkMetric)
      return ev;
    var iv = new $root.SdkMetric();
    switch (ev.type) {
      case "VIDEO_ACTUAL_ENCODER_BITRATE":
      case 1:
        iv.type = 1;
        break;
      case "VIDEO_AVAILABLE_SEND_BANDWIDTH":
      case 2:
        iv.type = 2;
        break;
      case "VIDEO_RETRANSMIT_BITRATE":
      case 3:
        iv.type = 3;
        break;
      case "VIDEO_AVAILABLE_RECEIVE_BANDWIDTH":
      case 4:
        iv.type = 4;
        break;
      case "VIDEO_TARGET_ENCODER_BITRATE":
      case 5:
        iv.type = 5;
        break;
      case "VIDEO_BUCKET_DELAY_MS":
      case 6:
        iv.type = 6;
        break;
      case "STUN_RTT_MS":
      case 7:
        iv.type = 7;
        break;
      case "SOCKET_DISCARDED_PPS":
      case 8:
        iv.type = 8;
        break;
      case "RTC_MIC_JITTER_MS":
      case 9:
        iv.type = 9;
        break;
      case "RTC_MIC_PPS":
      case 10:
        iv.type = 10;
        break;
      case "RTC_MIC_FRACTION_PACKET_LOST_PERCENT":
      case 11:
        iv.type = 11;
        break;
      case "RTC_MIC_BITRATE":
      case 12:
        iv.type = 12;
        break;
      case "RTC_MIC_RTT_MS":
      case 13:
        iv.type = 13;
        break;
      case "RTC_SPK_PPS":
      case 14:
        iv.type = 14;
        break;
      case "RTC_SPK_FRACTION_PACKET_LOST_PERCENT":
      case 15:
        iv.type = 15;
        break;
      case "RTC_SPK_JITTER_MS":
      case 16:
        iv.type = 16;
        break;
      case "RTC_SPK_FRACTION_DECODER_LOSS_PERCENT":
      case 17:
        iv.type = 17;
        break;
      case "RTC_SPK_BITRATE":
      case 18:
        iv.type = 18;
        break;
      case "RTC_SPK_CURRENT_DELAY_MS":
      case 19:
        iv.type = 19;
        break;
      case "RTC_SPK_JITTER_BUFFER_MS":
      case 20:
        iv.type = 20;
        break;
      case "VIDEO_SENT_RTT_MS":
      case 21:
        iv.type = 21;
        break;
      case "VIDEO_ENCODE_USAGE_PERCENT":
      case 22:
        iv.type = 22;
        break;
      case "VIDEO_NACKS_RECEIVED":
      case 23:
        iv.type = 23;
        break;
      case "VIDEO_PLIS_RECEIVED":
      case 24:
        iv.type = 24;
        break;
      case "VIDEO_AVERAGE_ENCODE_MS":
      case 25:
        iv.type = 25;
        break;
      case "VIDEO_INPUT_FPS":
      case 26:
        iv.type = 26;
        break;
      case "VIDEO_ENCODE_FPS":
      case 27:
        iv.type = 27;
        break;
      case "VIDEO_SENT_FPS":
      case 28:
        iv.type = 28;
        break;
      case "VIDEO_FIRS_RECEIVED":
      case 29:
        iv.type = 29;
        break;
      case "VIDEO_SENT_PPS":
      case 30:
        iv.type = 30;
        break;
      case "VIDEO_SENT_FRACTION_PACKET_LOST_PERCENT":
      case 31:
        iv.type = 31;
        break;
      case "VIDEO_SENT_BITRATE":
      case 32:
        iv.type = 32;
        break;
      case "VIDEO_DROPPED_FPS":
      case 33:
        iv.type = 33;
        break;
      case "VIDEO_TARGET_DELAY_MS":
      case 34:
        iv.type = 34;
        break;
      case "VIDEO_DECODE_MS":
      case 35:
        iv.type = 35;
        break;
      case "VIDEO_OUTPUT_FPS":
      case 36:
        iv.type = 36;
        break;
      case "VIDEO_RECEIVED_PPS":
      case 37:
        iv.type = 37;
        break;
      case "VIDEO_RECEIVED_FRACTION_PACKET_LOST_PERCENT":
      case 38:
        iv.type = 38;
        break;
      case "VIDEO_RENDER_DELAY_MS":
      case 39:
        iv.type = 39;
        break;
      case "VIDEO_RECEIVED_FPS":
      case 40:
        iv.type = 40;
        break;
      case "VIDEO_DECODE_FPS":
      case 41:
        iv.type = 41;
        break;
      case "VIDEO_NACKS_SENT":
      case 42:
        iv.type = 42;
        break;
      case "VIDEO_FIRS_SENT":
      case 43:
        iv.type = 43;
        break;
      case "VIDEO_RECEIVED_BITRATE":
      case 44:
        iv.type = 44;
        break;
      case "VIDEO_CURRENT_DELAY_MS":
      case 45:
        iv.type = 45;
        break;
      case "VIDEO_JITTER_BUFFER_MS":
      case 46:
        iv.type = 46;
        break;
      case "VIDEO_DISCARDED_PPS":
      case 47:
        iv.type = 47;
        break;
      case "VIDEO_PLIS_SENT":
      case 48:
        iv.type = 48;
        break;
      case "VIDEO_RECEIVED_JITTER_MS":
      case 49:
        iv.type = 49;
        break;
      case "VIDEO_ENCODE_HEIGHT":
      case 64:
        iv.type = 64;
        break;
      case "VIDEO_SENT_QP_SUM":
      case 66:
        iv.type = 66;
        break;
      case "VIDEO_DECODE_HEIGHT":
      case 69:
        iv.type = 69;
        break;
      case "VIDEO_RECEIVED_QP_SUM":
      case 72:
        iv.type = 72;
        break;
      case "VIDEO_ENCODE_WIDTH":
      case 86:
        iv.type = 86;
        break;
      case "VIDEO_DECODE_WIDTH":
      case 87:
        iv.type = 87;
        break;
    }
    return ev.value != null && (iv.value = Number(ev.value)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.type = iv.enums === String ? "VIDEO_ACTUAL_ENCODER_BITRATE" : 1, ov.value = 0), ev.type != null && ev.hasOwnProperty("type") && (ov.type = iv.enums === String ? $root.SdkMetric.Type[ev.type] : ev.type), ev.value != null && ev.hasOwnProperty("value") && (ov.value = iv.json && !isFinite(ev.value) ? String(ev.value) : ev.value), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv.Type = function() {
    var tv = {}, ev = Object.create(tv);
    return ev[tv[1] = "VIDEO_ACTUAL_ENCODER_BITRATE"] = 1, ev[tv[2] = "VIDEO_AVAILABLE_SEND_BANDWIDTH"] = 2, ev[tv[3] = "VIDEO_RETRANSMIT_BITRATE"] = 3, ev[tv[4] = "VIDEO_AVAILABLE_RECEIVE_BANDWIDTH"] = 4, ev[tv[5] = "VIDEO_TARGET_ENCODER_BITRATE"] = 5, ev[tv[6] = "VIDEO_BUCKET_DELAY_MS"] = 6, ev[tv[7] = "STUN_RTT_MS"] = 7, ev[tv[8] = "SOCKET_DISCARDED_PPS"] = 8, ev[tv[9] = "RTC_MIC_JITTER_MS"] = 9, ev[tv[10] = "RTC_MIC_PPS"] = 10, ev[tv[11] = "RTC_MIC_FRACTION_PACKET_LOST_PERCENT"] = 11, ev[tv[12] = "RTC_MIC_BITRATE"] = 12, ev[tv[13] = "RTC_MIC_RTT_MS"] = 13, ev[tv[14] = "RTC_SPK_PPS"] = 14, ev[tv[15] = "RTC_SPK_FRACTION_PACKET_LOST_PERCENT"] = 15, ev[tv[16] = "RTC_SPK_JITTER_MS"] = 16, ev[tv[17] = "RTC_SPK_FRACTION_DECODER_LOSS_PERCENT"] = 17, ev[tv[18] = "RTC_SPK_BITRATE"] = 18, ev[tv[19] = "RTC_SPK_CURRENT_DELAY_MS"] = 19, ev[tv[20] = "RTC_SPK_JITTER_BUFFER_MS"] = 20, ev[tv[21] = "VIDEO_SENT_RTT_MS"] = 21, ev[tv[22] = "VIDEO_ENCODE_USAGE_PERCENT"] = 22, ev[tv[23] = "VIDEO_NACKS_RECEIVED"] = 23, ev[tv[24] = "VIDEO_PLIS_RECEIVED"] = 24, ev[tv[25] = "VIDEO_AVERAGE_ENCODE_MS"] = 25, ev[tv[26] = "VIDEO_INPUT_FPS"] = 26, ev[tv[27] = "VIDEO_ENCODE_FPS"] = 27, ev[tv[28] = "VIDEO_SENT_FPS"] = 28, ev[tv[29] = "VIDEO_FIRS_RECEIVED"] = 29, ev[tv[30] = "VIDEO_SENT_PPS"] = 30, ev[tv[31] = "VIDEO_SENT_FRACTION_PACKET_LOST_PERCENT"] = 31, ev[tv[32] = "VIDEO_SENT_BITRATE"] = 32, ev[tv[33] = "VIDEO_DROPPED_FPS"] = 33, ev[tv[34] = "VIDEO_TARGET_DELAY_MS"] = 34, ev[tv[35] = "VIDEO_DECODE_MS"] = 35, ev[tv[36] = "VIDEO_OUTPUT_FPS"] = 36, ev[tv[37] = "VIDEO_RECEIVED_PPS"] = 37, ev[tv[38] = "VIDEO_RECEIVED_FRACTION_PACKET_LOST_PERCENT"] = 38, ev[tv[39] = "VIDEO_RENDER_DELAY_MS"] = 39, ev[tv[40] = "VIDEO_RECEIVED_FPS"] = 40, ev[tv[41] = "VIDEO_DECODE_FPS"] = 41, ev[tv[42] = "VIDEO_NACKS_SENT"] = 42, ev[tv[43] = "VIDEO_FIRS_SENT"] = 43, ev[tv[44] = "VIDEO_RECEIVED_BITRATE"] = 44, ev[tv[45] = "VIDEO_CURRENT_DELAY_MS"] = 45, ev[tv[46] = "VIDEO_JITTER_BUFFER_MS"] = 46, ev[tv[47] = "VIDEO_DISCARDED_PPS"] = 47, ev[tv[48] = "VIDEO_PLIS_SENT"] = 48, ev[tv[49] = "VIDEO_RECEIVED_JITTER_MS"] = 49, ev[tv[64] = "VIDEO_ENCODE_HEIGHT"] = 64, ev[tv[66] = "VIDEO_SENT_QP_SUM"] = 66, ev[tv[69] = "VIDEO_DECODE_HEIGHT"] = 69, ev[tv[72] = "VIDEO_RECEIVED_QP_SUM"] = 72, ev[tv[86] = "VIDEO_ENCODE_WIDTH"] = 86, ev[tv[87] = "VIDEO_DECODE_WIDTH"] = 87, ev;
  }(), rv;
}();
$root.SdkStreamMetricFrame = function() {
  function rv(tv) {
    if (this.metrics = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.streamId = 0, rv.prototype.groupId = 0, rv.prototype.metrics = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.streamId != null && ev.hasOwnProperty("streamId") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).uint32(ev.streamId), ev.groupId != null && ev.hasOwnProperty("groupId") && iv.uint32(
      /* id 4, wireType 0 =*/
      32
    ).uint32(ev.groupId), ev.metrics != null && ev.metrics.length)
      for (var ov = 0; ov < ev.metrics.length; ++ov)
        $root.SdkMetric.encode(ev.metrics[ov], iv.uint32(
          /* id 5, wireType 2 =*/
          42
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkStreamMetricFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 3:
          av.streamId = ev.uint32();
          break;
        case 4:
          av.groupId = ev.uint32();
          break;
        case 5:
          av.metrics && av.metrics.length || (av.metrics = []), av.metrics.push($root.SdkMetric.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.streamId != null && ev.hasOwnProperty("streamId") && !$util.isInteger(ev.streamId))
      return "streamId: integer expected";
    if (ev.groupId != null && ev.hasOwnProperty("groupId") && !$util.isInteger(ev.groupId))
      return "groupId: integer expected";
    if (ev.metrics != null && ev.hasOwnProperty("metrics")) {
      if (!Array.isArray(ev.metrics))
        return "metrics: array expected";
      for (var iv = 0; iv < ev.metrics.length; ++iv) {
        var ov = $root.SdkMetric.verify(ev.metrics[iv]);
        if (ov)
          return "metrics." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkStreamMetricFrame)
      return ev;
    var iv = new $root.SdkStreamMetricFrame();
    if (ev.streamId != null && (iv.streamId = ev.streamId >>> 0), ev.groupId != null && (iv.groupId = ev.groupId >>> 0), ev.metrics) {
      if (!Array.isArray(ev.metrics))
        throw TypeError(".SdkStreamMetricFrame.metrics: array expected");
      iv.metrics = [];
      for (var ov = 0; ov < ev.metrics.length; ++ov) {
        if (typeof ev.metrics[ov] != "object")
          throw TypeError(".SdkStreamMetricFrame.metrics: object expected");
        iv.metrics[ov] = $root.SdkMetric.fromObject(ev.metrics[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.metrics = []), iv.defaults && (ov.streamId = 0, ov.groupId = 0), ev.streamId != null && ev.hasOwnProperty("streamId") && (ov.streamId = ev.streamId), ev.groupId != null && ev.hasOwnProperty("groupId") && (ov.groupId = ev.groupId), ev.metrics && ev.metrics.length) {
      ov.metrics = [];
      for (var av = 0; av < ev.metrics.length; ++av)
        ov.metrics[av] = $root.SdkMetric.toObject(ev.metrics[av], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkClientMetricFrame = function() {
  function rv(tv) {
    if (this.globalMetrics = [], this.streamMetricFrames = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.globalMetrics = $util.emptyArray, rv.prototype.streamMetricFrames = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.globalMetrics != null && ev.globalMetrics.length)
      for (var ov = 0; ov < ev.globalMetrics.length; ++ov)
        $root.SdkMetric.encode(ev.globalMetrics[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    if (ev.streamMetricFrames != null && ev.streamMetricFrames.length)
      for (var ov = 0; ov < ev.streamMetricFrames.length; ++ov)
        $root.SdkStreamMetricFrame.encode(ev.streamMetricFrames[ov], iv.uint32(
          /* id 2, wireType 2 =*/
          18
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkClientMetricFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.globalMetrics && av.globalMetrics.length || (av.globalMetrics = []), av.globalMetrics.push($root.SdkMetric.decode(ev, ev.uint32()));
          break;
        case 2:
          av.streamMetricFrames && av.streamMetricFrames.length || (av.streamMetricFrames = []), av.streamMetricFrames.push($root.SdkStreamMetricFrame.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.globalMetrics != null && ev.hasOwnProperty("globalMetrics")) {
      if (!Array.isArray(ev.globalMetrics))
        return "globalMetrics: array expected";
      for (var iv = 0; iv < ev.globalMetrics.length; ++iv) {
        var ov = $root.SdkMetric.verify(ev.globalMetrics[iv]);
        if (ov)
          return "globalMetrics." + ov;
      }
    }
    if (ev.streamMetricFrames != null && ev.hasOwnProperty("streamMetricFrames")) {
      if (!Array.isArray(ev.streamMetricFrames))
        return "streamMetricFrames: array expected";
      for (var iv = 0; iv < ev.streamMetricFrames.length; ++iv) {
        var ov = $root.SdkStreamMetricFrame.verify(ev.streamMetricFrames[iv]);
        if (ov)
          return "streamMetricFrames." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkClientMetricFrame)
      return ev;
    var iv = new $root.SdkClientMetricFrame();
    if (ev.globalMetrics) {
      if (!Array.isArray(ev.globalMetrics))
        throw TypeError(".SdkClientMetricFrame.globalMetrics: array expected");
      iv.globalMetrics = [];
      for (var ov = 0; ov < ev.globalMetrics.length; ++ov) {
        if (typeof ev.globalMetrics[ov] != "object")
          throw TypeError(".SdkClientMetricFrame.globalMetrics: object expected");
        iv.globalMetrics[ov] = $root.SdkMetric.fromObject(ev.globalMetrics[ov]);
      }
    }
    if (ev.streamMetricFrames) {
      if (!Array.isArray(ev.streamMetricFrames))
        throw TypeError(".SdkClientMetricFrame.streamMetricFrames: array expected");
      iv.streamMetricFrames = [];
      for (var ov = 0; ov < ev.streamMetricFrames.length; ++ov) {
        if (typeof ev.streamMetricFrames[ov] != "object")
          throw TypeError(".SdkClientMetricFrame.streamMetricFrames: object expected");
        iv.streamMetricFrames[ov] = $root.SdkStreamMetricFrame.fromObject(ev.streamMetricFrames[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.globalMetrics = [], ov.streamMetricFrames = []), ev.globalMetrics && ev.globalMetrics.length) {
      ov.globalMetrics = [];
      for (var av = 0; av < ev.globalMetrics.length; ++av)
        ov.globalMetrics[av] = $root.SdkMetric.toObject(ev.globalMetrics[av], iv);
    }
    if (ev.streamMetricFrames && ev.streamMetricFrames.length) {
      ov.streamMetricFrames = [];
      for (var av = 0; av < ev.streamMetricFrames.length; ++av)
        ov.streamMetricFrames[av] = $root.SdkStreamMetricFrame.toObject(ev.streamMetricFrames[av], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkDataMessageFrame = function() {
  function rv(tv) {
    if (this.messages = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.messages = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.messages != null && ev.messages.length)
      for (var ov = 0; ov < ev.messages.length; ++ov)
        $root.SdkDataMessagePayload.encode(ev.messages[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkDataMessageFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.messages && av.messages.length || (av.messages = []), av.messages.push($root.SdkDataMessagePayload.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.messages != null && ev.hasOwnProperty("messages")) {
      if (!Array.isArray(ev.messages))
        return "messages: array expected";
      for (var iv = 0; iv < ev.messages.length; ++iv) {
        var ov = $root.SdkDataMessagePayload.verify(ev.messages[iv]);
        if (ov)
          return "messages." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkDataMessageFrame)
      return ev;
    var iv = new $root.SdkDataMessageFrame();
    if (ev.messages) {
      if (!Array.isArray(ev.messages))
        throw TypeError(".SdkDataMessageFrame.messages: array expected");
      iv.messages = [];
      for (var ov = 0; ov < ev.messages.length; ++ov) {
        if (typeof ev.messages[ov] != "object")
          throw TypeError(".SdkDataMessageFrame.messages: object expected");
        iv.messages[ov] = $root.SdkDataMessagePayload.fromObject(ev.messages[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.messages = []), ev.messages && ev.messages.length) {
      ov.messages = [];
      for (var av = 0; av < ev.messages.length; ++av)
        ov.messages[av] = $root.SdkDataMessagePayload.toObject(ev.messages[av], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkDataMessagePayload = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.topic = "", rv.prototype.data = $util.newBuffer([]), rv.prototype.lifetimeMs = 0, rv.prototype.senderAttendeeId = "", rv.prototype.ingestTimeNs = $util.Long ? $util.Long.fromBits(0, 0, !1) : 0, rv.prototype.senderExternalUserId = "", rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.topic != null && ev.hasOwnProperty("topic") && iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).string(ev.topic), ev.data != null && ev.hasOwnProperty("data") && iv.uint32(
      /* id 2, wireType 2 =*/
      18
    ).bytes(ev.data), ev.lifetimeMs != null && ev.hasOwnProperty("lifetimeMs") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).uint32(ev.lifetimeMs), ev.senderAttendeeId != null && ev.hasOwnProperty("senderAttendeeId") && iv.uint32(
      /* id 4, wireType 2 =*/
      34
    ).string(ev.senderAttendeeId), ev.ingestTimeNs != null && ev.hasOwnProperty("ingestTimeNs") && iv.uint32(
      /* id 5, wireType 0 =*/
      40
    ).int64(ev.ingestTimeNs), ev.senderExternalUserId != null && ev.hasOwnProperty("senderExternalUserId") && iv.uint32(
      /* id 6, wireType 2 =*/
      50
    ).string(ev.senderExternalUserId), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkDataMessagePayload(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.topic = ev.string();
          break;
        case 2:
          av.data = ev.bytes();
          break;
        case 3:
          av.lifetimeMs = ev.uint32();
          break;
        case 4:
          av.senderAttendeeId = ev.string();
          break;
        case 5:
          av.ingestTimeNs = ev.int64();
          break;
        case 6:
          av.senderExternalUserId = ev.string();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.topic != null && ev.hasOwnProperty("topic") && !$util.isString(ev.topic) ? "topic: string expected" : ev.data != null && ev.hasOwnProperty("data") && !(ev.data && typeof ev.data.length == "number" || $util.isString(ev.data)) ? "data: buffer expected" : ev.lifetimeMs != null && ev.hasOwnProperty("lifetimeMs") && !$util.isInteger(ev.lifetimeMs) ? "lifetimeMs: integer expected" : ev.senderAttendeeId != null && ev.hasOwnProperty("senderAttendeeId") && !$util.isString(ev.senderAttendeeId) ? "senderAttendeeId: string expected" : ev.ingestTimeNs != null && ev.hasOwnProperty("ingestTimeNs") && !$util.isInteger(ev.ingestTimeNs) && !(ev.ingestTimeNs && $util.isInteger(ev.ingestTimeNs.low) && $util.isInteger(ev.ingestTimeNs.high)) ? "ingestTimeNs: integer|Long expected" : ev.senderExternalUserId != null && ev.hasOwnProperty("senderExternalUserId") && !$util.isString(ev.senderExternalUserId) ? "senderExternalUserId: string expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkDataMessagePayload)
      return ev;
    var iv = new $root.SdkDataMessagePayload();
    return ev.topic != null && (iv.topic = String(ev.topic)), ev.data != null && (typeof ev.data == "string" ? $util.base64.decode(ev.data, iv.data = $util.newBuffer($util.base64.length(ev.data)), 0) : ev.data.length && (iv.data = ev.data)), ev.lifetimeMs != null && (iv.lifetimeMs = ev.lifetimeMs >>> 0), ev.senderAttendeeId != null && (iv.senderAttendeeId = String(ev.senderAttendeeId)), ev.ingestTimeNs != null && ($util.Long ? (iv.ingestTimeNs = $util.Long.fromValue(ev.ingestTimeNs)).unsigned = !1 : typeof ev.ingestTimeNs == "string" ? iv.ingestTimeNs = parseInt(ev.ingestTimeNs, 10) : typeof ev.ingestTimeNs == "number" ? iv.ingestTimeNs = ev.ingestTimeNs : typeof ev.ingestTimeNs == "object" && (iv.ingestTimeNs = new $util.LongBits(ev.ingestTimeNs.low >>> 0, ev.ingestTimeNs.high >>> 0).toNumber())), ev.senderExternalUserId != null && (iv.senderExternalUserId = String(ev.senderExternalUserId)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if (iv.defaults) {
      if (ov.topic = "", iv.bytes === String ? ov.data = "" : (ov.data = [], iv.bytes !== Array && (ov.data = $util.newBuffer(ov.data))), ov.lifetimeMs = 0, ov.senderAttendeeId = "", $util.Long) {
        var av = new $util.Long(0, 0, !1);
        ov.ingestTimeNs = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.ingestTimeNs = iv.longs === String ? "0" : 0;
      ov.senderExternalUserId = "";
    }
    return ev.topic != null && ev.hasOwnProperty("topic") && (ov.topic = ev.topic), ev.data != null && ev.hasOwnProperty("data") && (ov.data = iv.bytes === String ? $util.base64.encode(ev.data, 0, ev.data.length) : iv.bytes === Array ? Array.prototype.slice.call(ev.data) : ev.data), ev.lifetimeMs != null && ev.hasOwnProperty("lifetimeMs") && (ov.lifetimeMs = ev.lifetimeMs), ev.senderAttendeeId != null && ev.hasOwnProperty("senderAttendeeId") && (ov.senderAttendeeId = ev.senderAttendeeId), ev.ingestTimeNs != null && ev.hasOwnProperty("ingestTimeNs") && (typeof ev.ingestTimeNs == "number" ? ov.ingestTimeNs = iv.longs === String ? String(ev.ingestTimeNs) : ev.ingestTimeNs : ov.ingestTimeNs = iv.longs === String ? $util.Long.prototype.toString.call(ev.ingestTimeNs) : iv.longs === Number ? new $util.LongBits(ev.ingestTimeNs.low >>> 0, ev.ingestTimeNs.high >>> 0).toNumber() : ev.ingestTimeNs), ev.senderExternalUserId != null && ev.hasOwnProperty("senderExternalUserId") && (ov.senderExternalUserId = ev.senderExternalUserId), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkTurnCredentials = function() {
  function rv(tv) {
    if (this.uris = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.username = "", rv.prototype.password = "", rv.prototype.ttl = 0, rv.prototype.uris = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.username != null && ev.hasOwnProperty("username") && iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).string(ev.username), ev.password != null && ev.hasOwnProperty("password") && iv.uint32(
      /* id 2, wireType 2 =*/
      18
    ).string(ev.password), ev.ttl != null && ev.hasOwnProperty("ttl") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).uint32(ev.ttl), ev.uris != null && ev.uris.length)
      for (var ov = 0; ov < ev.uris.length; ++ov)
        iv.uint32(
          /* id 4, wireType 2 =*/
          34
        ).string(ev.uris[ov]);
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTurnCredentials(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.username = ev.string();
          break;
        case 2:
          av.password = ev.string();
          break;
        case 3:
          av.ttl = ev.uint32();
          break;
        case 4:
          av.uris && av.uris.length || (av.uris = []), av.uris.push(ev.string());
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.username != null && ev.hasOwnProperty("username") && !$util.isString(ev.username))
      return "username: string expected";
    if (ev.password != null && ev.hasOwnProperty("password") && !$util.isString(ev.password))
      return "password: string expected";
    if (ev.ttl != null && ev.hasOwnProperty("ttl") && !$util.isInteger(ev.ttl))
      return "ttl: integer expected";
    if (ev.uris != null && ev.hasOwnProperty("uris")) {
      if (!Array.isArray(ev.uris))
        return "uris: array expected";
      for (var iv = 0; iv < ev.uris.length; ++iv)
        if (!$util.isString(ev.uris[iv]))
          return "uris: string[] expected";
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTurnCredentials)
      return ev;
    var iv = new $root.SdkTurnCredentials();
    if (ev.username != null && (iv.username = String(ev.username)), ev.password != null && (iv.password = String(ev.password)), ev.ttl != null && (iv.ttl = ev.ttl >>> 0), ev.uris) {
      if (!Array.isArray(ev.uris))
        throw TypeError(".SdkTurnCredentials.uris: array expected");
      iv.uris = [];
      for (var ov = 0; ov < ev.uris.length; ++ov)
        iv.uris[ov] = String(ev.uris[ov]);
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.uris = []), iv.defaults && (ov.username = "", ov.password = "", ov.ttl = 0), ev.username != null && ev.hasOwnProperty("username") && (ov.username = ev.username), ev.password != null && ev.hasOwnProperty("password") && (ov.password = ev.password), ev.ttl != null && ev.hasOwnProperty("ttl") && (ov.ttl = ev.ttl), ev.uris && ev.uris.length) {
      ov.uris = [];
      for (var av = 0; av < ev.uris.length; ++av)
        ov.uris[av] = ev.uris[av];
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkTranscriptItem = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.content = "", rv.prototype.endTime = $util.Long ? $util.Long.fromBits(0, 0, !1) : 0, rv.prototype.speakerAttendeeId = "", rv.prototype.speakerExternalUserId = "", rv.prototype.startTime = $util.Long ? $util.Long.fromBits(0, 0, !1) : 0, rv.prototype.type = 1, rv.prototype.vocabularyFilterMatch = !1, rv.prototype.confidence = 0, rv.prototype.stable = !1, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.content != null && ev.hasOwnProperty("content") && iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).string(ev.content), ev.endTime != null && ev.hasOwnProperty("endTime") && iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).int64(ev.endTime), ev.speakerAttendeeId != null && ev.hasOwnProperty("speakerAttendeeId") && iv.uint32(
      /* id 3, wireType 2 =*/
      26
    ).string(ev.speakerAttendeeId), ev.speakerExternalUserId != null && ev.hasOwnProperty("speakerExternalUserId") && iv.uint32(
      /* id 4, wireType 2 =*/
      34
    ).string(ev.speakerExternalUserId), ev.startTime != null && ev.hasOwnProperty("startTime") && iv.uint32(
      /* id 5, wireType 0 =*/
      40
    ).int64(ev.startTime), ev.type != null && ev.hasOwnProperty("type") && iv.uint32(
      /* id 6, wireType 0 =*/
      48
    ).int32(ev.type), ev.vocabularyFilterMatch != null && ev.hasOwnProperty("vocabularyFilterMatch") && iv.uint32(
      /* id 7, wireType 0 =*/
      56
    ).bool(ev.vocabularyFilterMatch), ev.confidence != null && ev.hasOwnProperty("confidence") && iv.uint32(
      /* id 8, wireType 1 =*/
      65
    ).double(ev.confidence), ev.stable != null && ev.hasOwnProperty("stable") && iv.uint32(
      /* id 9, wireType 0 =*/
      72
    ).bool(ev.stable), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTranscriptItem(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.content = ev.string();
          break;
        case 2:
          av.endTime = ev.int64();
          break;
        case 3:
          av.speakerAttendeeId = ev.string();
          break;
        case 4:
          av.speakerExternalUserId = ev.string();
          break;
        case 5:
          av.startTime = ev.int64();
          break;
        case 6:
          av.type = ev.int32();
          break;
        case 7:
          av.vocabularyFilterMatch = ev.bool();
          break;
        case 8:
          av.confidence = ev.double();
          break;
        case 9:
          av.stable = ev.bool();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.content != null && ev.hasOwnProperty("content") && !$util.isString(ev.content))
      return "content: string expected";
    if (ev.endTime != null && ev.hasOwnProperty("endTime") && !$util.isInteger(ev.endTime) && !(ev.endTime && $util.isInteger(ev.endTime.low) && $util.isInteger(ev.endTime.high)))
      return "endTime: integer|Long expected";
    if (ev.speakerAttendeeId != null && ev.hasOwnProperty("speakerAttendeeId") && !$util.isString(ev.speakerAttendeeId))
      return "speakerAttendeeId: string expected";
    if (ev.speakerExternalUserId != null && ev.hasOwnProperty("speakerExternalUserId") && !$util.isString(ev.speakerExternalUserId))
      return "speakerExternalUserId: string expected";
    if (ev.startTime != null && ev.hasOwnProperty("startTime") && !$util.isInteger(ev.startTime) && !(ev.startTime && $util.isInteger(ev.startTime.low) && $util.isInteger(ev.startTime.high)))
      return "startTime: integer|Long expected";
    if (ev.type != null && ev.hasOwnProperty("type"))
      switch (ev.type) {
        default:
          return "type: enum value expected";
        case 1:
        case 2:
          break;
      }
    return ev.vocabularyFilterMatch != null && ev.hasOwnProperty("vocabularyFilterMatch") && typeof ev.vocabularyFilterMatch != "boolean" ? "vocabularyFilterMatch: boolean expected" : ev.confidence != null && ev.hasOwnProperty("confidence") && typeof ev.confidence != "number" ? "confidence: number expected" : ev.stable != null && ev.hasOwnProperty("stable") && typeof ev.stable != "boolean" ? "stable: boolean expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTranscriptItem)
      return ev;
    var iv = new $root.SdkTranscriptItem();
    switch (ev.content != null && (iv.content = String(ev.content)), ev.endTime != null && ($util.Long ? (iv.endTime = $util.Long.fromValue(ev.endTime)).unsigned = !1 : typeof ev.endTime == "string" ? iv.endTime = parseInt(ev.endTime, 10) : typeof ev.endTime == "number" ? iv.endTime = ev.endTime : typeof ev.endTime == "object" && (iv.endTime = new $util.LongBits(ev.endTime.low >>> 0, ev.endTime.high >>> 0).toNumber())), ev.speakerAttendeeId != null && (iv.speakerAttendeeId = String(ev.speakerAttendeeId)), ev.speakerExternalUserId != null && (iv.speakerExternalUserId = String(ev.speakerExternalUserId)), ev.startTime != null && ($util.Long ? (iv.startTime = $util.Long.fromValue(ev.startTime)).unsigned = !1 : typeof ev.startTime == "string" ? iv.startTime = parseInt(ev.startTime, 10) : typeof ev.startTime == "number" ? iv.startTime = ev.startTime : typeof ev.startTime == "object" && (iv.startTime = new $util.LongBits(ev.startTime.low >>> 0, ev.startTime.high >>> 0).toNumber())), ev.type) {
      case "PRONUNCIATION":
      case 1:
        iv.type = 1;
        break;
      case "PUNCTUATION":
      case 2:
        iv.type = 2;
        break;
    }
    return ev.vocabularyFilterMatch != null && (iv.vocabularyFilterMatch = !!ev.vocabularyFilterMatch), ev.confidence != null && (iv.confidence = Number(ev.confidence)), ev.stable != null && (iv.stable = !!ev.stable), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if (iv.defaults) {
      if (ov.content = "", $util.Long) {
        var av = new $util.Long(0, 0, !1);
        ov.endTime = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.endTime = iv.longs === String ? "0" : 0;
      if (ov.speakerAttendeeId = "", ov.speakerExternalUserId = "", $util.Long) {
        var av = new $util.Long(0, 0, !1);
        ov.startTime = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.startTime = iv.longs === String ? "0" : 0;
      ov.type = iv.enums === String ? "PRONUNCIATION" : 1, ov.vocabularyFilterMatch = !1, ov.confidence = 0, ov.stable = !1;
    }
    return ev.content != null && ev.hasOwnProperty("content") && (ov.content = ev.content), ev.endTime != null && ev.hasOwnProperty("endTime") && (typeof ev.endTime == "number" ? ov.endTime = iv.longs === String ? String(ev.endTime) : ev.endTime : ov.endTime = iv.longs === String ? $util.Long.prototype.toString.call(ev.endTime) : iv.longs === Number ? new $util.LongBits(ev.endTime.low >>> 0, ev.endTime.high >>> 0).toNumber() : ev.endTime), ev.speakerAttendeeId != null && ev.hasOwnProperty("speakerAttendeeId") && (ov.speakerAttendeeId = ev.speakerAttendeeId), ev.speakerExternalUserId != null && ev.hasOwnProperty("speakerExternalUserId") && (ov.speakerExternalUserId = ev.speakerExternalUserId), ev.startTime != null && ev.hasOwnProperty("startTime") && (typeof ev.startTime == "number" ? ov.startTime = iv.longs === String ? String(ev.startTime) : ev.startTime : ov.startTime = iv.longs === String ? $util.Long.prototype.toString.call(ev.startTime) : iv.longs === Number ? new $util.LongBits(ev.startTime.low >>> 0, ev.startTime.high >>> 0).toNumber() : ev.startTime), ev.type != null && ev.hasOwnProperty("type") && (ov.type = iv.enums === String ? $root.SdkTranscriptItem.Type[ev.type] : ev.type), ev.vocabularyFilterMatch != null && ev.hasOwnProperty("vocabularyFilterMatch") && (ov.vocabularyFilterMatch = ev.vocabularyFilterMatch), ev.confidence != null && ev.hasOwnProperty("confidence") && (ov.confidence = iv.json && !isFinite(ev.confidence) ? String(ev.confidence) : ev.confidence), ev.stable != null && ev.hasOwnProperty("stable") && (ov.stable = ev.stable), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv.Type = function() {
    var tv = {}, ev = Object.create(tv);
    return ev[tv[1] = "PRONUNCIATION"] = 1, ev[tv[2] = "PUNCTUATION"] = 2, ev;
  }(), rv;
}();
$root.SdkTranscriptEntity = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.category = "", rv.prototype.confidence = 0, rv.prototype.content = "", rv.prototype.endTime = $util.Long ? $util.Long.fromBits(0, 0, !1) : 0, rv.prototype.startTime = $util.Long ? $util.Long.fromBits(0, 0, !1) : 0, rv.prototype.type = "", rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.category != null && ev.hasOwnProperty("category") && iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).string(ev.category), ev.confidence != null && ev.hasOwnProperty("confidence") && iv.uint32(
      /* id 2, wireType 1 =*/
      17
    ).double(ev.confidence), ev.content != null && ev.hasOwnProperty("content") && iv.uint32(
      /* id 3, wireType 2 =*/
      26
    ).string(ev.content), ev.endTime != null && ev.hasOwnProperty("endTime") && iv.uint32(
      /* id 4, wireType 0 =*/
      32
    ).int64(ev.endTime), ev.startTime != null && ev.hasOwnProperty("startTime") && iv.uint32(
      /* id 5, wireType 0 =*/
      40
    ).int64(ev.startTime), ev.type != null && ev.hasOwnProperty("type") && iv.uint32(
      /* id 6, wireType 2 =*/
      50
    ).string(ev.type), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTranscriptEntity(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.category = ev.string();
          break;
        case 2:
          av.confidence = ev.double();
          break;
        case 3:
          av.content = ev.string();
          break;
        case 4:
          av.endTime = ev.int64();
          break;
        case 5:
          av.startTime = ev.int64();
          break;
        case 6:
          av.type = ev.string();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.category != null && ev.hasOwnProperty("category") && !$util.isString(ev.category) ? "category: string expected" : ev.confidence != null && ev.hasOwnProperty("confidence") && typeof ev.confidence != "number" ? "confidence: number expected" : ev.content != null && ev.hasOwnProperty("content") && !$util.isString(ev.content) ? "content: string expected" : ev.endTime != null && ev.hasOwnProperty("endTime") && !$util.isInteger(ev.endTime) && !(ev.endTime && $util.isInteger(ev.endTime.low) && $util.isInteger(ev.endTime.high)) ? "endTime: integer|Long expected" : ev.startTime != null && ev.hasOwnProperty("startTime") && !$util.isInteger(ev.startTime) && !(ev.startTime && $util.isInteger(ev.startTime.low) && $util.isInteger(ev.startTime.high)) ? "startTime: integer|Long expected" : ev.type != null && ev.hasOwnProperty("type") && !$util.isString(ev.type) ? "type: string expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTranscriptEntity)
      return ev;
    var iv = new $root.SdkTranscriptEntity();
    return ev.category != null && (iv.category = String(ev.category)), ev.confidence != null && (iv.confidence = Number(ev.confidence)), ev.content != null && (iv.content = String(ev.content)), ev.endTime != null && ($util.Long ? (iv.endTime = $util.Long.fromValue(ev.endTime)).unsigned = !1 : typeof ev.endTime == "string" ? iv.endTime = parseInt(ev.endTime, 10) : typeof ev.endTime == "number" ? iv.endTime = ev.endTime : typeof ev.endTime == "object" && (iv.endTime = new $util.LongBits(ev.endTime.low >>> 0, ev.endTime.high >>> 0).toNumber())), ev.startTime != null && ($util.Long ? (iv.startTime = $util.Long.fromValue(ev.startTime)).unsigned = !1 : typeof ev.startTime == "string" ? iv.startTime = parseInt(ev.startTime, 10) : typeof ev.startTime == "number" ? iv.startTime = ev.startTime : typeof ev.startTime == "object" && (iv.startTime = new $util.LongBits(ev.startTime.low >>> 0, ev.startTime.high >>> 0).toNumber())), ev.type != null && (iv.type = String(ev.type)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if (iv.defaults) {
      if (ov.category = "", ov.confidence = 0, ov.content = "", $util.Long) {
        var av = new $util.Long(0, 0, !1);
        ov.endTime = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.endTime = iv.longs === String ? "0" : 0;
      if ($util.Long) {
        var av = new $util.Long(0, 0, !1);
        ov.startTime = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.startTime = iv.longs === String ? "0" : 0;
      ov.type = "";
    }
    return ev.category != null && ev.hasOwnProperty("category") && (ov.category = ev.category), ev.confidence != null && ev.hasOwnProperty("confidence") && (ov.confidence = iv.json && !isFinite(ev.confidence) ? String(ev.confidence) : ev.confidence), ev.content != null && ev.hasOwnProperty("content") && (ov.content = ev.content), ev.endTime != null && ev.hasOwnProperty("endTime") && (typeof ev.endTime == "number" ? ov.endTime = iv.longs === String ? String(ev.endTime) : ev.endTime : ov.endTime = iv.longs === String ? $util.Long.prototype.toString.call(ev.endTime) : iv.longs === Number ? new $util.LongBits(ev.endTime.low >>> 0, ev.endTime.high >>> 0).toNumber() : ev.endTime), ev.startTime != null && ev.hasOwnProperty("startTime") && (typeof ev.startTime == "number" ? ov.startTime = iv.longs === String ? String(ev.startTime) : ev.startTime : ov.startTime = iv.longs === String ? $util.Long.prototype.toString.call(ev.startTime) : iv.longs === Number ? new $util.LongBits(ev.startTime.low >>> 0, ev.startTime.high >>> 0).toNumber() : ev.startTime), ev.type != null && ev.hasOwnProperty("type") && (ov.type = ev.type), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkTranscriptAlternative = function() {
  function rv(tv) {
    if (this.items = [], this.entities = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.items = $util.emptyArray, rv.prototype.transcript = "", rv.prototype.entities = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.items != null && ev.items.length)
      for (var ov = 0; ov < ev.items.length; ++ov)
        $root.SdkTranscriptItem.encode(ev.items[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    if (ev.transcript != null && ev.hasOwnProperty("transcript") && iv.uint32(
      /* id 2, wireType 2 =*/
      18
    ).string(ev.transcript), ev.entities != null && ev.entities.length)
      for (var ov = 0; ov < ev.entities.length; ++ov)
        $root.SdkTranscriptEntity.encode(ev.entities[ov], iv.uint32(
          /* id 3, wireType 2 =*/
          26
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTranscriptAlternative(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.items && av.items.length || (av.items = []), av.items.push($root.SdkTranscriptItem.decode(ev, ev.uint32()));
          break;
        case 2:
          av.transcript = ev.string();
          break;
        case 3:
          av.entities && av.entities.length || (av.entities = []), av.entities.push($root.SdkTranscriptEntity.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.items != null && ev.hasOwnProperty("items")) {
      if (!Array.isArray(ev.items))
        return "items: array expected";
      for (var iv = 0; iv < ev.items.length; ++iv) {
        var ov = $root.SdkTranscriptItem.verify(ev.items[iv]);
        if (ov)
          return "items." + ov;
      }
    }
    if (ev.transcript != null && ev.hasOwnProperty("transcript") && !$util.isString(ev.transcript))
      return "transcript: string expected";
    if (ev.entities != null && ev.hasOwnProperty("entities")) {
      if (!Array.isArray(ev.entities))
        return "entities: array expected";
      for (var iv = 0; iv < ev.entities.length; ++iv) {
        var ov = $root.SdkTranscriptEntity.verify(ev.entities[iv]);
        if (ov)
          return "entities." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTranscriptAlternative)
      return ev;
    var iv = new $root.SdkTranscriptAlternative();
    if (ev.items) {
      if (!Array.isArray(ev.items))
        throw TypeError(".SdkTranscriptAlternative.items: array expected");
      iv.items = [];
      for (var ov = 0; ov < ev.items.length; ++ov) {
        if (typeof ev.items[ov] != "object")
          throw TypeError(".SdkTranscriptAlternative.items: object expected");
        iv.items[ov] = $root.SdkTranscriptItem.fromObject(ev.items[ov]);
      }
    }
    if (ev.transcript != null && (iv.transcript = String(ev.transcript)), ev.entities) {
      if (!Array.isArray(ev.entities))
        throw TypeError(".SdkTranscriptAlternative.entities: array expected");
      iv.entities = [];
      for (var ov = 0; ov < ev.entities.length; ++ov) {
        if (typeof ev.entities[ov] != "object")
          throw TypeError(".SdkTranscriptAlternative.entities: object expected");
        iv.entities[ov] = $root.SdkTranscriptEntity.fromObject(ev.entities[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.items = [], ov.entities = []), iv.defaults && (ov.transcript = ""), ev.items && ev.items.length) {
      ov.items = [];
      for (var av = 0; av < ev.items.length; ++av)
        ov.items[av] = $root.SdkTranscriptItem.toObject(ev.items[av], iv);
    }
    if (ev.transcript != null && ev.hasOwnProperty("transcript") && (ov.transcript = ev.transcript), ev.entities && ev.entities.length) {
      ov.entities = [];
      for (var av = 0; av < ev.entities.length; ++av)
        ov.entities[av] = $root.SdkTranscriptEntity.toObject(ev.entities[av], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkTranscriptLanguageWithScore = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.languageCode = "", rv.prototype.score = 0, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.languageCode != null && ev.hasOwnProperty("languageCode") && iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).string(ev.languageCode), ev.score != null && ev.hasOwnProperty("score") && iv.uint32(
      /* id 2, wireType 1 =*/
      17
    ).double(ev.score), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTranscriptLanguageWithScore(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.languageCode = ev.string();
          break;
        case 2:
          av.score = ev.double();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.languageCode != null && ev.hasOwnProperty("languageCode") && !$util.isString(ev.languageCode) ? "languageCode: string expected" : ev.score != null && ev.hasOwnProperty("score") && typeof ev.score != "number" ? "score: number expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTranscriptLanguageWithScore)
      return ev;
    var iv = new $root.SdkTranscriptLanguageWithScore();
    return ev.languageCode != null && (iv.languageCode = String(ev.languageCode)), ev.score != null && (iv.score = Number(ev.score)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.languageCode = "", ov.score = 0), ev.languageCode != null && ev.hasOwnProperty("languageCode") && (ov.languageCode = ev.languageCode), ev.score != null && ev.hasOwnProperty("score") && (ov.score = iv.json && !isFinite(ev.score) ? String(ev.score) : ev.score), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkTranscriptResult = function() {
  function rv(tv) {
    if (this.alternatives = [], this.languageIdentification = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.alternatives = $util.emptyArray, rv.prototype.channelId = "", rv.prototype.endTime = $util.Long ? $util.Long.fromBits(0, 0, !1) : 0, rv.prototype.isPartial = !1, rv.prototype.resultId = "", rv.prototype.startTime = $util.Long ? $util.Long.fromBits(0, 0, !1) : 0, rv.prototype.languageCode = "", rv.prototype.languageIdentification = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.alternatives != null && ev.alternatives.length)
      for (var ov = 0; ov < ev.alternatives.length; ++ov)
        $root.SdkTranscriptAlternative.encode(ev.alternatives[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    if (ev.channelId != null && ev.hasOwnProperty("channelId") && iv.uint32(
      /* id 2, wireType 2 =*/
      18
    ).string(ev.channelId), ev.endTime != null && ev.hasOwnProperty("endTime") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).int64(ev.endTime), ev.isPartial != null && ev.hasOwnProperty("isPartial") && iv.uint32(
      /* id 4, wireType 0 =*/
      32
    ).bool(ev.isPartial), ev.resultId != null && ev.hasOwnProperty("resultId") && iv.uint32(
      /* id 5, wireType 2 =*/
      42
    ).string(ev.resultId), ev.startTime != null && ev.hasOwnProperty("startTime") && iv.uint32(
      /* id 6, wireType 0 =*/
      48
    ).int64(ev.startTime), ev.languageCode != null && ev.hasOwnProperty("languageCode") && iv.uint32(
      /* id 7, wireType 2 =*/
      58
    ).string(ev.languageCode), ev.languageIdentification != null && ev.languageIdentification.length)
      for (var ov = 0; ov < ev.languageIdentification.length; ++ov)
        $root.SdkTranscriptLanguageWithScore.encode(ev.languageIdentification[ov], iv.uint32(
          /* id 8, wireType 2 =*/
          66
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTranscriptResult(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.alternatives && av.alternatives.length || (av.alternatives = []), av.alternatives.push($root.SdkTranscriptAlternative.decode(ev, ev.uint32()));
          break;
        case 2:
          av.channelId = ev.string();
          break;
        case 3:
          av.endTime = ev.int64();
          break;
        case 4:
          av.isPartial = ev.bool();
          break;
        case 5:
          av.resultId = ev.string();
          break;
        case 6:
          av.startTime = ev.int64();
          break;
        case 7:
          av.languageCode = ev.string();
          break;
        case 8:
          av.languageIdentification && av.languageIdentification.length || (av.languageIdentification = []), av.languageIdentification.push($root.SdkTranscriptLanguageWithScore.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.alternatives != null && ev.hasOwnProperty("alternatives")) {
      if (!Array.isArray(ev.alternatives))
        return "alternatives: array expected";
      for (var iv = 0; iv < ev.alternatives.length; ++iv) {
        var ov = $root.SdkTranscriptAlternative.verify(ev.alternatives[iv]);
        if (ov)
          return "alternatives." + ov;
      }
    }
    if (ev.channelId != null && ev.hasOwnProperty("channelId") && !$util.isString(ev.channelId))
      return "channelId: string expected";
    if (ev.endTime != null && ev.hasOwnProperty("endTime") && !$util.isInteger(ev.endTime) && !(ev.endTime && $util.isInteger(ev.endTime.low) && $util.isInteger(ev.endTime.high)))
      return "endTime: integer|Long expected";
    if (ev.isPartial != null && ev.hasOwnProperty("isPartial") && typeof ev.isPartial != "boolean")
      return "isPartial: boolean expected";
    if (ev.resultId != null && ev.hasOwnProperty("resultId") && !$util.isString(ev.resultId))
      return "resultId: string expected";
    if (ev.startTime != null && ev.hasOwnProperty("startTime") && !$util.isInteger(ev.startTime) && !(ev.startTime && $util.isInteger(ev.startTime.low) && $util.isInteger(ev.startTime.high)))
      return "startTime: integer|Long expected";
    if (ev.languageCode != null && ev.hasOwnProperty("languageCode") && !$util.isString(ev.languageCode))
      return "languageCode: string expected";
    if (ev.languageIdentification != null && ev.hasOwnProperty("languageIdentification")) {
      if (!Array.isArray(ev.languageIdentification))
        return "languageIdentification: array expected";
      for (var iv = 0; iv < ev.languageIdentification.length; ++iv) {
        var ov = $root.SdkTranscriptLanguageWithScore.verify(ev.languageIdentification[iv]);
        if (ov)
          return "languageIdentification." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTranscriptResult)
      return ev;
    var iv = new $root.SdkTranscriptResult();
    if (ev.alternatives) {
      if (!Array.isArray(ev.alternatives))
        throw TypeError(".SdkTranscriptResult.alternatives: array expected");
      iv.alternatives = [];
      for (var ov = 0; ov < ev.alternatives.length; ++ov) {
        if (typeof ev.alternatives[ov] != "object")
          throw TypeError(".SdkTranscriptResult.alternatives: object expected");
        iv.alternatives[ov] = $root.SdkTranscriptAlternative.fromObject(ev.alternatives[ov]);
      }
    }
    if (ev.channelId != null && (iv.channelId = String(ev.channelId)), ev.endTime != null && ($util.Long ? (iv.endTime = $util.Long.fromValue(ev.endTime)).unsigned = !1 : typeof ev.endTime == "string" ? iv.endTime = parseInt(ev.endTime, 10) : typeof ev.endTime == "number" ? iv.endTime = ev.endTime : typeof ev.endTime == "object" && (iv.endTime = new $util.LongBits(ev.endTime.low >>> 0, ev.endTime.high >>> 0).toNumber())), ev.isPartial != null && (iv.isPartial = !!ev.isPartial), ev.resultId != null && (iv.resultId = String(ev.resultId)), ev.startTime != null && ($util.Long ? (iv.startTime = $util.Long.fromValue(ev.startTime)).unsigned = !1 : typeof ev.startTime == "string" ? iv.startTime = parseInt(ev.startTime, 10) : typeof ev.startTime == "number" ? iv.startTime = ev.startTime : typeof ev.startTime == "object" && (iv.startTime = new $util.LongBits(ev.startTime.low >>> 0, ev.startTime.high >>> 0).toNumber())), ev.languageCode != null && (iv.languageCode = String(ev.languageCode)), ev.languageIdentification) {
      if (!Array.isArray(ev.languageIdentification))
        throw TypeError(".SdkTranscriptResult.languageIdentification: array expected");
      iv.languageIdentification = [];
      for (var ov = 0; ov < ev.languageIdentification.length; ++ov) {
        if (typeof ev.languageIdentification[ov] != "object")
          throw TypeError(".SdkTranscriptResult.languageIdentification: object expected");
        iv.languageIdentification[ov] = $root.SdkTranscriptLanguageWithScore.fromObject(ev.languageIdentification[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.alternatives = [], ov.languageIdentification = []), iv.defaults) {
      if (ov.channelId = "", $util.Long) {
        var av = new $util.Long(0, 0, !1);
        ov.endTime = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.endTime = iv.longs === String ? "0" : 0;
      if (ov.isPartial = !1, ov.resultId = "", $util.Long) {
        var av = new $util.Long(0, 0, !1);
        ov.startTime = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.startTime = iv.longs === String ? "0" : 0;
      ov.languageCode = "";
    }
    if (ev.alternatives && ev.alternatives.length) {
      ov.alternatives = [];
      for (var sv = 0; sv < ev.alternatives.length; ++sv)
        ov.alternatives[sv] = $root.SdkTranscriptAlternative.toObject(ev.alternatives[sv], iv);
    }
    if (ev.channelId != null && ev.hasOwnProperty("channelId") && (ov.channelId = ev.channelId), ev.endTime != null && ev.hasOwnProperty("endTime") && (typeof ev.endTime == "number" ? ov.endTime = iv.longs === String ? String(ev.endTime) : ev.endTime : ov.endTime = iv.longs === String ? $util.Long.prototype.toString.call(ev.endTime) : iv.longs === Number ? new $util.LongBits(ev.endTime.low >>> 0, ev.endTime.high >>> 0).toNumber() : ev.endTime), ev.isPartial != null && ev.hasOwnProperty("isPartial") && (ov.isPartial = ev.isPartial), ev.resultId != null && ev.hasOwnProperty("resultId") && (ov.resultId = ev.resultId), ev.startTime != null && ev.hasOwnProperty("startTime") && (typeof ev.startTime == "number" ? ov.startTime = iv.longs === String ? String(ev.startTime) : ev.startTime : ov.startTime = iv.longs === String ? $util.Long.prototype.toString.call(ev.startTime) : iv.longs === Number ? new $util.LongBits(ev.startTime.low >>> 0, ev.startTime.high >>> 0).toNumber() : ev.startTime), ev.languageCode != null && ev.hasOwnProperty("languageCode") && (ov.languageCode = ev.languageCode), ev.languageIdentification && ev.languageIdentification.length) {
      ov.languageIdentification = [];
      for (var sv = 0; sv < ev.languageIdentification.length; ++sv)
        ov.languageIdentification[sv] = $root.SdkTranscriptLanguageWithScore.toObject(ev.languageIdentification[sv], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkTranscript = function() {
  function rv(tv) {
    if (this.results = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.results = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.results != null && ev.results.length)
      for (var ov = 0; ov < ev.results.length; ++ov)
        $root.SdkTranscriptResult.encode(ev.results[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTranscript(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.results && av.results.length || (av.results = []), av.results.push($root.SdkTranscriptResult.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.results != null && ev.hasOwnProperty("results")) {
      if (!Array.isArray(ev.results))
        return "results: array expected";
      for (var iv = 0; iv < ev.results.length; ++iv) {
        var ov = $root.SdkTranscriptResult.verify(ev.results[iv]);
        if (ov)
          return "results." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTranscript)
      return ev;
    var iv = new $root.SdkTranscript();
    if (ev.results) {
      if (!Array.isArray(ev.results))
        throw TypeError(".SdkTranscript.results: array expected");
      iv.results = [];
      for (var ov = 0; ov < ev.results.length; ++ov) {
        if (typeof ev.results[ov] != "object")
          throw TypeError(".SdkTranscript.results: object expected");
        iv.results[ov] = $root.SdkTranscriptResult.fromObject(ev.results[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.results = []), ev.results && ev.results.length) {
      ov.results = [];
      for (var av = 0; av < ev.results.length; ++av)
        ov.results[av] = $root.SdkTranscriptResult.toObject(ev.results[av], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkTranscriptionStatus = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.type = 1, rv.prototype.eventTime = $util.Long ? $util.Long.fromBits(0, 0, !1) : 0, rv.prototype.transcriptionRegion = "", rv.prototype.transcriptionConfiguration = "", rv.prototype.message = "", rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.type != null && ev.hasOwnProperty("type") && iv.uint32(
      /* id 1, wireType 0 =*/
      8
    ).int32(ev.type), ev.eventTime != null && ev.hasOwnProperty("eventTime") && iv.uint32(
      /* id 2, wireType 0 =*/
      16
    ).int64(ev.eventTime), ev.transcriptionRegion != null && ev.hasOwnProperty("transcriptionRegion") && iv.uint32(
      /* id 3, wireType 2 =*/
      26
    ).string(ev.transcriptionRegion), ev.transcriptionConfiguration != null && ev.hasOwnProperty("transcriptionConfiguration") && iv.uint32(
      /* id 4, wireType 2 =*/
      34
    ).string(ev.transcriptionConfiguration), ev.message != null && ev.hasOwnProperty("message") && iv.uint32(
      /* id 5, wireType 2 =*/
      42
    ).string(ev.message), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTranscriptionStatus(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.type = ev.int32();
          break;
        case 2:
          av.eventTime = ev.int64();
          break;
        case 3:
          av.transcriptionRegion = ev.string();
          break;
        case 4:
          av.transcriptionConfiguration = ev.string();
          break;
        case 5:
          av.message = ev.string();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.type != null && ev.hasOwnProperty("type"))
      switch (ev.type) {
        default:
          return "type: enum value expected";
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
          break;
      }
    return ev.eventTime != null && ev.hasOwnProperty("eventTime") && !$util.isInteger(ev.eventTime) && !(ev.eventTime && $util.isInteger(ev.eventTime.low) && $util.isInteger(ev.eventTime.high)) ? "eventTime: integer|Long expected" : ev.transcriptionRegion != null && ev.hasOwnProperty("transcriptionRegion") && !$util.isString(ev.transcriptionRegion) ? "transcriptionRegion: string expected" : ev.transcriptionConfiguration != null && ev.hasOwnProperty("transcriptionConfiguration") && !$util.isString(ev.transcriptionConfiguration) ? "transcriptionConfiguration: string expected" : ev.message != null && ev.hasOwnProperty("message") && !$util.isString(ev.message) ? "message: string expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTranscriptionStatus)
      return ev;
    var iv = new $root.SdkTranscriptionStatus();
    switch (ev.type) {
      case "STARTED":
      case 1:
        iv.type = 1;
        break;
      case "INTERRUPTED":
      case 2:
        iv.type = 2;
        break;
      case "RESUMED":
      case 3:
        iv.type = 3;
        break;
      case "STOPPED":
      case 4:
        iv.type = 4;
        break;
      case "FAILED":
      case 5:
        iv.type = 5;
        break;
    }
    return ev.eventTime != null && ($util.Long ? (iv.eventTime = $util.Long.fromValue(ev.eventTime)).unsigned = !1 : typeof ev.eventTime == "string" ? iv.eventTime = parseInt(ev.eventTime, 10) : typeof ev.eventTime == "number" ? iv.eventTime = ev.eventTime : typeof ev.eventTime == "object" && (iv.eventTime = new $util.LongBits(ev.eventTime.low >>> 0, ev.eventTime.high >>> 0).toNumber())), ev.transcriptionRegion != null && (iv.transcriptionRegion = String(ev.transcriptionRegion)), ev.transcriptionConfiguration != null && (iv.transcriptionConfiguration = String(ev.transcriptionConfiguration)), ev.message != null && (iv.message = String(ev.message)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if (iv.defaults) {
      if (ov.type = iv.enums === String ? "STARTED" : 1, $util.Long) {
        var av = new $util.Long(0, 0, !1);
        ov.eventTime = iv.longs === String ? av.toString() : iv.longs === Number ? av.toNumber() : av;
      } else
        ov.eventTime = iv.longs === String ? "0" : 0;
      ov.transcriptionRegion = "", ov.transcriptionConfiguration = "", ov.message = "";
    }
    return ev.type != null && ev.hasOwnProperty("type") && (ov.type = iv.enums === String ? $root.SdkTranscriptionStatus.Type[ev.type] : ev.type), ev.eventTime != null && ev.hasOwnProperty("eventTime") && (typeof ev.eventTime == "number" ? ov.eventTime = iv.longs === String ? String(ev.eventTime) : ev.eventTime : ov.eventTime = iv.longs === String ? $util.Long.prototype.toString.call(ev.eventTime) : iv.longs === Number ? new $util.LongBits(ev.eventTime.low >>> 0, ev.eventTime.high >>> 0).toNumber() : ev.eventTime), ev.transcriptionRegion != null && ev.hasOwnProperty("transcriptionRegion") && (ov.transcriptionRegion = ev.transcriptionRegion), ev.transcriptionConfiguration != null && ev.hasOwnProperty("transcriptionConfiguration") && (ov.transcriptionConfiguration = ev.transcriptionConfiguration), ev.message != null && ev.hasOwnProperty("message") && (ov.message = ev.message), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv.Type = function() {
    var tv = {}, ev = Object.create(tv);
    return ev[tv[1] = "STARTED"] = 1, ev[tv[2] = "INTERRUPTED"] = 2, ev[tv[3] = "RESUMED"] = 3, ev[tv[4] = "STOPPED"] = 4, ev[tv[5] = "FAILED"] = 5, ev;
  }(), rv;
}();
$root.SdkTranscriptEvent = function() {
  function rv(ev) {
    if (ev)
      for (var iv = Object.keys(ev), ov = 0; ov < iv.length; ++ov)
        ev[iv[ov]] != null && (this[iv[ov]] = ev[iv[ov]]);
  }
  rv.prototype.status = null, rv.prototype.transcript = null;
  var tv;
  return Object.defineProperty(rv.prototype, "Event", {
    get: $util.oneOfGetter(tv = ["status", "transcript"]),
    set: $util.oneOfSetter(tv)
  }), rv.create = function(iv) {
    return new rv(iv);
  }, rv.encode = function(iv, ov) {
    return ov || (ov = $Writer.create()), iv.status != null && iv.hasOwnProperty("status") && $root.SdkTranscriptionStatus.encode(iv.status, ov.uint32(
      /* id 1, wireType 2 =*/
      10
    ).fork()).ldelim(), iv.transcript != null && iv.hasOwnProperty("transcript") && $root.SdkTranscript.encode(iv.transcript, ov.uint32(
      /* id 2, wireType 2 =*/
      18
    ).fork()).ldelim(), ov;
  }, rv.encodeDelimited = function(iv, ov) {
    return this.encode(iv, ov).ldelim();
  }, rv.decode = function(iv, ov) {
    iv instanceof $Reader || (iv = $Reader.create(iv));
    for (var av = ov === void 0 ? iv.len : iv.pos + ov, sv = new $root.SdkTranscriptEvent(); iv.pos < av; ) {
      var lv = iv.uint32();
      switch (lv >>> 3) {
        case 1:
          sv.status = $root.SdkTranscriptionStatus.decode(iv, iv.uint32());
          break;
        case 2:
          sv.transcript = $root.SdkTranscript.decode(iv, iv.uint32());
          break;
        default:
          iv.skipType(lv & 7);
          break;
      }
    }
    return sv;
  }, rv.decodeDelimited = function(iv) {
    return iv instanceof $Reader || (iv = new $Reader(iv)), this.decode(iv, iv.uint32());
  }, rv.verify = function(iv) {
    if (typeof iv != "object" || iv === null)
      return "object expected";
    var ov = {};
    if (iv.status != null && iv.hasOwnProperty("status")) {
      ov.Event = 1;
      {
        var av = $root.SdkTranscriptionStatus.verify(iv.status);
        if (av)
          return "status." + av;
      }
    }
    if (iv.transcript != null && iv.hasOwnProperty("transcript")) {
      if (ov.Event === 1)
        return "Event: multiple values";
      ov.Event = 1;
      {
        var av = $root.SdkTranscript.verify(iv.transcript);
        if (av)
          return "transcript." + av;
      }
    }
    return null;
  }, rv.fromObject = function(iv) {
    if (iv instanceof $root.SdkTranscriptEvent)
      return iv;
    var ov = new $root.SdkTranscriptEvent();
    if (iv.status != null) {
      if (typeof iv.status != "object")
        throw TypeError(".SdkTranscriptEvent.status: object expected");
      ov.status = $root.SdkTranscriptionStatus.fromObject(iv.status);
    }
    if (iv.transcript != null) {
      if (typeof iv.transcript != "object")
        throw TypeError(".SdkTranscriptEvent.transcript: object expected");
      ov.transcript = $root.SdkTranscript.fromObject(iv.transcript);
    }
    return ov;
  }, rv.toObject = function(iv, ov) {
    ov || (ov = {});
    var av = {};
    return iv.status != null && iv.hasOwnProperty("status") && (av.status = $root.SdkTranscriptionStatus.toObject(iv.status, ov), ov.oneofs && (av.Event = "status")), iv.transcript != null && iv.hasOwnProperty("transcript") && (av.transcript = $root.SdkTranscript.toObject(iv.transcript, ov), ov.oneofs && (av.Event = "transcript")), av;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkTranscriptFrame = function() {
  function rv(tv) {
    if (this.events = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.events = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.events != null && ev.events.length)
      for (var ov = 0; ov < ev.events.length; ++ov)
        $root.SdkTranscriptEvent.encode(ev.events[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkTranscriptFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.events && av.events.length || (av.events = []), av.events.push($root.SdkTranscriptEvent.decode(ev, ev.uint32()));
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.events != null && ev.hasOwnProperty("events")) {
      if (!Array.isArray(ev.events))
        return "events: array expected";
      for (var iv = 0; iv < ev.events.length; ++iv) {
        var ov = $root.SdkTranscriptEvent.verify(ev.events[iv]);
        if (ov)
          return "events." + ov;
      }
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkTranscriptFrame)
      return ev;
    var iv = new $root.SdkTranscriptFrame();
    if (ev.events) {
      if (!Array.isArray(ev.events))
        throw TypeError(".SdkTranscriptFrame.events: array expected");
      iv.events = [];
      for (var ov = 0; ov < ev.events.length; ++ov) {
        if (typeof ev.events[ov] != "object")
          throw TypeError(".SdkTranscriptFrame.events: object expected");
        iv.events[ov] = $root.SdkTranscriptEvent.fromObject(ev.events[ov]);
      }
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.events = []), ev.events && ev.events.length) {
      ov.events = [];
      for (var av = 0; av < ev.events.length; ++av)
        ov.events[av] = $root.SdkTranscriptEvent.toObject(ev.events[av], iv);
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkRemoteVideoUpdateFrame = function() {
  function rv(tv) {
    if (this.addedOrUpdatedVideoSubscriptions = [], this.removedVideoSubscriptionMids = [], tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.addedOrUpdatedVideoSubscriptions = $util.emptyArray, rv.prototype.removedVideoSubscriptionMids = $util.emptyArray, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    if (iv || (iv = $Writer.create()), ev.addedOrUpdatedVideoSubscriptions != null && ev.addedOrUpdatedVideoSubscriptions.length)
      for (var ov = 0; ov < ev.addedOrUpdatedVideoSubscriptions.length; ++ov)
        $root.SdkVideoSubscriptionConfiguration.encode(ev.addedOrUpdatedVideoSubscriptions[ov], iv.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim();
    if (ev.removedVideoSubscriptionMids != null && ev.removedVideoSubscriptionMids.length)
      for (var ov = 0; ov < ev.removedVideoSubscriptionMids.length; ++ov)
        iv.uint32(
          /* id 2, wireType 2 =*/
          18
        ).string(ev.removedVideoSubscriptionMids[ov]);
    return iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkRemoteVideoUpdateFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.addedOrUpdatedVideoSubscriptions && av.addedOrUpdatedVideoSubscriptions.length || (av.addedOrUpdatedVideoSubscriptions = []), av.addedOrUpdatedVideoSubscriptions.push($root.SdkVideoSubscriptionConfiguration.decode(ev, ev.uint32()));
          break;
        case 2:
          av.removedVideoSubscriptionMids && av.removedVideoSubscriptionMids.length || (av.removedVideoSubscriptionMids = []), av.removedVideoSubscriptionMids.push(ev.string());
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.addedOrUpdatedVideoSubscriptions != null && ev.hasOwnProperty("addedOrUpdatedVideoSubscriptions")) {
      if (!Array.isArray(ev.addedOrUpdatedVideoSubscriptions))
        return "addedOrUpdatedVideoSubscriptions: array expected";
      for (var iv = 0; iv < ev.addedOrUpdatedVideoSubscriptions.length; ++iv) {
        var ov = $root.SdkVideoSubscriptionConfiguration.verify(ev.addedOrUpdatedVideoSubscriptions[iv]);
        if (ov)
          return "addedOrUpdatedVideoSubscriptions." + ov;
      }
    }
    if (ev.removedVideoSubscriptionMids != null && ev.hasOwnProperty("removedVideoSubscriptionMids")) {
      if (!Array.isArray(ev.removedVideoSubscriptionMids))
        return "removedVideoSubscriptionMids: array expected";
      for (var iv = 0; iv < ev.removedVideoSubscriptionMids.length; ++iv)
        if (!$util.isString(ev.removedVideoSubscriptionMids[iv]))
          return "removedVideoSubscriptionMids: string[] expected";
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkRemoteVideoUpdateFrame)
      return ev;
    var iv = new $root.SdkRemoteVideoUpdateFrame();
    if (ev.addedOrUpdatedVideoSubscriptions) {
      if (!Array.isArray(ev.addedOrUpdatedVideoSubscriptions))
        throw TypeError(".SdkRemoteVideoUpdateFrame.addedOrUpdatedVideoSubscriptions: array expected");
      iv.addedOrUpdatedVideoSubscriptions = [];
      for (var ov = 0; ov < ev.addedOrUpdatedVideoSubscriptions.length; ++ov) {
        if (typeof ev.addedOrUpdatedVideoSubscriptions[ov] != "object")
          throw TypeError(".SdkRemoteVideoUpdateFrame.addedOrUpdatedVideoSubscriptions: object expected");
        iv.addedOrUpdatedVideoSubscriptions[ov] = $root.SdkVideoSubscriptionConfiguration.fromObject(ev.addedOrUpdatedVideoSubscriptions[ov]);
      }
    }
    if (ev.removedVideoSubscriptionMids) {
      if (!Array.isArray(ev.removedVideoSubscriptionMids))
        throw TypeError(".SdkRemoteVideoUpdateFrame.removedVideoSubscriptionMids: array expected");
      iv.removedVideoSubscriptionMids = [];
      for (var ov = 0; ov < ev.removedVideoSubscriptionMids.length; ++ov)
        iv.removedVideoSubscriptionMids[ov] = String(ev.removedVideoSubscriptionMids[ov]);
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    if ((iv.arrays || iv.defaults) && (ov.addedOrUpdatedVideoSubscriptions = [], ov.removedVideoSubscriptionMids = []), ev.addedOrUpdatedVideoSubscriptions && ev.addedOrUpdatedVideoSubscriptions.length) {
      ov.addedOrUpdatedVideoSubscriptions = [];
      for (var av = 0; av < ev.addedOrUpdatedVideoSubscriptions.length; ++av)
        ov.addedOrUpdatedVideoSubscriptions[av] = $root.SdkVideoSubscriptionConfiguration.toObject(ev.addedOrUpdatedVideoSubscriptions[av], iv);
    }
    if (ev.removedVideoSubscriptionMids && ev.removedVideoSubscriptionMids.length) {
      ov.removedVideoSubscriptionMids = [];
      for (var av = 0; av < ev.removedVideoSubscriptionMids.length; ++av)
        ov.removedVideoSubscriptionMids[av] = ev.removedVideoSubscriptionMids[av];
    }
    return ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkVideoSubscriptionConfiguration = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.mid = "", rv.prototype.attendeeId = "", rv.prototype.streamId = 0, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).string(ev.mid), ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && iv.uint32(
      /* id 2, wireType 2 =*/
      18
    ).string(ev.attendeeId), ev.streamId != null && ev.hasOwnProperty("streamId") && iv.uint32(
      /* id 3, wireType 0 =*/
      24
    ).uint32(ev.streamId), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkVideoSubscriptionConfiguration(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.mid = ev.string();
          break;
        case 2:
          av.attendeeId = ev.string();
          break;
        case 3:
          av.streamId = ev.uint32();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    if (!av.hasOwnProperty("mid"))
      throw $util.ProtocolError("missing required 'mid'", { instance: av });
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : $util.isString(ev.mid) ? ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && !$util.isString(ev.attendeeId) ? "attendeeId: string expected" : ev.streamId != null && ev.hasOwnProperty("streamId") && !$util.isInteger(ev.streamId) ? "streamId: integer expected" : null : "mid: string expected";
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkVideoSubscriptionConfiguration)
      return ev;
    var iv = new $root.SdkVideoSubscriptionConfiguration();
    return ev.mid != null && (iv.mid = String(ev.mid)), ev.attendeeId != null && (iv.attendeeId = String(ev.attendeeId)), ev.streamId != null && (iv.streamId = ev.streamId >>> 0), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.mid = "", ov.attendeeId = "", ov.streamId = 0), ev.mid != null && ev.hasOwnProperty("mid") && (ov.mid = ev.mid), ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && (ov.attendeeId = ev.attendeeId), ev.streamId != null && ev.hasOwnProperty("streamId") && (ov.streamId = ev.streamId), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkPrimaryMeetingJoinFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.credentials = null, rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.credentials != null && ev.hasOwnProperty("credentials") && $root.SdkMeetingSessionCredentials.encode(ev.credentials, iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).fork()).ldelim(), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkPrimaryMeetingJoinFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.credentials = $root.SdkMeetingSessionCredentials.decode(ev, ev.uint32());
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    if (typeof ev != "object" || ev === null)
      return "object expected";
    if (ev.credentials != null && ev.hasOwnProperty("credentials")) {
      var iv = $root.SdkMeetingSessionCredentials.verify(ev.credentials);
      if (iv)
        return "credentials." + iv;
    }
    return null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkPrimaryMeetingJoinFrame)
      return ev;
    var iv = new $root.SdkPrimaryMeetingJoinFrame();
    if (ev.credentials != null) {
      if (typeof ev.credentials != "object")
        throw TypeError(".SdkPrimaryMeetingJoinFrame.credentials: object expected");
      iv.credentials = $root.SdkMeetingSessionCredentials.fromObject(ev.credentials);
    }
    return iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.credentials = null), ev.credentials != null && ev.hasOwnProperty("credentials") && (ov.credentials = $root.SdkMeetingSessionCredentials.toObject(ev.credentials, iv)), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkPrimaryMeetingJoinAckFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkPrimaryMeetingJoinAckFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : null;
  }, rv.fromObject = function(ev) {
    return ev instanceof $root.SdkPrimaryMeetingJoinAckFrame ? ev : new $root.SdkPrimaryMeetingJoinAckFrame();
  }, rv.toObject = function() {
    return {};
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkPrimaryMeetingLeaveFrame = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkPrimaryMeetingLeaveFrame(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : null;
  }, rv.fromObject = function(ev) {
    return ev instanceof $root.SdkPrimaryMeetingLeaveFrame ? ev : new $root.SdkPrimaryMeetingLeaveFrame();
  }, rv.toObject = function() {
    return {};
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
$root.SdkMeetingSessionCredentials = function() {
  function rv(tv) {
    if (tv)
      for (var ev = Object.keys(tv), iv = 0; iv < ev.length; ++iv)
        tv[ev[iv]] != null && (this[ev[iv]] = tv[ev[iv]]);
  }
  return rv.prototype.attendeeId = "", rv.prototype.externalUserId = "", rv.prototype.joinToken = "", rv.create = function(ev) {
    return new rv(ev);
  }, rv.encode = function(ev, iv) {
    return iv || (iv = $Writer.create()), ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && iv.uint32(
      /* id 1, wireType 2 =*/
      10
    ).string(ev.attendeeId), ev.externalUserId != null && ev.hasOwnProperty("externalUserId") && iv.uint32(
      /* id 2, wireType 2 =*/
      18
    ).string(ev.externalUserId), ev.joinToken != null && ev.hasOwnProperty("joinToken") && iv.uint32(
      /* id 3, wireType 2 =*/
      26
    ).string(ev.joinToken), iv;
  }, rv.encodeDelimited = function(ev, iv) {
    return this.encode(ev, iv).ldelim();
  }, rv.decode = function(ev, iv) {
    ev instanceof $Reader || (ev = $Reader.create(ev));
    for (var ov = iv === void 0 ? ev.len : ev.pos + iv, av = new $root.SdkMeetingSessionCredentials(); ev.pos < ov; ) {
      var sv = ev.uint32();
      switch (sv >>> 3) {
        case 1:
          av.attendeeId = ev.string();
          break;
        case 2:
          av.externalUserId = ev.string();
          break;
        case 3:
          av.joinToken = ev.string();
          break;
        default:
          ev.skipType(sv & 7);
          break;
      }
    }
    return av;
  }, rv.decodeDelimited = function(ev) {
    return ev instanceof $Reader || (ev = new $Reader(ev)), this.decode(ev, ev.uint32());
  }, rv.verify = function(ev) {
    return typeof ev != "object" || ev === null ? "object expected" : ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && !$util.isString(ev.attendeeId) ? "attendeeId: string expected" : ev.externalUserId != null && ev.hasOwnProperty("externalUserId") && !$util.isString(ev.externalUserId) ? "externalUserId: string expected" : ev.joinToken != null && ev.hasOwnProperty("joinToken") && !$util.isString(ev.joinToken) ? "joinToken: string expected" : null;
  }, rv.fromObject = function(ev) {
    if (ev instanceof $root.SdkMeetingSessionCredentials)
      return ev;
    var iv = new $root.SdkMeetingSessionCredentials();
    return ev.attendeeId != null && (iv.attendeeId = String(ev.attendeeId)), ev.externalUserId != null && (iv.externalUserId = String(ev.externalUserId)), ev.joinToken != null && (iv.joinToken = String(ev.joinToken)), iv;
  }, rv.toObject = function(ev, iv) {
    iv || (iv = {});
    var ov = {};
    return iv.defaults && (ov.attendeeId = "", ov.externalUserId = "", ov.joinToken = ""), ev.attendeeId != null && ev.hasOwnProperty("attendeeId") && (ov.attendeeId = ev.attendeeId), ev.externalUserId != null && ev.hasOwnProperty("externalUserId") && (ov.externalUserId = ev.externalUserId), ev.joinToken != null && ev.hasOwnProperty("joinToken") && (ov.joinToken = ev.joinToken), ov;
  }, rv.prototype.toJSON = function() {
    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
  }, rv;
}();
var SignalingProtocol = $root;
$util.Long = void 0;
$protobuf.configure();
Object.defineProperty(MeetingSessionStatus$1, "__esModule", { value: !0 });
const SignalingProtocol_js_1$e = SignalingProtocol, MeetingSessionStatusCode_1$6 = MeetingSessionStatusCode;
class MeetingSessionStatus {
  constructor(tv) {
    this._statusCode = tv;
  }
  statusCode() {
    return this._statusCode;
  }
  isFailure() {
    switch (this._statusCode) {
      case MeetingSessionStatusCode_1$6.default.AudioAuthenticationRejected:
      case MeetingSessionStatusCode_1$6.default.AudioCallAtCapacity:
      case MeetingSessionStatusCode_1$6.default.AudioInternalServerError:
      case MeetingSessionStatusCode_1$6.default.AudioServiceUnavailable:
      case MeetingSessionStatusCode_1$6.default.AudioDisconnected:
      case MeetingSessionStatusCode_1$6.default.VideoCallAtSourceCapacity:
      case MeetingSessionStatusCode_1$6.default.SignalingBadRequest:
      case MeetingSessionStatusCode_1$6.default.SignalingInternalServerError:
      case MeetingSessionStatusCode_1$6.default.SignalingRequestFailed:
      case MeetingSessionStatusCode_1$6.default.StateMachineTransitionFailed:
      case MeetingSessionStatusCode_1$6.default.ICEGatheringTimeoutWorkaround:
      case MeetingSessionStatusCode_1$6.default.ConnectionHealthReconnect:
      case MeetingSessionStatusCode_1$6.default.RealtimeApiFailed:
      case MeetingSessionStatusCode_1$6.default.TaskFailed:
      case MeetingSessionStatusCode_1$6.default.NoAttendeePresent:
        return !0;
      default:
        return !1;
    }
  }
  isTerminal() {
    switch (this._statusCode) {
      case MeetingSessionStatusCode_1$6.default.Left:
      case MeetingSessionStatusCode_1$6.default.AudioJoinedFromAnotherDevice:
      case MeetingSessionStatusCode_1$6.default.AudioAuthenticationRejected:
      case MeetingSessionStatusCode_1$6.default.AudioCallAtCapacity:
      case MeetingSessionStatusCode_1$6.default.MeetingEnded:
      case MeetingSessionStatusCode_1$6.default.AudioDisconnected:
      case MeetingSessionStatusCode_1$6.default.TURNCredentialsForbidden:
      case MeetingSessionStatusCode_1$6.default.SignalingBadRequest:
      case MeetingSessionStatusCode_1$6.default.SignalingRequestFailed:
      case MeetingSessionStatusCode_1$6.default.VideoCallAtSourceCapacity:
      case MeetingSessionStatusCode_1$6.default.RealtimeApiFailed:
      case MeetingSessionStatusCode_1$6.default.AudioAttendeeRemoved:
        return !0;
      default:
        return !1;
    }
  }
  isAudioConnectionFailure() {
    switch (this._statusCode) {
      case MeetingSessionStatusCode_1$6.default.AudioAuthenticationRejected:
      case MeetingSessionStatusCode_1$6.default.AudioInternalServerError:
      case MeetingSessionStatusCode_1$6.default.AudioServiceUnavailable:
      case MeetingSessionStatusCode_1$6.default.StateMachineTransitionFailed:
      case MeetingSessionStatusCode_1$6.default.ICEGatheringTimeoutWorkaround:
      case MeetingSessionStatusCode_1$6.default.SignalingBadRequest:
      case MeetingSessionStatusCode_1$6.default.SignalingInternalServerError:
      case MeetingSessionStatusCode_1$6.default.SignalingRequestFailed:
      case MeetingSessionStatusCode_1$6.default.RealtimeApiFailed:
      case MeetingSessionStatusCode_1$6.default.NoAttendeePresent:
        return !0;
      default:
        return !1;
    }
  }
  toString() {
    switch (this._statusCode) {
      case MeetingSessionStatusCode_1$6.default.OK:
        return "Everything is OK so far.";
      case MeetingSessionStatusCode_1$6.default.Left:
        return "The attendee left the meeting.";
      case MeetingSessionStatusCode_1$6.default.AudioJoinedFromAnotherDevice:
        return "The attendee joined from another device.";
      case MeetingSessionStatusCode_1$6.default.AudioDisconnectAudio:
        return "The audio connection failed.";
      case MeetingSessionStatusCode_1$6.default.AudioAuthenticationRejected:
        return "The meeting rejected the attendee.";
      case MeetingSessionStatusCode_1$6.default.AudioCallAtCapacity:
        return "The attendee couldn't join because the meeting was at capacity.";
      case MeetingSessionStatusCode_1$6.default.AudioCallEnded:
      case MeetingSessionStatusCode_1$6.default.TURNMeetingEnded:
      case MeetingSessionStatusCode_1$6.default.MeetingEnded:
        return "The meeting ended.";
      case MeetingSessionStatusCode_1$6.default.AudioInternalServerError:
      case MeetingSessionStatusCode_1$6.default.AudioServiceUnavailable:
      case MeetingSessionStatusCode_1$6.default.AudioDisconnected:
        return "The audio connection failed.";
      case MeetingSessionStatusCode_1$6.default.VideoCallSwitchToViewOnly:
        return "The attendee couldn't start the local video because the maximum video capacity was reached.";
      case MeetingSessionStatusCode_1$6.default.VideoCallAtSourceCapacity:
        return "The connection failed due to an internal server error.";
      case MeetingSessionStatusCode_1$6.default.SignalingBadRequest:
      case MeetingSessionStatusCode_1$6.default.SignalingInternalServerError:
      case MeetingSessionStatusCode_1$6.default.SignalingRequestFailed:
        return "The signaling connection failed.";
      case MeetingSessionStatusCode_1$6.default.StateMachineTransitionFailed:
        return "The state transition failed.";
      case MeetingSessionStatusCode_1$6.default.ICEGatheringTimeoutWorkaround:
        return "Gathering ICE candidates timed out. In Chrome, this might indicate that the browser is in a bad state after reconnecting to VPN.";
      case MeetingSessionStatusCode_1$6.default.ConnectionHealthReconnect:
        return "The meeting was reconnected.";
      case MeetingSessionStatusCode_1$6.default.RealtimeApiFailed:
        return "The real-time API failed. This status code might indicate that the callback you passed to the real-time API threw an exception.";
      case MeetingSessionStatusCode_1$6.default.TaskFailed:
        return "The connection failed. See the error message for more details.";
      case MeetingSessionStatusCode_1$6.default.AudioDeviceSwitched:
        return "The attendee chose another audio device.";
      case MeetingSessionStatusCode_1$6.default.IncompatibleSDP:
        return "The connection failed due to incompatible SDP.";
      case MeetingSessionStatusCode_1$6.default.TURNCredentialsForbidden:
        return "The meeting ended, or the attendee was removed.";
      case MeetingSessionStatusCode_1$6.default.NoAttendeePresent:
        return "The attendee was not present.";
      case MeetingSessionStatusCode_1$6.default.AudioAttendeeRemoved:
        return "The meeting ended because attendee removed.";
      case MeetingSessionStatusCode_1$6.default.AudioVideoWasRemovedFromPrimaryMeeting:
        return "The Primary meeting credentials provided are no longer valid. chime::DeleteAttendee may have been called on them.";
      default: {
        const tv = this._statusCode;
        throw new Error(`Unhandled case: ${tv}`);
      }
    }
  }
  static fromSignalFrame(tv) {
    return tv.error && tv.error.status ? this.fromSignalingStatus(tv.error.status) : tv.type === SignalingProtocol_js_1$e.SdkSignalFrame.Type.AUDIO_STATUS ? tv.audioStatus ? this.fromAudioStatus(tv.audioStatus.audioStatus) : new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.SignalingRequestFailed) : tv.type === SignalingProtocol_js_1$e.SdkSignalFrame.Type.PRIMARY_MEETING_LEAVE ? new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioVideoWasRemovedFromPrimaryMeeting) : new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.OK);
  }
  static fromAudioStatus(tv) {
    switch (tv) {
      case 200:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.OK);
      case 301:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioJoinedFromAnotherDevice);
      case 302:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioDisconnectAudio);
      case 403:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioAuthenticationRejected);
      case 409:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioCallAtCapacity);
      case 410:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.MeetingEnded);
      case 411:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioAttendeeRemoved);
      case 500:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioInternalServerError);
      case 503:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioServiceUnavailable);
      default:
        switch (Math.floor(tv / 100)) {
          case 2:
            return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.OK);
          default:
            return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioDisconnected);
        }
    }
  }
  static fromSignalingStatus(tv) {
    switch (tv) {
      case 206:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.VideoCallSwitchToViewOnly);
      case 509:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.VideoCallAtSourceCapacity);
      case 403:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioAuthenticationRejected);
      case 409:
        return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.AudioCallAtCapacity);
      default:
        switch (Math.floor(tv / 100)) {
          case 2:
            return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.OK);
          case 4:
            return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.SignalingBadRequest);
          case 5:
            return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.SignalingInternalServerError);
          default:
            return new MeetingSessionStatus(MeetingSessionStatusCode_1$6.default.SignalingRequestFailed);
        }
    }
  }
}
MeetingSessionStatus$1.default = MeetingSessionStatus;
var MeetingSessionVideoAvailability$1 = {};
Object.defineProperty(MeetingSessionVideoAvailability$1, "__esModule", { value: !0 });
class MeetingSessionVideoAvailability {
  constructor() {
    this.remoteVideoAvailable = !1, this.canStartLocalVideo = !1;
  }
  /**
   * Returns whether the fields are the same as that of another availability object.
   */
  equal(tv) {
    return this.remoteVideoAvailable === tv.remoteVideoAvailable && this.canStartLocalVideo === tv.canStartLocalVideo;
  }
  /**
   * Returns a deep copy of this object.
   */
  clone() {
    const tv = new MeetingSessionVideoAvailability();
    return tv.remoteVideoAvailable = this.remoteVideoAvailable, tv.canStartLocalVideo = this.canStartLocalVideo, tv;
  }
}
MeetingSessionVideoAvailability$1.default = MeetingSessionVideoAvailability;
var DefaultPingPong$1 = {};
Object.defineProperty(DefaultPingPong$1, "__esModule", { value: !0 });
const AsyncScheduler_1$2 = AsyncScheduler$1, IntervalScheduler_1$3 = IntervalScheduler$1, SignalingClientEventType_1$a = SignalingClientEventType, SignalingProtocol_js_1$d = SignalingProtocol, Types_1$6 = Types;
class DefaultPingPong {
  constructor(tv, ev, iv) {
    this.signalingClient = tv, this.intervalMs = ev, this.logger = iv, this.observerQueue = /* @__PURE__ */ new Set(), this.consecutivePongsUnaccountedFor = 0, this.intervalScheduler = new IntervalScheduler_1$3.default(this.intervalMs), this.pingId = 0;
  }
  addObserver(tv) {
    this.logger.info("adding a ping-pong observer"), this.observerQueue.add(tv);
  }
  removeObserver(tv) {
    this.logger.info("removing a ping-pong observer"), this.observerQueue.delete(tv);
  }
  forEachObserver(tv) {
    for (const ev of this.observerQueue)
      AsyncScheduler_1$2.default.nextTick(() => {
        this.observerQueue.has(ev) && tv(ev);
      });
  }
  start() {
    this.stop(), this.signalingClient.registerObserver(this), this.signalingClient.ready() && this.startPingInterval();
  }
  stop() {
    this.stopPingInterval(), this.signalingClient.removeObserver(this);
  }
  startPingInterval() {
    this.intervalScheduler.start(() => {
      this.ping();
    }), this.ping();
  }
  stopPingInterval() {
    this.intervalScheduler.stop(), this.pingId = 0, this.consecutivePongsUnaccountedFor = 0;
  }
  ping() {
    this.consecutivePongsUnaccountedFor > 0 && (this.logger.warn(`missed pong ${this.consecutivePongsUnaccountedFor} time(s)`), this.forEachObserver((ev) => {
      Types_1$6.Maybe.of(ev.didMissPongs).map((iv) => iv.bind(ev)(this.consecutivePongsUnaccountedFor));
    })), this.consecutivePongsUnaccountedFor += 1, this.pingId = this.pingId + 1 & 4294967295;
    const tv = SignalingProtocol_js_1$d.SdkPingPongFrame.create();
    tv.pingId = this.pingId, tv.type = SignalingProtocol_js_1$d.SdkPingPongType.PING, this.pingTimestampLocalMs = this.signalingClient.pingPong(tv), this.logger.debug(() => `sent ping ${this.pingId}`);
  }
  pong(tv) {
    const ev = SignalingProtocol_js_1$d.SdkPingPongFrame.create();
    ev.pingId = tv, ev.type = SignalingProtocol_js_1$d.SdkPingPongType.PONG, this.signalingClient.pingPong(ev);
  }
  handleSignalingClientEvent(tv) {
    switch (tv.type) {
      case SignalingClientEventType_1$a.default.WebSocketOpen:
        this.startPingInterval();
        break;
      case SignalingClientEventType_1$a.default.WebSocketFailed:
      case SignalingClientEventType_1$a.default.WebSocketError:
        this.logger.warn(`stopped pinging (${SignalingClientEventType_1$a.default[tv.type]})`), this.stopPingInterval();
        break;
      case SignalingClientEventType_1$a.default.WebSocketClosing:
      case SignalingClientEventType_1$a.default.WebSocketClosed:
        this.logger.info(`stopped pinging (${SignalingClientEventType_1$a.default[tv.type]})`), this.stopPingInterval();
        break;
      case SignalingClientEventType_1$a.default.ReceivedSignalFrame:
        if (tv.message.type !== SignalingProtocol_js_1$d.SdkSignalFrame.Type.PING_PONG)
          break;
        if (tv.message.pingPong.type === SignalingProtocol_js_1$d.SdkPingPongType.PONG) {
          const ev = tv.message.pingPong.pingId;
          if (ev !== this.pingId) {
            this.logger.warn(`unexpected ping id ${ev} (expected ${this.pingId})`);
            break;
          }
          this.consecutivePongsUnaccountedFor = 0;
          let iv;
          if (typeof tv.message.timestampMs == "number")
            iv = tv.message.timestampMs;
          else
            break;
          this.logger.debug(() => `received pong ${ev} with timestamp ${iv}`);
          const av = tv.timestampMs - this.pingTimestampLocalMs, sv = Math.round(iv - av / 2), lv = this.pingTimestampLocalMs - sv;
          this.logger.info(`local clock skew estimate=${lv}ms from ping-pong time=${av}ms`), this.forEachObserver((uv) => {
            Types_1$6.Maybe.of(uv.didReceivePong).map((cv) => cv.bind(uv)(ev, lv, av));
          });
        } else
          this.pong(tv.message.pingPong.pingId);
        break;
    }
  }
}
DefaultPingPong$1.default = DefaultPingPong;
var DefaultRealtimeController$1 = {}, DefaultTranscriptionController = {}, TranscriptEvent = {}, Transcript$1 = {};
Object.defineProperty(Transcript$1, "__esModule", { value: !0 });
class Transcript {
}
Transcript$1.default = Transcript;
var TranscriptionStatus$1 = {};
Object.defineProperty(TranscriptionStatus$1, "__esModule", { value: !0 });
class TranscriptionStatus {
}
TranscriptionStatus$1.default = TranscriptionStatus;
var TranscriptionStatusType$1 = {};
Object.defineProperty(TranscriptionStatusType$1, "__esModule", { value: !0 });
var TranscriptionStatusType;
(function(rv) {
  rv.STARTED = "started", rv.INTERRUPTED = "interrupted", rv.RESUMED = "resumed", rv.STOPPED = "stopped", rv.FAILED = "failed";
})(TranscriptionStatusType || (TranscriptionStatusType = {}));
TranscriptionStatusType$1.default = TranscriptionStatusType;
var TranscriptItemType$1 = {};
Object.defineProperty(TranscriptItemType$1, "__esModule", { value: !0 });
var TranscriptItemType;
(function(rv) {
  rv.PRONUNCIATION = "pronunciation", rv.PUNCTUATION = "punctuation";
})(TranscriptItemType || (TranscriptItemType = {}));
TranscriptItemType$1.default = TranscriptItemType;
Object.defineProperty(TranscriptEvent, "__esModule", { value: !0 });
TranscriptEvent.TranscriptEventConverter = void 0;
const SignalingProtocol_1$1 = SignalingProtocol, Transcript_1 = Transcript$1, TranscriptionStatus_1 = TranscriptionStatus$1, TranscriptionStatusType_1 = TranscriptionStatusType$1, TranscriptItemType_1 = TranscriptItemType$1, TranscriptionStatusTypes = {
  [SignalingProtocol_1$1.SdkTranscriptionStatus.Type.STARTED]: TranscriptionStatusType_1.default.STARTED,
  [SignalingProtocol_1$1.SdkTranscriptionStatus.Type.INTERRUPTED]: TranscriptionStatusType_1.default.INTERRUPTED,
  [SignalingProtocol_1$1.SdkTranscriptionStatus.Type.RESUMED]: TranscriptionStatusType_1.default.RESUMED,
  [SignalingProtocol_1$1.SdkTranscriptionStatus.Type.STOPPED]: TranscriptionStatusType_1.default.STOPPED,
  [SignalingProtocol_1$1.SdkTranscriptionStatus.Type.FAILED]: TranscriptionStatusType_1.default.FAILED
};
class TranscriptEventConverter {
  /**
   * Decodes a list of TranscriptEvent from a data message.
   * @param dataMessage Data message to decode from
   * @returns List of TranscriptEvent
   * @throws {Error} If the data message payload cannot be decoded
   */
  static from(tv) {
    let ev;
    try {
      ev = SignalingProtocol_1$1.SdkTranscriptFrame.decode(tv.data);
    } catch (ov) {
      throw new Error("Cannot decode transcript data message: " + ov);
    }
    const iv = [];
    for (const ov of ev.events)
      if (ov.status) {
        const av = TranscriptionStatusTypes[ov.status.type];
        if (!av)
          continue;
        const sv = new TranscriptionStatus_1.default();
        sv.type = av, sv.eventTimeMs = ov.status.eventTime, sv.transcriptionRegion = ov.status.transcriptionRegion, sv.transcriptionConfiguration = ov.status.transcriptionConfiguration, ov.status.message && (sv.message = ov.status.message), iv.push(sv);
      } else if (ov.transcript) {
        const av = new Transcript_1.default();
        av.results = [];
        for (const sv of ov.transcript.results) {
          const lv = {
            channelId: sv.channelId,
            isPartial: sv.isPartial,
            resultId: sv.resultId,
            startTimeMs: sv.startTime,
            endTimeMs: sv.endTime,
            alternatives: []
          };
          if (sv.languageCode && (lv.languageCode = sv.languageCode), sv.languageIdentification && sv.languageIdentification.length > 0) {
            lv.languageIdentification = [];
            for (const uv of sv.languageIdentification) {
              const cv = {
                languageCode: uv.languageCode,
                score: uv.score
              };
              lv.languageIdentification.push(cv);
            }
          }
          for (const uv of sv.alternatives) {
            const cv = {
              items: [],
              transcript: uv.transcript
            };
            for (const dv of uv.items) {
              const hv = {
                content: dv.content,
                attendee: {
                  attendeeId: dv.speakerAttendeeId,
                  externalUserId: dv.speakerExternalUserId
                },
                startTimeMs: dv.startTime,
                endTimeMs: dv.endTime,
                type: null
              };
              switch (dv.vocabularyFilterMatch && (hv.vocabularyFilterMatch = dv.vocabularyFilterMatch), dv.hasOwnProperty("stable") && (hv.stable = dv.stable), dv.hasOwnProperty("confidence") && (hv.confidence = dv.confidence), dv.type) {
                case SignalingProtocol_1$1.SdkTranscriptItem.Type.PRONUNCIATION:
                  hv.type = TranscriptItemType_1.default.PRONUNCIATION;
                  break;
                case SignalingProtocol_1$1.SdkTranscriptItem.Type.PUNCTUATION:
                  hv.type = TranscriptItemType_1.default.PUNCTUATION;
                  break;
              }
              cv.items.push(hv);
            }
            for (const dv of uv.entities) {
              cv.entities || (cv.entities = []);
              const hv = {
                category: dv.category,
                confidence: dv.confidence,
                content: dv.content,
                startTimeMs: dv.startTime,
                endTimeMs: dv.endTime
              };
              dv.type && (hv.type = dv.type), cv.entities.push(hv);
            }
            lv.alternatives.push(cv);
          }
          av.results.push(lv);
        }
        iv.push(av);
      }
    return iv;
  }
}
TranscriptEvent.TranscriptEventConverter = TranscriptEventConverter;
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.TRANSCRIPTION_DATA_MESSAGE_TOPIC = void 0;
  const tv = TranscriptEvent;
  rv.TRANSCRIPTION_DATA_MESSAGE_TOPIC = "aws:chime:transcription";
  class ev {
    constructor(ov) {
      this.realtimeController = ov, this.transcriptEventCallbacks = /* @__PURE__ */ new Set();
    }
    subscribeToTranscriptEvent(ov) {
      this.transcriptEventCallbacks.size === 0 && this.realtimeController.realtimeSubscribeToReceiveDataMessage(rv.TRANSCRIPTION_DATA_MESSAGE_TOPIC, (av) => {
        for (const sv of tv.TranscriptEventConverter.from(av))
          for (const lv of this.transcriptEventCallbacks)
            lv(sv);
      }), this.transcriptEventCallbacks.add(ov);
    }
    unsubscribeFromTranscriptEvent(ov) {
      this.transcriptEventCallbacks.delete(ov), this.transcriptEventCallbacks.size === 0 && this.realtimeController.realtimeUnsubscribeFromReceiveDataMessage(rv.TRANSCRIPTION_DATA_MESSAGE_TOPIC);
    }
  }
  rv.default = ev;
})(DefaultTranscriptionController);
var RealtimeState$1 = {};
Object.defineProperty(RealtimeState$1, "__esModule", { value: !0 });
class RealtimeState {
  constructor() {
    this.localAttendeeId = null, this.localExternalUserId = null, this.attendeeIdChangesCallbacks = [], this.canUnmute = !0, this.setCanUnmuteLocalAudioCallbacks = [], this.muted = !1, this.muteAndUnmuteLocalAudioCallbacks = [], this.audioInput = null, this.volumeIndicatorState = {}, this.attendeeIdToExternalUserId = {}, this.volumeIndicatorCallbacks = {}, this.localSignalStrengthChangeCallbacks = [], this.fatalErrorCallbacks = [], this.sendDataMessageCallbacks = [], this.receiveDataMessageCallbacks = /* @__PURE__ */ new Map();
  }
}
RealtimeState$1.default = RealtimeState;
var RealtimeVolumeIndicator$1 = {};
Object.defineProperty(RealtimeVolumeIndicator$1, "__esModule", { value: !0 });
class RealtimeVolumeIndicator {
  constructor() {
    this.volume = null, this.muted = null, this.signalStrength = null;
  }
}
RealtimeVolumeIndicator$1.default = RealtimeVolumeIndicator;
Object.defineProperty(DefaultRealtimeController$1, "__esModule", { value: !0 });
const DefaultTranscriptionController_1 = DefaultTranscriptionController, RealtimeState_1 = RealtimeState$1, RealtimeVolumeIndicator_1 = RealtimeVolumeIndicator$1;
class DefaultRealtimeController {
  constructor(tv) {
    this.state = new RealtimeState_1.default(), this._transcriptionController = tv || new DefaultTranscriptionController_1.default(this);
  }
  realtimeSetLocalAttendeeId(tv, ev) {
    this.state.localAttendeeId = tv, this.state.localExternalUserId = ev;
  }
  realtimeSetAttendeeIdPresence(tv, ev, iv, ov, av) {
    try {
      ev && (this.state.attendeeIdToExternalUserId[tv] = iv);
      for (const sv of this.state.attendeeIdChangesCallbacks)
        sv(tv, ev, iv, ov, av);
    } catch (sv) {
      this.onError(sv);
    }
  }
  realtimeSubscribeToAttendeeIdPresence(tv) {
    try {
      this.state.attendeeIdChangesCallbacks.push(tv);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeUnsubscribeToAttendeeIdPresence(tv) {
    try {
      const ev = this.state.attendeeIdChangesCallbacks.indexOf(tv);
      ev !== -1 && this.state.attendeeIdChangesCallbacks.splice(ev, 1);
    } catch (ev) {
      this.onError(ev);
    }
  }
  // Audio Input
  realtimeSetLocalAudioInput(tv) {
    try {
      if (this.state.audioInput === tv)
        return;
      this.setAudioInputEnabled(!1), this.state.audioInput = tv, this.setAudioInputEnabled(!this.state.muted);
    } catch (ev) {
      this.onError(ev);
    }
  }
  // Muting
  realtimeSetCanUnmuteLocalAudio(tv) {
    try {
      if (this.state.canUnmute === tv)
        return;
      this.state.canUnmute = tv;
      for (const ev of this.state.setCanUnmuteLocalAudioCallbacks)
        ev(tv);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeSubscribeToSetCanUnmuteLocalAudio(tv) {
    try {
      this.state.setCanUnmuteLocalAudioCallbacks.push(tv);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeUnsubscribeToSetCanUnmuteLocalAudio(tv) {
    try {
      const ev = this.state.setCanUnmuteLocalAudioCallbacks.indexOf(tv);
      ev !== -1 && this.state.setCanUnmuteLocalAudioCallbacks.splice(ev, 1);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeCanUnmuteLocalAudio() {
    return this.state.canUnmute;
  }
  realtimeMuteLocalAudio() {
    if (!this.state.muted)
      try {
        this.setAudioInputEnabled(!1), this.state.muted = !0, this.realtimeUpdateVolumeIndicator(this.state.localAttendeeId, null, null, null, this.state.localExternalUserId);
        for (const tv of this.state.muteAndUnmuteLocalAudioCallbacks)
          tv(!0);
      } catch (tv) {
        this.onError(tv);
      }
  }
  realtimeUnmuteLocalAudio() {
    if (!this.state.muted)
      return !0;
    if (!this.state.canUnmute)
      return !1;
    try {
      this.setAudioInputEnabled(!0), this.state.muted = !1, this.realtimeUpdateVolumeIndicator(this.state.localAttendeeId, null, null, null, this.state.localExternalUserId);
      for (const tv of this.state.muteAndUnmuteLocalAudioCallbacks)
        tv(!1);
      return !0;
    } catch (tv) {
      return this.onError(tv), !1;
    }
  }
  realtimeSubscribeToMuteAndUnmuteLocalAudio(tv) {
    try {
      this.state.muteAndUnmuteLocalAudioCallbacks.push(tv);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeUnsubscribeToMuteAndUnmuteLocalAudio(tv) {
    try {
      const ev = this.state.muteAndUnmuteLocalAudioCallbacks.indexOf(tv);
      ev !== -1 && this.state.muteAndUnmuteLocalAudioCallbacks.splice(ev, 1);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeIsLocalAudioMuted() {
    return this.state.muted;
  }
  // Volume Indicators
  realtimeSubscribeToVolumeIndicator(tv, ev) {
    try {
      this.state.volumeIndicatorCallbacks.hasOwnProperty(tv) || (this.state.volumeIndicatorCallbacks[tv] = []), this.state.volumeIndicatorCallbacks[tv].push(ev), this.sendVolumeIndicatorChange(tv, !0, !0, !0, this.state.attendeeIdToExternalUserId[tv]);
    } catch (iv) {
      this.onError(iv);
    }
  }
  realtimeUnsubscribeFromVolumeIndicator(tv, ev) {
    try {
      if (ev) {
        const iv = this.state.volumeIndicatorCallbacks[tv].indexOf(ev);
        iv !== -1 && this.state.volumeIndicatorCallbacks[tv].splice(iv, 1);
      } else
        delete this.state.volumeIndicatorCallbacks[tv];
    } catch (iv) {
      this.onError(iv);
    }
  }
  realtimeUpdateVolumeIndicator(tv, ev, iv, ov, av) {
    try {
      iv = this.applyLocalMuteOverride(tv, iv);
      const sv = this.getVolumeIndicatorState(tv);
      let lv = !1, uv = !1, cv = !1;
      iv !== null && sv.muted !== iv && (sv.muted = iv, uv = !0, sv.muted && sv.volume !== 0 && (sv.volume = 0, lv = !0)), !sv.muted && ev !== null && (sv.volume !== ev && (sv.volume = ev, lv = !0), sv.muted === null && (sv.muted = !1, uv = !0)), ov !== null && sv.signalStrength !== ov && (sv.signalStrength = ov, cv = !0), this.sendVolumeIndicatorChange(tv, lv, uv, cv, av);
    } catch (sv) {
      this.onError(sv);
    }
  }
  realtimeSubscribeToLocalSignalStrengthChange(tv) {
    try {
      if (this.state.localSignalStrengthChangeCallbacks.push(tv), this.state.localAttendeeId === null)
        return;
      this.sendLocalSignalStrengthChange(this.state.localAttendeeId, !0);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeUnsubscribeToLocalSignalStrengthChange(tv) {
    try {
      const ev = this.state.localSignalStrengthChangeCallbacks.indexOf(tv);
      ev !== -1 && this.state.localSignalStrengthChangeCallbacks.splice(ev, 1);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeSubscribeToSendDataMessage(tv) {
    try {
      this.state.sendDataMessageCallbacks.push(tv);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeUnsubscribeFromSendDataMessage(tv) {
    try {
      const ev = this.state.sendDataMessageCallbacks.indexOf(tv);
      ev !== -1 && this.state.sendDataMessageCallbacks.splice(ev, 1);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeSendDataMessage(tv, ev, iv) {
    try {
      for (const ov of this.state.sendDataMessageCallbacks)
        ov(tv, ev, iv);
    } catch (ov) {
      this.onError(ov);
    }
  }
  realtimeSubscribeToReceiveDataMessage(tv, ev) {
    try {
      this.state.receiveDataMessageCallbacks.has(tv) ? this.state.receiveDataMessageCallbacks.get(tv).push(ev) : this.state.receiveDataMessageCallbacks.set(tv, [ev]);
    } catch (iv) {
      this.onError(iv);
    }
  }
  realtimeUnsubscribeFromReceiveDataMessage(tv) {
    try {
      this.state.receiveDataMessageCallbacks.delete(tv);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeReceiveDataMessage(tv) {
    try {
      if (this.state.receiveDataMessageCallbacks.has(tv.topic))
        for (const ev of this.state.receiveDataMessageCallbacks.get(tv.topic))
          ev(tv);
    } catch (ev) {
      this.onError(ev);
    }
  }
  // Error Handling
  realtimeSubscribeToFatalError(tv) {
    try {
      this.state.fatalErrorCallbacks.push(tv);
    } catch (ev) {
      this.onError(ev);
    }
  }
  realtimeUnsubscribeToFatalError(tv) {
    try {
      const ev = this.state.fatalErrorCallbacks.indexOf(tv);
      ev !== -1 && this.state.fatalErrorCallbacks.splice(ev, 1);
    } catch (ev) {
      this.onError(ev);
    }
  }
  get transcriptionController() {
    return this._transcriptionController;
  }
  // Internals
  setAudioInputEnabled(tv) {
    if (this.state.audioInput)
      for (const ev of this.state.audioInput.getTracks())
        ev.enabled !== tv && (ev.enabled = tv);
  }
  applyLocalMuteOverride(tv, ev) {
    const iv = this.state.localAttendeeId, ov = this.state.muted;
    return tv !== iv || this.state.audioInput === null ? ev : ov;
  }
  sendVolumeIndicatorChange(tv, ev, iv, ov, av) {
    if (this.sendLocalSignalStrengthChange(tv, ov), !this.state.volumeIndicatorCallbacks.hasOwnProperty(tv))
      return;
    const sv = this.getVolumeIndicatorState(tv), lv = new RealtimeVolumeIndicator_1.default();
    if (ev && (lv.volume = sv.volume), iv && (lv.muted = sv.muted), ov && (lv.signalStrength = sv.signalStrength), !this.stateIsEmpty(lv))
      for (const uv of this.state.volumeIndicatorCallbacks[tv])
        uv(tv, lv.volume, lv.muted, lv.signalStrength, av);
  }
  sendLocalSignalStrengthChange(tv, ev) {
    if (!ev || tv !== this.state.localAttendeeId)
      return;
    const ov = this.getVolumeIndicatorState(tv).signalStrength;
    if (ov !== null)
      for (const av of this.state.localSignalStrengthChangeCallbacks)
        av(ov);
  }
  getVolumeIndicatorState(tv) {
    return this.state.volumeIndicatorState.hasOwnProperty(tv) || (this.state.volumeIndicatorState[tv] = new RealtimeVolumeIndicator_1.default()), this.state.volumeIndicatorState[tv];
  }
  stateIsEmpty(tv) {
    return tv.volume === null && tv.muted === null && tv.signalStrength === null;
  }
  onError(tv) {
    try {
      for (const ev of this.state.fatalErrorCallbacks)
        ev(tv);
    } catch (ev) {
      try {
        console.error(tv), console.error(ev);
      } catch {
      }
    }
  }
}
DefaultRealtimeController$1.default = DefaultRealtimeController;
var DefaultSessionStateController$1 = {}, SessionStateControllerAction = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.SessionStateControllerAction = void 0;
  var tv;
  (function(ev) {
    ev[ev.Connect = 0] = "Connect", ev[ev.FinishConnecting = 1] = "FinishConnecting", ev[ev.Update = 2] = "Update", ev[ev.FinishUpdating = 3] = "FinishUpdating", ev[ev.Reconnect = 4] = "Reconnect", ev[ev.Disconnect = 5] = "Disconnect", ev[ev.Fail = 6] = "Fail", ev[ev.FinishDisconnecting = 7] = "FinishDisconnecting";
  })(tv = rv.SessionStateControllerAction || (rv.SessionStateControllerAction = {})), rv.default = tv;
})(SessionStateControllerAction);
var SessionStateControllerDeferPriority = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.SessionStateControllerDeferPriority = void 0;
  var tv;
  (function(ev) {
    ev[ev.DoNotDefer = 0] = "DoNotDefer", ev[ev.Low = 1] = "Low", ev[ev.Medium = 2] = "Medium", ev[ev.High = 3] = "High", ev[ev.VeryHigh = 4] = "VeryHigh";
  })(tv = rv.SessionStateControllerDeferPriority || (rv.SessionStateControllerDeferPriority = {})), rv.default = tv;
})(SessionStateControllerDeferPriority);
var SessionStateControllerState = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.SessionStateControllerState = void 0;
  var tv;
  (function(ev) {
    ev[ev.NotConnected = 0] = "NotConnected", ev[ev.Connecting = 1] = "Connecting", ev[ev.Connected = 2] = "Connected", ev[ev.Updating = 3] = "Updating", ev[ev.Disconnecting = 4] = "Disconnecting";
  })(tv = rv.SessionStateControllerState || (rv.SessionStateControllerState = {})), rv.default = tv;
})(SessionStateControllerState);
var SessionStateControllerTransitionResult = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.SessionStateControllerTransitionResult = void 0;
  var tv;
  (function(ev) {
    ev[ev.Transitioned = 0] = "Transitioned", ev[ev.NoTransitionAvailable = 1] = "NoTransitionAvailable", ev[ev.DeferredTransition = 2] = "DeferredTransition", ev[ev.TransitionFailed = 3] = "TransitionFailed";
  })(tv = rv.SessionStateControllerTransitionResult || (rv.SessionStateControllerTransitionResult = {})), rv.default = tv;
})(SessionStateControllerTransitionResult);
Object.defineProperty(DefaultSessionStateController$1, "__esModule", { value: !0 });
const SessionStateControllerAction_1 = SessionStateControllerAction, SessionStateControllerDeferPriority_1 = SessionStateControllerDeferPriority, SessionStateControllerState_1 = SessionStateControllerState, SessionStateControllerTransitionResult_1 = SessionStateControllerTransitionResult;
class DefaultSessionStateController {
  constructor(tv) {
    this.logger = tv, this.currentState = SessionStateControllerState_1.SessionStateControllerState.NotConnected, this.deferredAction = null, this.deferredWork = null;
  }
  perform(tv, ev) {
    const iv = this.currentState;
    if (iv === SessionStateControllerState_1.SessionStateControllerState.NotConnected && tv === SessionStateControllerAction_1.SessionStateControllerAction.Connect)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.Connecting, tv);
    else if (iv === SessionStateControllerState_1.SessionStateControllerState.Connecting && tv === SessionStateControllerAction_1.SessionStateControllerAction.Fail)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.Disconnecting, tv);
    else if (iv === SessionStateControllerState_1.SessionStateControllerState.Connecting && tv === SessionStateControllerAction_1.SessionStateControllerAction.FinishConnecting)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.Connected, tv);
    else if (iv === SessionStateControllerState_1.SessionStateControllerState.Connected && tv === SessionStateControllerAction_1.SessionStateControllerAction.Disconnect)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.Disconnecting, tv);
    else if (iv === SessionStateControllerState_1.SessionStateControllerState.Connected && tv === SessionStateControllerAction_1.SessionStateControllerAction.Reconnect)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.Connecting, tv);
    else if (iv === SessionStateControllerState_1.SessionStateControllerState.Connected && tv === SessionStateControllerAction_1.SessionStateControllerAction.Fail)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.Disconnecting, tv);
    else if (iv === SessionStateControllerState_1.SessionStateControllerState.Connected && tv === SessionStateControllerAction_1.SessionStateControllerAction.Update)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.Updating, tv);
    else if (iv === SessionStateControllerState_1.SessionStateControllerState.Updating && tv === SessionStateControllerAction_1.SessionStateControllerAction.Fail)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.Disconnecting, tv);
    else if (iv === SessionStateControllerState_1.SessionStateControllerState.Updating && tv === SessionStateControllerAction_1.SessionStateControllerAction.FinishUpdating)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.Connected, tv);
    else if (iv === SessionStateControllerState_1.SessionStateControllerState.Disconnecting && tv === SessionStateControllerAction_1.SessionStateControllerAction.FinishDisconnecting)
      this.transition(SessionStateControllerState_1.SessionStateControllerState.NotConnected, tv);
    else
      return this.canDefer(tv) ? (this.logger.info(`deferring transition from ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]} with ${SessionStateControllerAction_1.SessionStateControllerAction[tv]}`), this.deferAction(tv, ev), SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.DeferredTransition) : (this.logger.warn(`no transition found from ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]} with ${SessionStateControllerAction_1.SessionStateControllerAction[tv]}`), SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.NoTransitionAvailable);
    try {
      ev();
    } catch (ov) {
      return this.logger.error(`error during state ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]} with action ${SessionStateControllerAction_1.SessionStateControllerAction[tv]}: ${ov}`), this.logger.info(`rolling back transition to ${SessionStateControllerState_1.SessionStateControllerState[iv]}`), this.currentState = iv, SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.TransitionFailed;
    }
    return this.performDeferredAction(), SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.Transitioned;
  }
  state() {
    return this.currentState;
  }
  transition(tv, ev) {
    this.logger.info(`transitioning from ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]} to ${SessionStateControllerState_1.SessionStateControllerState[tv]} with ${SessionStateControllerAction_1.SessionStateControllerAction[ev]}`), this.currentState = tv;
  }
  deferPriority(tv) {
    switch (tv) {
      case SessionStateControllerAction_1.SessionStateControllerAction.Disconnect:
        return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.VeryHigh;
      case SessionStateControllerAction_1.SessionStateControllerAction.Fail:
        return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.High;
      case SessionStateControllerAction_1.SessionStateControllerAction.Reconnect:
        return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.Medium;
      case SessionStateControllerAction_1.SessionStateControllerAction.Update:
        return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.Low;
      default:
        return SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.DoNotDefer;
    }
  }
  deferAction(tv, ev) {
    this.deferredAction !== null && this.deferPriority(this.deferredAction) > this.deferPriority(tv) || (this.deferredAction = tv, this.deferredWork = ev);
  }
  canDefer(tv) {
    return this.deferPriority(tv) !== SessionStateControllerDeferPriority_1.SessionStateControllerDeferPriority.DoNotDefer && (this.currentState === SessionStateControllerState_1.SessionStateControllerState.Connecting || this.currentState === SessionStateControllerState_1.SessionStateControllerState.Updating);
  }
  performDeferredAction() {
    if (!this.deferredAction)
      return;
    const tv = this.deferredAction, ev = this.deferredWork;
    this.deferredAction = null, this.deferredWork = null, this.logger.info(`performing deferred action ${SessionStateControllerAction_1.SessionStateControllerAction[tv]}`), this.perform(tv, ev) !== SessionStateControllerTransitionResult_1.SessionStateControllerTransitionResult.Transitioned && this.logger.info(`unable to perform deferred action ${SessionStateControllerAction_1.SessionStateControllerAction[tv]} in state ${SessionStateControllerState_1.SessionStateControllerState[this.currentState]}`);
  }
}
DefaultSessionStateController$1.default = DefaultSessionStateController;
var DefaultSignalingClient$1 = {}, WebSocketReadyState = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.WebSocketReadyState = void 0;
  var tv;
  (function(ev) {
    ev[ev.None = 0] = "None", ev[ev.Connecting = 1] = "Connecting", ev[ev.Open = 2] = "Open", ev[ev.Closing = 3] = "Closing", ev[ev.Closed = 4] = "Closed";
  })(tv = rv.WebSocketReadyState || (rv.WebSocketReadyState = {})), rv.default = tv;
})(WebSocketReadyState);
var SignalingClientEvent$1 = {};
Object.defineProperty(SignalingClientEvent$1, "__esModule", { value: !0 });
const SignalingClientEventType_1$9 = SignalingClientEventType;
class SignalingClientEvent {
  /** Initializes a SignalingClientEvent with the given SignalingClientEventType.
   *
   * @param client Indicates the SignalingClient associated with the event.
   * @param type Indicates the kind of event.
   * @param message SdkSignalFrame if type is ReceivedSignalFrame
   */
  constructor(tv, ev, iv, ov, av) {
    this.client = tv, this.type = ev, this.message = iv, this.closeCode = ov, this.closeReason = av, this.timestampMs = Date.now();
  }
  isConnectionTerminated() {
    switch (this.type) {
      case SignalingClientEventType_1$9.default.WebSocketFailed:
      case SignalingClientEventType_1$9.default.WebSocketError:
      case SignalingClientEventType_1$9.default.WebSocketClosing:
      case SignalingClientEventType_1$9.default.WebSocketClosed:
        return !0;
      default:
        return !1;
    }
  }
}
SignalingClientEvent$1.default = SignalingClientEvent;
Object.defineProperty(DefaultSignalingClient$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1$5 = DefaultBrowserBehavior$1, TimeoutScheduler_1$2 = TimeoutScheduler$1, SignalingProtocol_js_1$c = SignalingProtocol, Versioning_1$5 = Versioning$1, WebSocketReadyState_1$2 = WebSocketReadyState, SignalingClientEvent_1 = SignalingClientEvent$1, SignalingClientEventType_1$8 = SignalingClientEventType;
class DefaultSignalingClient {
  constructor(tv, ev) {
    this.webSocket = tv, this.logger = ev, this.unloadHandler = null, this.closeEventHandler = (iv) => {
      this.deactivatePageUnloadHandler(), this.resetConnection(), this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketClosed, null, iv.code, iv.reason)), this.serviceConnectionRequestQueue();
    }, this.observerQueue = /* @__PURE__ */ new Set(), this.connectionRequestQueue = [], this.resetConnection(), this.logger.debug(() => "signaling client init"), this.audioSessionId = this.generateNewAudioSessionId();
  }
  registerObserver(tv) {
    this.logger.debug(() => "registering signaling client observer"), this.observerQueue.add(tv);
  }
  removeObserver(tv) {
    this.logger.debug(() => "removing signaling client observer"), this.observerQueue.delete(tv);
  }
  openConnection(tv) {
    this.logger.info("adding connection request to queue: " + tv.url()), this.connectionRequestQueue.push(tv), this.closeConnection();
  }
  pingPong(tv) {
    this.logger.debug(() => "sending ping");
    const ev = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    return ev.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.PING_PONG, ev.pingPong = tv, this.sendMessage(ev), ev.timestampMs;
  }
  join(tv) {
    this.logger.info("sending join");
    const ev = SignalingProtocol_js_1$c.SdkJoinFrame.create();
    ev.protocolVersion = 2, ev.flags = SignalingProtocol_js_1$c.SdkJoinFlags.HAS_STREAM_UPDATE;
    const iv = new DefaultBrowserBehavior_1$5.default();
    iv.supportsSenderSideBandwidthEstimation() && (ev.flags |= SignalingProtocol_js_1$c.SdkJoinFlags.USE_SEND_SIDE_BWE), ev.flags |= tv.sendBitrates ? SignalingProtocol_js_1$c.SdkJoinFlags.SEND_BITRATES : 0;
    const ov = {
      platformName: iv.name(),
      platformVersion: iv.version(),
      clientSource: Versioning_1$5.default.sdkName,
      chimeSdkVersion: Versioning_1$5.default.sdkVersion
    };
    if (tv.applicationMetadata) {
      const { appName: sv, appVersion: lv } = tv.applicationMetadata;
      ov.appName = sv, ov.appVersion = lv;
    }
    ev.clientDetails = SignalingProtocol_js_1$c.SdkClientDetails.create(ov), ev.audioSessionId = this.audioSessionId, ev.wantsCompressedSdp = DefaultSignalingClient.CLIENT_SUPPORTS_COMPRESSION;
    const av = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    av.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.JOIN, av.join = ev, this.sendMessage(av);
  }
  subscribe(tv) {
    const ev = SignalingProtocol_js_1$c.SdkSubscribeFrame.create();
    if (ev.sendStreams = [], ev.sdpOffer = tv.sdpOffer, tv.connectionTypeHasVideo && (ev.receiveStreamIds = tv.receiveStreamIds), tv.audioHost && (ev.audioCheckin = tv.audioCheckin, ev.audioHost = tv.audioHost, ev.audioMuted = tv.audioMuted, !tv.audioCheckin)) {
      const ov = SignalingProtocol_js_1$c.SdkStreamDescriptor.create();
      ov.mediaType = SignalingProtocol_js_1$c.SdkStreamMediaType.AUDIO, ov.trackLabel = "AmazonChimeExpressAudio", ov.attendeeId = tv.attendeeId, ov.streamId = 1, ov.groupId = 1, ov.framerate = 15, ov.maxBitrateKbps = 600, ov.avgBitrateBps = 4e5, ev.sendStreams.push(ov);
    }
    if (ev.compressedSdpOffer = tv.compressedSdpOffer, ev.duplex = SignalingProtocol_js_1$c.SdkStreamServiceType.RX, tv.localVideoEnabled) {
      ev.duplex = SignalingProtocol_js_1$c.SdkStreamServiceType.DUPLEX;
      for (let ov = 0; ov < tv.videoStreamDescriptions.length; ov++) {
        const av = tv.videoStreamDescriptions[ov].clone();
        av.attendeeId = tv.attendeeId, ev.sendStreams.push(av.toStreamDescriptor());
      }
    }
    const iv = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    iv.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.SUBSCRIBE, iv.sub = ev, this.sendMessage(iv);
  }
  remoteVideoUpdate(tv, ev) {
    const iv = SignalingProtocol_js_1$c.SdkRemoteVideoUpdateFrame.create();
    iv.addedOrUpdatedVideoSubscriptions = tv.map(this.convertVideoSubscriptionConfiguration), iv.removedVideoSubscriptionMids = ev;
    const ov = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    ov.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.REMOTE_VIDEO_UPDATE, ov.remoteVideoUpdate = iv, this.sendMessage(ov);
  }
  convertVideoSubscriptionConfiguration(tv) {
    const ev = new SignalingProtocol_js_1$c.SdkVideoSubscriptionConfiguration();
    return ev.mid = tv.mid, ev.attendeeId = tv.attendeeId, ev.streamId = tv.streamId, ev;
  }
  leave() {
    const tv = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    tv.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.LEAVE, tv.leave = SignalingProtocol_js_1$c.SdkLeaveFrame.create(), this.sendMessage(tv), this.logger.debug(() => "sent leave");
  }
  sendClientMetrics(tv) {
    const ev = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    ev.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.CLIENT_METRIC, ev.clientMetric = tv, this.sendMessage(ev);
  }
  sendDataMessage(tv) {
    const ev = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    ev.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.DATA_MESSAGE, ev.dataMessage = tv, this.sendMessage(ev);
  }
  closeConnection() {
    var tv, ev;
    if (this.webSocket.readyState() !== WebSocketReadyState_1$2.default.None && this.webSocket.readyState() !== WebSocketReadyState_1$2.default.Closed) {
      this.isClosing = !0, this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketClosing, null));
      const iv = new TimeoutScheduler_1$2.default(DefaultSignalingClient.CLOSE_EVENT_TIMEOUT_MS), ov = (av) => {
        var sv, lv;
        (lv = (sv = this.webSocket).removeEventListener) === null || lv === void 0 || lv.call(sv, "close", ov), iv.stop(), this.closeEventHandler(av);
      };
      (ev = (tv = this.webSocket).removeEventListener) === null || ev === void 0 || ev.call(tv, "close", this.closeEventHandler), this.webSocket.addEventListener("close", ov), iv.start(() => {
        ov(new CloseEvent("close", { wasClean: !1, code: 1006, reason: "", bubbles: !1 }));
      }), this.webSocket.close(), this.deactivatePageUnloadHandler();
    } else
      this.logger.info("no existing signaling client connection needs closing"), this.serviceConnectionRequestQueue();
  }
  ready() {
    return this.webSocket.readyState() === WebSocketReadyState_1$2.default.Open && !this.isClosing && this.wasOpened;
  }
  mute(tv) {
    const ev = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    ev.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.AUDIO_CONTROL;
    const iv = SignalingProtocol_js_1$c.SdkAudioControlFrame.create();
    iv.muted = tv, ev.audioControl = iv, this.sendMessage(ev);
  }
  pause(tv) {
    const ev = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    ev.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.PAUSE, ev.pause = SignalingProtocol_js_1$c.SdkPauseResumeFrame.create(), ev.pause.streamIds = tv, this.sendMessage(ev);
  }
  resume(tv) {
    const ev = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    ev.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.RESUME, ev.pause = SignalingProtocol_js_1$c.SdkPauseResumeFrame.create(), ev.pause.streamIds = tv, this.sendMessage(ev);
  }
  resetConnection() {
    this.webSocket.destroy(), this.wasOpened = !1;
  }
  sendMessage(tv) {
    tv.timestampMs = Date.now(), this.logger.debug(() => `sending: ${JSON.stringify(tv)}`);
    const ev = this.prependWithFrameTypeRTC(SignalingProtocol_js_1$c.SdkSignalFrame.encode(tv).finish());
    if (this.ready()) {
      if (!this.webSocket.send(ev)) {
        this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketSendMessageFailure, null));
        return;
      }
      this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketSentMessage, null));
    } else
      this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketSkippedMessage, null));
  }
  receiveMessage(tv) {
    let ev;
    try {
      ev = SignalingProtocol_js_1$c.SdkSignalFrame.decode(tv);
    } catch {
      this.logger.info(`failed to decode: ${tv}`), this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.ProtocolDecodeFailure, null));
      return;
    }
    this.logger.debug(() => `received: ${JSON.stringify(ev)}`), this.webSocket.readyState() === WebSocketReadyState_1$2.default.Open ? this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.ReceivedSignalFrame, ev)) : this.logger.info(`skipping notification of message since WebSocket is not open: ${JSON.stringify(ev)}`);
  }
  stripFrameTypeRTC(tv) {
    const ev = tv[0];
    return ev !== DefaultSignalingClient.FRAME_TYPE_RTC && ev !== 2 && this.logger.warn(`expected FrameTypeRTC for message but got ${ev}`), tv.slice(1);
  }
  prependWithFrameTypeRTC(tv) {
    const ev = new Uint8Array(tv.length + 1);
    return ev[0] = DefaultSignalingClient.FRAME_TYPE_RTC, ev.set(tv, 1), ev;
  }
  serviceConnectionRequestQueue() {
    if (this.connectionRequestQueue.length === 0) {
      this.logger.info("no connection requests to service");
      return;
    }
    const tv = this.connectionRequestQueue.shift();
    this.logger.info(`opening connection to ${tv.url()}`), this.isClosing = !1, this.webSocket.create(tv.url(), tv.protocols()), this.setUpEventListeners(), this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketConnecting, null));
  }
  sendEvent(tv) {
    switch (tv.type) {
      case SignalingClientEventType_1$8.default.WebSocketMessage:
      case SignalingClientEventType_1$8.default.ReceivedSignalFrame:
      case SignalingClientEventType_1$8.default.WebSocketSentMessage:
        this.logger.debug(() => `notifying event: ${SignalingClientEventType_1$8.default[tv.type]}`);
        break;
      case SignalingClientEventType_1$8.default.WebSocketSkippedMessage:
        this.logger.debug(() => `notifying event: ${SignalingClientEventType_1$8.default[tv.type]}, websocket state=${WebSocketReadyState_1$2.default[this.webSocket.readyState()]}`);
        break;
      default:
        this.logger.info(`notifying event: ${SignalingClientEventType_1$8.default[tv.type]}`);
        break;
    }
    for (const ev of this.observerQueue)
      ev.handleSignalingClientEvent(tv);
  }
  setUpEventListeners() {
    this.webSocket.addEventListener("open", () => {
      this.activatePageUnloadHandler(), this.wasOpened = !0, this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketOpen, null));
    }), this.webSocket.addEventListener("message", (tv) => {
      this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketMessage, null)), this.receiveMessage(this.stripFrameTypeRTC(new Uint8Array(tv.data)));
    }), this.webSocket.addEventListener("close", this.closeEventHandler), this.webSocket.addEventListener("error", () => {
      if (this.isClosing && !this.wasOpened) {
        this.logger.info("ignoring error closing signaling while connecting");
        return;
      }
      this.wasOpened ? (this.logger.error("received error while connected"), this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketError, null))) : (this.logger.error("failed to connect"), this.sendEvent(new SignalingClientEvent_1.default(this, SignalingClientEventType_1$8.default.WebSocketFailed, null)));
    });
  }
  activatePageUnloadHandler() {
    this.unloadHandler = () => {
      this.leave();
    };
    const tv = commonjsGlobal;
    tv.window && tv.window.addEventListener && window.addEventListener("unload", this.unloadHandler);
  }
  deactivatePageUnloadHandler() {
    const tv = commonjsGlobal;
    tv.window && tv.window.addEventListener && window.removeEventListener("unload", this.unloadHandler), this.unloadHandler = null;
  }
  generateNewAudioSessionId() {
    const tv = new Uint32Array(1);
    return window.crypto.getRandomValues(tv)[0];
  }
  promoteToPrimaryMeeting(tv) {
    const ev = SignalingProtocol_js_1$c.SdkMeetingSessionCredentials.create();
    ev.attendeeId = tv.attendeeId, ev.externalUserId = tv.externalUserId, ev.joinToken = tv.joinToken;
    const iv = SignalingProtocol_js_1$c.SdkPrimaryMeetingJoinFrame.create();
    iv.credentials = ev;
    const ov = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    ov.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.PRIMARY_MEETING_JOIN, ov.primaryMeetingJoin = iv, this.sendMessage(ov);
  }
  demoteFromPrimaryMeeting() {
    const tv = SignalingProtocol_js_1$c.SdkPrimaryMeetingLeaveFrame.create(), ev = SignalingProtocol_js_1$c.SdkSignalFrame.create();
    ev.type = SignalingProtocol_js_1$c.SdkSignalFrame.Type.PRIMARY_MEETING_LEAVE, ev.primaryMeetingLeave = tv, this.sendMessage(ev);
  }
}
DefaultSignalingClient$1.default = DefaultSignalingClient;
DefaultSignalingClient.FRAME_TYPE_RTC = 5;
DefaultSignalingClient.CLOSE_EVENT_TIMEOUT_MS = 2e3;
DefaultSignalingClient.CLIENT_SUPPORTS_COMPRESSION = !0;
var SignalingClientVideoSubscriptionConfiguration$1 = {};
Object.defineProperty(SignalingClientVideoSubscriptionConfiguration$1, "__esModule", { value: !0 });
class SignalingClientVideoSubscriptionConfiguration {
}
SignalingClientVideoSubscriptionConfiguration$1.default = SignalingClientVideoSubscriptionConfiguration;
var DefaultStatsCollector$1 = {}, DefaultClientMetricReport$1 = {}, GlobalMetricReport$1 = {};
Object.defineProperty(GlobalMetricReport$1, "__esModule", { value: !0 });
class GlobalMetricReport {
  constructor() {
    this.previousMetrics = {}, this.currentMetrics = {};
  }
}
GlobalMetricReport$1.default = GlobalMetricReport;
Object.defineProperty(DefaultClientMetricReport$1, "__esModule", { value: !0 });
const SignalingProtocol_js_1$b = SignalingProtocol, ClientMetricReportDirection_1$3 = ClientMetricReportDirection, ClientMetricReportMediaType_1$3 = ClientMetricReportMediaType, GlobalMetricReport_1 = GlobalMetricReport$1;
class DefaultClientMetricReport {
  constructor(tv, ev, iv) {
    this.logger = tv, this.videoStreamIndex = ev, this.selfAttendeeId = iv, this.globalMetricReport = new GlobalMetricReport_1.default(), this.streamMetricReports = {}, this.currentTimestampMs = 0, this.previousTimestampMs = 0, this.currentSsrcs = {}, this.identityValue = (ov, av) => {
      const sv = av ? this.streamMetricReports[av] : this.globalMetricReport;
      return Number(sv.currentMetrics[ov]);
    }, this.decoderLossPercent = (ov, av) => {
      const sv = av ? this.streamMetricReports[av] : this.globalMetricReport, lv = sv.currentMetrics.googDecodingNormal - (sv.previousMetrics.googDecodingNormal || 0), uv = sv.currentMetrics.googDecodingCTN - (sv.previousMetrics.googDecodingCTN || 0);
      if (uv <= 0)
        return 0;
      const cv = uv - lv;
      return cv <= 0 ? 0 : cv * 100 / uv;
    }, this.packetLossPercent = (ov, av) => {
      const sv = av ? this.streamMetricReports[av] : this.globalMetricReport, lv = sv.currentMetrics[ov] - (sv.previousMetrics[ov] || 0), uv = sv.currentMetrics.packetsLost - (sv.previousMetrics.packetsLost || 0), cv = lv + uv;
      return cv <= 0 || uv <= 0 ? 0 : uv * 100 / cv;
    }, this.countPerSecond = (ov, av) => {
      const sv = av ? this.streamMetricReports[av] : this.globalMetricReport;
      let lv = (this.currentTimestampMs - this.previousTimestampMs) / 1e3;
      if (lv <= 0)
        return 0;
      this.previousTimestampMs <= 0 && (lv = 1);
      const uv = sv.currentMetrics[ov] - (sv.previousMetrics[ov] || 0);
      return uv <= 0 ? 0 : Math.trunc(uv / lv);
    }, this.bitsPerSecond = (ov, av) => {
      const sv = av ? this.streamMetricReports[av] : this.globalMetricReport;
      let lv = (this.currentTimestampMs - this.previousTimestampMs) / 1e3;
      if (lv <= 0)
        return 0;
      this.previousTimestampMs <= 0 && (lv = 1);
      const uv = (sv.currentMetrics[ov] - (sv.previousMetrics[ov] || 0)) * 8;
      return uv <= 0 ? 0 : Math.trunc(uv / lv);
    }, this.secondsToMilliseconds = (ov, av) => {
      const sv = av ? this.streamMetricReports[av] : this.globalMetricReport;
      return Number(sv.currentMetrics[ov] * 1e3);
    }, this.globalMetricMap = {
      googActualEncBitrate: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_ACTUAL_ENCODER_BITRATE
      },
      googAvailableSendBandwidth: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_AVAILABLE_SEND_BANDWIDTH
      },
      googRetransmitBitrate: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RETRANSMIT_BITRATE
      },
      googAvailableReceiveBandwidth: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_AVAILABLE_RECEIVE_BANDWIDTH
      },
      googTargetEncBitrate: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_TARGET_ENCODER_BITRATE
      },
      googBucketDelay: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_BUCKET_DELAY_MS },
      googRtt: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.STUN_RTT_MS },
      packetsDiscardedOnSend: {
        transform: this.countPerSecond,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.SOCKET_DISCARDED_PPS
      },
      availableIncomingBitrate: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_AVAILABLE_RECEIVE_BANDWIDTH
      },
      availableOutgoingBitrate: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_AVAILABLE_SEND_BANDWIDTH
      },
      currentRoundTripTime: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.STUN_RTT_MS }
    }, this.audioUpstreamMetricMap = {
      googJitterReceived: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_MIC_JITTER_MS },
      jitter: { transform: this.secondsToMilliseconds, type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_MIC_JITTER_MS },
      packetsSent: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_MIC_PPS },
      bytesSent: { transform: this.bitsPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_MIC_BITRATE },
      googRtt: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_MIC_RTT_MS },
      packetsLost: {
        transform: this.packetLossPercent,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_MIC_FRACTION_PACKET_LOST_PERCENT,
        source: "packetsSent"
      }
    }, this.audioDownstreamMetricMap = {
      packetsReceived: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_SPK_PPS },
      packetsLost: {
        transform: this.packetLossPercent,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_SPK_FRACTION_PACKET_LOST_PERCENT,
        source: "packetsReceived"
      },
      googJitterReceived: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_SPK_JITTER_MS },
      jitter: { transform: this.secondsToMilliseconds, type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_SPK_JITTER_MS },
      googDecodingCTN: { transform: this.countPerSecond },
      googDecodingNormal: {
        transform: this.decoderLossPercent,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_SPK_FRACTION_DECODER_LOSS_PERCENT,
        source: "googDecodingCTN"
      },
      bytesReceived: { transform: this.bitsPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_SPK_BITRATE },
      googCurrentDelayMs: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_SPK_CURRENT_DELAY_MS
      },
      googJitterBufferMs: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.RTC_SPK_JITTER_BUFFER_MS
      }
    }, this.videoUpstreamMetricMap = {
      googRtt: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_SENT_RTT_MS },
      googEncodeUsagePercent: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_ENCODE_USAGE_PERCENT
      },
      googNacksReceived: {
        transform: this.countPerSecond,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_NACKS_RECEIVED
      },
      nackCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_NACKS_RECEIVED },
      googPlisReceived: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_PLIS_RECEIVED },
      pliCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_PLIS_RECEIVED },
      googFirsReceived: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_FIRS_RECEIVED },
      firCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_FIRS_RECEIVED },
      googAvgEncodeMs: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_AVERAGE_ENCODE_MS
      },
      googFrameRateInput: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_INPUT_FPS },
      framesEncoded: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_ENCODE_FPS },
      googFrameRateSent: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_SENT_FPS },
      framerateMean: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_SENT_FPS },
      packetsSent: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_SENT_PPS },
      packetsLost: {
        transform: this.packetLossPercent,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_SENT_FRACTION_PACKET_LOST_PERCENT,
        source: "packetsSent"
      },
      bytesSent: { transform: this.bitsPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_SENT_BITRATE },
      droppedFrames: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_DROPPED_FPS },
      qpSum: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_SENT_QP_SUM },
      googFrameHeightSent: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_ENCODE_HEIGHT
      },
      googFrameWidthSent: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_ENCODE_WIDTH },
      frameHeight: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_ENCODE_HEIGHT },
      frameWidth: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_ENCODE_WIDTH }
    }, this.videoDownstreamMetricMap = {
      googTargetDelayMs: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_TARGET_DELAY_MS
      },
      googDecodeMs: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_DECODE_MS },
      googFrameRateOutput: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_OUTPUT_FPS },
      packetsReceived: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RECEIVED_PPS },
      packetsLost: {
        transform: this.packetLossPercent,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RECEIVED_FRACTION_PACKET_LOST_PERCENT,
        source: "packetsReceived"
      },
      googRenderDelayMs: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RENDER_DELAY_MS
      },
      googFrameRateReceived: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RECEIVED_FPS
      },
      framerateMean: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RECEIVED_FPS },
      framesDecoded: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_DECODE_FPS },
      googNacksSent: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_NACKS_SENT },
      nackCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_NACKS_SENT },
      googFirsSent: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_FIRS_SENT },
      firCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_FIRS_SENT },
      googPlisSent: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_PLIS_SENT },
      pliCount: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_PLIS_SENT },
      bytesReceived: { transform: this.bitsPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RECEIVED_BITRATE },
      googCurrentDelayMs: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_CURRENT_DELAY_MS
      },
      googJitterBufferMs: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_JITTER_BUFFER_MS
      },
      discardedPackets: { transform: this.countPerSecond, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_DISCARDED_PPS },
      googJitterReceived: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RECEIVED_JITTER_MS
      },
      jitter: {
        transform: this.secondsToMilliseconds,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RECEIVED_JITTER_MS
      },
      qpSum: {
        transform: this.countPerSecond,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_RECEIVED_QP_SUM
      },
      googFrameHeightReceived: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_DECODE_HEIGHT
      },
      googFrameWidthReceived: {
        transform: this.identityValue,
        type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_DECODE_WIDTH
      },
      frameHeight: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_DECODE_HEIGHT },
      frameWidth: { transform: this.identityValue, type: SignalingProtocol_js_1$b.SdkMetric.Type.VIDEO_DECODE_WIDTH }
    }, this.observableVideoMetricSpec = {
      videoUpstreamBitrate: {
        source: "bytesSent",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      videoUpstreamPacketsSent: {
        source: "packetsSent",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      videoUpstreamPacketLossPercent: {
        source: "packetsLost",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      videoUpstreamFramesEncodedPerSecond: {
        source: "framesEncoded",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      videoUpstreamGoogFrameHeight: {
        source: "googFrameHeightSent",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      videoUpstreamGoogFrameWidth: {
        source: "googFrameWidthSent",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      videoUpstreamFrameHeight: {
        source: "frameHeight",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      videoUpstreamFrameWidth: {
        source: "frameWidth",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      videoDownstreamBitrate: {
        source: "bytesReceived",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      videoDownstreamPacketLossPercent: {
        source: "packetsLost",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      videoDownstreamPacketsReceived: {
        source: "packetsReceived",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      videoDownstreamFramesDecodedPerSecond: {
        source: "framesDecoded",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      videoDownstreamGoogFrameHeight: {
        source: "googFrameHeightReceived",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      videoDownstreamGoogFrameWidth: {
        source: "googFrameWidthReceived",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      videoDownstreamFrameHeight: {
        source: "frameHeight",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      videoDownstreamFrameWidth: {
        source: "frameWidth",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      }
    }, this.observableMetricSpec = {
      audioPacketsReceived: {
        source: "packetsReceived",
        media: ClientMetricReportMediaType_1$3.default.AUDIO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      audioPacketsReceivedFractionLoss: {
        source: "packetsLost",
        media: ClientMetricReportMediaType_1$3.default.AUDIO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      audioDecoderLoss: {
        source: "googDecodingNormal",
        media: ClientMetricReportMediaType_1$3.default.AUDIO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      audioPacketsSent: {
        source: "packetsSent",
        media: ClientMetricReportMediaType_1$3.default.AUDIO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      audioPacketLossPercent: {
        source: "packetsLost",
        media: ClientMetricReportMediaType_1$3.default.AUDIO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      videoUpstreamBitrate: { source: "bytesSent", media: ClientMetricReportMediaType_1$3.default.VIDEO, dir: ClientMetricReportDirection_1$3.default.UPSTREAM },
      videoPacketSentPerSecond: {
        source: "packetsSent",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      availableSendBandwidth: { source: "googAvailableSendBandwidth" },
      availableReceiveBandwidth: { source: "googAvailableReceiveBandwidth" },
      audioSpeakerDelayMs: {
        source: "googCurrentDelayMs",
        media: ClientMetricReportMediaType_1$3.default.AUDIO,
        dir: ClientMetricReportDirection_1$3.default.DOWNSTREAM
      },
      // new getStats() API
      availableIncomingBitrate: { source: "availableIncomingBitrate" },
      availableOutgoingBitrate: { source: "availableOutgoingBitrate" },
      nackCountReceivedPerSecond: {
        source: "nackCount",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      },
      googNackCountReceivedPerSecond: {
        source: "googNacksReceived",
        media: ClientMetricReportMediaType_1$3.default.VIDEO,
        dir: ClientMetricReportDirection_1$3.default.UPSTREAM
      }
    };
  }
  getMetricMap(tv, ev) {
    switch (tv) {
      case ClientMetricReportMediaType_1$3.default.AUDIO:
        switch (ev) {
          case ClientMetricReportDirection_1$3.default.UPSTREAM:
            return this.audioUpstreamMetricMap;
          case ClientMetricReportDirection_1$3.default.DOWNSTREAM:
            return this.audioDownstreamMetricMap;
        }
      case ClientMetricReportMediaType_1$3.default.VIDEO:
        switch (ev) {
          case ClientMetricReportDirection_1$3.default.UPSTREAM:
            return this.videoUpstreamMetricMap;
          case ClientMetricReportDirection_1$3.default.DOWNSTREAM:
            return this.videoDownstreamMetricMap;
        }
      default:
        return this.globalMetricMap;
    }
  }
  getObservableMetricValue(tv) {
    const ev = this.observableMetricSpec[tv], ov = this.getMetricMap(ev.media, ev.dir)[ev.source], av = ov.transform, sv = ov.source;
    if (ev.hasOwnProperty("media"))
      for (const lv in this.streamMetricReports) {
        const uv = this.streamMetricReports[lv];
        if (ev.source in uv.currentMetrics && uv.direction === ev.dir && uv.mediaType === ev.media)
          return av(sv || ev.source, Number(lv));
      }
    else
      return av(sv || ev.source);
    return 0;
  }
  getObservableVideoMetricValue(tv, ev) {
    const iv = this.observableVideoMetricSpec[tv], av = this.getMetricMap(iv.media, iv.dir)[iv.source], sv = av.transform, lv = av.source, uv = this.streamMetricReports[ev];
    return uv && iv.source in uv.currentMetrics ? sv(lv || iv.source, ev) : sv(lv || iv.source);
  }
  getObservableMetrics() {
    const tv = {};
    for (const ev in this.observableMetricSpec)
      tv[ev] = this.getObservableMetricValue(ev);
    return tv;
  }
  getObservableVideoMetrics() {
    const tv = {};
    if (!this.videoStreamIndex || !this.selfAttendeeId)
      return this.logger.error("Need to define VideoStreamIndex and selfAttendeeId if using getObservableVideoMetrics API"), tv;
    for (const ev in this.streamMetricReports)
      if (this.streamMetricReports[ev].mediaType === ClientMetricReportMediaType_1$3.default.VIDEO) {
        const iv = {};
        for (const sv in this.observableVideoMetricSpec)
          if (this.observableVideoMetricSpec[sv].dir === this.streamMetricReports[ev].direction) {
            const lv = this.getObservableVideoMetricValue(sv, Number(ev));
            isNaN(lv) || (iv[sv] = lv);
          }
        const ov = this.streamMetricReports[ev].streamId, av = ov ? this.videoStreamIndex.attendeeIdForStreamId(ov) : this.selfAttendeeId;
        tv[av] = tv[av] ? tv[av] : {}, tv[av][ev] = iv;
      }
    return tv;
  }
  /**
   * Utilities
   */
  clone() {
    const tv = new DefaultClientMetricReport(this.logger, this.videoStreamIndex, this.selfAttendeeId);
    return tv.globalMetricReport = this.globalMetricReport, tv.streamMetricReports = this.streamMetricReports, tv.currentTimestampMs = this.currentTimestampMs, tv.previousTimestampMs = this.previousTimestampMs, tv;
  }
  print() {
    const tv = {
      globalMetricReport: this.globalMetricReport,
      streamMetricReports: this.streamMetricReports,
      currentTimestampMs: this.currentTimestampMs,
      previousTimestampMs: this.previousTimestampMs
    };
    this.logger.debug(() => `Client Metric Report: ${JSON.stringify(tv)}`);
  }
  removeDestroyedSsrcs() {
    for (const tv in this.streamMetricReports)
      this.currentSsrcs[tv] || delete this.streamMetricReports[tv];
  }
}
DefaultClientMetricReport$1.default = DefaultClientMetricReport;
var StreamMetricReport$1 = {};
Object.defineProperty(StreamMetricReport$1, "__esModule", { value: !0 });
class StreamMetricReport {
  constructor() {
    this.previousMetrics = {}, this.currentMetrics = {};
  }
}
StreamMetricReport$1.default = StreamMetricReport;
var MeetingSessionLifecycleEvent = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.MeetingSessionLifecycleEvent = void 0;
  var tv;
  (function(ev) {
    ev[ev.Connecting = 0] = "Connecting", ev[ev.Started = 1] = "Started", ev[ev.Stopped = 2] = "Stopped";
  })(tv = rv.MeetingSessionLifecycleEvent || (rv.MeetingSessionLifecycleEvent = {})), rv.default = tv;
})(MeetingSessionLifecycleEvent);
var MeetingSessionLifecycleEventCondition = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.MeetingSessionLifecycleEventCondition = void 0;
  var tv;
  (function(ev) {
    ev[ev.ConnectingNew = 0] = "ConnectingNew", ev[ev.ReconnectingExisting = 1] = "ReconnectingExisting", ev[ev.StartedNew = 2] = "StartedNew", ev[ev.StartedExisting = 3] = "StartedExisting", ev[ev.StartedAfterReconnect = 4] = "StartedAfterReconnect", ev[ev.StoppedCleanly = 5] = "StoppedCleanly", ev[ev.StoppedWithFailure = 6] = "StoppedWithFailure";
  })(tv = rv.MeetingSessionLifecycleEventCondition || (rv.MeetingSessionLifecycleEventCondition = {})), rv.default = tv;
})(MeetingSessionLifecycleEventCondition);
Object.defineProperty(DefaultStatsCollector$1, "__esModule", { value: !0 });
const ClientMetricReportDirection_1$2 = ClientMetricReportDirection, ClientMetricReportMediaType_1$2 = ClientMetricReportMediaType, DefaultClientMetricReport_1 = DefaultClientMetricReport$1, StreamMetricReport_1 = StreamMetricReport$1, MeetingSessionLifecycleEvent_1 = MeetingSessionLifecycleEvent, MeetingSessionLifecycleEventCondition_1 = MeetingSessionLifecycleEventCondition, IntervalScheduler_1$2 = IntervalScheduler$1, SignalingProtocol_js_1$a = SignalingProtocol, Types_1$5 = Types, AudioLogEvent_1$1 = AudioLogEvent, VideoLogEvent_1$1 = VideoLogEvent;
class DefaultStatsCollector {
  constructor(tv, ev, iv, ov = DefaultStatsCollector.INTERVAL_MS) {
    this.audioVideoController = tv, this.logger = ev, this.browserBehavior = iv, this.interval = ov, this.intervalScheduler = null, this.metricsAddTime = (av, sv, lv) => {
    }, this.metricsLogEvent = (av, sv) => {
    };
  }
  // TODO: Update toAttribute() and toSuffix() methods to convert raw data to a required type.
  toAttribute(tv) {
    return this.toSuffix(tv).substring(1);
  }
  toSuffix(tv) {
    return tv.toLowerCase() === tv ? `_${tv}` : tv.toUpperCase() === tv ? `_${tv.toLowerCase()}` : tv.replace(/([A-Z][a-z]+)/g, function(ev) {
      return `_${ev}`;
    }).replace(/([A-Z][A-Z]+)/g, function(ev) {
      return `_${ev}`;
    }).toLowerCase();
  }
  logLatency(tv, ev, iv) {
    const ov = this.toSuffix(tv);
    this.logEventTime("meeting" + ov, ev, iv);
  }
  logStateTimeout(tv, ev) {
    const iv = this.toSuffix(tv);
    this.logEvent("meeting_session_state_timeout", Object.assign(Object.assign({}, ev), { state: `state${iv}` }));
  }
  logAudioEvent(tv, ev) {
    const iv = "audio" + this.toSuffix(AudioLogEvent_1$1.default[tv]);
    this.logEvent(iv, ev);
  }
  logVideoEvent(tv, ev) {
    const iv = "video" + this.toSuffix(VideoLogEvent_1$1.default[tv]);
    this.logEvent(iv, ev);
  }
  logEventTime(tv, ev, iv = {}) {
    const ov = Object.assign(Object.assign({}, iv), { call_id: this.audioVideoController.configuration.meetingId, client_type: DefaultStatsCollector.CLIENT_TYPE, metric_type: "latency" });
    this.logger.debug(() => `[DefaultStatsCollector] ${tv}: ${JSON.stringify(ov)}`), this.metricsAddTime(tv, ev, ov);
  }
  logMeetingSessionStatus(tv) {
    const ev = `${tv.statusCode()}`;
    this.logEvent(ev);
    const iv = {
      status: ev,
      status_code: `${tv.statusCode()}`
    };
    this.logEvent("meeting_session_status", iv), tv.isTerminal() && this.logEvent("meeting_session_stopped", iv), tv.isAudioConnectionFailure() && this.logEvent("meeting_session_audio_failed", iv), tv.isFailure() && this.logEvent("meeting_session_failed", iv);
  }
  logLifecycleEvent(tv, ev) {
    const iv = {
      lifecycle_event: `lifecycle${this.toSuffix(MeetingSessionLifecycleEvent_1.default[tv])}`,
      lifecycle_event_code: `${tv}`,
      lifecycle_event_condition: `condition${this.toSuffix(MeetingSessionLifecycleEventCondition_1.default[ev])}`,
      lifecycle_event_condition_code: `${ev}`
    };
    this.logEvent("meeting_session_lifecycle", iv);
  }
  logEvent(tv, ev = {}) {
    const iv = Object.assign(Object.assign({}, ev), { call_id: this.audioVideoController.configuration.meetingId, client_type: DefaultStatsCollector.CLIENT_TYPE });
    this.logger.debug(() => `[DefaultStatsCollector] ${tv}: ${JSON.stringify(iv)}`), this.metricsLogEvent(tv, iv);
  }
  /**
   * WEBRTC METRICS COLLECTION.
   */
  start(tv, ev, iv) {
    return this.intervalScheduler ? !1 : (this.logger.info("Starting DefaultStatsCollector"), this.signalingClient = tv, this.videoStreamIndex = ev, iv ? this.clientMetricReport = iv : this.clientMetricReport = new DefaultClientMetricReport_1.default(this.logger, this.videoStreamIndex, this.audioVideoController.configuration.credentials.attendeeId), this.intervalScheduler = new IntervalScheduler_1$2.default(this.interval), this.intervalScheduler.start(() => {
      this.getStatsWrapper();
    }), !0);
  }
  stop() {
    this.logger.info("Stopping DefaultStatsCollector"), this.intervalScheduler && this.intervalScheduler.stop(), this.intervalScheduler = null;
  }
  /**
   * Convert raw metrics to client metric report.
   */
  updateMetricValues(tv, ev) {
    const iv = ev ? this.clientMetricReport.streamMetricReports[Number(tv.ssrc)] : this.clientMetricReport.globalMetricReport;
    let ov;
    ev ? ov = this.clientMetricReport.getMetricMap(iv.mediaType, iv.direction) : ov = this.clientMetricReport.getMetricMap();
    for (const av in tv)
      av in ov && (iv.previousMetrics[av] = iv.currentMetrics[av], iv.currentMetrics[av] = tv[av]);
  }
  processRawMetricReports(tv) {
    this.clientMetricReport.currentSsrcs = {};
    const ev = Date.now();
    for (const iv of tv) {
      const ov = this.isStreamRawMetricReport(iv.type);
      if (ov) {
        const av = this.clientMetricReport.streamMetricReports[Number(iv.ssrc)];
        if (av)
          av.streamId = this.videoStreamIndex.streamIdForSSRC(Number(iv.ssrc));
        else {
          const sv = new StreamMetricReport_1.default();
          sv.mediaType = this.getMediaType(iv), sv.direction = this.getDirectionType(iv), this.videoStreamIndex.allStreams().empty() || (sv.streamId = this.videoStreamIndex.streamIdForSSRC(Number(iv.ssrc))), this.clientMetricReport.streamMetricReports[Number(iv.ssrc)] = sv;
        }
        this.clientMetricReport.currentSsrcs[Number(iv.ssrc)] = 1;
      }
      this.updateMetricValues(iv, ov);
    }
    this.clientMetricReport.removeDestroyedSsrcs(), this.clientMetricReport.previousTimestampMs = this.clientMetricReport.currentTimestampMs, this.clientMetricReport.currentTimestampMs = ev, this.clientMetricReport.print();
  }
  /**
   * Protobuf packaging.
   */
  addMetricFrame(tv, ev, iv, ov) {
    const av = iv.type, sv = iv.transform, lv = iv.source, uv = ev.streamMetricFrames.length, cv = ev.streamMetricFrames[uv - 1];
    if (av) {
      const dv = SignalingProtocol_js_1$a.SdkMetric.create();
      dv.type = av, dv.value = sv(lv || tv, ov), ov ? cv.metrics.push(dv) : ev.globalMetrics.push(dv);
    }
  }
  addGlobalMetricsToProtobuf(tv) {
    const ev = this.clientMetricReport.getMetricMap();
    for (const iv in this.clientMetricReport.globalMetricReport.currentMetrics)
      this.addMetricFrame(iv, tv, ev[iv]);
  }
  addStreamMetricsToProtobuf(tv) {
    for (const ev in this.clientMetricReport.streamMetricReports) {
      const iv = this.clientMetricReport.streamMetricReports[ev], ov = SignalingProtocol_js_1$a.SdkStreamMetricFrame.create();
      ov.streamId = iv.streamId, ov.metrics = [], tv.streamMetricFrames.push(ov);
      const av = this.clientMetricReport.getMetricMap(iv.mediaType, iv.direction);
      for (const sv in iv.currentMetrics)
        this.addMetricFrame(sv, tv, av[sv], Number(ev));
    }
  }
  makeClientMetricProtobuf() {
    const tv = SignalingProtocol_js_1$a.SdkClientMetricFrame.create();
    return tv.globalMetrics = [], tv.streamMetricFrames = [], this.addGlobalMetricsToProtobuf(tv), this.addStreamMetricsToProtobuf(tv), tv;
  }
  sendClientMetricProtobuf(tv) {
    this.signalingClient.sendClientMetrics(tv);
  }
  /**
   * Helper functions.
   */
  isStreamRawMetricReport(tv) {
    return tv === "ssrc" || tv === "inbound-rtp" || tv === "outbound-rtp";
  }
  getMediaType(tv) {
    return tv.mediaType === "audio" ? ClientMetricReportMediaType_1$2.default.AUDIO : ClientMetricReportMediaType_1$2.default.VIDEO;
  }
  getDirectionType(tv) {
    return tv.id.toLowerCase().indexOf("send") !== -1 || tv.id.toLowerCase().indexOf("outbound") !== -1 || tv.type === "outbound-rtp" ? ClientMetricReportDirection_1$2.default.UPSTREAM : ClientMetricReportDirection_1$2.default.DOWNSTREAM;
  }
  /**
   * Metric report filter.
   */
  isValidChromeRawMetric(tv) {
    return this.browserBehavior.hasChromiumWebRTC() && (tv.type === "ssrc" || tv.type === "VideoBwe" || tv.type === "googCandidatePair" && tv.googWritable === "true" && tv.googReadable === "true");
  }
  isValidStandardRawMetric(tv) {
    const ev = tv.type === "inbound-rtp" || tv.type === "outbound-rtp" || tv.type === "candidate-pair" && tv.state === "succeeded";
    return this.browserBehavior.hasFirefoxWebRTC() ? this.compareMajorVersion(DefaultStatsCollector.FIREFOX_UPDATED_GET_STATS_VERSION) === -1 ? ev : ev && tv.isRemote === !1 : ev;
  }
  isValidSsrc(tv) {
    let ev = !0;
    return this.isStreamRawMetricReport(tv.type) && this.getDirectionType(tv) === ClientMetricReportDirection_1$2.default.DOWNSTREAM && this.getMediaType(tv) === ClientMetricReportMediaType_1$2.default.VIDEO && (ev = this.videoStreamIndex.streamIdForSSRC(Number(tv.ssrc)) > 0), ev;
  }
  isValidRawMetricReport(tv) {
    return (this.isValidChromeRawMetric(tv) || this.isValidStandardRawMetric(tv)) && this.isValidSsrc(tv);
  }
  filterRawMetricReports(tv) {
    const ev = [];
    for (const iv of tv)
      this.isValidRawMetricReport(iv) && ev.push(iv);
    return ev;
  }
  handleRawMetricReports(tv) {
    const ev = this.filterRawMetricReports(tv);
    this.logger.debug(() => `Filtered raw metrics : ${JSON.stringify(ev)}`), this.processRawMetricReports(ev);
    const iv = this.makeClientMetricProtobuf();
    this.sendClientMetricProtobuf(iv), this.audioVideoController.forEachObserver((ov) => {
      Types_1$5.Maybe.of(ov.metricsDidReceive).map((av) => av.bind(ov)(this.clientMetricReport.clone()));
    });
  }
  /**
   * Get raw webrtc metrics.
   */
  getStatsWrapper() {
    if (!this.audioVideoController.rtcPeerConnection)
      return;
    const tv = [];
    this.browserBehavior.requiresPromiseBasedWebRTCGetStats() ? this.audioVideoController.rtcPeerConnection.getStats().then((ev) => {
      ev.forEach((iv) => {
        tv.push(iv);
      }), this.handleRawMetricReports(tv);
    }).catch((ev) => {
      this.logger.error(ev.message);
    }) : this.audioVideoController.rtcPeerConnection.getStats(
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      (ev) => {
        ev.result().forEach((iv) => {
          const ov = {};
          iv.names().forEach((av) => {
            ov[av] = iv.stat(av);
          }), ov.id = iv.id, ov.type = iv.type, ov.timestamp = iv.timestamp, tv.push(ov);
        }), this.handleRawMetricReports(tv);
      },
      // @ts-ignore
      (ev) => {
        this.logger.error(ev.message);
      }
    );
  }
  compareMajorVersion(tv) {
    const ev = parseInt(this.browserBehavior.version().split(".")[0]), iv = parseInt(tv.split(".")[0]);
    return iv === ev ? 0 : iv > ev ? 1 : -1;
  }
}
DefaultStatsCollector$1.default = DefaultStatsCollector;
DefaultStatsCollector.INTERVAL_MS = 1e3;
DefaultStatsCollector.FIREFOX_UPDATED_GET_STATS_VERSION = "66.0.0";
DefaultStatsCollector.CLIENT_TYPE = "amazon-chime-sdk-js";
var FinishGatheringICECandidatesTask$1 = {}, __awaiter$F = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(FinishGatheringICECandidatesTask$1, "__esModule", { value: !0 });
const MeetingSessionStatusCode_1$5 = MeetingSessionStatusCode, DefaultSDP_1$3 = DefaultSDP$1, BaseTask_1$k = BaseTask$1;
class FinishGatheringICECandidatesTask extends BaseTask_1$k.default {
  constructor(tv, ev = FinishGatheringICECandidatesTask.CHROME_VPN_TIMEOUT_MS) {
    super(tv.logger), this.context = tv, this.chromeVpnTimeoutMs = ev, this.taskName = "FinishGatheringICECandidatesTask";
  }
  removeEventListener() {
    this.context.peer && (this.context.peer.removeEventListener("icecandidate", this.context.iceCandidateHandler), this.context.turnCredentials || this.context.peer.removeEventListener("icegatheringstatechange", this.context.iceGatheringStateEventHandler));
  }
  cancel() {
    let tv;
    this.context.browserBehavior.requiresIceCandidateGatheringTimeoutWorkaround() && this.chromeVpnTimeoutMs < this.context.meetingSessionConfiguration.connectionTimeoutMs && Date.now() - this.startTimestampMs > this.chromeVpnTimeoutMs && (tv = new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1$5.default.ICEGatheringTimeoutWorkaround}`)), this.cancelPromise && (tv = tv || new Error(`canceling ${this.name()}`), this.cancelPromise(tv), delete this.cancelPromise);
  }
  run() {
    return __awaiter$F(this, void 0, void 0, function* () {
      if (this.context.peer || this.logAndThrow("session does not have peer connection; bypass ice gathering"), this.context.browserBehavior.requiresCheckForSdpConnectionAttributes()) {
        if (new DefaultSDP_1$3.default(this.context.peer.localDescription.sdp).hasCandidatesForAllMLines()) {
          this.context.logger.info(`ice gathering already complete; bypass gathering, current local description ${this.context.peer.localDescription.sdp}`);
          return;
        }
      } else
        this.context.logger.info(`iOS device does not require checking for connection attributes in SDP, current local description ${this.context.peer.localDescription.sdp}`);
      if ((this.context.browserBehavior.hasFirefoxWebRTC() || this.context.peer.iceGatheringState === "complete") && new DefaultSDP_1$3.default(this.context.peer.localDescription.sdp).hasCandidates()) {
        this.context.logger.info("ice gathering state is complete and candidates are in SDP; bypass gathering");
        return;
      }
      try {
        yield new Promise((tv, ev) => {
          this.cancelPromise = (iv) => {
            this.removeEventListener(), ev(iv);
          }, this.context.turnCredentials || (this.context.iceGatheringStateEventHandler = () => {
            if (this.context.peer.iceGatheringState === "complete") {
              this.removeEventListener(), tv(), delete this.cancelPromise;
              return;
            }
          }, this.context.peer.addEventListener("icegatheringstatechange", this.context.iceGatheringStateEventHandler)), this.context.iceCandidateHandler = (iv) => {
            if (this.context.logger.info(`ice candidate: ${iv.candidate ? iv.candidate.candidate : "(null)"} state: ${this.context.peer.iceGatheringState}`), iv.candidate && (DefaultSDP_1$3.default.isRTPCandidate(iv.candidate.candidate) && this.context.iceCandidates.push(iv.candidate), this.context.turnCredentials && this.context.iceCandidates.length >= 1)) {
              this.context.logger.info("gathered at least one relay candidate"), this.removeEventListener(), tv(), delete this.cancelPromise;
              return;
            }
            this.context.peer.iceGatheringState === "complete" && (this.context.logger.info("done gathering ice candidates"), this.removeEventListener(), !new DefaultSDP_1$3.default(this.context.peer.localDescription.sdp).hasCandidates() || this.context.iceCandidates.length === 0 ? (ev(new Error("no ice candidates were gathered")), delete this.cancelPromise) : (tv(), delete this.cancelPromise));
          }, this.context.peer.addEventListener("icecandidate", this.context.iceCandidateHandler), this.startTimestampMs = Date.now();
        });
      } catch (tv) {
        throw tv;
      } finally {
        this.startTimestampMs && (this.context.iceGatheringDurationMs = Math.round(Date.now() - this.startTimestampMs));
      }
    });
  }
}
FinishGatheringICECandidatesTask$1.default = FinishGatheringICECandidatesTask;
FinishGatheringICECandidatesTask.CHROME_VPN_TIMEOUT_MS = 5e3;
var JoinAndReceiveIndexTask$1 = {}, MeetingSessionTURNCredentials$1 = {};
Object.defineProperty(MeetingSessionTURNCredentials$1, "__esModule", { value: !0 });
class MeetingSessionTURNCredentials {
  constructor() {
    this.username = null, this.password = null, this.ttl = null, this.uris = null;
  }
}
MeetingSessionTURNCredentials$1.default = MeetingSessionTURNCredentials;
var SignalingClientJoin$1 = {};
Object.defineProperty(SignalingClientJoin$1, "__esModule", { value: !0 });
class SignalingClientJoin {
  /** Initializes a SignalingClientJoin with the given properties.
   *
   * // maxVideos is deprecated as the video sending/receiving capacity limits
   * // for a meeting will be controlled by the backend.
   * @param maxVideos Usage of maxVideos variable will result into no-op.
   * @param sendBitrates Whether the server should send Bitrates messages.
   * @param applicationMetadata [[ApplicationMetadata]].
   */
  constructor(tv, ev, iv) {
    this.maxVideos = tv, this.sendBitrates = ev, this.applicationMetadata = iv;
  }
}
SignalingClientJoin$1.default = SignalingClientJoin;
var __awaiter$E = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(JoinAndReceiveIndexTask$1, "__esModule", { value: !0 });
const MeetingSessionStatus_1$2 = MeetingSessionStatus$1, MeetingSessionStatusCode_1$4 = MeetingSessionStatusCode, MeetingSessionTURNCredentials_1$1 = MeetingSessionTURNCredentials$1, SignalingClientEventType_1$7 = SignalingClientEventType, SignalingClientJoin_1 = SignalingClientJoin$1, SignalingProtocol_js_1$9 = SignalingProtocol, BaseTask_1$j = BaseTask$1;
class JoinAndReceiveIndexTask extends BaseTask_1$j.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "JoinAndReceiveIndexTask", this.taskCanceler = null, this.maxVideos = 25;
  }
  cancel() {
    this.taskCanceler && (this.taskCanceler.cancel(), this.taskCanceler = null);
  }
  run() {
    return __awaiter$E(this, void 0, void 0, function* () {
      const tv = yield new Promise((ev, iv) => {
        const ov = this.context;
        ov.turnCredentials = null;
        class av {
          constructor(uv) {
            this.signalingClient = uv;
          }
          cancel() {
            this.signalingClient.removeObserver(this), iv(new Error("JoinAndReceiveIndexTask got canceled while waiting for SdkIndexFrame"));
          }
          handleSignalingClientEvent(uv) {
            if (uv.type === SignalingClientEventType_1$7.default.WebSocketClosed) {
              let dv = `The signaling connection was closed with code ${uv.closeCode} and reason: ${uv.closeReason}`;
              ov.logger.warn(dv);
              let hv = MeetingSessionStatusCode_1$4.default.SignalingBadRequest;
              uv.closeCode === 4410 ? (dv = "The meeting already ended.", ov.logger.warn(dv), hv = MeetingSessionStatusCode_1$4.default.MeetingEnded) : uv.closeCode >= 4500 && uv.closeCode < 4600 && (hv = MeetingSessionStatusCode_1$4.default.SignalingInternalServerError), ov.audioVideoController.handleMeetingSessionStatus(new MeetingSessionStatus_1$2.default(hv), new Error(dv));
              return;
            }
            if (uv.type !== SignalingClientEventType_1$7.default.ReceivedSignalFrame)
              return;
            if (uv.message.type === SignalingProtocol_js_1$9.SdkSignalFrame.Type.JOIN_ACK) {
              const dv = uv.message.joinack;
              dv && dv.videoSubscriptionLimit && (ov.videoSubscriptionLimit = dv.videoSubscriptionLimit), ov.serverSupportsCompression = dv == null ? void 0 : dv.wantsCompressedSdp, dv && dv.turnCredentials ? (ov.turnCredentials = new MeetingSessionTURNCredentials_1$1.default(), ov.turnCredentials.username = dv.turnCredentials.username, ov.turnCredentials.password = dv.turnCredentials.password, ov.turnCredentials.ttl = dv.turnCredentials.ttl, ov.turnCredentials.uris = dv.turnCredentials.uris.map((hv) => ov.meetingSessionConfiguration.urls.urlRewriter(hv)).filter((hv) => !!hv)) : ov.logger.error("missing TURN credentials in JoinAckFrame");
              return;
            }
            if (uv.message.type !== SignalingProtocol_js_1$9.SdkSignalFrame.Type.INDEX)
              return;
            this.signalingClient.removeObserver(this);
            const cv = uv.message.index;
            ev(cv);
          }
        }
        const sv = new av(this.context.signalingClient);
        this.context.signalingClient.registerObserver(sv), this.taskCanceler = sv, this.context.previousSdpAnswerAsString = "", this.context.previousSdpOffer = null, this.context.serverSupportsCompression = !1, this.context.signalingClient.join(new SignalingClientJoin_1.default(this.maxVideos, !0, this.context.meetingSessionConfiguration.applicationMetadata));
      });
      this.context.logger.info(`received first index ${JSON.stringify(tv)}`), this.context.indexFrame = tv;
    });
  }
}
JoinAndReceiveIndexTask$1.default = JoinAndReceiveIndexTask;
var LeaveAndReceiveLeaveAckTask$1 = {}, __awaiter$D = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(LeaveAndReceiveLeaveAckTask$1, "__esModule", { value: !0 });
const SignalingClientEventType_1$6 = SignalingClientEventType, SignalingProtocol_js_1$8 = SignalingProtocol, BaseTask_1$i = BaseTask$1;
class LeaveAndReceiveLeaveAckTask extends BaseTask_1$i.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "LeaveAndReceiveLeaveAckTask", this.taskCanceler = null;
  }
  cancel() {
    this.taskCanceler && (this.taskCanceler.cancel(), this.taskCanceler = null);
  }
  run() {
    return __awaiter$D(this, void 0, void 0, function* () {
      this.context.signalingClient.ready() && (this.context.signalingClient.leave(), this.context.logger.info("sent leave"), yield this.receiveLeaveAck());
    });
  }
  receiveLeaveAck() {
    return new Promise((tv, ev) => {
      class iv {
        constructor(sv, lv) {
          this.signalingClient = sv, this.logger = lv;
        }
        cancel() {
          this.signalingClient.removeObserver(this), ev(new Error("LeaveAndReceiveLeaveAckTask got canceled while waiting for IndexFrame"));
        }
        handleSignalingClientEvent(sv) {
          if (sv.isConnectionTerminated()) {
            this.signalingClient.removeObserver(this), this.logger.info("LeaveAndReceiveLeaveAckTask connection terminated"), tv();
            return;
          }
          sv.type === SignalingClientEventType_1$6.default.ReceivedSignalFrame && sv.message.type === SignalingProtocol_js_1$8.SdkSignalFrame.Type.LEAVE_ACK && (this.signalingClient.removeObserver(this), this.logger.info("got leave ack"), tv());
        }
      }
      const ov = new iv(this.context.signalingClient, this.context.logger);
      this.taskCanceler = ov, this.context.signalingClient.registerObserver(ov);
    });
  }
}
LeaveAndReceiveLeaveAckTask$1.default = LeaveAndReceiveLeaveAckTask;
var ListenForVolumeIndicatorsTask$1 = {}, __awaiter$C = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(ListenForVolumeIndicatorsTask$1, "__esModule", { value: !0 });
const SignalingClientEventType_1$5 = SignalingClientEventType, SignalingProtocol_js_1$7 = SignalingProtocol, BaseTask_1$h = BaseTask$1;
class ListenForVolumeIndicatorsTask extends BaseTask_1$h.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "ListenForVolumeIndicatorsTask", this.realtimeMuteAndUnmuteHandler = (ev) => {
      this.context.signalingClient.mute(ev);
    };
  }
  run() {
    return __awaiter$C(this, void 0, void 0, function* () {
      this.context.removableObservers.push(this), this.context.signalingClient.registerObserver(this), this.context.realtimeController.realtimeSubscribeToMuteAndUnmuteLocalAudio(this.realtimeMuteAndUnmuteHandler);
    });
  }
  removeObserver() {
    this.context.realtimeController.realtimeUnsubscribeToMuteAndUnmuteLocalAudio(this.realtimeMuteAndUnmuteHandler), this.context.signalingClient.removeObserver(this);
  }
  handleSignalingClientEvent(tv) {
    if (tv.type === SignalingClientEventType_1$5.default.ReceivedSignalFrame) {
      if (tv.message.type === SignalingProtocol_js_1$7.SdkSignalFrame.Type.AUDIO_STREAM_ID_INFO) {
        const ev = tv.message.audioStreamIdInfo;
        this.context.volumeIndicatorAdapter.sendRealtimeUpdatesForAudioStreamIdInfo(ev);
      } else if (tv.message.type === SignalingProtocol_js_1$7.SdkSignalFrame.Type.AUDIO_METADATA) {
        const ev = tv.message.audioMetadata;
        this.context.volumeIndicatorAdapter.sendRealtimeUpdatesForAudioMetadata(ev);
      }
    }
  }
}
ListenForVolumeIndicatorsTask$1.default = ListenForVolumeIndicatorsTask;
var MonitorTask$1 = {}, ReconnectionHealthPolicy$1 = {};
Object.defineProperty(ReconnectionHealthPolicy$1, "__esModule", { value: !0 });
const BaseConnectionHealthPolicy_1$1 = BaseConnectionHealthPolicy$1;
class ReconnectionHealthPolicy extends BaseConnectionHealthPolicy_1$1.default {
  constructor(tv, ev, iv) {
    super(ev, iv), this.logger = tv, this.audioDelayPointsOverMaximum = 0, ReconnectionHealthPolicy.CONNECTION_UNHEALTHY_THRESHOLD = ev.connectionUnhealthyThreshold, ReconnectionHealthPolicy.CONNECTION_WAIT_TIME_MS = ev.connectionWaitTimeMs, ReconnectionHealthPolicy.MISSED_PONGS_THRESHOLD = ev.missedPongsUpperThreshold, ReconnectionHealthPolicy.MAXIMUM_AUDIO_DELAY_MS = ev.maximumAudioDelayMs, ReconnectionHealthPolicy.MAXIMUM_AUDIO_DELAY_DATA_POINTS = ev.maximumAudioDelayDataPoints;
  }
  health() {
    if (this.currentData.isConnectionStartRecent(ReconnectionHealthPolicy.CONNECTION_WAIT_TIME_MS))
      return 1;
    const ev = this.currentData.consecutiveStatsWithNoPackets >= ReconnectionHealthPolicy.CONNECTION_UNHEALTHY_THRESHOLD, iv = this.currentData.consecutiveMissedPongs >= ReconnectionHealthPolicy.MISSED_PONGS_THRESHOLD;
    this.currentData.audioSpeakerDelayMs > ReconnectionHealthPolicy.MAXIMUM_AUDIO_DELAY_MS ? this.audioDelayPointsOverMaximum += 1 : this.audioDelayPointsOverMaximum = 0;
    const ov = this.audioDelayPointsOverMaximum > ReconnectionHealthPolicy.MAXIMUM_AUDIO_DELAY_DATA_POINTS;
    return ov && (this.audioDelayPointsOverMaximum = 0), ev || iv || ov ? (this.logger.warn(`reconnection recommended due to: no packets received: ${ev}, missed pongs: ${iv}, bad audio delay: ${ov}`), 0) : 1;
  }
}
ReconnectionHealthPolicy$1.default = ReconnectionHealthPolicy;
var UnusableAudioWarningConnectionHealthPolicy$1 = {};
Object.defineProperty(UnusableAudioWarningConnectionHealthPolicy$1, "__esModule", { value: !0 });
const BaseConnectionHealthPolicy_1 = BaseConnectionHealthPolicy$1;
class UnusableAudioWarningConnectionHealthPolicy extends BaseConnectionHealthPolicy_1.default {
  constructor(tv, ev) {
    super(tv, ev), this.coolDownTimeMs = tv.cooldownTimeMs, this.pastSamplesToConsider = tv.pastSamplesToConsider, this.fractionalLoss = tv.fractionalLoss, this.packetsExpected = tv.packetsExpected, this.maximumTimesToWarn = tv.maximumTimesToWarn, this.lastWarnTimestampMs = 0, this.warnCount = 0;
  }
  calculateFractionalLoss() {
    if (this.currentData.packetsReceivedInLastMinute.length < this.pastSamplesToConsider)
      return 0;
    const tv = this.pastSamplesToConsider, ev = tv * this.packetsExpected;
    let iv = 0;
    for (let ov = 0; ov < tv; ov++)
      iv += this.currentData.packetsReceivedInLastMinute[ov];
    return Math.min(Math.max(1 - iv / ev, 0), 1);
  }
  health() {
    return Date.now() - this.lastWarnTimestampMs < this.coolDownTimeMs ? this.currentHealth : this.calculateFractionalLoss() >= this.fractionalLoss ? this.currentHealth !== 0 && (this.lastWarnTimestampMs = Date.now(), this.warnCount++, this.warnCount > this.maximumTimesToWarn) ? 1 : 0 : 1;
  }
}
UnusableAudioWarningConnectionHealthPolicy$1.default = UnusableAudioWarningConnectionHealthPolicy;
var __awaiter$B = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(MonitorTask$1, "__esModule", { value: !0 });
const ClientMetricReportDirection_1$1 = ClientMetricReportDirection, ClientMetricReportMediaType_1$1 = ClientMetricReportMediaType, ClientVideoStreamReceivingReport_1 = ClientVideoStreamReceivingReport$1, ReconnectionHealthPolicy_1 = ReconnectionHealthPolicy$1, UnusableAudioWarningConnectionHealthPolicy_1 = UnusableAudioWarningConnectionHealthPolicy$1, MeetingSessionStatus_1$1 = MeetingSessionStatus$1, MeetingSessionStatusCode_1$3 = MeetingSessionStatusCode, SignalingClientEventType_1$4 = SignalingClientEventType, SignalingProtocol_1 = SignalingProtocol, AudioLogEvent_1 = AudioLogEvent, VideoLogEvent_1 = VideoLogEvent, Types_1$4 = Types, BaseTask_1$g = BaseTask$1;
class MonitorTask extends BaseTask_1$g.default {
  constructor(tv, ev, iv) {
    super(tv.logger), this.context = tv, this.initialConnectionHealthData = iv, this.taskName = "MonitorTask", this.prevSignalStrength = 1, this.currentVideoDownlinkBandwidthEstimationKbps = 1e4, this.currentAvailableStreamAvgBitrates = null, this.hasSignalingError = !1, this.presenceHandlerCalled = !1, this.isResubscribeCheckPaused = !1, this.pendingMetricsReport = void 0, this.checkAndSendWeakSignalEvent = (ov) => {
      const av = ov < 1, sv = this.prevSignalStrength < 1, lv = av ? sv ? null : AudioLogEvent_1.default.RedmicStartLoss : sv ? AudioLogEvent_1.default.RedmicEndLoss : null;
      lv && this.context.statsCollector.logAudioEvent(lv), this.prevSignalStrength = ov;
    }, this.realtimeFatalErrorCallback = (ov) => {
      this.logger.error(`realtime error: ${ov}: ${ov.stack}`), this.context.audioVideoController.handleMeetingSessionStatus(new MeetingSessionStatus_1$1.default(MeetingSessionStatusCode_1$3.default.RealtimeApiFailed), ov);
    }, this.realtimeAttendeeIdPresenceHandler = (ov, av) => {
      const sv = this.context.meetingSessionConfiguration.credentials.attendeeId;
      this.logger.info(`attendeePresenceReceived: ${sv}`), sv === ov && av && !this.presenceHandlerCalled && (this.presenceHandlerCalled = !0, this.context.attendeePresenceDurationMs = Date.now() - this.context.startAudioVideoTimestamp, this.context.eventController && this.context.eventController.publishEvent("attendeePresenceReceived", {
        attendeePresenceDurationMs: this.context.attendeePresenceDurationMs
      }));
    }, this.generateAudioVideoEventAttributes = () => {
      const { signalingOpenDurationMs: ov, poorConnectionCount: av, startTimeMs: sv, iceGatheringDurationMs: lv, attendeePresenceDurationMs: uv, meetingStartDurationMs: cv } = this.context;
      return {
        maxVideoTileCount: this.context.maxVideoTileCount,
        meetingDurationMs: sv === null ? 0 : Math.round(Date.now() - sv),
        signalingOpenDurationMs: ov,
        iceGatheringDurationMs: lv,
        attendeePresenceDurationMs: uv,
        poorConnectionCount: av,
        meetingStartDurationMs: cv
      };
    }, this.reconnectionHealthPolicy = new ReconnectionHealthPolicy_1.default(tv.logger, Object.assign({}, ev), this.initialConnectionHealthData.clone()), this.unusableAudioWarningHealthPolicy = new UnusableAudioWarningConnectionHealthPolicy_1.default(Object.assign({}, ev), this.initialConnectionHealthData.clone());
  }
  removeObserver() {
    this.context.audioVideoController.removeObserver(this), this.context.realtimeController.realtimeUnsubscribeToFatalError(this.realtimeFatalErrorCallback), this.context.realtimeController.realtimeUnsubscribeToLocalSignalStrengthChange(this.checkAndSendWeakSignalEvent), this.context.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(this.realtimeAttendeeIdPresenceHandler), this.context.signalingClient.removeObserver(this);
  }
  run() {
    return __awaiter$B(this, void 0, void 0, function* () {
      this.context.removableObservers.push(this), this.context.audioVideoController.addObserver(this), this.context.realtimeController.realtimeSubscribeToFatalError(this.realtimeFatalErrorCallback), this.context.realtimeController.realtimeSubscribeToLocalSignalStrengthChange(this.checkAndSendWeakSignalEvent), this.context.realtimeController.realtimeSubscribeToAttendeeIdPresence(this.realtimeAttendeeIdPresenceHandler), this.context.connectionMonitor.start(), this.context.statsCollector.start(this.context.signalingClient, this.context.videoStreamIndex), this.context.signalingClient.registerObserver(this);
    });
  }
  pauseResubscribeCheck() {
    this.isResubscribeCheckPaused = !0;
  }
  resumeResubscribeCheck() {
    this.isResubscribeCheckPaused && (this.isResubscribeCheckPaused = !1, this.pendingMetricsReport && (this.context.logger.info("Resuming resubscribe check with pending metrics report"), this.checkResubscribe(this.pendingMetricsReport) && this.context.audioVideoController.update({ needsRenegotiation: !1 })));
  }
  videoTileDidUpdate(tv) {
    this.context.maxVideoTileCount = Math.max(this.context.maxVideoTileCount, this.context.videoTileController.getAllVideoTiles().length);
  }
  videoSendHealthDidChange(tv, ev) {
    if (this.context.videoInputAttachedTimestampMs === 0 || !this.context.videoTileController.hasStartedLocalVideoTile() || !this.context.lastKnownVideoAvailability.canStartLocalVideo)
      return;
    const iv = this.context.activeVideoInput !== null ? this.context.activeVideoInput.getTracks() : null;
    if (!iv || !iv[0])
      return;
    const ov = Date.now() - this.context.videoInputAttachedTimestampMs;
    ev > 0 || tv > 0 ? (this.context.statsCollector.logVideoEvent(VideoLogEvent_1.default.SendingSuccess, this.context.videoDeviceInformation), this.context.statsCollector.logLatency("video_start_sending", ov, this.context.videoDeviceInformation), this.context.videoInputAttachedTimestampMs = 0) : ov > MonitorTask.DEFAULT_TIMEOUT_FOR_START_SENDING_VIDEO_MS && (this.context.statsCollector.logVideoEvent(VideoLogEvent_1.default.SendingFailed, this.context.videoDeviceInformation), this.context.videoInputAttachedTimestampMs = 0);
  }
  videoReceiveBandwidthDidChange(tv, ev) {
    this.logger.debug(() => `receiving bandwidth changed from prev=${ev} Kbps to curr=${tv} Kbps`), this.currentVideoDownlinkBandwidthEstimationKbps = tv;
  }
  checkResubscribe(tv) {
    if (this.isResubscribeCheckPaused) {
      this.context.logger.info("Resubscribe check is paused, setting incoming client metric report as pending"), this.pendingMetricsReport = tv;
      return;
    } else
      this.pendingMetricsReport = void 0;
    const ev = tv.getObservableMetrics();
    if (!ev)
      return !1;
    const iv = ev.availableSendBandwidth || ev.availableOutgoingBitrate, ov = ev.nackCountReceivedPerSecond || ev.googNackCountReceivedPerSecond;
    let av = !1;
    this.context.videoDownlinkBandwidthPolicy.updateMetrics(tv);
    const sv = this.context.videoDownlinkBandwidthPolicy.wantsResubscribe();
    if (av = av || sv, sv && (this.context.videosToReceive = this.context.videoDownlinkBandwidthPolicy.chooseSubscriptions(), this.logger.info(`trigger resubscribe for down=${sv}; videosToReceive=[${this.context.videosToReceive.array()}]`)), this.context.videoTileController.hasStartedLocalVideoTile()) {
      this.context.videoUplinkBandwidthPolicy.updateConnectionMetric({
        uplinkKbps: iv / 1e3,
        nackCountPerSecond: ov
      });
      const lv = this.context.videoUplinkBandwidthPolicy.wantsResubscribe();
      av = av || lv, lv && (this.logger.info(`trigger resubscribe for up=${lv}; videosToReceive=[${this.context.videosToReceive.array()}]`), this.context.videoUplinkBandwidthPolicy.chooseEncodingParameters(), this.context.videoUplinkBandwidthPolicy.chooseMediaTrackConstraints());
    }
    return av;
  }
  metricsDidReceive(tv) {
    const ev = tv;
    if (!ev || (this.checkResubscribe(tv) && this.context.audioVideoController.update({ needsRenegotiation: !1 }), !this.currentAvailableStreamAvgBitrates))
      return;
    const iv = ev.streamMetricReports;
    if (!iv)
      return;
    const ov = /* @__PURE__ */ new Map(), av = /* @__PURE__ */ new Map();
    for (const lv in iv)
      iv[lv].mediaType === ClientMetricReportMediaType_1$1.default.VIDEO && iv[lv].direction === ClientMetricReportDirection_1$1.default.DOWNSTREAM && ov.set(iv[lv].streamId, iv[lv]);
    let sv = !1;
    for (const lv of this.currentAvailableStreamAvgBitrates.bitrates)
      if (ov.has(lv.sourceStreamId)) {
        const uv = ov.get(lv.sourceStreamId), cv = this.context.videoStreamIndex.attendeeIdForStreamId(lv.sourceStreamId);
        if (!cv)
          continue;
        const dv = new ClientVideoStreamReceivingReport_1.default(), hv = uv.previousMetrics.bytesReceived, pv = uv.currentMetrics.bytesReceived;
        if (!hv || !pv)
          continue;
        const yv = (pv - hv) * 8 / 1e3;
        dv.expectedAverageBitrateKbps = lv.avgBitrateBps / 1e3, dv.receivedAverageBitrateKbps = yv, dv.attendeeId = cv, yv < lv.avgBitrateBps / 1e3 * MonitorTask.DEFAULT_DOWNLINK_CALLRATE_UNDERSHOOT_FACTOR && (sv = !0), av.set(cv, dv);
      }
    sv && (this.logger.debug(() => "Downlink video streams are not receiving enough data"), this.context.audioVideoController.forEachObserver((lv) => {
      Types_1$4.Maybe.of(lv.videoNotReceivingEnoughData).map((uv) => uv.bind(lv)(Array.from(av.values())));
    }));
  }
  connectionHealthDidChange(tv) {
    var ev;
    tv.consecutiveMissedPongs === 0 && this.context.reconnectController && this.context.reconnectController.setLastActiveTimestampMs(Date.now()), this.reconnectionHealthPolicy.update(tv);
    const iv = this.reconnectionHealthPolicy.healthIfChanged();
    iv !== null && (this.logger.info(`reconnection health is now: ${iv}`), iv === 0 && this.context.audioVideoController.handleMeetingSessionStatus(new MeetingSessionStatus_1$1.default(MeetingSessionStatusCode_1$3.default.ConnectionHealthReconnect), null)), this.unusableAudioWarningHealthPolicy.update(tv);
    const ov = this.unusableAudioWarningHealthPolicy.healthIfChanged();
    if (ov !== null)
      if (this.logger.info(`unusable audio warning is now: ${ov}`), ov === 0) {
        this.context.poorConnectionCount += 1;
        const av = this.generateAudioVideoEventAttributes();
        (ev = this.context.eventController) === null || ev === void 0 || ev.publishEvent("receivingAudioDropped", av), this.context.videoTileController.haveVideoTilesWithStreams() ? this.context.audioVideoController.forEachObserver((sv) => {
          Types_1$4.Maybe.of(sv.connectionDidSuggestStopVideo).map((lv) => lv.bind(sv)());
        }) : this.context.audioVideoController.forEachObserver((sv) => {
          Types_1$4.Maybe.of(sv.connectionDidBecomePoor).map((lv) => lv.bind(sv)());
        });
      } else
        this.context.audioVideoController.forEachObserver((av) => {
          Types_1$4.Maybe.of(av.connectionDidBecomeGood).map((sv) => sv.bind(av)());
        });
  }
  handleBitrateFrame(tv) {
    let ev = 0;
    this.currentAvailableStreamAvgBitrates = tv, this.logger.debug(() => `simulcast: bitrates from server ${JSON.stringify(tv)}`);
    for (const iv of tv.bitrates)
      this.context.videosToReceive.contain(iv.sourceStreamId) && (ev += iv.avgBitrateBps);
    ev /= 1e3, this.currentVideoDownlinkBandwidthEstimationKbps * MonitorTask.DEFAULT_DOWNLINK_CALLRATE_OVERSHOOT_FACTOR < ev && (this.logger.info(`Downlink bandwidth pressure is high: estimated bandwidth ${this.currentVideoDownlinkBandwidthEstimationKbps}Kbps, required bandwidth ${ev}Kbps`), this.context.audioVideoController.forEachObserver((iv) => {
      Types_1$4.Maybe.of(iv.estimatedDownlinkBandwidthLessThanRequired).map((ov) => ov.bind(iv)(this.currentVideoDownlinkBandwidthEstimationKbps, ev));
    }));
  }
  handleSignalingClientEvent(tv) {
    var ev;
    if (tv.type === SignalingClientEventType_1$4.default.WebSocketClosed && (tv.closeCode === 4410 || tv.closeCode >= 4500 && tv.closeCode < 4600) || tv.type === SignalingClientEventType_1$4.default.WebSocketError || tv.type === SignalingClientEventType_1$4.default.WebSocketFailed) {
      if (!this.hasSignalingError) {
        const iv = this.generateAudioVideoEventAttributes();
        (ev = this.context.eventController) === null || ev === void 0 || ev.publishEvent("signalingDropped", iv), this.hasSignalingError = !0;
      }
    } else
      tv.type === SignalingClientEventType_1$4.default.WebSocketOpen && (this.hasSignalingError = !1);
    if (tv.type === SignalingClientEventType_1$4.default.ReceivedSignalFrame) {
      if (tv.message.bitrates) {
        const ov = tv.message.bitrates;
        this.context.videoStreamIndex.integrateBitratesFrame(ov), this.context.videoDownlinkBandwidthPolicy.updateIndex(this.context.videoStreamIndex), this.handleBitrateFrame(tv.message.bitrates);
      }
      const iv = MeetingSessionStatus_1$1.default.fromSignalFrame(tv.message);
      tv.message.type !== SignalingProtocol_1.SdkSignalFrame.Type.PRIMARY_MEETING_JOIN_ACK && iv.statusCode() !== MeetingSessionStatusCode_1$3.default.OK && this.context.audioVideoController.handleMeetingSessionStatus(iv, null);
    }
  }
}
MonitorTask$1.default = MonitorTask;
MonitorTask.DEFAULT_TIMEOUT_FOR_START_SENDING_VIDEO_MS = 3e4;
MonitorTask.DEFAULT_DOWNLINK_CALLRATE_OVERSHOOT_FACTOR = 1.5;
MonitorTask.DEFAULT_DOWNLINK_CALLRATE_UNDERSHOOT_FACTOR = 0.5;
var OpenSignalingConnectionTask$1 = {}, SignalingClientConnectionRequest$1 = {};
Object.defineProperty(SignalingClientConnectionRequest$1, "__esModule", { value: !0 });
class SignalingClientConnectionRequest {
  /** Creates a request with the given URL, conference id, and join token.
   *
   * @param signalingURL The URL of the signaling proxy.
   * @param joinToken The join token that will authenticate the connection.
   */
  constructor(tv, ev) {
    this.signalingURL = tv, this.joinToken = ev;
  }
  /** Gets the signaling URL representing this request.*/
  url() {
    return this.signalingURL + "?X-Chime-Control-Protocol-Version=3&X-Amzn-Chime-Send-Close-On-Error=1";
  }
  /** Gets the protocols associated with this request.*/
  protocols() {
    return ["_aws_wt_session", this.joinToken];
  }
}
SignalingClientConnectionRequest$1.default = SignalingClientConnectionRequest;
var __awaiter$A = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(OpenSignalingConnectionTask$1, "__esModule", { value: !0 });
const SignalingClientConnectionRequest_1 = SignalingClientConnectionRequest$1, SignalingClientEventType_1$3 = SignalingClientEventType, BaseTask_1$f = BaseTask$1;
class OpenSignalingConnectionTask extends BaseTask_1$f.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "OpenSignalingConnectionTask", this.taskCanceler = null;
  }
  cancel() {
    this.taskCanceler && (this.taskCanceler.cancel(), this.taskCanceler = null);
  }
  run() {
    return __awaiter$A(this, void 0, void 0, function* () {
      const tv = this.context.meetingSessionConfiguration;
      this.context.signalingClient.openConnection(new SignalingClientConnectionRequest_1.default(tv.urls.signalingURL, tv.credentials.joinToken));
      const ev = Date.now();
      try {
        yield new Promise((iv, ov) => {
          class av {
            constructor(uv) {
              this.signalingClient = uv;
            }
            cancel() {
              this.signalingClient.removeObserver(this), ov(new Error("OpenSignalingConnectionTask got canceled while waiting to open signaling connection"));
            }
            handleSignalingClientEvent(uv) {
              switch (uv.type) {
                case SignalingClientEventType_1$3.default.WebSocketOpen:
                  this.signalingClient.removeObserver(this), iv();
                  break;
                case SignalingClientEventType_1$3.default.WebSocketFailed:
                  this.signalingClient.removeObserver(this), ov(new Error("WebSocket connection failed"));
                  break;
              }
            }
          }
          const sv = new av(this.context.signalingClient);
          this.context.signalingClient.registerObserver(sv), this.taskCanceler = sv;
        });
      } catch (iv) {
        throw iv;
      } finally {
        this.context.signalingOpenDurationMs = Math.round(Date.now() - ev), this.logger.info(`Opening signaling connection took ${this.context.signalingOpenDurationMs} ms`);
      }
    });
  }
}
OpenSignalingConnectionTask$1.default = OpenSignalingConnectionTask;
var ParallelGroupTask$1 = {}, __awaiter$z = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(ParallelGroupTask$1, "__esModule", { value: !0 });
const BaseTask_1$e = BaseTask$1;
class ParallelGroupTask extends BaseTask_1$e.default {
  constructor(tv, ev, iv) {
    super(tv), this.taskName = ev, this.tasksToRunParallel = iv;
    for (const ov of iv)
      ov.setParent(this);
  }
  cancel() {
    for (const tv of this.tasksToRunParallel)
      this.logger.info(`canceling parallel group task ${this.name()} subtask ${tv.name()}`), tv.cancel();
  }
  run() {
    return __awaiter$z(this, void 0, void 0, function* () {
      const tv = [];
      for (const iv of this.tasksToRunParallel)
        this.logger.info(`parallel group task ${this.name()} running subtask ${iv.name()}`), tv.push(iv.run());
      const ev = [];
      for (let iv = 0; iv < tv.length; iv++) {
        try {
          yield tv[iv];
        } catch (ov) {
          ev.push(`task ${this.tasksToRunParallel[iv].name()} failed: ${ov.message}`);
        }
        this.logger.info(`parallel group task ${this.name()} completed subtask ${this.tasksToRunParallel[iv].name()}`);
      }
      if (ev.length > 0) {
        const iv = ev.join(", ");
        this.logAndThrow(`parallel group task ${this.name()} failed for tasks: ${iv}`);
      }
      this.logger.info(`parallel group task ${this.name()} completed`);
    });
  }
}
ParallelGroupTask$1.default = ParallelGroupTask;
var PromoteToPrimaryMeetingTask = {}, hasRequiredPromoteToPrimaryMeetingTask;
function requirePromoteToPrimaryMeetingTask() {
  if (hasRequiredPromoteToPrimaryMeetingTask)
    return PromoteToPrimaryMeetingTask;
  hasRequiredPromoteToPrimaryMeetingTask = 1;
  var rv = commonjsGlobal && commonjsGlobal.__awaiter || function(sv, lv, uv, cv) {
    function dv(hv) {
      return hv instanceof uv ? hv : new uv(function(pv) {
        pv(hv);
      });
    }
    return new (uv || (uv = Promise))(function(hv, pv) {
      function yv(Ev) {
        try {
          _v(cv.next(Ev));
        } catch (wv) {
          pv(wv);
        }
      }
      function Sv(Ev) {
        try {
          _v(cv.throw(Ev));
        } catch (wv) {
          pv(wv);
        }
      }
      function _v(Ev) {
        Ev.done ? hv(Ev.value) : dv(Ev.value).then(yv, Sv);
      }
      _v((cv = cv.apply(sv, lv || [])).next());
    });
  };
  Object.defineProperty(PromoteToPrimaryMeetingTask, "__esModule", { value: !0 });
  const tv = requireBuild(), ev = SignalingClientEventType, iv = SignalingProtocol, ov = BaseTask$1;
  let av = class extends ov.default {
    constructor(lv, uv, cv) {
      super(lv.logger), this.context = lv, this.credentials = uv, this.completionCallback = cv, this.taskName = "PromoteToPrimaryMeetingTask", this.taskCanceler = null;
    }
    cancel() {
      this.taskCanceler && (this.taskCanceler.cancel(), this.taskCanceler = null);
    }
    run() {
      return rv(this, void 0, void 0, function* () {
        this.context.signalingClient.ready() ? (this.context.signalingClient.promoteToPrimaryMeeting(this.credentials), this.context.logger.info("Sent request to join primary meeting"), yield this.receivePrimaryMeetingJoinAck()) : this.completionCallback(new tv.MeetingSessionStatus(tv.MeetingSessionStatusCode.SignalingRequestFailed));
      });
    }
    receivePrimaryMeetingJoinAck() {
      return new Promise((lv, uv) => {
        class cv {
          constructor(pv, yv, Sv) {
            this.signalingClient = pv, this.completionCallback = yv, this.logger = Sv;
          }
          cancel() {
            this.signalingClient.removeObserver(this), this.completionCallback(new tv.MeetingSessionStatus(tv.MeetingSessionStatusCode.SignalingRequestFailed)), lv();
          }
          handleSignalingClientEvent(pv) {
            pv.isConnectionTerminated() && (this.signalingClient.removeObserver(this), this.logger.info("PromoteToPrimaryMeetingTask connection terminated"), this.completionCallback(new tv.MeetingSessionStatus(tv.MeetingSessionStatusCode.SignalingRequestFailed)), lv()), pv.type === ev.default.ReceivedSignalFrame && pv.message.type === iv.SdkSignalFrame.Type.PRIMARY_MEETING_JOIN_ACK && (this.signalingClient.removeObserver(this), this.logger.info("Got a primary meeting join ACK"), this.completionCallback(tv.MeetingSessionStatus.fromSignalFrame(pv.message)), lv());
          }
        }
        const dv = new cv(this.context.signalingClient, this.completionCallback, this.context.logger);
        this.taskCanceler = dv, this.context.signalingClient.registerObserver(dv);
      });
    }
  };
  return PromoteToPrimaryMeetingTask.default = av, PromoteToPrimaryMeetingTask;
}
var ReceiveAudioInputTask$1 = {}, __awaiter$y = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(ReceiveAudioInputTask$1, "__esModule", { value: !0 });
const BaseTask_1$d = BaseTask$1;
class ReceiveAudioInputTask extends BaseTask_1$d.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "ReceiveAudioInputTask";
  }
  run() {
    var tv, ev;
    return __awaiter$y(this, void 0, void 0, function* () {
      if (!(!((ev = (tv = this.context.meetingSessionConfiguration) === null || tv === void 0 ? void 0 : tv.urls) === null || ev === void 0) && ev.audioHostURL)) {
        this.context.logger.info("No audio connection: not acquiring audio input");
        return;
      }
      if (this.context.activeAudioInput) {
        this.context.logger.info("an active audio input exists");
        return;
      }
      let iv;
      try {
        iv = yield this.context.mediaStreamBroker.acquireAudioInputStream();
      } catch {
        this.context.logger.warn("could not acquire audio input from current device");
      }
      iv ? (this.context.activeAudioInput = iv, this.context.realtimeController.realtimeSetLocalAudioInput(iv)) : this.context.logger.warn("an audio input is not available");
    });
  }
}
ReceiveAudioInputTask$1.default = ReceiveAudioInputTask;
var ReceiveTURNCredentialsTask$1 = {}, __awaiter$x = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(ReceiveTURNCredentialsTask$1, "__esModule", { value: !0 });
const MeetingSessionStatusCode_1$2 = MeetingSessionStatusCode, MeetingSessionTURNCredentials_1 = MeetingSessionTURNCredentials$1, DefaultModality_1$2 = DefaultModality$1, Versioning_1$4 = Versioning$1, BaseTask_1$c = BaseTask$1;
class ReceiveTURNCredentialsTask extends BaseTask_1$c.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "ReceiveTURNCredentialsTask", this.url = tv.meetingSessionConfiguration.urls.turnControlURL, this.meetingId = tv.meetingSessionConfiguration.meetingId, this.joinToken = tv.meetingSessionConfiguration.credentials.joinToken;
  }
  cancel() {
    if (this.cancelPromise) {
      const tv = new Error(`canceling ${this.name()}`);
      this.cancelPromise(tv), delete this.cancelPromise;
    }
  }
  run() {
    return __awaiter$x(this, void 0, void 0, function* () {
      if (this.context.turnCredentials) {
        this.context.logger.info("TURN credentials available, skipping credentials fetch");
        return;
      }
      if (this.context.logger.error("missing TURN credentials - falling back to fetch"), !this.url) {
        this.context.logger.info("TURN control url not supplied, skipping credentials fetch");
        return;
      }
      const tv = {
        method: "POST",
        mode: "cors",
        cache: "no-cache",
        credentials: "omit",
        headers: {
          "Content-Type": "application/json",
          "X-Chime-Auth-Token": "_aws_wt_session=" + new DefaultModality_1$2.default(this.joinToken).base()
        },
        redirect: "follow",
        referrer: "no-referrer",
        body: JSON.stringify({ meetingId: this.meetingId })
      };
      this.context.logger.info(`requesting TURN credentials from ${this.url}`);
      const ev = yield new Promise((iv, ov) => __awaiter$x(this, void 0, void 0, function* () {
        this.cancelPromise = (av) => {
          ov(av);
        };
        try {
          const av = yield fetch(Versioning_1$4.default.urlWithVersion(this.url), tv);
          if (this.context.logger.info("received TURN credentials"), av.status && av.status === 403) {
            ov(new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1$2.default.TURNCredentialsForbidden}`));
            return;
          }
          if (av.status && av.status === 404) {
            ov(new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1$2.default.MeetingEnded}`));
            return;
          }
          iv(yield av.json());
        } catch (av) {
          ov(av);
        } finally {
          delete this.cancelPromise;
        }
      }));
      this.context.turnCredentials = new MeetingSessionTURNCredentials_1.default(), this.context.turnCredentials.password = ev.password, this.context.turnCredentials.ttl = ev.ttl, this.context.turnCredentials.uris = ev.uris.map((iv) => this.context.meetingSessionConfiguration.urls.urlRewriter(iv)).filter((iv) => !!iv), this.context.turnCredentials.username = ev.username;
    });
  }
}
ReceiveTURNCredentialsTask$1.default = ReceiveTURNCredentialsTask;
var ReceiveVideoInputTask$1 = {}, __awaiter$w = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(ReceiveVideoInputTask$1, "__esModule", { value: !0 });
const SignalingProtocol_js_1$6 = SignalingProtocol, BaseTask_1$b = BaseTask$1;
class ReceiveVideoInputTask extends BaseTask_1$b.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "ReceiveVideoInputTask";
  }
  run() {
    return __awaiter$w(this, void 0, void 0, function* () {
      const tv = this.context.videoDuplexMode === SignalingProtocol_js_1$6.SdkStreamServiceType.RX || this.context.videoDuplexMode === SignalingProtocol_js_1$6.SdkStreamServiceType.DUPLEX;
      if (this.context.videoTileController.hasStartedLocalVideoTile() ? this.context.videoDuplexMode = tv ? SignalingProtocol_js_1$6.SdkStreamServiceType.DUPLEX : SignalingProtocol_js_1$6.SdkStreamServiceType.TX : this.context.videoDuplexMode = tv ? SignalingProtocol_js_1$6.SdkStreamServiceType.RX : 0, this.context.videoCaptureAndEncodeParameter = this.context.videoUplinkBandwidthPolicy.chooseCaptureAndEncodeParameters(), !this.context.videoTileController.hasStartedLocalVideoTile()) {
        this.context.logger.info("has not started local video tile"), this.context.activeVideoInput && (this.stopVideoInput(), this.context.videoStreamIndex.integrateUplinkPolicyDecision([]));
        return;
      }
      const ev = this.context.videoTileController.getLocalVideoTile();
      let iv = null;
      try {
        iv = yield this.context.mediaStreamBroker.acquireVideoInputStream();
      } catch {
        this.context.logger.warn("could not acquire video input from current device");
      }
      if (this.context.enableSimulcast) {
        const ov = this.context.videoUplinkBandwidthPolicy.chooseEncodingParameters();
        this.context.videoStreamIndex.integrateUplinkPolicyDecision(Array.from(ov.values()));
      }
      if (this.context.activeVideoInput = iv, iv) {
        const ov = iv.getVideoTracks();
        if (!ov || ov.length === 0)
          return;
        const av = this.context.meetingSessionConfiguration.credentials.attendeeId, sv = ov[0].getSettings();
        if (this.context.enableSimulcast) {
          const uv = this.context.videoUplinkBandwidthPolicy.chooseMediaTrackConstraints();
          this.context.logger.info(`simulcast: choose constraint ${JSON.stringify(uv)}`);
          try {
            yield ov[0].applyConstraints(uv);
          } catch {
            this.context.logger.info("simulcast: pass video without more constraint");
          }
        }
        const lv = this.context.audioVideoController.configuration.credentials.externalUserId;
        ev.bindVideoStream(av, !0, iv, sv.width, sv.height, null, lv);
        for (let uv = 0; uv < ov.length; uv++) {
          const cv = ov[uv];
          this.logger.info(`using video device label=${cv.label} id=${cv.id}`), this.context.videoDeviceInformation.current_camera_name = cv.label, this.context.videoDeviceInformation.current_camera_id = cv.id;
        }
      }
    });
  }
  stopVideoInput() {
    this.context.mediaStreamBroker.releaseMediaStream(this.context.activeVideoInput), this.context.activeVideoInput = null;
  }
}
ReceiveVideoInputTask$1.default = ReceiveVideoInputTask;
var ReceiveVideoStreamIndexTask$1 = {}, __awaiter$v = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(ReceiveVideoStreamIndexTask$1, "__esModule", { value: !0 });
const MeetingSessionVideoAvailability_1 = MeetingSessionVideoAvailability$1, DefaultModality_1$1 = DefaultModality$1, SignalingClientEventType_1$2 = SignalingClientEventType, SignalingProtocol_js_1$5 = SignalingProtocol, Types_1$3 = Types, BaseTask_1$a = BaseTask$1;
class ReceiveVideoStreamIndexTask extends BaseTask_1$a.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "ReceiveVideoStreamIndexTask", this.isIngestionPaused = !1, this.pendingIndex = null;
  }
  removeObserver() {
    this.context.signalingClient.removeObserver(this);
  }
  run() {
    return __awaiter$v(this, void 0, void 0, function* () {
      this.handleIndexFrame(this.context.indexFrame), this.context.signalingClient.registerObserver(this), this.context.removableObservers.push(this);
    });
  }
  handleSignalingClientEvent(tv) {
    if (tv.type !== SignalingClientEventType_1$2.default.ReceivedSignalFrame || tv.message.type !== SignalingProtocol_js_1$5.SdkSignalFrame.Type.INDEX)
      return;
    const ev = tv.message.index;
    this.context.logger.info(`received new index ${JSON.stringify(ev)}`), this.handleIndexFrame(ev);
  }
  pauseIngestion() {
    this.isIngestionPaused = !0;
  }
  resumeIngestion() {
    this.isIngestionPaused && (this.isIngestionPaused = !1, this.pendingIndex && (this.context.logger.info("Resuming index ingestion with pending index"), this.handleIndexFrame(this.pendingIndex)));
  }
  handleIndexFrame(tv) {
    if (!tv)
      return;
    if (this.isIngestionPaused) {
      this.context.logger.info("Index ingestion is paused, setting most recent index as pending"), this.pendingIndex = tv;
      return;
    } else
      this.pendingIndex = null;
    const ev = this.context.audioVideoController.configuration.credentials.attendeeId;
    tv.sources = tv.sources.filter((uv) => {
      const cv = new DefaultModality_1$1.default(uv.attendeeId);
      return !(cv.base() === ev && cv.hasModality(DefaultModality_1$1.default.MODALITY_CONTENT));
    });
    const { videoStreamIndex: iv, videoDownlinkBandwidthPolicy: ov, videoUplinkBandwidthPolicy: av } = this.context, sv = iv.allVideoSendingSourcesExcludingSelf(ev);
    iv.integrateIndexFrame(tv), ov.updateIndex(iv), av.updateIndex(iv), this.resubscribe(ov, av), this.updateVideoAvailability(tv), this.handleIndexVideosPausedAtSource();
    const lv = iv.allVideoSendingSourcesExcludingSelf(ev);
    this.areVideoSourcesEqual(sv, lv) || this.context.audioVideoController.forEachObserver((uv) => {
      Types_1$3.Maybe.of(uv.remoteVideoSourcesDidChange).map((cv) => cv.bind(uv)(lv));
    });
  }
  areVideoSourcesEqual(tv, ev) {
    if (tv.length !== ev.length)
      return !1;
    const iv = (sv, lv) => sv.attendee.attendeeId.localeCompare(lv.attendee.attendeeId), ov = [...tv].sort(iv), av = [...ev].sort(iv);
    for (let sv = 0; sv < ov.length; sv++)
      if (ov[sv].attendee.attendeeId !== av[sv].attendee.attendeeId)
        return !1;
    return !0;
  }
  resubscribe(tv, ev) {
    const iv = tv.wantsResubscribe(), ov = (this.context.videoDuplexMode === SignalingProtocol_js_1$5.SdkStreamServiceType.TX || this.context.videoDuplexMode === SignalingProtocol_js_1$5.SdkStreamServiceType.DUPLEX) && ev.wantsResubscribe(), av = iv || ov;
    if (this.logger.info(`should resubscribe: ${av} (downlink: ${iv} uplink: ${ov})`), !av)
      return;
    const sv = tv.chooseSubscriptions();
    this.context.videosToReceive = sv.truncate(this.context.videoSubscriptionLimit), sv.size() > this.context.videosToReceive.size() && this.logger.warn(`Video receive limit exceeded. Limiting the videos to ${this.context.videosToReceive.size()}. Please consider using AllHighestVideoBandwidthPolicy or VideoPriorityBasedPolicy along with chooseRemoteVideoSources api to select the video sources to be displayed.`), this.context.videoCaptureAndEncodeParameter = ev.chooseCaptureAndEncodeParameters(), this.logger.info(`trigger resubscribe for up=${ov} down=${iv}; videosToReceive=[${this.context.videosToReceive.array()}] captureParams=${JSON.stringify(this.context.videoCaptureAndEncodeParameter)}`), this.context.audioVideoController.update({ needsRenegotiation: !1 });
  }
  updateVideoAvailability(tv) {
    if (!this.context.videosToReceive) {
      this.logger.error("videosToReceive must be set in the meeting context.");
      return;
    }
    const ev = new MeetingSessionVideoAvailability_1.default();
    ev.remoteVideoAvailable = !this.context.videosToReceive.empty(), ev.canStartLocalVideo = !tv.atCapacity, (!this.context.lastKnownVideoAvailability || !this.context.lastKnownVideoAvailability.equal(ev)) && (this.context.lastKnownVideoAvailability = ev.clone(), this.context.audioVideoController.forEachObserver((iv) => {
      Types_1$3.Maybe.of(iv.videoAvailabilityDidChange).map((ov) => ov.bind(iv)(ev.clone()));
    }));
  }
  handleIndexVideosPausedAtSource() {
    const tv = this.context.videoStreamIndex.streamsPausedAtSource();
    for (const ev of this.context.videoTileController.getAllVideoTiles()) {
      const iv = ev.state();
      tv.contain(iv.streamId) ? ev.markPoorConnection() && this.logger.info(`marks the tile ${iv.tileId} as having a poor connection`) : ev.unmarkPoorConnection() && this.logger.info(`unmarks the tile ${iv.tileId} as having a poor connection`);
    }
  }
}
ReceiveVideoStreamIndexTask$1.default = ReceiveVideoStreamIndexTask;
var ReleaseMediaStreamsTask$1 = {}, __awaiter$u = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(ReleaseMediaStreamsTask$1, "__esModule", { value: !0 });
const BaseTask_1$9 = BaseTask$1;
class ReleaseMediaStreamsTask extends BaseTask_1$9.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "ReleaseMediaStreamsTask";
  }
  run() {
    return __awaiter$u(this, void 0, void 0, function* () {
      if (this.context.mediaStreamBroker)
        try {
          this.context.mediaStreamBroker.releaseMediaStream(this.context.activeAudioInput), this.context.activeAudioInput = null, this.context.mediaStreamBroker.releaseMediaStream(this.context.activeVideoInput), this.context.activeVideoInput = null, this.context.realtimeController.realtimeSetLocalAudioInput(null);
        } catch (tv) {
          this.context.logger.error(`Failed to release media streams: ${tv}`);
        }
    });
  }
}
ReleaseMediaStreamsTask$1.default = ReleaseMediaStreamsTask;
var SendAndReceiveDataMessagesTask$1 = {}, __awaiter$t = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(SendAndReceiveDataMessagesTask$1, "__esModule", { value: !0 });
const DataMessage_1 = DataMessage$1, SignalingClientEventType_1$1 = SignalingClientEventType, SignalingProtocol_js_1$4 = SignalingProtocol, BaseTask_1$8 = BaseTask$1;
class SendAndReceiveDataMessagesTask extends BaseTask_1$8.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "SendAndReceiveDataMessagesTask", this.sendDataMessageHandler = (ev, iv, ov) => {
      if (this.context.signalingClient.ready()) {
        let av;
        iv instanceof Uint8Array ? av = iv : typeof iv == "string" ? av = new TextEncoder().encode(iv) : av = new TextEncoder().encode(JSON.stringify(iv)), this.validateDataMessage(ev, av, ov);
        const sv = SignalingProtocol_js_1$4.SdkDataMessagePayload.create();
        sv.topic = ev, sv.lifetimeMs = ov, sv.data = av;
        const lv = SignalingProtocol_js_1$4.SdkDataMessageFrame.create();
        lv.messages = [sv], this.context.signalingClient.sendDataMessage(lv);
      } else
        this.context.logger.error("Signaling client is not ready");
    };
  }
  run() {
    return __awaiter$t(this, void 0, void 0, function* () {
      this.context.removableObservers.push(this), this.context.signalingClient.registerObserver(this), this.context.realtimeController.realtimeSubscribeToSendDataMessage(this.sendDataMessageHandler);
    });
  }
  removeObserver() {
    this.context.realtimeController.realtimeUnsubscribeFromSendDataMessage(this.sendDataMessageHandler), this.context.signalingClient.removeObserver(this);
  }
  handleSignalingClientEvent(tv) {
    if (tv.type === SignalingClientEventType_1$1.default.ReceivedSignalFrame && tv.message.type === SignalingProtocol_js_1$4.SdkSignalFrame.Type.DATA_MESSAGE)
      for (const ev of tv.message.dataMessage.messages) {
        const iv = new DataMessage_1.default(ev.ingestTimeNs / 1e6, ev.topic, ev.data, ev.senderAttendeeId, ev.senderExternalUserId, ev.ingestTimeNs === 0);
        this.context.realtimeController.realtimeReceiveDataMessage(iv);
      }
  }
  validateDataMessage(tv, ev, iv) {
    if (!SendAndReceiveDataMessagesTask.TOPIC_REGEX.test(tv))
      throw new Error("Invalid topic");
    if (ev.length > SendAndReceiveDataMessagesTask.DATA_SIZE)
      throw new Error("Data size has to be less than 2048 bytes");
    if (iv && iv < 0)
      throw new Error("The life time of the message has to be non negative");
  }
}
SendAndReceiveDataMessagesTask$1.default = SendAndReceiveDataMessagesTask;
SendAndReceiveDataMessagesTask.TOPIC_REGEX = new RegExp(/^[a-zA-Z0-9_-]{1,36}$/);
SendAndReceiveDataMessagesTask.DATA_SIZE = 2048;
var SerialGroupTask$1 = {}, __awaiter$s = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(SerialGroupTask$1, "__esModule", { value: !0 });
const BaseTask_1$7 = BaseTask$1, TaskStatus_1 = TaskStatus$1;
class SerialGroupTask extends BaseTask_1$7.default {
  constructor(tv, ev, iv) {
    super(tv), this.taskName = ev, this.tasksToRunSerially = iv, this.currentTask = null;
    for (const ov of iv)
      ov.setParent(this);
  }
  cancel() {
    this.currentTask && (this.logger.info(`canceling serial group task ${this.name()} subtask ${this.currentTask.name()}`), this.currentTask.cancel());
  }
  run() {
    return __awaiter$s(this, void 0, void 0, function* () {
      for (const tv of this.tasksToRunSerially) {
        this.getStatus() === TaskStatus_1.default.CANCELED && this.logAndThrow(`serial group task ${this.name()} was canceled`);
        try {
          this.logger.info(`serial group task ${this.name()} running subtask ${tv.name()}`), this.currentTask = tv, yield tv.run(), this.logger.info(`serial group task ${this.name()} completed subtask ${tv.name()}`);
        } catch (ev) {
          this.logAndThrow(`serial group task ${this.name()} was canceled due to subtask ${this.currentTask.name()} error: ${ev.message}`);
        } finally {
          this.currentTask = null;
        }
      }
      this.logger.info(`serial group task ${this.name()} completed`);
    });
  }
}
SerialGroupTask$1.default = SerialGroupTask;
var SetLocalDescriptionTask$1 = {}, __awaiter$r = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(SetLocalDescriptionTask$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1$4 = DefaultBrowserBehavior$1, DefaultSDP_1$2 = DefaultSDP$1, BaseTask_1$6 = BaseTask$1;
class SetLocalDescriptionTask extends BaseTask_1$6.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "SetLocalDescriptionTask";
  }
  cancel() {
    if (this.cancelPromise) {
      const tv = new Error(`canceling ${this.name()}`);
      this.cancelPromise(tv), delete this.cancelPromise;
    }
  }
  run() {
    return __awaiter$r(this, void 0, void 0, function* () {
      const tv = this.context.peer;
      let iv = this.context.sdpOfferInit.sdp;
      new DefaultBrowserBehavior_1$4.default().requiresDisablingH264Encoding() && (iv = new DefaultSDP_1$2.default(iv).removeH264SupportFromSendSection().sdp), this.context.audioProfile && (iv = new DefaultSDP_1$2.default(iv).withAudioMaxAverageBitrate(this.context.audioProfile.audioBitrateBps).sdp, this.context.audioProfile.isStereo() && (iv = new DefaultSDP_1$2.default(iv).withStereoAudio().sdp)), this.logger.debug(() => `local description is >>>${iv}<<<`);
      const ov = {
        type: "offer",
        sdp: iv,
        toJSON: null
      };
      yield new Promise((av, sv) => __awaiter$r(this, void 0, void 0, function* () {
        this.cancelPromise = (lv) => {
          sv(lv);
        };
        try {
          yield tv.setLocalDescription(ov), av();
        } catch (lv) {
          sv(lv);
        } finally {
          delete this.cancelPromise;
        }
      })), this.context.logger.info("set local description");
    });
  }
}
SetLocalDescriptionTask$1.default = SetLocalDescriptionTask;
var SetRemoteDescriptionTask$1 = {}, __awaiter$q = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(SetRemoteDescriptionTask$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1$3 = DefaultBrowserBehavior$1, DefaultSDP_1$1 = DefaultSDP$1, BaseTask_1$5 = BaseTask$1;
class SetRemoteDescriptionTask extends BaseTask_1$5.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "SetRemoteDescriptionTask";
  }
  cancel() {
    this.cancelICEPromise && this.cancelICEPromise();
  }
  run() {
    return __awaiter$q(this, void 0, void 0, function* () {
      this.context.peer || this.logAndThrow("session does not have peer connection; bypass set remote description");
      let ev = this.context.sdpAnswer;
      if (ev = new DefaultSDP_1$1.default(ev).withoutServerReflexiveCandidates().sdp, this.context.audioProfile && (ev = new DefaultSDP_1$1.default(ev).withAudioMaxAverageBitrate(this.context.audioProfile.audioBitrateBps).sdp, this.context.audioProfile.isStereo() && (ev = new DefaultSDP_1$1.default(ev).withStereoAudio().sdp)), !this.context.browserBehavior.requiresUnifiedPlan() && (this.logger.info("checking for no videos (plan-b)"), this.context.videosToReceive.empty() && this.context.peer.remoteDescription)) {
        this.logger.info("have no videos and have remote description (plan-b)");
        const ov = this.context.peer.localDescription.sdp, av = ev;
        let sv = av;
        const lv = new DefaultSDP_1$1.default(ov);
        if (lv.hasVideo()) {
          this.logger.info(`offer has video (plan-b): >>>${lv.sdp}<<<`);
          const uv = new DefaultSDP_1$1.default(av);
          this.logger.info(`existing answer (plan-b): >>>${uv.sdp}<<<`), uv.hasVideo() || (this.logger.info(`copying inactive video from offer into answer (plan-b); sdp answer before is >>>${av}<<<`), sv = uv.copyVideo(ov).sdp);
        }
        ev = sv;
      }
      new DefaultBrowserBehavior_1$3.default().requiresSortCodecPreferencesForSdpAnswer() && (ev = new DefaultSDP_1$1.default(ev).preferH264IfExists().sdp), this.logger.info(`processed remote description is >>>${ev}<<<`);
      const iv = {
        type: "answer",
        sdp: ev,
        toJSON: null
      };
      try {
        yield this.createICEConnectionCompletedPromise(iv);
      } catch (ov) {
        throw ov;
      }
    });
  }
  createICEConnectionCompletedPromise(tv) {
    return new Promise((ev, iv) => __awaiter$q(this, void 0, void 0, function* () {
      const ov = () => {
        (this.context.peer.iceConnectionState === "connected" || this.context.peer.iceConnectionState === "completed") && (this.context.peer.removeEventListener("iceconnectionstatechange", ov), ev());
      };
      this.cancelICEPromise = () => {
        this.context.peer && this.context.peer.removeEventListener("iceconnectionstatechange", ov), iv(new Error(`${this.name()} got canceled while waiting for the ICE connection state`));
      }, this.context.peer.addEventListener("iceconnectionstatechange", ov);
      try {
        yield this.context.peer.setRemoteDescription(tv), this.logger.info("set remote description, waiting for ICE connection"), ov();
      } catch (av) {
        iv(av);
      }
    }));
  }
}
SetRemoteDescriptionTask$1.default = SetRemoteDescriptionTask;
var SubscribeAndReceiveSubscribeAckTask$1 = {}, ZLIBTextCompressor$1 = {}, pako$1 = {}, deflate$4 = {}, deflate$3 = {}, trees = {};
const Z_FIXED$1 = 4, Z_BINARY = 0, Z_TEXT = 1, Z_UNKNOWN$1 = 2;
function zero$1(rv) {
  let tv = rv.length;
  for (; --tv >= 0; )
    rv[tv] = 0;
}
const STORED_BLOCK = 0, STATIC_TREES = 1, DYN_TREES = 2, MIN_MATCH$1 = 3, MAX_MATCH$1 = 258, LENGTH_CODES$1 = 29, LITERALS$1 = 256, L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1, D_CODES$1 = 30, BL_CODES$1 = 19, HEAP_SIZE$1 = 2 * L_CODES$1 + 1, MAX_BITS$1 = 15, Buf_size = 16, MAX_BL_BITS = 7, END_BLOCK = 256, REP_3_6 = 16, REPZ_3_10 = 17, REPZ_11_138 = 18, extra_lbits = (
  /* extra bits for each length code */
  new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0])
), extra_dbits = (
  /* extra bits for each distance code */
  new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13])
), extra_blbits = (
  /* extra bits for each bit length code */
  new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7])
), bl_order = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), DIST_CODE_LEN = 512, static_ltree = new Array((L_CODES$1 + 2) * 2);
zero$1(static_ltree);
const static_dtree = new Array(D_CODES$1 * 2);
zero$1(static_dtree);
const _dist_code = new Array(DIST_CODE_LEN);
zero$1(_dist_code);
const _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);
zero$1(_length_code);
const base_length = new Array(LENGTH_CODES$1);
zero$1(base_length);
const base_dist = new Array(D_CODES$1);
zero$1(base_dist);
function StaticTreeDesc(rv, tv, ev, iv, ov) {
  this.static_tree = rv, this.extra_bits = tv, this.extra_base = ev, this.elems = iv, this.max_length = ov, this.has_stree = rv && rv.length;
}
let static_l_desc, static_d_desc, static_bl_desc;
function TreeDesc(rv, tv) {
  this.dyn_tree = rv, this.max_code = 0, this.stat_desc = tv;
}
const d_code = (rv) => rv < 256 ? _dist_code[rv] : _dist_code[256 + (rv >>> 7)], put_short = (rv, tv) => {
  rv.pending_buf[rv.pending++] = tv & 255, rv.pending_buf[rv.pending++] = tv >>> 8 & 255;
}, send_bits = (rv, tv, ev) => {
  rv.bi_valid > Buf_size - ev ? (rv.bi_buf |= tv << rv.bi_valid & 65535, put_short(rv, rv.bi_buf), rv.bi_buf = tv >> Buf_size - rv.bi_valid, rv.bi_valid += ev - Buf_size) : (rv.bi_buf |= tv << rv.bi_valid & 65535, rv.bi_valid += ev);
}, send_code = (rv, tv, ev) => {
  send_bits(
    rv,
    ev[tv * 2],
    ev[tv * 2 + 1]
    /*.Len*/
  );
}, bi_reverse = (rv, tv) => {
  let ev = 0;
  do
    ev |= rv & 1, rv >>>= 1, ev <<= 1;
  while (--tv > 0);
  return ev >>> 1;
}, bi_flush = (rv) => {
  rv.bi_valid === 16 ? (put_short(rv, rv.bi_buf), rv.bi_buf = 0, rv.bi_valid = 0) : rv.bi_valid >= 8 && (rv.pending_buf[rv.pending++] = rv.bi_buf & 255, rv.bi_buf >>= 8, rv.bi_valid -= 8);
}, gen_bitlen = (rv, tv) => {
  const ev = tv.dyn_tree, iv = tv.max_code, ov = tv.stat_desc.static_tree, av = tv.stat_desc.has_stree, sv = tv.stat_desc.extra_bits, lv = tv.stat_desc.extra_base, uv = tv.stat_desc.max_length;
  let cv, dv, hv, pv, yv, Sv, _v = 0;
  for (pv = 0; pv <= MAX_BITS$1; pv++)
    rv.bl_count[pv] = 0;
  for (ev[rv.heap[rv.heap_max] * 2 + 1] = 0, cv = rv.heap_max + 1; cv < HEAP_SIZE$1; cv++)
    dv = rv.heap[cv], pv = ev[ev[dv * 2 + 1] * 2 + 1] + 1, pv > uv && (pv = uv, _v++), ev[dv * 2 + 1] = pv, !(dv > iv) && (rv.bl_count[pv]++, yv = 0, dv >= lv && (yv = sv[dv - lv]), Sv = ev[dv * 2], rv.opt_len += Sv * (pv + yv), av && (rv.static_len += Sv * (ov[dv * 2 + 1] + yv)));
  if (_v !== 0) {
    do {
      for (pv = uv - 1; rv.bl_count[pv] === 0; )
        pv--;
      rv.bl_count[pv]--, rv.bl_count[pv + 1] += 2, rv.bl_count[uv]--, _v -= 2;
    } while (_v > 0);
    for (pv = uv; pv !== 0; pv--)
      for (dv = rv.bl_count[pv]; dv !== 0; )
        hv = rv.heap[--cv], !(hv > iv) && (ev[hv * 2 + 1] !== pv && (rv.opt_len += (pv - ev[hv * 2 + 1]) * ev[hv * 2], ev[hv * 2 + 1] = pv), dv--);
  }
}, gen_codes = (rv, tv, ev) => {
  const iv = new Array(MAX_BITS$1 + 1);
  let ov = 0, av, sv;
  for (av = 1; av <= MAX_BITS$1; av++)
    ov = ov + ev[av - 1] << 1, iv[av] = ov;
  for (sv = 0; sv <= tv; sv++) {
    let lv = rv[sv * 2 + 1];
    lv !== 0 && (rv[sv * 2] = bi_reverse(iv[lv]++, lv));
  }
}, tr_static_init = () => {
  let rv, tv, ev, iv, ov;
  const av = new Array(MAX_BITS$1 + 1);
  for (ev = 0, iv = 0; iv < LENGTH_CODES$1 - 1; iv++)
    for (base_length[iv] = ev, rv = 0; rv < 1 << extra_lbits[iv]; rv++)
      _length_code[ev++] = iv;
  for (_length_code[ev - 1] = iv, ov = 0, iv = 0; iv < 16; iv++)
    for (base_dist[iv] = ov, rv = 0; rv < 1 << extra_dbits[iv]; rv++)
      _dist_code[ov++] = iv;
  for (ov >>= 7; iv < D_CODES$1; iv++)
    for (base_dist[iv] = ov << 7, rv = 0; rv < 1 << extra_dbits[iv] - 7; rv++)
      _dist_code[256 + ov++] = iv;
  for (tv = 0; tv <= MAX_BITS$1; tv++)
    av[tv] = 0;
  for (rv = 0; rv <= 143; )
    static_ltree[rv * 2 + 1] = 8, rv++, av[8]++;
  for (; rv <= 255; )
    static_ltree[rv * 2 + 1] = 9, rv++, av[9]++;
  for (; rv <= 279; )
    static_ltree[rv * 2 + 1] = 7, rv++, av[7]++;
  for (; rv <= 287; )
    static_ltree[rv * 2 + 1] = 8, rv++, av[8]++;
  for (gen_codes(static_ltree, L_CODES$1 + 1, av), rv = 0; rv < D_CODES$1; rv++)
    static_dtree[rv * 2 + 1] = 5, static_dtree[rv * 2] = bi_reverse(rv, 5);
  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1), static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1), static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);
}, init_block = (rv) => {
  let tv;
  for (tv = 0; tv < L_CODES$1; tv++)
    rv.dyn_ltree[tv * 2] = 0;
  for (tv = 0; tv < D_CODES$1; tv++)
    rv.dyn_dtree[tv * 2] = 0;
  for (tv = 0; tv < BL_CODES$1; tv++)
    rv.bl_tree[tv * 2] = 0;
  rv.dyn_ltree[END_BLOCK * 2] = 1, rv.opt_len = rv.static_len = 0, rv.sym_next = rv.matches = 0;
}, bi_windup = (rv) => {
  rv.bi_valid > 8 ? put_short(rv, rv.bi_buf) : rv.bi_valid > 0 && (rv.pending_buf[rv.pending++] = rv.bi_buf), rv.bi_buf = 0, rv.bi_valid = 0;
}, smaller = (rv, tv, ev, iv) => {
  const ov = tv * 2, av = ev * 2;
  return rv[ov] < rv[av] || rv[ov] === rv[av] && iv[tv] <= iv[ev];
}, pqdownheap = (rv, tv, ev) => {
  const iv = rv.heap[ev];
  let ov = ev << 1;
  for (; ov <= rv.heap_len && (ov < rv.heap_len && smaller(tv, rv.heap[ov + 1], rv.heap[ov], rv.depth) && ov++, !smaller(tv, iv, rv.heap[ov], rv.depth)); )
    rv.heap[ev] = rv.heap[ov], ev = ov, ov <<= 1;
  rv.heap[ev] = iv;
}, compress_block = (rv, tv, ev) => {
  let iv, ov, av = 0, sv, lv;
  if (rv.sym_next !== 0)
    do
      iv = rv.pending_buf[rv.sym_buf + av++] & 255, iv += (rv.pending_buf[rv.sym_buf + av++] & 255) << 8, ov = rv.pending_buf[rv.sym_buf + av++], iv === 0 ? send_code(rv, ov, tv) : (sv = _length_code[ov], send_code(rv, sv + LITERALS$1 + 1, tv), lv = extra_lbits[sv], lv !== 0 && (ov -= base_length[sv], send_bits(rv, ov, lv)), iv--, sv = d_code(iv), send_code(rv, sv, ev), lv = extra_dbits[sv], lv !== 0 && (iv -= base_dist[sv], send_bits(rv, iv, lv)));
    while (av < rv.sym_next);
  send_code(rv, END_BLOCK, tv);
}, build_tree = (rv, tv) => {
  const ev = tv.dyn_tree, iv = tv.stat_desc.static_tree, ov = tv.stat_desc.has_stree, av = tv.stat_desc.elems;
  let sv, lv, uv = -1, cv;
  for (rv.heap_len = 0, rv.heap_max = HEAP_SIZE$1, sv = 0; sv < av; sv++)
    ev[sv * 2] !== 0 ? (rv.heap[++rv.heap_len] = uv = sv, rv.depth[sv] = 0) : ev[sv * 2 + 1] = 0;
  for (; rv.heap_len < 2; )
    cv = rv.heap[++rv.heap_len] = uv < 2 ? ++uv : 0, ev[cv * 2] = 1, rv.depth[cv] = 0, rv.opt_len--, ov && (rv.static_len -= iv[cv * 2 + 1]);
  for (tv.max_code = uv, sv = rv.heap_len >> 1; sv >= 1; sv--)
    pqdownheap(rv, ev, sv);
  cv = av;
  do
    sv = rv.heap[
      1
      /*SMALLEST*/
    ], rv.heap[
      1
      /*SMALLEST*/
    ] = rv.heap[rv.heap_len--], pqdownheap(
      rv,
      ev,
      1
      /*SMALLEST*/
    ), lv = rv.heap[
      1
      /*SMALLEST*/
    ], rv.heap[--rv.heap_max] = sv, rv.heap[--rv.heap_max] = lv, ev[cv * 2] = ev[sv * 2] + ev[lv * 2], rv.depth[cv] = (rv.depth[sv] >= rv.depth[lv] ? rv.depth[sv] : rv.depth[lv]) + 1, ev[sv * 2 + 1] = ev[lv * 2 + 1] = cv, rv.heap[
      1
      /*SMALLEST*/
    ] = cv++, pqdownheap(
      rv,
      ev,
      1
      /*SMALLEST*/
    );
  while (rv.heap_len >= 2);
  rv.heap[--rv.heap_max] = rv.heap[
    1
    /*SMALLEST*/
  ], gen_bitlen(rv, tv), gen_codes(ev, uv, rv.bl_count);
}, scan_tree = (rv, tv, ev) => {
  let iv, ov = -1, av, sv = tv[0 * 2 + 1], lv = 0, uv = 7, cv = 4;
  for (sv === 0 && (uv = 138, cv = 3), tv[(ev + 1) * 2 + 1] = 65535, iv = 0; iv <= ev; iv++)
    av = sv, sv = tv[(iv + 1) * 2 + 1], !(++lv < uv && av === sv) && (lv < cv ? rv.bl_tree[av * 2] += lv : av !== 0 ? (av !== ov && rv.bl_tree[av * 2]++, rv.bl_tree[REP_3_6 * 2]++) : lv <= 10 ? rv.bl_tree[REPZ_3_10 * 2]++ : rv.bl_tree[REPZ_11_138 * 2]++, lv = 0, ov = av, sv === 0 ? (uv = 138, cv = 3) : av === sv ? (uv = 6, cv = 3) : (uv = 7, cv = 4));
}, send_tree = (rv, tv, ev) => {
  let iv, ov = -1, av, sv = tv[0 * 2 + 1], lv = 0, uv = 7, cv = 4;
  for (sv === 0 && (uv = 138, cv = 3), iv = 0; iv <= ev; iv++)
    if (av = sv, sv = tv[(iv + 1) * 2 + 1], !(++lv < uv && av === sv)) {
      if (lv < cv)
        do
          send_code(rv, av, rv.bl_tree);
        while (--lv !== 0);
      else
        av !== 0 ? (av !== ov && (send_code(rv, av, rv.bl_tree), lv--), send_code(rv, REP_3_6, rv.bl_tree), send_bits(rv, lv - 3, 2)) : lv <= 10 ? (send_code(rv, REPZ_3_10, rv.bl_tree), send_bits(rv, lv - 3, 3)) : (send_code(rv, REPZ_11_138, rv.bl_tree), send_bits(rv, lv - 11, 7));
      lv = 0, ov = av, sv === 0 ? (uv = 138, cv = 3) : av === sv ? (uv = 6, cv = 3) : (uv = 7, cv = 4);
    }
}, build_bl_tree = (rv) => {
  let tv;
  for (scan_tree(rv, rv.dyn_ltree, rv.l_desc.max_code), scan_tree(rv, rv.dyn_dtree, rv.d_desc.max_code), build_tree(rv, rv.bl_desc), tv = BL_CODES$1 - 1; tv >= 3 && rv.bl_tree[bl_order[tv] * 2 + 1] === 0; tv--)
    ;
  return rv.opt_len += 3 * (tv + 1) + 5 + 5 + 4, tv;
}, send_all_trees = (rv, tv, ev, iv) => {
  let ov;
  for (send_bits(rv, tv - 257, 5), send_bits(rv, ev - 1, 5), send_bits(rv, iv - 4, 4), ov = 0; ov < iv; ov++)
    send_bits(rv, rv.bl_tree[bl_order[ov] * 2 + 1], 3);
  send_tree(rv, rv.dyn_ltree, tv - 1), send_tree(rv, rv.dyn_dtree, ev - 1);
}, detect_data_type = (rv) => {
  let tv = 4093624447, ev;
  for (ev = 0; ev <= 31; ev++, tv >>>= 1)
    if (tv & 1 && rv.dyn_ltree[ev * 2] !== 0)
      return Z_BINARY;
  if (rv.dyn_ltree[9 * 2] !== 0 || rv.dyn_ltree[10 * 2] !== 0 || rv.dyn_ltree[13 * 2] !== 0)
    return Z_TEXT;
  for (ev = 32; ev < LITERALS$1; ev++)
    if (rv.dyn_ltree[ev * 2] !== 0)
      return Z_TEXT;
  return Z_BINARY;
};
let static_init_done = !1;
const _tr_init$1 = (rv) => {
  static_init_done || (tr_static_init(), static_init_done = !0), rv.l_desc = new TreeDesc(rv.dyn_ltree, static_l_desc), rv.d_desc = new TreeDesc(rv.dyn_dtree, static_d_desc), rv.bl_desc = new TreeDesc(rv.bl_tree, static_bl_desc), rv.bi_buf = 0, rv.bi_valid = 0, init_block(rv);
}, _tr_stored_block$1 = (rv, tv, ev, iv) => {
  send_bits(rv, (STORED_BLOCK << 1) + (iv ? 1 : 0), 3), bi_windup(rv), put_short(rv, ev), put_short(rv, ~ev), ev && rv.pending_buf.set(rv.window.subarray(tv, tv + ev), rv.pending), rv.pending += ev;
}, _tr_align$1 = (rv) => {
  send_bits(rv, STATIC_TREES << 1, 3), send_code(rv, END_BLOCK, static_ltree), bi_flush(rv);
}, _tr_flush_block$1 = (rv, tv, ev, iv) => {
  let ov, av, sv = 0;
  rv.level > 0 ? (rv.strm.data_type === Z_UNKNOWN$1 && (rv.strm.data_type = detect_data_type(rv)), build_tree(rv, rv.l_desc), build_tree(rv, rv.d_desc), sv = build_bl_tree(rv), ov = rv.opt_len + 3 + 7 >>> 3, av = rv.static_len + 3 + 7 >>> 3, av <= ov && (ov = av)) : ov = av = ev + 5, ev + 4 <= ov && tv !== -1 ? _tr_stored_block$1(rv, tv, ev, iv) : rv.strategy === Z_FIXED$1 || av === ov ? (send_bits(rv, (STATIC_TREES << 1) + (iv ? 1 : 0), 3), compress_block(rv, static_ltree, static_dtree)) : (send_bits(rv, (DYN_TREES << 1) + (iv ? 1 : 0), 3), send_all_trees(rv, rv.l_desc.max_code + 1, rv.d_desc.max_code + 1, sv + 1), compress_block(rv, rv.dyn_ltree, rv.dyn_dtree)), init_block(rv), iv && bi_windup(rv);
}, _tr_tally$1 = (rv, tv, ev) => (rv.pending_buf[rv.sym_buf + rv.sym_next++] = tv, rv.pending_buf[rv.sym_buf + rv.sym_next++] = tv >> 8, rv.pending_buf[rv.sym_buf + rv.sym_next++] = ev, tv === 0 ? rv.dyn_ltree[ev * 2]++ : (rv.matches++, tv--, rv.dyn_ltree[(_length_code[ev] + LITERALS$1 + 1) * 2]++, rv.dyn_dtree[d_code(tv) * 2]++), rv.sym_next === rv.sym_end);
trees._tr_init = _tr_init$1;
trees._tr_stored_block = _tr_stored_block$1;
trees._tr_flush_block = _tr_flush_block$1;
trees._tr_tally = _tr_tally$1;
trees._tr_align = _tr_align$1;
const adler32$2 = (rv, tv, ev, iv) => {
  let ov = rv & 65535 | 0, av = rv >>> 16 & 65535 | 0, sv = 0;
  for (; ev !== 0; ) {
    sv = ev > 2e3 ? 2e3 : ev, ev -= sv;
    do
      ov = ov + tv[iv++] | 0, av = av + ov | 0;
    while (--sv);
    ov %= 65521, av %= 65521;
  }
  return ov | av << 16 | 0;
};
var adler32_1 = adler32$2;
const makeTable = () => {
  let rv, tv = [];
  for (var ev = 0; ev < 256; ev++) {
    rv = ev;
    for (var iv = 0; iv < 8; iv++)
      rv = rv & 1 ? 3988292384 ^ rv >>> 1 : rv >>> 1;
    tv[ev] = rv;
  }
  return tv;
}, crcTable = new Uint32Array(makeTable()), crc32$2 = (rv, tv, ev, iv) => {
  const ov = crcTable, av = iv + ev;
  rv ^= -1;
  for (let sv = iv; sv < av; sv++)
    rv = rv >>> 8 ^ ov[(rv ^ tv[sv]) & 255];
  return rv ^ -1;
};
var crc32_1 = crc32$2, messages = {
  2: "need dictionary",
  /* Z_NEED_DICT       2  */
  1: "stream end",
  /* Z_STREAM_END      1  */
  0: "",
  /* Z_OK              0  */
  "-1": "file error",
  /* Z_ERRNO         (-1) */
  "-2": "stream error",
  /* Z_STREAM_ERROR  (-2) */
  "-3": "data error",
  /* Z_DATA_ERROR    (-3) */
  "-4": "insufficient memory",
  /* Z_MEM_ERROR     (-4) */
  "-5": "buffer error",
  /* Z_BUF_ERROR     (-5) */
  "-6": "incompatible version"
  /* Z_VERSION_ERROR (-6) */
}, constants$1 = {
  /* Allowed flush values; see deflate() and inflate() below for details */
  Z_NO_FLUSH: 0,
  Z_PARTIAL_FLUSH: 1,
  Z_SYNC_FLUSH: 2,
  Z_FULL_FLUSH: 3,
  Z_FINISH: 4,
  Z_BLOCK: 5,
  Z_TREES: 6,
  /* Return codes for the compression/decompression functions. Negative values
  * are errors, positive values are used for special but normal events.
  */
  Z_OK: 0,
  Z_STREAM_END: 1,
  Z_NEED_DICT: 2,
  Z_ERRNO: -1,
  Z_STREAM_ERROR: -2,
  Z_DATA_ERROR: -3,
  Z_MEM_ERROR: -4,
  Z_BUF_ERROR: -5,
  //Z_VERSION_ERROR: -6,
  /* compression levels */
  Z_NO_COMPRESSION: 0,
  Z_BEST_SPEED: 1,
  Z_BEST_COMPRESSION: 9,
  Z_DEFAULT_COMPRESSION: -1,
  Z_FILTERED: 1,
  Z_HUFFMAN_ONLY: 2,
  Z_RLE: 3,
  Z_FIXED: 4,
  Z_DEFAULT_STRATEGY: 0,
  /* Possible values of the data_type field (though see inflate()) */
  Z_BINARY: 0,
  Z_TEXT: 1,
  //Z_ASCII:                1, // = Z_TEXT (deprecated)
  Z_UNKNOWN: 2,
  /* The deflate compression method */
  Z_DEFLATED: 8
  //Z_NULL:                 null // Use -1 or null inline, depending on var type
};
const { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees, adler32$1 = adler32_1, crc32$1 = crc32_1, msg$2 = messages, {
  Z_NO_FLUSH: Z_NO_FLUSH$2,
  Z_PARTIAL_FLUSH,
  Z_FULL_FLUSH: Z_FULL_FLUSH$1,
  Z_FINISH: Z_FINISH$3,
  Z_BLOCK: Z_BLOCK$1,
  Z_OK: Z_OK$3,
  Z_STREAM_END: Z_STREAM_END$3,
  Z_STREAM_ERROR: Z_STREAM_ERROR$2,
  Z_DATA_ERROR: Z_DATA_ERROR$2,
  Z_BUF_ERROR: Z_BUF_ERROR$1,
  Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,
  Z_FILTERED,
  Z_HUFFMAN_ONLY,
  Z_RLE,
  Z_FIXED,
  Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,
  Z_UNKNOWN,
  Z_DEFLATED: Z_DEFLATED$2
} = constants$1, MAX_MEM_LEVEL = 9, MAX_WBITS$1 = 15, DEF_MEM_LEVEL = 8, LENGTH_CODES = 29, LITERALS = 256, L_CODES = LITERALS + 1 + LENGTH_CODES, D_CODES = 30, BL_CODES = 19, HEAP_SIZE = 2 * L_CODES + 1, MAX_BITS = 15, MIN_MATCH = 3, MAX_MATCH = 258, MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1, PRESET_DICT = 32, INIT_STATE = 42, GZIP_STATE = 57, EXTRA_STATE = 69, NAME_STATE = 73, COMMENT_STATE = 91, HCRC_STATE = 103, BUSY_STATE = 113, FINISH_STATE = 666, BS_NEED_MORE = 1, BS_BLOCK_DONE = 2, BS_FINISH_STARTED = 3, BS_FINISH_DONE = 4, OS_CODE = 3, err = (rv, tv) => (rv.msg = msg$2[tv], tv), rank = (rv) => rv * 2 - (rv > 4 ? 9 : 0), zero = (rv) => {
  let tv = rv.length;
  for (; --tv >= 0; )
    rv[tv] = 0;
}, slide_hash = (rv) => {
  let tv, ev, iv, ov = rv.w_size;
  tv = rv.hash_size, iv = tv;
  do
    ev = rv.head[--iv], rv.head[iv] = ev >= ov ? ev - ov : 0;
  while (--tv);
  tv = ov, iv = tv;
  do
    ev = rv.prev[--iv], rv.prev[iv] = ev >= ov ? ev - ov : 0;
  while (--tv);
};
let HASH_ZLIB = (rv, tv, ev) => (tv << rv.hash_shift ^ ev) & rv.hash_mask, HASH = HASH_ZLIB;
const flush_pending = (rv) => {
  const tv = rv.state;
  let ev = tv.pending;
  ev > rv.avail_out && (ev = rv.avail_out), ev !== 0 && (rv.output.set(tv.pending_buf.subarray(tv.pending_out, tv.pending_out + ev), rv.next_out), rv.next_out += ev, tv.pending_out += ev, rv.total_out += ev, rv.avail_out -= ev, tv.pending -= ev, tv.pending === 0 && (tv.pending_out = 0));
}, flush_block_only = (rv, tv) => {
  _tr_flush_block(rv, rv.block_start >= 0 ? rv.block_start : -1, rv.strstart - rv.block_start, tv), rv.block_start = rv.strstart, flush_pending(rv.strm);
}, put_byte = (rv, tv) => {
  rv.pending_buf[rv.pending++] = tv;
}, putShortMSB = (rv, tv) => {
  rv.pending_buf[rv.pending++] = tv >>> 8 & 255, rv.pending_buf[rv.pending++] = tv & 255;
}, read_buf = (rv, tv, ev, iv) => {
  let ov = rv.avail_in;
  return ov > iv && (ov = iv), ov === 0 ? 0 : (rv.avail_in -= ov, tv.set(rv.input.subarray(rv.next_in, rv.next_in + ov), ev), rv.state.wrap === 1 ? rv.adler = adler32$1(rv.adler, tv, ov, ev) : rv.state.wrap === 2 && (rv.adler = crc32$1(rv.adler, tv, ov, ev)), rv.next_in += ov, rv.total_in += ov, ov);
}, longest_match = (rv, tv) => {
  let ev = rv.max_chain_length, iv = rv.strstart, ov, av, sv = rv.prev_length, lv = rv.nice_match;
  const uv = rv.strstart > rv.w_size - MIN_LOOKAHEAD ? rv.strstart - (rv.w_size - MIN_LOOKAHEAD) : 0, cv = rv.window, dv = rv.w_mask, hv = rv.prev, pv = rv.strstart + MAX_MATCH;
  let yv = cv[iv + sv - 1], Sv = cv[iv + sv];
  rv.prev_length >= rv.good_match && (ev >>= 2), lv > rv.lookahead && (lv = rv.lookahead);
  do
    if (ov = tv, !(cv[ov + sv] !== Sv || cv[ov + sv - 1] !== yv || cv[ov] !== cv[iv] || cv[++ov] !== cv[iv + 1])) {
      iv += 2, ov++;
      do
        ;
      while (cv[++iv] === cv[++ov] && cv[++iv] === cv[++ov] && cv[++iv] === cv[++ov] && cv[++iv] === cv[++ov] && cv[++iv] === cv[++ov] && cv[++iv] === cv[++ov] && cv[++iv] === cv[++ov] && cv[++iv] === cv[++ov] && iv < pv);
      if (av = MAX_MATCH - (pv - iv), iv = pv - MAX_MATCH, av > sv) {
        if (rv.match_start = tv, sv = av, av >= lv)
          break;
        yv = cv[iv + sv - 1], Sv = cv[iv + sv];
      }
    }
  while ((tv = hv[tv & dv]) > uv && --ev !== 0);
  return sv <= rv.lookahead ? sv : rv.lookahead;
}, fill_window = (rv) => {
  const tv = rv.w_size;
  let ev, iv, ov;
  do {
    if (iv = rv.window_size - rv.lookahead - rv.strstart, rv.strstart >= tv + (tv - MIN_LOOKAHEAD) && (rv.window.set(rv.window.subarray(tv, tv + tv - iv), 0), rv.match_start -= tv, rv.strstart -= tv, rv.block_start -= tv, rv.insert > rv.strstart && (rv.insert = rv.strstart), slide_hash(rv), iv += tv), rv.strm.avail_in === 0)
      break;
    if (ev = read_buf(rv.strm, rv.window, rv.strstart + rv.lookahead, iv), rv.lookahead += ev, rv.lookahead + rv.insert >= MIN_MATCH)
      for (ov = rv.strstart - rv.insert, rv.ins_h = rv.window[ov], rv.ins_h = HASH(rv, rv.ins_h, rv.window[ov + 1]); rv.insert && (rv.ins_h = HASH(rv, rv.ins_h, rv.window[ov + MIN_MATCH - 1]), rv.prev[ov & rv.w_mask] = rv.head[rv.ins_h], rv.head[rv.ins_h] = ov, ov++, rv.insert--, !(rv.lookahead + rv.insert < MIN_MATCH)); )
        ;
  } while (rv.lookahead < MIN_LOOKAHEAD && rv.strm.avail_in !== 0);
}, deflate_stored = (rv, tv) => {
  let ev = rv.pending_buf_size - 5 > rv.w_size ? rv.w_size : rv.pending_buf_size - 5, iv, ov, av, sv = 0, lv = rv.strm.avail_in;
  do {
    if (iv = 65535, av = rv.bi_valid + 42 >> 3, rv.strm.avail_out < av || (av = rv.strm.avail_out - av, ov = rv.strstart - rv.block_start, iv > ov + rv.strm.avail_in && (iv = ov + rv.strm.avail_in), iv > av && (iv = av), iv < ev && (iv === 0 && tv !== Z_FINISH$3 || tv === Z_NO_FLUSH$2 || iv !== ov + rv.strm.avail_in)))
      break;
    sv = tv === Z_FINISH$3 && iv === ov + rv.strm.avail_in ? 1 : 0, _tr_stored_block(rv, 0, 0, sv), rv.pending_buf[rv.pending - 4] = iv, rv.pending_buf[rv.pending - 3] = iv >> 8, rv.pending_buf[rv.pending - 2] = ~iv, rv.pending_buf[rv.pending - 1] = ~iv >> 8, flush_pending(rv.strm), ov && (ov > iv && (ov = iv), rv.strm.output.set(rv.window.subarray(rv.block_start, rv.block_start + ov), rv.strm.next_out), rv.strm.next_out += ov, rv.strm.avail_out -= ov, rv.strm.total_out += ov, rv.block_start += ov, iv -= ov), iv && (read_buf(rv.strm, rv.strm.output, rv.strm.next_out, iv), rv.strm.next_out += iv, rv.strm.avail_out -= iv, rv.strm.total_out += iv);
  } while (sv === 0);
  return lv -= rv.strm.avail_in, lv && (lv >= rv.w_size ? (rv.matches = 2, rv.window.set(rv.strm.input.subarray(rv.strm.next_in - rv.w_size, rv.strm.next_in), 0), rv.strstart = rv.w_size, rv.insert = rv.strstart) : (rv.window_size - rv.strstart <= lv && (rv.strstart -= rv.w_size, rv.window.set(rv.window.subarray(rv.w_size, rv.w_size + rv.strstart), 0), rv.matches < 2 && rv.matches++, rv.insert > rv.strstart && (rv.insert = rv.strstart)), rv.window.set(rv.strm.input.subarray(rv.strm.next_in - lv, rv.strm.next_in), rv.strstart), rv.strstart += lv, rv.insert += lv > rv.w_size - rv.insert ? rv.w_size - rv.insert : lv), rv.block_start = rv.strstart), rv.high_water < rv.strstart && (rv.high_water = rv.strstart), sv ? BS_FINISH_DONE : tv !== Z_NO_FLUSH$2 && tv !== Z_FINISH$3 && rv.strm.avail_in === 0 && rv.strstart === rv.block_start ? BS_BLOCK_DONE : (av = rv.window_size - rv.strstart, rv.strm.avail_in > av && rv.block_start >= rv.w_size && (rv.block_start -= rv.w_size, rv.strstart -= rv.w_size, rv.window.set(rv.window.subarray(rv.w_size, rv.w_size + rv.strstart), 0), rv.matches < 2 && rv.matches++, av += rv.w_size, rv.insert > rv.strstart && (rv.insert = rv.strstart)), av > rv.strm.avail_in && (av = rv.strm.avail_in), av && (read_buf(rv.strm, rv.window, rv.strstart, av), rv.strstart += av, rv.insert += av > rv.w_size - rv.insert ? rv.w_size - rv.insert : av), rv.high_water < rv.strstart && (rv.high_water = rv.strstart), av = rv.bi_valid + 42 >> 3, av = rv.pending_buf_size - av > 65535 ? 65535 : rv.pending_buf_size - av, ev = av > rv.w_size ? rv.w_size : av, ov = rv.strstart - rv.block_start, (ov >= ev || (ov || tv === Z_FINISH$3) && tv !== Z_NO_FLUSH$2 && rv.strm.avail_in === 0 && ov <= av) && (iv = ov > av ? av : ov, sv = tv === Z_FINISH$3 && rv.strm.avail_in === 0 && iv === ov ? 1 : 0, _tr_stored_block(rv, rv.block_start, iv, sv), rv.block_start += iv, flush_pending(rv.strm)), sv ? BS_FINISH_STARTED : BS_NEED_MORE);
}, deflate_fast = (rv, tv) => {
  let ev, iv;
  for (; ; ) {
    if (rv.lookahead < MIN_LOOKAHEAD) {
      if (fill_window(rv), rv.lookahead < MIN_LOOKAHEAD && tv === Z_NO_FLUSH$2)
        return BS_NEED_MORE;
      if (rv.lookahead === 0)
        break;
    }
    if (ev = 0, rv.lookahead >= MIN_MATCH && (rv.ins_h = HASH(rv, rv.ins_h, rv.window[rv.strstart + MIN_MATCH - 1]), ev = rv.prev[rv.strstart & rv.w_mask] = rv.head[rv.ins_h], rv.head[rv.ins_h] = rv.strstart), ev !== 0 && rv.strstart - ev <= rv.w_size - MIN_LOOKAHEAD && (rv.match_length = longest_match(rv, ev)), rv.match_length >= MIN_MATCH)
      if (iv = _tr_tally(rv, rv.strstart - rv.match_start, rv.match_length - MIN_MATCH), rv.lookahead -= rv.match_length, rv.match_length <= rv.max_lazy_match && rv.lookahead >= MIN_MATCH) {
        rv.match_length--;
        do
          rv.strstart++, rv.ins_h = HASH(rv, rv.ins_h, rv.window[rv.strstart + MIN_MATCH - 1]), ev = rv.prev[rv.strstart & rv.w_mask] = rv.head[rv.ins_h], rv.head[rv.ins_h] = rv.strstart;
        while (--rv.match_length !== 0);
        rv.strstart++;
      } else
        rv.strstart += rv.match_length, rv.match_length = 0, rv.ins_h = rv.window[rv.strstart], rv.ins_h = HASH(rv, rv.ins_h, rv.window[rv.strstart + 1]);
    else
      iv = _tr_tally(rv, 0, rv.window[rv.strstart]), rv.lookahead--, rv.strstart++;
    if (iv && (flush_block_only(rv, !1), rv.strm.avail_out === 0))
      return BS_NEED_MORE;
  }
  return rv.insert = rv.strstart < MIN_MATCH - 1 ? rv.strstart : MIN_MATCH - 1, tv === Z_FINISH$3 ? (flush_block_only(rv, !0), rv.strm.avail_out === 0 ? BS_FINISH_STARTED : BS_FINISH_DONE) : rv.sym_next && (flush_block_only(rv, !1), rv.strm.avail_out === 0) ? BS_NEED_MORE : BS_BLOCK_DONE;
}, deflate_slow = (rv, tv) => {
  let ev, iv, ov;
  for (; ; ) {
    if (rv.lookahead < MIN_LOOKAHEAD) {
      if (fill_window(rv), rv.lookahead < MIN_LOOKAHEAD && tv === Z_NO_FLUSH$2)
        return BS_NEED_MORE;
      if (rv.lookahead === 0)
        break;
    }
    if (ev = 0, rv.lookahead >= MIN_MATCH && (rv.ins_h = HASH(rv, rv.ins_h, rv.window[rv.strstart + MIN_MATCH - 1]), ev = rv.prev[rv.strstart & rv.w_mask] = rv.head[rv.ins_h], rv.head[rv.ins_h] = rv.strstart), rv.prev_length = rv.match_length, rv.prev_match = rv.match_start, rv.match_length = MIN_MATCH - 1, ev !== 0 && rv.prev_length < rv.max_lazy_match && rv.strstart - ev <= rv.w_size - MIN_LOOKAHEAD && (rv.match_length = longest_match(rv, ev), rv.match_length <= 5 && (rv.strategy === Z_FILTERED || rv.match_length === MIN_MATCH && rv.strstart - rv.match_start > 4096) && (rv.match_length = MIN_MATCH - 1)), rv.prev_length >= MIN_MATCH && rv.match_length <= rv.prev_length) {
      ov = rv.strstart + rv.lookahead - MIN_MATCH, iv = _tr_tally(rv, rv.strstart - 1 - rv.prev_match, rv.prev_length - MIN_MATCH), rv.lookahead -= rv.prev_length - 1, rv.prev_length -= 2;
      do
        ++rv.strstart <= ov && (rv.ins_h = HASH(rv, rv.ins_h, rv.window[rv.strstart + MIN_MATCH - 1]), ev = rv.prev[rv.strstart & rv.w_mask] = rv.head[rv.ins_h], rv.head[rv.ins_h] = rv.strstart);
      while (--rv.prev_length !== 0);
      if (rv.match_available = 0, rv.match_length = MIN_MATCH - 1, rv.strstart++, iv && (flush_block_only(rv, !1), rv.strm.avail_out === 0))
        return BS_NEED_MORE;
    } else if (rv.match_available) {
      if (iv = _tr_tally(rv, 0, rv.window[rv.strstart - 1]), iv && flush_block_only(rv, !1), rv.strstart++, rv.lookahead--, rv.strm.avail_out === 0)
        return BS_NEED_MORE;
    } else
      rv.match_available = 1, rv.strstart++, rv.lookahead--;
  }
  return rv.match_available && (iv = _tr_tally(rv, 0, rv.window[rv.strstart - 1]), rv.match_available = 0), rv.insert = rv.strstart < MIN_MATCH - 1 ? rv.strstart : MIN_MATCH - 1, tv === Z_FINISH$3 ? (flush_block_only(rv, !0), rv.strm.avail_out === 0 ? BS_FINISH_STARTED : BS_FINISH_DONE) : rv.sym_next && (flush_block_only(rv, !1), rv.strm.avail_out === 0) ? BS_NEED_MORE : BS_BLOCK_DONE;
}, deflate_rle = (rv, tv) => {
  let ev, iv, ov, av;
  const sv = rv.window;
  for (; ; ) {
    if (rv.lookahead <= MAX_MATCH) {
      if (fill_window(rv), rv.lookahead <= MAX_MATCH && tv === Z_NO_FLUSH$2)
        return BS_NEED_MORE;
      if (rv.lookahead === 0)
        break;
    }
    if (rv.match_length = 0, rv.lookahead >= MIN_MATCH && rv.strstart > 0 && (ov = rv.strstart - 1, iv = sv[ov], iv === sv[++ov] && iv === sv[++ov] && iv === sv[++ov])) {
      av = rv.strstart + MAX_MATCH;
      do
        ;
      while (iv === sv[++ov] && iv === sv[++ov] && iv === sv[++ov] && iv === sv[++ov] && iv === sv[++ov] && iv === sv[++ov] && iv === sv[++ov] && iv === sv[++ov] && ov < av);
      rv.match_length = MAX_MATCH - (av - ov), rv.match_length > rv.lookahead && (rv.match_length = rv.lookahead);
    }
    if (rv.match_length >= MIN_MATCH ? (ev = _tr_tally(rv, 1, rv.match_length - MIN_MATCH), rv.lookahead -= rv.match_length, rv.strstart += rv.match_length, rv.match_length = 0) : (ev = _tr_tally(rv, 0, rv.window[rv.strstart]), rv.lookahead--, rv.strstart++), ev && (flush_block_only(rv, !1), rv.strm.avail_out === 0))
      return BS_NEED_MORE;
  }
  return rv.insert = 0, tv === Z_FINISH$3 ? (flush_block_only(rv, !0), rv.strm.avail_out === 0 ? BS_FINISH_STARTED : BS_FINISH_DONE) : rv.sym_next && (flush_block_only(rv, !1), rv.strm.avail_out === 0) ? BS_NEED_MORE : BS_BLOCK_DONE;
}, deflate_huff = (rv, tv) => {
  let ev;
  for (; ; ) {
    if (rv.lookahead === 0 && (fill_window(rv), rv.lookahead === 0)) {
      if (tv === Z_NO_FLUSH$2)
        return BS_NEED_MORE;
      break;
    }
    if (rv.match_length = 0, ev = _tr_tally(rv, 0, rv.window[rv.strstart]), rv.lookahead--, rv.strstart++, ev && (flush_block_only(rv, !1), rv.strm.avail_out === 0))
      return BS_NEED_MORE;
  }
  return rv.insert = 0, tv === Z_FINISH$3 ? (flush_block_only(rv, !0), rv.strm.avail_out === 0 ? BS_FINISH_STARTED : BS_FINISH_DONE) : rv.sym_next && (flush_block_only(rv, !1), rv.strm.avail_out === 0) ? BS_NEED_MORE : BS_BLOCK_DONE;
};
function Config(rv, tv, ev, iv, ov) {
  this.good_length = rv, this.max_lazy = tv, this.nice_length = ev, this.max_chain = iv, this.func = ov;
}
const configuration_table = [
  /*      good lazy nice chain */
  new Config(0, 0, 0, 0, deflate_stored),
  /* 0 store only */
  new Config(4, 4, 8, 4, deflate_fast),
  /* 1 max speed, no lazy matches */
  new Config(4, 5, 16, 8, deflate_fast),
  /* 2 */
  new Config(4, 6, 32, 32, deflate_fast),
  /* 3 */
  new Config(4, 4, 16, 16, deflate_slow),
  /* 4 lazy matches */
  new Config(8, 16, 32, 32, deflate_slow),
  /* 5 */
  new Config(8, 16, 128, 128, deflate_slow),
  /* 6 */
  new Config(8, 32, 128, 256, deflate_slow),
  /* 7 */
  new Config(32, 128, 258, 1024, deflate_slow),
  /* 8 */
  new Config(32, 258, 258, 4096, deflate_slow)
  /* 9 max compression */
], lm_init = (rv) => {
  rv.window_size = 2 * rv.w_size, zero(rv.head), rv.max_lazy_match = configuration_table[rv.level].max_lazy, rv.good_match = configuration_table[rv.level].good_length, rv.nice_match = configuration_table[rv.level].nice_length, rv.max_chain_length = configuration_table[rv.level].max_chain, rv.strstart = 0, rv.block_start = 0, rv.lookahead = 0, rv.insert = 0, rv.match_length = rv.prev_length = MIN_MATCH - 1, rv.match_available = 0, rv.ins_h = 0;
};
function DeflateState() {
  this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = Z_DEFLATED$2, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2), this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2), this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2), zero(this.dyn_ltree), zero(this.dyn_dtree), zero(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new Uint16Array(MAX_BITS + 1), this.heap = new Uint16Array(2 * L_CODES + 1), zero(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new Uint16Array(2 * L_CODES + 1), zero(this.depth), this.sym_buf = 0, this.lit_bufsize = 0, this.sym_next = 0, this.sym_end = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0;
}
const deflateStateCheck = (rv) => {
  if (!rv)
    return 1;
  const tv = rv.state;
  return !tv || tv.strm !== rv || tv.status !== INIT_STATE && //#ifdef GZIP
  tv.status !== GZIP_STATE && //#endif
  tv.status !== EXTRA_STATE && tv.status !== NAME_STATE && tv.status !== COMMENT_STATE && tv.status !== HCRC_STATE && tv.status !== BUSY_STATE && tv.status !== FINISH_STATE ? 1 : 0;
}, deflateResetKeep = (rv) => {
  if (deflateStateCheck(rv))
    return err(rv, Z_STREAM_ERROR$2);
  rv.total_in = rv.total_out = 0, rv.data_type = Z_UNKNOWN;
  const tv = rv.state;
  return tv.pending = 0, tv.pending_out = 0, tv.wrap < 0 && (tv.wrap = -tv.wrap), tv.status = //#ifdef GZIP
  tv.wrap === 2 ? GZIP_STATE : (
    //#endif
    tv.wrap ? INIT_STATE : BUSY_STATE
  ), rv.adler = tv.wrap === 2 ? 0 : 1, tv.last_flush = -2, _tr_init(tv), Z_OK$3;
}, deflateReset = (rv) => {
  const tv = deflateResetKeep(rv);
  return tv === Z_OK$3 && lm_init(rv.state), tv;
}, deflateSetHeader = (rv, tv) => deflateStateCheck(rv) || rv.state.wrap !== 2 ? Z_STREAM_ERROR$2 : (rv.state.gzhead = tv, Z_OK$3), deflateInit2 = (rv, tv, ev, iv, ov, av) => {
  if (!rv)
    return Z_STREAM_ERROR$2;
  let sv = 1;
  if (tv === Z_DEFAULT_COMPRESSION$1 && (tv = 6), iv < 0 ? (sv = 0, iv = -iv) : iv > 15 && (sv = 2, iv -= 16), ov < 1 || ov > MAX_MEM_LEVEL || ev !== Z_DEFLATED$2 || iv < 8 || iv > 15 || tv < 0 || tv > 9 || av < 0 || av > Z_FIXED || iv === 8 && sv !== 1)
    return err(rv, Z_STREAM_ERROR$2);
  iv === 8 && (iv = 9);
  const lv = new DeflateState();
  return rv.state = lv, lv.strm = rv, lv.status = INIT_STATE, lv.wrap = sv, lv.gzhead = null, lv.w_bits = iv, lv.w_size = 1 << lv.w_bits, lv.w_mask = lv.w_size - 1, lv.hash_bits = ov + 7, lv.hash_size = 1 << lv.hash_bits, lv.hash_mask = lv.hash_size - 1, lv.hash_shift = ~~((lv.hash_bits + MIN_MATCH - 1) / MIN_MATCH), lv.window = new Uint8Array(lv.w_size * 2), lv.head = new Uint16Array(lv.hash_size), lv.prev = new Uint16Array(lv.w_size), lv.lit_bufsize = 1 << ov + 6, lv.pending_buf_size = lv.lit_bufsize * 4, lv.pending_buf = new Uint8Array(lv.pending_buf_size), lv.sym_buf = lv.lit_bufsize, lv.sym_end = (lv.lit_bufsize - 1) * 3, lv.level = tv, lv.strategy = av, lv.method = ev, deflateReset(rv);
}, deflateInit = (rv, tv) => deflateInit2(rv, tv, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1), deflate$2 = (rv, tv) => {
  if (deflateStateCheck(rv) || tv > Z_BLOCK$1 || tv < 0)
    return rv ? err(rv, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;
  const ev = rv.state;
  if (!rv.output || rv.avail_in !== 0 && !rv.input || ev.status === FINISH_STATE && tv !== Z_FINISH$3)
    return err(rv, rv.avail_out === 0 ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);
  const iv = ev.last_flush;
  if (ev.last_flush = tv, ev.pending !== 0) {
    if (flush_pending(rv), rv.avail_out === 0)
      return ev.last_flush = -1, Z_OK$3;
  } else if (rv.avail_in === 0 && rank(tv) <= rank(iv) && tv !== Z_FINISH$3)
    return err(rv, Z_BUF_ERROR$1);
  if (ev.status === FINISH_STATE && rv.avail_in !== 0)
    return err(rv, Z_BUF_ERROR$1);
  if (ev.status === INIT_STATE && ev.wrap === 0 && (ev.status = BUSY_STATE), ev.status === INIT_STATE) {
    let ov = Z_DEFLATED$2 + (ev.w_bits - 8 << 4) << 8, av = -1;
    if (ev.strategy >= Z_HUFFMAN_ONLY || ev.level < 2 ? av = 0 : ev.level < 6 ? av = 1 : ev.level === 6 ? av = 2 : av = 3, ov |= av << 6, ev.strstart !== 0 && (ov |= PRESET_DICT), ov += 31 - ov % 31, putShortMSB(ev, ov), ev.strstart !== 0 && (putShortMSB(ev, rv.adler >>> 16), putShortMSB(ev, rv.adler & 65535)), rv.adler = 1, ev.status = BUSY_STATE, flush_pending(rv), ev.pending !== 0)
      return ev.last_flush = -1, Z_OK$3;
  }
  if (ev.status === GZIP_STATE) {
    if (rv.adler = 0, put_byte(ev, 31), put_byte(ev, 139), put_byte(ev, 8), ev.gzhead)
      put_byte(
        ev,
        (ev.gzhead.text ? 1 : 0) + (ev.gzhead.hcrc ? 2 : 0) + (ev.gzhead.extra ? 4 : 0) + (ev.gzhead.name ? 8 : 0) + (ev.gzhead.comment ? 16 : 0)
      ), put_byte(ev, ev.gzhead.time & 255), put_byte(ev, ev.gzhead.time >> 8 & 255), put_byte(ev, ev.gzhead.time >> 16 & 255), put_byte(ev, ev.gzhead.time >> 24 & 255), put_byte(ev, ev.level === 9 ? 2 : ev.strategy >= Z_HUFFMAN_ONLY || ev.level < 2 ? 4 : 0), put_byte(ev, ev.gzhead.os & 255), ev.gzhead.extra && ev.gzhead.extra.length && (put_byte(ev, ev.gzhead.extra.length & 255), put_byte(ev, ev.gzhead.extra.length >> 8 & 255)), ev.gzhead.hcrc && (rv.adler = crc32$1(rv.adler, ev.pending_buf, ev.pending, 0)), ev.gzindex = 0, ev.status = EXTRA_STATE;
    else if (put_byte(ev, 0), put_byte(ev, 0), put_byte(ev, 0), put_byte(ev, 0), put_byte(ev, 0), put_byte(ev, ev.level === 9 ? 2 : ev.strategy >= Z_HUFFMAN_ONLY || ev.level < 2 ? 4 : 0), put_byte(ev, OS_CODE), ev.status = BUSY_STATE, flush_pending(rv), ev.pending !== 0)
      return ev.last_flush = -1, Z_OK$3;
  }
  if (ev.status === EXTRA_STATE) {
    if (ev.gzhead.extra) {
      let ov = ev.pending, av = (ev.gzhead.extra.length & 65535) - ev.gzindex;
      for (; ev.pending + av > ev.pending_buf_size; ) {
        let lv = ev.pending_buf_size - ev.pending;
        if (ev.pending_buf.set(ev.gzhead.extra.subarray(ev.gzindex, ev.gzindex + lv), ev.pending), ev.pending = ev.pending_buf_size, ev.gzhead.hcrc && ev.pending > ov && (rv.adler = crc32$1(rv.adler, ev.pending_buf, ev.pending - ov, ov)), ev.gzindex += lv, flush_pending(rv), ev.pending !== 0)
          return ev.last_flush = -1, Z_OK$3;
        ov = 0, av -= lv;
      }
      let sv = new Uint8Array(ev.gzhead.extra);
      ev.pending_buf.set(sv.subarray(ev.gzindex, ev.gzindex + av), ev.pending), ev.pending += av, ev.gzhead.hcrc && ev.pending > ov && (rv.adler = crc32$1(rv.adler, ev.pending_buf, ev.pending - ov, ov)), ev.gzindex = 0;
    }
    ev.status = NAME_STATE;
  }
  if (ev.status === NAME_STATE) {
    if (ev.gzhead.name) {
      let ov = ev.pending, av;
      do {
        if (ev.pending === ev.pending_buf_size) {
          if (ev.gzhead.hcrc && ev.pending > ov && (rv.adler = crc32$1(rv.adler, ev.pending_buf, ev.pending - ov, ov)), flush_pending(rv), ev.pending !== 0)
            return ev.last_flush = -1, Z_OK$3;
          ov = 0;
        }
        ev.gzindex < ev.gzhead.name.length ? av = ev.gzhead.name.charCodeAt(ev.gzindex++) & 255 : av = 0, put_byte(ev, av);
      } while (av !== 0);
      ev.gzhead.hcrc && ev.pending > ov && (rv.adler = crc32$1(rv.adler, ev.pending_buf, ev.pending - ov, ov)), ev.gzindex = 0;
    }
    ev.status = COMMENT_STATE;
  }
  if (ev.status === COMMENT_STATE) {
    if (ev.gzhead.comment) {
      let ov = ev.pending, av;
      do {
        if (ev.pending === ev.pending_buf_size) {
          if (ev.gzhead.hcrc && ev.pending > ov && (rv.adler = crc32$1(rv.adler, ev.pending_buf, ev.pending - ov, ov)), flush_pending(rv), ev.pending !== 0)
            return ev.last_flush = -1, Z_OK$3;
          ov = 0;
        }
        ev.gzindex < ev.gzhead.comment.length ? av = ev.gzhead.comment.charCodeAt(ev.gzindex++) & 255 : av = 0, put_byte(ev, av);
      } while (av !== 0);
      ev.gzhead.hcrc && ev.pending > ov && (rv.adler = crc32$1(rv.adler, ev.pending_buf, ev.pending - ov, ov));
    }
    ev.status = HCRC_STATE;
  }
  if (ev.status === HCRC_STATE) {
    if (ev.gzhead.hcrc) {
      if (ev.pending + 2 > ev.pending_buf_size && (flush_pending(rv), ev.pending !== 0))
        return ev.last_flush = -1, Z_OK$3;
      put_byte(ev, rv.adler & 255), put_byte(ev, rv.adler >> 8 & 255), rv.adler = 0;
    }
    if (ev.status = BUSY_STATE, flush_pending(rv), ev.pending !== 0)
      return ev.last_flush = -1, Z_OK$3;
  }
  if (rv.avail_in !== 0 || ev.lookahead !== 0 || tv !== Z_NO_FLUSH$2 && ev.status !== FINISH_STATE) {
    let ov = ev.level === 0 ? deflate_stored(ev, tv) : ev.strategy === Z_HUFFMAN_ONLY ? deflate_huff(ev, tv) : ev.strategy === Z_RLE ? deflate_rle(ev, tv) : configuration_table[ev.level].func(ev, tv);
    if ((ov === BS_FINISH_STARTED || ov === BS_FINISH_DONE) && (ev.status = FINISH_STATE), ov === BS_NEED_MORE || ov === BS_FINISH_STARTED)
      return rv.avail_out === 0 && (ev.last_flush = -1), Z_OK$3;
    if (ov === BS_BLOCK_DONE && (tv === Z_PARTIAL_FLUSH ? _tr_align(ev) : tv !== Z_BLOCK$1 && (_tr_stored_block(ev, 0, 0, !1), tv === Z_FULL_FLUSH$1 && (zero(ev.head), ev.lookahead === 0 && (ev.strstart = 0, ev.block_start = 0, ev.insert = 0))), flush_pending(rv), rv.avail_out === 0))
      return ev.last_flush = -1, Z_OK$3;
  }
  return tv !== Z_FINISH$3 ? Z_OK$3 : ev.wrap <= 0 ? Z_STREAM_END$3 : (ev.wrap === 2 ? (put_byte(ev, rv.adler & 255), put_byte(ev, rv.adler >> 8 & 255), put_byte(ev, rv.adler >> 16 & 255), put_byte(ev, rv.adler >> 24 & 255), put_byte(ev, rv.total_in & 255), put_byte(ev, rv.total_in >> 8 & 255), put_byte(ev, rv.total_in >> 16 & 255), put_byte(ev, rv.total_in >> 24 & 255)) : (putShortMSB(ev, rv.adler >>> 16), putShortMSB(ev, rv.adler & 65535)), flush_pending(rv), ev.wrap > 0 && (ev.wrap = -ev.wrap), ev.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3);
}, deflateEnd = (rv) => {
  if (deflateStateCheck(rv))
    return Z_STREAM_ERROR$2;
  const tv = rv.state.status;
  return rv.state = null, tv === BUSY_STATE ? err(rv, Z_DATA_ERROR$2) : Z_OK$3;
}, deflateSetDictionary = (rv, tv) => {
  let ev = tv.length;
  if (deflateStateCheck(rv))
    return Z_STREAM_ERROR$2;
  const iv = rv.state, ov = iv.wrap;
  if (ov === 2 || ov === 1 && iv.status !== INIT_STATE || iv.lookahead)
    return Z_STREAM_ERROR$2;
  if (ov === 1 && (rv.adler = adler32$1(rv.adler, tv, ev, 0)), iv.wrap = 0, ev >= iv.w_size) {
    ov === 0 && (zero(iv.head), iv.strstart = 0, iv.block_start = 0, iv.insert = 0);
    let uv = new Uint8Array(iv.w_size);
    uv.set(tv.subarray(ev - iv.w_size, ev), 0), tv = uv, ev = iv.w_size;
  }
  const av = rv.avail_in, sv = rv.next_in, lv = rv.input;
  for (rv.avail_in = ev, rv.next_in = 0, rv.input = tv, fill_window(iv); iv.lookahead >= MIN_MATCH; ) {
    let uv = iv.strstart, cv = iv.lookahead - (MIN_MATCH - 1);
    do
      iv.ins_h = HASH(iv, iv.ins_h, iv.window[uv + MIN_MATCH - 1]), iv.prev[uv & iv.w_mask] = iv.head[iv.ins_h], iv.head[iv.ins_h] = uv, uv++;
    while (--cv);
    iv.strstart = uv, iv.lookahead = MIN_MATCH - 1, fill_window(iv);
  }
  return iv.strstart += iv.lookahead, iv.block_start = iv.strstart, iv.insert = iv.lookahead, iv.lookahead = 0, iv.match_length = iv.prev_length = MIN_MATCH - 1, iv.match_available = 0, rv.next_in = sv, rv.input = lv, rv.avail_in = av, iv.wrap = ov, Z_OK$3;
};
deflate$3.deflateInit = deflateInit;
deflate$3.deflateInit2 = deflateInit2;
deflate$3.deflateReset = deflateReset;
deflate$3.deflateResetKeep = deflateResetKeep;
deflate$3.deflateSetHeader = deflateSetHeader;
deflate$3.deflate = deflate$2;
deflate$3.deflateEnd = deflateEnd;
deflate$3.deflateSetDictionary = deflateSetDictionary;
deflate$3.deflateInfo = "pako deflate (from Nodeca project)";
var common = {};
const _has = (rv, tv) => Object.prototype.hasOwnProperty.call(rv, tv);
common.assign = function(rv) {
  const tv = Array.prototype.slice.call(arguments, 1);
  for (; tv.length; ) {
    const ev = tv.shift();
    if (ev) {
      if (typeof ev != "object")
        throw new TypeError(ev + "must be non-object");
      for (const iv in ev)
        _has(ev, iv) && (rv[iv] = ev[iv]);
    }
  }
  return rv;
};
common.flattenChunks = (rv) => {
  let tv = 0;
  for (let iv = 0, ov = rv.length; iv < ov; iv++)
    tv += rv[iv].length;
  const ev = new Uint8Array(tv);
  for (let iv = 0, ov = 0, av = rv.length; iv < av; iv++) {
    let sv = rv[iv];
    ev.set(sv, ov), ov += sv.length;
  }
  return ev;
};
var strings$2 = {};
let STR_APPLY_UIA_OK = !0;
try {
  String.fromCharCode.apply(null, new Uint8Array(1));
} catch (rv) {
  STR_APPLY_UIA_OK = !1;
}
const _utf8len = new Uint8Array(256);
for (let rv = 0; rv < 256; rv++)
  _utf8len[rv] = rv >= 252 ? 6 : rv >= 248 ? 5 : rv >= 240 ? 4 : rv >= 224 ? 3 : rv >= 192 ? 2 : 1;
_utf8len[254] = _utf8len[254] = 1;
strings$2.string2buf = (rv) => {
  if (typeof TextEncoder == "function" && TextEncoder.prototype.encode)
    return new TextEncoder().encode(rv);
  let tv, ev, iv, ov, av, sv = rv.length, lv = 0;
  for (ov = 0; ov < sv; ov++)
    ev = rv.charCodeAt(ov), (ev & 64512) === 55296 && ov + 1 < sv && (iv = rv.charCodeAt(ov + 1), (iv & 64512) === 56320 && (ev = 65536 + (ev - 55296 << 10) + (iv - 56320), ov++)), lv += ev < 128 ? 1 : ev < 2048 ? 2 : ev < 65536 ? 3 : 4;
  for (tv = new Uint8Array(lv), av = 0, ov = 0; av < lv; ov++)
    ev = rv.charCodeAt(ov), (ev & 64512) === 55296 && ov + 1 < sv && (iv = rv.charCodeAt(ov + 1), (iv & 64512) === 56320 && (ev = 65536 + (ev - 55296 << 10) + (iv - 56320), ov++)), ev < 128 ? tv[av++] = ev : ev < 2048 ? (tv[av++] = 192 | ev >>> 6, tv[av++] = 128 | ev & 63) : ev < 65536 ? (tv[av++] = 224 | ev >>> 12, tv[av++] = 128 | ev >>> 6 & 63, tv[av++] = 128 | ev & 63) : (tv[av++] = 240 | ev >>> 18, tv[av++] = 128 | ev >>> 12 & 63, tv[av++] = 128 | ev >>> 6 & 63, tv[av++] = 128 | ev & 63);
  return tv;
};
const buf2binstring = (rv, tv) => {
  if (tv < 65534 && rv.subarray && STR_APPLY_UIA_OK)
    return String.fromCharCode.apply(null, rv.length === tv ? rv : rv.subarray(0, tv));
  let ev = "";
  for (let iv = 0; iv < tv; iv++)
    ev += String.fromCharCode(rv[iv]);
  return ev;
};
strings$2.buf2string = (rv, tv) => {
  const ev = tv || rv.length;
  if (typeof TextDecoder == "function" && TextDecoder.prototype.decode)
    return new TextDecoder().decode(rv.subarray(0, tv));
  let iv, ov;
  const av = new Array(ev * 2);
  for (ov = 0, iv = 0; iv < ev; ) {
    let sv = rv[iv++];
    if (sv < 128) {
      av[ov++] = sv;
      continue;
    }
    let lv = _utf8len[sv];
    if (lv > 4) {
      av[ov++] = 65533, iv += lv - 1;
      continue;
    }
    for (sv &= lv === 2 ? 31 : lv === 3 ? 15 : 7; lv > 1 && iv < ev; )
      sv = sv << 6 | rv[iv++] & 63, lv--;
    if (lv > 1) {
      av[ov++] = 65533;
      continue;
    }
    sv < 65536 ? av[ov++] = sv : (sv -= 65536, av[ov++] = 55296 | sv >> 10 & 1023, av[ov++] = 56320 | sv & 1023);
  }
  return buf2binstring(av, ov);
};
strings$2.utf8border = (rv, tv) => {
  tv = tv || rv.length, tv > rv.length && (tv = rv.length);
  let ev = tv - 1;
  for (; ev >= 0 && (rv[ev] & 192) === 128; )
    ev--;
  return ev < 0 || ev === 0 ? tv : ev + _utf8len[rv[ev]] > tv ? ev : tv;
};
function ZStream$2() {
  this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0;
}
var zstream = ZStream$2;
const zlib_deflate = deflate$3, utils$1 = common, strings$1 = strings$2, msg$1 = messages, ZStream$1 = zstream, toString$2 = Object.prototype.toString, {
  Z_NO_FLUSH: Z_NO_FLUSH$1,
  Z_SYNC_FLUSH,
  Z_FULL_FLUSH,
  Z_FINISH: Z_FINISH$2,
  Z_OK: Z_OK$2,
  Z_STREAM_END: Z_STREAM_END$2,
  Z_DEFAULT_COMPRESSION,
  Z_DEFAULT_STRATEGY,
  Z_DEFLATED: Z_DEFLATED$1
} = constants$1;
function Deflate$1(rv) {
  this.options = utils$1.assign({
    level: Z_DEFAULT_COMPRESSION,
    method: Z_DEFLATED$1,
    chunkSize: 16384,
    windowBits: 15,
    memLevel: 8,
    strategy: Z_DEFAULT_STRATEGY
  }, rv || {});
  let tv = this.options;
  tv.raw && tv.windowBits > 0 ? tv.windowBits = -tv.windowBits : tv.gzip && tv.windowBits > 0 && tv.windowBits < 16 && (tv.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new ZStream$1(), this.strm.avail_out = 0;
  let ev = zlib_deflate.deflateInit2(
    this.strm,
    tv.level,
    tv.method,
    tv.windowBits,
    tv.memLevel,
    tv.strategy
  );
  if (ev !== Z_OK$2)
    throw new Error(msg$1[ev]);
  if (tv.header && zlib_deflate.deflateSetHeader(this.strm, tv.header), tv.dictionary) {
    let iv;
    if (typeof tv.dictionary == "string" ? iv = strings$1.string2buf(tv.dictionary) : toString$2.call(tv.dictionary) === "[object ArrayBuffer]" ? iv = new Uint8Array(tv.dictionary) : iv = tv.dictionary, ev = zlib_deflate.deflateSetDictionary(this.strm, iv), ev !== Z_OK$2)
      throw new Error(msg$1[ev]);
    this._dict_set = !0;
  }
}
Deflate$1.prototype.push = function(rv, tv) {
  const ev = this.strm, iv = this.options.chunkSize;
  let ov, av;
  if (this.ended)
    return !1;
  for (tv === ~~tv ? av = tv : av = tv === !0 ? Z_FINISH$2 : Z_NO_FLUSH$1, typeof rv == "string" ? ev.input = strings$1.string2buf(rv) : toString$2.call(rv) === "[object ArrayBuffer]" ? ev.input = new Uint8Array(rv) : ev.input = rv, ev.next_in = 0, ev.avail_in = ev.input.length; ; ) {
    if (ev.avail_out === 0 && (ev.output = new Uint8Array(iv), ev.next_out = 0, ev.avail_out = iv), (av === Z_SYNC_FLUSH || av === Z_FULL_FLUSH) && ev.avail_out <= 6) {
      this.onData(ev.output.subarray(0, ev.next_out)), ev.avail_out = 0;
      continue;
    }
    if (ov = zlib_deflate.deflate(ev, av), ov === Z_STREAM_END$2)
      return ev.next_out > 0 && this.onData(ev.output.subarray(0, ev.next_out)), ov = zlib_deflate.deflateEnd(this.strm), this.onEnd(ov), this.ended = !0, ov === Z_OK$2;
    if (ev.avail_out === 0) {
      this.onData(ev.output);
      continue;
    }
    if (av > 0 && ev.next_out > 0) {
      this.onData(ev.output.subarray(0, ev.next_out)), ev.avail_out = 0;
      continue;
    }
    if (ev.avail_in === 0)
      break;
  }
  return !0;
};
Deflate$1.prototype.onData = function(rv) {
  this.chunks.push(rv);
};
Deflate$1.prototype.onEnd = function(rv) {
  rv === Z_OK$2 && (this.result = utils$1.flattenChunks(this.chunks)), this.chunks = [], this.err = rv, this.msg = this.strm.msg;
};
function deflate$1(rv, tv) {
  const ev = new Deflate$1(tv);
  if (ev.push(rv, !0), ev.err)
    throw ev.msg || msg$1[ev.err];
  return ev.result;
}
function deflateRaw$1(rv, tv) {
  return tv = tv || {}, tv.raw = !0, deflate$1(rv, tv);
}
function gzip$1(rv, tv) {
  return tv = tv || {}, tv.gzip = !0, deflate$1(rv, tv);
}
deflate$4.Deflate = Deflate$1;
deflate$4.deflate = deflate$1;
deflate$4.deflateRaw = deflateRaw$1;
deflate$4.gzip = gzip$1;
deflate$4.constants = constants$1;
var inflate$4 = {}, inflate$3 = {};
const BAD$1 = 16209, TYPE$1 = 16191;
var inffast = function rv(tv, ev) {
  let iv, ov, av, sv, lv, uv, cv, dv, hv, pv, yv, Sv, _v, Ev, wv, xv, Cv, Av, Ov, Lv, jv, Dv, Vv, Gv;
  const Yv = tv.state;
  iv = tv.next_in, Vv = tv.input, ov = iv + (tv.avail_in - 5), av = tv.next_out, Gv = tv.output, sv = av - (ev - tv.avail_out), lv = av + (tv.avail_out - 257), uv = Yv.dmax, cv = Yv.wsize, dv = Yv.whave, hv = Yv.wnext, pv = Yv.window, yv = Yv.hold, Sv = Yv.bits, _v = Yv.lencode, Ev = Yv.distcode, wv = (1 << Yv.lenbits) - 1, xv = (1 << Yv.distbits) - 1;
  e:
    do {
      Sv < 15 && (yv += Vv[iv++] << Sv, Sv += 8, yv += Vv[iv++] << Sv, Sv += 8), Cv = _v[yv & wv];
      t:
        for (; ; ) {
          if (Av = Cv >>> 24, yv >>>= Av, Sv -= Av, Av = Cv >>> 16 & 255, Av === 0)
            Gv[av++] = Cv & 65535;
          else if (Av & 16) {
            Ov = Cv & 65535, Av &= 15, Av && (Sv < Av && (yv += Vv[iv++] << Sv, Sv += 8), Ov += yv & (1 << Av) - 1, yv >>>= Av, Sv -= Av), Sv < 15 && (yv += Vv[iv++] << Sv, Sv += 8, yv += Vv[iv++] << Sv, Sv += 8), Cv = Ev[yv & xv];
            n:
              for (; ; ) {
                if (Av = Cv >>> 24, yv >>>= Av, Sv -= Av, Av = Cv >>> 16 & 255, Av & 16) {
                  if (Lv = Cv & 65535, Av &= 15, Sv < Av && (yv += Vv[iv++] << Sv, Sv += 8, Sv < Av && (yv += Vv[iv++] << Sv, Sv += 8)), Lv += yv & (1 << Av) - 1, Lv > uv) {
                    tv.msg = "invalid distance too far back", Yv.mode = BAD$1;
                    break e;
                  }
                  if (yv >>>= Av, Sv -= Av, Av = av - sv, Lv > Av) {
                    if (Av = Lv - Av, Av > dv && Yv.sane) {
                      tv.msg = "invalid distance too far back", Yv.mode = BAD$1;
                      break e;
                    }
                    if (jv = 0, Dv = pv, hv === 0) {
                      if (jv += cv - Av, Av < Ov) {
                        Ov -= Av;
                        do
                          Gv[av++] = pv[jv++];
                        while (--Av);
                        jv = av - Lv, Dv = Gv;
                      }
                    } else if (hv < Av) {
                      if (jv += cv + hv - Av, Av -= hv, Av < Ov) {
                        Ov -= Av;
                        do
                          Gv[av++] = pv[jv++];
                        while (--Av);
                        if (jv = 0, hv < Ov) {
                          Av = hv, Ov -= Av;
                          do
                            Gv[av++] = pv[jv++];
                          while (--Av);
                          jv = av - Lv, Dv = Gv;
                        }
                      }
                    } else if (jv += hv - Av, Av < Ov) {
                      Ov -= Av;
                      do
                        Gv[av++] = pv[jv++];
                      while (--Av);
                      jv = av - Lv, Dv = Gv;
                    }
                    for (; Ov > 2; )
                      Gv[av++] = Dv[jv++], Gv[av++] = Dv[jv++], Gv[av++] = Dv[jv++], Ov -= 3;
                    Ov && (Gv[av++] = Dv[jv++], Ov > 1 && (Gv[av++] = Dv[jv++]));
                  } else {
                    jv = av - Lv;
                    do
                      Gv[av++] = Gv[jv++], Gv[av++] = Gv[jv++], Gv[av++] = Gv[jv++], Ov -= 3;
                    while (Ov > 2);
                    Ov && (Gv[av++] = Gv[jv++], Ov > 1 && (Gv[av++] = Gv[jv++]));
                  }
                } else if (Av & 64) {
                  tv.msg = "invalid distance code", Yv.mode = BAD$1;
                  break e;
                } else {
                  Cv = Ev[(Cv & 65535) + (yv & (1 << Av) - 1)];
                  continue n;
                }
                break;
              }
          } else if (Av & 64)
            if (Av & 32) {
              Yv.mode = TYPE$1;
              break e;
            } else {
              tv.msg = "invalid literal/length code", Yv.mode = BAD$1;
              break e;
            }
          else {
            Cv = _v[(Cv & 65535) + (yv & (1 << Av) - 1)];
            continue t;
          }
          break;
        }
    } while (iv < ov && av < lv);
  Ov = Sv >> 3, iv -= Ov, Sv -= Ov << 3, yv &= (1 << Sv) - 1, tv.next_in = iv, tv.next_out = av, tv.avail_in = iv < ov ? 5 + (ov - iv) : 5 - (iv - ov), tv.avail_out = av < lv ? 257 + (lv - av) : 257 - (av - lv), Yv.hold = yv, Yv.bits = Sv;
};
const MAXBITS = 15, ENOUGH_LENS$1 = 852, ENOUGH_DISTS$1 = 592, CODES$1 = 0, LENS$1 = 1, DISTS$1 = 2, lbase = new Uint16Array([
  /* Length codes 257..285 base */
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  13,
  15,
  17,
  19,
  23,
  27,
  31,
  35,
  43,
  51,
  59,
  67,
  83,
  99,
  115,
  131,
  163,
  195,
  227,
  258,
  0,
  0
]), lext = new Uint8Array([
  /* Length codes 257..285 extra */
  16,
  16,
  16,
  16,
  16,
  16,
  16,
  16,
  17,
  17,
  17,
  17,
  18,
  18,
  18,
  18,
  19,
  19,
  19,
  19,
  20,
  20,
  20,
  20,
  21,
  21,
  21,
  21,
  16,
  72,
  78
]), dbase = new Uint16Array([
  /* Distance codes 0..29 base */
  1,
  2,
  3,
  4,
  5,
  7,
  9,
  13,
  17,
  25,
  33,
  49,
  65,
  97,
  129,
  193,
  257,
  385,
  513,
  769,
  1025,
  1537,
  2049,
  3073,
  4097,
  6145,
  8193,
  12289,
  16385,
  24577,
  0,
  0
]), dext = new Uint8Array([
  /* Distance codes 0..29 extra */
  16,
  16,
  16,
  16,
  17,
  17,
  18,
  18,
  19,
  19,
  20,
  20,
  21,
  21,
  22,
  22,
  23,
  23,
  24,
  24,
  25,
  25,
  26,
  26,
  27,
  27,
  28,
  28,
  29,
  29,
  64,
  64
]), inflate_table$1 = (rv, tv, ev, iv, ov, av, sv, lv) => {
  const uv = lv.bits;
  let cv = 0, dv = 0, hv = 0, pv = 0, yv = 0, Sv = 0, _v = 0, Ev = 0, wv = 0, xv = 0, Cv, Av, Ov, Lv, jv, Dv = null, Vv;
  const Gv = new Uint16Array(MAXBITS + 1), Yv = new Uint16Array(MAXBITS + 1);
  let Xv = null, L1, Bv, Qv;
  for (cv = 0; cv <= MAXBITS; cv++)
    Gv[cv] = 0;
  for (dv = 0; dv < iv; dv++)
    Gv[tv[ev + dv]]++;
  for (yv = uv, pv = MAXBITS; pv >= 1 && Gv[pv] === 0; pv--)
    ;
  if (yv > pv && (yv = pv), pv === 0)
    return ov[av++] = 1 << 24 | 64 << 16 | 0, ov[av++] = 1 << 24 | 64 << 16 | 0, lv.bits = 1, 0;
  for (hv = 1; hv < pv && Gv[hv] === 0; hv++)
    ;
  for (yv < hv && (yv = hv), Ev = 1, cv = 1; cv <= MAXBITS; cv++)
    if (Ev <<= 1, Ev -= Gv[cv], Ev < 0)
      return -1;
  if (Ev > 0 && (rv === CODES$1 || pv !== 1))
    return -1;
  for (Yv[1] = 0, cv = 1; cv < MAXBITS; cv++)
    Yv[cv + 1] = Yv[cv] + Gv[cv];
  for (dv = 0; dv < iv; dv++)
    tv[ev + dv] !== 0 && (sv[Yv[tv[ev + dv]]++] = dv);
  if (rv === CODES$1 ? (Dv = Xv = sv, Vv = 20) : rv === LENS$1 ? (Dv = lbase, Xv = lext, Vv = 257) : (Dv = dbase, Xv = dext, Vv = 0), xv = 0, dv = 0, cv = hv, jv = av, Sv = yv, _v = 0, Ov = -1, wv = 1 << yv, Lv = wv - 1, rv === LENS$1 && wv > ENOUGH_LENS$1 || rv === DISTS$1 && wv > ENOUGH_DISTS$1)
    return 1;
  for (; ; ) {
    L1 = cv - _v, sv[dv] + 1 < Vv ? (Bv = 0, Qv = sv[dv]) : sv[dv] >= Vv ? (Bv = Xv[sv[dv] - Vv], Qv = Dv[sv[dv] - Vv]) : (Bv = 96, Qv = 0), Cv = 1 << cv - _v, Av = 1 << Sv, hv = Av;
    do
      Av -= Cv, ov[jv + (xv >> _v) + Av] = L1 << 24 | Bv << 16 | Qv | 0;
    while (Av !== 0);
    for (Cv = 1 << cv - 1; xv & Cv; )
      Cv >>= 1;
    if (Cv !== 0 ? (xv &= Cv - 1, xv += Cv) : xv = 0, dv++, --Gv[cv] === 0) {
      if (cv === pv)
        break;
      cv = tv[ev + sv[dv]];
    }
    if (cv > yv && (xv & Lv) !== Ov) {
      for (_v === 0 && (_v = yv), jv += hv, Sv = cv - _v, Ev = 1 << Sv; Sv + _v < pv && (Ev -= Gv[Sv + _v], !(Ev <= 0)); )
        Sv++, Ev <<= 1;
      if (wv += 1 << Sv, rv === LENS$1 && wv > ENOUGH_LENS$1 || rv === DISTS$1 && wv > ENOUGH_DISTS$1)
        return 1;
      Ov = xv & Lv, ov[Ov] = yv << 24 | Sv << 16 | jv - av | 0;
    }
  }
  return xv !== 0 && (ov[jv + xv] = cv - _v << 24 | 64 << 16 | 0), lv.bits = yv, 0;
};
var inftrees = inflate_table$1;
const adler32 = adler32_1, crc32 = crc32_1, inflate_fast = inffast, inflate_table = inftrees, CODES = 0, LENS = 1, DISTS = 2, {
  Z_FINISH: Z_FINISH$1,
  Z_BLOCK,
  Z_TREES,
  Z_OK: Z_OK$1,
  Z_STREAM_END: Z_STREAM_END$1,
  Z_NEED_DICT: Z_NEED_DICT$1,
  Z_STREAM_ERROR: Z_STREAM_ERROR$1,
  Z_DATA_ERROR: Z_DATA_ERROR$1,
  Z_MEM_ERROR: Z_MEM_ERROR$1,
  Z_BUF_ERROR,
  Z_DEFLATED
} = constants$1, HEAD = 16180, FLAGS = 16181, TIME = 16182, OS = 16183, EXLEN = 16184, EXTRA = 16185, NAME = 16186, COMMENT = 16187, HCRC = 16188, DICTID = 16189, DICT = 16190, TYPE = 16191, TYPEDO = 16192, STORED = 16193, COPY_ = 16194, COPY = 16195, TABLE = 16196, LENLENS = 16197, CODELENS = 16198, LEN_ = 16199, LEN = 16200, LENEXT = 16201, DIST = 16202, DISTEXT = 16203, MATCH = 16204, LIT = 16205, CHECK = 16206, LENGTH = 16207, DONE = 16208, BAD = 16209, MEM = 16210, SYNC = 16211, ENOUGH_LENS = 852, ENOUGH_DISTS = 592, MAX_WBITS = 15, DEF_WBITS = MAX_WBITS, zswap32 = (rv) => (rv >>> 24 & 255) + (rv >>> 8 & 65280) + ((rv & 65280) << 8) + ((rv & 255) << 24);
function InflateState() {
  this.strm = null, this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new Uint16Array(320), this.work = new Uint16Array(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0;
}
const inflateStateCheck = (rv) => {
  if (!rv)
    return 1;
  const tv = rv.state;
  return !tv || tv.strm !== rv || tv.mode < HEAD || tv.mode > SYNC ? 1 : 0;
}, inflateResetKeep = (rv) => {
  if (inflateStateCheck(rv))
    return Z_STREAM_ERROR$1;
  const tv = rv.state;
  return rv.total_in = rv.total_out = tv.total = 0, rv.msg = "", tv.wrap && (rv.adler = tv.wrap & 1), tv.mode = HEAD, tv.last = 0, tv.havedict = 0, tv.flags = -1, tv.dmax = 32768, tv.head = null, tv.hold = 0, tv.bits = 0, tv.lencode = tv.lendyn = new Int32Array(ENOUGH_LENS), tv.distcode = tv.distdyn = new Int32Array(ENOUGH_DISTS), tv.sane = 1, tv.back = -1, Z_OK$1;
}, inflateReset = (rv) => {
  if (inflateStateCheck(rv))
    return Z_STREAM_ERROR$1;
  const tv = rv.state;
  return tv.wsize = 0, tv.whave = 0, tv.wnext = 0, inflateResetKeep(rv);
}, inflateReset2 = (rv, tv) => {
  let ev;
  if (inflateStateCheck(rv))
    return Z_STREAM_ERROR$1;
  const iv = rv.state;
  return tv < 0 ? (ev = 0, tv = -tv) : (ev = (tv >> 4) + 5, tv < 48 && (tv &= 15)), tv && (tv < 8 || tv > 15) ? Z_STREAM_ERROR$1 : (iv.window !== null && iv.wbits !== tv && (iv.window = null), iv.wrap = ev, iv.wbits = tv, inflateReset(rv));
}, inflateInit2 = (rv, tv) => {
  if (!rv)
    return Z_STREAM_ERROR$1;
  const ev = new InflateState();
  rv.state = ev, ev.strm = rv, ev.window = null, ev.mode = HEAD;
  const iv = inflateReset2(rv, tv);
  return iv !== Z_OK$1 && (rv.state = null), iv;
}, inflateInit = (rv) => inflateInit2(rv, DEF_WBITS);
let virgin = !0, lenfix, distfix;
const fixedtables = (rv) => {
  if (virgin) {
    lenfix = new Int32Array(512), distfix = new Int32Array(32);
    let tv = 0;
    for (; tv < 144; )
      rv.lens[tv++] = 8;
    for (; tv < 256; )
      rv.lens[tv++] = 9;
    for (; tv < 280; )
      rv.lens[tv++] = 7;
    for (; tv < 288; )
      rv.lens[tv++] = 8;
    for (inflate_table(LENS, rv.lens, 0, 288, lenfix, 0, rv.work, { bits: 9 }), tv = 0; tv < 32; )
      rv.lens[tv++] = 5;
    inflate_table(DISTS, rv.lens, 0, 32, distfix, 0, rv.work, { bits: 5 }), virgin = !1;
  }
  rv.lencode = lenfix, rv.lenbits = 9, rv.distcode = distfix, rv.distbits = 5;
}, updatewindow = (rv, tv, ev, iv) => {
  let ov;
  const av = rv.state;
  return av.window === null && (av.wsize = 1 << av.wbits, av.wnext = 0, av.whave = 0, av.window = new Uint8Array(av.wsize)), iv >= av.wsize ? (av.window.set(tv.subarray(ev - av.wsize, ev), 0), av.wnext = 0, av.whave = av.wsize) : (ov = av.wsize - av.wnext, ov > iv && (ov = iv), av.window.set(tv.subarray(ev - iv, ev - iv + ov), av.wnext), iv -= ov, iv ? (av.window.set(tv.subarray(ev - iv, ev), 0), av.wnext = iv, av.whave = av.wsize) : (av.wnext += ov, av.wnext === av.wsize && (av.wnext = 0), av.whave < av.wsize && (av.whave += ov))), 0;
}, inflate$2 = (rv, tv) => {
  let ev, iv, ov, av, sv, lv, uv, cv, dv, hv, pv, yv, Sv, _v, Ev = 0, wv, xv, Cv, Av, Ov, Lv, jv, Dv;
  const Vv = new Uint8Array(4);
  let Gv, Yv;
  const Xv = (
    /* permutation of code lengths */
    new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15])
  );
  if (inflateStateCheck(rv) || !rv.output || !rv.input && rv.avail_in !== 0)
    return Z_STREAM_ERROR$1;
  ev = rv.state, ev.mode === TYPE && (ev.mode = TYPEDO), sv = rv.next_out, ov = rv.output, uv = rv.avail_out, av = rv.next_in, iv = rv.input, lv = rv.avail_in, cv = ev.hold, dv = ev.bits, hv = lv, pv = uv, Dv = Z_OK$1;
  e:
    for (; ; )
      switch (ev.mode) {
        case HEAD:
          if (ev.wrap === 0) {
            ev.mode = TYPEDO;
            break;
          }
          for (; dv < 16; ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          if (ev.wrap & 2 && cv === 35615) {
            ev.wbits === 0 && (ev.wbits = 15), ev.check = 0, Vv[0] = cv & 255, Vv[1] = cv >>> 8 & 255, ev.check = crc32(ev.check, Vv, 2, 0), cv = 0, dv = 0, ev.mode = FLAGS;
            break;
          }
          if (ev.head && (ev.head.done = !1), !(ev.wrap & 1) || /* check if zlib header allowed */
          (((cv & 255) << 8) + (cv >> 8)) % 31) {
            rv.msg = "incorrect header check", ev.mode = BAD;
            break;
          }
          if ((cv & 15) !== Z_DEFLATED) {
            rv.msg = "unknown compression method", ev.mode = BAD;
            break;
          }
          if (cv >>>= 4, dv -= 4, jv = (cv & 15) + 8, ev.wbits === 0 && (ev.wbits = jv), jv > 15 || jv > ev.wbits) {
            rv.msg = "invalid window size", ev.mode = BAD;
            break;
          }
          ev.dmax = 1 << ev.wbits, ev.flags = 0, rv.adler = ev.check = 1, ev.mode = cv & 512 ? DICTID : TYPE, cv = 0, dv = 0;
          break;
        case FLAGS:
          for (; dv < 16; ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          if (ev.flags = cv, (ev.flags & 255) !== Z_DEFLATED) {
            rv.msg = "unknown compression method", ev.mode = BAD;
            break;
          }
          if (ev.flags & 57344) {
            rv.msg = "unknown header flags set", ev.mode = BAD;
            break;
          }
          ev.head && (ev.head.text = cv >> 8 & 1), ev.flags & 512 && ev.wrap & 4 && (Vv[0] = cv & 255, Vv[1] = cv >>> 8 & 255, ev.check = crc32(ev.check, Vv, 2, 0)), cv = 0, dv = 0, ev.mode = TIME;
        case TIME:
          for (; dv < 32; ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          ev.head && (ev.head.time = cv), ev.flags & 512 && ev.wrap & 4 && (Vv[0] = cv & 255, Vv[1] = cv >>> 8 & 255, Vv[2] = cv >>> 16 & 255, Vv[3] = cv >>> 24 & 255, ev.check = crc32(ev.check, Vv, 4, 0)), cv = 0, dv = 0, ev.mode = OS;
        case OS:
          for (; dv < 16; ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          ev.head && (ev.head.xflags = cv & 255, ev.head.os = cv >> 8), ev.flags & 512 && ev.wrap & 4 && (Vv[0] = cv & 255, Vv[1] = cv >>> 8 & 255, ev.check = crc32(ev.check, Vv, 2, 0)), cv = 0, dv = 0, ev.mode = EXLEN;
        case EXLEN:
          if (ev.flags & 1024) {
            for (; dv < 16; ) {
              if (lv === 0)
                break e;
              lv--, cv += iv[av++] << dv, dv += 8;
            }
            ev.length = cv, ev.head && (ev.head.extra_len = cv), ev.flags & 512 && ev.wrap & 4 && (Vv[0] = cv & 255, Vv[1] = cv >>> 8 & 255, ev.check = crc32(ev.check, Vv, 2, 0)), cv = 0, dv = 0;
          } else
            ev.head && (ev.head.extra = null);
          ev.mode = EXTRA;
        case EXTRA:
          if (ev.flags & 1024 && (yv = ev.length, yv > lv && (yv = lv), yv && (ev.head && (jv = ev.head.extra_len - ev.length, ev.head.extra || (ev.head.extra = new Uint8Array(ev.head.extra_len)), ev.head.extra.set(
            iv.subarray(
              av,
              // extra field is limited to 65536 bytes
              // - no need for additional size check
              av + yv
            ),
            /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
            jv
          )), ev.flags & 512 && ev.wrap & 4 && (ev.check = crc32(ev.check, iv, yv, av)), lv -= yv, av += yv, ev.length -= yv), ev.length))
            break e;
          ev.length = 0, ev.mode = NAME;
        case NAME:
          if (ev.flags & 2048) {
            if (lv === 0)
              break e;
            yv = 0;
            do
              jv = iv[av + yv++], ev.head && jv && ev.length < 65536 && (ev.head.name += String.fromCharCode(jv));
            while (jv && yv < lv);
            if (ev.flags & 512 && ev.wrap & 4 && (ev.check = crc32(ev.check, iv, yv, av)), lv -= yv, av += yv, jv)
              break e;
          } else
            ev.head && (ev.head.name = null);
          ev.length = 0, ev.mode = COMMENT;
        case COMMENT:
          if (ev.flags & 4096) {
            if (lv === 0)
              break e;
            yv = 0;
            do
              jv = iv[av + yv++], ev.head && jv && ev.length < 65536 && (ev.head.comment += String.fromCharCode(jv));
            while (jv && yv < lv);
            if (ev.flags & 512 && ev.wrap & 4 && (ev.check = crc32(ev.check, iv, yv, av)), lv -= yv, av += yv, jv)
              break e;
          } else
            ev.head && (ev.head.comment = null);
          ev.mode = HCRC;
        case HCRC:
          if (ev.flags & 512) {
            for (; dv < 16; ) {
              if (lv === 0)
                break e;
              lv--, cv += iv[av++] << dv, dv += 8;
            }
            if (ev.wrap & 4 && cv !== (ev.check & 65535)) {
              rv.msg = "header crc mismatch", ev.mode = BAD;
              break;
            }
            cv = 0, dv = 0;
          }
          ev.head && (ev.head.hcrc = ev.flags >> 9 & 1, ev.head.done = !0), rv.adler = ev.check = 0, ev.mode = TYPE;
          break;
        case DICTID:
          for (; dv < 32; ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          rv.adler = ev.check = zswap32(cv), cv = 0, dv = 0, ev.mode = DICT;
        case DICT:
          if (ev.havedict === 0)
            return rv.next_out = sv, rv.avail_out = uv, rv.next_in = av, rv.avail_in = lv, ev.hold = cv, ev.bits = dv, Z_NEED_DICT$1;
          rv.adler = ev.check = 1, ev.mode = TYPE;
        case TYPE:
          if (tv === Z_BLOCK || tv === Z_TREES)
            break e;
        case TYPEDO:
          if (ev.last) {
            cv >>>= dv & 7, dv -= dv & 7, ev.mode = CHECK;
            break;
          }
          for (; dv < 3; ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          switch (ev.last = cv & 1, cv >>>= 1, dv -= 1, cv & 3) {
            case 0:
              ev.mode = STORED;
              break;
            case 1:
              if (fixedtables(ev), ev.mode = LEN_, tv === Z_TREES) {
                cv >>>= 2, dv -= 2;
                break e;
              }
              break;
            case 2:
              ev.mode = TABLE;
              break;
            case 3:
              rv.msg = "invalid block type", ev.mode = BAD;
          }
          cv >>>= 2, dv -= 2;
          break;
        case STORED:
          for (cv >>>= dv & 7, dv -= dv & 7; dv < 32; ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          if ((cv & 65535) !== (cv >>> 16 ^ 65535)) {
            rv.msg = "invalid stored block lengths", ev.mode = BAD;
            break;
          }
          if (ev.length = cv & 65535, cv = 0, dv = 0, ev.mode = COPY_, tv === Z_TREES)
            break e;
        case COPY_:
          ev.mode = COPY;
        case COPY:
          if (yv = ev.length, yv) {
            if (yv > lv && (yv = lv), yv > uv && (yv = uv), yv === 0)
              break e;
            ov.set(iv.subarray(av, av + yv), sv), lv -= yv, av += yv, uv -= yv, sv += yv, ev.length -= yv;
            break;
          }
          ev.mode = TYPE;
          break;
        case TABLE:
          for (; dv < 14; ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          if (ev.nlen = (cv & 31) + 257, cv >>>= 5, dv -= 5, ev.ndist = (cv & 31) + 1, cv >>>= 5, dv -= 5, ev.ncode = (cv & 15) + 4, cv >>>= 4, dv -= 4, ev.nlen > 286 || ev.ndist > 30) {
            rv.msg = "too many length or distance symbols", ev.mode = BAD;
            break;
          }
          ev.have = 0, ev.mode = LENLENS;
        case LENLENS:
          for (; ev.have < ev.ncode; ) {
            for (; dv < 3; ) {
              if (lv === 0)
                break e;
              lv--, cv += iv[av++] << dv, dv += 8;
            }
            ev.lens[Xv[ev.have++]] = cv & 7, cv >>>= 3, dv -= 3;
          }
          for (; ev.have < 19; )
            ev.lens[Xv[ev.have++]] = 0;
          if (ev.lencode = ev.lendyn, ev.lenbits = 7, Gv = { bits: ev.lenbits }, Dv = inflate_table(CODES, ev.lens, 0, 19, ev.lencode, 0, ev.work, Gv), ev.lenbits = Gv.bits, Dv) {
            rv.msg = "invalid code lengths set", ev.mode = BAD;
            break;
          }
          ev.have = 0, ev.mode = CODELENS;
        case CODELENS:
          for (; ev.have < ev.nlen + ev.ndist; ) {
            for (; Ev = ev.lencode[cv & (1 << ev.lenbits) - 1], wv = Ev >>> 24, xv = Ev >>> 16 & 255, Cv = Ev & 65535, !(wv <= dv); ) {
              if (lv === 0)
                break e;
              lv--, cv += iv[av++] << dv, dv += 8;
            }
            if (Cv < 16)
              cv >>>= wv, dv -= wv, ev.lens[ev.have++] = Cv;
            else {
              if (Cv === 16) {
                for (Yv = wv + 2; dv < Yv; ) {
                  if (lv === 0)
                    break e;
                  lv--, cv += iv[av++] << dv, dv += 8;
                }
                if (cv >>>= wv, dv -= wv, ev.have === 0) {
                  rv.msg = "invalid bit length repeat", ev.mode = BAD;
                  break;
                }
                jv = ev.lens[ev.have - 1], yv = 3 + (cv & 3), cv >>>= 2, dv -= 2;
              } else if (Cv === 17) {
                for (Yv = wv + 3; dv < Yv; ) {
                  if (lv === 0)
                    break e;
                  lv--, cv += iv[av++] << dv, dv += 8;
                }
                cv >>>= wv, dv -= wv, jv = 0, yv = 3 + (cv & 7), cv >>>= 3, dv -= 3;
              } else {
                for (Yv = wv + 7; dv < Yv; ) {
                  if (lv === 0)
                    break e;
                  lv--, cv += iv[av++] << dv, dv += 8;
                }
                cv >>>= wv, dv -= wv, jv = 0, yv = 11 + (cv & 127), cv >>>= 7, dv -= 7;
              }
              if (ev.have + yv > ev.nlen + ev.ndist) {
                rv.msg = "invalid bit length repeat", ev.mode = BAD;
                break;
              }
              for (; yv--; )
                ev.lens[ev.have++] = jv;
            }
          }
          if (ev.mode === BAD)
            break;
          if (ev.lens[256] === 0) {
            rv.msg = "invalid code -- missing end-of-block", ev.mode = BAD;
            break;
          }
          if (ev.lenbits = 9, Gv = { bits: ev.lenbits }, Dv = inflate_table(LENS, ev.lens, 0, ev.nlen, ev.lencode, 0, ev.work, Gv), ev.lenbits = Gv.bits, Dv) {
            rv.msg = "invalid literal/lengths set", ev.mode = BAD;
            break;
          }
          if (ev.distbits = 6, ev.distcode = ev.distdyn, Gv = { bits: ev.distbits }, Dv = inflate_table(DISTS, ev.lens, ev.nlen, ev.ndist, ev.distcode, 0, ev.work, Gv), ev.distbits = Gv.bits, Dv) {
            rv.msg = "invalid distances set", ev.mode = BAD;
            break;
          }
          if (ev.mode = LEN_, tv === Z_TREES)
            break e;
        case LEN_:
          ev.mode = LEN;
        case LEN:
          if (lv >= 6 && uv >= 258) {
            rv.next_out = sv, rv.avail_out = uv, rv.next_in = av, rv.avail_in = lv, ev.hold = cv, ev.bits = dv, inflate_fast(rv, pv), sv = rv.next_out, ov = rv.output, uv = rv.avail_out, av = rv.next_in, iv = rv.input, lv = rv.avail_in, cv = ev.hold, dv = ev.bits, ev.mode === TYPE && (ev.back = -1);
            break;
          }
          for (ev.back = 0; Ev = ev.lencode[cv & (1 << ev.lenbits) - 1], wv = Ev >>> 24, xv = Ev >>> 16 & 255, Cv = Ev & 65535, !(wv <= dv); ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          if (xv && !(xv & 240)) {
            for (Av = wv, Ov = xv, Lv = Cv; Ev = ev.lencode[Lv + ((cv & (1 << Av + Ov) - 1) >> Av)], wv = Ev >>> 24, xv = Ev >>> 16 & 255, Cv = Ev & 65535, !(Av + wv <= dv); ) {
              if (lv === 0)
                break e;
              lv--, cv += iv[av++] << dv, dv += 8;
            }
            cv >>>= Av, dv -= Av, ev.back += Av;
          }
          if (cv >>>= wv, dv -= wv, ev.back += wv, ev.length = Cv, xv === 0) {
            ev.mode = LIT;
            break;
          }
          if (xv & 32) {
            ev.back = -1, ev.mode = TYPE;
            break;
          }
          if (xv & 64) {
            rv.msg = "invalid literal/length code", ev.mode = BAD;
            break;
          }
          ev.extra = xv & 15, ev.mode = LENEXT;
        case LENEXT:
          if (ev.extra) {
            for (Yv = ev.extra; dv < Yv; ) {
              if (lv === 0)
                break e;
              lv--, cv += iv[av++] << dv, dv += 8;
            }
            ev.length += cv & (1 << ev.extra) - 1, cv >>>= ev.extra, dv -= ev.extra, ev.back += ev.extra;
          }
          ev.was = ev.length, ev.mode = DIST;
        case DIST:
          for (; Ev = ev.distcode[cv & (1 << ev.distbits) - 1], wv = Ev >>> 24, xv = Ev >>> 16 & 255, Cv = Ev & 65535, !(wv <= dv); ) {
            if (lv === 0)
              break e;
            lv--, cv += iv[av++] << dv, dv += 8;
          }
          if (!(xv & 240)) {
            for (Av = wv, Ov = xv, Lv = Cv; Ev = ev.distcode[Lv + ((cv & (1 << Av + Ov) - 1) >> Av)], wv = Ev >>> 24, xv = Ev >>> 16 & 255, Cv = Ev & 65535, !(Av + wv <= dv); ) {
              if (lv === 0)
                break e;
              lv--, cv += iv[av++] << dv, dv += 8;
            }
            cv >>>= Av, dv -= Av, ev.back += Av;
          }
          if (cv >>>= wv, dv -= wv, ev.back += wv, xv & 64) {
            rv.msg = "invalid distance code", ev.mode = BAD;
            break;
          }
          ev.offset = Cv, ev.extra = xv & 15, ev.mode = DISTEXT;
        case DISTEXT:
          if (ev.extra) {
            for (Yv = ev.extra; dv < Yv; ) {
              if (lv === 0)
                break e;
              lv--, cv += iv[av++] << dv, dv += 8;
            }
            ev.offset += cv & (1 << ev.extra) - 1, cv >>>= ev.extra, dv -= ev.extra, ev.back += ev.extra;
          }
          if (ev.offset > ev.dmax) {
            rv.msg = "invalid distance too far back", ev.mode = BAD;
            break;
          }
          ev.mode = MATCH;
        case MATCH:
          if (uv === 0)
            break e;
          if (yv = pv - uv, ev.offset > yv) {
            if (yv = ev.offset - yv, yv > ev.whave && ev.sane) {
              rv.msg = "invalid distance too far back", ev.mode = BAD;
              break;
            }
            yv > ev.wnext ? (yv -= ev.wnext, Sv = ev.wsize - yv) : Sv = ev.wnext - yv, yv > ev.length && (yv = ev.length), _v = ev.window;
          } else
            _v = ov, Sv = sv - ev.offset, yv = ev.length;
          yv > uv && (yv = uv), uv -= yv, ev.length -= yv;
          do
            ov[sv++] = _v[Sv++];
          while (--yv);
          ev.length === 0 && (ev.mode = LEN);
          break;
        case LIT:
          if (uv === 0)
            break e;
          ov[sv++] = ev.length, uv--, ev.mode = LEN;
          break;
        case CHECK:
          if (ev.wrap) {
            for (; dv < 32; ) {
              if (lv === 0)
                break e;
              lv--, cv |= iv[av++] << dv, dv += 8;
            }
            if (pv -= uv, rv.total_out += pv, ev.total += pv, ev.wrap & 4 && pv && (rv.adler = ev.check = /*UPDATE_CHECK(state.check, put - _out, _out);*/
            ev.flags ? crc32(ev.check, ov, pv, sv - pv) : adler32(ev.check, ov, pv, sv - pv)), pv = uv, ev.wrap & 4 && (ev.flags ? cv : zswap32(cv)) !== ev.check) {
              rv.msg = "incorrect data check", ev.mode = BAD;
              break;
            }
            cv = 0, dv = 0;
          }
          ev.mode = LENGTH;
        case LENGTH:
          if (ev.wrap && ev.flags) {
            for (; dv < 32; ) {
              if (lv === 0)
                break e;
              lv--, cv += iv[av++] << dv, dv += 8;
            }
            if (ev.wrap & 4 && cv !== (ev.total & 4294967295)) {
              rv.msg = "incorrect length check", ev.mode = BAD;
              break;
            }
            cv = 0, dv = 0;
          }
          ev.mode = DONE;
        case DONE:
          Dv = Z_STREAM_END$1;
          break e;
        case BAD:
          Dv = Z_DATA_ERROR$1;
          break e;
        case MEM:
          return Z_MEM_ERROR$1;
        case SYNC:
        default:
          return Z_STREAM_ERROR$1;
      }
  return rv.next_out = sv, rv.avail_out = uv, rv.next_in = av, rv.avail_in = lv, ev.hold = cv, ev.bits = dv, (ev.wsize || pv !== rv.avail_out && ev.mode < BAD && (ev.mode < CHECK || tv !== Z_FINISH$1)) && updatewindow(rv, rv.output, rv.next_out, pv - rv.avail_out), hv -= rv.avail_in, pv -= rv.avail_out, rv.total_in += hv, rv.total_out += pv, ev.total += pv, ev.wrap & 4 && pv && (rv.adler = ev.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/
  ev.flags ? crc32(ev.check, ov, pv, rv.next_out - pv) : adler32(ev.check, ov, pv, rv.next_out - pv)), rv.data_type = ev.bits + (ev.last ? 64 : 0) + (ev.mode === TYPE ? 128 : 0) + (ev.mode === LEN_ || ev.mode === COPY_ ? 256 : 0), (hv === 0 && pv === 0 || tv === Z_FINISH$1) && Dv === Z_OK$1 && (Dv = Z_BUF_ERROR), Dv;
}, inflateEnd = (rv) => {
  if (inflateStateCheck(rv))
    return Z_STREAM_ERROR$1;
  let tv = rv.state;
  return tv.window && (tv.window = null), rv.state = null, Z_OK$1;
}, inflateGetHeader = (rv, tv) => {
  if (inflateStateCheck(rv))
    return Z_STREAM_ERROR$1;
  const ev = rv.state;
  return ev.wrap & 2 ? (ev.head = tv, tv.done = !1, Z_OK$1) : Z_STREAM_ERROR$1;
}, inflateSetDictionary = (rv, tv) => {
  const ev = tv.length;
  let iv, ov, av;
  return inflateStateCheck(rv) || (iv = rv.state, iv.wrap !== 0 && iv.mode !== DICT) ? Z_STREAM_ERROR$1 : iv.mode === DICT && (ov = 1, ov = adler32(ov, tv, ev, 0), ov !== iv.check) ? Z_DATA_ERROR$1 : (av = updatewindow(rv, tv, ev, ev), av ? (iv.mode = MEM, Z_MEM_ERROR$1) : (iv.havedict = 1, Z_OK$1));
};
inflate$3.inflateReset = inflateReset;
inflate$3.inflateReset2 = inflateReset2;
inflate$3.inflateResetKeep = inflateResetKeep;
inflate$3.inflateInit = inflateInit;
inflate$3.inflateInit2 = inflateInit2;
inflate$3.inflate = inflate$2;
inflate$3.inflateEnd = inflateEnd;
inflate$3.inflateGetHeader = inflateGetHeader;
inflate$3.inflateSetDictionary = inflateSetDictionary;
inflate$3.inflateInfo = "pako inflate (from Nodeca project)";
function GZheader$1() {
  this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1;
}
var gzheader = GZheader$1;
const zlib_inflate = inflate$3, utils = common, strings = strings$2, msg = messages, ZStream = zstream, GZheader = gzheader, toString$1 = Object.prototype.toString, {
  Z_NO_FLUSH,
  Z_FINISH,
  Z_OK,
  Z_STREAM_END,
  Z_NEED_DICT,
  Z_STREAM_ERROR,
  Z_DATA_ERROR,
  Z_MEM_ERROR
} = constants$1;
function Inflate$1(rv) {
  this.options = utils.assign({
    chunkSize: 1024 * 64,
    windowBits: 15,
    to: ""
  }, rv || {});
  const tv = this.options;
  tv.raw && tv.windowBits >= 0 && tv.windowBits < 16 && (tv.windowBits = -tv.windowBits, tv.windowBits === 0 && (tv.windowBits = -15)), tv.windowBits >= 0 && tv.windowBits < 16 && !(rv && rv.windowBits) && (tv.windowBits += 32), tv.windowBits > 15 && tv.windowBits < 48 && (tv.windowBits & 15 || (tv.windowBits |= 15)), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new ZStream(), this.strm.avail_out = 0;
  let ev = zlib_inflate.inflateInit2(
    this.strm,
    tv.windowBits
  );
  if (ev !== Z_OK)
    throw new Error(msg[ev]);
  if (this.header = new GZheader(), zlib_inflate.inflateGetHeader(this.strm, this.header), tv.dictionary && (typeof tv.dictionary == "string" ? tv.dictionary = strings.string2buf(tv.dictionary) : toString$1.call(tv.dictionary) === "[object ArrayBuffer]" && (tv.dictionary = new Uint8Array(tv.dictionary)), tv.raw && (ev = zlib_inflate.inflateSetDictionary(this.strm, tv.dictionary), ev !== Z_OK)))
    throw new Error(msg[ev]);
}
Inflate$1.prototype.push = function(rv, tv) {
  const ev = this.strm, iv = this.options.chunkSize, ov = this.options.dictionary;
  let av, sv, lv;
  if (this.ended)
    return !1;
  for (tv === ~~tv ? sv = tv : sv = tv === !0 ? Z_FINISH : Z_NO_FLUSH, toString$1.call(rv) === "[object ArrayBuffer]" ? ev.input = new Uint8Array(rv) : ev.input = rv, ev.next_in = 0, ev.avail_in = ev.input.length; ; ) {
    for (ev.avail_out === 0 && (ev.output = new Uint8Array(iv), ev.next_out = 0, ev.avail_out = iv), av = zlib_inflate.inflate(ev, sv), av === Z_NEED_DICT && ov && (av = zlib_inflate.inflateSetDictionary(ev, ov), av === Z_OK ? av = zlib_inflate.inflate(ev, sv) : av === Z_DATA_ERROR && (av = Z_NEED_DICT)); ev.avail_in > 0 && av === Z_STREAM_END && ev.state.wrap > 0 && rv[ev.next_in] !== 0; )
      zlib_inflate.inflateReset(ev), av = zlib_inflate.inflate(ev, sv);
    switch (av) {
      case Z_STREAM_ERROR:
      case Z_DATA_ERROR:
      case Z_NEED_DICT:
      case Z_MEM_ERROR:
        return this.onEnd(av), this.ended = !0, !1;
    }
    if (lv = ev.avail_out, ev.next_out && (ev.avail_out === 0 || av === Z_STREAM_END))
      if (this.options.to === "string") {
        let uv = strings.utf8border(ev.output, ev.next_out), cv = ev.next_out - uv, dv = strings.buf2string(ev.output, uv);
        ev.next_out = cv, ev.avail_out = iv - cv, cv && ev.output.set(ev.output.subarray(uv, uv + cv), 0), this.onData(dv);
      } else
        this.onData(ev.output.length === ev.next_out ? ev.output : ev.output.subarray(0, ev.next_out));
    if (!(av === Z_OK && lv === 0)) {
      if (av === Z_STREAM_END)
        return av = zlib_inflate.inflateEnd(this.strm), this.onEnd(av), this.ended = !0, !0;
      if (ev.avail_in === 0)
        break;
    }
  }
  return !0;
};
Inflate$1.prototype.onData = function(rv) {
  this.chunks.push(rv);
};
Inflate$1.prototype.onEnd = function(rv) {
  rv === Z_OK && (this.options.to === "string" ? this.result = this.chunks.join("") : this.result = utils.flattenChunks(this.chunks)), this.chunks = [], this.err = rv, this.msg = this.strm.msg;
};
function inflate$1(rv, tv) {
  const ev = new Inflate$1(tv);
  if (ev.push(rv), ev.err)
    throw ev.msg || msg[ev.err];
  return ev.result;
}
function inflateRaw$1(rv, tv) {
  return tv = tv || {}, tv.raw = !0, inflate$1(rv, tv);
}
inflate$4.Inflate = Inflate$1;
inflate$4.inflate = inflate$1;
inflate$4.inflateRaw = inflateRaw$1;
inflate$4.ungzip = inflate$1;
inflate$4.constants = constants$1;
const { Deflate, deflate, deflateRaw, gzip } = deflate$4, { Inflate, inflate, inflateRaw, ungzip } = inflate$4, constants = constants$1;
pako$1.Deflate = Deflate;
pako$1.deflate = deflate;
pako$1.deflateRaw = deflateRaw;
pako$1.gzip = gzip;
pako$1.Inflate = Inflate;
pako$1.inflate = inflate;
pako$1.inflateRaw = inflateRaw;
pako$1.ungzip = ungzip;
pako$1.constants = constants;
Object.defineProperty(ZLIBTextCompressor$1, "__esModule", { value: !0 });
const pako = pako$1;
class ZLIBTextCompressor {
  /**
   * Constructs an instance of [[ZLIBTextCompressor]]
   * @param logger
   */
  constructor(tv) {
    this.logger = tv;
  }
  /**
   * Compresses the given text.
   *
   * Note: The dictionary used during compression should be the same as
   * that being used during decompression.
   *
   * @param text - the text that needs to be compressed
   * @param dictionary - that will be used to seed the compression
   *      library to improve compression's performance
   * @returns a compressed text
   */
  compress(tv, ev) {
    if (ev.length > 0) {
      const av = Math.min(ev.length, ZLIBTextCompressor.MAX_DICTIONARY_SIZE);
      ev = ev.slice(0, av);
    }
    const iv = {
      memLevel: ZLIBTextCompressor.Z_MEM_LEVEL,
      dictionary: ev
    };
    return pako.deflateRaw(tv, iv);
  }
  /**
   * Decompresses the given text and returns the original text.
   *
   * Note: The dictionary used during compression should be the same as
   * that being used during decompression.
   *
   * @param compressedText that will be decompressed
   * @param dictionary that will be used to seed the compression library to improve
   *      decompression's performance
   * @returns decompressed string
   */
  decompress(tv, ev) {
    if (ev.length > 0) {
      const av = Math.min(ev.length, ZLIBTextCompressor.MAX_DICTIONARY_SIZE);
      ev = ev.slice(0, av);
    }
    const iv = {
      to: "string",
      dictionary: ev,
      chunkSize: 4096
    };
    let ov = "";
    try {
      ov = pako.inflateRaw(tv, iv);
    } catch (av) {
      this.logger.error(`failed to decompress the string with error: [${av}]`);
    }
    return ov;
  }
}
ZLIBTextCompressor$1.default = ZLIBTextCompressor;
ZLIBTextCompressor.Z_MEM_LEVEL = 9;
ZLIBTextCompressor.MAX_DICTIONARY_SIZE = 31744;
var SignalingClientSubscribe$1 = {};
Object.defineProperty(SignalingClientSubscribe$1, "__esModule", { value: !0 });
class SignalingClientSubscribe {
  /** Initializes a SignalingClientSubscribe with the given properties.
   *
   * @param attendeeId Attendee ID of the client
   * @param sdpOffer SDP offer created by WebRTC
   * @param audioHost host
   * @param audioMuted Whether audio from client is muted
   * @param audioCheckin Whether audio is in checked-in state
   * @param receiveStreamIds Which video streams to receive
   * @param localVideoEnabled Whether to send a video stream for the local camera
   * @param array of local video stream description
   * @param connectionTypeHasVideo Whether connection type has video
   * @param compressedSdpOffer Compressed version of the SDP offer which was created by WebRTC
   */
  constructor(tv, ev, iv, ov, av, sv, lv, uv, cv, dv) {
    this.attendeeId = tv, this.sdpOffer = ev, this.audioHost = iv, this.audioMuted = ov, this.audioCheckin = av, this.receiveStreamIds = sv, this.localVideoEnabled = lv, this.videoStreamDescriptions = uv, this.connectionTypeHasVideo = cv, this.compressedSdpOffer = dv;
  }
}
SignalingClientSubscribe$1.default = SignalingClientSubscribe;
var __awaiter$p = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(SubscribeAndReceiveSubscribeAckTask$1, "__esModule", { value: !0 });
const MeetingSessionStatus_1 = MeetingSessionStatus$1, MeetingSessionStatusCode_1$1 = MeetingSessionStatusCode, DefaultSDP_1 = DefaultSDP$1, ZLIBTextCompressor_1 = ZLIBTextCompressor$1, SignalingClientEventType_1 = SignalingClientEventType, SignalingClientSubscribe_1 = SignalingClientSubscribe$1, SignalingProtocol_js_1$3 = SignalingProtocol, BaseTask_1$4 = BaseTask$1;
class SubscribeAndReceiveSubscribeAckTask extends BaseTask_1$4.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "SubscribeAndReceiveSubscribeAckTask", this.taskCanceler = null, this.textCompressor = new ZLIBTextCompressor_1.default(tv.logger);
  }
  cancel() {
    this.taskCanceler && (this.taskCanceler.cancel(), this.taskCanceler = null);
  }
  run() {
    return __awaiter$p(this, void 0, void 0, function* () {
      let tv = "";
      if (this.context.peer && this.context.peer.localDescription && (this.context.browserBehavior.requiresUnifiedPlanMunging() ? tv = new DefaultSDP_1.default(this.context.peer.localDescription.sdp).withUnifiedPlanFormat().sdp : tv = this.context.peer.localDescription.sdp), !this.context.enableSimulcast) {
        let cv = 0, dv = 0;
        this.context.videoCaptureAndEncodeParameter && (cv = this.context.videoCaptureAndEncodeParameter.captureFrameRate(), dv = this.context.videoCaptureAndEncodeParameter.encodeBitrates()[0]);
        const hv = {
          rid: "hi",
          maxBitrate: dv * 1e3,
          maxFramerate: cv,
          active: !0
        };
        this.context.videoStreamIndex.integrateUplinkPolicyDecision([hv]);
      }
      this.context.videoStreamIndex.subscribeFrameSent();
      const ev = this.context.browserBehavior.requiresUnifiedPlan() ? this.fixUpSubscriptionOrder(tv, this.context.videoSubscriptions) : this.context.videoSubscriptions, iv = this.context.videoDuplexMode === SignalingProtocol_js_1$3.SdkStreamServiceType.TX || this.context.videoDuplexMode === SignalingProtocol_js_1$3.SdkStreamServiceType.DUPLEX;
      let ov;
      const av = tv;
      if (this.context.serverSupportsCompression) {
        const cv = this.context.previousSdpOffer ? this.context.previousSdpOffer.sdp : "";
        ov = this.textCompressor.compress(av, cv), this.context.logger.info(`Compressed the SDP message from ${av.length} to ${ov.length} bytes.`), tv = "";
      }
      this.context.previousSdpOffer = new DefaultSDP_1.default(av);
      const sv = new SignalingClientSubscribe_1.default(
        this.context.meetingSessionConfiguration.credentials.attendeeId,
        tv,
        this.context.meetingSessionConfiguration.urls.audioHostURL,
        this.context.realtimeController.realtimeIsLocalAudioMuted(),
        !1,
        ev,
        iv,
        this.context.videoStreamIndex.localStreamDescriptions(),
        // TODO: handle check-in mode, or remove this param
        !0,
        ov
      );
      this.context.logger.info(`sending subscribe: ${JSON.stringify(sv)}`), this.context.signalingClient.subscribe(sv);
      const lv = yield this.receiveSubscribeAck();
      this.context.logger.info(`got subscribe ack: ${JSON.stringify(lv)}`);
      let uv = "";
      lv.compressedSdpAnswer && lv.compressedSdpAnswer.length ? (uv = this.textCompressor.decompress(lv.compressedSdpAnswer, this.context.previousSdpAnswerAsString), uv.length === 0 && (this.context.sdpAnswer = "", this.context.previousSdpAnswerAsString = "", this.logAndThrow("Error occurred while trying to decompress the SDP answer.")), this.context.logger.info(`Decompressed the SDP message from ${lv.compressedSdpAnswer.length} to ${uv.length} bytes.`), this.context.sdpAnswer = uv) : this.context.sdpAnswer = lv.sdpAnswer, this.context.previousSdpAnswerAsString = this.context.sdpAnswer, this.context.videoStreamIndex.integrateSubscribeAckFrame(lv);
    });
  }
  // Our backends currently expect the video subscriptions passed in subscribe to precisely
  // line up with the media sections, with a zero for any video send or inactive section.
  //
  // Firefox occasionally tosses stopped transceivers at the end of the SDP without reason
  // and in general we don't want to be at the mercy of SDP sections not being in the same
  // order as `getTransceivers`, so we simply recalculate the array here to enforce that
  // expected invarient until we refactor our signaling to simply take a mapping of MID to
  // subscription.
  //
  // This only works on Unified Plan SDPs
  fixUpSubscriptionOrder(tv, ev) {
    if (this.context.transceiverController.getMidForStreamId === void 0)
      return ev;
    const iv = /* @__PURE__ */ new Map();
    for (const sv of ev) {
      const lv = this.context.transceiverController.getMidForStreamId(sv);
      if (lv === void 0) {
        sv !== 0 && this.context.logger.warn(`Could not find MID for stream ID: ${sv}`);
        continue;
      }
      iv.set(lv, sv);
    }
    const ov = new DefaultSDP_1.default(tv).mediaSections(), av = [];
    for (const sv of ov)
      if (sv.mediaType === "video")
        if (sv.direction === "recvonly") {
          const lv = iv.get(sv.mid);
          if (lv === void 0) {
            this.context.logger.warn(`Could not find stream ID for MID: ${sv.mid}`);
            continue;
          }
          av.push(lv);
        } else
          av.push(0);
    return this.context.logger.info(`Fixed up ${JSON.stringify(ev)} to ${JSON.stringify(av)} (may be same))}`), av;
  }
  receiveSubscribeAck() {
    return new Promise((tv, ev) => {
      const iv = this.context;
      class ov {
        constructor(lv) {
          this.signalingClient = lv;
        }
        cancel() {
          this.signalingClient.removeObserver(this), ev(new Error("SubscribeAndReceiveSubscribeAckTask got canceled while waiting for SdkSubscribeAckFrame"));
        }
        handleSignalingClientEvent(lv) {
          if (lv.isConnectionTerminated()) {
            const cv = `SubscribeAndReceiveSubscribeAckTask connection was terminated with code ${lv.closeCode} and reason: ${lv.closeReason}`;
            iv.logger.warn(cv);
            let dv = MeetingSessionStatusCode_1$1.default.TaskFailed;
            lv.closeCode >= 4500 && lv.closeCode < 4600 && (dv = MeetingSessionStatusCode_1$1.default.SignalingInternalServerError), iv.audioVideoController.handleMeetingSessionStatus(new MeetingSessionStatus_1.default(dv), new Error(cv));
            return;
          }
          if (lv.type !== SignalingClientEventType_1.default.ReceivedSignalFrame || lv.message.type !== SignalingProtocol_js_1$3.SdkSignalFrame.Type.SUBSCRIBE_ACK)
            return;
          this.signalingClient.removeObserver(this);
          const uv = lv.message.suback;
          tv(uv);
        }
      }
      const av = new ov(this.context.signalingClient);
      this.context.signalingClient.registerObserver(av), this.taskCanceler = av;
    });
  }
}
SubscribeAndReceiveSubscribeAckTask$1.default = SubscribeAndReceiveSubscribeAckTask;
var TimeoutTask$1 = {}, __awaiter$o = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(TimeoutTask$1, "__esModule", { value: !0 });
const TimeoutScheduler_1$1 = TimeoutScheduler$1, BaseTask_1$3 = BaseTask$1;
class TimeoutTask extends BaseTask_1$3.default {
  constructor(tv, ev, iv) {
    super(tv), this.taskToRunBeforeTimeout = ev, this.timeoutMs = iv, this.taskName = `Timeout${this.timeoutMs}ms`, ev.setParent(this);
  }
  cancel() {
    this.logger.info(`canceling timeout task ${this.name()} subtask ${this.taskToRunBeforeTimeout}`), this.taskToRunBeforeTimeout.cancel();
  }
  run() {
    return __awaiter$o(this, void 0, void 0, function* () {
      const tv = new TimeoutScheduler_1$1.default(this.timeoutMs);
      tv.start(() => {
        this.logger.info(`timeout reached for task ${this.name()}`), this.taskToRunBeforeTimeout.cancel();
      });
      try {
        yield this.taskToRunBeforeTimeout.run();
      } finally {
        tv.stop();
      }
      this.logger.info(`timeout task ${this.name()} completed`);
    });
  }
}
TimeoutTask$1.default = TimeoutTask;
var WaitForAttendeePresenceTask$1 = {}, __awaiter$n = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(WaitForAttendeePresenceTask$1, "__esModule", { value: !0 });
const MeetingSessionStatusCode_1 = MeetingSessionStatusCode, BaseTask_1$2 = BaseTask$1;
class WaitForAttendeePresenceTask extends BaseTask_1$2.default {
  constructor(tv) {
    super(tv.logger), this.context = tv, this.taskName = "WaitForAttendeePresenceTask";
  }
  cancel() {
    if (this.cancelPromise) {
      const tv = new Error(`canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode_1.default.NoAttendeePresent}`);
      this.cancelPromise(tv), delete this.cancelPromise;
    }
  }
  run() {
    return __awaiter$n(this, void 0, void 0, function* () {
      const tv = this.context.meetingSessionConfiguration.credentials.attendeeId;
      return new Promise((ev, iv) => {
        const ov = (av, sv, lv, uv, cv) => {
          tv === av && sv && (this.context.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(ov), ev(), delete this.cancelPromise);
        };
        this.cancelPromise = (av) => {
          this.context.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(ov), iv(av);
        }, this.context.realtimeController.realtimeSubscribeToAttendeeIdPresence(ov);
      });
    });
  }
}
WaitForAttendeePresenceTask$1.default = WaitForAttendeePresenceTask;
var DefaultTransceiverController$1 = {}, __awaiter$m = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultTransceiverController$1, "__esModule", { value: !0 });
class DefaultTransceiverController {
  constructor(tv, ev) {
    this.logger = tv, this.browserBehavior = ev, this._localCameraTransceiver = null, this._localAudioTransceiver = null, this.videoSubscriptions = [], this.defaultMediaStream = null, this.peer = null, this.streamIdToTransceiver = /* @__PURE__ */ new Map();
  }
  setEncodingParameters(tv) {
    return __awaiter$m(this, void 0, void 0, function* () {
      if (!this._localCameraTransceiver || this._localCameraTransceiver.direction !== "sendrecv")
        return;
      const ev = this._localCameraTransceiver.sender;
      if (!tv || tv.size === 0)
        return;
      const iv = Array.from(tv.values()), ov = ev.getParameters();
      if (!ov.encodings || ov.encodings.length === 0)
        ov.encodings = iv;
      else
        for (const av of ov.encodings)
          for (const sv of iv) {
            if ((av.rid || sv.rid) && av.rid !== sv.rid)
              continue;
            let lv;
            for (lv in sv)
              lv === "rid" || lv === "codecPayloadType" || sv.hasOwnProperty(lv) && (av[lv] = sv[lv]);
          }
      yield ev.setParameters(ov);
    });
  }
  static setVideoSendingBitrateKbpsForSender(tv, ev, iv) {
    return __awaiter$m(this, void 0, void 0, function* () {
      if (!tv || ev <= 0)
        return;
      const ov = tv.getParameters();
      ov.encodings || (ov.encodings = [{}]);
      for (const av of ov.encodings)
        av.maxBitrate = ev * 1e3;
      yield tv.setParameters(ov);
    });
  }
  static replaceAudioTrackForSender(tv, ev) {
    return __awaiter$m(this, void 0, void 0, function* () {
      return tv ? (yield tv.replaceTrack(ev), !0) : !1;
    });
  }
  localAudioTransceiver() {
    return this._localAudioTransceiver;
  }
  localVideoTransceiver() {
    return this._localCameraTransceiver;
  }
  setVideoSendingBitrateKbps(tv) {
    return __awaiter$m(this, void 0, void 0, function* () {
      if (!this._localCameraTransceiver || this._localCameraTransceiver.direction !== "sendrecv")
        return;
      const ev = this._localCameraTransceiver.sender;
      yield DefaultTransceiverController.setVideoSendingBitrateKbpsForSender(ev, tv, this.logger);
    });
  }
  setPeer(tv) {
    this.peer = tv;
  }
  reset() {
    this._localCameraTransceiver = null, this._localAudioTransceiver = null, this.videoSubscriptions = [], this.defaultMediaStream = null, this.peer = null;
  }
  useTransceivers() {
    return !this.peer || !this.browserBehavior.requiresUnifiedPlan() ? !1 : typeof this.peer.getTransceivers < "u";
  }
  hasVideoInput() {
    return !(!this._localCameraTransceiver || this._localCameraTransceiver.direction !== "sendrecv");
  }
  trackIsVideoInput(tv) {
    return this._localCameraTransceiver ? tv === this._localCameraTransceiver.sender.track || tv === this._localCameraTransceiver.receiver.track : !1;
  }
  setupLocalTransceivers() {
    this.useTransceivers() && (!this.defaultMediaStream && typeof MediaStream < "u" && (this.defaultMediaStream = new MediaStream()), this._localAudioTransceiver || (this._localAudioTransceiver = this.peer.addTransceiver("audio", {
      direction: "inactive",
      streams: [this.defaultMediaStream]
    })), this._localCameraTransceiver || (this._localCameraTransceiver = this.peer.addTransceiver("video", {
      direction: "inactive",
      streams: [this.defaultMediaStream]
    })));
  }
  replaceAudioTrack(tv) {
    return __awaiter$m(this, void 0, void 0, function* () {
      return !this._localAudioTransceiver || this._localAudioTransceiver.direction !== "sendrecv" ? (this.logger.info("audio transceiver direction is not set up or not activated"), !1) : (yield this._localAudioTransceiver.sender.replaceTrack(tv), !0);
    });
  }
  setAudioInput(tv) {
    return __awaiter$m(this, void 0, void 0, function* () {
      yield this.setTransceiverInput(this._localAudioTransceiver, tv);
    });
  }
  setVideoInput(tv) {
    return __awaiter$m(this, void 0, void 0, function* () {
      yield this.setTransceiverInput(this._localCameraTransceiver, tv);
    });
  }
  updateVideoTransceivers(tv, ev) {
    if (!this.useTransceivers())
      return ev.array();
    const iv = this.peer.getTransceivers();
    return this.videoSubscriptions = [0], ev = ev.clone(), this.updateTransceivers(iv, tv, ev), this.logger.debug(() => this.debugDumpTransceivers()), this.videoSubscriptions;
  }
  updateTransceivers(tv, ev, iv) {
    const ov = iv.array();
    tv.length !== 0 && !tv[0].stop ? (this.logger.info("Updating transceivers without `stop` function"), this.updateTransceiverWithoutStop(tv, ev, ov)) : tv.length !== 0 && this.updateTransceiverWithStop(tv, ev, ov);
    for (const av of ov) {
      const sv = this.peer.addTransceiver("video", {
        direction: "recvonly",
        streams: [new MediaStream()]
      });
      this.streamIdToTransceiver.set(av, sv), this.videoSubscriptions.push(av), this.logger.info(`adding transceiver mid: ${sv.mid} subscription: ${av} direction: recvonly`);
    }
  }
  updateTransceiverWithStop(tv, ev, iv) {
    let ov = 1;
    this.videoSubscriptions = [0];
    for (const av of tv) {
      if (av === this._localCameraTransceiver || !this.transceiverIsVideo(av) || !av.mid)
        continue;
      let sv = !1;
      const lv = ev.streamIdForTrack("v_" + av.mid);
      if (av.direction !== "inactive" && lv !== void 0) {
        for (const [uv, cv] of iv.entries())
          if (ev.StreamIdsInSameGroup(lv, cv)) {
            av.direction = "recvonly", this.videoSubscriptions[ov] = cv, sv = !0, this.streamIdToTransceiver.delete(lv), this.streamIdToTransceiver.set(cv, av), iv.splice(uv, 1);
            break;
          }
      }
      if (!sv) {
        this.videoSubscriptions[ov] = 0, this.logger.info(`Stopping MID: ${av.mid}, direction: ${av.direction}, current direction: ${av.currentDirection}`), av.stop();
        for (const [uv, cv] of this.streamIdToTransceiver.entries())
          av.mid === cv.mid && this.streamIdToTransceiver.delete(uv);
      }
      ov += 1;
    }
  }
  // This function operates similarily to `updateTransceiverWithStop` with the following changes to account
  // for the fact RTCRtpTransceiver.stop is not available on all supported browsers:
  //  * We attempt to reuse inactive transceivers because libwebrtc will not remove them otherwise and
  //    the SDP will grow endlessly.
  //  * We mark unsubscribed transceivers as 'inactive' so that they can be reused. This requires using a
  //    second for loop.
  updateTransceiverWithoutStop(tv, ev, iv) {
    let ov = 1;
    for (const av of tv)
      if (!(av === this._localCameraTransceiver || !this.transceiverIsVideo(av))) {
        if (this.videoSubscriptions[ov] = 0, av.direction !== "inactive") {
          const sv = ev.streamIdForTrack("v_" + av.mid);
          if (sv !== void 0) {
            for (const [lv, uv] of iv.entries())
              if (ev.StreamIdsInSameGroup(sv, uv)) {
                av.direction = "recvonly", this.videoSubscriptions[ov] = uv, this.streamIdToTransceiver.delete(sv), this.streamIdToTransceiver.set(uv, av), iv.splice(lv, 1);
                break;
              }
          }
        }
        ov += 1;
      }
    ov = 1;
    for (const av of tv)
      if (!(av === this._localCameraTransceiver || !this.transceiverIsVideo(av))) {
        if (av.direction === "inactive" && iv.length > 0) {
          av.direction = "recvonly";
          const sv = iv.shift();
          this.videoSubscriptions[ov] = sv, this.streamIdToTransceiver.set(sv, av);
        } else if (this.videoSubscriptions[ov] === 0) {
          av.direction = "inactive";
          for (const [sv, lv] of this.streamIdToTransceiver.entries())
            av === lv && this.streamIdToTransceiver.delete(sv);
        }
        ov += 1;
      }
  }
  getMidForStreamId(tv) {
    var ev;
    return (ev = this.streamIdToTransceiver.get(tv)) === null || ev === void 0 ? void 0 : ev.mid;
  }
  setStreamIdForMid(tv, ev) {
    for (const [iv, ov] of this.streamIdToTransceiver.entries())
      if (ov.mid === tv) {
        this.streamIdToTransceiver.delete(iv), this.streamIdToTransceiver.set(ev, ov);
        return;
      }
  }
  transceiverIsVideo(tv) {
    return tv.receiver && tv.receiver.track && tv.receiver.track.kind === "video" || tv.sender && tv.sender.track && tv.sender.track.kind === "video";
  }
  debugDumpTransceivers() {
    let tv = "", ev = 0;
    for (const iv of this.peer.getTransceivers())
      this.transceiverIsVideo(iv) && (tv += `transceiver index=${ev} mid=${iv.mid} subscription=${this.videoSubscriptions[ev]} direction=${iv.direction}
`, ev += 1);
    return tv;
  }
  setTransceiverInput(tv, ev) {
    return __awaiter$m(this, void 0, void 0, function* () {
      tv && (ev ? tv.direction = "sendrecv" : tv.direction = "inactive", yield tv.sender.replaceTrack(ev));
    });
  }
}
DefaultTransceiverController$1.default = DefaultTransceiverController;
var SimulcastTransceiverController$1 = {}, __awaiter$l = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(SimulcastTransceiverController$1, "__esModule", { value: !0 });
const DefaultTransceiverController_1$1 = DefaultTransceiverController$1;
class SimulcastTransceiverController extends DefaultTransceiverController_1$1.default {
  constructor(tv, ev) {
    super(tv, ev), this.videoQualityControlParameterMap = /* @__PURE__ */ new Map();
    let iv = 4;
    for (let ov = 0; ov < SimulcastTransceiverController.NAME_ARR_ASCENDING.length; ov++) {
      const av = SimulcastTransceiverController.NAME_ARR_ASCENDING[ov];
      this.videoQualityControlParameterMap.set(av, {
        rid: av,
        scaleResolutionDownBy: iv,
        maxBitrate: SimulcastTransceiverController.BITRATE_ARR_ASCENDING[ov] * 1e3
      }), iv = iv / 2;
    }
  }
  // Note: `scaleResolutionDownBy` has only been tested with values 1, 2, and 4.
  setEncodingParameters(tv) {
    return __awaiter$l(this, void 0, void 0, function* () {
      if (!this._localCameraTransceiver || this._localCameraTransceiver.direction !== "sendrecv")
        return;
      const ev = this._localCameraTransceiver.sender, iv = Array.from(tv.values());
      if (iv.length <= 0)
        return;
      const ov = ev.getParameters();
      if (!ov.encodings)
        ov.encodings = iv;
      else
        for (let av = 0; av < ov.encodings.length; av++)
          ov.encodings[av].rid === SimulcastTransceiverController.LOW_LEVEL_NAME && (ov.encodings[av].maxBitrate = tv.get(SimulcastTransceiverController.LOW_LEVEL_NAME).maxBitrate, ov.encodings[av].active = tv.get(SimulcastTransceiverController.LOW_LEVEL_NAME).active, ov.encodings[av].scaleResolutionDownBy = tv.get(SimulcastTransceiverController.LOW_LEVEL_NAME).scaleResolutionDownBy), ov.encodings[av].rid === SimulcastTransceiverController.MID_LEVEL_NAME && (ov.encodings[av].maxBitrate = tv.get(SimulcastTransceiverController.MID_LEVEL_NAME).maxBitrate, ov.encodings[av].active = tv.get(SimulcastTransceiverController.MID_LEVEL_NAME).active, ov.encodings[av].scaleResolutionDownBy = tv.get(SimulcastTransceiverController.MID_LEVEL_NAME).scaleResolutionDownBy), ov.encodings[av].rid === SimulcastTransceiverController.HIGH_LEVEL_NAME && (ov.encodings[av].maxBitrate = tv.get(SimulcastTransceiverController.HIGH_LEVEL_NAME).maxBitrate, ov.encodings[av].active = tv.get(SimulcastTransceiverController.HIGH_LEVEL_NAME).active, ov.encodings[av].scaleResolutionDownBy = tv.get(SimulcastTransceiverController.HIGH_LEVEL_NAME).scaleResolutionDownBy);
      yield ev.setParameters(ov), this.logVideoTransceiverParameters();
    });
  }
  static replaceAudioTrackForSender(tv, ev) {
    return __awaiter$l(this, void 0, void 0, function* () {
      return tv ? (yield tv.replaceTrack(ev), !0) : !1;
    });
  }
  setVideoSendingBitrateKbps(tv) {
    return __awaiter$l(this, void 0, void 0, function* () {
    });
  }
  setupLocalTransceivers() {
    if (this.useTransceivers() && (!this.defaultMediaStream && typeof MediaStream < "u" && (this.defaultMediaStream = new MediaStream()), this._localAudioTransceiver || (this._localAudioTransceiver = this.peer.addTransceiver("audio", {
      direction: "inactive",
      streams: [this.defaultMediaStream]
    })), !this._localCameraTransceiver)) {
      const tv = Array.from(this.videoQualityControlParameterMap.values());
      this._localCameraTransceiver = this.peer.addTransceiver("video", {
        direction: "inactive",
        streams: [this.defaultMediaStream],
        sendEncodings: tv
      });
    }
  }
  logVideoTransceiverParameters() {
    const ev = this._localCameraTransceiver.sender.getParameters().encodings;
    let iv = `simulcast: current encoding parameters 
`;
    for (const ov of ev)
      iv += `rid=${ov.rid} maxBitrate=${ov.maxBitrate} active=${ov.active} scaleDownBy=${ov.scaleResolutionDownBy} 
`;
    this.logger.info(iv);
  }
}
SimulcastTransceiverController$1.default = SimulcastTransceiverController;
SimulcastTransceiverController.LOW_LEVEL_NAME = "low";
SimulcastTransceiverController.MID_LEVEL_NAME = "mid";
SimulcastTransceiverController.HIGH_LEVEL_NAME = "hi";
SimulcastTransceiverController.NAME_ARR_ASCENDING = ["low", "mid", "hi"];
SimulcastTransceiverController.BITRATE_ARR_ASCENDING = [200, 400, 1100];
var VideoOnlyTransceiverController$1 = {};
Object.defineProperty(VideoOnlyTransceiverController$1, "__esModule", { value: !0 });
const DefaultTransceiverController_1 = DefaultTransceiverController$1;
class VideoOnlyTransceiverController extends DefaultTransceiverController_1.default {
  constructor(tv, ev) {
    super(tv, ev);
  }
  setupLocalTransceivers() {
    this.useTransceivers() && (!this.defaultMediaStream && typeof MediaStream < "u" && (this.defaultMediaStream = new MediaStream()), this._localCameraTransceiver || (this._localCameraTransceiver = this.peer.addTransceiver("video", {
      direction: "inactive",
      streams: [this.defaultMediaStream]
    })));
  }
}
VideoOnlyTransceiverController$1.default = VideoOnlyTransceiverController;
var DefaultVideoCaptureAndEncodeParameter$1 = {};
Object.defineProperty(DefaultVideoCaptureAndEncodeParameter$1, "__esModule", { value: !0 });
class DefaultVideoCaptureAndEncodeParameter {
  constructor(tv, ev, iv, ov, av, sv = 1) {
    this.cameraWidth = tv, this.cameraHeight = ev, this.cameraFrameRate = iv, this.maxEncodeBitrateKbps = ov, this.isSimulcast = av, this.scaleResolutionDownBy = sv;
  }
  equal(tv) {
    let ev = tv.captureWidth() === this.cameraWidth && tv.captureHeight() === this.cameraHeight && tv.captureFrameRate() === this.cameraFrameRate && tv.encodeBitrates().length === this.encodeBitrates().length && tv.encodeScaleResolutionDownBy().length === this.encodeScaleResolutionDownBy().length && tv.encodeWidths().length === this.encodeWidths().length && tv.encodeHeights().length === this.encodeHeights().length;
    if (ev) {
      for (let iv = 0; iv < tv.encodeWidths().length; iv++)
        if (tv.encodeWidths()[iv] !== this.encodeWidths()[iv] || tv.encodeHeights()[iv] !== this.encodeHeights()[iv] || tv.encodeBitrates()[iv] !== this.encodeBitrates()[iv] || tv.encodeScaleResolutionDownBy()[iv] !== this.encodeScaleResolutionDownBy()[iv])
          return ev = !1, ev;
    }
    return ev;
  }
  clone() {
    return new DefaultVideoCaptureAndEncodeParameter(this.cameraWidth, this.cameraHeight, this.cameraFrameRate, this.maxEncodeBitrateKbps, this.isSimulcast, this.scaleResolutionDownBy);
  }
  captureWidth() {
    return this.cameraWidth;
  }
  captureHeight() {
    return this.cameraHeight;
  }
  captureFrameRate() {
    return this.cameraFrameRate;
  }
  encodeBitrates() {
    return [this.maxEncodeBitrateKbps];
  }
  encodeScaleResolutionDownBy() {
    return [this.scaleResolutionDownBy];
  }
  encodeWidths() {
    return [this.cameraWidth];
  }
  encodeHeights() {
    return [this.cameraHeight];
  }
}
DefaultVideoCaptureAndEncodeParameter$1.default = DefaultVideoCaptureAndEncodeParameter;
var VideoAdaptiveProbePolicy$1 = {}, VideoPreference$1 = {}, TargetDisplaySize = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.TargetDisplaySize = void 0;
  var tv;
  (function(ev) {
    ev[ev.Low = 0] = "Low", ev[ev.Medium = 1] = "Medium", ev[ev.High = 2] = "High";
  })(tv = rv.TargetDisplaySize || (rv.TargetDisplaySize = {})), rv.default = tv;
})(TargetDisplaySize);
Object.defineProperty(VideoPreference$1, "__esModule", { value: !0 });
const TargetDisplaySize_1$1 = TargetDisplaySize;
class VideoPreference {
  /** Initializes a [[VideoPreference]] with the given properties.
   *
   * @param attendeeId Attendee ID of the client
   * @param priority The relative priority of this attendee against others.
   * @param targetSize The desired maximum simulcast layers to receive.
   */
  constructor(tv, ev, iv) {
    this.attendeeId = tv, this.priority = ev, this.targetSize = iv !== void 0 ? iv : TargetDisplaySize_1$1.default.High;
  }
  partialCompare(tv) {
    return this.priority - tv.priority;
  }
  equals(tv) {
    return this.attendeeId === tv.attendeeId && this.targetSize === tv.targetSize && this.priority === tv.priority;
  }
  clone() {
    return new VideoPreference(this.attendeeId, this.priority, this.targetSize);
  }
  targetSizeToBitrateKbps(tv) {
    switch (tv) {
      case TargetDisplaySize_1$1.default.High:
        return VideoPreference.HIGH_BITRATE_KBPS;
      case TargetDisplaySize_1$1.default.Medium:
        return VideoPreference.MID_BITRATE_KBPS;
      case TargetDisplaySize_1$1.default.Low:
        return VideoPreference.LOW_BITRATE_KBPS;
    }
  }
}
VideoPreference$1.default = VideoPreference;
VideoPreference.LOW_BITRATE_KBPS = 300;
VideoPreference.MID_BITRATE_KBPS = 600;
VideoPreference.HIGH_BITRATE_KBPS = 1200;
var VideoPreferences$1 = {};
Object.defineProperty(VideoPreferences$1, "__esModule", { value: !0 });
VideoPreferences$1.VideoPreferences = VideoPreferences$1.MutableVideoPreferences = void 0;
class ObjectSet {
  constructor(tv = []) {
    this.items = tv;
  }
  static default() {
    return new ObjectSet([]);
  }
  // Returns the items in sorted order.
  [Symbol.iterator]() {
    let tv = 0;
    const ev = this.items;
    return {
      next() {
        return tv < ev.length ? {
          done: !1,
          value: ev[tv++]
        } : {
          done: !0,
          value: null
        };
      }
    };
  }
  first() {
    return this.items[0];
  }
  add(tv) {
    this.items.push(tv);
  }
  replaceFirst(tv, ev) {
    const iv = this.items.findIndex(ev);
    iv === -1 ? this.items.push(tv) : this.has(tv) ? this.items.splice(iv, 1) : this.items[iv] = tv;
  }
  remove(tv) {
    this.items = this.items.filter((ev) => !ev.equals(tv));
  }
  clear() {
    this.items = [];
  }
  isEmpty() {
    return this.items.length === 0;
  }
  equals(tv) {
    if (tv === this)
      return !0;
    if (tv.items.length !== this.items.length)
      return !1;
    for (const ev of this.items)
      if (!tv.items.some((iv) => iv.equals(ev)))
        return !1;
    return !0;
  }
  has(tv) {
    return this.items.some((ev) => ev.equals(tv));
  }
  some(tv) {
    return this.items.some(tv);
  }
  clone() {
    return new ObjectSet([...this.items]);
  }
  sort() {
    this.items.sort((tv, ev) => tv.partialCompare(ev));
  }
  modify() {
    return new SetBuilder(this);
  }
}
class SetBuilder {
  constructor(tv = new ObjectSet()) {
    this.items = tv, this.copied = !1;
  }
  cow() {
    this.copied || (this.items = this.items.clone(), this.copied = !0);
  }
  add(tv) {
    this.items.has(tv) || (this.cow(), this.items.add(tv));
  }
  replaceFirst(tv, ev) {
    this.items.has(tv) && !this.items.some(ev) || (this.cow(), this.items.replaceFirst(tv, ev));
  }
  remove(tv) {
    this.items.has(tv) && (this.cow(), this.items.remove(tv));
  }
  some(tv) {
    return this.items.some(tv);
  }
  clear() {
    this.items.isEmpty() || (this.cow(), this.items.clear());
  }
  build() {
    return this.copied && this.items.sort(), this.copied = !1, this.items;
  }
}
class MutableVideoPreferences {
  constructor(tv) {
    this.builder = tv;
  }
  add(tv) {
    this.builder.add(tv);
  }
  replaceFirst(tv, ev) {
    this.builder.replaceFirst(tv, ev);
  }
  remove(tv) {
    this.builder.remove(tv);
  }
  some(tv) {
    return this.builder.some(tv);
  }
  clear() {
    this.builder.clear();
  }
  build() {
    return new VideoPreferences(this.builder.build());
  }
}
VideoPreferences$1.MutableVideoPreferences = MutableVideoPreferences;
class VideoPreferences {
  /** @internal */
  constructor(tv) {
    this.items = tv;
  }
  static prepare() {
    return new MutableVideoPreferences(new SetBuilder());
  }
  static default() {
    return new VideoPreferences(ObjectSet.default());
  }
  [Symbol.iterator]() {
    return this.items[Symbol.iterator]();
  }
  highestPriority() {
    var tv;
    return (tv = this.items.first()) === null || tv === void 0 ? void 0 : tv.priority;
  }
  // Our items happen to always be sorted!
  sorted() {
    return this.items[Symbol.iterator]();
  }
  equals(tv) {
    return tv === this || this.items.equals(tv.items);
  }
  modify() {
    return new MutableVideoPreferences(this.items.modify());
  }
  some(tv) {
    return this.items.some(tv);
  }
  isEmpty() {
    return this.items.isEmpty();
  }
  clone() {
    const tv = VideoPreferences.prepare();
    for (const ev of this.items)
      tv.add(ev.clone());
    return tv.build();
  }
}
VideoPreferences$1.VideoPreferences = VideoPreferences;
VideoPreferences$1.default = VideoPreferences;
var VideoPriorityBasedPolicy$1 = {}, VideoPriorityBasedPolicyConfig$1 = {};
Object.defineProperty(VideoPriorityBasedPolicyConfig$1, "__esModule", { value: !0 });
class VideoPriorityBasedPolicyConfig {
  /** Initializes a [[VideoPriorityBasedPolicyConfig]] with the network event delays.
   *
   * @param networkIssueResponseDelayFactor Delays before reducing subscribed video bitrate. Input should be a value between 0 and 1.
   * @param networkIssueRecoveryDelayFactor Delays before starting to increase bitrates after a network event and
   * delays between increasing video bitrates on each individual stream. Input should be a value between 0 and 1.
   */
  constructor(tv = 0, ev = 0) {
    this.networkIssueResponseDelayFactor = tv, this.networkIssueRecoveryDelayFactor = ev, this.currentNetworkEvent = 0, this.bandwidthDecreaseTimestamp = 0, this.referenceBitrate = 0, tv < 0 ? tv = 0 : tv > 1 && (tv = 1), this.networkIssueResponseDelayFactor = tv, ev < 0 ? ev = 0 : ev > 1 && (ev = 1), this.networkIssueRecoveryDelayFactor = ev;
  }
  // determine if subscribe is allowed based on network issue/recovery delays
  allowSubscribe(tv, ev) {
    let iv = 0;
    const ov = this.currentNetworkEvent;
    if (ev > this.referenceBitrate)
      return this.currentNetworkEvent = 2, this.referenceBitrate = ev, !0;
    if (ev < this.referenceBitrate) {
      if (this.currentNetworkEvent = 1, iv = this.getSubscribeDelay(this.currentNetworkEvent, tv), ov !== 1)
        this.bandwidthDecreaseTimestamp = Date.now();
      else if (Date.now() - this.bandwidthDecreaseTimestamp > iv)
        return this.referenceBitrate = ev, !0;
      return !1;
    } else
      return this.currentNetworkEvent = 0, !1;
  }
  // convert network event delay factor to actual delay in ms
  getSubscribeDelay(tv, ev) {
    let iv = VideoPriorityBasedPolicyConfig.MINIMUM_DELAY_MS;
    const ov = VideoPriorityBasedPolicyConfig.MAXIMUM_DELAY_MS - VideoPriorityBasedPolicyConfig.MINIMUM_DELAY_MS, av = this.networkIssueResponseDelayFactor;
    switch (tv) {
      case 1:
        iv += ov * av * (1 + ev / 10), iv = Math.min(VideoPriorityBasedPolicyConfig.MAXIMUM_DELAY_MS, iv);
        break;
    }
    return iv;
  }
}
VideoPriorityBasedPolicyConfig$1.default = VideoPriorityBasedPolicyConfig;
VideoPriorityBasedPolicyConfig.MINIMUM_DELAY_MS = 2e3;
VideoPriorityBasedPolicyConfig.MAXIMUM_DELAY_MS = 8e3;
VideoPriorityBasedPolicyConfig.Default = new VideoPriorityBasedPolicyConfig(0, 0);
VideoPriorityBasedPolicyConfig.UnstableNetworkPreset = new VideoPriorityBasedPolicyConfig(0, 1);
VideoPriorityBasedPolicyConfig.StableNetworkPreset = new VideoPriorityBasedPolicyConfig(1, 0);
Object.defineProperty(VideoPriorityBasedPolicy$1, "__esModule", { value: !0 });
const ClientMetricReportDirection_1 = ClientMetricReportDirection, ClientMetricReportMediaType_1 = ClientMetricReportMediaType, ContentShareConstants_1$2 = ContentShareConstants$1, LogLevel_1$4 = LogLevel, DefaultVideoStreamIdSet_1$2 = DefaultVideoStreamIdSet$1, TargetDisplaySize_1 = TargetDisplaySize, VideoPreference_1$1 = VideoPreference$1, VideoPreferences_1$1 = VideoPreferences$1, VideoPriorityBasedPolicyConfig_1 = VideoPriorityBasedPolicyConfig$1;
class LinkMediaStats {
  constructor() {
    this.bandwidthEstimateKbps = 0, this.usedBandwidthKbps = 0, this.packetsLost = 0, this.nackCount = 0, this.rttMs = 0;
  }
}
class VideoPriorityBasedPolicy {
  constructor(tv, ev = VideoPriorityBasedPolicyConfig_1.default.Default) {
    this.logger = tv, this.videoPriorityBasedPolicyConfig = ev, this.shouldPauseTiles = !0, this.observerQueue = /* @__PURE__ */ new Set(), this.pausedBwAttendeeIds = /* @__PURE__ */ new Set(), this.reset();
  }
  reset() {
    this.optimalReceiveSet = new DefaultVideoStreamIdSet_1$2.default(), this.optimalReceiveStreams = [], this.optimalNonPausedReceiveStreams = [], this.subscribedReceiveSet = new DefaultVideoStreamIdSet_1$2.default(), this.subscribedReceiveStreams = [], this.videoPreferences = void 0, this.defaultVideoPreferences = void 0, this.shouldPauseTiles = !0, this.pausedStreamIds = new DefaultVideoStreamIdSet_1$2.default(), this.pausedBwAttendeeIds = /* @__PURE__ */ new Set(), this.videoPreferencesUpdated = !1, this.logCount = 0, this.startupPeriod = !0, this.usingPrevTargetRate = !1, this.rateProbeState = "Not Probing", this.firstEstimateTimestamp = 0, this.lastUpgradeRateKbps = 0, this.timeBeforeAllowSubscribeMs = VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_SUBSCRIBE_MS, this.lastProbeTimestamp = Date.now(), this.timeBeforeAllowProbeMs = VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_PROBE_MS, this.downlinkStats = new LinkMediaStats(), this.prevDownlinkStats = new LinkMediaStats(), this.probeFailed = !1;
  }
  bindToTileController(tv) {
    this.tileController = tv, this.logger.info("tileController bound");
  }
  // This function allows setting preferences without the need to inherit from this class
  // which would require not using the internal keyword
  chooseRemoteVideoSources(tv) {
    var ev;
    !((ev = this.videoPreferences) === null || ev === void 0) && ev.equals(tv) || (this.videoPreferences = tv == null ? void 0 : tv.clone(), this.videoPreferencesUpdated = !0, this.logger.info(`bwe: setVideoPreferences bwe: new preferences: ${JSON.stringify(tv)}`));
  }
  updateIndex(tv) {
    this.videoIndex = tv, this.videoPreferences || this.updateDefaultVideoPreferences();
  }
  updateDefaultVideoPreferences() {
    const tv = /* @__PURE__ */ new Set();
    for (const av of this.videoIndex.remoteStreamDescriptions())
      tv.add(av.attendeeId);
    const ev = VideoPreferences_1$1.VideoPreferences.prepare(), iv = tv.size;
    let ov = TargetDisplaySize_1.default.High;
    iv > 8 ? ov = TargetDisplaySize_1.default.Low : iv > 4 && (ov = TargetDisplaySize_1.default.Medium);
    for (const av of tv)
      ev.add(new VideoPreference_1$1.default(av, 1, ov));
    this.defaultVideoPreferences = ev.build();
  }
  updateMetrics(tv) {
    if (!this.videoIndex || this.videoIndex.allStreams().empty())
      return;
    this.prevDownlinkStats = this.downlinkStats, this.downlinkStats = new LinkMediaStats();
    const ev = tv.getObservableMetrics();
    isNaN(ev.availableIncomingBitrate) ? this.downlinkStats.bandwidthEstimateKbps = ev.availableReceiveBandwidth / 1e3 : this.downlinkStats.bandwidthEstimateKbps = ev.availableIncomingBitrate / 1e3;
    for (const iv in tv.streamMetricReports) {
      const ov = Number.parseInt(iv, 10), av = tv.streamMetricReports[ov];
      av.direction === ClientMetricReportDirection_1.default.DOWNSTREAM && av.mediaType === ClientMetricReportMediaType_1.default.VIDEO && (av.currentMetrics.hasOwnProperty("googNacksSent") ? this.downlinkStats.nackCount += tv.countPerSecond("googNacksSent", ov) : av.currentMetrics.hasOwnProperty("nackCount") && (this.downlinkStats.nackCount += tv.countPerSecond("nackCount", ov)), av.currentMetrics.hasOwnProperty("packetsLost") && (this.downlinkStats.packetsLost += tv.countPerSecond("packetsLost", ov)), av.currentMetrics.hasOwnProperty("bytesReceived") && (this.downlinkStats.usedBandwidthKbps += tv.bitsPerSecond("bytesReceived", ov) / 1e3));
    }
  }
  wantsResubscribe() {
    return this.calculateOptimalReceiveSet(), !this.subscribedReceiveSet.equal(this.optimalReceiveSet);
  }
  chooseSubscriptions() {
    return this.subscribedReceiveSet.equal(this.optimalReceiveSet) || (this.lastSubscribeTimestamp = Date.now()), this.subscribedReceiveSet = this.optimalReceiveSet.clone(), this.subscribedReceiveStreams = this.optimalReceiveStreams.slice(), this.subscribedReceiveSet.clone();
  }
  addObserver(tv) {
    this.observerQueue.add(tv);
  }
  removeObserver(tv) {
    this.observerQueue.delete(tv);
  }
  forEachObserver(tv) {
    for (const ev of this.observerQueue)
      tv(ev);
  }
  setVideoPriorityBasedPolicyConfigs(tv) {
    this.videoPriorityBasedPolicyConfig = tv;
  }
  calculateOptimalReceiveStreams() {
    var tv;
    const ev = [], iv = this.videoIndex.remoteStreamDescriptions();
    if (iv.length === 0 || !((tv = this.videoPreferences) === null || tv === void 0) && tv.isEmpty()) {
      this.optimalReceiveStreams = [];
      return;
    }
    const ov = this.rateProbeState;
    this.cleanBwPausedTiles(iv), this.handleAppPausedStreams(ev, iv);
    const av = this.availStreamsSameAsLast(iv), sv = !this.startupPeriod && av;
    if (sv && Date.now() - this.lastSubscribeTimestamp < this.timeBeforeAllowSubscribeMs)
      return;
    iv.sort((Sv, _v) => Sv.maxBitrateKbps === _v.maxBitrateKbps ? Sv.streamId - _v.streamId : Sv.maxBitrateKbps - _v.maxBitrateKbps);
    for (const Sv of iv)
      (Sv.avgBitrateKbps === 0 || Sv.avgBitrateKbps > Sv.maxBitrateKbps) && (Sv.attendeeId.endsWith(ContentShareConstants_1$2.default.Modality) && Sv.maxBitrateKbps < 100 ? Sv.maxBitrateKbps = Sv.avgBitrateKbps : Sv.avgBitrateKbps = Sv.maxBitrateKbps);
    const lv = {
      targetDownlinkBitrate: 0,
      chosenTotalBitrate: 0,
      deltaToNextUpgrade: 0
    };
    lv.targetDownlinkBitrate = this.determineTargetRate();
    const uv = this.subscribedReceiveSet.size(), cv = this.downlinkStats.bandwidthEstimateKbps, dv = !this.videoPriorityBasedPolicyConfig.allowSubscribe(uv, cv);
    if (this.probeFailed && (this.probeFailed = !1, this.timeBeforeAllowSubscribeMs = VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_SUBSCRIBE_MS, sv && dv))
      return;
    const hv = this.priorityPolicy(lv, iv, ev);
    let pv = 0;
    if (!this.startupPeriod && av ? this.rateProbeState === "Probing" ? pv = this.handleProbe(ev, lv.targetDownlinkBitrate) : lv.deltaToNextUpgrade !== 0 && (pv = this.maybeOverrideOrProbe(ev, lv, hv)) : (this.setProbeState(
      "Not Probing"
      /* NotProbing */
    ), this.lastUpgradeRateKbps = 0), this.prevRemoteInfos = iv, this.videoPreferencesUpdated = !1, pv === 1) {
      this.logger.info(`bwe: keepSameSubscriptions stats:${JSON.stringify(this.downlinkStats)}`), this.prevTargetRateKbps = lv.targetDownlinkBitrate;
      return;
    }
    if (pv === 2) {
      const Sv = this.calculateSubscribeRate(this.preProbeNonPausedReceiveStreams);
      this.optimalReceiveStreams = this.preProbeReceiveStreams.slice(), this.processBwPausedStreams(iv, this.preProbeNonPausedReceiveStreams), this.logger.info("bwe: Use Pre-Probe subscription subscribedRate:" + Sv);
      return;
    }
    this.optimalNonPausedReceiveStreams = ev.slice();
    const yv = this.pausedBwAttendeeIds.size;
    this.processBwPausedStreams(iv, ev), this.logger.getLogLevel() <= LogLevel_1$4.LogLevel.INFO && (this.logCount % 15 === 0 || this.rateProbeState !== ov || this.optimalReceiveStreams.length !== ev.length || yv !== this.pausedBwAttendeeIds.size) && (this.logger.info(this.policyStateLogStr(iv, lv.targetDownlinkBitrate)), this.logCount = 0), this.logCount++, this.prevTargetRateKbps = lv.targetDownlinkBitrate, this.optimalReceiveStreams = ev.slice();
  }
  calculateOptimalReceiveSet() {
    const tv = new DefaultVideoStreamIdSet_1$2.default();
    this.calculateOptimalReceiveStreams();
    for (const ev of this.optimalReceiveStreams)
      tv.add(ev.streamId);
    if (!this.optimalReceiveSet.equal(tv)) {
      const ev = this.calculateSubscribeRate(this.optimalReceiveStreams);
      this.logger.info(`bwe: new streamSelection: ${JSON.stringify(tv)} subscribedRate:${ev}`);
    }
    this.optimalReceiveSet = tv;
  }
  determineTargetRate() {
    let tv = 0;
    const ev = Date.now();
    return this.downlinkStats.bandwidthEstimateKbps !== 0 ? (this.firstEstimateTimestamp === 0 && (this.firstEstimateTimestamp = ev), this.startupPeriod && (this.downlinkStats.bandwidthEstimateKbps > VideoPriorityBasedPolicy.DEFAULT_BANDWIDTH_KBPS || this.downlinkStats.packetsLost > 0 || ev - this.firstEstimateTimestamp > VideoPriorityBasedPolicy.STARTUP_PERIOD_MS && this.downlinkStats.bandwidthEstimateKbps <= this.prevDownlinkStats.bandwidthEstimateKbps) && (this.startupPeriod = !1, this.prevTargetRateKbps = this.downlinkStats.bandwidthEstimateKbps), this.startupPeriod ? tv = VideoPriorityBasedPolicy.DEFAULT_BANDWIDTH_KBPS : this.rateProbeState === "Probing" && this.downlinkStats.usedBandwidthKbps > this.downlinkStats.bandwidthEstimateKbps && this.downlinkStats.packetsLost < VideoPriorityBasedPolicy.SPURIOUS_PACKET_LOST_THRESHOLD ? (this.logger.info(`bwe: In probe state, overriding estimate ${this.downlinkStats.bandwidthEstimateKbps} with actual receive bitrate ${this.downlinkStats.usedBandwidthKbps}`), tv = this.downlinkStats.usedBandwidthKbps + VideoPriorityBasedPolicy.USED_BANDWIDTH_OVERRIDE_BUFFER_KBPS) : tv = this.downlinkStats.bandwidthEstimateKbps) : this.firstEstimateTimestamp === 0 ? tv = VideoPriorityBasedPolicy.DEFAULT_BANDWIDTH_KBPS : tv = this.prevTargetRateKbps, !this.startupPeriod && (this.usingPrevTargetRate && this.downlinkStats.bandwidthEstimateKbps < this.prevTargetRateKbps || this.downlinkStats.bandwidthEstimateKbps < this.prevTargetRateKbps * (100 - VideoPriorityBasedPolicy.LARGE_RATE_CHANGE_TRIGGER_PERCENT) / 100 || this.downlinkStats.bandwidthEstimateKbps < this.downlinkStats.usedBandwidthKbps * VideoPriorityBasedPolicy.LARGE_RATE_CHANGE_TRIGGER_PERCENT / 100) && this.downlinkStats.packetsLost === 0 ? (this.logger.debug(() => "bwe: ValidateRate: Using Previous rate " + this.prevTargetRateKbps), this.usingPrevTargetRate = !0, tv = this.prevTargetRateKbps) : this.usingPrevTargetRate = !1, tv;
  }
  setProbeState(tv) {
    if (this.rateProbeState === tv)
      return !1;
    const ev = Date.now();
    switch (tv) {
      case "Not Probing":
        this.probePendingStartTimestamp = 0;
        break;
      case "Probe Pending":
        if (this.lastProbeTimestamp === 0 || ev - this.lastProbeTimestamp > VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_PROBE_MS)
          this.probePendingStartTimestamp = ev;
        else
          return !1;
        break;
      case "Probing":
        if (ev - this.probePendingStartTimestamp > this.timeBeforeAllowProbeMs)
          this.lastProbeTimestamp = ev, this.preProbeReceiveStreams = this.subscribedReceiveStreams.slice(), this.preProbeNonPausedReceiveStreams = this.optimalNonPausedReceiveStreams, this.timeBeforeAllowProbeMs = Math.min(this.timeBeforeAllowProbeMs * 2, VideoPriorityBasedPolicy.MAX_HOLD_BEFORE_PROBE_MS);
        else
          return !1;
        break;
    }
    return this.logger.info("bwe: setProbeState to " + tv + " from " + this.rateProbeState), this.rateProbeState = tv, !0;
  }
  // Upgrade the stream id from the appropriate group or add it if it wasn't already in the list.
  // Return the added amount of bandwidth
  upgradeToStream(tv, ev) {
    for (let iv = 0; iv < tv.length; iv++)
      if (tv[iv].groupId === ev.groupId) {
        const ov = ev.avgBitrateKbps - tv[iv].avgBitrateKbps;
        return this.logger.info("bwe: upgradeStream from " + JSON.stringify(tv[iv]) + " to " + ev), this.lastUpgradeRateKbps = ov, tv[iv] = ev, ov;
      }
    return tv.push(ev), this.lastUpgradeRateKbps = ev.avgBitrateKbps, this.lastUpgradeRateKbps;
  }
  // Do specific behavior while we are currently in probing state and metrics
  // indicate environment is still valid to do probing.
  // Return true if the caller should not change from the previous subscriptions.
  handleProbe(tv, ev) {
    if (Date.now() - this.lastProbeTimestamp > VideoPriorityBasedPolicy.MAX_ALLOWED_PROBE_TIME_MS)
      return this.logger.info("bwe: Canceling probe due to timeout"), this.setProbeState(
        "Not Probing"
        /* NotProbing */
      ), 0;
    if (this.downlinkStats.packetsLost > 0 && (this.logger.info(`bwe: Probe encountering packets lost:${this.downlinkStats.packetsLost}`), this.downlinkStats.packetsLost > VideoPriorityBasedPolicy.SPURIOUS_PACKET_LOST_THRESHOLD))
      return this.setProbeState(
        "Not Probing"
        /* NotProbing */
      ), this.logger.info(`bwe: Canceling probe due to packets lost:${this.downlinkStats.packetsLost}`), this.probeFailed = !0, this.timeBeforeAllowSubscribeMs = Math.max(VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_SUBSCRIBE_MS, this.timeBeforeAllowSubscribeMs) * 3, 2;
    const iv = this.calculateSubscribeRate(this.optimalReceiveStreams);
    return this.chosenStreamsSameAsLast(tv) || ev > iv ? (this.logger.info("bwe: Probe successful"), this.setProbeState(
      "Not Probing"
      /* NotProbing */
    ), this.timeBeforeAllowProbeMs = VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_PROBE_MS, 0) : 1;
  }
  maybeOverrideOrProbe(tv, ev, iv) {
    const ov = this.chosenStreamsSameAsLast(tv);
    let av = 0;
    const sv = ev.targetDownlinkBitrate > VideoPriorityBasedPolicy.LOW_BITRATE_THRESHOLD_KBPS ? VideoPriorityBasedPolicy.TARGET_RATE_CHANGE_TRIGGER_PERCENT : VideoPriorityBasedPolicy.TARGET_RATE_CHANGE_TRIGGER_PERCENT * 2, lv = ev.targetDownlinkBitrate * sv / 100;
    if (this.targetRateBaselineForDeltaCheckKbps = this.targetRateBaselineForDeltaCheckKbps !== void 0 ? this.targetRateBaselineForDeltaCheckKbps : this.prevTargetRateKbps, !ov && Math.abs(ev.targetDownlinkBitrate - this.targetRateBaselineForDeltaCheckKbps) < lv ? (this.logger.info("bwe: MaybeOverrideOrProbe: Reuse last decision based on delta rate. {" + JSON.stringify(this.subscribedReceiveSet) + "}"), av = 1) : this.targetRateBaselineForDeltaCheckKbps = ev.targetDownlinkBitrate, this.downlinkStats.packetsLost > this.prevDownlinkStats.packetsLost)
      return this.setProbeState(
        "Not Probing"
        /* NotProbing */
      ), this.lastUpgradeRateKbps = 0, av;
    if (ov || av === 1)
      switch (this.rateProbeState) {
        case "Not Probing":
          this.setProbeState(
            "Probe Pending"
            /* ProbePending */
          );
          break;
        case "Probe Pending":
          this.setProbeState(
            "Probing"
            /* Probing */
          ) && (this.upgradeToStream(tv, iv), av = 0);
          break;
      }
    else
      this.setProbeState(
        "Not Probing"
        /* NotProbing */
      );
    return av;
  }
  // Utility function to find max rate of streams in current decision
  calculateSubscribeRate(tv) {
    let ev = 0;
    for (const iv of tv)
      !this.pausedStreamIds.contain(iv.streamId) && !this.pausedBwAttendeeIds.has(iv.attendeeId) && (ev += iv.maxBitrateKbps);
    return ev;
  }
  handleAppPausedStreams(tv, ev) {
    if (!this.tileController) {
      this.logger.warn("tileController not found!");
      return;
    }
    this.pausedStreamIds = new DefaultVideoStreamIdSet_1$2.default();
    const iv = this.tileController.getAllRemoteVideoTiles();
    for (const ov of iv) {
      const av = ov.state();
      if (av.paused && !this.pausedBwAttendeeIds.has(av.boundAttendeeId)) {
        let sv = ev.length;
        for (; sv--; )
          ev[sv].attendeeId === av.boundAttendeeId && (this.logger.info("bwe: removed paused attendee " + av.boundAttendeeId + " streamId: " + ev[sv].streamId), this.pausedStreamIds.add(ev[sv].streamId), this.subscribedReceiveSet.contain(ev[sv].streamId) && tv.push(ev[sv]), ev.splice(sv, 1));
      }
    }
  }
  processBwPausedStreams(tv, ev) {
    if (!this.tileController) {
      this.logger.warn("tileController not found!");
      return;
    }
    const iv = this.getCurrentVideoPreferences();
    if (iv && this.shouldPauseTiles) {
      const ov = this.tileController.getAllVideoTiles();
      for (const av of iv) {
        const sv = this.getVideoTileForAttendeeId(av.attendeeId, ov), lv = (sv == null ? void 0 : sv.state().paused) || !1;
        if (ev.some((uv) => uv.attendeeId === av.attendeeId))
          lv && this.pausedBwAttendeeIds.has(av.attendeeId) && (this.logger.info(`bwe: unpausing attendee ${av.attendeeId} due to bandwidth`), this.forEachObserver((uv) => {
            uv.tileWillBeUnpausedByDownlinkPolicy(sv.id());
          }), this.tileController.unpauseVideoTile(sv.id()), this.pausedBwAttendeeIds.delete(av.attendeeId));
        else {
          const uv = tv.some((cv) => cv.attendeeId === av.attendeeId);
          if (sv && uv) {
            const cv = this.optimalReceiveStreams.find((dv) => dv.attendeeId === av.attendeeId);
            cv !== void 0 && (lv || (this.logger.info(`bwe: pausing streamId ${cv.streamId} attendee ${av.attendeeId} due to bandwidth`), this.forEachObserver((dv) => {
              dv.tileWillBePausedByDownlinkPolicy(sv.id());
            }), this.tileController.pauseVideoTile(sv.id())), ev.push(cv)), this.pausedBwAttendeeIds.add(av.attendeeId);
          } else if (uv) {
            const cv = this.tileController.addVideoTile();
            cv.bindVideoStream(av.attendeeId, !1, null, 0, 0, 0, null), this.forEachObserver((dv) => {
              dv.tileWillBePausedByDownlinkPolicy(cv.id());
            }), cv.pause(), this.logger.info(`bwe: Created video tile ${cv.id()} for bw paused attendee ${av.attendeeId}`), this.pausedBwAttendeeIds.add(av.attendeeId);
          }
        }
      }
    }
  }
  cleanBwPausedTiles(tv) {
    if (!this.tileController) {
      this.logger.warn("tileController not found!");
      return;
    }
    const ev = this.tileController.getAllRemoteVideoTiles(), iv = this.getCurrentVideoPreferences();
    for (const ov of ev) {
      const av = ov.state();
      av.boundVideoStream || (tv.some((sv) => sv.attendeeId === av.boundAttendeeId) ? iv !== void 0 && !iv.some((sv) => sv.attendeeId === av.boundAttendeeId) && this.tileController.removeVideoTile(av.tileId) : (this.tileController.removeVideoTile(av.tileId), this.logger.info(`bwe: Removed video tile ${av.tileId} for bw paused attendee ${av.boundAttendeeId}`)));
    }
  }
  priorityPolicy(tv, ev, iv) {
    let ov;
    const av = this.getCurrentVideoPreferences(), sv = av.highestPriority();
    let lv, uv = sv;
    for (; uv !== -1; ) {
      lv = -1;
      for (const cv of av)
        if (cv.priority === uv)
          for (const dv of ev)
            dv.attendeeId === cv.attendeeId && (iv.some((hv) => hv.groupId === dv.groupId) || (tv.chosenTotalBitrate + dv.avgBitrateKbps <= tv.targetDownlinkBitrate ? (iv.push(dv), tv.chosenTotalBitrate += dv.avgBitrateKbps) : tv.deltaToNextUpgrade === 0 && (tv.deltaToNextUpgrade = dv.avgBitrateKbps, ov = dv)));
        else if (cv.priority > uv) {
          lv = cv.priority;
          break;
        }
      for (const cv of av)
        if (cv.priority === uv) {
          for (const dv of ev)
            if (dv.attendeeId === cv.attendeeId) {
              const hv = iv.findIndex((pv) => pv.groupId === dv.groupId && pv.maxBitrateKbps < dv.maxBitrateKbps);
              if (hv !== -1) {
                const pv = dv.avgBitrateKbps - iv[hv].avgBitrateKbps;
                this.hasSimulcastStreams(ev, dv.attendeeId, dv.groupId) && this.canUpgrade(dv.avgBitrateKbps, cv.targetSizeToBitrateKbps(cv.targetSize)) ? (this.logger.info(`bwe: attendee: ${dv.attendeeId} group: ${dv.groupId} has simulcast and can upgrade avgBitrate: ${dv.avgBitrateKbps} target: ${cv.targetSizeToBitrateKbps(cv.targetSize)} targetTotalBitrate: ${tv.targetDownlinkBitrate}`), tv.chosenTotalBitrate + pv <= tv.targetDownlinkBitrate ? (tv.chosenTotalBitrate += pv, iv[hv] = dv) : tv.deltaToNextUpgrade === 0 && (tv.deltaToNextUpgrade = pv, ov = dv)) : this.logger.info("bwe: cannot upgrade stream quality beyond target size");
              }
            }
        } else if (cv.priority > uv)
          break;
      if (uv === sv && tv.deltaToNextUpgrade !== 0)
        break;
      uv = lv;
    }
    return ov;
  }
  getVideoTileForAttendeeId(tv, ev) {
    for (const iv of ev)
      if (iv.state().boundAttendeeId === tv)
        return iv;
    return null;
  }
  canUpgrade(tv, ev) {
    return tv <= ev ? (this.logger.info(`bwe: canUpgrade: bitrateKbp: ${tv} targetBitrateKbp: ${ev}`), !0) : (this.logger.info(`bwe: cannot Upgrade: bitrateKbp: ${tv} targetBitrateKbp: ${ev}`), !1);
  }
  hasSimulcastStreams(tv, ev, iv) {
    let ov = 0;
    for (const av of tv)
      av.attendeeId === ev && av.groupId === iv && ov++;
    return this.logger.info(`bwe: attendeeId: ${ev} groupId: ${iv} hasSimulcastStreams: streamCount: ${ov}`), ov > 1;
  }
  availStreamsSameAsLast(tv) {
    if (this.prevRemoteInfos === void 0 || tv.length !== this.prevRemoteInfos.length || this.videoPreferencesUpdated === !0)
      return !1;
    for (const ev of tv)
      if (this.prevRemoteInfos.find((ov) => ov.groupId === ev.groupId && ov.streamId === ev.streamId && ov.maxBitrateKbps === ev.maxBitrateKbps) === void 0)
        return !1;
    return !0;
  }
  chosenStreamsSameAsLast(tv) {
    if (this.optimalNonPausedReceiveStreams.length !== tv.length)
      return !1;
    for (const ev of this.optimalNonPausedReceiveStreams)
      if (!tv.some((iv) => iv.streamId === ev.streamId))
        return !1;
    return !0;
  }
  policyStateLogStr(tv, ev) {
    const iv = this.calculateSubscribeRate(this.optimalReceiveStreams), ov = {
      targetBitrate: ev,
      subscribedRate: iv,
      probeState: this.rateProbeState,
      startupPeriod: this.startupPeriod
    };
    let av = "remoteInfos: [";
    for (const lv of tv)
      av += `{grpId:${lv.groupId} strId:${lv.streamId} maxBr:${lv.maxBitrateKbps} avgBr:${lv.avgBitrateKbps}}, `;
    av += "]";
    let sv = `bwe: optimalReceiveSet ${JSON.stringify(ov)}
bwe:   prev ${JSON.stringify(this.prevDownlinkStats)}
bwe:   now  ${JSON.stringify(this.downlinkStats)}
bwe:   ${av}
`;
    return (this.pausedStreamIds.size() > 0 || this.pausedBwAttendeeIds.size > 0) && (sv += `bwe:   paused: app stream ids ${JSON.stringify(this.pausedStreamIds)}  bw attendees { ${Array.from(this.pausedBwAttendeeIds).join(" ")} }
`), this.videoPreferences ? sv += `bwe:   preferences: ${JSON.stringify(this.videoPreferences)}` : sv += `bwe:   default preferences: ${JSON.stringify(this.defaultVideoPreferences)}`, sv;
  }
  getCurrentVideoPreferences() {
    return this.videoPreferences || this.defaultVideoPreferences;
  }
}
VideoPriorityBasedPolicy$1.default = VideoPriorityBasedPolicy;
VideoPriorityBasedPolicy.DEFAULT_BANDWIDTH_KBPS = 2800;
VideoPriorityBasedPolicy.STARTUP_PERIOD_MS = 6e3;
VideoPriorityBasedPolicy.LARGE_RATE_CHANGE_TRIGGER_PERCENT = 20;
VideoPriorityBasedPolicy.TARGET_RATE_CHANGE_TRIGGER_PERCENT = 15;
VideoPriorityBasedPolicy.LOW_BITRATE_THRESHOLD_KBPS = 300;
VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_PROBE_MS = 5e3;
VideoPriorityBasedPolicy.MIN_TIME_BETWEEN_SUBSCRIBE_MS = 2e3;
VideoPriorityBasedPolicy.MAX_HOLD_BEFORE_PROBE_MS = 3e4;
VideoPriorityBasedPolicy.MAX_ALLOWED_PROBE_TIME_MS = 6e4;
VideoPriorityBasedPolicy.SPURIOUS_PACKET_LOST_THRESHOLD = 2;
VideoPriorityBasedPolicy.USED_BANDWIDTH_OVERRIDE_BUFFER_KBPS = 100;
Object.defineProperty(VideoAdaptiveProbePolicy$1, "__esModule", { value: !0 });
const ContentShareConstants_1$1 = ContentShareConstants$1, VideoPreference_1 = VideoPreference$1, VideoPreferences_1 = VideoPreferences$1, VideoPriorityBasedPolicy_1 = VideoPriorityBasedPolicy$1;
class VideoAdaptiveProbePolicy extends VideoPriorityBasedPolicy_1.default {
  constructor(tv) {
    super(tv), this.logger = tv, super.shouldPauseTiles = !1, this.videoPreferences = void 0;
  }
  reset() {
    super.reset(), super.shouldPauseTiles = !1, this.videoPreferences = void 0;
  }
  updateIndex(tv) {
    super.updateIndex(tv);
    const ev = VideoPreferences_1.VideoPreferences.prepare();
    let iv = !1;
    const ov = tv.remoteStreamDescriptions();
    for (const av of ov)
      ev.some((sv) => sv.attendeeId === av.attendeeId) || (av.attendeeId.endsWith(ContentShareConstants_1$1.default.Modality) ? (ev.add(new VideoPreference_1.default(av.attendeeId, 1)), iv = !0) : ev.add(new VideoPreference_1.default(av.attendeeId, 2)));
    iv ? (this.videoPreferences = ev.build(), this.videoPreferencesUpdated = !0) : this.videoPreferences = void 0;
  }
  /**
   * [[VideoAdaptiveProbePolicy]] does not allow setting video preferences and this function
   * will be a no-op.  Please use [[VideoPriorityBasedPolicy]] directly if you would like to set
   * preferences.
   */
  chooseRemoteVideoSources(tv) {
    this.logger.error("chooseRemoteVideoSources should not be called by VideoAdaptiveProbePolicy");
  }
}
VideoAdaptiveProbePolicy$1.default = VideoAdaptiveProbePolicy;
var DefaultVideoStreamIndex$1 = {}, VideoStreamDescription$1 = {};
Object.defineProperty(VideoStreamDescription$1, "__esModule", { value: !0 });
const SignalingProtocol_js_1$2 = SignalingProtocol;
class VideoStreamDescription {
  constructor(tv, ev, iv, ov, av) {
    this.attendeeId = "", this.groupId = 0, this.streamId = 0, this.ssrc = 0, this.trackLabel = "", this.maxBitrateKbps = 0, this.avgBitrateKbps = 0, this.maxFrameRate = 0, this.timeEnabled = 0, this.disabledByWebRTC = !1, this.disabledByUplinkPolicy = !1, this.attendeeId = tv, this.groupId = ev, this.streamId = iv, this.maxBitrateKbps = ov, this.avgBitrateKbps = av;
  }
  clone() {
    const tv = new VideoStreamDescription();
    return tv.attendeeId = this.attendeeId, tv.groupId = this.groupId, tv.streamId = this.streamId, tv.ssrc = this.ssrc, tv.trackLabel = this.trackLabel, tv.maxBitrateKbps = this.maxBitrateKbps, tv.avgBitrateKbps = this.avgBitrateKbps, tv.maxFrameRate = this.maxFrameRate, tv.timeEnabled = this.timeEnabled, tv.disabledByWebRTC = this.disabledByWebRTC, tv.disabledByUplinkPolicy = this.disabledByUplinkPolicy, tv;
  }
  toStreamDescriptor() {
    const tv = SignalingProtocol_js_1$2.SdkStreamDescriptor.create();
    return tv.mediaType = SignalingProtocol_js_1$2.SdkStreamMediaType.VIDEO, tv.trackLabel = this.trackLabel, tv.attendeeId = this.attendeeId, tv.streamId = this.streamId, tv.groupId = this.groupId, tv.framerate = this.maxFrameRate, tv.maxBitrateKbps = this.disabledByUplinkPolicy || this.disabledByWebRTC ? 0 : this.maxBitrateKbps, tv.avgBitrateBps = this.avgBitrateKbps, tv;
  }
}
VideoStreamDescription$1.default = VideoStreamDescription;
Object.defineProperty(DefaultVideoStreamIndex$1, "__esModule", { value: !0 });
const SignalingProtocol_js_1$1 = SignalingProtocol, DefaultVideoStreamIdSet_1$1 = DefaultVideoStreamIdSet$1, VideoStreamDescription_1$1 = VideoStreamDescription$1;
class DefaultVideoStreamIndex {
  constructor(tv) {
    this.logger = tv, this.currentIndex = null, this.indexForSubscribe = null, this.currentSubscribeAck = null, this.subscribeTrackToStreamMap = null, this.subscribeStreamToAttendeeMap = null, this.subscribeStreamToExternalUserIdMap = null, this.subscribeSsrcToStreamMap = null, this.streamToAttendeeMap = null, this.streamToExternalUserIdMap = null, this.videoStreamDescription = new VideoStreamDescription_1$1.default(), this.videoStreamDescription.trackLabel = "AmazonChimeExpressVideo", this.videoStreamDescription.streamId = 2, this.videoStreamDescription.groupId = 2;
  }
  localStreamDescriptions() {
    return [this.videoStreamDescription.clone()];
  }
  convertBpsToKbps(tv) {
    return tv > 0 && tv < 1e3 ? 1 : Math.trunc(tv / 1e3);
  }
  remoteStreamDescriptions() {
    if (!this.currentIndex || !this.currentIndex.sources)
      return [];
    const tv = [];
    return this.currentIndex.sources.forEach((ev) => {
      const iv = new VideoStreamDescription_1$1.default();
      iv.attendeeId = ev.attendeeId, iv.groupId = ev.groupId, iv.streamId = ev.streamId, iv.maxBitrateKbps = ev.maxBitrateKbps, iv.avgBitrateKbps = this.convertBpsToKbps(ev.avgBitrateBps), tv.push(iv);
    }), tv;
  }
  integrateUplinkPolicyDecision(tv) {
    if (tv && tv.length) {
      const ev = tv[0];
      this.videoStreamDescription.maxBitrateKbps = ev.maxBitrate / 1e3, this.videoStreamDescription.maxFrameRate = ev.maxFramerate;
    }
  }
  integrateIndexFrame(tv) {
    this.currentIndex = tv;
    const ev = /* @__PURE__ */ new Map();
    let iv = !1;
    for (const ov of tv.sources) {
      if (!ev.has(ov.attendeeId)) {
        ev.set(ov.attendeeId, ov.groupId);
        continue;
      }
      const av = ev.get(ov.attendeeId);
      av < ov.groupId && (this.logger.warn(`Old group ID ${av} found for attendee ID ${ov.attendeeId}, replacing with newer group ID ${ov.groupId}`), ev.set(ov.attendeeId, ov.groupId)), iv = !0;
    }
    iv && (this.currentIndex.sources = this.currentIndex.sources.filter((ov) => ev.get(ov.attendeeId) === ov.groupId)), this.streamToAttendeeMap = null, this.streamToExternalUserIdMap = null;
  }
  subscribeFrameSent() {
    this.indexForSubscribe = this.currentIndex;
  }
  integrateSubscribeAckFrame(tv) {
    this.currentSubscribeAck = tv, this.subscribeTrackToStreamMap = this.buildTrackToStreamMap(this.currentSubscribeAck), this.subscribeSsrcToStreamMap = this.buildSSRCToStreamMap(this.currentSubscribeAck), this.subscribeStreamToAttendeeMap = this.buildStreamToAttendeeMap(this.indexForSubscribe), this.subscribeStreamToExternalUserIdMap = this.buildStreamExternalUserIdMap(this.indexForSubscribe);
  }
  integrateBitratesFrame(tv) {
    if (this.currentIndex)
      for (const ev of tv.bitrates) {
        const iv = this.currentIndex.sources.find((ov) => ov.streamId === ev.sourceStreamId);
        iv !== void 0 && (iv.avgBitrateBps = ev.avgBitrateBps);
      }
  }
  allStreams() {
    const tv = new DefaultVideoStreamIdSet_1$1.default();
    if (this.currentIndex)
      for (const ev of this.currentIndex.sources)
        tv.add(ev.streamId);
    return tv;
  }
  allVideoSendingSourcesExcludingSelf(tv) {
    const ev = [], iv = /* @__PURE__ */ new Set();
    if (this.currentIndex && this.currentIndex.sources && this.currentIndex.sources.length)
      for (const ov of this.currentIndex.sources) {
        const { attendeeId: av, externalUserId: sv, mediaType: lv } = ov;
        av !== tv && lv === SignalingProtocol_js_1$1.SdkStreamMediaType.VIDEO && (iv.has(av) || (ev.push({ attendee: { attendeeId: av, externalUserId: sv } }), iv.add(av)));
      }
    return ev;
  }
  streamSelectionUnderBandwidthConstraint(tv, ev, iv, ov) {
    const av = /* @__PURE__ */ new Set();
    if (this.currentIndex)
      for (const dv of this.currentIndex.sources)
        dv.attendeeId === tv || dv.mediaType !== SignalingProtocol_js_1$1.SdkStreamMediaType.VIDEO || !ev.has(dv.attendeeId) && !iv.has(dv.attendeeId) && av.add(dv.attendeeId);
    const sv = this.buildAttendeeToSortedStreamDescriptorMapExcludingSelf(tv), lv = /* @__PURE__ */ new Map();
    let uv = 0;
    sv.forEach((dv, hv) => {
      lv.set(hv, dv[0]), uv += dv[0].maxBitrateKbps;
    }), uv = this.trySelectHighBitrateForAttendees(sv, ev, uv, ov, lv), this.trySelectHighBitrateForAttendees(sv, av, uv, ov, lv);
    const cv = new DefaultVideoStreamIdSet_1$1.default();
    for (const dv of lv.values())
      cv.add(dv.streamId);
    return cv;
  }
  highestQualityStreamFromEachGroupExcludingSelf(tv) {
    const ev = new DefaultVideoStreamIdSet_1$1.default();
    if (this.currentIndex) {
      const iv = /* @__PURE__ */ new Map();
      for (const ov of this.currentIndex.sources)
        ov.attendeeId === tv || ov.mediaType !== SignalingProtocol_js_1$1.SdkStreamMediaType.VIDEO || (!iv.has(ov.groupId) || ov.maxBitrateKbps > iv.get(ov.groupId).maxBitrateKbps) && iv.set(ov.groupId, ov);
      for (const ov of iv.values())
        ev.add(ov.streamId);
    }
    return ev;
  }
  numberOfVideoPublishingParticipantsExcludingSelf(tv) {
    return this.highestQualityStreamFromEachGroupExcludingSelf(tv).array().length;
  }
  numberOfParticipants() {
    return this.currentIndex.numParticipants ? this.currentIndex.numParticipants : -1;
  }
  attendeeIdForTrack(tv) {
    const ev = this.streamIdForTrack(tv);
    if (ev === void 0 || !this.subscribeStreamToAttendeeMap)
      return this.logger.warn(`no attendee found for track ${tv}`), "";
    const iv = this.subscribeStreamToAttendeeMap.get(ev);
    return iv || (this.logger.info(`track ${tv} (stream ${ev}) does not correspond to a known attendee`), "");
  }
  externalUserIdForTrack(tv) {
    const ev = this.streamIdForTrack(tv);
    if (ev === void 0 || !this.subscribeStreamToExternalUserIdMap)
      return this.logger.warn(`no external user id found for track ${tv}`), "";
    const iv = this.subscribeStreamToExternalUserIdMap.get(ev);
    return iv || (this.logger.info(`track ${tv} (stream ${ev}) does not correspond to a known externalUserId`), "");
  }
  attendeeIdForStreamId(tv) {
    if (!this.streamToAttendeeMap)
      if (this.currentIndex)
        this.streamToAttendeeMap = this.buildStreamToAttendeeMap(this.currentIndex);
      else
        return "";
    const ev = this.streamToAttendeeMap.get(tv);
    return ev || (this.logger.info(`stream ${tv}) does not correspond to a known attendee`), "");
  }
  groupIdForStreamId(tv) {
    for (const ev of this.currentIndex.sources)
      if (ev.streamId === tv)
        return ev.groupId;
    if (this.indexForSubscribe) {
      for (const ev of this.indexForSubscribe.sources)
        if (ev.streamId === tv)
          return ev.groupId;
    }
  }
  StreamIdsInSameGroup(tv, ev) {
    return this.groupIdForStreamId(tv) === this.groupIdForStreamId(ev);
  }
  streamIdForTrack(tv) {
    if (this.subscribeTrackToStreamMap)
      return this.subscribeTrackToStreamMap.get(tv);
  }
  streamIdForSSRC(tv) {
    if (this.subscribeSsrcToStreamMap)
      return this.subscribeSsrcToStreamMap.get(tv);
  }
  overrideStreamIdMappings(tv, ev) {
    if (this.subscribeTrackToStreamMap) {
      for (const [iv, ov] of this.subscribeTrackToStreamMap.entries())
        if (tv === ov) {
          this.subscribeTrackToStreamMap.set(iv, ev);
          break;
        }
    }
    if (this.subscribeSsrcToStreamMap) {
      for (const [iv, ov] of this.subscribeSsrcToStreamMap.entries())
        if (tv === ov) {
          this.subscribeSsrcToStreamMap.set(iv, ev);
          break;
        }
    }
  }
  streamsPausedAtSource() {
    const tv = new DefaultVideoStreamIdSet_1$1.default();
    if (this.currentIndex)
      for (const ev of this.currentIndex.pausedAtSourceIds)
        tv.add(ev);
    return tv;
  }
  buildTrackToStreamMap(tv) {
    const ev = /* @__PURE__ */ new Map();
    this.logger.debug(() => `trackMap ${JSON.stringify(tv.tracks)}`);
    for (const iv of tv.tracks)
      iv.trackLabel.length > 0 && iv.streamId > 0 && ev.set(iv.trackLabel, iv.streamId);
    return ev;
  }
  buildSSRCToStreamMap(tv) {
    const ev = /* @__PURE__ */ new Map();
    this.logger.debug(() => `ssrcMap ${JSON.stringify(tv.tracks)}`);
    for (const iv of tv.tracks)
      iv.trackLabel.length > 0 && iv.streamId > 0 && ev.set(iv.ssrc, iv.streamId);
    return ev;
  }
  buildStreamToAttendeeMap(tv) {
    const ev = /* @__PURE__ */ new Map();
    if (tv)
      for (const iv of tv.sources)
        ev.set(iv.streamId, iv.attendeeId);
    return ev;
  }
  buildStreamExternalUserIdMap(tv) {
    const ev = /* @__PURE__ */ new Map();
    if (tv)
      for (const iv of tv.sources)
        iv.externalUserId && ev.set(iv.streamId, iv.externalUserId);
    return ev;
  }
  trySelectHighBitrateForAttendees(tv, ev, iv, ov, av) {
    for (const sv of ev) {
      if (iv >= ov)
        break;
      if (tv.has(sv)) {
        const lv = tv.get(sv);
        for (const uv of lv.reverse())
          if (iv - av.get(sv).maxBitrateKbps + uv.maxBitrateKbps < ov) {
            iv = iv - av.get(sv).maxBitrateKbps + uv.maxBitrateKbps, av.set(sv, uv);
            break;
          }
      }
    }
    return iv;
  }
  buildAttendeeToSortedStreamDescriptorMapExcludingSelf(tv) {
    const ev = /* @__PURE__ */ new Map();
    if (this.currentIndex)
      for (const iv of this.currentIndex.sources)
        iv.attendeeId === tv || iv.mediaType !== SignalingProtocol_js_1$1.SdkStreamMediaType.VIDEO || (ev.has(iv.attendeeId) ? ev.get(iv.attendeeId).push(iv) : ev.set(iv.attendeeId, [iv]));
    return ev.forEach((iv, ov) => {
      iv.sort((av, sv) => av.maxBitrateKbps > sv.maxBitrateKbps ? 1 : av.maxBitrateKbps < sv.maxBitrateKbps ? -1 : 0);
    }), ev;
  }
}
DefaultVideoStreamIndex$1.default = DefaultVideoStreamIndex;
var SimulcastVideoStreamIndex$1 = {};
Object.defineProperty(SimulcastVideoStreamIndex$1, "__esModule", { value: !0 });
const SignalingProtocol_js_1 = SignalingProtocol, DefaultVideoStreamIndex_1 = DefaultVideoStreamIndex$1, VideoStreamDescription_1 = VideoStreamDescription$1;
class SimulcastVideoStreamIndex extends DefaultVideoStreamIndex_1.default {
  constructor(tv) {
    super(tv), this.streamIdToBitrateKbpsMap = /* @__PURE__ */ new Map(), this._localStreamInfos = [], this._lastBitRateMsgTime = Date.now();
  }
  localStreamDescriptions() {
    const tv = [];
    return this._localStreamInfos.forEach((ev) => {
      tv.push(ev.clone());
    }), tv;
  }
  integrateUplinkPolicyDecision(tv) {
    let ev = !0, iv = 0;
    for (let ov = 0; ov < tv.length; ov++) {
      const av = tv[ov].maxBitrate / 1e3, sv = tv[ov].maxFramerate;
      if (!ev || ov === this._localStreamInfos.length) {
        ev = !1;
        const lv = new VideoStreamDescription_1.default();
        lv.maxBitrateKbps = av, lv.maxFrameRate = sv, lv.disabledByUplinkPolicy = av === 0, av !== 0 && (lv.timeEnabled = Date.now()), this._localStreamInfos.push(lv), iv++;
        continue;
      }
      this._localStreamInfos[iv].maxBitrateKbps === 0 && av > 0 && (this._localStreamInfos[iv].timeEnabled = Date.now()), this._localStreamInfos[iv].maxBitrateKbps = av, this._localStreamInfos[iv].maxFrameRate = sv, this._localStreamInfos[iv].disabledByUplinkPolicy = av === 0, this._localStreamInfos[iv].disabledByUplinkPolicy === !0 && (this._localStreamInfos[iv].disabledByWebRTC = !1), iv++;
    }
    ev && this._localStreamInfos.splice(iv);
  }
  integrateBitratesFrame(tv) {
    super.integrateBitratesFrame(tv);
    const ev = /* @__PURE__ */ new Set(), iv = new Set(this.streamIdToBitrateKbpsMap.keys());
    for (const ov of tv.bitrates)
      ev.add(ov.sourceStreamId), this.streamIdToBitrateKbpsMap.set(ov.sourceStreamId, this.convertBpsToKbps(ov.avgBitrateBps));
    for (const ov of iv)
      ev.has(ov) || (this.streamIdToBitrateKbpsMap.get(ov) === SimulcastVideoStreamIndex.UNSEEN_STREAM_BITRATE ? this.streamIdToBitrateKbpsMap.set(ov, SimulcastVideoStreamIndex.RECENTLY_INACTIVE_STREAM_BITRATE) : this.streamIdToBitrateKbpsMap.set(ov, SimulcastVideoStreamIndex.NOT_SENDING_STREAM_BITRATE));
    for (let ov = 0; ov < this._localStreamInfos.length; ov++) {
      this._localStreamInfos[ov].disabledByWebRTC = !1;
      const av = this._localStreamInfos[ov].streamId;
      this._localStreamInfos[ov].disabledByUplinkPolicy || (this.streamIdToBitrateKbpsMap.has(av) ? this.streamIdToBitrateKbpsMap.get(av) === SimulcastVideoStreamIndex.NOT_SENDING_STREAM_BITRATE && this._lastBitRateMsgTime - this._localStreamInfos[ov].timeEnabled > SimulcastVideoStreamIndex.BitratesMsgFrequencyMs && (this._localStreamInfos[ov].disabledByWebRTC = !0) : this._lastBitRateMsgTime - this._localStreamInfos[ov].timeEnabled > SimulcastVideoStreamIndex.BitratesMsgFrequencyMs && (this._localStreamInfos[ov].disabledByWebRTC = !0));
    }
    this._lastBitRateMsgTime = Date.now(), this.logLocalStreamDescriptions();
  }
  logLocalStreamDescriptions() {
    let tv = "";
    for (const ev of this._localStreamInfos)
      tv += `streamId=${ev.streamId} maxBitrate=${ev.maxBitrateKbps} disabledByWebRTC=${ev.disabledByWebRTC} disabledByUplink=${ev.disabledByUplinkPolicy}
`;
    this.logger.debug(() => tv);
  }
  integrateIndexFrame(tv) {
    super.integrateIndexFrame(tv);
    const ev = /* @__PURE__ */ new Set(), iv = new Set(this.streamIdToBitrateKbpsMap.keys());
    for (const ov of this.currentIndex.sources)
      ov.mediaType === SignalingProtocol_js_1.SdkStreamMediaType.VIDEO && (ev.add(ov.streamId), this.streamIdToBitrateKbpsMap.has(ov.streamId) || this.streamIdToBitrateKbpsMap.set(ov.streamId, SimulcastVideoStreamIndex.UNSEEN_STREAM_BITRATE));
    for (const ov of iv)
      ev.has(ov) || this.streamIdToBitrateKbpsMap.delete(ov);
  }
  integrateSubscribeAckFrame(tv) {
    if (super.integrateSubscribeAckFrame(tv), !tv.allocations || tv.allocations === void 0)
      return;
    let ev = 0;
    for (const iv of tv.allocations) {
      if (this._localStreamInfos.length < ev + 1) {
        this.logger.info("simulcast: allocation has more than number of local streams");
        break;
      }
      this._localStreamInfos[ev].groupId = iv.groupId, this._localStreamInfos[ev].streamId = iv.streamId, this.streamIdToBitrateKbpsMap.has(iv.streamId) || this.streamIdToBitrateKbpsMap.set(iv.streamId, SimulcastVideoStreamIndex.UNSEEN_STREAM_BITRATE), ev++;
    }
  }
}
SimulcastVideoStreamIndex$1.default = SimulcastVideoStreamIndex;
SimulcastVideoStreamIndex.UNSEEN_STREAM_BITRATE = -2;
SimulcastVideoStreamIndex.RECENTLY_INACTIVE_STREAM_BITRATE = -1;
SimulcastVideoStreamIndex.NOT_SENDING_STREAM_BITRATE = 0;
SimulcastVideoStreamIndex.BitratesMsgFrequencyMs = 4e3;
var DefaultVideoTileController$1 = {}, DefaultDevicePixelRatioMonitor$1 = {}, __awaiter$k = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultDevicePixelRatioMonitor$1, "__esModule", { value: !0 });
class DefaultDevicePixelRatioMonitor {
  constructor(tv, ev) {
    if (this.devicePixelRatioSource = tv, this.observerQueue = /* @__PURE__ */ new Set(), this.mediaQueryListener = () => {
      this.observerQueue.forEach((ov) => {
        ov.devicePixelRatioChanged(this.devicePixelRatioSource.devicePixelRatio());
      });
    }, typeof window > "u")
      return;
    const iv = matchMedia(`(resolution: ${this.devicePixelRatioSource.devicePixelRatio()}dppx)`);
    typeof iv.addEventListener == "function" ? (iv.addEventListener("change", this.mediaQueryListener), this.mediaQueryList = iv) : typeof iv.addListener == "function" ? (iv.addListener(this.mediaQueryListener), this.mediaQueryList = iv) : ev.warn("ignoring DefaultDevicePixelRatioMonitor");
  }
  destroy() {
    return __awaiter$k(this, void 0, void 0, function* () {
      this.mediaQueryList && (typeof this.mediaQueryList.addEventListener == "function" ? this.mediaQueryList.removeEventListener("change", this.mediaQueryListener) : this.mediaQueryList.removeListener(this.mediaQueryListener)), delete this.mediaQueryListener, this.observerQueue.clear();
    });
  }
  registerObserver(tv) {
    this.observerQueue.add(tv), tv.devicePixelRatioChanged(this.devicePixelRatioSource.devicePixelRatio());
  }
  removeObserver(tv) {
    this.observerQueue.delete(tv);
  }
}
DefaultDevicePixelRatioMonitor$1.default = DefaultDevicePixelRatioMonitor;
var DevicePixelRatioWindowSource$1 = {};
Object.defineProperty(DevicePixelRatioWindowSource$1, "__esModule", { value: !0 });
class DevicePixelRatioWindowSource {
  devicePixelRatio() {
    return typeof window > "u" || !window || !window.devicePixelRatio ? 1 : window.devicePixelRatio;
  }
}
DevicePixelRatioWindowSource$1.default = DevicePixelRatioWindowSource;
var __awaiter$j = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultVideoTileController$1, "__esModule", { value: !0 });
const DefaultDevicePixelRatioMonitor_1 = DefaultDevicePixelRatioMonitor$1, DevicePixelRatioWindowSource_1 = DevicePixelRatioWindowSource$1, Types_1$2 = Types;
class DefaultVideoTileController {
  constructor(tv, ev, iv) {
    this.tileFactory = tv, this.audioVideoController = ev, this.logger = iv, this.tileMap = /* @__PURE__ */ new Map(), this.nextTileId = 1, this.currentLocalTile = null, this.currentPausedTilesByIds = /* @__PURE__ */ new Set(), this.keepLastFrameWhenPaused = !1, this.keepLastFrameWhenPaused = ev.configuration.keepLastFrameWhenPaused;
  }
  createDevicePixelRatioMonitorIfNeeded() {
    this.devicePixelRatioMonitor || (this.devicePixelRatioMonitor = new DefaultDevicePixelRatioMonitor_1.default(new DevicePixelRatioWindowSource_1.default(), this.logger));
  }
  discardDevicePixelRatioMonitorIfNotNeeded() {
    return __awaiter$j(this, void 0, void 0, function* () {
      if (this.tileMap.size || !this.devicePixelRatioMonitor)
        return;
      const tv = this.devicePixelRatioMonitor;
      return this.devicePixelRatioMonitor = void 0, tv.destroy();
    });
  }
  bindVideoElement(tv, ev) {
    const iv = this.getVideoTile(tv);
    if (iv === null) {
      this.logger.warn(`Ignoring video element binding for unknown tile id ${tv}`);
      return;
    }
    iv.bindVideoElement(ev);
  }
  unbindVideoElement(tv) {
    this.bindVideoElement(tv, null);
  }
  startLocalVideoTile() {
    const tv = this.findOrCreateLocalVideoTile();
    return this.currentLocalTile.stateRef().localTileStarted = !0, this.audioVideoController.update({ needsRenegotiation: !0 }), tv.id();
  }
  stopLocalVideoTile() {
    this.currentLocalTile && (this.currentLocalTile.stateRef().localTileStarted = !1, this.currentLocalTile.bindVideoStream(this.audioVideoController.configuration.credentials.attendeeId, !0, null, null, null, null, this.audioVideoController.configuration.credentials.externalUserId), this.audioVideoController.update({ needsRenegotiation: !0 }));
  }
  hasStartedLocalVideoTile() {
    return !!(this.currentLocalTile && this.currentLocalTile.stateRef().localTileStarted);
  }
  removeLocalVideoTile() {
    this.currentLocalTile && this.removeVideoTile(this.currentLocalTile.id());
  }
  getLocalVideoTile() {
    return this.currentLocalTile;
  }
  pauseVideoTile(tv) {
    const ev = this.getVideoTile(tv);
    ev && (this.currentPausedTilesByIds.has(tv) || (this.audioVideoController.pauseReceivingStream(ev.stateRef().streamId), this.currentPausedTilesByIds.add(tv)), ev.pause());
  }
  unpauseVideoTile(tv) {
    const ev = this.getVideoTile(tv);
    ev && (this.currentPausedTilesByIds.has(tv) && (this.audioVideoController.resumeReceivingStream(ev.stateRef().streamId), this.currentPausedTilesByIds.delete(tv)), ev.unpause());
  }
  getVideoTile(tv) {
    return this.tileMap.has(tv) ? this.tileMap.get(tv) : null;
  }
  getVideoTileArea(tv) {
    const ev = tv.state();
    let iv = 0, ov = 0;
    return ev.boundVideoElement && (iv = ev.boundVideoElement.clientHeight * ev.devicePixelRatio, ov = ev.boundVideoElement.clientWidth * ev.devicePixelRatio), iv * ov;
  }
  getAllRemoteVideoTiles() {
    const tv = new Array();
    return this.tileMap.forEach((ev, iv) => {
      (!this.currentLocalTile || iv !== this.currentLocalTile.id()) && tv.push(ev);
    }), tv;
  }
  getAllVideoTiles() {
    return Array.from(this.tileMap.values());
  }
  addVideoTile(tv = !1) {
    const ev = this.nextTileId;
    this.nextTileId += 1, this.createDevicePixelRatioMonitorIfNeeded();
    const iv = this.tileFactory.makeTile(ev, tv, this, this.devicePixelRatioMonitor);
    return this.tileMap.set(ev, iv), iv;
  }
  removeVideoTile(tv) {
    if (!this.tileMap.has(tv))
      return;
    const ev = this.tileMap.get(tv);
    this.currentLocalTile === ev && (this.currentLocalTile = null), ev.destroy(), this.tileMap.delete(tv), this.audioVideoController.forEachObserver((iv) => {
      Types_1$2.Maybe.of(iv.videoTileWasRemoved).map((ov) => ov.bind(iv)(tv));
    }), this.discardDevicePixelRatioMonitorIfNotNeeded();
  }
  removeVideoTilesByAttendeeId(tv) {
    const ev = [];
    for (const iv of this.getAllVideoTiles()) {
      const ov = iv.state();
      ov.boundAttendeeId === tv && (this.removeVideoTile(ov.tileId), ev.push(ov.tileId));
    }
    return ev;
  }
  removeAllVideoTiles() {
    const tv = Array.from(this.tileMap.keys());
    for (const ev of tv)
      this.removeVideoTile(ev);
  }
  sendTileStateUpdate(tv) {
    this.audioVideoController.forEachObserver((ev) => {
      Types_1$2.Maybe.of(ev.videoTileDidUpdate).map((iv) => iv.bind(ev)(tv));
    });
  }
  haveVideoTilesWithStreams() {
    for (const tv of this.getAllVideoTiles())
      if (tv.state().boundVideoStream)
        return !0;
    return !1;
  }
  haveVideoTileForAttendeeId(tv) {
    return !!this.getVideoTileForAttendeeId(tv);
  }
  getVideoTileForAttendeeId(tv) {
    for (const ev of this.getAllVideoTiles())
      if (ev.state().boundAttendeeId === tv)
        return ev;
  }
  captureVideoTile(tv) {
    const ev = this.getVideoTile(tv);
    return ev ? ev.capture() : null;
  }
  findOrCreateLocalVideoTile() {
    return this.currentLocalTile ? this.currentLocalTile : (this.currentLocalTile = this.addVideoTile(!0), this.currentLocalTile.bindVideoStream(this.audioVideoController.configuration.credentials.attendeeId, !0, null, null, null, null, this.audioVideoController.configuration.credentials.externalUserId), this.currentLocalTile);
  }
}
DefaultVideoTileController$1.default = DefaultVideoTileController;
var DefaultVideoTileFactory$1 = {};
Object.defineProperty(DefaultVideoTileFactory$1, "__esModule", { value: !0 });
const DefaultVideoTile_1 = DefaultVideoTile$1;
class DefaultVideoTileFactory {
  makeTile(tv, ev, iv, ov) {
    return new DefaultVideoTile_1.default(tv, ev, iv, ov);
  }
}
DefaultVideoTileFactory$1.default = DefaultVideoTileFactory;
var DefaultSimulcastUplinkPolicy$1 = {}, SimulcastLayers = {};
(function(rv) {
  Object.defineProperty(rv, "__esModule", { value: !0 }), rv.SimulcastLayers = void 0;
  var tv;
  (function(ev) {
    ev[ev.Low = 0] = "Low", ev[ev.LowAndMedium = 1] = "LowAndMedium", ev[ev.LowAndHigh = 2] = "LowAndHigh", ev[ev.Medium = 3] = "Medium", ev[ev.MediumAndHigh = 4] = "MediumAndHigh", ev[ev.High = 5] = "High";
  })(tv = rv.SimulcastLayers || (rv.SimulcastLayers = {})), rv.default = tv;
})(SimulcastLayers);
Object.defineProperty(DefaultSimulcastUplinkPolicy$1, "__esModule", { value: !0 });
const SimulcastLayers_1 = SimulcastLayers, SimulcastTransceiverController_1 = SimulcastTransceiverController$1, Types_1$1 = Types, DefaultVideoCaptureAndEncodeParameter_1$2 = DefaultVideoCaptureAndEncodeParameter$1, BitrateParameters_1 = BitrateParameters$1;
class DefaultSimulcastUplinkPolicy {
  constructor(tv, ev) {
    this.selfAttendeeId = tv, this.logger = ev, this.numSenders = 0, this.shouldDisableSimulcast = !1, this.newQualityMap = /* @__PURE__ */ new Map(), this.currentQualityMap = /* @__PURE__ */ new Map(), this.newActiveStreams = 1, this.currentActiveStreams = 1, this.lastUplinkBandwidthKbps = DefaultSimulcastUplinkPolicy.defaultUplinkBandwidthKbps, this.startTimeMs = 0, this.lastUpdatedMs = Date.now(), this.videoIndex = null, this.currLocalDescriptions = [], this.nextLocalDescriptions = [], this.observerQueue = /* @__PURE__ */ new Set(), this.optimalParameters = new DefaultVideoCaptureAndEncodeParameter_1$2.default(0, 0, 0, 0, !0), this.parametersInEffect = new DefaultVideoCaptureAndEncodeParameter_1$2.default(0, 0, 0, 0, !0), this.lastUplinkBandwidthKbps = DefaultSimulcastUplinkPolicy.defaultUplinkBandwidthKbps, this.currentQualityMap = this.fillEncodingParamWithBitrates([300, 0, 1200]), this.newQualityMap = this.fillEncodingParamWithBitrates([300, 0, 1200]);
  }
  updateConnectionMetric({ uplinkKbps: tv = 0 }) {
    if (isNaN(tv))
      return;
    this.startTimeMs === 0 && (this.startTimeMs = Date.now()), Date.now() - this.startTimeMs < DefaultSimulcastUplinkPolicy.startupDurationMs ? this.lastUplinkBandwidthKbps = DefaultSimulcastUplinkPolicy.defaultUplinkBandwidthKbps : this.lastUplinkBandwidthKbps = tv, this.logger.debug(() => `simulcast: uplink policy update metrics ${this.lastUplinkBandwidthKbps}`);
    let ev = DefaultSimulcastUplinkPolicy.holdDownDurationMs;
    this.currentActiveStreams === 3 ? ev = DefaultSimulcastUplinkPolicy.holdDownDurationMs * 2 : (this.currentActiveStreams === 2 && tv <= DefaultSimulcastUplinkPolicy.kMidDisabledRate || this.currentActiveStreams === 1 && tv <= DefaultSimulcastUplinkPolicy.kHiDisabledRate) && (ev = DefaultSimulcastUplinkPolicy.holdDownDurationMs / 2), !(Date.now() < this.lastUpdatedMs + ev) && (this.newQualityMap = this.calculateEncodingParameters(!1));
  }
  calculateEncodingParameters(tv) {
    const ev = [
      new BitrateParameters_1.default(),
      new BitrateParameters_1.default(),
      new BitrateParameters_1.default()
    ];
    let iv = 0, ov = 0;
    if (this.currentActiveStreams === 0 ? (iv = this.lastUplinkBandwidthKbps + 1, ov = 0) : this.currentActiveStreams === 1 ? (iv = 2400, ov = DefaultSimulcastUplinkPolicy.kHiDisabledRate) : this.currentActiveStreams === 2 ? (iv = 1e3, ov = DefaultSimulcastUplinkPolicy.kMidDisabledRate) : (iv = 300, ov = 0), tv || this.lastUplinkBandwidthKbps >= iv || this.lastUplinkBandwidthKbps <= ov) {
      this.shouldDisableSimulcast ? (this.newActiveStreams = 0, ev[0].maxBitrateKbps = 0, ev[1].maxBitrateKbps = 1200, ev[2].maxBitrateKbps = 0) : this.numSenders <= 4 && this.lastUplinkBandwidthKbps >= DefaultSimulcastUplinkPolicy.kHiDisabledRate ? (this.newActiveStreams = 1, ev[0].maxBitrateKbps = 300, ev[1].maxBitrateKbps = 0, ev[2].maxBitrateKbps = 1200) : this.lastUplinkBandwidthKbps >= DefaultSimulcastUplinkPolicy.kMidDisabledRate ? (this.newActiveStreams = 2, ev[0].maxBitrateKbps = this.lastUplinkBandwidthKbps >= 350 ? 200 : 150, ev[1].maxBitrateKbps = this.numSenders <= 6 ? 600 : 350, ev[2].maxBitrateKbps = 0) : (this.newActiveStreams = 3, ev[0].maxBitrateKbps = 300, ev[1].maxBitrateKbps = 0, ev[2].maxBitrateKbps = 0);
      const av = ev.map((sv, lv, uv) => sv.maxBitrateKbps);
      this.newQualityMap = this.fillEncodingParamWithBitrates(av), this.encodingParametersEqual() || this.logger.info(`simulcast: policy:calculateEncodingParameters bw:${this.lastUplinkBandwidthKbps} numSources:${this.numSenders} shouldDisableSimulcast:${this.shouldDisableSimulcast} newQualityMap: ${this.getQualityMapString(this.newQualityMap)}`);
    }
    return this.newQualityMap;
  }
  chooseMediaTrackConstraints() {
    return {
      width: { ideal: 1280 },
      height: { ideal: 768 },
      frameRate: { ideal: 15 }
    };
  }
  chooseEncodingParameters() {
    return this.currentQualityMap = this.newQualityMap, this.currentActiveStreams = this.newActiveStreams, this.activeStreamsToPublish !== this.newActiveStreams && (this.activeStreamsToPublish = this.newActiveStreams, this.publishEncodingSimulcastLayer()), this.currentQualityMap;
  }
  updateIndex(tv) {
    const ev = tv.numberOfVideoPublishingParticipantsExcludingSelf(this.selfAttendeeId) + 1, iv = ev !== this.numSenders, ov = tv.numberOfParticipants(), av = ov >= 0 && ov <= 2, sv = this.shouldDisableSimulcast !== av;
    this.numSenders = ev, this.shouldDisableSimulcast = av, this.optimalParameters = new DefaultVideoCaptureAndEncodeParameter_1$2.default(this.captureWidth(), this.captureHeight(), this.captureFrameRate(), this.maxBandwidthKbps(), !1), this.videoIndex = tv, this.newQualityMap = this.calculateEncodingParameters(iv || sv);
  }
  wantsResubscribe() {
    let tv = !this.encodingParametersEqual();
    this.nextLocalDescriptions = this.videoIndex.localStreamDescriptions();
    for (let ev = 0; ev < this.nextLocalDescriptions.length; ev++) {
      const iv = this.nextLocalDescriptions[ev].streamId;
      if (iv !== 0 && iv) {
        const ov = this.currLocalDescriptions.findIndex((av) => av.streamId === iv);
        ov !== -1 && this.nextLocalDescriptions[ev].disabledByWebRTC !== this.currLocalDescriptions[ov].disabledByWebRTC && (tv = !0);
      }
    }
    return tv && (this.lastUpdatedMs = Date.now()), this.currLocalDescriptions = this.nextLocalDescriptions, tv;
  }
  compareEncodingParameter(tv, ev) {
    return JSON.stringify(tv) === JSON.stringify(ev);
  }
  encodingParametersEqual() {
    let tv = !1;
    for (const ev of SimulcastTransceiverController_1.default.NAME_ARR_ASCENDING)
      if (tv = tv || !this.compareEncodingParameter(this.newQualityMap.get(ev), this.currentQualityMap.get(ev)), tv)
        break;
    return !tv;
  }
  chooseCaptureAndEncodeParameters() {
    return this.parametersInEffect = this.optimalParameters.clone(), this.parametersInEffect.clone();
  }
  captureWidth() {
    return 1280;
  }
  captureHeight() {
    return 768;
  }
  captureFrameRate() {
    return 15;
  }
  maxBandwidthKbps() {
    return 1400;
  }
  setIdealMaxBandwidthKbps(tv) {
  }
  setHasBandwidthPriority(tv) {
  }
  fillEncodingParamWithBitrates(tv) {
    const ev = /* @__PURE__ */ new Map(), iv = 1e3, ov = SimulcastTransceiverController_1.default.NAME_ARR_ASCENDING, av = tv;
    let sv = this.shouldDisableSimulcast ? 1 : 4;
    for (let lv = 0; lv < ov.length; lv++) {
      const uv = ov[lv];
      ev.set(uv, {
        rid: uv,
        active: av[lv] > 0,
        scaleResolutionDownBy: Math.max(sv, 1),
        maxBitrate: av[lv] * iv
      }), sv = sv / 2;
    }
    return ev;
  }
  getQualityMapString(tv) {
    let ev = "";
    const iv = this.videoIndex.localStreamDescriptions();
    return iv.length === 3 && tv.forEach((ov) => {
      let av = !1;
      ov.rid === "low" ? av = iv[0].disabledByWebRTC : ov.rid === "mid" ? av = iv[1].disabledByWebRTC : av = iv[2].disabledByWebRTC, ev += `{ rid: ${ov.rid} active:${ov.active} disabledByWebRTC: ${av} maxBitrate:${ov.maxBitrate}}`;
    }), ev;
  }
  getEncodingSimulcastLayer(tv) {
    switch (tv) {
      case 0:
        return SimulcastLayers_1.default.High;
      case 1:
        return SimulcastLayers_1.default.LowAndHigh;
      case 2:
        return SimulcastLayers_1.default.LowAndMedium;
      case 3:
        return SimulcastLayers_1.default.Low;
    }
  }
  publishEncodingSimulcastLayer() {
    const tv = this.getEncodingSimulcastLayer(this.activeStreamsToPublish);
    this.forEachObserver((ev) => {
      Types_1$1.Maybe.of(ev.encodingSimulcastLayersDidChange).map((iv) => iv.bind(ev)(tv));
    });
  }
  addObserver(tv) {
    this.logger.info("adding simulcast uplink observer"), this.observerQueue.add(tv);
  }
  removeObserver(tv) {
    this.logger.info("removing simulcast uplink observer"), this.observerQueue.delete(tv);
  }
  forEachObserver(tv) {
    for (const ev of this.observerQueue)
      tv(ev);
  }
}
DefaultSimulcastUplinkPolicy$1.default = DefaultSimulcastUplinkPolicy;
DefaultSimulcastUplinkPolicy.defaultUplinkBandwidthKbps = 1200;
DefaultSimulcastUplinkPolicy.startupDurationMs = 6e3;
DefaultSimulcastUplinkPolicy.holdDownDurationMs = 4e3;
DefaultSimulcastUplinkPolicy.defaultMaxFrameRate = 15;
DefaultSimulcastUplinkPolicy.kHiDisabledRate = 700;
DefaultSimulcastUplinkPolicy.kMidDisabledRate = 240;
var NScaleVideoUplinkBandwidthPolicy$1 = {}, __awaiter$i = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(NScaleVideoUplinkBandwidthPolicy$1, "__esModule", { value: !0 });
const DefaultVideoCaptureAndEncodeParameter_1$1 = DefaultVideoCaptureAndEncodeParameter$1;
class NScaleVideoUplinkBandwidthPolicy {
  constructor(tv, ev = !0, iv = void 0, ov = void 0) {
    this.selfAttendeeId = tv, this.scaleResolution = ev, this.logger = iv, this.browserBehavior = ov, this.numParticipants = 0, this.idealMaxBandwidthKbps = 1400, this.hasBandwidthPriority = !1, this.encodingParamMap = /* @__PURE__ */ new Map(), this.optimalParameters = new DefaultVideoCaptureAndEncodeParameter_1$1.default(0, 0, 0, 0, !1), this.parametersInEffect = new DefaultVideoCaptureAndEncodeParameter_1$1.default(0, 0, 0, 0, !1), this.encodingParamMap.set(NScaleVideoUplinkBandwidthPolicy.encodingMapKey, {
      maxBitrate: 0
    });
  }
  updateConnectionMetric(tv) {
  }
  chooseMediaTrackConstraints() {
    return {};
  }
  chooseEncodingParameters() {
    return /* @__PURE__ */ new Map();
  }
  updateIndex(tv) {
    let ev = !0, iv = 1;
    if (this.transceiverController && (ev = this.transceiverController.hasVideoInput()), this.numParticipants = tv.numberOfVideoPublishingParticipantsExcludingSelf(this.selfAttendeeId) + (ev ? 1 : 0), this.transceiverController) {
      const ov = this.getStreamCaptureSetting();
      ov && (iv = this.calculateEncodingParameters(ov).scaleResolutionDownBy);
    }
    this.optimalParameters = new DefaultVideoCaptureAndEncodeParameter_1$1.default(this.captureWidth(), this.captureHeight(), this.captureFrameRate(), this.maxBandwidthKbps(), !1, iv);
  }
  wantsResubscribe() {
    return !this.parametersInEffect.equal(this.optimalParameters);
  }
  chooseCaptureAndEncodeParameters() {
    return this.parametersInEffect = this.optimalParameters.clone(), this.parametersInEffect.clone();
  }
  captureWidth() {
    let tv = 640;
    return this.numParticipants > 4 && (tv = 320), tv;
  }
  captureHeight() {
    let tv = 384;
    return this.numParticipants > 4 && (tv = 192), tv;
  }
  captureFrameRate() {
    return 15;
  }
  maxBandwidthKbps() {
    if (this.hasBandwidthPriority)
      return Math.trunc(this.idealMaxBandwidthKbps);
    let tv = 0;
    return this.numParticipants <= 2 ? tv = this.idealMaxBandwidthKbps : this.numParticipants <= 4 ? tv = this.idealMaxBandwidthKbps * 2 / 3 : tv = (544 / 11 + 14880 / (11 * this.numParticipants)) / 600 * this.idealMaxBandwidthKbps, Math.trunc(tv);
  }
  setIdealMaxBandwidthKbps(tv) {
    this.idealMaxBandwidthKbps = tv;
  }
  setHasBandwidthPriority(tv) {
    this.hasBandwidthPriority = tv;
  }
  setTransceiverController(tv) {
    this.transceiverController = tv;
  }
  updateTransceiverController() {
    return __awaiter$i(this, void 0, void 0, function* () {
      const tv = this.getStreamCaptureSetting();
      if (!tv)
        return;
      const ev = this.calculateEncodingParameters(tv);
      this.shouldUpdateEndcodingParameters(ev) && (this.encodingParamMap.set(NScaleVideoUplinkBandwidthPolicy.encodingMapKey, ev), this.transceiverController.setEncodingParameters(this.encodingParamMap));
    });
  }
  shouldUpdateEndcodingParameters(tv) {
    var ev, iv;
    const ov = (iv = (ev = this.transceiverController.localVideoTransceiver().sender.getParameters()) === null || ev === void 0 ? void 0 : ev.encodings) === null || iv === void 0 ? void 0 : iv[0];
    return tv.maxBitrate !== (ov == null ? void 0 : ov.maxBitrate) || tv.scaleResolutionDownBy !== (ov == null ? void 0 : ov.scaleResolutionDownBy);
  }
  calculateEncodingParameters(tv) {
    var ev, iv;
    const ov = this.maxBandwidthKbps() * 1e3;
    let av = 1;
    if (tv.height !== void 0 && tv.width !== void 0 && this.scaleResolution && !this.hasBandwidthPriority && this.numParticipants > 2) {
      let sv = NScaleVideoUplinkBandwidthPolicy.targetHeightArray[Math.min(this.numParticipants, NScaleVideoUplinkBandwidthPolicy.targetHeightArray.length - 1)];
      sv === 480 && (!((ev = this.browserBehavior) === null || ev === void 0) && ev.disable480pResolutionScaleDown()) && (sv = 360), av = Math.max(Math.min(tv.height, tv.width) / sv, 1), (iv = this.logger) === null || iv === void 0 || iv.info(`Resolution scale factor is ${av} for capture resolution ${tv.width}x${tv.height}. New dimension is ${tv.width / av}x${tv.height / av}`);
    }
    return {
      scaleResolutionDownBy: av,
      maxBitrate: ov
    };
  }
  getStreamCaptureSetting() {
    var tv, ev, iv, ov;
    return (ov = (iv = (ev = (tv = this.transceiverController) === null || tv === void 0 ? void 0 : tv.localVideoTransceiver()) === null || ev === void 0 ? void 0 : ev.sender) === null || iv === void 0 ? void 0 : iv.track) === null || ov === void 0 ? void 0 : ov.getSettings();
  }
}
NScaleVideoUplinkBandwidthPolicy$1.default = NScaleVideoUplinkBandwidthPolicy;
NScaleVideoUplinkBandwidthPolicy.encodingMapKey = "video";
NScaleVideoUplinkBandwidthPolicy.targetHeightArray = [
  0,
  0,
  0,
  540,
  540,
  480,
  480,
  480,
  480,
  360,
  360,
  360,
  360,
  270,
  270,
  270,
  270,
  180,
  180,
  180,
  180,
  180,
  180,
  180,
  180,
  180
];
var DefaultVolumeIndicatorAdapter$1 = {};
Object.defineProperty(DefaultVolumeIndicatorAdapter$1, "__esModule", { value: !0 });
class DefaultVolumeIndicatorAdapter {
  constructor(tv, ev, iv, ov, av) {
    this.logger = tv, this.realtimeController = ev, this.minVolumeDecibels = iv, this.maxVolumeDecibels = ov, this.selfAttendeeId = av, this.streamIdToAttendeeId = {}, this.streamIdToExternalUserId = {}, this.warnedAboutMissingStreamIdMapping = {}, this.attendeeIdToStreamId = {}, this.sessionReconnected = !1;
  }
  onReconnect() {
    this.sessionReconnected = !0;
  }
  sendRealtimeUpdatesForAudioStreamIdInfo(tv) {
    let ev = 0;
    for (const iv of tv.streams) {
      const ov = !!iv.attendeeId, av = !!iv.externalUserId, sv = iv.hasOwnProperty("muted"), lv = !!iv.dropped;
      if (ov) {
        this.attendeeIdToStreamId[iv.attendeeId] && this.attendeeIdToStreamId[iv.attendeeId] < iv.audioStreamId && delete this.attendeeIdToStreamId[iv.attendeeId], this.streamIdToAttendeeId[iv.audioStreamId] = iv.attendeeId;
        const uv = av ? iv.externalUserId : iv.attendeeId;
        this.streamIdToExternalUserId[iv.audioStreamId] = uv, this.attendeeIdToStreamId[iv.attendeeId] = iv.audioStreamId, this.realtimeController.realtimeSetAttendeeIdPresence(iv.attendeeId, !0, uv, !1, { attendeeIndex: ev++, attendeesInFrame: tv.streams.length });
      }
      if (sv) {
        const uv = this.streamIdToAttendeeId[iv.audioStreamId], cv = this.streamIdToExternalUserId[iv.audioStreamId];
        this.realtimeController.realtimeUpdateVolumeIndicator(uv, null, iv.muted, null, cv);
      }
      if (!ov && !sv) {
        const uv = this.streamIdToAttendeeId[iv.audioStreamId];
        if (uv) {
          const cv = this.streamIdToExternalUserId[iv.audioStreamId];
          delete this.streamIdToAttendeeId[iv.audioStreamId], delete this.streamIdToExternalUserId[iv.audioStreamId], delete this.warnedAboutMissingStreamIdMapping[iv.audioStreamId], this.attendeeIdToStreamId[uv] === iv.audioStreamId && delete this.attendeeIdToStreamId[uv];
          let dv = !1;
          for (const hv of Object.keys(this.streamIdToAttendeeId)) {
            const pv = parseInt(hv);
            if (pv > iv.audioStreamId && this.streamIdToAttendeeId[pv] === uv) {
              dv = !0;
              break;
            }
          }
          dv || this.realtimeController.realtimeSetAttendeeIdPresence(uv, !1, cv, lv, { attendeeIndex: ev++, attendeesInFrame: tv.streams.length });
        }
      }
    }
    this.sessionReconnected && (this.cleanUpState(tv), this.sessionReconnected = !1);
  }
  cleanUpState(tv) {
    const ev = Object.values(this.streamIdToAttendeeId), iv = tv.streams.map((av) => av.attendeeId), ov = ev.filter((av) => !iv.includes(av));
    for (const [av, sv] of ov.entries()) {
      const lv = this.attendeeIdToStreamId[sv], uv = this.streamIdToExternalUserId[lv];
      if (delete this.streamIdToAttendeeId[lv], delete this.streamIdToExternalUserId[lv], delete this.warnedAboutMissingStreamIdMapping[lv], delete this.attendeeIdToStreamId[sv], sv === this.selfAttendeeId) {
        this.logger.warn("the volume indicator adapter cleans up the current attendee (presence = false) after reconnection");
        continue;
      }
      this.realtimeController.realtimeSetAttendeeIdPresence(sv, !1, uv, !1, { attendeeIndex: av, attendeesInFrame: sv.length });
    }
  }
  sendRealtimeUpdatesForAudioMetadata(tv) {
    let ev = null, iv = null;
    for (const ov of tv.attendeeStates) {
      const av = this.attendeeIdForStreamId(ov.audioStreamId);
      ov.hasOwnProperty("volume") && (ev === null && (ev = {}), av !== null && (ev[av] = this.normalizedVolume(ov))), ov.hasOwnProperty("signalStrength") && (iv === null && (iv = {}), av !== null && (iv[av] = this.normalizedSignalStrength(ov)));
    }
    this.applyRealtimeUpdatesForAudioMetadata(ev, iv);
  }
  normalizedVolume(tv) {
    const iv = 1 - (-tv.volume - this.maxVolumeDecibels) / (this.minVolumeDecibels - this.maxVolumeDecibels);
    return Math.min(Math.max(iv, 0), 1);
  }
  normalizedSignalStrength(tv) {
    const ev = tv.signalStrength / DefaultVolumeIndicatorAdapter.MAX_SIGNAL_STRENGTH_LEVELS;
    return Math.min(Math.max(ev, 0), 1);
  }
  applyRealtimeUpdatesForAudioMetadata(tv, ev) {
    for (const iv in this.streamIdToAttendeeId) {
      const ov = this.streamIdToAttendeeId[iv], av = this.streamIdToExternalUserId[iv];
      let sv = null, lv = null;
      tv !== null && (tv.hasOwnProperty(ov) ? sv = tv[ov] : sv = DefaultVolumeIndicatorAdapter.IMPLICIT_VOLUME), ev !== null && (ev.hasOwnProperty(ov) ? lv = ev[ov] : lv = DefaultVolumeIndicatorAdapter.IMPLICIT_SIGNAL_STRENGTH), (sv !== null || lv !== null) && this.realtimeController.realtimeUpdateVolumeIndicator(ov, sv, null, lv, av);
    }
  }
  attendeeIdForStreamId(tv) {
    if (tv === 0)
      return null;
    const ev = this.streamIdToAttendeeId[tv];
    return ev || (this.warnedAboutMissingStreamIdMapping[tv] || (this.warnedAboutMissingStreamIdMapping[tv] = !0, this.logger.warn(`volume indicator stream id ${tv} seen before being defined`)), null);
  }
}
DefaultVolumeIndicatorAdapter$1.default = DefaultVolumeIndicatorAdapter;
DefaultVolumeIndicatorAdapter.MAX_SIGNAL_STRENGTH_LEVELS = 2;
DefaultVolumeIndicatorAdapter.IMPLICIT_VOLUME = 0;
DefaultVolumeIndicatorAdapter.IMPLICIT_SIGNAL_STRENGTH = 1;
var hasRequiredDefaultAudioVideoController;
function requireDefaultAudioVideoController() {
  if (hasRequiredDefaultAudioVideoController)
    return DefaultAudioVideoController;
  hasRequiredDefaultAudioVideoController = 1;
  var rv = commonjsGlobal && commonjsGlobal.__awaiter || function(e$, R1, Zv, C1) {
    function q1(t$) {
      return t$ instanceof Zv ? t$ : new Zv(function(_b) {
        _b(t$);
      });
    }
    return new (Zv || (Zv = Promise))(function(t$, _b) {
      function c$(h$) {
        try {
          p$(C1.next(h$));
        } catch (y$) {
          _b(y$);
        }
      }
      function l$(h$) {
        try {
          p$(C1.throw(h$));
        } catch (y$) {
          _b(y$);
        }
      }
      function p$(h$) {
        h$.done ? t$(h$.value) : q1(h$.value).then(c$, l$);
      }
      p$((C1 = C1.apply(e$, R1 || [])).next());
    });
  };
  Object.defineProperty(DefaultAudioVideoController, "__esModule", { value: !0 });
  const tv = DefaultActiveSpeakerDetector$1, ev = DefaultAudioMixController$1, iv = AudioProfile$1, ov = DefaultBrowserBehavior$1, av = ConnectionHealthData$1, sv = SignalingAndMetricsConnectionMonitor$1, lv = DefaultEventController$1, uv = MeetingSessionStatus$1, cv = MeetingSessionStatusCode, dv = MeetingSessionVideoAvailability$1, hv = DefaultPingPong$1, pv = DefaultRealtimeController$1, yv = AsyncScheduler$1, Sv = DefaultSessionStateController$1, _v = SessionStateControllerAction, Ev = SessionStateControllerState, wv = SessionStateControllerTransitionResult, xv = DefaultSignalingClient$1, Cv = SignalingClientEventType, Av = SignalingClientVideoSubscriptionConfiguration$1, Ov = SignalingProtocol, Lv = DefaultStatsCollector$1, jv = AttachMediaInputTask$1, Dv = CleanRestartedSessionTask$1, Vv = CleanStoppedSessionTask$1, Gv = CreatePeerConnectionTask$1, Yv = CreateSDPTask$1, Xv = FinishGatheringICECandidatesTask$1, L1 = JoinAndReceiveIndexTask$1, Bv = LeaveAndReceiveLeaveAckTask$1, Qv = ListenForVolumeIndicatorsTask$1, B1 = MonitorTask$1, K1 = OpenSignalingConnectionTask$1, j1 = ParallelGroupTask$1, P1 = requirePromoteToPrimaryMeetingTask(), D1 = ReceiveAudioInputTask$1, I1 = ReceiveTURNCredentialsTask$1, F1 = ReceiveVideoInputTask$1, M1 = ReceiveVideoStreamIndexTask$1, U1 = ReleaseMediaStreamsTask$1, H1 = SendAndReceiveDataMessagesTask$1, k1 = SerialGroupTask$1, Q1 = SetLocalDescriptionTask$1, Y1 = SetRemoteDescriptionTask$1, r$ = SubscribeAndReceiveSubscribeAckTask$1, a$ = TimeoutTask$1, S$ = WaitForAttendeePresenceTask$1, d$ = DefaultTransceiverController$1, x$ = SimulcastTransceiverController$1, g$ = VideoOnlyTransceiverController$1, _$ = Types, O$ = DefaultVideoCaptureAndEncodeParameter$1, E$ = AllHighestVideoBandwidthPolicy$1, O1 = VideoAdaptiveProbePolicy$1, Z1 = DefaultVideoStreamIdSet$1, Hv = DefaultVideoStreamIndex$1, Jv = SimulcastVideoStreamIndex$1, Mv = DefaultVideoTileController$1, zv = DefaultVideoTileFactory$1, Wv = DefaultSimulcastUplinkPolicy$1, Kv = NScaleVideoUplinkBandwidthPolicy$1, c1 = DefaultVolumeIndicatorAdapter$1, $1 = AudioVideoControllerState$1;
  let N1 = class PD {
    constructor(R1, Zv, C1, q1, t$, _b) {
      this._audioProfile = new iv.default(), this.connectionHealthData = new av.default(), this.observerQueue = /* @__PURE__ */ new Set(), this.meetingSessionContext = new $1.default(), this.enableSimulcast = !1, this.useUpdateTransceiverControllerForUplink = !1, this.totalRetryCount = 0, this.startAudioVideoTimestamp = 0, this.mayNeedRenegotiationForSimulcastLayerChange = !1, this.promotedToPrimaryMeeting = !1, this.receiveIndexTask = void 0, this.monitorTask = void 0, this.destroyed = !1, this.usePromises = !0, this._logger = Zv, this.sessionStateController = new Sv.default(this._logger), this._configuration = R1, this.enableSimulcast = R1.enableSimulcastForUnifiedPlanChromiumBasedBrowsers && new ov.default().hasChromiumWebRTC(), this._webSocketAdapter = C1, this._realtimeController = new pv.default(), this._realtimeController.realtimeSetLocalAttendeeId(R1.credentials.attendeeId, R1.credentials.externalUserId), this._mediaStreamBroker = q1, this._reconnectController = t$, this._videoTileController = new Mv.default(new zv.default(), this, this._logger), this._audioMixController = new ev.default(this._logger), this.meetingSessionContext.logger = this._logger, this._eventController = new lv.default(this, _b);
    }
    destroy() {
      return rv(this, void 0, void 0, function* () {
        this.observerQueue.clear(), this.destroyed = !0;
      });
    }
    get configuration() {
      return this._configuration;
    }
    get realtimeController() {
      return this._realtimeController;
    }
    get activeSpeakerDetector() {
      return this._activeSpeakerDetector || (this._activeSpeakerDetector = new tv.default(this._realtimeController, this._configuration.credentials.attendeeId, this.handleHasBandwidthPriority.bind(this))), this._activeSpeakerDetector;
    }
    get videoTileController() {
      return this._videoTileController;
    }
    get audioMixController() {
      return this._audioMixController;
    }
    get eventController() {
      return this._eventController;
    }
    get logger() {
      return this._logger;
    }
    get rtcPeerConnection() {
      return this.meetingSessionContext && this.meetingSessionContext.peer || null;
    }
    get mediaStreamBroker() {
      return this._mediaStreamBroker;
    }
    getRTCPeerConnectionStats(R1) {
      return this.rtcPeerConnection ? this.rtcPeerConnection.getStats(R1) : null;
    }
    setAudioProfile(R1) {
      this._audioProfile = R1;
    }
    addObserver(R1) {
      this.logger.info("adding meeting observer"), this.observerQueue.add(R1);
    }
    removeObserver(R1) {
      this.logger.info("removing meeting observer"), this.observerQueue.delete(R1);
    }
    forEachObserver(R1) {
      for (const Zv of this.observerQueue)
        yv.default.nextTick(() => {
          this.observerQueue.has(Zv) && R1(Zv);
        });
    }
    initSignalingClient() {
      this.meetingSessionContext.signalingClient || (this.connectionHealthData.reset(), this.meetingSessionContext = new $1.default(), this.meetingSessionContext.logger = this.logger, this.meetingSessionContext.eventController = this.eventController, this.meetingSessionContext.browserBehavior = new ov.default(), this.meetingSessionContext.meetingSessionConfiguration = this.configuration, this.meetingSessionContext.signalingClient = new xv.default(this._webSocketAdapter, this.logger));
    }
    uninstallPreStartObserver() {
      this.meetingSessionContext.signalingClient.removeObserver(this.preStartObserver), this.preStartObserver = void 0;
    }
    prestart() {
      return this.logger.info("Pre-connecting signaling connection."), this.createOrReuseSignalingTask().run().then(() => {
        const R1 = () => rv(this, void 0, void 0, function* () {
          this.logger.info("Early connection closed; discarding signaling task."), this.signalingTask = void 0, this.uninstallPreStartObserver();
        });
        this.preStartObserver = {
          handleSignalingClientEvent(Zv) {
            Zv.type === Cv.default.WebSocketClosed && R1();
          }
        }, this.meetingSessionContext.signalingClient.registerObserver(this.preStartObserver);
      }).catch((R1) => {
        this.logger.error(`Signaling task pre-start failed: ${R1}`), this.signalingTask = void 0;
      });
    }
    start(R1) {
      this.startReturningPromise(R1).then(() => {
        this.logger.info("start completed");
      }).catch(
        /* istanbul ignore next */
        (Zv) => {
          this.logger.error(`start failed: ${Zv}`);
        }
      );
    }
    // This is public (albeit marked internal) for tests only.
    /* @internal */
    startReturningPromise(R1) {
      return (R1 == null ? void 0 : R1.signalingOnly) === !0 ? this.prestart() : (this.activeSpeakerDetector, new Promise((Zv, C1) => {
        this.sessionStateController.perform(_v.default.Connect, () => {
          this.actionConnect(!1).then(Zv).catch(C1);
        });
      }));
    }
    // @ts-ignore
    connectWithPromises(R1) {
      const Zv = this.meetingSessionContext, C1 = (D$, A$) => new a$.default(this.logger, A$, D$);
      this.monitorTask = new B1.default(Zv, this.configuration.connectionHealthPolicyConfiguration, this.connectionHealthData);
      const q1 = this.monitorTask.once(), t$ = new D1.default(Zv).once();
      this.receiveIndexTask = new M1.default(Zv), this.monitorTask.pauseResubscribeCheck(), this.receiveIndexTask.pauseIngestion();
      const _b = new k1.default(this.logger, "Signaling", [
        // If pre-connecting, this will be an existing task that has already been run.
        this.createOrReuseSignalingTask(),
        new Qv.default(Zv),
        new H1.default(Zv),
        new L1.default(Zv),
        new I1.default(Zv),
        this.receiveIndexTask
      ]).once(), c$ = new Gv.default(Zv).once(_b), l$ = new jv.default(Zv).once(c$, t$), p$ = new Yv.default(Zv).once(l$), h$ = new Q1.default(Zv).once(p$), y$ = new Xv.default(Zv).once(h$), V$ = new r$.default(Zv).once(y$);
      return new k1.default(this.logger, this.wrapTaskName("AudioVideoStart"), [
        q1,
        C1(this.configuration.connectionTimeoutMs, new k1.default(this.logger, "Peer", [
          // The order of these two matters. If canceled, the first one that's still running
          // will contribute any special rejection, and we don't want that to be "attendee not found"!
          V$,
          R1 ? new a$.default(this.logger, new j1.default(this.logger, "FinalizeConnection", [
            new S$.default(Zv),
            new Y1.default(Zv)
          ]), this.meetingSessionContext.meetingSessionConfiguration.attendeePresenceTimeoutMs) : (
            /* istanbul ignore next */
            new Y1.default(Zv)
          )
        ]))
      ]);
    }
    connectWithTasks(R1) {
      return this.receiveIndexTask = new M1.default(this.meetingSessionContext), this.monitorTask = new B1.default(this.meetingSessionContext, this.configuration.connectionHealthPolicyConfiguration, this.connectionHealthData), this.receiveIndexTask.pauseIngestion(), this.monitorTask.pauseResubscribeCheck(), new k1.default(this.logger, this.wrapTaskName("AudioVideoStart"), [
        this.monitorTask,
        new D1.default(this.meetingSessionContext),
        new a$.default(this.logger, new k1.default(this.logger, "Media", [
          new k1.default(this.logger, "Signaling", [
            new K1.default(this.meetingSessionContext),
            new Qv.default(this.meetingSessionContext),
            new H1.default(this.meetingSessionContext),
            new L1.default(this.meetingSessionContext),
            new I1.default(this.meetingSessionContext),
            this.receiveIndexTask
          ]),
          new k1.default(this.logger, "Peer", [
            new Gv.default(this.meetingSessionContext),
            new jv.default(this.meetingSessionContext),
            new Yv.default(this.meetingSessionContext),
            new Q1.default(this.meetingSessionContext),
            new Xv.default(this.meetingSessionContext),
            new r$.default(this.meetingSessionContext),
            R1 ? new a$.default(this.logger, new j1.default(this.logger, "FinalizeConnection", [
              new S$.default(this.meetingSessionContext),
              new Y1.default(this.meetingSessionContext)
            ]), this.meetingSessionContext.meetingSessionConfiguration.attendeePresenceTimeoutMs) : (
              /* istanbul ignore next */
              new Y1.default(this.meetingSessionContext)
            )
          ])
        ]), this.configuration.connectionTimeoutMs)
      ]);
    }
    actionConnect(R1) {
      return rv(this, void 0, void 0, function* () {
        this.initSignalingClient(), this.uninstallPreStartObserver(), this.meetingSessionContext.mediaStreamBroker = this._mediaStreamBroker, this.meetingSessionContext.realtimeController = this._realtimeController, this.meetingSessionContext.audioMixController = this._audioMixController, this.meetingSessionContext.audioVideoController = this;
        const Zv = !!this.configuration.urls.audioHostURL;
        if (Zv ? this.enableSimulcast ? (this.logger.info("Using transceiver controller with simulcast support"), this.meetingSessionContext.transceiverController = new x$.default(this.logger, this.meetingSessionContext.browserBehavior)) : (this.logger.info("Using default transceiver controller"), this.meetingSessionContext.transceiverController = new d$.default(this.logger, this.meetingSessionContext.browserBehavior)) : (this.logger.info("Using video only transceiver controller"), this.meetingSessionContext.transceiverController = new g$.default(this.logger, this.meetingSessionContext.browserBehavior)), this.meetingSessionContext.volumeIndicatorAdapter = new c1.default(this.logger, this._realtimeController, PD.MIN_VOLUME_DECIBELS, PD.MAX_VOLUME_DECIBELS, this.configuration.credentials.attendeeId), this.meetingSessionContext.videoTileController = this._videoTileController, this.meetingSessionContext.videoDownlinkBandwidthPolicy = this.configuration.videoDownlinkBandwidthPolicy, this.meetingSessionContext.videoUplinkBandwidthPolicy = this.configuration.videoUplinkBandwidthPolicy, this.meetingSessionContext.enableSimulcast = this.enableSimulcast, this.enableSimulcast) {
          let t$ = this.meetingSessionContext.videoUplinkBandwidthPolicy;
          t$ || (t$ = new Wv.default(this.configuration.credentials.attendeeId, this.meetingSessionContext.logger), this.meetingSessionContext.videoUplinkBandwidthPolicy = t$), t$.addObserver(this), this.meetingSessionContext.videoDownlinkBandwidthPolicy || (this.meetingSessionContext.videoDownlinkBandwidthPolicy = new O1.default(this.meetingSessionContext.logger)), this.meetingSessionContext.videoStreamIndex = new Jv.default(this.logger);
        } else
          this.meetingSessionContext.enableSimulcast = !1, this.meetingSessionContext.videoStreamIndex = new Hv.default(this.logger), this.meetingSessionContext.videoUplinkBandwidthPolicy || (this.meetingSessionContext.videoUplinkBandwidthPolicy = new Kv.default(this.configuration.credentials.attendeeId, !this.meetingSessionContext.browserBehavior.disableResolutionScaleDown(), this.meetingSessionContext.logger, this.meetingSessionContext.browserBehavior)), this.meetingSessionContext.videoDownlinkBandwidthPolicy || (this.meetingSessionContext.videoDownlinkBandwidthPolicy = new E$.default(this.configuration.credentials.attendeeId)), this.meetingSessionContext.videoUplinkBandwidthPolicy.setTransceiverController && this.meetingSessionContext.videoUplinkBandwidthPolicy.updateTransceiverController && this.meetingSessionContext.browserBehavior.requiresUnifiedPlan() && (this.useUpdateTransceiverControllerForUplink = !0, this.meetingSessionContext.videoUplinkBandwidthPolicy.setTransceiverController(this.meetingSessionContext.transceiverController)), this.meetingSessionContext.audioProfile = this._audioProfile;
        this.meetingSessionContext.videoUplinkBandwidthPolicy && this.maxUplinkBandwidthKbps && this.meetingSessionContext.videoUplinkBandwidthPolicy.setIdealMaxBandwidthKbps(this.maxUplinkBandwidthKbps), this.meetingSessionContext.videoDownlinkBandwidthPolicy.bindToTileController && this.meetingSessionContext.videoDownlinkBandwidthPolicy.bindToTileController(this._videoTileController), this.meetingSessionContext.lastKnownVideoAvailability = new dv.default(), this.meetingSessionContext.videoCaptureAndEncodeParameter = new O$.default(0, 0, 0, 0, !1), this.meetingSessionContext.videosToReceive = new Z1.default(), this.meetingSessionContext.videosPaused = new Z1.default(), this.meetingSessionContext.statsCollector = new Lv.default(this, this.logger, this.meetingSessionContext.browserBehavior), this.meetingSessionContext.connectionMonitor = new sv.default(this, this._realtimeController, this._videoTileController, this.connectionHealthData, new hv.default(this.meetingSessionContext.signalingClient, PD.PING_PONG_INTERVAL_MS, this.logger), this.meetingSessionContext.statsCollector), this.meetingSessionContext.reconnectController = this._reconnectController, this.meetingSessionContext.videoDeviceInformation = {}, R1 || (this.totalRetryCount = 0, this._reconnectController.reset(), this.startAudioVideoTimestamp = Date.now(), this.forEachObserver((t$) => {
          _$.Maybe.of(t$.audioVideoDidStartConnecting).map((_b) => _b.bind(t$)(!1));
        }), this.eventController && this.eventController.publishEvent("meetingStartRequested")), this.meetingSessionContext.startAudioVideoTimestamp = this.startAudioVideoTimestamp, this._reconnectController.hasStartedConnectionAttempt() ? this._reconnectController.startedConnectionAttempt(!1) : this._reconnectController.startedConnectionAttempt(!0);
        const C1 = Zv && this.meetingSessionContext.meetingSessionConfiguration.attendeePresenceTimeoutMs > 0;
        this.logger.info("Needs to wait for attendee presence? " + C1);
        let q1;
        this.usePromises ? q1 = this.connectWithPromises(C1) : q1 = this.connectWithTasks(C1);
        try {
          yield q1.run(), this.connectionHealthData.setConnectionStartTime(), this.sessionStateController.perform(_v.default.FinishConnecting, () => {
            this.eventController && (this.meetingSessionContext.meetingStartDurationMs = Date.now() - this.startAudioVideoTimestamp, this.eventController.publishEvent("meetingStartSucceeded", {
              maxVideoTileCount: this.meetingSessionContext.maxVideoTileCount,
              poorConnectionCount: this.meetingSessionContext.poorConnectionCount,
              retryCount: this.totalRetryCount,
              signalingOpenDurationMs: this.meetingSessionContext.signalingOpenDurationMs,
              iceGatheringDurationMs: this.meetingSessionContext.iceGatheringDurationMs,
              meetingStartDurationMs: this.meetingSessionContext.meetingStartDurationMs
            })), this.meetingSessionContext.startTimeMs = Date.now(), this.actionFinishConnecting();
          });
        } catch (t$) {
          this.signalingTask = void 0;
          const _b = new uv.default(this.getMeetingStatusCode(t$) || cv.default.TaskFailed);
          if (this.logger.info(`Start failed: ${_b} due to error ${t$}.`), this.sessionStateController.state() === Ev.default.NotConnected) {
            this.logger.info("Start failed and not connected. Not cleaning up.");
            return;
          }
          this.sessionStateController.perform(_v.default.Fail, () => rv(this, void 0, void 0, function* () {
            yield this.actionDisconnect(_b, !0, t$), this.handleMeetingSessionStatus(_b, t$) || this.notifyStop(_b, t$);
          }));
        }
      });
    }
    createOrReuseSignalingTask() {
      return this.signalingTask || (this.initSignalingClient(), this.signalingTask = new a$.default(this.logger, new K1.default(this.meetingSessionContext), this.configuration.connectionTimeoutMs).once()), this.signalingTask;
    }
    actionFinishConnecting() {
      this.signalingTask = void 0, this.meetingSessionContext.videoDuplexMode = Ov.SdkStreamServiceType.RX, this.meetingSessionContext.enableSimulcast || (this.useUpdateTransceiverControllerForUplink ? this.meetingSessionContext.videoUplinkBandwidthPolicy.updateTransceiverController() : this.enforceBandwidthLimitationForSender(this.meetingSessionContext.videoCaptureAndEncodeParameter.encodeBitrates()[0])), this.forEachObserver((R1) => {
        _$.Maybe.of(R1.audioVideoDidStart).map((Zv) => Zv.bind(R1)());
      }), this._reconnectController.reset(), this.receiveIndexTask.resumeIngestion(), this.monitorTask.resumeResubscribeCheck();
    }
    /* @internal */
    stopReturningPromise() {
      var R1;
      return this.sessionStateController.state() === Ev.default.NotConnected ? ((R1 = this.meetingSessionContext.signalingClient) === null || R1 === void 0 || R1.closeConnection(), new U1.default(this.meetingSessionContext).run()) : new Promise((Zv, C1) => {
        this.sessionStateController.perform(_v.default.Disconnect, () => {
          this._reconnectController.disableReconnect(), this.logger.info("attendee left meeting, session will not be reconnected"), this.actionDisconnect(new uv.default(cv.default.Left), !1, null).then(Zv).catch(C1);
        });
      });
    }
    stop() {
      this.stopReturningPromise();
    }
    actionDisconnect(R1, Zv, C1) {
      return rv(this, void 0, void 0, function* () {
        try {
          yield new k1.default(this.logger, this.wrapTaskName("AudioVideoStop"), [
            new a$.default(this.logger, new Bv.default(this.meetingSessionContext), this.configuration.connectionTimeoutMs)
          ]).run();
        } catch {
          this.logger.info("fail to stop");
        }
        try {
          const q1 = [
            new a$.default(this.logger, new Vv.default(this.meetingSessionContext), this.configuration.connectionTimeoutMs)
          ];
          Zv || q1.push(new U1.default(this.meetingSessionContext)), yield new k1.default(this.logger, this.wrapTaskName("AudioVideoClean"), q1).run();
        } catch {
          this.logger.info("fail to clean");
        }
        this.sessionStateController.perform(_v.default.FinishDisconnecting, () => {
          Zv || this.notifyStop(R1, C1);
        });
      });
    }
    update(R1 = { needsRenegotiation: !0 }) {
      let Zv = R1.needsRenegotiation;
      if (Zv || (Zv = this.meetingSessionContext.peer === void 0), Zv || (Zv = !this.updateRemoteVideosFromLastVideosToReceive()), Zv || (Zv = !this.updateLocalVideoFromPolicy()), this.meetingSessionContext.lastVideosToReceive = this.meetingSessionContext.videosToReceive, !Zv)
        return this.logger.info("Update request does not require resubscribe"), this.actionFinishUpdating(), !0;
      this.logger.info("Update request requires resubscribe");
      const C1 = this.sessionStateController.perform(_v.default.Update, () => {
        this.actionUpdateWithRenegotiation(!0);
      });
      return C1 === wv.default.Transitioned || C1 === wv.default.DeferredTransition;
    }
    // This function will try to use the diff between `this.meetingSessionContext.lastVideosToReceive`
    // and `this.meetingSessionContext.videosToReceive` to determine if the changes can be accomplished
    // through `SignalingClient.remoteVideoUpdate` rather then the full subscribe.
    //
    // It requires the caller to manage `this.meetingSessionContext.lastVideosToReceive`
    // and `this.meetingSessionContext.videosToReceive` so that `this.meetingSessionContext.lastVideosToReceive`
    // contains the stream IDs from either last time a subscribe was set, or last time this function was set.
    //
    // It will return true if succesful, if false the caller must fall back to a full renegotiation
    updateRemoteVideosFromLastVideosToReceive() {
      var R1, Zv;
      const C1 = this.meetingSessionContext;
      if (!((R1 = C1.videosToReceive) === null || R1 === void 0) && R1.empty() || !((Zv = C1.lastVideosToReceive) === null || Zv === void 0) && Zv.empty() || !C1.transceiverController || !C1.transceiverController.getMidForStreamId || !C1.transceiverController.setStreamIdForMid || !C1.videosToReceive.forEach || !C1.signalingClient.remoteVideoUpdate || !C1.videoStreamIndex.overrideStreamIdMappings)
        return !1;
      let q1 = [];
      const t$ = /* @__PURE__ */ new Map();
      let _b = [];
      if (C1.lastVideosToReceive === null)
        q1 = C1.videosToReceive.array();
      else {
        const l$ = C1.videoStreamIndex;
        C1.videosToReceive.forEach((p$) => {
          if (C1.lastVideosToReceive.contain(p$))
            return;
          let h$ = !1;
          C1.lastVideosToReceive.forEach((y$) => {
            h$ || l$.StreamIdsInSameGroup(y$, p$) && (t$.set(y$, p$), h$ = !0);
          }), h$ || q1.push(p$);
        }), _b = C1.lastVideosToReceive.array().filter((p$) => {
          const h$ = C1.videosToReceive.contain(p$), y$ = t$.has(p$);
          return !h$ && !y$;
        });
      }
      this.logger.info(`Request to update remote videos with added: ${q1}, updated: ${[
        ...t$.entries()
      ]}, removed: ${_b}`);
      const c$ = [];
      for (const [l$, p$] of t$.entries()) {
        const h$ = new Av.default();
        if (h$.streamId = p$, h$.attendeeId = C1.videoStreamIndex.attendeeIdForStreamId(p$), h$.mid = C1.transceiverController.getMidForStreamId(l$), h$.mid === void 0)
          return this.logger.info(`No MID found for stream ID ${l$}, cannot update stream without renegotiation`), !1;
        if (c$.push(h$), C1.transceiverController.setStreamIdForMid(h$.mid, p$), C1.videoStreamIndex.overrideStreamIdMappings(l$, p$), C1.videoTileController.haveVideoTileForAttendeeId(h$.attendeeId)) {
          const y$ = C1.videoTileController.getVideoTileForAttendeeId(h$.attendeeId);
          if (!y$.setStreamId)
            return !1;
          y$.setStreamId(p$);
        }
      }
      return c$.length !== 0 && C1.signalingClient.remoteVideoUpdate(c$, []), !(q1.length !== 0 || _b.length !== 0);
    }
    updateLocalVideoFromPolicy() {
      if (this.meetingSessionContext.enableSimulcast) {
        const R1 = this.meetingSessionContext.videoUplinkBandwidthPolicy.chooseEncodingParameters();
        if (this.mayNeedRenegotiationForSimulcastLayerChange && !this.negotiatedBitrateLayersAllocationRtpHeaderExtension())
          return this.logger.info("Needs regenotiation for local video simulcast layer change"), this.mayNeedRenegotiationForSimulcastLayerChange = !1, !1;
        this.meetingSessionContext.transceiverController.setEncodingParameters(R1);
      } else
        this.meetingSessionContext.videoCaptureAndEncodeParameter = this.meetingSessionContext.videoUplinkBandwidthPolicy.chooseCaptureAndEncodeParameters();
      return this.logger.info("Updated local video from policy without renegotiation"), !0;
    }
    negotiatedBitrateLayersAllocationRtpHeaderExtension() {
      if (!this.meetingSessionContext.transceiverController.localVideoTransceiver())
        return !1;
      const R1 = this.meetingSessionContext.transceiverController.localVideoTransceiver().sender.getParameters();
      return !R1 || !R1.headerExtensions ? !1 : R1.headerExtensions.some((Zv) => Zv.uri === "http://www.webrtc.org/experiments/rtp-hdrext/video-layers-allocation00");
    }
    restartLocalVideo(R1) {
      const Zv = () => rv(this, void 0, void 0, function* () {
        this._videoTileController.hasStartedLocalVideoTile() && (this.logger.info("stopping local video tile prior to local video restart"), this._videoTileController.stopLocalVideoTile(), this.logger.info("preparing local video restart update"), yield this.actionUpdateWithRenegotiation(!1), this.logger.info("starting local video tile for local video restart"), this._videoTileController.startLocalVideoTile()), this.logger.info("finalizing local video restart update"), yield this.actionUpdateWithRenegotiation(!0), R1();
      }), C1 = this.sessionStateController.perform(_v.default.Update, () => {
        Zv();
      });
      return C1 === wv.default.Transitioned || C1 === wv.default.DeferredTransition;
    }
    replaceLocalVideo() {
      return rv(this, void 0, void 0, function* () {
        let R1 = null;
        try {
          R1 = yield this.mediaStreamBroker.acquireVideoInputStream();
        } catch (q1) {
          throw new Error(`could not acquire video stream from mediaStreamBroker due to ${q1.message}`);
        }
        if (!R1 || R1.getVideoTracks().length < 1)
          throw new Error("could not acquire video track");
        const Zv = R1.getVideoTracks()[0];
        if (!this.meetingSessionContext || !this.meetingSessionContext.peer)
          throw new Error("no active meeting and peer connection");
        if (this.meetingSessionContext.browserBehavior.requiresUnifiedPlan())
          yield this.meetingSessionContext.transceiverController.setVideoInput(Zv);
        else
          throw new Error("cannot replace track on Plan B");
        const C1 = this.meetingSessionContext.videoTileController.getLocalVideoTile();
        if (C1) {
          const q1 = C1.state(), t$ = R1.getVideoTracks()[0].getSettings();
          C1.bindVideoStream(q1.boundAttendeeId, !0, R1, t$.width, t$.height, q1.streamId, q1.boundExternalUserId);
        }
        this.meetingSessionContext.activeVideoInput = R1;
      });
    }
    restartLocalAudio(R1) {
      return rv(this, void 0, void 0, function* () {
        let Zv = null;
        try {
          Zv = yield this.mediaStreamBroker.acquireAudioInputStream();
        } catch {
          this.logger.info("could not acquire audio stream from mediaStreamBroker");
        }
        if (!Zv || Zv.getAudioTracks().length < 1)
          throw new Error("could not acquire audio track");
        this.connectionHealthData.reset(), this.connectionHealthData.setConnectionStartTime();
        const C1 = Zv.getAudioTracks()[0];
        if (!this.meetingSessionContext || !this.meetingSessionContext.peer)
          throw new Error("no active meeting and peer connection");
        let q1 = !1;
        return this.meetingSessionContext.browserBehavior.requiresUnifiedPlan() ? q1 = yield this.meetingSessionContext.transceiverController.replaceAudioTrack(C1) : q1 = yield d$.default.replaceAudioTrackForSender(this.meetingSessionContext.localAudioSender, C1), this._realtimeController.realtimeSetLocalAudioInput(Zv), this.meetingSessionContext.activeAudioInput = Zv, R1(), q1 ? Promise.resolve() : Promise.reject();
      });
    }
    actionUpdateWithRenegotiation(R1) {
      return rv(this, void 0, void 0, function* () {
        this.monitorTask.pauseResubscribeCheck(), this.receiveIndexTask.pauseIngestion();
        try {
          yield new k1.default(this.logger, this.wrapTaskName("AudioVideoUpdate"), [
            new F1.default(this.meetingSessionContext),
            new a$.default(this.logger, new k1.default(this.logger, "UpdateSession", [
              new jv.default(this.meetingSessionContext),
              new Yv.default(this.meetingSessionContext),
              new Q1.default(this.meetingSessionContext),
              new Xv.default(this.meetingSessionContext),
              new r$.default(this.meetingSessionContext),
              new Y1.default(this.meetingSessionContext)
            ]), this.configuration.connectionTimeoutMs)
          ]).run(), R1 && this.sessionStateController.perform(_v.default.FinishUpdating, () => {
            this.actionFinishUpdating();
          });
        } catch (Zv) {
          this.sessionStateController.perform(_v.default.FinishUpdating, () => {
            const C1 = new uv.default(this.getMeetingStatusCode(Zv) || cv.default.TaskFailed);
            C1.statusCode() !== cv.default.IncompatibleSDP && this.logger.info("failed to update audio-video session"), this.handleMeetingSessionStatus(C1, Zv);
          });
        }
      });
    }
    notifyStop(R1, Zv) {
      var C1;
      if (this.forEachObserver((q1) => {
        _$.Maybe.of(q1.audioVideoDidStop).map((t$) => t$.bind(q1)(R1));
      }), this.promotedToPrimaryMeeting && Zv && this.forEachObserver((q1) => {
        this.promotedToPrimaryMeeting = !1, _$.Maybe.of(q1.audioVideoWasDemotedFromPrimaryMeeting).map((t$) => t$.bind(q1)(new uv.default(cv.default.SignalingInternalServerError)));
      }), this.eventController) {
        const { signalingOpenDurationMs: q1, poorConnectionCount: t$, startTimeMs: _b, iceGatheringDurationMs: c$, attendeePresenceDurationMs: l$, meetingStartDurationMs: p$ } = this.meetingSessionContext, h$ = {
          maxVideoTileCount: this.meetingSessionContext.maxVideoTileCount,
          meetingDurationMs: _b === null ? 0 : Math.round(Date.now() - _b),
          meetingStatus: cv.default[R1.statusCode()],
          signalingOpenDurationMs: q1,
          iceGatheringDurationMs: c$,
          attendeePresenceDurationMs: l$,
          poorConnectionCount: t$,
          meetingStartDurationMs: p$,
          retryCount: this.totalRetryCount
        }, y$ = Zv && Zv.message || ((C1 = R1.toString) === null || C1 === void 0 ? void 0 : C1.call(R1)) || "";
        h$.meetingDurationMs === 0 ? (h$.meetingErrorMessage = y$, delete h$.meetingDurationMs, delete h$.attendeePresenceDurationMs, delete h$.meetingStartDurationMs, this.eventController.publishEvent("meetingStartFailed", h$)) : R1.isFailure() || R1.isAudioConnectionFailure() ? (h$.meetingErrorMessage = y$, this.eventController.publishEvent("meetingFailed", h$)) : this.eventController.publishEvent("meetingEnded", h$);
      }
    }
    actionFinishUpdating() {
      if (!this.meetingSessionContext.enableSimulcast)
        if (this.useUpdateTransceiverControllerForUplink)
          this.meetingSessionContext.videoUplinkBandwidthPolicy.updateTransceiverController();
        else {
          const R1 = this.meetingSessionContext.videoCaptureAndEncodeParameter.encodeBitrates()[0];
          this.enforceBandwidthLimitationForSender(R1);
        }
      this.monitorTask.resumeResubscribeCheck(), this.receiveIndexTask.resumeIngestion(), this.logger.info("updated audio-video session");
    }
    reconnect(R1, Zv) {
      const C1 = this._reconnectController.retryWithBackoff(() => rv(this, void 0, void 0, function* () {
        this.sessionStateController.state() === Ev.default.NotConnected ? this.sessionStateController.perform(_v.default.Connect, () => {
          this.actionConnect(!0);
        }) : this.sessionStateController.perform(_v.default.Reconnect, () => {
          this.actionReconnect(R1);
        }), this.totalRetryCount += 1;
      }), () => {
        this.logger.info("canceled retry");
      });
      return C1 || this.sessionStateController.perform(_v.default.Fail, () => {
        this.actionDisconnect(R1, !1, Zv);
      }), C1;
    }
    actionReconnect(R1) {
      return rv(this, void 0, void 0, function* () {
        this._reconnectController.hasStartedConnectionAttempt() || (this._reconnectController.startedConnectionAttempt(!1), this.forEachObserver((Zv) => {
          _$.Maybe.of(Zv.audioVideoDidStartConnecting).map((C1) => C1.bind(Zv)(!0));
        })), this.meetingSessionContext.volumeIndicatorAdapter.onReconnect(), this.connectionHealthData.reset();
        try {
          yield new k1.default(this.logger, this.wrapTaskName("AudioVideoReconnect"), [
            new a$.default(this.logger, new k1.default(this.logger, "Media", [
              new Dv.default(this.meetingSessionContext),
              new k1.default(this.logger, "Signaling", [
                new K1.default(this.meetingSessionContext),
                new L1.default(this.meetingSessionContext),
                new I1.default(this.meetingSessionContext)
              ]),
              new Gv.default(this.meetingSessionContext)
            ]), this.configuration.connectionTimeoutMs),
            // TODO: Do we need ReceiveVideoInputTask in the reconnect operation?
            new F1.default(this.meetingSessionContext),
            new a$.default(this.logger, new k1.default(this.logger, "UpdateSession", [
              new jv.default(this.meetingSessionContext),
              new Yv.default(this.meetingSessionContext),
              new Q1.default(this.meetingSessionContext),
              new Xv.default(this.meetingSessionContext),
              new r$.default(this.meetingSessionContext),
              new Y1.default(this.meetingSessionContext)
            ]), this.configuration.connectionTimeoutMs)
          ]).run(), this.sessionStateController.perform(_v.default.FinishConnecting, () => {
            if (this.eventController) {
              const { signalingOpenDurationMs: Zv, poorConnectionCount: C1, startTimeMs: q1, iceGatheringDurationMs: t$, attendeePresenceDurationMs: _b, meetingStartDurationMs: c$ } = this.meetingSessionContext, l$ = {
                maxVideoTileCount: this.meetingSessionContext.maxVideoTileCount,
                meetingDurationMs: Math.round(Date.now() - q1),
                meetingStatus: cv.default[R1.statusCode()],
                signalingOpenDurationMs: Zv,
                iceGatheringDurationMs: t$,
                attendeePresenceDurationMs: _b,
                poorConnectionCount: C1,
                meetingStartDurationMs: c$,
                retryCount: this.totalRetryCount
              };
              this.eventController.publishEvent("meetingReconnected", l$);
            }
            this.actionFinishConnecting();
          });
        } catch (Zv) {
          this.sessionStateController.perform(_v.default.FinishConnecting, () => {
            this.logger.info("failed to reconnect audio-video session");
            const C1 = new uv.default(this.getMeetingStatusCode(Zv) || cv.default.TaskFailed);
            this.handleMeetingSessionStatus(C1, Zv);
          });
        }
        this.connectionHealthData.setConnectionStartTime();
      });
    }
    wrapTaskName(R1) {
      return `${R1}/${this.configuration.meetingId}/${this.configuration.credentials.attendeeId}`;
    }
    // Extract the meeting status from `Error.message`, relying on specific phrasing
    // 'the meeting status code ${CODE}`.
    //
    // e.g. reject(new Error(
    //        `canceling ${this.name()} due to the meeting status code: ${MeetingSessionStatusCode.MeetingEnded}`));
    getMeetingStatusCode(R1) {
      const Zv = /the meeting status code: (\d+)/.exec(R1 && R1.message);
      return Zv && Zv.length > 1 ? Number.parseInt(Zv[1], 10) : null;
    }
    enforceBandwidthLimitationForSender(R1) {
      return rv(this, void 0, void 0, function* () {
        this.meetingSessionContext.browserBehavior.requiresUnifiedPlan() ? yield this.meetingSessionContext.transceiverController.setVideoSendingBitrateKbps(R1) : yield d$.default.setVideoSendingBitrateKbpsForSender(this.meetingSessionContext.localVideoSender, R1, this.meetingSessionContext.logger);
      });
    }
    handleMeetingSessionStatus(R1, Zv) {
      if (this.logger.info(`handling status: ${cv.default[R1.statusCode()]}`), R1.isTerminal() || this.meetingSessionContext.statsCollector && this.meetingSessionContext.statsCollector.logMeetingSessionStatus(R1), R1.statusCode() === cv.default.IncompatibleSDP)
        return this.restartLocalVideo(() => {
          this.logger.info("handled incompatible SDP by attempting to restart video");
        }), !0;
      if (R1.statusCode() === cv.default.VideoCallSwitchToViewOnly)
        return this._videoTileController.removeLocalVideoTile(), this.forEachObserver((C1) => {
          _$.Maybe.of(C1.videoSendDidBecomeUnavailable).map((q1) => q1.bind(C1)());
        }), !1;
      if (R1.statusCode() === cv.default.AudioVideoWasRemovedFromPrimaryMeeting)
        return this.forEachObserver((C1) => {
          _$.Maybe.of(C1.audioVideoWasDemotedFromPrimaryMeeting).map((q1) => q1.bind(C1)(R1));
        }), !1;
      if (R1.isTerminal() && (this.logger.error("session will not be reconnected"), this.meetingSessionContext.reconnectController && this.meetingSessionContext.reconnectController.disableReconnect()), (R1.isFailure() || R1.isTerminal()) && this.meetingSessionContext.reconnectController) {
        const C1 = this.reconnect(R1, Zv);
        return C1 ? this.logger.warn(`will retry due to status code ${cv.default[R1.statusCode()]}${Zv ? ` and error: ${Zv.message}` : ""}`) : this.logger.error(`failed with status code ${cv.default[R1.statusCode()]}${Zv ? ` and error: ${Zv.message}` : ""}`), C1;
      }
      return !1;
    }
    setVideoMaxBandwidthKbps(R1) {
      this.meetingSessionContext && this.meetingSessionContext.videoUplinkBandwidthPolicy && (this.logger.info(`video send has ideal max bandwidth ${R1} kbps`), this.meetingSessionContext.videoUplinkBandwidthPolicy.setIdealMaxBandwidthKbps(R1)), this.maxUplinkBandwidthKbps = R1;
    }
    handleHasBandwidthPriority(R1) {
      return rv(this, void 0, void 0, function* () {
        if (this.meetingSessionContext && this.meetingSessionContext.videoUplinkBandwidthPolicy && !this.meetingSessionContext.enableSimulcast) {
          if (this.useUpdateTransceiverControllerForUplink) {
            this.meetingSessionContext.videoUplinkBandwidthPolicy.setHasBandwidthPriority(R1), yield this.meetingSessionContext.videoUplinkBandwidthPolicy.updateTransceiverController();
            return;
          }
          const Zv = this.meetingSessionContext.videoUplinkBandwidthPolicy.maxBandwidthKbps();
          this.meetingSessionContext.videoUplinkBandwidthPolicy.setHasBandwidthPriority(R1);
          const C1 = this.meetingSessionContext.videoUplinkBandwidthPolicy.maxBandwidthKbps();
          Zv !== C1 && (this.logger.info(`video send bandwidth priority ${R1} max has changed from ${Zv} kbps to ${C1} kbps`), yield this.enforceBandwidthLimitationForSender(C1));
        }
      });
    }
    pauseReceivingStream(R1) {
      this.meetingSessionContext && this.meetingSessionContext.signalingClient && this.meetingSessionContext.signalingClient.pause([R1]);
    }
    resumeReceivingStream(R1) {
      this.meetingSessionContext && this.meetingSessionContext.signalingClient && this.meetingSessionContext.signalingClient.resume([R1]);
    }
    getRemoteVideoSources() {
      const { videoStreamIndex: R1 } = this.meetingSessionContext;
      if (!R1)
        return this.logger.info("meeting has not started"), [];
      const Zv = this.configuration.credentials.attendeeId;
      return R1.allVideoSendingSourcesExcludingSelf(Zv);
    }
    encodingSimulcastLayersDidChange(R1) {
      this.mayNeedRenegotiationForSimulcastLayerChange = !0, this.forEachObserver((Zv) => {
        _$.Maybe.of(Zv.encodingSimulcastLayersDidChange).map((C1) => C1.bind(Zv)(R1));
      });
    }
    promoteToPrimaryMeeting(R1) {
      return this.actionPromoteToPrimaryMeeting(R1);
    }
    actionPromoteToPrimaryMeeting(R1) {
      return rv(this, void 0, void 0, function* () {
        let Zv = new uv.default(cv.default.SignalingRequestFailed);
        return yield new k1.default(this.logger, this.wrapTaskName("PromoteToPrimaryMeeting"), [
          new a$.default(this.logger, new P1.default(this.meetingSessionContext, R1, (C1) => {
            Zv = C1;
          }), this.configuration.connectionTimeoutMs)
        ]).run(), this.promotedToPrimaryMeeting = Zv.statusCode() === cv.default.OK, Zv;
      });
    }
    demoteFromPrimaryMeeting() {
      this.meetingSessionContext.signalingClient.demoteFromPrimaryMeeting(), this.forEachObserver((R1) => {
        _$.Maybe.of(R1.audioVideoWasDemotedFromPrimaryMeeting).map((Zv) => Zv.bind(R1)(new uv.default(cv.default.OK)));
      });
    }
  };
  return DefaultAudioVideoController.default = N1, N1.MIN_VOLUME_DECIBELS = -42, N1.MAX_VOLUME_DECIBELS = -14, N1.PING_PONG_INTERVAL_MS = 1e4, DefaultAudioVideoController;
}
var DefaultAudioVideoFacade$1 = {}, __awaiter$h = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultAudioVideoFacade$1, "__esModule", { value: !0 });
const VideoTransformDevice_1 = VideoTransformDevice;
class DefaultAudioVideoFacade {
  constructor(tv, ev, iv, ov, av, sv) {
    this.audioVideoController = tv, this.videoTileController = ev, this.realtimeController = iv, this.audioMixController = ov, this.deviceController = av, this.contentShareController = sv;
  }
  addObserver(tv) {
    this.audioVideoController.addObserver(tv), this.trace("addObserver");
  }
  removeObserver(tv) {
    this.audioVideoController.removeObserver(tv), this.trace("removeObserver");
  }
  setAudioProfile(tv) {
    this.trace("setAudioProfile", tv), this.audioVideoController.setAudioProfile(tv);
  }
  start(tv) {
    this.audioVideoController.start(tv), this.trace("start");
  }
  stop() {
    this.audioVideoController.stop(), this.trace("stop");
  }
  getRTCPeerConnectionStats(tv) {
    return this.trace("getRTCPeerConnectionStats", tv ? tv.id : null), this.audioVideoController.getRTCPeerConnectionStats(tv);
  }
  bindAudioElement(tv) {
    const ev = this.audioMixController.bindAudioElement(tv);
    return this.trace("bindAudioElement", tv.id, ev), ev;
  }
  unbindAudioElement() {
    this.audioMixController.unbindAudioElement(), this.trace("unbindAudioElement");
  }
  getCurrentMeetingAudioStream() {
    return this.trace("getCurrentConferenceStream"), this.audioMixController.getCurrentMeetingAudioStream();
  }
  addAudioMixObserver(tv) {
    this.trace("addAudioMixObserver"), this.audioMixController.addAudioMixObserver(tv);
  }
  removeAudioMixObserver(tv) {
    this.trace("removeAudioMixObserver"), this.audioMixController.removeAudioMixObserver(tv);
  }
  bindVideoElement(tv, ev) {
    this.videoTileController.bindVideoElement(tv, ev), this.trace("bindVideoElement", { tileId: tv, videoElementId: ev.id });
  }
  unbindVideoElement(tv) {
    this.videoTileController.unbindVideoElement(tv), this.trace("unbindVideoElement", tv);
  }
  startLocalVideoTile() {
    const tv = this.videoTileController.startLocalVideoTile();
    return this.trace("startLocalVideoTile", null, tv), tv;
  }
  stopLocalVideoTile() {
    this.videoTileController.stopLocalVideoTile(), this.trace("stopLocalVideoTile");
  }
  hasStartedLocalVideoTile() {
    const tv = this.videoTileController.hasStartedLocalVideoTile();
    return this.trace("hasStartedLocalVideoTile", null, tv), tv;
  }
  removeLocalVideoTile() {
    this.videoTileController.removeLocalVideoTile(), this.trace("removeLocalVideoTile");
  }
  getLocalVideoTile() {
    const tv = this.videoTileController.getLocalVideoTile();
    return this.trace("getLocalVideoTile"), tv;
  }
  pauseVideoTile(tv) {
    this.videoTileController.pauseVideoTile(tv), this.trace("pauseVideoTile", tv);
  }
  unpauseVideoTile(tv) {
    this.videoTileController.unpauseVideoTile(tv), this.trace("unpauseVideoTile", tv);
  }
  getVideoTile(tv) {
    const ev = this.videoTileController.getVideoTile(tv);
    return this.trace("getVideoTile", tv), ev;
  }
  getAllRemoteVideoTiles() {
    const tv = this.videoTileController.getAllRemoteVideoTiles();
    return this.trace("getAllRemoteVideoTiles"), tv;
  }
  getAllVideoTiles() {
    const tv = this.videoTileController.getAllVideoTiles();
    return this.trace("getAllVideoTiles"), tv;
  }
  addVideoTile() {
    const tv = this.videoTileController.addVideoTile();
    return this.trace("addVideoTile", null, tv.state()), tv;
  }
  removeVideoTile(tv) {
    this.videoTileController.removeVideoTile(tv), this.trace("removeVideoTile", tv);
  }
  removeVideoTilesByAttendeeId(tv) {
    const ev = this.videoTileController.removeVideoTilesByAttendeeId(tv);
    return this.trace("removeVideoTilesByAttendeeId", tv, ev), ev;
  }
  removeAllVideoTiles() {
    this.videoTileController.removeAllVideoTiles(), this.trace("removeAllVideoTiles");
  }
  captureVideoTile(tv) {
    const ev = this.videoTileController.captureVideoTile(tv);
    return this.trace("captureVideoTile", tv), ev;
  }
  realtimeSubscribeToAttendeeIdPresence(tv) {
    this.realtimeController.realtimeSubscribeToAttendeeIdPresence(tv), this.trace("realtimeSubscribeToAttendeeIdPresence");
  }
  realtimeUnsubscribeToAttendeeIdPresence(tv) {
    this.realtimeController.realtimeUnsubscribeToAttendeeIdPresence(tv), this.trace("realtimeUnsubscribeToAttendeeIdPresence");
  }
  realtimeSetCanUnmuteLocalAudio(tv) {
    this.realtimeController.realtimeSetCanUnmuteLocalAudio(tv), this.trace("realtimeSetCanUnmuteLocalAudio", tv);
  }
  realtimeSubscribeToSetCanUnmuteLocalAudio(tv) {
    this.realtimeController.realtimeSubscribeToSetCanUnmuteLocalAudio(tv), this.trace("realtimeSubscribeToSetCanUnmuteLocalAudio");
  }
  realtimeUnsubscribeToSetCanUnmuteLocalAudio(tv) {
    this.realtimeController.realtimeUnsubscribeToSetCanUnmuteLocalAudio(tv);
  }
  realtimeCanUnmuteLocalAudio() {
    const tv = this.realtimeController.realtimeCanUnmuteLocalAudio();
    return this.trace("realtimeCanUnmuteLocalAudio", null, tv), tv;
  }
  realtimeMuteLocalAudio() {
    this.realtimeController.realtimeMuteLocalAudio(), this.trace("realtimeMuteLocalAudio");
  }
  realtimeUnmuteLocalAudio() {
    const tv = this.realtimeController.realtimeUnmuteLocalAudio();
    return this.trace("realtimeUnmuteLocalAudio"), tv;
  }
  realtimeSubscribeToMuteAndUnmuteLocalAudio(tv) {
    this.realtimeController.realtimeSubscribeToMuteAndUnmuteLocalAudio(tv), this.trace("realtimeSubscribeToMuteAndUnmuteLocalAudio");
  }
  realtimeUnsubscribeToMuteAndUnmuteLocalAudio(tv) {
    this.realtimeController.realtimeUnsubscribeToMuteAndUnmuteLocalAudio(tv);
  }
  realtimeIsLocalAudioMuted() {
    const tv = this.realtimeController.realtimeIsLocalAudioMuted();
    return this.trace("realtimeIsLocalAudioMuted"), tv;
  }
  realtimeSubscribeToVolumeIndicator(tv, ev) {
    this.realtimeController.realtimeSubscribeToVolumeIndicator(tv, ev), this.trace("realtimeSubscribeToVolumeIndicator", tv);
  }
  realtimeUnsubscribeFromVolumeIndicator(tv, ev) {
    this.realtimeController.realtimeUnsubscribeFromVolumeIndicator(tv, ev), this.trace("realtimeUnsubscribeFromVolumeIndicator", tv, ev);
  }
  realtimeSubscribeToLocalSignalStrengthChange(tv) {
    this.realtimeController.realtimeSubscribeToLocalSignalStrengthChange(tv), this.trace("realtimeSubscribeToLocalSignalStrengthChange");
  }
  realtimeUnsubscribeToLocalSignalStrengthChange(tv) {
    this.realtimeController.realtimeUnsubscribeToLocalSignalStrengthChange(tv), this.trace("realtimeUnsubscribeToLocalSignalStrengthChange");
  }
  realtimeSendDataMessage(tv, ev, iv) {
    this.realtimeController.realtimeSendDataMessage(tv, ev, iv), this.trace("realtimeSendDataMessage");
  }
  realtimeSubscribeToReceiveDataMessage(tv, ev) {
    this.realtimeController.realtimeSubscribeToReceiveDataMessage(tv, ev), this.trace("realtimeSubscribeToReceiveDataMessage");
  }
  realtimeUnsubscribeFromReceiveDataMessage(tv) {
    this.realtimeController.realtimeUnsubscribeFromReceiveDataMessage(tv), this.trace("realtimeUnsubscribeFromReceiveDataMessage");
  }
  realtimeSubscribeToFatalError(tv) {
    this.realtimeController.realtimeSubscribeToFatalError(tv);
  }
  realtimeUnsubscribeToFatalError(tv) {
    this.realtimeController.realtimeUnsubscribeToFatalError(tv);
  }
  subscribeToActiveSpeakerDetector(tv, ev, iv, ov) {
    this.audioVideoController.activeSpeakerDetector.subscribe(tv, ev, iv, ov), this.trace("subscribeToActiveSpeakerDetector");
  }
  unsubscribeFromActiveSpeakerDetector(tv) {
    this.audioVideoController.activeSpeakerDetector.unsubscribe(tv), this.trace("unsubscribeFromActiveSpeakerDetector");
  }
  listAudioInputDevices(tv = !1) {
    return __awaiter$h(this, void 0, void 0, function* () {
      const ev = yield this.deviceController.listAudioInputDevices(tv);
      return this.trace("listAudioInputDevices", tv, ev), ev;
    });
  }
  listVideoInputDevices(tv = !1) {
    return __awaiter$h(this, void 0, void 0, function* () {
      const ev = yield this.deviceController.listVideoInputDevices(tv);
      return this.trace("listVideoInputDevices", tv, ev), ev;
    });
  }
  listAudioOutputDevices(tv = !1) {
    return __awaiter$h(this, void 0, void 0, function* () {
      const ev = yield this.deviceController.listAudioOutputDevices(tv);
      return this.trace("listAudioOutputDevices", tv, ev), ev;
    });
  }
  chooseAudioInputDevice(tv) {
    return this.trace("chooseAudioInputDevice", tv), this.deviceController.chooseAudioInputDevice(tv);
  }
  chooseVideoInputDevice(tv) {
    return VideoTransformDevice_1.isVideoTransformDevice(tv) ? this.trace("chooseVideoInputDevice with transform device") : this.trace("chooseVideoInputDevice", tv), this.deviceController.chooseVideoInputDevice(tv);
  }
  chooseAudioOutputDevice(tv) {
    const ev = this.deviceController.chooseAudioOutputDevice(tv);
    return this.trace("chooseAudioOutputDevice", tv), ev;
  }
  addDeviceChangeObserver(tv) {
    this.deviceController.addDeviceChangeObserver(tv), this.trace("addDeviceChangeObserver");
  }
  removeDeviceChangeObserver(tv) {
    this.deviceController.removeDeviceChangeObserver(tv), this.trace("removeDeviceChangeObserver");
  }
  createAnalyserNodeForAudioInput() {
    const tv = this.deviceController.createAnalyserNodeForAudioInput();
    return this.trace("createAnalyserNodeForAudioInput"), tv;
  }
  startVideoPreviewForVideoInput(tv) {
    this.deviceController.startVideoPreviewForVideoInput(tv), this.trace("startVideoPreviewForVideoInput", tv.id);
  }
  stopVideoPreviewForVideoInput(tv) {
    this.deviceController.stopVideoPreviewForVideoInput(tv), this.trace("stopVideoPreviewForVideoInput", tv.id);
  }
  setDeviceLabelTrigger(tv) {
    this.deviceController.setDeviceLabelTrigger(tv), this.trace("setDeviceLabelTrigger");
  }
  mixIntoAudioInput(tv) {
    const ev = this.deviceController.mixIntoAudioInput(tv);
    return this.trace("mixIntoAudioInput", tv.id), ev;
  }
  chooseVideoInputQuality(tv, ev, iv, ov) {
    this.deviceController.chooseVideoInputQuality(tv, ev, iv, ov), this.trace("chooseVideoInputQuality", {
      width: tv,
      height: ev,
      frameRate: iv,
      maxBandwidthKbps: ov
    });
  }
  getVideoInputQualitySettings() {
    const tv = this.deviceController.getVideoInputQualitySettings();
    return this.trace("getVideoInputQualitySettings"), tv;
  }
  setContentAudioProfile(tv) {
    this.trace("setContentAudioProfile", tv), this.contentShareController.setContentAudioProfile(tv);
  }
  startContentShare(tv) {
    const ev = this.contentShareController.startContentShare(tv);
    return this.trace("startContentShare"), ev;
  }
  startContentShareFromScreenCapture(tv, ev) {
    const iv = this.contentShareController.startContentShareFromScreenCapture(tv, ev);
    return this.trace("startContentShareFromScreenCapture"), iv;
  }
  pauseContentShare() {
    this.contentShareController.pauseContentShare(), this.trace("pauseContentShare");
  }
  unpauseContentShare() {
    this.contentShareController.unpauseContentShare(), this.trace("unpauseContentShare");
  }
  stopContentShare() {
    this.contentShareController.stopContentShare(), this.trace("stopContentShare");
  }
  addContentShareObserver(tv) {
    this.contentShareController.addContentShareObserver(tv), this.trace("addContentShareObserver");
  }
  removeContentShareObserver(tv) {
    this.contentShareController.removeContentShareObserver(tv), this.trace("removeContentShareObserver");
  }
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  trace(tv, ev, iv) {
    const ov = this.audioVideoController.configuration.meetingId, av = this.audioVideoController.configuration.credentials.attendeeId;
    let sv = `API/DefaultAudioVideoFacade/${ov}/${av}/${tv}`;
    typeof ev < "u" && (sv += ` ${JSON.stringify(ev)}`), typeof iv < "u" && (sv += ` -> ${JSON.stringify(iv)}`), this.audioVideoController.logger.info(sv);
  }
  getRemoteVideoSources() {
    const tv = this.audioVideoController.getRemoteVideoSources();
    return this.trace("getRemoteVideoSources", null, tv), tv;
  }
  get transcriptionController() {
    return this.realtimeController.transcriptionController;
  }
  promoteToPrimaryMeeting(tv) {
    this.audioVideoController.removeObserver(this), this.audioVideoController.addObserver(this);
    const ev = this.audioVideoController.promoteToPrimaryMeeting(tv);
    return this.trace("promoteToPrimaryMeeting", null, ev), ev;
  }
  demoteFromPrimaryMeeting() {
    this.trace("demoteFromPrimaryMeeting"), this.audioVideoController.demoteFromPrimaryMeeting();
  }
  audioVideoWasDemotedFromPrimaryMeeting(tv) {
    this.contentShareController.stopContentShare(), this.audioVideoController.removeObserver(this);
  }
}
DefaultAudioVideoFacade$1.default = DefaultAudioVideoFacade;
var DefaultContentShareController$1 = {}, MeetingSessionConfiguration$1 = {}, Utils = {};
Object.defineProperty(Utils, "__esModule", { value: !0 });
Utils.toLowerCasePropertyNames = Utils.isIFramed = Utils.wait = void 0;
function wait(rv) {
  return new Promise((tv) => setTimeout(tv, rv));
}
Utils.wait = wait;
function isIFramed() {
  var rv;
  try {
    return ((rv = window.frameElement) === null || rv === void 0 ? void 0 : rv.nodeName) === "IFRAME" || parent !== top;
  } catch {
    return !0;
  }
}
Utils.isIFramed = isIFramed;
function toLowerCasePropertyNames(rv) {
  return rv === null ? null : typeof rv != "object" ? rv : Array.isArray(rv) ? rv.map(toLowerCasePropertyNames) : Object.keys(rv).reduce((tv, ev) => {
    const iv = rv[ev], ov = typeof iv == "object" ? toLowerCasePropertyNames(iv) : iv;
    return tv[ev.toLowerCase()] = ov, tv;
  }, {});
}
Utils.toLowerCasePropertyNames = toLowerCasePropertyNames;
var MeetingSessionCredentials$1 = {};
Object.defineProperty(MeetingSessionCredentials$1, "__esModule", { value: !0 });
class MeetingSessionCredentials {
  constructor() {
    this.attendeeId = null, this.externalUserId = null, this.joinToken = null;
  }
  /**
   * Overrides JSON serialization so that join token is redacted.
   */
  toJSON() {
    return {
      attendeeId: this.attendeeId,
      joinToken: this.joinToken === null ? null : "<redacted>"
    };
  }
}
MeetingSessionCredentials$1.default = MeetingSessionCredentials;
var MeetingSessionURLs$1 = {};
Object.defineProperty(MeetingSessionURLs$1, "__esModule", { value: !0 });
class MeetingSessionURLs {
  constructor() {
    this._audioHostURL = null, this._screenDataURL = null, this._screenSharingURL = null, this._screenViewingURL = null, this._signalingURL = null, this._turnControlURL = null, this._eventIngestionURL = null, this.urlRewriter = (tv) => tv;
  }
  /**
   * Gets or sets the audio host URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.
   */
  get audioHostURL() {
    return this.urlRewriter(this._audioHostURL);
  }
  set audioHostURL(tv) {
    this._audioHostURL = tv;
  }
  /**
   * Gets or sets the screen data URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.
   */
  get screenDataURL() {
    return this.urlRewriter(this._screenDataURL);
  }
  set screenDataURL(tv) {
    this._screenDataURL = tv;
  }
  /**
   * Gets or sets the screen sharing URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.
   */
  get screenSharingURL() {
    return this.urlRewriter(this._screenSharingURL);
  }
  set screenSharingURL(tv) {
    this._screenSharingURL = tv;
  }
  /**
   * Gets or sets the screen viewing URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.
   */
  get screenViewingURL() {
    return this.urlRewriter(this._screenViewingURL);
  }
  set screenViewingURL(tv) {
    this._screenViewingURL = tv;
  }
  /**
   * Gets or sets the signaling URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.
   */
  get signalingURL() {
    return this.urlRewriter(this._signalingURL);
  }
  set signalingURL(tv) {
    this._signalingURL = tv;
  }
  /**
   * Gets or sets the TURN control URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.
   */
  get turnControlURL() {
    return this.urlRewriter(this._turnControlURL);
  }
  set turnControlURL(tv) {
    this._turnControlURL = tv;
  }
  /**
   * Gets or sets the events ingestion URL with gets reflecting the result of the {@link MeetingSessionURLs.urlRewriter} function.
   */
  get eventIngestionURL() {
    return this.urlRewriter(this._eventIngestionURL);
  }
  set eventIngestionURL(tv) {
    this._eventIngestionURL = tv;
  }
}
MeetingSessionURLs$1.default = MeetingSessionURLs;
Object.defineProperty(MeetingSessionConfiguration$1, "__esModule", { value: !0 });
const ConnectionHealthPolicyConfiguration_1 = ConnectionHealthPolicyConfiguration$1, Utils_1$2 = Utils, MeetingSessionCredentials_1$1 = MeetingSessionCredentials$1, MeetingSessionURLs_1 = MeetingSessionURLs$1;
class MeetingSessionConfiguration {
  /**
   * Constructs a MeetingSessionConfiguration optionally with a chime:CreateMeeting and
   * chime:CreateAttendee response. You can pass in either a JSON object containing the
   * responses, or a JSON object containing the information in the Meeting and Attendee
   * root-level fields. Examples:
   *
   * ```
   * const configuration = new MeetingSessionConfiguration({
   *   "Meeting": {
   *      "MeetingId": "...",
   *      "MediaPlacement": {
   *        "AudioHostUrl": "...",
   *        "ScreenDataUrl": "...",
   *        "ScreenSharingUrl": "...",
   *        "ScreenViewingUrl": "...",
   *        "SignalingUrl": "...",
   *        "TurnControlUrl": "..."
   *      }
   *    }
   *   }
   * }, {
   *   "Attendee": {
   *     "ExternalUserId": "...",
   *     "AttendeeId": "...",
   *     "JoinToken": "..."
   *   }
   * });
   * ```
   *
   * ```
   * const configuration = new MeetingSessionConfiguration({
   *   "MeetingId": "...",
   *   "MediaPlacement": {
   *     "AudioHostUrl": "...",
   *     "ScreenDataUrl": "...",
   *     "ScreenSharingUrl": "...",
   *     "ScreenViewingUrl": "...",
   *     "SignalingUrl": "...",
   *     "TurnControlUrl": "..."
   *   }
   * }, {
   *   "ExternalUserId": "...",
   *   "AttendeeId": "...",
   *   "JoinToken": "..."
   * });
   * ```
   */
  constructor(tv, ev) {
    this.meetingId = null, this.externalMeetingId = null, this.credentials = null, this.urls = null, this.connectionTimeoutMs = 15e3, this.screenSharingTimeoutMs = 5e3, this.screenViewingTimeoutMs = 5e3, this.attendeePresenceTimeoutMs = 0, this.connectionHealthPolicyConfiguration = new ConnectionHealthPolicyConfiguration_1.default(), this.reconnectTimeoutMs = 120 * 1e3, this.reconnectFixedWaitMs = 0, this.reconnectShortBackOffMs = 1 * 1e3, this.reconnectLongBackOffMs = 5 * 1e3, this.enableUnifiedPlanForChromiumBasedBrowsers = !0, this.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = !1, this.videoDownlinkBandwidthPolicy = null, this.videoUplinkBandwidthPolicy = null, this.keepLastFrameWhenPaused = !1, tv && (tv = Utils_1$2.toLowerCasePropertyNames(tv), tv.meeting && (tv = tv.meeting), this.meetingId = tv.meetingid, this.externalMeetingId = tv.externalmeetingid, this.urls = new MeetingSessionURLs_1.default(), this.urls.audioHostURL = tv.mediaplacement.audiohosturl, this.urls.screenDataURL = tv.mediaplacement.screendataurl, this.urls.screenSharingURL = tv.mediaplacement.screensharingurl, this.urls.screenViewingURL = tv.mediaplacement.screenviewingurl, this.urls.signalingURL = tv.mediaplacement.signalingurl, this.urls.turnControlURL = tv.mediaplacement.turncontrolurl, tv.mediaplacement.eventingestionurl && (this.urls.eventIngestionURL = tv.mediaplacement.eventingestionurl)), ev && (ev = Utils_1$2.toLowerCasePropertyNames(ev), ev.attendee && (ev = ev.attendee), this.credentials = new MeetingSessionCredentials_1$1.default(), this.credentials.attendeeId = ev.attendeeid, this.credentials.externalUserId = ev.externaluserid, this.credentials.joinToken = ev.jointoken);
  }
}
MeetingSessionConfiguration$1.default = MeetingSessionConfiguration;
var __awaiter$g = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultContentShareController$1, "__esModule", { value: !0 });
const MeetingSessionConfiguration_1 = MeetingSessionConfiguration$1, MeetingSessionCredentials_1 = MeetingSessionCredentials$1, DefaultModality_1 = DefaultModality$1, AsyncScheduler_1$1 = AsyncScheduler$1, Types_1 = Types, ContentShareConstants_1 = ContentShareConstants$1;
class DefaultContentShareController {
  constructor(tv, ev, iv) {
    this.mediaStreamBroker = tv, this.contentAudioVideo = ev, this.attendeeAudioVideo = iv, this.observerQueue = /* @__PURE__ */ new Set(), this.destroyed = !1, this.contentAudioVideo.addObserver(this), this.setupContentShareEvents();
  }
  static createContentShareMeetingSessionConfigure(tv) {
    const ev = new MeetingSessionConfiguration_1.default();
    return ev.meetingId = tv.meetingId, ev.externalMeetingId = tv.externalMeetingId, ev.urls = tv.urls, ev.credentials = new MeetingSessionCredentials_1.default(), ev.credentials.attendeeId = tv.credentials.attendeeId + ContentShareConstants_1.default.Modality, ev.credentials.externalUserId = tv.credentials.externalUserId, ev.credentials.joinToken = tv.credentials.joinToken + ContentShareConstants_1.default.Modality, ev;
  }
  setContentAudioProfile(tv) {
    this.contentAudioVideo.setAudioProfile(tv);
  }
  startContentShare(tv) {
    return __awaiter$g(this, void 0, void 0, function* () {
      if (tv) {
        this.mediaStreamBroker.mediaStream = tv;
        for (let ev = 0; ev < this.mediaStreamBroker.mediaStream.getTracks().length; ev++)
          this.mediaStreamBroker.mediaStream.getTracks()[ev].addEventListener("ended", () => {
            this.stopContentShare();
          });
        this.contentAudioVideo.start(), this.mediaStreamBroker.mediaStream.getVideoTracks().length > 0 && this.contentAudioVideo.videoTileController.startLocalVideoTile();
      }
    });
  }
  startContentShareFromScreenCapture(tv, ev) {
    return __awaiter$g(this, void 0, void 0, function* () {
      const iv = yield this.mediaStreamBroker.acquireScreenCaptureDisplayInputStream(tv, ev);
      return yield this.startContentShare(iv), iv;
    });
  }
  pauseContentShare() {
    this.mediaStreamBroker.toggleMediaStream(!1) && this.forEachContentShareObserver((tv) => {
      Types_1.Maybe.of(tv.contentShareDidPause).map((ev) => ev.call(tv));
    });
  }
  unpauseContentShare() {
    this.mediaStreamBroker.toggleMediaStream(!0) && this.forEachContentShareObserver((tv) => {
      Types_1.Maybe.of(tv.contentShareDidUnpause).map((ev) => ev.call(tv));
    });
  }
  destroy() {
    return __awaiter$g(this, void 0, void 0, function* () {
      this.contentAudioVideo && (this.destroyed = !0, this.contentAudioVideo.removeObserver(this), this.stopContentShare(), this.observerQueue.clear(), this.contentAudioVideo = void 0, this.attendeeAudioVideo = void 0, this.mediaStreamBroker = void 0);
    });
  }
  stopContentShare() {
    this.contentAudioVideo.stop(), this.mediaStreamBroker.cleanup();
  }
  addContentShareObserver(tv) {
    this.observerQueue.add(tv);
  }
  removeContentShareObserver(tv) {
    this.observerQueue.delete(tv);
  }
  forEachContentShareObserver(tv) {
    for (const ev of this.observerQueue)
      AsyncScheduler_1$1.default.nextTick(() => {
        this.observerQueue.has(ev) && tv(ev);
      });
  }
  audioVideoDidStop(tv) {
    this.mediaStreamBroker.cleanup(), this.contentShareTile && (this.attendeeAudioVideo.videoTileController.removeVideoTile(this.contentShareTile.id()), this.contentShareTile = null), this.forEachContentShareObserver((ev) => {
      Types_1.Maybe.of(ev.contentShareDidStop).map((iv) => iv.call(ev));
    });
  }
  setupContentShareEvents() {
    this.attendeeAudioVideo.realtimeController.realtimeSubscribeToAttendeeIdPresence((tv, ev, iv, ov) => {
      const av = new DefaultModality_1.default(tv).hasModality(DefaultModality_1.default.MODALITY_CONTENT), sv = new DefaultModality_1.default(tv).base() === this.attendeeAudioVideo.configuration.credentials.attendeeId;
      if (!av || !sv || !ev || this.contentShareTile)
        return;
      const lv = this.mediaStreamBroker.mediaStream;
      if (lv != null && lv.getVideoTracks().length) {
        this.contentShareTile = this.attendeeAudioVideo.videoTileController.addVideoTile();
        const uv = lv.getVideoTracks()[0];
        let cv, dv;
        if (uv.getSettings) {
          const hv = uv.getSettings();
          cv = hv.width, dv = hv.height;
        } else {
          const hv = uv.getCapabilities();
          cv = hv.width, dv = hv.height;
        }
        this.contentShareTile.bindVideoStream(this.contentAudioVideo.configuration.credentials.attendeeId, !1, lv, cv, dv, null, this.contentAudioVideo.configuration.credentials.externalUserId);
      }
      this.forEachContentShareObserver((uv) => {
        Types_1.Maybe.of(uv.contentShareDidStart).map((cv) => cv.call(uv));
      });
    });
  }
}
DefaultContentShareController$1.default = DefaultContentShareController;
var DefaultMeetingEventReporter$1 = {}, Destroyable = {};
Object.defineProperty(Destroyable, "__esModule", { value: !0 });
Destroyable.isDestroyable = void 0;
function isDestroyable(rv) {
  return rv && "destroy" in rv;
}
Destroyable.isDestroyable = isDestroyable;
var InMemoryJSONEventBuffer$1 = {}, FullJitterBackoff$1 = {};
Object.defineProperty(FullJitterBackoff$1, "__esModule", { value: !0 });
class FullJitterBackoff {
  constructor(tv, ev, iv) {
    this.fixedWaitMs = tv, this.shortBackoffMs = ev, this.longBackoffMs = iv, this.currentRetry = 0, this.fixedWaitMs < 0 && (this.fixedWaitMs = 0), this.shortBackoffMs < 0 && (this.shortBackoffMs = 0), this.longBackoffMs < 0 && (this.longBackoffMs = 0), this.reset();
  }
  reset() {
    this.currentRetry = 0;
  }
  nextBackoffAmountMs() {
    const tv = Math.random() * Math.min(this.longBackoffMs, this.shortBackoffMs * Math.pow(2, this.currentRetry)) + this.fixedWaitMs;
    return this.currentRetry += 1, tv;
  }
}
FullJitterBackoff$1.default = FullJitterBackoff;
var DefaultUserAgentParser$1 = {};
Object.defineProperty(DefaultUserAgentParser$1, "__esModule", { value: !0 });
const ua_parser_js_1 = uaParserExports, Versioning_1$3 = Versioning$1;
class DefaultUserAgentParser {
  constructor(tv) {
    var ev, iv, ov, av, sv, lv, uv;
    try {
      this.parserResult = navigator && navigator.userAgent ? new ua_parser_js_1.UAParser(navigator.userAgent).getResult() : void 0;
    } catch (cv) {
      tv.error(cv.message);
    }
    this.browserMajorVersion = ((ov = (iv = (ev = this.parserResult) === null || ev === void 0 ? void 0 : ev.browser) === null || iv === void 0 ? void 0 : iv.version) === null || ov === void 0 ? void 0 : ov.split(".")[0]) || DefaultUserAgentParser.UNAVAILABLE, this.browserName = ((av = this.parserResult) === null || av === void 0 ? void 0 : av.browser.name) || DefaultUserAgentParser.UNAVAILABLE, this.browserVersion = ((sv = this.parserResult) === null || sv === void 0 ? void 0 : sv.browser.version) || DefaultUserAgentParser.UNAVAILABLE, this.deviceName = [((lv = this.parserResult) === null || lv === void 0 ? void 0 : lv.device.vendor) || "", ((uv = this.parserResult) === null || uv === void 0 ? void 0 : uv.device.model) || ""].join(" ").trim() || DefaultUserAgentParser.UNAVAILABLE;
  }
  getParserResult() {
    var tv, ev;
    return {
      browserMajorVersion: this.browserMajorVersion,
      browserName: this.browserName,
      browserVersion: this.browserVersion,
      deviceName: this.deviceName,
      osName: ((tv = this.parserResult) === null || tv === void 0 ? void 0 : tv.os.name) || DefaultUserAgentParser.UNAVAILABLE,
      osVersion: ((ev = this.parserResult) === null || ev === void 0 ? void 0 : ev.os.version) || DefaultUserAgentParser.UNAVAILABLE,
      sdkVersion: Versioning_1$3.default.sdkVersion,
      sdkName: Versioning_1$3.default.sdkName
    };
  }
}
DefaultUserAgentParser$1.default = DefaultUserAgentParser;
DefaultUserAgentParser.UNAVAILABLE = "Unavailable";
var __awaiter$f = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
}, __rest = commonjsGlobal && commonjsGlobal.__rest || function(rv, tv) {
  var ev = {};
  for (var iv in rv)
    Object.prototype.hasOwnProperty.call(rv, iv) && tv.indexOf(iv) < 0 && (ev[iv] = rv[iv]);
  if (rv != null && typeof Object.getOwnPropertySymbols == "function")
    for (var ov = 0, iv = Object.getOwnPropertySymbols(rv); ov < iv.length; ov++)
      tv.indexOf(iv[ov]) < 0 && Object.prototype.propertyIsEnumerable.call(rv, iv[ov]) && (ev[iv[ov]] = rv[iv[ov]]);
  return ev;
};
Object.defineProperty(InMemoryJSONEventBuffer$1, "__esModule", { value: !0 });
const FullJitterBackoff_1$3 = FullJitterBackoff$1, IntervalScheduler_1$1 = IntervalScheduler$1, DefaultUserAgentParser_1 = DefaultUserAgentParser$1, Utils_1$1 = Utils;
class InMemoryJSONEventBuffer {
  constructor(tv, ev, iv, ov, av) {
    this.buffer = [], this.bufferSize = 0, this.maxBufferItemCapacityBytes = 0, this.ingestionEventSize = 0, this.flushIntervalMs = 0, this.flushSize = 0, this.failedIngestionEvents = [], this.retryCountLimit = 15, this.lock = !1, this.cancellableEvents = /* @__PURE__ */ new Map(), this.attributesToFilter = ["externalUserId", "externalMeetingId", "timestampMs"], this.deepCopyCurrentIngestionEvent = (wv) => ({
      type: wv.type,
      v: wv.v,
      payloads: [...wv.payloads]
    }), this.sendEvents = () => __awaiter$f(this, void 0, void 0, function* () {
      if (this.lock)
        return;
      const wv = this.getItems(this.flushSize);
      if (wv.length === 0)
        return;
      this.lock = !0;
      const xv = this.makeRequestBody(wv);
      let Cv = !1;
      const Av = Date.now();
      this.metadata.browserName.toLowerCase() === "firefox" && this.cancellableEvents.set(Av, wv);
      try {
        this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEvents - sending body ${xv}`);
        const Ov = yield this.send(xv);
        if (this.cancellableEvents.delete(Av), !Ov.ok)
          this.logger.error(`Event Reporting - InMemoryJSONEventBuffer - sendEvents - Failed to send events ${xv} with response status ${Ov.status}`), Cv = !0;
        else
          try {
            const Lv = yield Ov.json();
            this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEvents - send successful events: ${xv} message: ${JSON.stringify(Lv)}`);
          } catch (Lv) {
            this.logger.warn(`Event Reporting - InMemoryJSONEventBuffer - sendEvents error reading OK response ${Lv} for events ${xv}`);
          }
      } catch (Ov) {
        Cv = !0, this.logger.warn(`Event Reporting - InMemoryJSONEventBuffer - sendEvents - Error in sending events ${xv} to the ingestion endpoint ${Ov}`);
      } finally {
        this.lock = !1;
      }
      Cv && (this.cancellableEvents.delete(Av), this.failedIngestionEvents.push(...wv));
    });
    const sv = new DefaultUserAgentParser_1.default(av).getParserResult(), lv = __rest(sv, ["browserMajorVersion"]), uv = ev.toJSON(), { type: cv, v: dv } = uv, hv = __rest(uv, ["type", "v"]);
    this.authenticationToken = ev.getAuthenticationToken(), this.metadata = Object.assign(Object.assign({}, lv), hv), Object.keys(this.metadata).forEach((wv) => this.attributesToFilter.push(wv)), this.type = cv, this.v = dv, this.ingestionURL = iv, this.logger = av, this.importantEvents = new Set(ov);
    const { maxBufferCapacityKb: pv, totalBufferItems: yv, flushSize: Sv, flushIntervalMs: _v, retryCountLimit: Ev } = tv;
    this.maxBufferCapacityBytes = pv * 1024, this.totalBufferItems = yv, this.maxBufferItemCapacityBytes = Math.round(this.maxBufferCapacityBytes / yv), this.flushIntervalMs = _v, this.flushSize = Sv, this.retryCountLimit = Ev, this.currentIngestionEvent = this.initializeAndGetCurrentIngestionEvent(), this.beaconEventListener = (wv) => this.beaconEventHandler(wv), this.addEventListeners();
  }
  addEventListeners() {
    !this.beaconEventListener || !("window" in commonjsGlobal) || !window.addEventListener || !("document" in commonjsGlobal) || !document.addEventListener || (this.logger.debug("Event Reporting - InMemoryJSONEventBuffer - addEventListeners - adding pagehide and visibility change event listeners"), window.addEventListener("pagehide", this.beaconEventListener), document.addEventListener("visibilitychange", this.beaconEventListener));
  }
  beaconEventHandler(tv) {
    (tv.type === "visibilitychange" && document.visibilityState === "hidden" || tv.type === "pagehide") && (this.logger.debug("Event Reporting - InMemoryJSONEventBuffer - beaconEventHandler is triggered calling sendBeacon"), this.sendBeacon());
  }
  removeEventListeners() {
    !this.beaconEventListener || !("window" in commonjsGlobal) || !window.removeEventListener || !("document" in commonjsGlobal) || !document.removeEventListener || (window.removeEventListener("pagehide", this.beaconEventListener), document.removeEventListener("visibilitychange", this.beaconEventListener), this.logger.debug("Event Reporting - InMemoryJSONEventBuffer - removeEventListeners - removing pagehide and visibility change event listeners"));
  }
  start() {
    var tv;
    this.removeEventListeners(), this.addEventListeners(), (tv = this.intervalScheduler) === null || tv === void 0 || tv.stop(), this.intervalScheduler = new IntervalScheduler_1$1.default(this.flushIntervalMs), this.intervalScheduler.start(() => this.sendEvents());
  }
  stop() {
    var tv;
    (tv = this.intervalScheduler) === null || tv === void 0 || tv.stop(), this.intervalScheduler = void 0, this.sendBeacon(), this.removeEventListeners();
  }
  addItem(tv) {
    return __awaiter$f(this, void 0, void 0, function* () {
      this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - addItem - received event ${JSON.stringify(tv)}`);
      const { name: ev, ts: iv, attributes: ov } = tv, av = ov && this.filterAttributes(ov, this.attributesToFilter), sv = Object.assign({ name: ev, ts: iv }, av);
      this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - addItem - event after filtering attributes ${JSON.stringify(sv)}`);
      const lv = this.getSize(sv);
      if (lv > InMemoryJSONEventBuffer.MAX_ITEM_SIZE_BYTES_ALLOWED)
        throw new Error(`Event Reporting - Item to be added has size ${lv} bytes. Item cannot exceed max item size allowed of ${InMemoryJSONEventBuffer.MAX_ITEM_SIZE_BYTES_ALLOWED} bytes.`);
      if (this.importantEvents.has(ev)) {
        this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - addItem - sending important event ${JSON.stringify(sv)}`), this.sendEventImmediately({ name: ev, ts: iv, attributes: av });
        return;
      }
      if (this.isFull())
        throw this.logger.warn("Event Reporting - Event buffer is full"), new Error("Buffer full");
      if (this.currentIngestionEvent.payloads.push(sv), this.ingestionEventSize += lv, this.bufferItemThresholdReached(lv)) {
        const uv = this.deepCopyCurrentIngestionEvent(this.currentIngestionEvent);
        this.buffer.push(uv), this.bufferSize += this.ingestionEventSize, this.currentIngestionEvent = this.initializeAndGetCurrentIngestionEvent(), this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - addItem - buffer item threshold reached updated buffer ${JSON.stringify(this.buffer)}`);
      }
    });
  }
  filterAttributes(tv, ev) {
    const iv = new Set(ev);
    return Object.keys(tv).filter((av) => iv.has(av)).forEach((av) => delete tv[av]), tv;
  }
  initializeAndGetCurrentIngestionEvent() {
    const tv = {
      type: this.type,
      v: this.v,
      payloads: []
    };
    return this.ingestionEventSize = this.getSize(tv), tv;
  }
  bufferItemThresholdReached(tv) {
    return tv + this.ingestionEventSize >= this.maxBufferItemCapacityBytes || this.currentIngestionEvent.payloads.length === InMemoryJSONEventBuffer.MAX_PAYLOAD_ITEMS;
  }
  getSize(tv) {
    let ev = 0;
    if (typeof tv == "object")
      for (const [iv, ov] of Object.entries(tv))
        ev += this.getPrimitiveSize(iv), ev += this.getSize(ov);
    else
      ev += this.getPrimitiveSize(tv);
    return ev;
  }
  getPrimitiveSize(tv) {
    let ev = 0;
    return typeof tv == "string" ? ev += tv.length * 2 : typeof tv == "number" && (ev += 8), ev;
  }
  isFull() {
    return this.bufferSize === this.maxBufferCapacityBytes || this.buffer.length === this.totalBufferItems;
  }
  isEmpty() {
    return this.buffer.length === 0 || this.bufferSize === 0;
  }
  getItems(tv, ev = 0) {
    return this.isEmpty() ? [] : (tv = Math.min(this.buffer.length, tv + 1), this.buffer.splice(ev, tv));
  }
  makeBeaconRequestBody(tv) {
    const ev = {
      metadata: this.metadata,
      events: tv,
      authorization: this.authenticationToken
    };
    return JSON.stringify(ev);
  }
  makeRequestBody(tv) {
    const ev = {
      metadata: this.metadata,
      events: tv
    };
    return JSON.stringify(ev);
  }
  sendEventImmediately(tv) {
    return __awaiter$f(this, void 0, void 0, function* () {
      this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - important event received ${JSON.stringify(tv)}`);
      const { name: ev, ts: iv, attributes: ov } = tv, av = {
        type: this.type,
        v: this.v,
        payloads: [
          Object.assign({
            name: ev,
            ts: iv
          }, ov)
        ]
      };
      let sv = !1, lv = null;
      const uv = this.makeRequestBody([av]);
      try {
        if (lv = yield this.send(uv), lv.ok) {
          try {
            const cv = yield lv.json();
            this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - send successful event: ${uv}, message: ${JSON.stringify(cv)}`);
          } catch (cv) {
            this.logger.warn(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - Error reading OK response ${cv} for event ${uv}`);
          }
          return;
        } else
          this.logger.error(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - Failed to send an important event ${uv} with response status ${lv.status}`), sv = !0;
      } catch (cv) {
        this.logger.warn(`Event Reporting - There may be a failure in sending an important event ${uv} to the ingestion endpoint ${cv}.`), sv = !0;
        try {
          if (this.metadata.browserName.toLowerCase() === "firefox") {
            const dv = this.makeBeaconRequestBody([av]);
            this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - beaconing data out ${dv}`), navigator.sendBeacon(`${this.ingestionURL}?beacon=1`, dv) ? sv = !1 : sv = !0;
          }
        } catch {
          this.logger.warn(`Event Reporting - Error sending beacon for an important event ${uv}`), sv = !0;
        }
      }
      sv && (this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendEventImmediately - pushing to failed events ${uv}`), this.failedIngestionEvents.push(av));
    });
  }
  send(tv) {
    return __awaiter$f(this, void 0, void 0, function* () {
      const ev = new FullJitterBackoff_1$3.default(InMemoryJSONEventBuffer.RETRY_FIXED_BACKOFF_WAIT_MS, InMemoryJSONEventBuffer.RETRY_SHORT_BACKOFF_MS, InMemoryJSONEventBuffer.RETRY_LONG_BACKOFF_MS);
      try {
        let iv = 0;
        for (; iv < this.retryCountLimit; ) {
          const ov = yield fetch(this.ingestionURL, {
            method: "POST",
            headers: {
              Authorization: `Bearer ${this.authenticationToken}`
            },
            body: tv
          });
          if (ov.ok || !InMemoryJSONEventBuffer.SENDING_FAILURE_CODES.has(ov.status))
            return ov;
          if (this.logger.warn(`Will retry sending failure for ${tv} due to status code ${ov.status}.`), iv++, iv < this.retryCountLimit) {
            const av = ev.nextBackoffAmountMs();
            yield Utils_1$1.wait(av);
          }
        }
        if (iv === this.retryCountLimit)
          throw new Error(`Retry count limit reached for ${tv}`);
      } catch (iv) {
        throw iv;
      }
    });
  }
  sendBeacon() {
    return __awaiter$f(this, void 0, void 0, function* () {
      const tv = this.buffer;
      if (this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - clearing out buffer events ${JSON.stringify(tv)}`), this.buffer = [], this.currentIngestionEvent.payloads.length > 0) {
        const iv = this.deepCopyCurrentIngestionEvent(this.currentIngestionEvent);
        tv.push(iv), this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - clearing out current ingestion event ${JSON.stringify(iv)}`), this.currentIngestionEvent = this.initializeAndGetCurrentIngestionEvent();
      }
      if (this.failedIngestionEvents.length > 0) {
        const iv = this.failedIngestionEvents.map((ov) => this.deepCopyCurrentIngestionEvent(ov));
        tv.push(...iv), this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - clearing out any failed ingestion event ${JSON.stringify(iv)}`), this.failedIngestionEvents = [];
      }
      if (this.cancellableEvents.size > 0 && (this.cancellableEvents.forEach((iv) => {
        tv.push(...iv), this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - clearing out each cancellable event ${JSON.stringify(iv)}`);
      }), this.cancellableEvents.clear()), tv.length === 0)
        return;
      const ev = this.makeBeaconRequestBody(tv);
      this.logger.debug(`Event Reporting - InMemoryJSONEventBuffer - sendBeacon - beacon data to send ${ev}`);
      try {
        navigator.sendBeacon(`${this.ingestionURL}?beacon=1`, ev) || this.logger.warn(`Event Reporting - Browser failed to queue beacon data ${ev}`);
      } catch (iv) {
        this.logger.warn(`Event Reporting - Sending beacon data ${ev} failed with error ${iv}`);
      }
    });
  }
  reset() {
    this.maxBufferCapacityBytes = 0, this.totalBufferItems = 0, this.buffer = [], this.bufferSize = 0, this.maxBufferItemCapacityBytes = 0, this.ingestionEventSize = 0, this.flushIntervalMs = 0, this.flushSize = 0, this.failedIngestionEvents = [], this.lock = !1, this.beaconEventListener = void 0, this.cancellableEvents.clear();
  }
  destroy() {
    return __awaiter$f(this, void 0, void 0, function* () {
      this.stop(), this.reset();
    });
  }
}
InMemoryJSONEventBuffer$1.default = InMemoryJSONEventBuffer;
InMemoryJSONEventBuffer.SENDING_FAILURE_CODES = /* @__PURE__ */ new Set([
  408,
  429,
  500,
  502,
  503,
  504
  // Gateway Timeout.
]);
InMemoryJSONEventBuffer.RETRY_FIXED_BACKOFF_WAIT_MS = 0;
InMemoryJSONEventBuffer.RETRY_SHORT_BACKOFF_MS = 1e3;
InMemoryJSONEventBuffer.RETRY_LONG_BACKOFF_MS = 15e3;
InMemoryJSONEventBuffer.MAX_PAYLOAD_ITEMS = 2;
InMemoryJSONEventBuffer.MAX_ITEM_SIZE_BYTES_ALLOWED = 3e3;
var __awaiter$e = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultMeetingEventReporter$1, "__esModule", { value: !0 });
const Destroyable_1 = Destroyable, InMemoryJSONEventBuffer_1 = InMemoryJSONEventBuffer$1;
class DefaultMeetingEventReporter {
  constructor(tv, ev) {
    this.reportingEvents = !1, this.importantEvents = [
      "meetingEnded",
      "meetingFailed",
      "meetingStartFailed",
      "audioInputFailed",
      "videoInputFailed",
      "meetingStartSucceeded"
    ], this.destroyed = !1;
    const { eventsClientConfiguration: iv, ingestionURL: ov, eventBufferConfiguration: av } = tv, { eventsToIgnore: sv } = iv;
    this.eventBuffer = new InMemoryJSONEventBuffer_1.default(av, iv, ov, this.importantEvents, ev), this.logger = ev, this.eventsToIgnore = sv, this.start();
  }
  start() {
    if (!this.reportingEvents)
      try {
        this.eventBuffer.start(), this.logger.info("Event reporting started"), this.reportingEvents = !0;
      } catch (tv) {
        this.logger.error(`Event Reporting - Error starting the event buffer ${tv}`);
      }
  }
  stop() {
    if (this.reportingEvents)
      try {
        this.eventBuffer.stop(), this.logger.info("Event reporting stopped"), this.reportingEvents = !1;
      } catch (tv) {
        this.logger.error(`Event Reporting - Error stopping the event buffer ${tv}`);
      }
  }
  reportEvent(tv, ev, iv) {
    return __awaiter$e(this, void 0, void 0, function* () {
      if (this.logger.debug(`Event Reporting - DefaultMeetingEventReporter - event received in reportEvent ${tv}, ${ev}, ${JSON.stringify(iv)}`), this.eventsToIgnore.includes(ev)) {
        this.logger.debug(`Event Reporting - DefaultMeetingEventReporter - ${ev} event will be ignored as it is in events to ignore`);
        return;
      }
      try {
        this.logger.debug("Event Reporting - DefaultMeetingEventReporter - adding item to event buffer"), yield this.eventBuffer.addItem({ ts: tv, name: ev, attributes: iv });
      } catch (ov) {
        this.logger.error(`Event Reporting - Error adding event to buffer ${ov}`);
      }
    });
  }
  destroy() {
    return __awaiter$e(this, void 0, void 0, function* () {
      this.destroyed = !0, this.stop(), Destroyable_1.isDestroyable(this.eventBuffer) && this.eventBuffer.destroy(), this.eventBuffer = void 0;
    });
  }
}
DefaultMeetingEventReporter$1.default = DefaultMeetingEventReporter;
var DefaultMeetingReadinessChecker$1 = {}, MeetingReadinessCheckerConfiguration$1 = {};
Object.defineProperty(MeetingReadinessCheckerConfiguration$1, "__esModule", { value: !0 });
class MeetingReadinessCheckerConfiguration {
  constructor() {
    this.timeoutMs = 1e4, this.waitDurationMs = 3e3;
  }
}
MeetingReadinessCheckerConfiguration$1.default = MeetingReadinessCheckerConfiguration;
var __awaiter$d = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultMeetingReadinessChecker$1, "__esModule", { value: !0 });
const DefaultAudioMixController_1 = DefaultAudioMixController$1, DefaultBrowserBehavior_1$2 = DefaultBrowserBehavior$1, DefaultDeviceController_1 = DefaultDeviceController$1, PermissionDeniedError_1 = PermissionDeniedError$1, BaseTask_1$1 = BaseTask$1, TimeoutTask_1 = TimeoutTask$1, CheckAudioConnectivityFeedback_1 = CheckAudioConnectivityFeedback, CheckAudioInputFeedback_1 = CheckAudioInputFeedback, CheckAudioOutputFeedback_1 = CheckAudioOutputFeedback, CheckCameraResolutionFeedback_1 = CheckCameraResolutionFeedback, CheckContentShareConnectivityFeedback_1 = CheckContentShareConnectivityFeedback, CheckNetworkTCPConnectivityFeedback_1 = CheckNetworkTCPConnectivityFeedback, CheckNetworkUDPConnectivityFeedback_1 = CheckNetworkUDPConnectivityFeedback, CheckVideoConnectivityFeedback_1 = CheckVideoConnectivityFeedback, CheckVideoInputFeedback_1 = CheckVideoInputFeedback, MeetingReadinessCheckerConfiguration_1 = MeetingReadinessCheckerConfiguration$1;
class DefaultMeetingReadinessChecker {
  constructor(tv, ev, iv = new MeetingReadinessCheckerConfiguration_1.default()) {
    this.logger = tv, this.meetingSession = ev, this.configuration = iv, this.browserBehavior = new DefaultBrowserBehavior_1$2.default();
  }
  static delay(tv) {
    return __awaiter$d(this, void 0, void 0, function* () {
      return new Promise((ev) => setTimeout(ev, tv));
    });
  }
  checkAudioInput(tv) {
    return __awaiter$d(this, void 0, void 0, function* () {
      try {
        return yield this.meetingSession.audioVideo.chooseAudioInputDevice(tv), yield this.meetingSession.audioVideo.chooseAudioInputDevice(null), CheckAudioInputFeedback_1.default.Succeeded;
      } catch (ev) {
        return this.logger.error(`MeetingReadinessChecker: Audio input check failed with error ${ev}`), ev instanceof PermissionDeniedError_1.default ? CheckAudioInputFeedback_1.default.PermissionDenied : CheckAudioInputFeedback_1.default.Failed;
      }
    });
  }
  checkAudioOutput(tv, ev, iv = null) {
    return __awaiter$d(this, void 0, void 0, function* () {
      try {
        const ov = tv ? DefaultDeviceController_1.default.getIntrinsicDeviceId(tv) : "";
        return yield this.playTone(ov, 440, iv), (yield ev()) ? CheckAudioOutputFeedback_1.default.Succeeded : CheckAudioOutputFeedback_1.default.Failed;
      } catch (ov) {
        return this.logger.error(`MeetingReadinessChecker: Audio output check failed with error: ${ov}`), CheckAudioOutputFeedback_1.default.Failed;
      } finally {
        this.stopTone();
      }
    });
  }
  playTone(tv, ev, iv) {
    return __awaiter$d(this, void 0, void 0, function* () {
      this.oscillatorNode && this.stopTone(), this.audioContext = DefaultDeviceController_1.default.getAudioContext(), this.gainNode = this.audioContext.createGain(), this.gainNode.gain.value = 0, this.oscillatorNode = this.audioContext.createOscillator(), this.oscillatorNode.frequency.value = ev, this.oscillatorNode.connect(this.gainNode), this.destinationStream = this.audioContext.createMediaStreamDestination(), this.gainNode.connect(this.destinationStream);
      const lv = this.audioContext.currentTime + 0.1;
      this.gainNode.gain.linearRampToValueAtTime(0, lv), this.gainNode.gain.linearRampToValueAtTime(0.1, lv + 0.1), this.oscillatorNode.start();
      const uv = new DefaultAudioMixController_1.default(this.logger);
      try {
        this.browserBehavior.supportsSetSinkId() && (yield uv.bindAudioDevice({ deviceId: tv }));
      } catch (cv) {
        this.logger.error(`Failed to bind audio device: ${cv}`);
      }
      try {
        yield uv.bindAudioElement(iv || new Audio());
      } catch (cv) {
        this.logger.error(`Failed to bind audio element: ${cv}`);
      }
      yield uv.bindAudioStream(this.destinationStream.stream);
    });
  }
  stopTone() {
    if (!this.audioContext || !this.gainNode || !this.oscillatorNode || !this.destinationStream)
      return;
    const tv = 1, ev = 0.1, iv = 0.1, ov = this.audioContext.currentTime;
    this.gainNode.gain.linearRampToValueAtTime(iv, ov + ev + tv), this.gainNode.gain.linearRampToValueAtTime(0, ov + ev * 2 + tv), this.oscillatorNode.stop(), this.oscillatorNode.disconnect(this.gainNode), this.gainNode.disconnect(this.destinationStream), this.oscillatorNode = null, this.gainNode = null, this.destinationStream = null;
  }
  checkVideoInput(tv) {
    return __awaiter$d(this, void 0, void 0, function* () {
      try {
        return yield this.meetingSession.audioVideo.chooseVideoInputDevice(tv), yield this.meetingSession.audioVideo.chooseVideoInputDevice(null), CheckVideoInputFeedback_1.default.Succeeded;
      } catch (ev) {
        return this.logger.error(`MeetingReadinessChecker: Video check failed with error ${ev}`), ev instanceof PermissionDeniedError_1.default ? CheckVideoInputFeedback_1.default.PermissionDenied : CheckVideoInputFeedback_1.default.Failed;
      }
    });
  }
  checkCameraResolution(tv, ev, iv) {
    return __awaiter$d(this, void 0, void 0, function* () {
      let ov;
      try {
        const av = DefaultDeviceController_1.default.getIntrinsicDeviceId(tv), sv = {
          video: this.calculateVideoConstraint(av, ev, iv)
        };
        ov = yield navigator.mediaDevices.getUserMedia(sv);
      } catch (av) {
        return this.logger.error(`MeetingReadinessChecker: Camera resolution check with width: ${ev} height ${iv} failed with error ${av}`), av && av.name === "OverconstrainedError" ? CheckCameraResolutionFeedback_1.default.ResolutionNotSupported : av && av.name === "NotAllowedError" ? CheckCameraResolutionFeedback_1.default.PermissionDenied : CheckCameraResolutionFeedback_1.default.Failed;
      } finally {
        ov && ov.getTracks().forEach(function(av) {
          av.stop();
        });
      }
      return CheckCameraResolutionFeedback_1.default.Succeeded;
    });
  }
  calculateVideoConstraint(tv, ev, iv) {
    const ov = this.browserBehavior.requiresResolutionAlignment(ev, iv), av = {};
    return this.browserBehavior.requiresNoExactMediaStreamConstraints() ? (av.deviceId = tv, av.width = ev, av.height = iv) : (av.deviceId = { exact: tv }, av.width = { exact: ov[0] }, av.height = { exact: ov[1] }), av;
  }
  checkContentShareConnectivity(tv) {
    return __awaiter$d(this, void 0, void 0, function* () {
      let ev = !1, iv = !1;
      const ov = {
        contentShareDidStart: () => {
          ev = !0;
        }
      }, av = {
        audioVideoDidStart: () => {
          iv = !0;
        }
      };
      try {
        return this.meetingSession.audioVideo.addObserver(av), this.meetingSession.audioVideo.start(), this.meetingSession.audioVideo.addContentShareObserver(ov), yield this.meetingSession.audioVideo.startContentShareFromScreenCapture(tv), yield this.executeTimeoutTask(() => __awaiter$d(this, void 0, void 0, function* () {
          return iv && ev;
        })), iv ? (yield this.stopMeeting(), ev ? CheckContentShareConnectivityFeedback_1.default.Succeeded : CheckContentShareConnectivityFeedback_1.default.TimedOut) : CheckContentShareConnectivityFeedback_1.default.ConnectionFailed;
      } catch (sv) {
        return this.logger.error(`MeetingReadinessChecker: Content share check failed with error ${sv}`), sv.name === "NotAllowedError" ? CheckContentShareConnectivityFeedback_1.default.PermissionDenied : CheckContentShareConnectivityFeedback_1.default.Failed;
      } finally {
        this.meetingSession.audioVideo.removeObserver(av), this.meetingSession.audioVideo.stopContentShare(), this.meetingSession.audioVideo.removeContentShareObserver(ov);
      }
    });
  }
  checkAudioConnectivity(tv) {
    return __awaiter$d(this, void 0, void 0, function* () {
      let ev = !1;
      const iv = this.meetingSession.audioVideo, ov = (av, sv, lv, uv) => {
        av === this.meetingSession.configuration.credentials.attendeeId && sv && (ev = !0);
      };
      try {
        yield iv.chooseAudioInputDevice(tv);
      } catch (av) {
        return this.logger.error(`MeetingReadinessChecker: Failed to get audio input device with error ${av}`), av instanceof PermissionDeniedError_1.default ? CheckAudioConnectivityFeedback_1.default.AudioInputPermissionDenied : CheckAudioConnectivityFeedback_1.default.AudioInputRequestFailed;
      }
      if (iv.realtimeSubscribeToAttendeeIdPresence(ov), !(yield this.startMeeting())) {
        iv.realtimeUnsubscribeToAttendeeIdPresence(ov);
        try {
          yield this.meetingSession.audioVideo.chooseAudioInputDevice(null);
        } catch (av) {
          this.logger.error(`MeetingReadinessChecker: Failed to choose null device with error ${av}`);
        }
        return CheckAudioConnectivityFeedback_1.default.ConnectionFailed;
      }
      yield this.executeTimeoutTask(() => __awaiter$d(this, void 0, void 0, function* () {
        return ev;
      })), iv.realtimeUnsubscribeToAttendeeIdPresence(ov), yield this.stopMeeting();
      try {
        yield this.meetingSession.audioVideo.chooseAudioInputDevice(null);
      } catch (av) {
        this.logger.error(`MeetingReadinessChecker: Failed to choose null device with error ${av}`);
      }
      return ev ? CheckAudioConnectivityFeedback_1.default.Succeeded : CheckAudioConnectivityFeedback_1.default.AudioNotReceived;
    });
  }
  checkVideoConnectivity(tv) {
    return __awaiter$d(this, void 0, void 0, function* () {
      const ev = this.meetingSession.audioVideo;
      try {
        yield ev.chooseVideoInputDevice(tv);
      } catch (ov) {
        return this.logger.error(`MeetingReadinessChecker: Failed to get video input device with error ${ov}`), ov instanceof PermissionDeniedError_1.default ? CheckVideoConnectivityFeedback_1.default.VideoInputPermissionDenied : CheckVideoConnectivityFeedback_1.default.VideoInputRequestFailed;
      }
      if (!(yield this.startMeeting()))
        return CheckVideoConnectivityFeedback_1.default.ConnectionFailed;
      let iv = 0;
      return ev.startLocalVideoTile(), yield this.executeTimeoutTask(() => __awaiter$d(this, void 0, void 0, function* () {
        const ov = yield ev.getRTCPeerConnectionStats();
        return ov && ov.forEach((av) => {
          av.type === "outbound-rtp" && av.mediaType === "video" && (iv = av.packetsSent);
        }), iv > 0;
      })), ev.stopLocalVideoTile(), yield this.stopMeeting(), iv <= 0 ? CheckVideoConnectivityFeedback_1.default.VideoNotSent : CheckVideoConnectivityFeedback_1.default.Succeeded;
    });
  }
  checkNetworkUDPConnectivity() {
    return __awaiter$d(this, void 0, void 0, function* () {
      try {
        this.originalURLRewriter = this.meetingSession.configuration.urls.urlRewriter;
      } catch (iv) {
        return this.logger.error(`MeetingSessionConfiguration.urls doesn't exist. Error: ${iv}`), CheckNetworkUDPConnectivityFeedback_1.default.MeetingSessionURLsNotInitialized;
      }
      this.meetingSession.configuration.urls.urlRewriter = (iv) => {
        const ov = this.originalURLRewriter(iv);
        return ov.includes("transport=tcp") ? "" : ov;
      };
      const tv = this.meetingSession.audioVideo;
      if (!(yield this.startMeeting()))
        return this.meetingSession.configuration.urls.urlRewriter = this.originalURLRewriter, CheckNetworkUDPConnectivityFeedback_1.default.ConnectionFailed;
      let ev = !1;
      return yield this.executeTimeoutTask(() => __awaiter$d(this, void 0, void 0, function* () {
        const iv = yield tv.getRTCPeerConnectionStats();
        return iv && iv.forEach((ov) => {
          ov.type === "candidate-pair" && ov.state === "succeeded" && (ev = !0);
        }), ev;
      })), this.meetingSession.configuration.urls.urlRewriter = this.originalURLRewriter, yield this.stopMeeting(), ev ? CheckNetworkUDPConnectivityFeedback_1.default.Succeeded : CheckNetworkUDPConnectivityFeedback_1.default.ICENegotiationFailed;
    });
  }
  checkNetworkTCPConnectivity() {
    return __awaiter$d(this, void 0, void 0, function* () {
      try {
        this.originalURLRewriter = this.meetingSession.configuration.urls.urlRewriter;
      } catch (iv) {
        return this.logger.error(`MeetingSessionConfiguration.urls doesn't exist. Error: ${iv}`), CheckNetworkTCPConnectivityFeedback_1.default.MeetingSessionURLsNotInitialized;
      }
      this.meetingSession.configuration.urls.urlRewriter = (iv) => {
        const ov = this.originalURLRewriter(iv);
        return ov.includes("transport=udp") ? "" : ov;
      };
      const tv = this.meetingSession.audioVideo;
      if (!(yield this.startMeeting()))
        return this.meetingSession.configuration.urls.urlRewriter = this.originalURLRewriter, CheckNetworkTCPConnectivityFeedback_1.default.ConnectionFailed;
      let ev = !1;
      return yield this.executeTimeoutTask(() => __awaiter$d(this, void 0, void 0, function* () {
        const iv = yield tv.getRTCPeerConnectionStats();
        return iv && iv.forEach((ov) => {
          ov.type === "candidate-pair" && ov.state === "succeeded" && (ev = !0);
        }), ev;
      })), this.meetingSession.configuration.urls.urlRewriter = this.originalURLRewriter, yield this.stopMeeting(), ev ? CheckNetworkTCPConnectivityFeedback_1.default.Succeeded : CheckNetworkTCPConnectivityFeedback_1.default.ICENegotiationFailed;
    });
  }
  startMeeting() {
    return __awaiter$d(this, void 0, void 0, function* () {
      let tv = !1;
      const ev = {
        audioVideoDidStart: () => {
          tv = !0;
        }
      };
      return this.meetingSession.audioVideo.addObserver(ev), this.meetingSession.audioVideo.start(), yield this.executeTimeoutTask(() => __awaiter$d(this, void 0, void 0, function* () {
        return tv;
      })), this.meetingSession.audioVideo.removeObserver(ev), tv;
    });
  }
  stopMeeting() {
    return __awaiter$d(this, void 0, void 0, function* () {
      let tv = !1;
      const ev = {
        audioVideoDidStop: (iv) => {
          tv = !0;
        }
      };
      return this.meetingSession.audioVideo.addObserver(ev), this.meetingSession.audioVideo.stop(), yield this.executeTimeoutTask(() => __awaiter$d(this, void 0, void 0, function* () {
        return tv;
      })), this.meetingSession.audioVideo.removeObserver(ev), tv;
    });
  }
  executeTimeoutTask(tv) {
    return __awaiter$d(this, void 0, void 0, function* () {
      let ev = !1;
      class iv extends BaseTask_1$1.default {
        constructor(sv, lv) {
          super(sv), this.waitDurationMs = lv, this.isCancelled = !1;
        }
        cancel() {
          this.isCancelled = !0;
        }
        run() {
          return __awaiter$d(this, void 0, void 0, function* () {
            for (; !this.isCancelled; ) {
              if (yield tv()) {
                ev = !0;
                break;
              }
              yield DefaultMeetingReadinessChecker.delay(this.waitDurationMs);
            }
          });
        }
      }
      return yield new TimeoutTask_1.default(this.logger, new iv(this.logger, this.configuration.waitDurationMs), this.configuration.timeoutMs).run(), ev;
    });
  }
}
DefaultMeetingReadinessChecker$1.default = DefaultMeetingReadinessChecker;
var DefaultMeetingSession = {}, EventIngestionConfiguration$1 = {}, EventBufferConfiguration$1 = {};
Object.defineProperty(EventBufferConfiguration$1, "__esModule", { value: !0 });
class EventBufferConfiguration {
  constructor(tv = 5e3, ev = 2, iv = 64, ov = 100, av = 15) {
    this.flushIntervalMs = tv, this.flushSize = ev, this.maxBufferCapacityKb = iv, this.totalBufferItems = ov, this.retryCountLimit = av;
  }
}
EventBufferConfiguration$1.default = EventBufferConfiguration;
Object.defineProperty(EventIngestionConfiguration$1, "__esModule", { value: !0 });
const EventBufferConfiguration_1 = EventBufferConfiguration$1;
class EventIngestionConfiguration {
  constructor(tv, ev, iv = new EventBufferConfiguration_1.default()) {
    this.eventsClientConfiguration = tv, this.ingestionURL = ev, this.eventBufferConfiguration = iv;
  }
}
EventIngestionConfiguration$1.default = EventIngestionConfiguration;
var MeetingEventsClientConfiguration$1 = {};
Object.defineProperty(MeetingEventsClientConfiguration$1, "__esModule", { value: !0 });
class MeetingEventsClientConfiguration {
  constructor(tv, ev, iv, ov = []) {
    this.type = "Meet", this.v = 1, this.meetingId = tv, this.attendeeId = ev, this.eventsToIgnore = ov, this.authenticationToken = iv;
  }
  getAuthenticationToken() {
    return this.authenticationToken;
  }
  toJSON() {
    const tv = {};
    return tv.type = this.type, tv.v = this.v, tv.meetingId = this.meetingId, tv.attendeeId = this.attendeeId, tv;
  }
}
MeetingEventsClientConfiguration$1.default = MeetingEventsClientConfiguration;
var DefaultReconnectController$1 = {};
Object.defineProperty(DefaultReconnectController$1, "__esModule", { value: !0 });
const TimeoutScheduler_1 = TimeoutScheduler$1;
class DefaultReconnectController {
  constructor(tv, ev) {
    this.reconnectTimeoutMs = tv, this.backoffPolicy = ev, this.shouldReconnect = !0, this.onlyRestartPeerConnection = !1, this.firstConnectionAttempted = !1, this.firstConnectionAttemptTimestampMs = 0, this.lastActiveTimestampMs = 1 / 0, this._isFirstConnection = !0, this.backoffTimer = null, this.backoffCancel = null, this.reset();
  }
  timeSpentReconnectingMs() {
    return this.firstConnectionAttempted ? Date.now() - this.firstConnectionAttemptTimestampMs : 0;
  }
  hasPastReconnectDeadline() {
    return Date.now() - this.lastActiveTimestampMs >= this.reconnectTimeoutMs ? !0 : this.timeSpentReconnectingMs() >= this.reconnectTimeoutMs;
  }
  reset() {
    this.cancel(), this.shouldReconnect = !0, this.onlyRestartPeerConnection = !1, this.firstConnectionAttempted = !1, this.firstConnectionAttemptTimestampMs = 0, this.lastActiveTimestampMs = 1 / 0, this.backoffPolicy.reset();
  }
  startedConnectionAttempt(tv) {
    this._isFirstConnection = tv, this.firstConnectionAttempted || (this.firstConnectionAttempted = !0, this.firstConnectionAttemptTimestampMs = Date.now());
  }
  hasStartedConnectionAttempt() {
    return this.firstConnectionAttempted;
  }
  isFirstConnection() {
    return this._isFirstConnection;
  }
  disableReconnect() {
    this.shouldReconnect = !1;
  }
  enableRestartPeerConnection() {
    this.onlyRestartPeerConnection = !0;
  }
  cancel() {
    this.disableReconnect(), this.backoffTimer && (this.backoffTimer.stop(), this.backoffCancel && (this.backoffCancel(), this.backoffCancel = null));
  }
  retryWithBackoff(tv, ev) {
    const iv = this.shouldReconnect && !this.hasPastReconnectDeadline();
    return iv && (this.backoffCancel = ev, this.backoffTimer = new TimeoutScheduler_1.default(this.backoffPolicy.nextBackoffAmountMs()), this.backoffTimer.start(() => {
      this.backoffCancel = null, tv();
    })), iv;
  }
  shouldOnlyRestartPeerConnection() {
    return this.onlyRestartPeerConnection;
  }
  clone() {
    return new DefaultReconnectController(this.reconnectTimeoutMs, this.backoffPolicy);
  }
  setLastActiveTimestampMs(tv) {
    this.lastActiveTimestampMs = tv;
  }
}
DefaultReconnectController$1.default = DefaultReconnectController;
var DefaultWebSocketAdapter$1 = {};
Object.defineProperty(DefaultWebSocketAdapter$1, "__esModule", { value: !0 });
const Versioning_1$2 = Versioning$1, WebSocketReadyState_1$1 = WebSocketReadyState;
class DefaultWebSocketAdapter {
  constructor(tv) {
    this.logger = tv;
  }
  create(tv, ev, iv) {
    this.connection = new WebSocket(iv ? tv : Versioning_1$2.default.urlWithVersion(tv), ev), this.connection.binaryType = "arraybuffer";
  }
  send(tv) {
    if (!this.connection)
      return this.logger.error("WebSocket not yet created or already destroyed."), !1;
    try {
      return tv instanceof Uint8Array ? this.connection.send(tv.buffer) : this.connection.send(tv), !0;
    } catch (ev) {
      return this.logger.debug(() => `send error: ${ev.message}, websocket state=${WebSocketReadyState_1$1.default[this.readyState()]}`), !1;
    }
  }
  close(tv, ev) {
    var iv;
    (iv = this.connection) === null || iv === void 0 || iv.close(tv, ev);
  }
  destroy() {
    this.connection = void 0;
  }
  addEventListener(tv, ev) {
    if (!this.connection) {
      this.logger.warn("Cannot add event listener with no WebSocket connection.");
      return;
    }
    this.connection.addEventListener(tv, ev);
  }
  removeEventListener(tv, ev) {
    var iv;
    (iv = this.connection) === null || iv === void 0 || iv.removeEventListener(tv, ev);
  }
  readyState() {
    if (!this.connection)
      return WebSocketReadyState_1$1.default.None;
    switch (this.connection.readyState) {
      case WebSocket.CONNECTING:
        return WebSocketReadyState_1$1.default.Connecting;
      case WebSocket.OPEN:
        return WebSocketReadyState_1$1.default.Open;
      case WebSocket.CLOSING:
        return WebSocketReadyState_1$1.default.Closing;
      case WebSocket.CLOSED:
        return WebSocketReadyState_1$1.default.Closed;
    }
  }
}
DefaultWebSocketAdapter$1.default = DefaultWebSocketAdapter;
var hasRequiredDefaultMeetingSession;
function requireDefaultMeetingSession() {
  if (hasRequiredDefaultMeetingSession)
    return DefaultMeetingSession;
  hasRequiredDefaultMeetingSession = 1;
  var rv = commonjsGlobal && commonjsGlobal.__awaiter || function(_v, Ev, wv, xv) {
    function Cv(Av) {
      return Av instanceof wv ? Av : new wv(function(Ov) {
        Ov(Av);
      });
    }
    return new (wv || (wv = Promise))(function(Av, Ov) {
      function Lv(Vv) {
        try {
          Dv(xv.next(Vv));
        } catch (Gv) {
          Ov(Gv);
        }
      }
      function jv(Vv) {
        try {
          Dv(xv.throw(Vv));
        } catch (Gv) {
          Ov(Gv);
        }
      }
      function Dv(Vv) {
        Vv.done ? Av(Vv.value) : Cv(Vv.value).then(Lv, jv);
      }
      Dv((xv = xv.apply(_v, Ev || [])).next());
    });
  };
  Object.defineProperty(DefaultMeetingSession, "__esModule", { value: !0 });
  const tv = requireDefaultAudioVideoController(), ev = DefaultAudioVideoFacade$1, iv = FullJitterBackoff$1, ov = DefaultBrowserBehavior$1, av = ContentShareMediaStreamBroker$1, sv = DefaultContentShareController$1, lv = CSPMonitor$1, uv = Destroyable, cv = EventIngestionConfiguration$1, dv = DefaultMeetingEventReporter$1, hv = MeetingEventsClientConfiguration$1, pv = DefaultReconnectController$1, yv = DefaultWebSocketAdapter$1;
  let Sv = class {
    constructor(Ev, wv, xv, Cv) {
      this._configuration = Ev, this._logger = wv, this.checkBrowserSupportAndFeatureConfiguration(), lv.default.addLogger(this._logger), lv.default.register(), this.setupEventReporter(Ev, wv, Cv), this._deviceController = xv, this.audioVideoController = new tv.default(this._configuration, this._logger, new yv.default(this._logger), xv, new pv.default(this._configuration.reconnectTimeoutMs, new iv.default(this._configuration.reconnectFixedWaitMs, this._configuration.reconnectShortBackOffMs, this._configuration.reconnectLongBackOffMs)), this._eventReporter), xv.bindToAudioVideoController(this.audioVideoController);
      const Av = new av.default(this._logger);
      this.contentShareController = new sv.default(Av, new tv.default(sv.default.createContentShareMeetingSessionConfigure(this._configuration), this._logger, new yv.default(this._logger), Av, new pv.default(this._configuration.reconnectTimeoutMs, new iv.default(this._configuration.reconnectFixedWaitMs, this._configuration.reconnectShortBackOffMs, this._configuration.reconnectLongBackOffMs))), this.audioVideoController), this.audioVideoFacade = new ev.default(this.audioVideoController, this.audioVideoController.videoTileController, this.audioVideoController.realtimeController, this.audioVideoController.audioMixController, this._deviceController, this.contentShareController);
    }
    get configuration() {
      return this._configuration;
    }
    get logger() {
      return this._logger;
    }
    get audioVideo() {
      return this.audioVideoFacade;
    }
    get contentShare() {
      return this.contentShareController;
    }
    get deviceController() {
      return this._deviceController;
    }
    get eventReporter() {
      return this._eventReporter;
    }
    /**
     * Clean up this instance and resources that it created.
     *
     * After calling `destroy`, internal fields like `audioVideoController` will be unavailable.
     */
    destroy() {
      return rv(this, void 0, void 0, function* () {
        uv.isDestroyable(this.contentShareController) && (yield this.contentShareController.destroy()), uv.isDestroyable(this.audioVideoController) && (yield this.audioVideoController.destroy()), uv.isDestroyable(this.eventReporter) && (yield this.eventReporter.destroy()), lv.default.removeLogger(this._logger), this._logger = void 0, this._configuration = void 0, this._deviceController = void 0, this.audioVideoFacade = void 0, this.audioVideoController = void 0, this.contentShareController = void 0, this._eventReporter = void 0;
      });
    }
    setupEventReporter(Ev, wv, xv) {
      if (xv)
        this._eventReporter = xv;
      else {
        const Cv = Ev.urls.eventIngestionURL;
        if (Cv) {
          this.logger.info("Event ingestion URL is present in the configuration");
          const { meetingId: Av, credentials: { attendeeId: Ov, joinToken: Lv } } = Ev, jv = new hv.default(Av, Ov, Lv), Dv = new cv.default(jv, Cv);
          this._eventReporter = new dv.default(Dv, wv);
        }
      }
    }
    checkBrowserSupportAndFeatureConfiguration() {
      const Ev = new ov.default(), wv = `${Ev.name()} ${Ev.majorVersion()} (${Ev.version()})`;
      if (this.logger.info(`browser is ${wv}`), Ev.isSupported() || this.logger.warn(`this browser is not currently supported. Stability may suffer. Supported browsers are: ${Ev.supportString()}.`), Ev.hasChromiumWebRTC() && !this._configuration.enableUnifiedPlanForChromiumBasedBrowsers && this.logger.error("Plan B SDP has been deprecated on Chromium-based browsers. Overriding configured value of 'enableUnifiedPlanForChromiumBasedBrowsers' to be true"), this._configuration.videoUplinkBandwidthPolicy)
        if (this.isSimulcastUplinkPolicy(this._configuration.videoUplinkBandwidthPolicy)) {
          if (!Ev.hasChromiumWebRTC())
            throw new Error("Simulcast is only supported on Chromium-based browsers");
          this._configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = !0;
        } else
          this._configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = !1;
      this._configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers && (Ev.hasChromiumWebRTC() ? this.logger.info(`Simulcast is enabled for ${Ev.name()}`) : (this._configuration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers = !1, this.logger.info("Simulcast is only supported on Chromium-based browsers")));
    }
    isSimulcastUplinkPolicy(Ev) {
      return !!(Ev && Ev.addObserver);
    }
  };
  return DefaultMeetingSession.default = Sv, DefaultMeetingSession;
}
var DefaultMessagingSession$1 = {}, Message$1 = {};
Object.defineProperty(Message$1, "__esModule", { value: !0 });
class Message {
  constructor(tv, ev, iv) {
    this.type = tv, this.headers = ev, this.payload = iv;
  }
}
Message$1.default = Message;
var DefaultSigV4$1 = {};
Object.defineProperty(DefaultSigV4$1, "__esModule", { value: !0 });
const Versioning_1$1 = Versioning$1;
class DefaultSigV4 {
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
  constructor(tv, ev) {
    this.chimeClient = tv, this.awsClient = ev;
  }
  makeTwoDigits(tv) {
    return tv > 9 ? tv.toString() : "0" + tv.toString();
  }
  getDateTimeString() {
    const tv = /* @__PURE__ */ new Date();
    return tv.getUTCFullYear() + this.makeTwoDigits(tv.getUTCMonth() + 1) + this.makeTwoDigits(tv.getUTCDate()) + "T" + this.makeTwoDigits(tv.getUTCHours()) + this.makeTwoDigits(tv.getUTCMinutes()) + this.makeTwoDigits(tv.getUTCSeconds()) + "Z";
  }
  getDateString(tv) {
    return tv.substring(0, tv.indexOf("T"));
  }
  getSignatureKey(tv, ev, iv, ov) {
    const av = this.awsClient.util.crypto.hmac("AWS4" + tv, ev, "buffer"), sv = this.awsClient.util.crypto.hmac(av, iv, "buffer"), lv = this.awsClient.util.crypto.hmac(sv, ov, "buffer");
    return this.awsClient.util.crypto.hmac(lv, "aws4_request", "buffer");
  }
  signURL(tv, ev, iv, ov, av, sv, lv) {
    const uv = this.getDateTimeString(), cv = this.getDateString(uv), dv = "AWS4-HMAC-SHA256", hv = this.chimeClient.config.region, pv = "host", yv = "host:" + ov.toLowerCase() + `
`, Sv = cv + "/" + hv + "/" + iv + "/aws4_request", _v = this.chimeClient.config.credentials;
    let Ev = /* @__PURE__ */ new Map();
    Ev.set("X-Amz-Algorithm", [dv]), Ev.set("X-Amz-Credential", [
      encodeURIComponent(_v.accessKeyId + "/" + Sv)
    ]), Ev.set("X-Amz-Date", [uv]), Ev.set("X-Amz-Expires", ["10"]), Ev.set("X-Amz-SignedHeaders", ["host"]), _v.sessionToken && Ev.set("X-Amz-Security-Token", [encodeURIComponent(_v.sessionToken)]), Ev.set(Versioning_1$1.default.X_AMZN_VERSION, [encodeURIComponent(Versioning_1$1.default.sdkVersion)]), Ev.set(Versioning_1$1.default.X_AMZN_USER_AGENT, [
      encodeURIComponent(Versioning_1$1.default.sdkUserAgentLowResolution)
    ]), lv == null || lv.forEach((Dv, Vv) => {
      const Gv = encodeURIComponent(Vv);
      Dv.sort().forEach((Yv) => {
        Ev.has(Gv) || Ev.set(Gv, []), Ev.get(Gv).push(encodeURIComponent(Yv));
      });
    });
    let wv = "";
    Ev = new Map([...Ev.entries()].sort()), Ev.forEach((Dv, Vv) => {
      Dv.forEach((Gv) => {
        wv.length && (wv += "&"), wv += Vv + "=" + Gv;
      });
    });
    const xv = tv + `
` + av + `
` + wv + `
` + yv + `
` + pv + `
` + this.awsClient.util.crypto.sha256(sv, "hex"), Cv = this.awsClient.util.crypto.sha256(xv, "hex"), Av = `AWS4-HMAC-SHA256
` + uv + `
` + cv + "/" + hv + "/" + iv + `/aws4_request
` + Cv, Ov = this.getSignatureKey(_v.secretAccessKey, cv, hv, iv), Lv = this.awsClient.util.crypto.hmac(Ov, Av, "hex"), jv = wv + "&X-Amz-Signature=" + Lv;
    return ev + "://" + ov + av + "?" + jv;
  }
}
DefaultSigV4$1.default = DefaultSigV4;
var __awaiter$c = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultMessagingSession$1, "__esModule", { value: !0 });
const FullJitterBackoff_1$2 = FullJitterBackoff$1, CSPMonitor_1 = CSPMonitor$1, Message_1 = Message$1, DefaultReconnectController_1 = DefaultReconnectController$1, AsyncScheduler_1 = AsyncScheduler$1, DefaultSigV4_1 = DefaultSigV4$1, DefaultWebSocketAdapter_1 = DefaultWebSocketAdapter$1, WebSocketReadyState_1 = WebSocketReadyState;
class DefaultMessagingSession {
  constructor(tv, ev, iv, ov, av) {
    this.configuration = tv, this.logger = ev, this.webSocket = iv, this.reconnectController = ov, this.sigV4 = av, this.observerQueue = /* @__PURE__ */ new Set(), this.webSocket || (this.webSocket = new DefaultWebSocketAdapter_1.default(this.logger)), this.reconnectController || (this.reconnectController = new DefaultReconnectController_1.default(tv.reconnectTimeoutMs, new FullJitterBackoff_1$2.default(tv.reconnectFixedWaitMs, tv.reconnectShortBackoffMs, tv.reconnectLongBackoffMs))), this.sigV4 || (this.sigV4 = new DefaultSigV4_1.default(this.configuration.chimeClient, this.configuration.awsClient)), CSPMonitor_1.default.addLogger(this.logger), CSPMonitor_1.default.register();
  }
  addObserver(tv) {
    this.logger.info("adding messaging observer"), this.observerQueue.add(tv);
  }
  removeObserver(tv) {
    this.logger.info("removing messaging observer"), this.observerQueue.delete(tv);
  }
  start() {
    this.isClosed() ? this.startConnecting(!1) : this.logger.info("messaging session already started");
  }
  stop() {
    this.isClosed() ? this.logger.info("no existing messaging session needs closing") : (this.isClosing = !0, this.webSocket.close(), CSPMonitor_1.default.removeLogger(this.logger));
  }
  forEachObserver(tv) {
    for (const ev of this.observerQueue)
      AsyncScheduler_1.default.nextTick(() => {
        this.observerQueue.has(ev) && tv(ev);
      });
  }
  setUpEventListeners() {
    this.webSocket.addEventListener("open", () => {
      this.openEventHandler();
    }), this.webSocket.addEventListener("message", (tv) => {
      this.receiveMessageHandler(tv.data);
    }), this.webSocket.addEventListener("close", (tv) => {
      this.closeEventHandler(tv);
    }), this.webSocket.addEventListener("error", () => {
      this.logger.error("WebSocket error");
    });
  }
  startConnecting(tv) {
    const ev = this.prepareWebSocketUrl();
    this.logger.info(`opening connection to ${ev}`), tv || this.reconnectController.reset(), this.reconnectController.hasStartedConnectionAttempt() ? this.reconnectController.startedConnectionAttempt(!1) : this.reconnectController.startedConnectionAttempt(!0), this.webSocket.create(ev, [], !0), this.forEachObserver((iv) => {
      iv.messagingSessionDidStartConnecting && iv.messagingSessionDidStartConnecting(tv);
    }), this.setUpEventListeners();
  }
  prepareWebSocketUrl() {
    const tv = /* @__PURE__ */ new Map();
    return tv.set("userArn", [this.configuration.userArn]), tv.set("sessionId", [this.configuration.messagingSessionId]), this.sigV4.signURL("GET", "wss", "chime", this.configuration.endpointUrl, "/connect", "", tv);
  }
  isClosed() {
    return this.webSocket.readyState() === WebSocketReadyState_1.default.None || this.webSocket.readyState() === WebSocketReadyState_1.default.Closed;
  }
  openEventHandler() {
    this.reconnectController.reset(), this.isSessionEstablished = !1;
  }
  receiveMessageHandler(tv) {
    try {
      const ev = JSON.parse(tv), iv = ev.Headers["x-amz-chime-event-type"], ov = new Message_1.default(iv, ev.Headers, ev.Payload || null);
      if (!this.isSessionEstablished && iv === "SESSION_ESTABLISHED")
        this.forEachObserver((av) => {
          av.messagingSessionDidStart && av.messagingSessionDidStart();
        }), this.isSessionEstablished = !0;
      else if (!this.isSessionEstablished)
        return;
      this.forEachObserver((av) => {
        av.messagingSessionDidReceiveMessage && av.messagingSessionDidReceiveMessage(ov);
      });
    } catch (ev) {
      this.logger.error(`Messaging parsing failed: ${ev}`);
    }
  }
  closeEventHandler(tv) {
    this.logger.info(`WebSocket close: ${tv.code} ${tv.reason}`), this.webSocket.destroy(), !(!this.isClosing && this.canReconnect(tv.code) && this.reconnectController.retryWithBackoff(() => __awaiter$c(this, void 0, void 0, function* () {
      this.startConnecting(!0);
    }), null)) && (this.isClosing = !1, this.isSessionEstablished && this.forEachObserver((ev) => {
      ev.messagingSessionDidStop && ev.messagingSessionDidStop(tv);
    }));
  }
  canReconnect(tv) {
    return tv === 1001 || tv === 1006 || tv >= 1011 && tv <= 1014 || tv > 4e3 && tv !== 4002 && tv !== 4003 && tv !== 4401;
  }
}
DefaultMessagingSession$1.default = DefaultMessagingSession;
var DefaultVideoFrameProcessorPipeline$1 = {}, __awaiter$b = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultVideoFrameProcessorPipeline$1, "__esModule", { value: !0 });
const CanvasVideoFrameBuffer_1 = CanvasVideoFrameBuffer$1, DEFAULT_FRAMERATE = 15;
class DefaultVideoFrameProcessorPipeline {
  constructor(tv, ev) {
    this.logger = tv, this.stages = ev, this.fr = DEFAULT_FRAMERATE, this.outputMediaStream = new MediaStream(), this.videoInput = document.createElement("video"), this.canvasOutput = document.createElement("canvas"), this.outputCtx = this.canvasOutput.getContext("2d"), this.canvasInput = document.createElement("canvas"), this.inputCtx = this.canvasInput.getContext("2d"), this.inputVideoStream = null, this.sourceBuffers = [], this.destBuffers = [], this.observers = /* @__PURE__ */ new Set(), this.hasStarted = !1, this.process = (iv) => __awaiter$b(this, void 0, void 0, function* () {
      if (!this.inputVideoStream)
        return;
      const ov = performance.now();
      this.videoInput.videoWidth && (this.canvasInput.width !== this.videoInput.videoWidth && (this.canvasInput.width = this.videoInput.videoWidth, this.canvasInput.height = this.videoInput.videoHeight, this.sourceBuffers[0].height = this.canvasInput.height, this.sourceBuffers[0].width = this.canvasInput.width, this.sourceBuffers[0].framerate = this.framerate), this.inputCtx.drawImage(this.videoInput, 0, 0));
      let av = [];
      av.push(this.sourceBuffers[0]);
      try {
        for (const pv of this.processors)
          av = yield pv.process(av);
      } catch {
        this.forEachObserver((yv) => {
          yv.processingDidFailToStart && yv.processingDidFailToStart();
        });
        return;
      }
      this.destBuffers = av;
      let sv;
      try {
        sv = yield this.destBuffers[0].asCanvasImageSource();
      } catch {
        this.inputVideoStream && (this.logger.info("buffers are destroyed and pipeline could not start"), this.forEachObserver((yv) => {
          yv.processingDidFailToStart && yv.processingDidFailToStart();
        }));
        return;
      }
      const lv = sv.width, uv = sv.height;
      lv !== 0 && uv !== 0 && (this.canvasOutput.width !== lv && this.canvasOutput.height !== uv && (this.canvasOutput.width = lv, this.canvasOutput.height = uv), this.outputCtx.drawImage(sv, 0, 0, lv, uv, 0, 0, lv, uv), this.hasStarted || (this.hasStarted = !0, this.forEachObserver((pv) => {
        pv.processingDidStart && pv.processingDidStart();
      })));
      const cv = performance.now() - ov, dv = 1e3 * 2 / this.framerate - cv, hv = Math.max(0, 1e3 / this.framerate - cv);
      dv <= 0 && this.forEachObserver((pv) => {
        pv.processingLatencyTooHigh && pv.processingLatencyTooHigh(cv);
      }), this.lastTimeOut = setTimeout(this.process, hv);
    });
  }
  destroy() {
    if (this.stop(), this.stages)
      for (const tv of this.stages)
        tv.destroy();
  }
  get framerate() {
    return this.fr;
  }
  // A negative framerate will cause `captureStream` to throw `NotSupportedError`.
  // The setter prevents this by switching to the default framerate if less than 0.
  set framerate(tv) {
    this.fr = tv < 0 ? DEFAULT_FRAMERATE : tv;
  }
  stop() {
    if (this.videoInput.removeEventListener("loadedmetadata", this.process), this.videoInput.srcObject = null, this.destroyInputMediaStreamAndBuffers(), this.outputMediaStream)
      for (const tv of this.outputMediaStream.getVideoTracks())
        tv.stop();
    this.lastTimeOut && (clearTimeout(this.lastTimeOut), this.lastTimeOut = void 0), this.hasStarted && (this.hasStarted = !1, this.forEachObserver((tv) => {
      tv.processingDidStop && tv.processingDidStop();
    }));
  }
  addObserver(tv) {
    this.observers.add(tv);
  }
  removeObserver(tv) {
    this.observers.delete(tv);
  }
  getInputMediaStream() {
    return __awaiter$b(this, void 0, void 0, function* () {
      return this.inputVideoStream;
    });
  }
  getActiveOutputMediaStream() {
    return this.outputMediaStream && this.outputMediaStream.active ? this.outputMediaStream : this.outputMediaStream = this.canvasOutput.captureStream(this.framerate);
  }
  /**
   * `inputMediaStream` is by default used to construct one {@link CanvasVideoFrameBuffer}
   * The buffer will be fed into the first {@link VideoFrameProcessor}.
   */
  setInputMediaStream(tv) {
    return __awaiter$b(this, void 0, void 0, function* () {
      if (!tv) {
        this.stop();
        return;
      }
      if (tv.getVideoTracks().length === 0) {
        this.logger.error("No video tracks in input media stream, ignoring");
        return;
      }
      this.inputVideoStream = tv;
      const ev = this.inputVideoStream.getVideoTracks()[0].getSettings();
      this.logger.info(`processing pipeline input stream settings ${JSON.stringify(ev)}`), this.canvasOutput.width = ev.width, this.canvasOutput.height = ev.height, this.videoInput.addEventListener("loadedmetadata", this.process), this.videoInput.srcObject = this.inputVideoStream, this.videoInput.setAttribute("playsinline", "true");
      const iv = new CanvasVideoFrameBuffer_1.default(this.canvasInput);
      this.sourceBuffers.push(iv), this.videoInput.load();
      try {
        yield this.videoInput.play();
      } catch {
        this.logger.warn("Video element play() overrided by another load().");
      }
    });
  }
  set processors(tv) {
    this.stages = tv;
  }
  get processors() {
    return this.stages;
  }
  forEachObserver(tv) {
    for (const ev of this.observers)
      setTimeout(() => {
        tv(ev);
      }, 0);
  }
  destroyInputMediaStreamAndBuffers() {
    if (this.inputVideoStream)
      for (const tv of this.inputVideoStream.getTracks())
        tv.stop();
    this.inputVideoStream = null;
    for (const tv of this.sourceBuffers)
      tv.destroy();
    this.sourceBuffers = [];
  }
}
DefaultVideoFrameProcessorPipeline$1.default = DefaultVideoFrameProcessorPipeline;
var DefaultVideoTransformDevice$1 = {}, __awaiter$a = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(DefaultVideoTransformDevice$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1$1 = DefaultBrowserBehavior$1, DefaultVideoFrameProcessorPipeline_1 = DefaultVideoFrameProcessorPipeline$1;
class DefaultVideoTransformDevice {
  constructor(tv, ev, iv, ov = new DefaultBrowserBehavior_1$1.default()) {
    this.logger = tv, this.device = ev, this.processors = iv, this.browserBehavior = ov, this.observers = /* @__PURE__ */ new Set(), this.pipe = new DefaultVideoFrameProcessorPipeline_1.default(this.logger, this.processors), this.pipe.addObserver(this);
  }
  /**
   * getter for `outputMediaStream`.
   * `outputMediaStream` is returned by internal {@link VideoFrameProcessorPipeline}.
   * It is possible, but unlikely, that this accessor will throw.
   */
  get outputMediaStream() {
    return this.pipe.outputMediaStream;
  }
  /**
   * `chooseNewInnerDevice` preserves the inner pipeline and processing state and switches
   * the inner device. Since the pipeline and processors are shared with the new transform device
   * only one transform device can be used.
   */
  chooseNewInnerDevice(tv) {
    const ev = new DefaultVideoTransformDevice(this.logger, tv, this.processors, this.browserBehavior);
    return ev.pipe = this.pipe, ev;
  }
  /**
   * Return the inner device as provided during construction.
   */
  getInnerDevice() {
    return this.device;
  }
  intrinsicDevice() {
    return __awaiter$a(this, void 0, void 0, function* () {
      const tv = {};
      return this.device ? typeof this.device == "string" ? (this.browserBehavior.requiresNoExactMediaStreamConstraints() ? tv.deviceId = this.device : tv.deviceId = { exact: this.device }, tv) : this.device.id ? this.device : Object.assign(Object.assign({}, this.device), tv) : tv;
    });
  }
  /**
   * Create {@link VideoFrameProcessorPipeline} if there is not a existing one and start video processors.
   * Returns output `MediaStream` produced by {@link VideoFrameProcessorPipeline}.
   */
  transformStream(tv) {
    return __awaiter$a(this, void 0, void 0, function* () {
      return yield this.pipe.setInputMediaStream(tv), this.inputMediaStream = tv, this.pipe.getActiveOutputMediaStream();
    });
  }
  /**
   * onOutputStreamDisconnect is called when device controller wants to detach
   * the transform device. The default behavior is to stop the output
   * media stream and release the input the media stream. If the input media stream
   * is the provided device, it will not be released.
   */
  onOutputStreamDisconnect() {
    this.logger.info("DefaultVideoTransformDevice: detach stopping input media stream");
    const tv = this.device && this.device.id;
    if (this.pipe.stop(), !tv && this.inputMediaStream)
      for (const ev of this.inputMediaStream.getVideoTracks())
        ev.stop();
  }
  /**
   * Dispose of the inner workings of the transform device, including pipeline and processors.
   * `stop` can only be called when the transform device is not used by device controller anymore.
   * After `stop` is called, all transform devices which share the pipeline must be discarded.
   */
  stop() {
    return __awaiter$a(this, void 0, void 0, function* () {
      if (this.inputMediaStream)
        for (const tv of this.inputMediaStream.getVideoTracks())
          tv.stop();
      this.pipe.destroy(), this.inputMediaStream = null;
    });
  }
  /**
   * Add an observer to receive notifications about lifecycle events.
   * See {@link DefaultVideoTransformDeviceObserver} for details.
   * If the observer has already been added, this method call has no effect.
   */
  addObserver(tv) {
    this.observers.add(tv);
  }
  /**
   * Remove an existing observer. If the observer has not been previously. this method call has no effect.
   */
  removeObserver(tv) {
    this.observers.delete(tv);
  }
  processingDidStart() {
    this.logger.info("video transform device processing started"), this.forEachObserver((tv) => {
      tv.processingDidStart && tv.processingDidStart();
    });
  }
  processingLatencyTooHigh(tv) {
    this.forEachObserver((ev) => {
      ev.processingLatencyTooHigh && ev.processingLatencyTooHigh(tv);
    });
  }
  processingDidFailToStart() {
    this.logger.info("video transform device processing failed to start"), this.forEachObserver((tv) => {
      tv.processingDidFailToStart && tv.processingDidFailToStart();
    });
  }
  processingDidStop() {
    this.logger.info("video transform device processing stopped"), this.forEachObserver((tv) => {
      tv.processingDidStop && tv.processingDidStop();
    });
  }
  forEachObserver(tv) {
    for (const ev of this.observers)
      setTimeout(() => {
        tv(ev);
      }, 0);
  }
}
DefaultVideoTransformDevice$1.default = DefaultVideoTransformDevice;
var FullJitterBackoffFactory$1 = {}, FullJitterLimitedBackoff$1 = {};
Object.defineProperty(FullJitterLimitedBackoff$1, "__esModule", { value: !0 });
const FullJitterBackoff_1$1 = FullJitterBackoff$1;
class FullJitterLimitedBackoff extends FullJitterBackoff_1$1.default {
  constructor(tv, ev, iv, ov) {
    super(tv, ev, iv), this.limit = ov, this.attempts = 0;
  }
  nextBackoffAmountMs() {
    if (this.attempts++, this.attempts > this.limit)
      throw new Error("retry limit exceeded");
    return super.nextBackoffAmountMs();
  }
}
FullJitterLimitedBackoff$1.default = FullJitterLimitedBackoff;
Object.defineProperty(FullJitterBackoffFactory$1, "__esModule", { value: !0 });
const FullJitterBackoff_1 = FullJitterBackoff$1, FullJitterLimitedBackoff_1 = FullJitterLimitedBackoff$1;
class FullJitterBackoffFactory {
  constructor(tv, ev, iv) {
    this.fixedWaitMs = tv, this.shortBackoffMs = ev, this.longBackoffMs = iv;
  }
  create() {
    return new FullJitterBackoff_1.default(this.fixedWaitMs, this.shortBackoffMs, this.longBackoffMs);
  }
  createWithLimit(tv) {
    return new FullJitterLimitedBackoff_1.default(this.fixedWaitMs, this.shortBackoffMs, this.longBackoffMs, tv);
  }
}
FullJitterBackoffFactory$1.default = FullJitterBackoffFactory;
var Log$1 = {};
Object.defineProperty(Log$1, "__esModule", { value: !0 });
class Log {
  constructor(tv, ev, iv, ov) {
    this.sequenceNumber = tv, this.message = ev, this.timestampMs = iv, this.logLevel = ov;
  }
}
Log$1.default = Log;
var MeetingSessionPOSTLogger$1 = {}, __awaiter$9 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(MeetingSessionPOSTLogger$1, "__esModule", { value: !0 });
const LogLevel_1$3 = LogLevel, IntervalScheduler_1 = IntervalScheduler$1, Log_1 = Log$1;
class MeetingSessionPOSTLogger {
  constructor(tv, ev, iv, ov, av, sv = LogLevel_1$3.default.WARN, lv) {
    this.name = tv, this.configuration = ev, this.batchSize = iv, this.intervalMs = ov, this.url = av, this.level = sv, this.headers = lv, this.logCapture = [], this.sequenceNumber = 0, this.lock = !1, this.startLogPublishScheduler(this.batchSize), this.eventListener = () => {
      this.stop();
    }, this.addEventListener();
  }
  addEventListener() {
    !this.eventListener || !("window" in commonjsGlobal) || !window.addEventListener || window.addEventListener("unload", this.eventListener);
  }
  removeEventListener() {
    !this.eventListener || !("window" in commonjsGlobal) || !window.removeEventListener || window.removeEventListener("unload", this.eventListener);
  }
  debug(tv) {
    LogLevel_1$3.default.DEBUG < this.level || (typeof tv == "string" ? this.log(LogLevel_1$3.default.DEBUG, tv) : tv ? this.log(LogLevel_1$3.default.DEBUG, tv()) : this.log(LogLevel_1$3.default.DEBUG, "" + tv));
  }
  info(tv) {
    this.log(LogLevel_1$3.default.INFO, tv);
  }
  warn(tv) {
    this.log(LogLevel_1$3.default.WARN, tv);
  }
  error(tv) {
    this.log(LogLevel_1$3.default.ERROR, tv);
  }
  setLogLevel(tv) {
    this.level = tv;
  }
  getLogLevel() {
    return this.level;
  }
  getLogCaptureSize() {
    return this.logCapture.length;
  }
  startLogPublishScheduler(tv) {
    var ev;
    this.addEventListener(), (ev = this.intervalScheduler) === null || ev === void 0 || ev.stop(), this.intervalScheduler = new IntervalScheduler_1.default(this.intervalMs), this.intervalScheduler.start(() => __awaiter$9(this, void 0, void 0, function* () {
      if (this.lock === !0 || this.getLogCaptureSize() === 0)
        return;
      this.lock = !0;
      const iv = this.logCapture.slice(0, tv), ov = this.makeRequestBody(iv);
      try {
        (yield fetch(this.url, Object.assign({ method: "POST", body: ov }, this.headers ? {
          headers: this.headers
        } : {}))).status === 200 && (this.logCapture = this.logCapture.slice(iv.length));
      } catch (av) {
        console.warn("[MeetingSessionPOSTLogger] " + av.message);
      } finally {
        this.lock = !1;
      }
    }));
  }
  stop() {
    var tv;
    (tv = this.intervalScheduler) === null || tv === void 0 || tv.stop(), this.intervalScheduler = void 0, this.removeEventListener();
    const ev = this.makeRequestBody(this.logCapture);
    navigator.sendBeacon(this.url, ev);
  }
  /**
   * Permanently clean up the logger. A new logger must be created to
   * resume logging.
   */
  destroy() {
    var tv;
    return __awaiter$9(this, void 0, void 0, function* () {
      (tv = this.intervalScheduler) === null || tv === void 0 || tv.stop(), this.intervalScheduler = void 0, this.removeEventListener(), this.configuration = void 0, this.logCapture = [];
    });
  }
  makeRequestBody(tv) {
    return JSON.stringify({
      meetingId: this.configuration.meetingId,
      attendeeId: this.configuration.credentials.attendeeId,
      appName: this.name,
      logs: tv
    });
  }
  log(tv, ev) {
    if (tv < this.level)
      return;
    const iv = Date.now();
    this.logCapture.push(new Log_1.default(this.sequenceNumber, ev, iv, LogLevel_1$3.default[tv])), this.sequenceNumber += 1;
  }
}
MeetingSessionPOSTLogger$1.default = MeetingSessionPOSTLogger;
var MessagingSessionConfiguration$1 = {};
Object.defineProperty(MessagingSessionConfiguration$1, "__esModule", { value: !0 });
class MessagingSessionConfiguration {
  /**
   * Constructs a MessagingSessionConfiguration optionally with userArn, messaging session id, a messaging session
   * endpoint URL, the chimeClient, and the AWSClient.
   * The messaging session id is to uniquely identify this messaging session for the userArn.
   * If messaging session id is passed in as null, it will be automatically generated.
   */
  constructor(tv, ev, iv, ov, av) {
    this.userArn = tv, this.messagingSessionId = ev, this.endpointUrl = iv, this.chimeClient = ov, this.awsClient = av, this.reconnectTimeoutMs = 10 * 1e3, this.reconnectFixedWaitMs = 0, this.reconnectShortBackoffMs = 1 * 1e3, this.reconnectLongBackoffMs = 5 * 1e3, this.messagingSessionId || (this.messagingSessionId = this.generateSessionId());
  }
  generateSessionId() {
    const tv = new Uint32Array(1);
    return window.crypto.getRandomValues(tv)[0].toString();
  }
}
MessagingSessionConfiguration$1.default = MessagingSessionConfiguration;
var MultiLogger$1 = {};
Object.defineProperty(MultiLogger$1, "__esModule", { value: !0 });
const LogLevel_1$2 = LogLevel;
class MultiLogger {
  constructor(...tv) {
    this._loggers = tv;
  }
  info(tv) {
    for (const ev of this._loggers)
      ev.info(tv);
  }
  warn(tv) {
    for (const ev of this._loggers)
      ev.warn(tv);
  }
  error(tv) {
    for (const ev of this._loggers)
      ev.error(tv);
  }
  debug(tv) {
    let ev, iv;
    typeof tv == "string" ? iv = tv : tv ? iv = () => (ev || (ev = tv()), ev) : iv = "" + tv;
    for (const ov of this._loggers)
      ov.debug(iv);
  }
  setLogLevel(tv) {
    for (const ev of this._loggers)
      ev.setLogLevel(tv);
  }
  getLogLevel() {
    for (const tv of this._loggers)
      return tv.getLogLevel();
    return LogLevel_1$2.default.OFF;
  }
}
MultiLogger$1.default = MultiLogger;
var NoOpAudioVideoController = {}, NoOpDebugLogger$1 = {}, NoOpLogger$1 = {};
Object.defineProperty(NoOpLogger$1, "__esModule", { value: !0 });
const LogLevel_1$1 = LogLevel;
class NoOpLogger {
  constructor(tv = LogLevel_1$1.default.OFF) {
    this.level = tv;
  }
  info(tv) {
  }
  warn(tv) {
  }
  error(tv) {
  }
  debug(tv) {
    LogLevel_1$1.default.DEBUG < this.level || typeof tv != "string" && tv();
  }
  setLogLevel(tv) {
    this.level = tv;
  }
  getLogLevel() {
    return this.level;
  }
}
NoOpLogger$1.default = NoOpLogger;
Object.defineProperty(NoOpDebugLogger$1, "__esModule", { value: !0 });
const LogLevel_1 = LogLevel, NoOpLogger_1 = NoOpLogger$1;
class NoOpDebugLogger extends NoOpLogger_1.default {
  constructor() {
    super(LogLevel_1.default.DEBUG);
  }
}
NoOpDebugLogger$1.default = NoOpDebugLogger;
var NoOpMediaStreamBroker$1 = {};
Object.defineProperty(NoOpMediaStreamBroker$1, "__esModule", { value: !0 });
class NoOpMediaStreamBroker {
  acquireAudioInputStream() {
    return Promise.reject();
  }
  acquireVideoInputStream() {
    return Promise.reject();
  }
  acquireDisplayInputStream(tv) {
    return Promise.reject();
  }
  releaseMediaStream(tv) {
  }
  bindToAudioVideoController(tv) {
  }
}
NoOpMediaStreamBroker$1.default = NoOpMediaStreamBroker;
var hasRequiredNoOpAudioVideoController;
function requireNoOpAudioVideoController() {
  if (hasRequiredNoOpAudioVideoController)
    return NoOpAudioVideoController;
  hasRequiredNoOpAudioVideoController = 1, Object.defineProperty(NoOpAudioVideoController, "__esModule", { value: !0 });
  const rv = FullJitterBackoff$1, tv = NoOpDebugLogger$1, ev = NoOpMediaStreamBroker$1, iv = MeetingSessionConfiguration$1, ov = MeetingSessionCredentials$1, av = MeetingSessionStatus$1, sv = MeetingSessionStatusCode, lv = MeetingSessionURLs$1, uv = DefaultReconnectController$1, cv = DefaultWebSocketAdapter$1, dv = requireDefaultAudioVideoController();
  let hv = class extends dv.default {
    constructor(yv) {
      const Sv = new iv.default();
      Sv.meetingId = "", Sv.externalMeetingId = "", Sv.credentials = new ov.default(), Sv.credentials.attendeeId = "", Sv.credentials.joinToken = "", Sv.urls = new lv.default(), Sv.urls.turnControlURL = "", Sv.urls.audioHostURL = "", Sv.urls.screenViewingURL = "", Sv.urls.screenDataURL = "", Sv.urls.screenSharingURL = "wss://localhost/", Sv.urls.signalingURL = "wss://localhost/", super(yv || Sv, new tv.default(), new cv.default(new tv.default()), new ev.default(), new uv.default(0, new rv.default(0, 0, 0)));
    }
    setAudioProfile(yv) {
    }
    start() {
    }
    stop() {
    }
    promoteToPrimaryMeeting(yv) {
      return Promise.resolve(new av.default(sv.default.OK));
    }
    demoteFromPrimaryMeeting() {
    }
  };
  return NoOpAudioVideoController.default = hv, NoOpAudioVideoController;
}
var NoOpDeviceController$1 = {}, __awaiter$8 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(NoOpDeviceController$1, "__esModule", { value: !0 });
NoOpDeviceController$1.DestroyableNoOpDeviceController = void 0;
const NoOpMediaStreamBroker_1 = NoOpMediaStreamBroker$1;
class NoOpDeviceController extends NoOpMediaStreamBroker_1.default {
  constructor(tv) {
    super();
  }
  listAudioInputDevices() {
    return Promise.resolve([]);
  }
  listVideoInputDevices() {
    return Promise.resolve([]);
  }
  listAudioOutputDevices() {
    return Promise.resolve([]);
  }
  chooseAudioInputDevice(tv) {
    return Promise.reject();
  }
  chooseVideoInputDevice(tv) {
    return Promise.reject();
  }
  chooseAudioOutputDevice(tv) {
    return Promise.reject();
  }
  addDeviceChangeObserver(tv) {
  }
  removeDeviceChangeObserver(tv) {
  }
  createAnalyserNodeForAudioInput() {
    return null;
  }
  startVideoPreviewForVideoInput(tv) {
  }
  stopVideoPreviewForVideoInput(tv) {
  }
  setDeviceLabelTrigger(tv) {
  }
  mixIntoAudioInput(tv) {
    return null;
  }
  chooseVideoInputQuality(tv, ev, iv, ov) {
  }
  getVideoInputQualitySettings() {
    return null;
  }
}
NoOpDeviceController$1.default = NoOpDeviceController;
class DestroyableNoOpDeviceController extends NoOpDeviceController {
  constructor() {
    super(...arguments), this.destroyed = !1;
  }
  destroy() {
    return __awaiter$8(this, void 0, void 0, function* () {
      this.destroyed = !0;
    });
  }
}
NoOpDeviceController$1.DestroyableNoOpDeviceController = DestroyableNoOpDeviceController;
var NoOpEventReporter$1 = {};
Object.defineProperty(NoOpEventReporter$1, "__esModule", { value: !0 });
class NoOpEventReporter {
  constructor() {
  }
  reportEvent(tv, ev, iv) {
  }
  start() {
  }
  stop() {
  }
}
NoOpEventReporter$1.default = NoOpEventReporter;
var NoOpTask$1 = {};
Object.defineProperty(NoOpTask$1, "__esModule", { value: !0 });
class NoOpTask {
  cancel() {
  }
  name() {
    return "NoOpTask";
  }
  run() {
    return Promise.resolve();
  }
  setParent(tv) {
  }
}
NoOpTask$1.default = NoOpTask;
var NoOpVideoElementFactory$1 = {};
Object.defineProperty(NoOpVideoElementFactory$1, "__esModule", { value: !0 });
class NoOpVideoElementFactory {
  create() {
    return {
      clientWidth: 400,
      clientHeight: 300,
      width: 400,
      height: 300,
      videoWidth: 400,
      videoHeight: 300,
      style: {
        transform: ""
      },
      hasAttribute: () => !1,
      removeAttribute: () => {
      },
      setAttribute: () => {
      },
      srcObject: !1,
      pause: () => {
      },
      play: () => Promise.resolve()
    };
  }
}
NoOpVideoElementFactory$1.default = NoOpVideoElementFactory;
var NoVideoDownlinkBandwidthPolicy$1 = {};
Object.defineProperty(NoVideoDownlinkBandwidthPolicy$1, "__esModule", { value: !0 });
const DefaultVideoStreamIdSet_1 = DefaultVideoStreamIdSet$1;
class NoVideoDownlinkBandwidthPolicy {
  reset() {
  }
  updateIndex(tv) {
  }
  updateMetrics(tv) {
  }
  wantsResubscribe() {
    return !1;
  }
  chooseSubscriptions() {
    return new DefaultVideoStreamIdSet_1.default();
  }
}
NoVideoDownlinkBandwidthPolicy$1.default = NoVideoDownlinkBandwidthPolicy;
var NoVideoUplinkBandwidthPolicy$1 = {};
Object.defineProperty(NoVideoUplinkBandwidthPolicy$1, "__esModule", { value: !0 });
const DefaultVideoCaptureAndEncodeParameter_1 = DefaultVideoCaptureAndEncodeParameter$1;
class NoVideoUplinkBandwidthPolicy {
  constructor() {
  }
  updateConnectionMetric(tv) {
  }
  chooseMediaTrackConstraints() {
    return {};
  }
  chooseEncodingParameters() {
    return /* @__PURE__ */ new Map();
  }
  updateIndex(tv) {
  }
  wantsResubscribe() {
    return !1;
  }
  chooseCaptureAndEncodeParameters() {
    return new DefaultVideoCaptureAndEncodeParameter_1.default(0, 0, 0, 0, !1);
  }
  maxBandwidthKbps() {
    return 0;
  }
  setIdealMaxBandwidthKbps(tv) {
  }
  setHasBandwidthPriority(tv) {
  }
}
NoVideoUplinkBandwidthPolicy$1.default = NoVideoUplinkBandwidthPolicy;
var RealtimeAttendeePositionInFrame$1 = {};
Object.defineProperty(RealtimeAttendeePositionInFrame$1, "__esModule", { value: !0 });
class RealtimeAttendeePositionInFrame {
  constructor() {
    this.attendeeIndex = null, this.attendeesInFrame = null;
  }
}
RealtimeAttendeePositionInFrame$1.default = RealtimeAttendeePositionInFrame;
var RunnableTask$1 = {};
Object.defineProperty(RunnableTask$1, "__esModule", { value: !0 });
const BaseTask_1 = BaseTask$1;
class RunnableTask extends BaseTask_1.default {
  constructor(tv, ev, iv = "RunnableTask") {
    super(tv), this.fn = ev, this.taskName = iv;
  }
  run() {
    return this.fn().then(() => {
    });
  }
}
RunnableTask$1.default = RunnableTask;
var SingleNodeAudioTransformDevice$1 = {}, __awaiter$7 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(SingleNodeAudioTransformDevice$1, "__esModule", { value: !0 });
class SingleNodeAudioTransformDevice {
  constructor(tv) {
    this.inner = tv;
  }
  mute(tv) {
    return __awaiter$7(this, void 0, void 0, function* () {
    });
  }
  /**
   * `stop` should be called by the application to free any resources associated
   * with the device (e.g., workers).
   *
   * After this is called, the device should be discarded.
   */
  stop() {
    var tv;
    return __awaiter$7(this, void 0, void 0, function* () {
      (tv = this.node) === null || tv === void 0 || tv.disconnect();
    });
  }
  /**
   * Return the inner {@link Device} that the device controller should select as part
   * of the application of this `AudioTransformDevice`.
   */
  intrinsicDevice() {
    return __awaiter$7(this, void 0, void 0, function* () {
      return this.inner;
    });
  }
  /**
   * Optionally return a pair of `AudioNode`s that should be connected to the applied inner
   * device. The two nodes can be the same, indicating the smallest possible subgraph.
   *
   * @param context The `AudioContext` to use when instantiating the nodes.
   */
  createAudioNode(tv) {
    var ev;
    return __awaiter$7(this, void 0, void 0, function* () {
      return (ev = this.node) === null || ev === void 0 || ev.disconnect(), this.node = yield this.createSingleAudioNode(tv), {
        start: this.node,
        end: this.node
      };
    });
  }
}
SingleNodeAudioTransformDevice$1.default = SingleNodeAudioTransformDevice;
var TranscriptAlternative$1 = {};
Object.defineProperty(TranscriptAlternative$1, "__esModule", { value: !0 });
class TranscriptAlternative {
}
TranscriptAlternative$1.default = TranscriptAlternative;
var TranscriptEntity$1 = {};
Object.defineProperty(TranscriptEntity$1, "__esModule", { value: !0 });
class TranscriptEntity {
}
TranscriptEntity$1.default = TranscriptEntity;
var TranscriptItem$1 = {};
Object.defineProperty(TranscriptItem$1, "__esModule", { value: !0 });
class TranscriptItem {
}
TranscriptItem$1.default = TranscriptItem;
var TranscriptLanguageWithScore$1 = {};
Object.defineProperty(TranscriptLanguageWithScore$1, "__esModule", { value: !0 });
class TranscriptLanguageWithScore {
}
TranscriptLanguageWithScore$1.default = TranscriptLanguageWithScore;
var TranscriptResult$1 = {};
Object.defineProperty(TranscriptResult$1, "__esModule", { value: !0 });
class TranscriptResult {
}
TranscriptResult$1.default = TranscriptResult;
var VideoSource$1 = {};
Object.defineProperty(VideoSource$1, "__esModule", { value: !0 });
class VideoSource {
}
VideoSource$1.default = VideoSource;
var VoiceFocusDeviceTransformer$1 = {}, voicefocus = {}, decider = {}, __awaiter$6 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(decider, "__esModule", { value: !0 });
decider.decideModel = decider.measureAndDecideExecutionApproach = void 0;
const loader_js_1$1 = loader, support_js_1$4 = support, DEFAULT_EXECUTION_QUANTA = 3, SIMD_SCORE_FIXED_POINT = 2.5, WASM_SCORE_FIXED_POINT = 2.63, SINGLE_INLINE_SCORE_MULTIPLIER = 0.6, QUALITY_MULTIPLE_QUANTA_SCORE_MULTIPLIER = 0.65, INTERACTIVITY_MULTIPLE_QUANTA_SCORE_MULTIPLIER = 0.5, WORKER_SCORE_MULTIPLIER = 0.7, PERFORMANCE_THRESHOLDS = {
  wasm: {
    noSupport: 0.07,
    inline: {
      c100: 1,
      c50: 0.36,
      c20: 0.16,
      c10: 0.07
    },
    worker: {
      c100: 0.5,
      c50: 0.18,
      c20: 0.08,
      c10: 0.06
    }
  },
  simd: {
    noSupport: 0.1,
    inline: {
      c100: 1,
      c50: 0.43,
      c20: 0.3,
      c10: 0.2
    },
    worker: {
      c100: 0.5,
      c50: 0.21,
      c20: 0.15,
      c10: 0.1
    }
  }
};
class Estimator {
  constructor(tv, ev) {
    this.fetchConfig = tv, this.logger = ev;
    const iv = `${tv.paths.workers}estimator-v1.js`;
    this.fetchBehavior = { headers: tv.headers, escapedQueryString: tv.escapedQueryString }, this.worker = loader_js_1$1.loadWorker(iv, "VoiceFocusEstimator", this.fetchBehavior, ev);
  }
  roundtrip(tv, ev, iv) {
    return new Promise((ov, av) => {
      this.worker.then((sv) => {
        let lv;
        lv = (uv) => {
          const { message: cv, key: dv } = uv.data;
          cv === ev && dv === iv && (sv.removeEventListener("message", lv), ov(uv.data));
        }, sv.addEventListener("message", lv), sv.postMessage(tv);
      }).catch((sv) => {
        var lv;
        (lv = this.logger) === null || lv === void 0 || lv.error("Failed to load worker.", sv), av(sv);
      });
    });
  }
  supportsSIMD(tv) {
    const ev = "simd", iv = tv || `${this.fetchConfig.paths.wasm}simd-v1.wasm`, ov = {
      message: "supports-simd",
      fetchBehavior: this.fetchBehavior,
      path: iv,
      key: ev
    };
    return this.roundtrip(ov, "simd-support", ev).then((av) => av.supports);
  }
  measure(tv, ev) {
    const iv = `${this.fetchConfig.paths.wasm}bench-v1.wasm`, ov = `${this.fetchConfig.paths.wasm}bench-v1_simd.wasm`, av = tv ? ov : iv, sv = `bench:${tv}`, lv = {
      message: "measure",
      fetchBehavior: this.fetchBehavior,
      budget: ev,
      path: av,
      key: sv
    };
    return this.roundtrip(lv, "measurement", sv).then((uv) => {
      if (uv.measurement)
        return uv.measurement;
      throw new Error("Failed to measure.");
    });
  }
  stop() {
    this.worker.then((tv) => {
      var ev;
      (ev = this.logger) === null || ev === void 0 || ev.debug("Stopping estimator worker."), tv.terminate();
    }).catch((tv) => {
    });
  }
}
const inlineScoreMultiplier = (rv, tv) => rv === 1 ? SINGLE_INLINE_SCORE_MULTIPLIER : tv === "quality" ? QUALITY_MULTIPLE_QUANTA_SCORE_MULTIPLIER * rv : INTERACTIVITY_MULTIPLE_QUANTA_SCORE_MULTIPLIER * rv, decideExecutionApproach = ({ supportsSIMD: rv, supportsSAB: tv, duration: ev, executionPreference: iv = "auto", simdPreference: ov, variantPreference: av = "auto", namePreference: sv = "default", usagePreference: lv, executionQuantaPreference: uv = DEFAULT_EXECUTION_QUANTA }, cv = PERFORMANCE_THRESHOLDS, dv) => {
  const pv = ov === "force" || ov !== "disable" && rv, yv = ev !== -1, Sv = yv ? (pv ? SIMD_SCORE_FIXED_POINT : WASM_SCORE_FIXED_POINT) / ev : 0, _v = pv ? cv.simd : cv.wasm, Ev = yv ? inlineScoreMultiplier(uv, lv) * Sv : 0, wv = yv ? WORKER_SCORE_MULTIPLIER * Sv : 0, xv = sv, Cv = (jv) => ({
    supported: !1,
    reason: jv
  });
  if (yv) {
    if (Sv < _v.noSupport)
      return Cv(`Performance score ${Sv} worse than threshold ${_v.noSupport}.`);
  } else if (iv === "auto" || av === "auto")
    return Cv(`Missing explicit execution (${iv}) or variant (${av}) preference, but no scoring performed.`);
  dv == null || dv.debug(`Bench duration ${ev} yields inline score ${Ev} and worker score ${wv}.`);
  const Av = (jv, Dv, Vv) => ({
    supported: !0,
    useSIMD: pv,
    processor: jv,
    executionApproach: Dv,
    variant: Vv,
    executionQuanta: Dv === "inline" ? uv : void 0,
    name: xv
  }), Ov = (jv, Dv, Vv) => Dv !== "auto" ? !yv || jv > Vv[Dv] ? Dv : "failed" : jv > Vv.c100 ? "c100" : jv > Vv.c50 ? "c50" : jv > Vv.c20 ? "c20" : jv > Vv.c10 ? "c10" : "failed", Lv = (jv) => {
    switch (jv || "auto") {
      case "auto": {
        let Dv = Lv("inline"), Vv = Lv("worker");
        return dv == null || dv.debug(`Reducing auto preference: ${JSON.stringify(Dv)} vs ${JSON.stringify(Vv)}`), Dv.supported === !1 || Vv.supported === !1 ? Vv : Dv.variant === Vv.variant || Dv.variant === "c50" ? Dv : Vv;
      }
      case "worker":
        return support_js_1$4.supportsSharedArrayBuffer(globalThis, window, dv) ? Lv("worker-sab") : Lv("worker-postMessage");
      case "inline": {
        const Dv = Ov(Ev, av, _v.inline);
        return Dv === "failed" ? Cv(`Performance score ${Ev} not sufficient for inline use with variant preference ${av}.`) : Av("voicefocus-inline-processor", "inline", Dv);
      }
      case "worker-sab": {
        if (!tv) {
          const Vv = "Requested worker-sab but no SharedArrayBuffer support.";
          return dv == null || dv.warn(Vv), { supported: !1, reason: Vv };
        }
        const Dv = Ov(wv, av, _v.worker);
        return Dv === "failed" ? Cv(`Performance score ${wv} not sufficient for worker use with variant preference ${av}.`) : Av("voicefocus-worker-sab-processor", "worker-sab", Dv);
      }
      case "worker-postMessage": {
        const Dv = Ov(wv, av, _v.worker);
        if (Dv === "failed")
          return Cv(`Performance score ${wv} not sufficient for worker use.`);
        if (xv === "ns_es") {
          const Vv = "Requested echo suppression but postMessage executor does not support it.";
          return dv == null || dv.warn(Vv), { supported: !1, reason: Vv };
        }
        return Av("voicefocus-worker-postMessage-processor", "worker-postMessage", Dv);
      }
    }
  };
  return Lv(iv);
}, featureCheck = (rv, tv, ev, iv) => __awaiter$6(void 0, void 0, void 0, function* () {
  const ov = {
    supportsSIMD: rv,
    supportsSAB: support_js_1$4.supportsSharedArrayBuffer(globalThis, window, ev),
    duration: -1
  };
  if (rv)
    return ev == null || ev.info("Supports SIMD: true (force)"), ov;
  const av = !iv, sv = iv || new Estimator(tv, ev);
  try {
    const lv = !support_js_1$4.isOldChrome(window, ev) && (yield sv.supportsSIMD());
    return ev == null || ev.info(`Supports SIMD: ${lv} (force: ${rv})`), ov.supportsSIMD = lv, ov;
  } finally {
    av && sv.stop();
  }
}), estimateAndFeatureCheck = (rv, tv, ev, iv) => __awaiter$6(void 0, void 0, void 0, function* () {
  const ov = new Estimator(tv, iv);
  try {
    const av = yield featureCheck(rv, tv, iv, ov);
    if (av.supportsSIMD)
      try {
        return av.duration = yield ov.measure(!0, ev), iv == null || iv.info("SIMD timing:", av.duration), av;
      } catch {
        iv == null || iv.warn("Failed SIMD estimation; falling back to non-SIMD."), av.supportsSIMD = !1;
      }
    return av.duration = yield ov.measure(!1, ev), iv == null || iv.info("No-SIMD timing:", av.duration), av;
  } catch (av) {
    throw iv == null || iv.error("Could not feature check.", av), av;
  } finally {
    ov.stop();
  }
}), measureAndDecideExecutionApproach = (rv, tv, ev, iv = PERFORMANCE_THRESHOLDS) => __awaiter$6(void 0, void 0, void 0, function* () {
  let ov = rv.executionPreference;
  const { usagePreference: av, variantPreference: sv, namePreference: lv, simdPreference: uv, estimatorBudget: cv, executionQuantaPreference: dv } = rv;
  av === "interactivity" && ov !== "inline" && (ev == null || ev.debug(`Overriding execution preference ${ov} to reflect interactivity preference.`), ov = "inline");
  const hv = uv === "force", pv = sv !== "auto", yv = ov !== "auto";
  let Sv;
  try {
    pv && yv ? Sv = yield featureCheck(hv, tv, ev) : Sv = yield estimateAndFeatureCheck(hv, tv, cv, ev);
  } catch (_v) {
    throw ev == null || ev.error("Could not load estimator.", _v), new Error("Could not load Voice Focus estimator.");
  }
  return decideExecutionApproach(Object.assign(Object.assign({}, Sv), {
    simdPreference: uv,
    executionPreference: ov,
    variantPreference: sv,
    namePreference: lv,
    usagePreference: av,
    executionQuantaPreference: dv
  }), iv, ev);
});
decider.measureAndDecideExecutionApproach = measureAndDecideExecutionApproach;
const decideModel = ({ category: rv, name: tv, variant: ev, simd: iv, url: ov }) => `${rv}-${tv}-${ev}-v1${iv ? "_simd" : ""}`;
decider.decideModel = decideModel;
var workletInlineNode = {}, types = {};
Object.defineProperty(types, "__esModule", { value: !0 });
types.VoiceFocusAudioWorkletNode = void 0;
class VoiceFocusAudioWorkletNode extends (typeof globalThis < "u" && globalThis.AudioWorkletNode || class {
}) {
}
types.VoiceFocusAudioWorkletNode = VoiceFocusAudioWorkletNode;
var __awaiter$5 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(workletInlineNode, "__esModule", { value: !0 });
const support_js_1$3 = support, types_js_1$2 = types;
class VoiceFocusInlineNode extends types_js_1$2.VoiceFocusAudioWorkletNode {
  constructor(tv, ev) {
    super(tv, ev.processor, ev), this.channelCountMode = "explicit", this.channelCount = 1;
    const { modelURL: iv, worker: ov, fetchBehavior: av, logger: sv, delegate: lv } = ev;
    this.logger = sv, this.port.onmessage = this.onProcessorMessage.bind(this), this.delegate = lv, sv && sv.debug("VoiceFocusInlineNode:", iv), this.worker = ov, this.worker.onmessage = this.onWorkerMessage.bind(this);
    const uv = support_js_1$3.supportsWASMPostMessage(globalThis) ? "get-module" : "get-module-buffer";
    this.worker.postMessage({
      message: uv,
      key: "model",
      fetchBehavior: av,
      path: iv
    });
  }
  onModuleBufferLoaded(tv, ev) {
    this.port.postMessage({ message: "module-buffer", buffer: tv, key: ev });
  }
  onModuleLoaded(tv, ev) {
    this.port.postMessage({ message: "module", module: tv, key: ev });
  }
  enable() {
    return __awaiter$5(this, void 0, void 0, function* () {
      this.port.postMessage({ message: "enable" });
    });
  }
  disable() {
    return __awaiter$5(this, void 0, void 0, function* () {
      this.port.postMessage({ message: "disable" });
    });
  }
  stop() {
    return __awaiter$5(this, void 0, void 0, function* () {
      this.port.postMessage({ message: "stop" }), this.disconnect();
    });
  }
  onProcessorMessage(tv) {
    var ev, iv, ov;
    const av = tv.data;
    switch (av.message) {
      case "cpu":
        (ev = this.logger) === null || ev === void 0 || ev.warn("CPU warning:", av.message), (iv = this.delegate) === null || iv === void 0 || iv.onCPUWarning();
        break;
      default:
        (ov = this.logger) === null || ov === void 0 || ov.debug("Ignoring processor message.");
    }
  }
  onWorkerMessage(tv) {
    const ev = tv.data;
    switch (ev.message) {
      case "module-buffer":
        if (!ev.buffer || !ev.key)
          return;
        this.onModuleBufferLoaded(ev.buffer, ev.key);
        break;
      case "module":
        if (!ev.module || !ev.key)
          return;
        this.onModuleLoaded(ev.module, ev.key);
        break;
      case "stopped":
        this.worker && this.worker.terminate();
        break;
      default:
        return;
    }
  }
}
workletInlineNode.default = VoiceFocusInlineNode;
var workletWorkerSabNode = {}, __awaiter$4 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(workletWorkerSabNode, "__esModule", { value: !0 });
const support_js_1$2 = support, types_js_1$1 = types, INDICES = {
  ready: 0,
  enabled: 1
}, STATES = {
  disabled: 0,
  enabled: 1,
  stopped: 2
};
class VoiceFocusWorkerBufferNode extends types_js_1$1.VoiceFocusAudioWorkletNode {
  constructor(tv, ev) {
    super(tv, ev.processor, ev), this.channelCountMode = "explicit", this.channelCount = 1;
    const { modelURL: iv, resamplerURL: ov, worker: av, fetchBehavior: sv, delegate: lv } = ev;
    this.delegate = lv, this.worker = av, this.worker.onmessage = this.onWorkerMessage.bind(this), this.port.onmessage = this.onProcessorMessage.bind(this);
    const { enabled: uv, supportFarendStream: cv } = ev.processorOptions;
    this.worker.postMessage({
      message: "init",
      approach: "sab",
      frames: tv.sampleRate === 16e3 ? 160 : 480,
      enabled: uv,
      model: iv,
      supportFarendStream: cv
    });
    const dv = support_js_1$2.supportsWASMPostMessage(globalThis) ? "get-module" : "get-module-buffer";
    this.worker.postMessage({
      message: dv,
      key: "resampler",
      fetchBehavior: sv,
      path: ov
    });
  }
  enable() {
    return __awaiter$4(this, void 0, void 0, function* () {
      this.state ? (Atomics.store(this.state, INDICES.enabled, STATES.enabled), Atomics.notify(this.state, INDICES.ready, 1)) : this.worker.postMessage({ message: "enable" });
    });
  }
  disable() {
    return __awaiter$4(this, void 0, void 0, function* () {
      this.state ? (Atomics.store(this.state, INDICES.enabled, STATES.disabled), Atomics.notify(this.state, INDICES.ready, 1)) : this.worker.postMessage({ message: "disable" });
    });
  }
  stop() {
    return __awaiter$4(this, void 0, void 0, function* () {
      if (this.state)
        Atomics.store(this.state, INDICES.enabled, STATES.stopped), Atomics.notify(this.state, INDICES.ready, 1);
      else
        try {
          this.worker.postMessage({ message: "stop" });
        } catch {
        }
      this.disconnect();
    });
  }
  onWorkerMessage(tv) {
    var ev;
    const iv = tv.data;
    switch (iv.message) {
      case "ready":
        if (!iv.shared)
          throw new Error("No shared state.");
        this.state = new Int32Array(iv.shared.state), this.port.postMessage(iv);
        break;
      case "stopped":
        this.worker.terminate();
        break;
      case "module-buffer":
      case "module":
        this.port.postMessage(iv);
        break;
      case "cpu":
        (ev = this.delegate) === null || ev === void 0 || ev.onCPUWarning();
        break;
      case "processing":
        this.port.postMessage(iv);
        break;
      default:
        return;
    }
  }
  onProcessorMessage(tv) {
    var ev;
    const iv = tv.data;
    switch (iv.message) {
      case "cpu":
        (ev = this.delegate) === null || ev === void 0 || ev.onCPUWarning();
        break;
      case "prepare-for-frames":
        this.worker.postMessage(iv);
        break;
    }
  }
}
workletWorkerSabNode.default = VoiceFocusWorkerBufferNode;
var workletWorkerPostMessageNode = {}, __awaiter$3 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(workletWorkerPostMessageNode, "__esModule", { value: !0 });
const support_js_1$1 = support, types_js_1 = types;
class VoiceFocusWorkerPostMessageNode extends types_js_1.VoiceFocusAudioWorkletNode {
  constructor(tv, ev) {
    super(tv, ev.processor, ev), this.channelCountMode = "explicit", this.channelCount = 1;
    const { modelURL: iv, audioBufferURL: ov, worker: av, fetchBehavior: sv, delegate: lv } = ev;
    this.delegate = lv, this.worker = av, this.worker.onmessage = this.onWorkerMessage.bind(this), this.port.onmessage = this.onProcessorMessage.bind(this);
    const { enabled: uv, agc: cv, supportFarendStream: dv } = ev.processorOptions;
    this.worker.postMessage({
      message: "init",
      approach: "postMessage",
      frames: tv.sampleRate === 16e3 ? 160 : 480,
      enabled: uv,
      agc: cv,
      fetchBehavior: sv,
      model: iv,
      supportFarendStream: dv
    });
    const hv = support_js_1$1.supportsWASMPostMessage(globalThis) ? "get-module" : "get-module-buffer";
    this.worker.postMessage({
      message: hv,
      key: "buffer",
      fetchBehavior: sv,
      path: ov
    });
  }
  enable() {
    return __awaiter$3(this, void 0, void 0, function* () {
      this.worker.postMessage({ message: "enable" });
    });
  }
  disable() {
    return __awaiter$3(this, void 0, void 0, function* () {
      this.worker.postMessage({ message: "disable" });
    });
  }
  stop() {
    return __awaiter$3(this, void 0, void 0, function* () {
      try {
        this.worker.postMessage({ message: "stop" });
      } catch {
      }
      this.disconnect();
    });
  }
  onWorkerMessage(tv) {
    var ev;
    const iv = tv.data;
    switch (iv.message) {
      case "ready":
        this.port.postMessage({ message: "ready", shared: iv.shared }, iv.shared ? Object.values(iv.shared) : []);
        break;
      case "data":
        if (!iv.buffer)
          return;
        this.port.postMessage({ message: "data", buffer: iv.buffer }, [iv.buffer]);
        break;
      case "stopped":
        this.worker.terminate();
        break;
      case "module-buffer":
      case "module":
        this.port.postMessage(iv);
        break;
      case "cpu":
        (ev = this.delegate) === null || ev === void 0 || ev.onCPUWarning();
        break;
      case "processing":
        this.port.postMessage(iv);
        break;
      default:
        return;
    }
  }
  onProcessorMessage(tv) {
    var ev;
    const iv = tv.data;
    switch (iv.message) {
      case "data":
        if (!iv.buffer)
          return;
        this.worker.postMessage({ message: "data", buffer: iv.buffer }, [iv.buffer]);
        break;
      case "cpu":
        (ev = this.delegate) === null || ev === void 0 || ev.onCPUWarning();
        break;
      case "prepare-for-frames":
        this.worker.postMessage(iv);
        break;
      default:
        return;
    }
  }
}
workletWorkerPostMessageNode.default = VoiceFocusWorkerPostMessageNode;
var __awaiter$2 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(voicefocus, "__esModule", { value: !0 });
voicefocus.getAudioInput = voicefocus.createAudioContext = voicefocus.VoiceFocus = void 0;
const decider_js_1 = decider, fetch_js_1 = fetch$1, loader_js_1 = loader, support_js_1 = support, worklet_inline_node_js_1 = workletInlineNode, worklet_worker_sab_node_js_1 = workletWorkerSabNode, worklet_worker_postMessage_node_js_1 = workletWorkerPostMessageNode, DEFAULT_AGC_DISABLED_SETTING = {
  useVoiceFocusAGC: !1,
  useBuiltInAGC: !0
}, DEFAULT_AGC_SETTING = DEFAULT_AGC_DISABLED_SETTING, DEFAULT_ASSET_GROUP = "stable-v1", DEFAULT_CDN = "https://static.sdkassets.chime.aws/", DEFAULT_PATHS = {
  processors: `${DEFAULT_CDN}processors/`,
  workers: `${DEFAULT_CDN}workers/`,
  wasm: `${DEFAULT_CDN}wasm/`,
  models: `${DEFAULT_CDN}wasm/`
}, DEFAULT_CONTEXT_HINT = {
  latencyHint: 0
}, BASE_AUDIO_CONSTRAINTS = {
  channelCount: 1,
  echoCancellation: !0,
  googEchoCancellation: !0,
  noiseSuppression: !1,
  googNoiseSuppression: !1,
  googHighpassFilter: !1,
  googTypingNoiseDetection: !1
}, DEFAULT_AUDIO_CONSTRAINTS_WITH_BUILTIN_AGC = Object.assign(Object.assign({}, BASE_AUDIO_CONSTRAINTS), { autoGainControl: !0, googAutoGainControl: !0, googAutoGainControl2: !0 }), DEFAULT_AUDIO_CONSTRAINTS_WITHOUT_BUILTIN_AGC = Object.assign(Object.assign({}, BASE_AUDIO_CONSTRAINTS), { autoGainControl: !1, googAutoGainControl: !1, googAutoGainControl2: !1 }), PROCESSORS = {
  "voicefocus-worker-sab-processor": {
    file: "worklet-worker-sab-processor-v1.js",
    node: worklet_worker_sab_node_js_1.default
  },
  "voicefocus-worker-postMessage-processor": {
    file: "worklet-worker-postMessage-processor-v1.js",
    node: worklet_worker_postMessage_node_js_1.default
  },
  "voicefocus-inline-processor": {
    file: "worklet-inline-processor-v1.js",
    node: worklet_inline_node_js_1.default
  }
}, validateAssetSpec = (rv, tv) => {
  if (rv !== void 0 && !fetch_js_1.isValidAssetGroup(rv))
    throw new Error(`Invalid asset group ${rv}`);
  if (tv !== void 0 && !fetch_js_1.isValidRevisionID(tv))
    throw new Error(`Invalid revision ID ${tv}`);
}, mungeConstraints = (rv, tv) => {
  let ev;
  if (tv.useBuiltInAGC ? ev = DEFAULT_AUDIO_CONSTRAINTS_WITH_BUILTIN_AGC : ev = DEFAULT_AUDIO_CONSTRAINTS_WITHOUT_BUILTIN_AGC, !rv)
    return { audio: ev };
  if (!rv.audio)
    return rv;
  if (rv.video)
    throw new Error("Not adding Voice Focus to multi-device getUserMedia call.");
  return Object.assign(Object.assign({}, rv), { audio: rv.audio === !0 ? ev : Object.assign(Object.assign({}, rv.audio), ev) });
}, urlForModel = (rv, tv) => `${tv.models}${decider_js_1.decideModel(rv)}.wasm`;
class VoiceFocus {
  constructor(tv, ev, iv, ov, av) {
    this.processorURL = ev, this.nodeConstructor = iv, this.nodeOptions = ov, this.executionQuanta = av, this.internal = {
      worker: tv,
      nodeOptions: ov
    };
  }
  static isSupported(tv, ev) {
    const { fetchBehavior: iv, logger: ov } = ev || {};
    if (typeof globalThis > "u")
      return ov == null || ov.debug("Browser does not have globalThis."), Promise.resolve(!1);
    if (!support_js_1.supportsAudioWorklet(globalThis, ov))
      return ov == null || ov.debug("Browser does not support Audio Worklet."), Promise.resolve(!1);
    if (!support_js_1.supportsWASM(globalThis, ov))
      return ov == null || ov.debug("Browser does not support WASM."), Promise.resolve(!1);
    support_js_1.supportsWASMStreaming(globalThis, ov) || ov == null || ov.debug("Browser does not support streaming WASM compilation.");
    const { assetGroup: av = DEFAULT_ASSET_GROUP, revisionID: sv, paths: lv = DEFAULT_PATHS } = tv || {};
    validateAssetSpec(av, sv);
    const uv = sv ? { revisionID: sv } : { assetGroup: av }, cv = fetch_js_1.addQueryParams(iv, uv), dv = Object.assign(Object.assign({}, cv), { paths: lv });
    return support_js_1.supportsVoiceFocusWorker(globalThis, dv, ov);
  }
  static mungeExecutionPreference(tv, ev) {
    const iv = tv === void 0 || tv === "auto";
    if (support_js_1.isSafari(globalThis)) {
      if (iv || tv === "inline")
        return "inline";
      if (!iv)
        throw new Error(`Unsupported execution preference ${tv}`);
    }
    if (tv === "worker-sab" && !support_js_1.supportsSharedArrayBuffer(globalThis, globalThis, ev))
      throw new Error(`Unsupported execution preference ${tv}`);
    return tv || "auto";
  }
  static configure(tv, ev) {
    return __awaiter$2(this, void 0, void 0, function* () {
      const { fetchBehavior: iv, preResolve: ov, logger: av } = ev || {}, { category: sv = "voicefocus", name: lv = "default", variant: uv = "auto", assetGroup: cv = DEFAULT_ASSET_GROUP, revisionID: dv, simd: hv = "detect", executionPreference: pv = "auto", executionQuantaPreference: yv, usagePreference: Sv = "interactivity", estimatorBudget: _v = 100, paths: Ev = DEFAULT_PATHS, thresholds: wv } = tv || {};
      if (av == null || av.debug("Configuring Voice Focus with spec", tv), sv !== void 0 && sv !== "voicefocus")
        throw new Error(`Unrecognized category ${sv}`);
      if (lv !== void 0 && lv !== "default" && lv !== "ns_es")
        throw new Error(`Unrecognized feature name ${lv}`);
      if (uv !== void 0 && !["auto", "c100", "c50", "c20", "c10"].includes(uv))
        throw new Error(`Unrecognized feature variant ${uv}`);
      if (yv !== void 0 && ![1, 2, 3].includes(yv))
        throw new Error(`Unrecognized execution quanta preference ${yv}`);
      if (validateAssetSpec(cv, dv), hv !== void 0 && !["detect", "force", "disable"].includes(hv))
        throw new Error(`Unrecognized SIMD option ${hv}`);
      if (pv !== void 0 && !["auto", "inline", "worker", "worker-sab", "worker-postMessage"].includes(pv))
        throw new Error(`Unrecognized execution preference ${pv}`);
      if (Sv !== void 0 && !["quality", "interactivity"].includes(Sv))
        throw new Error(`Unrecognized usage preference ${Sv}`);
      const xv = {
        executionPreference: this.mungeExecutionPreference(pv, av),
        usagePreference: Sv,
        executionQuantaPreference: yv,
        variantPreference: uv,
        namePreference: lv,
        simdPreference: hv,
        estimatorBudget: _v
      }, Cv = dv ? { revisionID: dv } : { assetGroup: cv }, Av = fetch_js_1.addQueryParams(iv, Cv), Ov = Object.assign({ paths: Ev }, Av), Lv = yield decider_js_1.measureAndDecideExecutionApproach(xv, Ov, av, wv);
      if (Lv.supported === !1)
        return { supported: !1, reason: Lv.reason };
      av == null || av.info("Decided execution approach", Lv);
      const { useSIMD: jv, processor: Dv, variant: Vv, executionQuanta: Gv } = Lv, Yv = {
        category: sv || "voicefocus",
        name: lv || "default",
        variant: Vv,
        simd: jv
      };
      if (ov) {
        const Xv = urlForModel(Yv, Ev);
        Yv.url = yield fetch_js_1.resolveURL(Xv, Av);
      }
      return {
        fetchConfig: Ov,
        model: Yv,
        processor: Dv,
        executionQuanta: Gv,
        supported: !0
      };
    });
  }
  static init(tv, { delegate: ev, preload: iv = !0, logger: ov }) {
    return __awaiter$2(this, void 0, void 0, function* () {
      if (tv.supported === !1)
        throw new Error("Voice Focus not supported. Reason: " + tv.reason);
      const { model: av, processor: sv, fetchConfig: lv, executionQuanta: uv } = tv, { simd: cv, name: dv } = av, { paths: hv } = lv;
      if (sv !== "voicefocus-inline-processor" && sv !== "voicefocus-worker-postMessage-processor" && sv !== "voicefocus-worker-sab-processor")
        throw new Error(`Unknown processor ${sv}`);
      const pv = av.url || urlForModel(av, hv);
      ov == null || ov.debug(`Using model URL ${pv}.`);
      const yv = `${hv.wasm}audio_buffer-v1${cv ? "_simd" : ""}.wasm`, Sv = `${hv.wasm}resampler-v1${cv ? "_simd" : ""}.wasm`, _v = `${hv.workers}worker-v1.js`, { file: Ev, node: wv } = PROCESSORS[sv], xv = `${hv.processors}${Ev}`, Cv = yield loader_js_1.loadWorker(_v, "VoiceFocusWorker", lv, ov);
      if (iv) {
        ov == null || ov.debug("Preloading", pv);
        let jv = support_js_1.supportsWASMPostMessage(globalThis) ? "get-module" : "get-module-buffer";
        Cv.postMessage({
          message: jv,
          preload: !0,
          key: "model",
          fetchBehavior: lv,
          path: pv
        });
      }
      const Ov = {
        processor: sv,
        worker: Cv,
        audioBufferURL: yv,
        resamplerURL: Sv,
        fetchBehavior: lv,
        modelURL: pv,
        delegate: ev,
        logger: ov,
        numberOfInputs: dv === "ns_es" ? 2 : 1
      }, Lv = new VoiceFocus(Cv, xv, wv, Ov, uv);
      return Promise.resolve(Lv);
    });
  }
  createNode(tv, ev) {
    var iv;
    const { voiceFocusSampleRate: ov = tv.sampleRate === 16e3 ? 16e3 : 48e3, enabled: av = !0, agc: sv = DEFAULT_AGC_SETTING } = ev || {}, lv = ev == null ? void 0 : ev.es, uv = {
      voiceFocusSampleRate: ov,
      enabled: av,
      sendBufferCount: 10,
      prefill: 6,
      agc: sv,
      executionQuanta: this.executionQuanta,
      supportFarendStream: lv
    }, cv = fetch_js_1.withQueryString(this.processorURL, (iv = this.nodeOptions) === null || iv === void 0 ? void 0 : iv.fetchBehavior);
    return tv.audioWorklet.addModule(cv).then(() => new this.nodeConstructor(tv, Object.assign(Object.assign({}, this.nodeOptions), { processorOptions: uv })));
  }
  applyToStream(tv, ev, iv) {
    return __awaiter$2(this, void 0, void 0, function* () {
      const ov = ev.createMediaStreamSource(tv), av = yield this.applyToSourceNode(ov, ev, iv), sv = ev.createMediaStreamDestination();
      return av.connect(sv), {
        node: av,
        source: ov,
        destination: sv,
        stream: sv.stream
      };
    });
  }
  applyToSourceNode(tv, ev, iv) {
    return __awaiter$2(this, void 0, void 0, function* () {
      const ov = yield this.createNode(ev, iv);
      return tv.connect(ov), ov;
    });
  }
}
voicefocus.VoiceFocus = VoiceFocus;
const createAudioContext = (rv = DEFAULT_CONTEXT_HINT) => new (window.AudioContext || window.webkitAudioContext)(rv);
voicefocus.createAudioContext = createAudioContext;
const getAudioInput = (rv, tv, ev) => __awaiter$2(void 0, void 0, void 0, function* () {
  var iv, ov;
  const { constraints: av, spec: sv, delegate: lv, preload: uv = !0, options: cv } = tv, { logger: dv } = ev, hv = yield VoiceFocus.configure(sv, ev);
  if (!hv.supported)
    return (iv = ev.logger) === null || iv === void 0 || iv.warn("Voice Focus not supported; returning standard stream."), window.navigator.mediaDevices.getUserMedia(av);
  const pv = yield VoiceFocus.init(hv, { delegate: lv, preload: uv, logger: dv }), yv = ((ov = tv.options) === null || ov === void 0 ? void 0 : ov.agc) || DEFAULT_AGC_SETTING, Sv = yield window.navigator.mediaDevices.getUserMedia(mungeConstraints(av, yv));
  return pv.applyToStream(Sv, rv, cv).then((_v) => _v.stream);
});
voicefocus.getAudioInput = getAudioInput;
var LoggerAdapter$1 = {};
Object.defineProperty(LoggerAdapter$1, "__esModule", { value: !0 });
function stringify(rv) {
  return rv.map((tv) => typeof tv == "object" ? JSON.stringify(tv) : `${tv}`).join(" ");
}
class LoggerAdapter {
  constructor(tv) {
    this.base = tv;
  }
  debug(...tv) {
    this.base.debug(stringify(tv));
  }
  info(...tv) {
    this.base.info(stringify(tv));
  }
  warn(...tv) {
    this.base.warn(stringify(tv));
  }
  error(...tv) {
    this.base.error(stringify(tv));
  }
}
LoggerAdapter$1.default = LoggerAdapter;
var VoiceFocusTransformDevice$1 = {}, __awaiter$1 = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(VoiceFocusTransformDevice$1, "__esModule", { value: !0 });
const DefaultBrowserBehavior_1 = DefaultBrowserBehavior$1;
class VoiceFocusTransformDevice {
  /** @internal */
  constructor(tv, ev, iv, ov, av = !1, sv = void 0, lv = new DefaultBrowserBehavior_1.default(), uv = /* @__PURE__ */ new Map(), cv = void 0, dv = void 0) {
    this.device = tv, this.voiceFocus = ev, this.delegate = iv, this.nodeOptions = ov, this.failed = av, this.node = sv, this.browserBehavior = lv, this.farEndStreamToAudioSourceNode = uv, this.mixDestNode = cv, this.mixSourceNode = dv;
  }
  /**
   * Return the inner device as provided during construction, or updated via
   * {@link VoiceFocusTransformDevice.chooseNewInnerDevice}. Do not confuse
   * this method with {@link VoiceFocusTransformDevice.intrinsicDevice}.
   */
  getInnerDevice() {
    return this.device;
  }
  /**
   * Disable the audio node while muted to reduce CPU usage.
   *
   * @param muted whether the audio device should be muted.
   */
  mute(tv) {
    return __awaiter$1(this, void 0, void 0, function* () {
      this.node && (tv ? yield this.node.disable() : yield this.node.enable());
    });
  }
  /**
   * Dispose of the inner workings of the transform device. After this method is called
   * you will need to create a new device to use Amazon Voice Focus again.
   */
  stop() {
    return __awaiter$1(this, void 0, void 0, function* () {
      this.node && (this.node.disconnect(), yield this.node.stop());
    });
  }
  /**
   * If you wish to choose a different inner device, but continue to use Amazon Voice Focus, you
   * can use this method to efficiently create a new device that will reuse
   * the same internal state. Only one of the two devices can be used at a time: switch
   * between them using {@link DeviceController.chooseAudioInputDevice}.
   *
   * If the same device is passed as is currently in use, `this` is returned.
   *
   * @param inner The new inner device to use.
   */
  chooseNewInnerDevice(tv) {
    return __awaiter$1(this, void 0, void 0, function* () {
      return this.device === tv && !isDefaultDevice(tv) ? this : new VoiceFocusTransformDevice(tv, this.voiceFocus, this.delegate, this.nodeOptions, this.failed, this.node, this.browserBehavior, this.farEndStreamToAudioSourceNode, this.mixDestNode, this.mixSourceNode);
    });
  }
  intrinsicDevice() {
    return __awaiter$1(this, void 0, void 0, function* () {
      if (this.failed)
        return this.device;
      const tv = this.nodeOptions.es, ev = {
        echoCancellation: !tv,
        // @ts-ignore
        googEchoCancellation: !tv,
        // @ts-ignore
        googEchoCancellation2: !tv,
        noiseSuppression: !1,
        // @ts-ignore
        googNoiseSuppression: !1,
        // @ts-ignore
        googHighpassFilter: !1,
        // @ts-ignore
        googNoiseSuppression2: !1
      };
      let iv;
      return this.nodeOptions && this.nodeOptions.agc !== void 0 ? iv = this.nodeOptions.agc.useBuiltInAGC : iv = !0, ev.autoGainControl = iv, ev.googAutoGainControl = iv, ev.googAutoGainControl2 = iv, this.device ? typeof this.device == "string" ? (this.browserBehavior.requiresNoExactMediaStreamConstraints() ? ev.deviceId = this.device : ev.deviceId = { exact: this.device }, ev) : this.device.id ? this.device : Object.assign(Object.assign({}, this.device), ev) : ev;
    });
  }
  createAudioNode(tv) {
    var ev, iv;
    return __awaiter$1(this, void 0, void 0, function* () {
      if (((ev = this.node) === null || ev === void 0 ? void 0 : ev.context) === tv)
        return {
          start: this.node,
          end: this.node
        };
      const av = Object.assign({ enabled: !0, agc: { useVoiceFocusAGC: !1 } }, this.nodeOptions);
      try {
        if ((iv = this.node) === null || iv === void 0 || iv.disconnect(), this.node = yield this.voiceFocus.createNode(tv, av), this.nodeOptions.es) {
          this.mixDestNode = new MediaStreamAudioDestinationNode(tv, {
            channelCount: 1,
            channelCountMode: "explicit"
          });
          for (const uv of this.farEndStreamToAudioSourceNode.keys())
            this.assignFarEndStreamToAudioSourceNode(uv);
          this.createMixSourceNode();
        }
        const sv = this.node, lv = this.node;
        return { start: sv, end: lv };
      } catch (sv) {
        throw this.failed = !0, this.delegate.onFallback(this, sv), sv;
      }
    });
  }
  observeMeetingAudio(tv) {
    return __awaiter$1(this, void 0, void 0, function* () {
      if (!this.nodeOptions.es)
        return;
      tv.addAudioMixObserver(this);
      const ev = yield tv.getCurrentMeetingAudioStream();
      ev && this.addFarEndStream(ev);
    });
  }
  unObserveMeetingAudio(tv) {
    return __awaiter$1(this, void 0, void 0, function* () {
      if (!this.nodeOptions.es)
        return;
      tv.removeAudioMixObserver(this);
      const ev = yield tv.getCurrentMeetingAudioStream();
      ev && this.removeFarendStream(ev);
    });
  }
  /**
   * Add an observer to receive notifications about Amazon Voice Focus lifecycle events.
   * See {@link VoiceFocusTransformDeviceObserver} for details.
   * If the observer has already been added, this method call has no effect.
   */
  addObserver(tv) {
    this.delegate.addObserver(tv);
  }
  /**
   * Remove an existing observer. If the observer has not been previously {@link
   * VoiceFocusTransformDevice.addObserver|added}, this method call has no effect.
   */
  removeObserver(tv) {
    this.delegate.removeObserver(tv);
  }
  addFarEndStream(tv) {
    return __awaiter$1(this, void 0, void 0, function* () {
      !this.nodeOptions.es || !tv || this.farEndStreamToAudioSourceNode.has(tv) || (this.node ? this.assignFarEndStreamToAudioSourceNode(tv) : this.farEndStreamToAudioSourceNode.set(tv, null));
    });
  }
  removeFarendStream(tv) {
    var ev;
    return __awaiter$1(this, void 0, void 0, function* () {
      (ev = this.farEndStreamToAudioSourceNode.get(tv)) === null || ev === void 0 || ev.disconnect(), this.farEndStreamToAudioSourceNode.delete(tv);
    });
  }
  meetingAudioStreamBecameActive(tv) {
    return __awaiter$1(this, void 0, void 0, function* () {
      this.addFarEndStream(tv);
    });
  }
  meetingAudioStreamBecameInactive(tv) {
    return __awaiter$1(this, void 0, void 0, function* () {
      this.removeFarendStream(tv);
    });
  }
  assignFarEndStreamToAudioSourceNode(tv) {
    const ev = this.node.context.createMediaStreamSource(tv);
    ev.channelCount = 1, ev.channelCountMode = "explicit", this.farEndStreamToAudioSourceNode.set(tv, ev), ev.connect(this.mixDestNode, 0);
  }
  createMixSourceNode() {
    this.mixSourceNode = this.node.context.createMediaStreamSource(this.mixDestNode.stream), this.mixSourceNode.channelCount = 1, this.mixSourceNode.channelCountMode = "explicit", this.mixSourceNode.connect(this.node, 0, 1);
  }
}
function isDefaultDevice(rv) {
  return rv === "default" ? !0 : !rv || typeof rv != "object" ? !1 : "deviceId" in rv && rv.deviceId === "default" || "id" in rv && rv.id === "default";
}
VoiceFocusTransformDevice$1.default = VoiceFocusTransformDevice;
var VoiceFocusTransformDeviceDelegate$1 = {};
Object.defineProperty(VoiceFocusTransformDeviceDelegate$1, "__esModule", { value: !0 });
class VoiceFocusTransformDeviceDelegate {
  constructor() {
    this.observers = /* @__PURE__ */ new Set();
  }
  addObserver(tv) {
    this.observers.add(tv);
  }
  removeObserver(tv) {
    this.observers.delete(tv);
  }
  /** @internal */
  onFallback(tv, ev) {
    var iv;
    for (const ov of this.observers)
      (iv = ov.voiceFocusFellBackToInnerStream) === null || iv === void 0 || iv.call(ov, tv, ev);
  }
  onCPUWarning() {
    var tv;
    for (const ev of this.observers)
      (tv = ev.voiceFocusInsufficientResources) === null || tv === void 0 || tv.call(ev);
  }
}
VoiceFocusTransformDeviceDelegate$1.default = VoiceFocusTransformDeviceDelegate;
var __awaiter = commonjsGlobal && commonjsGlobal.__awaiter || function(rv, tv, ev, iv) {
  function ov(av) {
    return av instanceof ev ? av : new ev(function(sv) {
      sv(av);
    });
  }
  return new (ev || (ev = Promise))(function(av, sv) {
    function lv(dv) {
      try {
        cv(iv.next(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function uv(dv) {
      try {
        cv(iv.throw(dv));
      } catch (hv) {
        sv(hv);
      }
    }
    function cv(dv) {
      dv.done ? av(dv.value) : ov(dv.value).then(lv, uv);
    }
    cv((iv = iv.apply(rv, tv || [])).next());
  });
};
Object.defineProperty(VoiceFocusDeviceTransformer$1, "__esModule", { value: !0 });
VoiceFocusDeviceTransformer$1.VoiceFocusDeviceTransformer = void 0;
const voicefocus_1 = voicefocus, Utils_1 = Utils, Versioning_1 = Versioning$1, LoggerAdapter_1 = LoggerAdapter$1, VoiceFocusTransformDevice_1 = VoiceFocusTransformDevice$1, VoiceFocusTransformDeviceDelegate_1 = VoiceFocusTransformDeviceDelegate$1;
class VoiceFocusDeviceTransformer {
  constructor(tv, { preload: ev = !0, logger: iv, fetchBehavior: ov = VoiceFocusDeviceTransformer.defaultFetchBehavior() }, av) {
    this.spec = tv, this.supported = !0, this.logger = iv, this.vfLogger = iv ? new LoggerAdapter_1.default(iv) : void 0, this.preload = ev, this.fetchBehavior = ov, this.spec = VoiceFocusDeviceTransformer.augmentSpec(this.spec), av && (this.configuration = Promise.resolve(av));
  }
  /**
   * Quickly check whether Amazon Voice Focus is supported on this platform.
   *
   * This will return `false` if key technologies are absent. A value of `true` does not
   * necessarily mean that adding Amazon Voice Focus will succeed: it is still possible that the
   * configuration of the page or the CPU speed of the device are limiting factors.
   *
   * {@link VoiceFocusDeviceTransformer.create} will return an instance whose
   * `isSupported` method more accurately reflects whether Amazon Voice Focus
   * is supported in the current environment.
   *
   * This method will only reject if you provide invalid inputs.
   *
   * @param spec An optional asset group and URL paths to use when fetching. You can pass
   *             a complete {@link VoiceFocusSpec} here for convenience, matching the signature of {@link VoiceFocusDeviceTransformer.create}.
   * @param options Additional named arguments, including `logger`. Set
   *                `allowIFrame` to false to cause the support check to fail in
   *                an iframe.
   *                Chromium's security model means that audio processing works
   *                poorly in iframes.
   */
  static isSupported(tv, ev) {
    var iv, ov;
    const av = VoiceFocusDeviceTransformer.defaultFetchBehavior(), sv = ev != null && ev.logger ? new LoggerAdapter_1.default(ev.logger) : void 0, lv = {
      fetchBehavior: av,
      logger: sv
    };
    if (Utils_1.isIFramed()) {
      if ((ev == null ? void 0 : ev.allowIFrame) === !1)
        return (iv = ev == null ? void 0 : ev.logger) === null || iv === void 0 || iv.error("Amazon Voice Focus support check inside iframe: not supported."), Promise.resolve(!1);
      (ov = ev == null ? void 0 : ev.logger) === null || ov === void 0 || ov.warn("Amazon Voice Focus support check inside iframe: not recommended.");
    }
    return voicefocus_1.VoiceFocus.isSupported(VoiceFocusDeviceTransformer.augmentSpec(tv), lv);
  }
  /**
   * Create a transformer that can apply Amazon Voice Focus noise suppression to a device.
   *
   * This method will reject if the provided spec is invalid, or if the process of
   * checking for support or estimating fails (e.g., because the network is unreachable).
   *
   * If Amazon Voice Focus is not supported on this device, this call will not reject and
   * `isSupported` will return `false` on the returned instance. That instance will
   * pass through devices unmodified.
   *
   * @param spec A definition of how you want Amazon Voice Focus to behave. See the declaration of
   *             {@link VoiceFocusSpec} for details.
   * @param options Additional named arguments, including `logger` and `preload`.
   */
  static create(tv = {}, ev = {}, iv, ov, av) {
    var sv, lv, uv;
    return __awaiter(this, void 0, void 0, function* () {
      ov && ov.Meeting.Meeting && (ov = ov.Meeting);
      const cv = ((uv = (lv = (sv = ov == null ? void 0 : ov.Meeting) === null || sv === void 0 ? void 0 : sv.MeetingFeatures) === null || lv === void 0 ? void 0 : lv.Audio) === null || uv === void 0 ? void 0 : uv.EchoReduction) === "AVAILABLE", dv = iv && iv.supported === !0 && iv.model.name === "ns_es" && !cv, hv = tv.name === "ns_es" && !cv;
      if (dv || hv)
        throw new Error("Echo Reduction requested but not enabled.");
      const pv = new VoiceFocusDeviceTransformer(tv, ev, iv);
      return yield pv.init(), pv;
    });
  }
  /**
   * Given a spec and options, perform the configuration work that is
   * ordinarily performed during creation of a transformer.
   *
   * The computed configuration is not portable between devices or sessions,
   * but is useful for 'moving' transformers between windows.
   *
   * Pass the returned configuration as the third argument to a call to
   * {@link VoiceFocusDeviceTransformer.create} with the matching spec.
   */
  static configure(tv = {}, ev = {}) {
    return __awaiter(this, void 0, void 0, function* () {
      return new VoiceFocusDeviceTransformer(tv, ev, void 0).configure(!0);
    });
  }
  /**
   * Return the computed configuration for this transformer.
   */
  getConfiguration() {
    return this.configuration;
  }
  /**
   * Return whether this transformer is able to function in this environment.
   * If not, calls to
   * {@link VoiceFocusDeviceTransformer.createTransformDevice|createTransformDevice}
   * will pass through an unmodified device.
   */
  isSupported() {
    return this.supported;
  }
  /**
   * Apply Amazon Voice Focus to the selected {@link Device}.
   *
   * If this is a stream, it should be one that does not include other noise suppression features,
   * and you should consider whether to disable automatic gain control (AGC) on the stream, because
   * it can interact with noise suppression.
   *
   * @returns a device promise. This will always resolve to either a
   *          {@link VoiceFocusTransformDevice} or undefined; it will never reject.
   */
  createTransformDevice(tv, ev) {
    return __awaiter(this, void 0, void 0, function* () {
      if (this.supported)
        try {
          const [ov, av] = yield this.allocateVoiceFocus(!0), sv = Object.assign(Object.assign({}, ev), { es: this.spec.name === "ns_es" });
          return new VoiceFocusTransformDevice_1.default(tv, ov, av, sv);
        } catch {
          return;
        }
    });
  }
  static augmentSpec(tv) {
    return !tv || !tv.assetGroup && !tv.revisionID ? Object.assign(Object.assign({}, tv), { assetGroup: VoiceFocusDeviceTransformer.currentSDKAssetGroup() }) : tv;
  }
  configure(tv = !1) {
    return __awaiter(this, void 0, void 0, function* () {
      const ev = {
        fetchBehavior: this.fetchBehavior,
        preResolve: tv,
        logger: this.vfLogger
      };
      return voicefocus_1.VoiceFocus.configure(this.spec, ev);
    });
  }
  init() {
    var tv;
    return __awaiter(this, void 0, void 0, function* () {
      this.configuration || (this.configuration = this.configure());
      const ev = yield this.configuration;
      if (!ev.supported) {
        this.supported = !1;
        return;
      }
      this.pendingVoiceFocus = this.createVoiceFocus(ev, this.preload);
      try {
        yield this.pendingVoiceFocus;
      } catch (iv) {
        (tv = this.logger) === null || tv === void 0 || tv.error(`Unable to initialize Amazon Voice Focus: ${iv}`), this.supported = !1;
      }
    });
  }
  createVoiceFocus(tv, ev) {
    return __awaiter(this, void 0, void 0, function* () {
      const iv = new VoiceFocusTransformDeviceDelegate_1.default();
      return [yield voicefocus_1.VoiceFocus.init(tv, { delegate: iv, preload: ev, logger: this.vfLogger }), iv];
    });
  }
  allocateVoiceFocus(tv) {
    return __awaiter(this, void 0, void 0, function* () {
      if (!this.supported)
        throw new Error("Not supported.");
      if (this.pendingVoiceFocus) {
        const ev = this.pendingVoiceFocus;
        return this.pendingVoiceFocus = void 0, ev;
      }
      return this.createVoiceFocus(yield this.configuration, tv);
    });
  }
  static majorVersion() {
    return Versioning_1.default.sdkVersion.match(/^[1-9][0-9]*\.(?:0|[1-9][0-9]*)/)[0];
  }
  static majorMinorVersion() {
    return Versioning_1.default.sdkVersion.match(/^[1-9][0-9]*\.(?:0|(?:[1-9][0-9]*))\.(?:0|[1-9][0-9]*)/)[0];
  }
  static currentSDKAssetGroup() {
    const tv = this.majorVersion();
    return tv ? `sdk-${tv}` : "stable-v1";
  }
  // Note that we use query strings here, not headers, in order to make these requests 'simple' and
  // avoid the need for CORS preflights.
  // Be very, very careful if you choose to add headers here. You should never need to.
  static defaultFetchBehavior() {
    const tv = VoiceFocusDeviceTransformer.majorMinorVersion() || "unknown", ev = Versioning_1.default.sdkUserAgentLowResolution;
    return {
      escapedQueryString: `sdk=${encodeURIComponent(tv)}&ua=${encodeURIComponent(ev)}`
    };
  }
}
VoiceFocusDeviceTransformer$1.VoiceFocusDeviceTransformer = VoiceFocusDeviceTransformer;
VoiceFocusDeviceTransformer$1.default = VoiceFocusDeviceTransformer;
var hasRequiredBuild;
function requireBuild() {
  return hasRequiredBuild || (hasRequiredBuild = 1, function(rv) {
    Object.defineProperty(rv, "__esModule", { value: !0 }), rv.DefaultEventController = rv.DefaultDevicePixelRatioMonitor = rv.DefaultDeviceController = rv.DefaultContentShareController = rv.DefaultClientMetricReport = rv.DefaultBrowserBehavior = rv.DefaultAudioVideoFacade = rv.DefaultAudioVideoController = rv.DefaultAudioMixController = rv.DefaultActiveSpeakerPolicy = rv.DefaultActiveSpeakerDetector = rv.DataMessage = rv.CreateSDPTask = rv.CreatePeerConnectionTask = rv.ContentShareMediaStreamBroker = rv.ContentShareConstants = rv.ConsoleLogger = rv.ConnectionHealthPolicyConfiguration = rv.ConnectionHealthData = rv.ClientVideoStreamReceivingReport = rv.ClientMetricReportMediaType = rv.ClientMetricReportDirection = rv.CleanStoppedSessionTask = rv.CleanRestartedSessionTask = rv.CheckVideoInputFeedback = rv.CheckVideoConnectivityFeedback = rv.CheckNetworkUDPConnectivityFeedback = rv.CheckNetworkTCPConnectivityFeedback = rv.CheckContentShareConnectivityFeedback = rv.CheckCameraResolutionFeedback = rv.CheckAudioOutputFeedback = rv.CheckAudioInputFeedback = rv.CheckAudioConnectivityFeedback = rv.CanvasVideoFrameBuffer = rv.CSPMonitor = rv.BitrateParameters = rv.BaseTask = rv.BaseConnectionHealthPolicy = rv.BackgroundReplacementVideoFrameProcessor = rv.BackgroundFilterVideoFrameProcessor = rv.BackgroundBlurVideoFrameProcessor = rv.BackgroundBlurStrength = rv.AudioVideoControllerState = rv.AudioProfile = rv.AudioLogEvent = rv.Attendee = rv.AttachMediaInputTask = rv.AsyncScheduler = rv.ApplicationMetadata = rv.AllHighestVideoBandwidthPolicy = void 0, rv.MeetingSessionConfiguration = rv.MeetingReadinessCheckerConfiguration = rv.MeetingEventsClientConfiguration = rv.MediaDeviceProxyHandler = rv.Maybe = rv.LogLevel = rv.Log = rv.ListenForVolumeIndicatorsTask = rv.LeaveAndReceiveLeaveAckTask = rv.JoinAndReceiveIndexTask = rv.IntervalScheduler = rv.InMemoryJSONEventBuffer = rv.GlobalMetricReport = rv.GetUserMediaError = rv.FullJitterLimitedBackoff = rv.FullJitterBackoffFactory = rv.FullJitterBackoff = rv.FinishGatheringICECandidatesTask = rv.EventIngestionConfiguration = rv.EventBufferConfiguration = rv.DeviceSelection = rv.DevicePixelRatioWindowSource = rv.DefaultWebSocketAdapter = rv.DefaultVolumeIndicatorAdapter = rv.DefaultVideoTransformDevice = rv.DefaultVideoTileFactory = rv.DefaultVideoTileController = rv.DefaultVideoTile = rv.DefaultVideoStreamIndex = rv.DefaultVideoStreamIdSet = rv.DefaultVideoFrameProcessorPipeline = rv.DefaultVideoCaptureAndEncodeParameter = rv.DefaultUserAgentParser = rv.DefaultTranscriptionController = rv.DefaultTransceiverController = rv.DefaultStatsCollector = rv.DefaultSimulcastUplinkPolicy = rv.DefaultSignalingClient = rv.DefaultSigV4 = rv.DefaultSessionStateController = rv.DefaultSDP = rv.DefaultReconnectController = rv.DefaultRealtimeController = rv.DefaultPingPong = rv.DefaultModality = rv.DefaultMessagingSession = rv.DefaultMeetingSession = rv.DefaultMeetingReadinessChecker = rv.DefaultMeetingEventReporter = rv.DefaultMediaDeviceFactory = void 0, rv.SerialGroupTask = rv.SendAndReceiveDataMessagesTask = rv.SDPMediaSection = rv.SDPCandidateType = rv.RunnableTask = rv.ReleaseMediaStreamsTask = rv.ReconnectionHealthPolicy = rv.ReceiveVideoStreamIndexTask = rv.ReceiveVideoInputTask = rv.ReceiveTURNCredentialsTask = rv.ReceiveAudioInputTask = rv.RealtimeVolumeIndicator = rv.RealtimeState = rv.RealtimeAttendeePositionInFrame = rv.PromoteToPrimaryMeetingTask = rv.PermissionDeniedError = rv.ParallelGroupTask = rv.OverconstrainedError = rv.OpenSignalingConnectionTask = rv.OnceTask = rv.NotReadableError = rv.NotFoundError = rv.None = rv.NoVideoUplinkBandwidthPolicy = rv.NoVideoDownlinkBandwidthPolicy = rv.NoOpVideoFrameProcessor = rv.NoOpVideoElementFactory = rv.NoOpTask = rv.NoOpMediaStreamBroker = rv.NoOpLogger = rv.NoOpEventReporter = rv.NoOpDeviceController = rv.NoOpDebugLogger = rv.NoOpAudioVideoController = rv.NScaleVideoUplinkBandwidthPolicy = rv.MutableVideoPreferences = rv.MultiLogger = rv.MonitorTask = rv.ModelSpecBuilder = rv.MessagingSessionConfiguration = rv.Message = rv.MeetingSessionVideoAvailability = rv.MeetingSessionURLs = rv.MeetingSessionTURNCredentials = rv.MeetingSessionStatusCode = rv.MeetingSessionStatus = rv.MeetingSessionPOSTLogger = rv.MeetingSessionLifecycleEventCondition = rv.MeetingSessionLifecycleEvent = rv.MeetingSessionCredentials = void 0, rv.WaitForAttendeePresenceTask = rv.VoiceFocusTransformDevice = rv.VoiceFocusDeviceTransformer = rv.VideoTileState = rv.VideoStreamDescription = rv.VideoSource = rv.VideoQualitySettings = rv.VideoPriorityBasedPolicyConfig = rv.VideoPriorityBasedPolicy = rv.VideoPreferences = rv.VideoPreference = rv.VideoOnlyTransceiverController = rv.VideoLogEvent = rv.VideoAdaptiveProbePolicy = rv.Versioning = rv.UnusableAudioWarningConnectionHealthPolicy = rv.TypeError = rv.TranscriptionStatusType = rv.TranscriptionStatus = rv.TranscriptResult = rv.TranscriptLanguageWithScore = rv.TranscriptItemType = rv.TranscriptItem = rv.TranscriptEntity = rv.TranscriptAlternative = rv.Transcript = rv.TimeoutTask = rv.TimeoutScheduler = rv.TaskStatus = rv.TargetDisplaySize = rv.SubscribeAndReceiveSubscribeAckTask = rv.StreamMetricReport = rv.Some = rv.SingleNodeAudioTransformDevice = rv.SimulcastVideoStreamIndex = rv.SimulcastTransceiverController = rv.SimulcastLayers = rv.SignalingClientVideoSubscriptionConfiguration = rv.SignalingClientSubscribe = rv.SignalingClientJoin = rv.SignalingClientEventType = rv.SignalingClientEvent = rv.SignalingClientConnectionRequest = rv.SignalingAndMetricsConnectionMonitor = rv.SetRemoteDescriptionTask = rv.SetLocalDescriptionTask = rv.SessionStateControllerTransitionResult = rv.SessionStateControllerState = rv.SessionStateControllerDeferPriority = rv.SessionStateControllerAction = void 0, rv.isVideoTransformDevice = rv.isDestroyable = rv.isAudioTransformDevice = rv.ZLIBTextCompressor = rv.WebSocketReadyState = void 0;
    const tv = AllHighestVideoBandwidthPolicy$1;
    rv.AllHighestVideoBandwidthPolicy = tv.default;
    const ev = ApplicationMetadata$1;
    rv.ApplicationMetadata = ev.default;
    const iv = AsyncScheduler$1;
    rv.AsyncScheduler = iv.default;
    const ov = AttachMediaInputTask$1;
    rv.AttachMediaInputTask = ov.default;
    const av = Attendee$1;
    rv.Attendee = av.default;
    const sv = AudioLogEvent;
    rv.AudioLogEvent = sv.default;
    const lv = AudioProfile$1;
    rv.AudioProfile = lv.default;
    const uv = AudioVideoControllerState$1;
    rv.AudioVideoControllerState = uv.default;
    const cv = BackgroundBlurStrength;
    rv.BackgroundBlurStrength = cv.default;
    const dv = BackgroundBlurVideoFrameProcessor$1;
    rv.BackgroundBlurVideoFrameProcessor = dv.default;
    const hv = BackgroundFilterVideoFrameProcessor$1;
    rv.BackgroundFilterVideoFrameProcessor = hv.default;
    const pv = BackgroundReplacementVideoFrameProcessor$1;
    rv.BackgroundReplacementVideoFrameProcessor = pv.default;
    const yv = BaseConnectionHealthPolicy$1;
    rv.BaseConnectionHealthPolicy = yv.default;
    const Sv = BaseTask$1;
    rv.BaseTask = Sv.default;
    const _v = BitrateParameters$1;
    rv.BitrateParameters = _v.default;
    const Ev = CSPMonitor$1;
    rv.CSPMonitor = Ev.default;
    const wv = CanvasVideoFrameBuffer$1;
    rv.CanvasVideoFrameBuffer = wv.default;
    const xv = CheckAudioConnectivityFeedback;
    rv.CheckAudioConnectivityFeedback = xv.default;
    const Cv = CheckAudioInputFeedback;
    rv.CheckAudioInputFeedback = Cv.default;
    const Av = CheckAudioOutputFeedback;
    rv.CheckAudioOutputFeedback = Av.default;
    const Ov = CheckCameraResolutionFeedback;
    rv.CheckCameraResolutionFeedback = Ov.default;
    const Lv = CheckContentShareConnectivityFeedback;
    rv.CheckContentShareConnectivityFeedback = Lv.default;
    const jv = CheckNetworkTCPConnectivityFeedback;
    rv.CheckNetworkTCPConnectivityFeedback = jv.default;
    const Dv = CheckNetworkUDPConnectivityFeedback;
    rv.CheckNetworkUDPConnectivityFeedback = Dv.default;
    const Vv = CheckVideoConnectivityFeedback;
    rv.CheckVideoConnectivityFeedback = Vv.default;
    const Gv = CheckVideoInputFeedback;
    rv.CheckVideoInputFeedback = Gv.default;
    const Yv = CleanRestartedSessionTask$1;
    rv.CleanRestartedSessionTask = Yv.default;
    const Xv = CleanStoppedSessionTask$1;
    rv.CleanStoppedSessionTask = Xv.default;
    const L1 = ClientMetricReportDirection;
    rv.ClientMetricReportDirection = L1.default;
    const Bv = ClientMetricReportMediaType;
    rv.ClientMetricReportMediaType = Bv.default;
    const Qv = ClientVideoStreamReceivingReport$1;
    rv.ClientVideoStreamReceivingReport = Qv.default;
    const B1 = ConnectionHealthData$1;
    rv.ConnectionHealthData = B1.default;
    const K1 = ConnectionHealthPolicyConfiguration$1;
    rv.ConnectionHealthPolicyConfiguration = K1.default;
    const j1 = ConsoleLogger$1;
    rv.ConsoleLogger = j1.default;
    const P1 = ContentShareConstants$1;
    rv.ContentShareConstants = P1.default;
    const D1 = ContentShareMediaStreamBroker$1;
    rv.ContentShareMediaStreamBroker = D1.default;
    const I1 = CreatePeerConnectionTask$1;
    rv.CreatePeerConnectionTask = I1.default;
    const F1 = CreateSDPTask$1;
    rv.CreateSDPTask = F1.default;
    const M1 = DataMessage$1;
    rv.DataMessage = M1.default;
    const U1 = DefaultActiveSpeakerDetector$1;
    rv.DefaultActiveSpeakerDetector = U1.default;
    const H1 = DefaultActiveSpeakerPolicy$1;
    rv.DefaultActiveSpeakerPolicy = H1.default;
    const k1 = DefaultAudioMixController$1;
    rv.DefaultAudioMixController = k1.default;
    const Q1 = requireDefaultAudioVideoController();
    rv.DefaultAudioVideoController = Q1.default;
    const Y1 = DefaultAudioVideoFacade$1;
    rv.DefaultAudioVideoFacade = Y1.default;
    const r$ = DefaultBrowserBehavior$1;
    rv.DefaultBrowserBehavior = r$.default;
    const a$ = DefaultClientMetricReport$1;
    rv.DefaultClientMetricReport = a$.default;
    const S$ = DefaultContentShareController$1;
    rv.DefaultContentShareController = S$.default;
    const d$ = DefaultDeviceController$1;
    rv.DefaultDeviceController = d$.default;
    const x$ = DefaultDevicePixelRatioMonitor$1;
    rv.DefaultDevicePixelRatioMonitor = x$.default;
    const g$ = DefaultEventController$1;
    rv.DefaultEventController = g$.default;
    const _$ = DefaultMediaDeviceFactory$1;
    rv.DefaultMediaDeviceFactory = _$.default;
    const O$ = DefaultMeetingEventReporter$1;
    rv.DefaultMeetingEventReporter = O$.default;
    const E$ = DefaultMeetingReadinessChecker$1;
    rv.DefaultMeetingReadinessChecker = E$.default;
    const O1 = requireDefaultMeetingSession();
    rv.DefaultMeetingSession = O1.default;
    const Z1 = DefaultMessagingSession$1;
    rv.DefaultMessagingSession = Z1.default;
    const Hv = DefaultModality$1;
    rv.DefaultModality = Hv.default;
    const Jv = DefaultPingPong$1;
    rv.DefaultPingPong = Jv.default;
    const Mv = DefaultRealtimeController$1;
    rv.DefaultRealtimeController = Mv.default;
    const zv = DefaultReconnectController$1;
    rv.DefaultReconnectController = zv.default;
    const Wv = DefaultSDP$1;
    rv.DefaultSDP = Wv.default;
    const Kv = DefaultSessionStateController$1;
    rv.DefaultSessionStateController = Kv.default;
    const c1 = DefaultSigV4$1;
    rv.DefaultSigV4 = c1.default;
    const $1 = DefaultSignalingClient$1;
    rv.DefaultSignalingClient = $1.default;
    const N1 = DefaultSimulcastUplinkPolicy$1;
    rv.DefaultSimulcastUplinkPolicy = N1.default;
    const e$ = DefaultStatsCollector$1;
    rv.DefaultStatsCollector = e$.default;
    const R1 = DefaultTransceiverController$1;
    rv.DefaultTransceiverController = R1.default;
    const Zv = DefaultTranscriptionController;
    rv.DefaultTranscriptionController = Zv.default;
    const C1 = DefaultUserAgentParser$1;
    rv.DefaultUserAgentParser = C1.default;
    const q1 = DefaultVideoCaptureAndEncodeParameter$1;
    rv.DefaultVideoCaptureAndEncodeParameter = q1.default;
    const t$ = DefaultVideoFrameProcessorPipeline$1;
    rv.DefaultVideoFrameProcessorPipeline = t$.default;
    const _b = DefaultVideoStreamIdSet$1;
    rv.DefaultVideoStreamIdSet = _b.default;
    const c$ = DefaultVideoStreamIndex$1;
    rv.DefaultVideoStreamIndex = c$.default;
    const l$ = DefaultVideoTile$1;
    rv.DefaultVideoTile = l$.default;
    const p$ = DefaultVideoTileController$1;
    rv.DefaultVideoTileController = p$.default;
    const h$ = DefaultVideoTileFactory$1;
    rv.DefaultVideoTileFactory = h$.default;
    const y$ = DefaultVideoTransformDevice$1;
    rv.DefaultVideoTransformDevice = y$.default;
    const V$ = DefaultVolumeIndicatorAdapter$1;
    rv.DefaultVolumeIndicatorAdapter = V$.default;
    const D$ = DefaultWebSocketAdapter$1;
    rv.DefaultWebSocketAdapter = D$.default;
    const A$ = DevicePixelRatioWindowSource$1;
    rv.DevicePixelRatioWindowSource = A$.default;
    const L$ = DeviceSelection$1;
    rv.DeviceSelection = L$.default;
    const U$ = EventBufferConfiguration$1;
    rv.EventBufferConfiguration = U$.default;
    const jw = EventIngestionConfiguration$1;
    rv.EventIngestionConfiguration = jw.default;
    const Q$ = FinishGatheringICECandidatesTask$1;
    rv.FinishGatheringICECandidatesTask = Q$.default;
    const W$ = FullJitterBackoff$1;
    rv.FullJitterBackoff = W$.default;
    const eE = FullJitterBackoffFactory$1;
    rv.FullJitterBackoffFactory = eE.default;
    const q$ = FullJitterLimitedBackoff$1;
    rv.FullJitterLimitedBackoff = q$.default;
    const Hw = GetUserMediaError$1;
    rv.GetUserMediaError = Hw.default;
    const J$ = GlobalMetricReport$1;
    rv.GlobalMetricReport = J$.default;
    const Y$ = InMemoryJSONEventBuffer$1;
    rv.InMemoryJSONEventBuffer = Y$.default;
    const ix = IntervalScheduler$1;
    rv.IntervalScheduler = ix.default;
    const V1 = JoinAndReceiveIndexTask$1;
    rv.JoinAndReceiveIndexTask = V1.default;
    const z1 = LeaveAndReceiveLeaveAckTask$1;
    rv.LeaveAndReceiveLeaveAckTask = z1.default;
    const J1 = ListenForVolumeIndicatorsTask$1;
    rv.ListenForVolumeIndicatorsTask = J1.default;
    const n$ = Log$1;
    rv.Log = n$.default;
    const u$ = LogLevel;
    rv.LogLevel = u$.default;
    const v$ = MediaDeviceProxyHandler$1;
    rv.MediaDeviceProxyHandler = v$.default;
    const w$ = MeetingEventsClientConfiguration$1;
    rv.MeetingEventsClientConfiguration = w$.default;
    const s$ = MeetingReadinessCheckerConfiguration$1;
    rv.MeetingReadinessCheckerConfiguration = s$.default;
    const $$ = MeetingSessionConfiguration$1;
    rv.MeetingSessionConfiguration = $$.default;
    const f$ = MeetingSessionCredentials$1;
    rv.MeetingSessionCredentials = f$.default;
    const G1 = MeetingSessionLifecycleEvent;
    rv.MeetingSessionLifecycleEvent = G1.default;
    const I$ = MeetingSessionLifecycleEventCondition;
    rv.MeetingSessionLifecycleEventCondition = I$.default;
    const F$ = MeetingSessionPOSTLogger$1;
    rv.MeetingSessionPOSTLogger = F$.default;
    const j$ = MeetingSessionStatus$1;
    rv.MeetingSessionStatus = j$.default;
    const P$ = MeetingSessionStatusCode;
    rv.MeetingSessionStatusCode = P$.default;
    const Z$ = MeetingSessionTURNCredentials$1;
    rv.MeetingSessionTURNCredentials = Z$.default;
    const K$ = MeetingSessionURLs$1;
    rv.MeetingSessionURLs = K$.default;
    const u3 = MeetingSessionVideoAvailability$1;
    rv.MeetingSessionVideoAvailability = u3.default;
    const sO = Message$1;
    rv.Message = sO.default;
    const a3 = MessagingSessionConfiguration$1;
    rv.MessagingSessionConfiguration = a3.default;
    const e3 = ModelSpecBuilder$1;
    rv.ModelSpecBuilder = e3.default;
    const d3 = MonitorTask$1;
    rv.MonitorTask = d3.default;
    const n3 = MultiLogger$1;
    rv.MultiLogger = n3.default;
    const o3 = NScaleVideoUplinkBandwidthPolicy$1;
    rv.NScaleVideoUplinkBandwidthPolicy = o3.default;
    const f3 = requireNoOpAudioVideoController();
    rv.NoOpAudioVideoController = f3.default;
    const r3 = NoOpDebugLogger$1;
    rv.NoOpDebugLogger = r3.default;
    const R$ = NoOpDeviceController$1;
    rv.NoOpDeviceController = R$.default;
    const z$ = NoOpEventReporter$1;
    rv.NoOpEventReporter = z$.default;
    const zw = NoOpLogger$1;
    rv.NoOpLogger = zw.default;
    const G$ = NoOpMediaStreamBroker$1;
    rv.NoOpMediaStreamBroker = G$.default;
    const i3 = NoOpTask$1;
    rv.NoOpTask = i3.default;
    const S3 = NoOpVideoElementFactory$1;
    rv.NoOpVideoElementFactory = S3.default;
    const A3 = NoOpVideoFrameProcessor$1;
    rv.NoOpVideoFrameProcessor = A3.default;
    const F3 = NoVideoDownlinkBandwidthPolicy$1;
    rv.NoVideoDownlinkBandwidthPolicy = F3.default;
    const DD = NoVideoUplinkBandwidthPolicy$1;
    rv.NoVideoUplinkBandwidthPolicy = DD.default;
    const LD = NotFoundError$1;
    rv.NotFoundError = LD.default;
    const QD = NotReadableError$1;
    rv.NotReadableError = QD.default;
    const eM = OnceTask$1;
    rv.OnceTask = eM.default;
    const tM = OpenSignalingConnectionTask$1;
    rv.OpenSignalingConnectionTask = tM.default;
    const nM = OverconstrainedError$1;
    rv.OverconstrainedError = nM.default;
    const rM = ParallelGroupTask$1;
    rv.ParallelGroupTask = rM.default;
    const iM = PermissionDeniedError$1;
    rv.PermissionDeniedError = iM.default;
    const oM = requirePromoteToPrimaryMeetingTask();
    rv.PromoteToPrimaryMeetingTask = oM.default;
    const aM = RealtimeAttendeePositionInFrame$1;
    rv.RealtimeAttendeePositionInFrame = aM.default;
    const sM = RealtimeState$1;
    rv.RealtimeState = sM.default;
    const j3 = RealtimeVolumeIndicator$1;
    rv.RealtimeVolumeIndicator = j3.default;
    const lM = ReceiveAudioInputTask$1;
    rv.ReceiveAudioInputTask = lM.default;
    const cM = ReceiveTURNCredentialsTask$1;
    rv.ReceiveTURNCredentialsTask = cM.default;
    const B3 = ReceiveVideoInputTask$1;
    rv.ReceiveVideoInputTask = B3.default;
    const uM = ReceiveVideoStreamIndexTask$1;
    rv.ReceiveVideoStreamIndexTask = uM.default;
    const dM = ReconnectionHealthPolicy$1;
    rv.ReconnectionHealthPolicy = dM.default;
    const fM = ReleaseMediaStreamsTask$1;
    rv.ReleaseMediaStreamsTask = fM.default;
    const hM = RunnableTask$1;
    rv.RunnableTask = hM.default;
    const pM = SDPCandidateType;
    rv.SDPCandidateType = pM.default;
    const mM = SDPMediaSection$1;
    rv.SDPMediaSection = mM.default;
    const gM = SendAndReceiveDataMessagesTask$1;
    rv.SendAndReceiveDataMessagesTask = gM.default;
    const vM = SerialGroupTask$1;
    rv.SerialGroupTask = vM.default;
    const yM = SessionStateControllerAction;
    rv.SessionStateControllerAction = yM.default;
    const bM = SessionStateControllerDeferPriority;
    rv.SessionStateControllerDeferPriority = bM.default;
    const SM = SessionStateControllerState;
    rv.SessionStateControllerState = SM.default;
    const _M = SessionStateControllerTransitionResult;
    rv.SessionStateControllerTransitionResult = _M.default;
    const $M = SetLocalDescriptionTask$1;
    rv.SetLocalDescriptionTask = $M.default;
    const EM = SetRemoteDescriptionTask$1;
    rv.SetRemoteDescriptionTask = EM.default;
    const wM = SignalingAndMetricsConnectionMonitor$1;
    rv.SignalingAndMetricsConnectionMonitor = wM.default;
    const xM = SignalingClientConnectionRequest$1;
    rv.SignalingClientConnectionRequest = xM.default;
    const kM = SignalingClientEvent$1;
    rv.SignalingClientEvent = kM.default;
    const TM = SignalingClientEventType;
    rv.SignalingClientEventType = TM.default;
    const CM = SignalingClientJoin$1;
    rv.SignalingClientJoin = CM.default;
    const AM = SignalingClientSubscribe$1;
    rv.SignalingClientSubscribe = AM.default;
    const b3 = SignalingClientVideoSubscriptionConfiguration$1;
    rv.SignalingClientVideoSubscriptionConfiguration = b3.default;
    const V3 = SimulcastLayers;
    rv.SimulcastLayers = V3.default;
    const RM = SimulcastTransceiverController$1;
    rv.SimulcastTransceiverController = RM.default;
    const OM = SimulcastVideoStreamIndex$1;
    rv.SimulcastVideoStreamIndex = OM.default;
    const U3 = SingleNodeAudioTransformDevice$1;
    rv.SingleNodeAudioTransformDevice = U3.default;
    const IM = StreamMetricReport$1;
    rv.StreamMetricReport = IM.default;
    const H3 = SubscribeAndReceiveSubscribeAckTask$1;
    rv.SubscribeAndReceiveSubscribeAckTask = H3.default;
    const PM = TargetDisplaySize;
    rv.TargetDisplaySize = PM.default;
    const z3 = TaskStatus$1;
    rv.TaskStatus = z3.default;
    const W3 = TimeoutScheduler$1;
    rv.TimeoutScheduler = W3.default;
    const R3 = TimeoutTask$1;
    rv.TimeoutTask = R3.default;
    const _3 = Transcript$1;
    rv.Transcript = _3.default;
    const DM = TranscriptAlternative$1;
    rv.TranscriptAlternative = DM.default;
    const G3 = TranscriptEntity$1;
    rv.TranscriptEntity = G3.default;
    const MM = TranscriptItem$1;
    rv.TranscriptItem = MM.default;
    const NM = TranscriptItemType$1;
    rv.TranscriptItemType = NM.default;
    const K3 = TranscriptLanguageWithScore$1;
    rv.TranscriptLanguageWithScore = K3.default;
    const q3 = TranscriptResult$1;
    rv.TranscriptResult = q3.default;
    const s3 = TranscriptionStatus$1;
    rv.TranscriptionStatus = s3.default;
    const h3 = TranscriptionStatusType$1;
    rv.TranscriptionStatusType = h3.default;
    const LM = _TypeError;
    rv.TypeError = LM.default;
    const FM = UnusableAudioWarningConnectionHealthPolicy$1;
    rv.UnusableAudioWarningConnectionHealthPolicy = FM.default;
    const jM = Versioning$1;
    rv.Versioning = jM.default;
    const BM = VideoAdaptiveProbePolicy$1;
    rv.VideoAdaptiveProbePolicy = BM.default;
    const VM = VideoLogEvent;
    rv.VideoLogEvent = VM.default;
    const M$ = VideoOnlyTransceiverController$1;
    rv.VideoOnlyTransceiverController = M$.default;
    const UM = VideoPreference$1;
    rv.VideoPreference = UM.default;
    const m3 = VideoPreferences$1;
    rv.VideoPreferences = m3.default;
    const Y3 = VideoPriorityBasedPolicy$1;
    rv.VideoPriorityBasedPolicy = Y3.default;
    const HM = VideoPriorityBasedPolicyConfig$1;
    rv.VideoPriorityBasedPolicyConfig = HM.default;
    const zM = VideoQualitySettings$1;
    rv.VideoQualitySettings = zM.default;
    const O3 = VideoSource$1;
    rv.VideoSource = O3.default;
    const J3 = VideoStreamDescription$1;
    rv.VideoStreamDescription = J3.default;
    const WM = VideoTileState$1;
    rv.VideoTileState = WM.default;
    const v3 = VoiceFocusDeviceTransformer$1;
    rv.VoiceFocusDeviceTransformer = v3.default;
    const Z3 = VoiceFocusTransformDevice$1;
    rv.VoiceFocusTransformDevice = Z3.default;
    const X3 = WaitForAttendeePresenceTask$1;
    rv.WaitForAttendeePresenceTask = X3.default;
    const Q3 = WebSocketReadyState;
    rv.WebSocketReadyState = Q3.default;
    const $3 = ZLIBTextCompressor$1;
    rv.ZLIBTextCompressor = $3.default;
    const I3 = VideoPreferences$1;
    Object.defineProperty(rv, "MutableVideoPreferences", { enumerable: !0, get: function() {
      return I3.MutableVideoPreferences;
    } });
    const P3 = Types;
    Object.defineProperty(rv, "Some", { enumerable: !0, get: function() {
      return P3.Some;
    } }), Object.defineProperty(rv, "None", { enumerable: !0, get: function() {
      return P3.None;
    } }), Object.defineProperty(rv, "Maybe", { enumerable: !0, get: function() {
      return P3.Maybe;
    } });
    const D3 = AudioTransformDevice;
    Object.defineProperty(rv, "isAudioTransformDevice", { enumerable: !0, get: function() {
      return D3.isAudioTransformDevice;
    } });
    const GM = Destroyable;
    Object.defineProperty(rv, "isDestroyable", { enumerable: !0, get: function() {
      return GM.isDestroyable;
    } });
    const KM = VideoTransformDevice;
    Object.defineProperty(rv, "isVideoTransformDevice", { enumerable: !0, get: function() {
      return KM.isVideoTransformDevice;
    } });
  }(build)), build;
}
var buildExports = requireBuild();
class MeetingChimeProvider {
  constructor(tv) {
    T$(this, "statusObserver");
    this.audioVideo = tv;
  }
  async join(tv) {
    await this.chooseDefaultIODevices(), this.audioVideo.realtimeUnsubscribeToAttendeeIdPresence(
      (ev) => {
        tv(ev, !1);
      }
    ), this.audioVideo.realtimeSubscribeToAttendeeIdPresence(
      (ev, iv) => {
        tv(ev, iv);
      }
    ), this.audioVideo.start();
  }
  addStatusObserver(tv) {
    var ev;
    this.statusObserver = {
      audioVideoDidStop: async (iv) => {
        iv.statusCode() === 6 ? tv("FINALIZED") : tv(iv.statusCode().toString());
      }
    }, (ev = this.audioVideo) == null || ev.addObserver(this.statusObserver);
  }
  removeStatusObserver() {
    var tv;
    this.statusObserver && ((tv = this.audioVideo) == null || tv.removeObserver(this.statusObserver));
  }
  leave() {
    this.audioVideo.stop();
  }
  async chooseDefaultIODevices() {
    this.audioVideo.setDeviceLabelTrigger(
      async () => await navigator.mediaDevices.getUserMedia({ audio: !0, video: !0 })
    );
    const tv = await this.audioVideo.listAudioInputDevices();
    if (tv && tv.length > 0 && tv[0].deviceId)
      try {
        await this.audioVideo.chooseAudioInputDevice(tv[0].deviceId);
      } catch (iv) {
        logger$1.error("Audio input device not found", iv);
      }
    const ev = await this.audioVideo.listAudioOutputDevices();
    if (ev && ev.length > 0 && ev[0].deviceId)
      try {
        await this.audioVideo.chooseAudioOutputDevice(ev[0].deviceId);
      } catch (iv) {
        logger$1.error("Audio output device not found", iv);
      }
  }
}
class MeetProvidersChimeFactory {
  constructor() {
    T$(this, "audioVideo");
    T$(this, "joinInfo");
  }
  getAudioVideo() {
    if (!this.audioVideo)
      throw new Error("Audio video have not been inicialized");
    return this.audioVideo;
  }
  createMeeting() {
    return new MeetingChimeProvider(this.getAudioVideo());
  }
  createAudioVideo() {
    return new AudioVideoChimeProvider(this.getAudioVideo());
  }
  createChat() {
    return new ChatChimeProvider(this.getAudioVideo());
  }
  initJoinInfo(tv) {
    this.joinInfo = tv;
    const ev = new buildExports.ConsoleLogger("SDK", buildExports.LogLevel.ERROR), iv = new buildExports.DefaultDeviceController(ev), ov = new buildExports.MeetingSessionConfiguration(
      tv.Meeting,
      tv.Attendee
    ), av = new buildExports.DefaultMeetingSession(
      ov,
      ev,
      iv
    );
    this.audioVideo = av.audioVideo;
  }
  getJoinInfo() {
    return this.joinInfo;
  }
}
class PersonalNotAvailableError extends Error {
  constructor() {
    super("PersonalNotAvailableError");
  }
}
class FindItemProductService {
  findItemProduct(tv, ev) {
    var ov;
    const iv = Ac(ev);
    return (ov = tv.items) == null ? void 0 : ov.find(
      (av) => av.variationCode === iv
    );
  }
  findItemProductIndex(tv, ev) {
    var av;
    const iv = Ac(ev);
    return ((av = tv.items) == null ? void 0 : av.findIndex(
      (sv) => sv.variationCode.includes(
        iv
      )
    )) ?? -1;
  }
}
class LoadJoinDataService {
  constructor(tv, ev) {
    this.clientCallRepository = tv, this.meetProvidersFactory = ev;
  }
  async execute(tv) {
    const ev = await this.clientCallRepository.getJoinInfo(tv);
    return ev.NumAttendee >= 2, this.meetProvidersFactory.initJoinInfo(ev), ev;
  }
}
class RegisterCallService {
  constructor(tv, ev) {
    this.clientCallRepository = tv, this.clientCallB2BRepository = ev;
  }
  getRepository({
    b2b: tv,
    organization: ev
  }) {
    if (!tv)
      return this.clientCallRepository;
    if (!ev)
      throw new Error("Organization not provided");
    return this.clientCallB2BRepository.setOrganization(ev), this.clientCallB2BRepository;
  }
  async execute(tv) {
    return await this.getRepository(tv).register(tv);
  }
}
class VerifyPersonalAvailableService {
  constructor(tv, ev, iv) {
    this.collectionRepository = tv, this.personalRepository = ev, this.personalB2BRepository = iv;
  }
  getRepository({
    b2b: tv,
    organization: ev
  }) {
    if (!tv)
      return this.personalRepository;
    if (!ev)
      throw new Error("Organization not provided");
    return this.personalB2BRepository.setOrganization(ev), this.personalB2BRepository;
  }
  async getAvailableInfo(tv) {
    const ev = this.getRepository(tv);
    if (tv.productId) {
      const iv = await this.collectionRepository.getCollections(
        tv.account,
        tv.productId
      );
      return await ev.getAvailableByCollections(
        tv.account,
        iv
      );
    }
    return await ev.getAvailable(tv.account);
  }
  async execute(tv) {
    let ev = !0, iv = !1;
    const ov = await this.getAvailableInfo(tv);
    ev = ov.HoursAvailable;
    const { PersonalAvailableHours: av } = ov;
    if (iv = av.some(
      (lv) => (lv.status === "AVAILABLE" || tv.manualCallHandling) && lv.available
    ), !(ev && iv))
      throw new PersonalNotAvailableError();
  }
  async hasPersonal(tv) {
    const ev = await this.getAvailableInfo(tv), { Personal: iv } = ev;
    if (iv.length > 0)
      return !0;
    throw new PersonalNotAvailableError();
  }
}
const CLIENT_STORAGE_KEY = "CLIENT_STORAGE_KEY", CONNECTION_STORAGE_KEY = "CONNECTION_STORAGE_KEY";
class ClientConnectionStorageRepository {
  constructor() {
    sessionStorage.getItem("deleteSession") && this.clear();
  }
  saveClientInfo(tv) {
    sessionStorage.setItem(CLIENT_STORAGE_KEY, JSON.stringify(tv));
  }
  saveConnectionInfo(tv) {
    sessionStorage.setItem(CONNECTION_STORAGE_KEY, JSON.stringify(tv));
  }
  getClientInfo() {
    const tv = sessionStorage.getItem(CLIENT_STORAGE_KEY);
    return tv ? JSON.parse(tv) : null;
  }
  getConnectionInfo() {
    const tv = sessionStorage.getItem(CONNECTION_STORAGE_KEY);
    return tv ? JSON.parse(tv) : null;
  }
  clear() {
    sessionStorage.removeItem(CLIENT_STORAGE_KEY), sessionStorage.removeItem(CONNECTION_STORAGE_KEY);
  }
}
class PersonalRestRepository {
  constructor(tv) {
    this.httpClient = tv;
  }
  setOrganization(tv) {
    throw new Error("Method not implemented.");
  }
  async getAvailable(tv) {
    return await this.httpClient.get(
      `personal/client/countWithoutProductId?account=${tv}`
    );
  }
  async getAvailableByCollections(tv, ev) {
    return await this.httpClient.get(
      `/personal/client/count?account=${tv}&collectionsId=${ev.join(
        ","
      )}`
    );
  }
}
class CollectionRestRepository {
  constructor(tv) {
    this.httpClient = tv;
  }
  async getCollections(tv, ev) {
    return await this.httpClient.get(
      `personal/vtex/getCollectionsByProductID?account=${tv}&productId=${ev}`
    );
  }
}
class ClientCallBaseRestRepository {
  constructor(tv) {
    this.httpClient = tv;
  }
  async endCall(tv, ev, iv, ov) {
    const av = iv ? `&personalId=${iv}` : "";
    await this.httpClient.post(
      `/personal/admin/client/end/?clientId=${ev}&status=${ov}&account=${tv}${av}`,
      {
        data: { clientId: ev }
      }
    );
  }
}
class ClientCallRestRepository extends ClientCallBaseRestRepository {
  setOrganization(tv) {
    throw new Error("Method not implemented.");
  }
  async register(tv) {
    const ev = tv.productId ? "register" : "registerWithoutProductId";
    return await this.httpClient.post(`personal/client/${ev}`, {
      data: tv
    });
  }
  async get(tv) {
    return await this.httpClient.get(`personal/client/${tv}`);
  }
  async getJoinInfo(tv) {
    return (await this.httpClient.post(
      `personal/client/join?title=${tv.title}&skip=true&name=${tv.name}&device=${tv.device}&clientId=${tv.clientId}&account=${tv.account}&isAttendee=${tv.isAttendee}`,
      { ignoreError: !0 }
    )).JoinInfo;
  }
  async getAttendeeInfo(tv, ev) {
    const { AttendeeInfo: iv } = await this.httpClient.get(`attendee?title=${tv}&attendeeId=${ev}`);
    return { id: iv.AttendeeId, name: iv.Name };
  }
}
class NetPromoterScoreRestRepository {
  constructor(tv) {
    this.httpClient = tv;
  }
  async save(tv) {
    await this.httpClient.post("/personal/nps/metric", {
      data: tv
    });
  }
}
class ClientCallB2BRestRepository extends ClientCallBaseRestRepository {
  constructor() {
    super(...arguments);
    T$(this, "organization", null);
  }
  setOrganization(ev) {
    this.organization = ev;
  }
  async register(ev) {
    return await this.httpClient.post(
      "personal/client/registerB2BClient",
      { data: { ...ev, organization: this.organization } }
    );
  }
  async get(ev) {
    return await this.httpClient.get(`personal/client/${ev}`);
  }
  async getJoinInfo(ev) {
    return (await this.httpClient.post(
      `personal/client/join?title=${ev.title}&skip=true&name=${ev.name}&device=${ev.device}&clientId=${ev.clientId}&account=${ev.account}&isAttendee=${ev.isAttendee}`,
      { ignoreError: !0 }
    )).JoinInfo;
  }
  async getAttendeeInfo(ev, iv) {
    const { AttendeeInfo: ov } = await this.httpClient.get(`attendee?title=${ev}&attendeeId=${iv}`);
    return { id: ov.AttendeeId, name: ov.Name };
  }
}
class PersonalB2BRestRepository {
  constructor(tv) {
    T$(this, "organization", null);
    this.httpClient = tv;
  }
  setOrganization(tv) {
    this.organization = tv;
  }
  async getAvailable(tv) {
    var ev;
    return await this.httpClient.get(
      `personal/client/countPersonalB2BAvailable?organizationId=${(ev = this.organization) == null ? void 0 : ev.id}&account=${tv}`
    );
  }
  async getAvailableByCollections(tv, ev) {
    var iv;
    return await this.httpClient.get(
      `/personal/client/countPersonalB2BAvailable?organizationId=${(iv = this.organization) == null ? void 0 : iv.id}&account=${tv}&collectionsId=${ev.join(",")}`
    );
  }
}
const perant$1 = getPerant(), httpClient = new gv({
  baseUrl: environment$2.apiUrls.rest,
  logger: perant$1.coreLogger
}), personalRepository = new PersonalRestRepository(
  httpClient
), personalB2BRepository = new PersonalB2BRestRepository(
  httpClient
), clientCallRepository = new ClientCallRestRepository(
  httpClient
), clientCallB2BRepository = new ClientCallB2BRestRepository(httpClient), collectionRepository = new CollectionRestRepository(
  httpClient
), netPromoterScoreRepository = new NetPromoterScoreRestRepository(httpClient), clientConnectionRepository = new ClientConnectionStorageRepository(), verifyPersonalAvailableService = new VerifyPersonalAvailableService(
  collectionRepository,
  personalRepository,
  personalB2BRepository
), meetProvidersFactory = new MeetProvidersChimeFactory(), findItemProductService = new FindItemProductService(), loadJoinDataService = new LoadJoinDataService(
  clientCallRepository,
  meetProvidersFactory
), registerCallService = new RegisterCallService(
  clientCallRepository,
  clientCallB2BRepository
), typesForUpdateUTM = [
  Pr$3.ADD_TO_CART,
  Pr$3.OPEN_TAB
], useAddToCartEventListener = () => {
  const rv = usePA(), { updateUTMConfig: tv, account: ev, orderFormId: iv } = usePerant((av) => av.config), ov = reactExports.useCallback(() => {
    const av = clientConnectionRepository.getClientInfo();
    if (!av) {
      console.log("Error on get client info");
      return;
    }
    const { personalId: sv, fullName: lv, id: uv } = av;
    tv == null || tv({
      account: ev,
      orderFormId: iv,
      utmSource: `ps-sales:::${sv}:::${uv}`,
      marketingTags: [`Seller:${lv}`]
    });
  }, [tv, ev, iv]);
  Cc(
    rv,
    EventBusWildcards.ADD_TO_CART_HOOKS,
    (av) => {
      if (av.name === EventNames.ATCH_ACTION_EXECUTED) {
        const { success: sv, actionType: lv } = av.data;
        sv && typesForUpdateUTM.includes(lv) && ov();
      }
    }
  );
}, SC_SELECTOR = "#suiteshare_chat", WC_SELECTOR = "#widget_circle", useAssistedSalesHandlers = () => {
  const { navigate: rv } = useNavigation();
  return {
    handleClick: async (ev) => {
      var iv;
      try {
        const { element: ov, selector: av } = await ec$1(
          [SC_SELECTOR, WC_SELECTOR],
          5e3
        ).promise, sv = {
          [SC_SELECTOR]: () => ev ? ev() : rv(Screens.assistedSales),
          [WC_SELECTOR]: () => ov == null ? void 0 : ov.click()
        };
        (iv = sv[av]) == null || iv.call(sv);
      } catch (ov) {
        logger$1.error("Error waiting for element:", ov);
      }
    }
  };
}, __vite_glob_0_39 = "#suiteshare_chat #widget_circle,#suiteshare_chat #widget_popup,#suiteshare_widget{display:none!important}#suiteshare_chat #whts_widget_box iframe{height:80vh;max-height:80vh;width:100%}";
var define_import_meta_env_default = { BASE_URL: "/", MODE: "production", DEV: !1, PROD: !0, SSR: !1, STAGE: "prod" };
const RESET = Symbol(
  (define_import_meta_env_default ? "production" : void 0) !== "production" ? "RESET" : ""
), isPromiseLike = (rv) => typeof (rv == null ? void 0 : rv.then) == "function";
function createJSONStorage(rv = () => {
  try {
    return window.localStorage;
  } catch (ev) {
    (define_import_meta_env_default ? "production" : void 0) !== "production" && typeof window < "u" && console.warn(ev);
    return;
  }
}, tv) {
  var ev;
  let iv, ov;
  const av = {
    getItem: (uv, cv) => {
      var dv, hv;
      const pv = (Sv) => {
        if (Sv = Sv || "", iv !== Sv) {
          try {
            ov = JSON.parse(Sv, tv == null ? void 0 : tv.reviver);
          } catch {
            return cv;
          }
          iv = Sv;
        }
        return ov;
      }, yv = (hv = (dv = rv()) == null ? void 0 : dv.getItem(uv)) != null ? hv : null;
      return isPromiseLike(yv) ? yv.then(pv) : pv(yv);
    },
    setItem: (uv, cv) => {
      var dv;
      return (dv = rv()) == null ? void 0 : dv.setItem(
        uv,
        JSON.stringify(cv, void 0)
      );
    },
    removeItem: (uv) => {
      var cv;
      return (cv = rv()) == null ? void 0 : cv.removeItem(uv);
    }
  }, sv = (uv) => (cv, dv, hv) => uv(cv, (pv) => {
    let yv;
    try {
      yv = JSON.parse(pv || "");
    } catch {
      yv = hv;
    }
    dv(yv);
  });
  let lv;
  try {
    lv = (ev = rv()) == null ? void 0 : ev.subscribe;
  } catch {
  }
  return !lv && typeof window < "u" && typeof window.addEventListener == "function" && window.Storage && (lv = (uv, cv) => {
    if (!(rv() instanceof window.Storage))
      return () => {
      };
    const dv = (hv) => {
      hv.storageArea === rv() && hv.key === uv && cv(hv.newValue);
    };
    return window.addEventListener("storage", dv), () => {
      window.removeEventListener("storage", dv);
    };
  }), lv && (av.subscribe = sv(lv)), av;
}
const defaultStorage = createJSONStorage();
function atomWithStorage(rv, tv, ev = defaultStorage, iv) {
  const ov = atom(
    tv
  );
  return (define_import_meta_env_default ? "production" : void 0) !== "production" && (ov.debugPrivate = !0), ov.onMount = (sv) => {
    sv(ev.getItem(rv, tv));
    let lv;
    return ev.subscribe && (lv = ev.subscribe(rv, sv, tv)), lv;
  }, atom(
    (sv) => sv(ov),
    (sv, lv, uv) => {
      const cv = typeof uv == "function" ? uv(sv(ov)) : uv;
      return cv === RESET ? (lv(ov, tv), ev.removeItem(rv)) : cv instanceof Promise ? cv.then((dv) => (lv(ov, dv), ev.setItem(rv, dv))) : (lv(ov, cv), ev.setItem(rv, cv));
    }
  );
}
const cornerAtom = atom(-1);
cornerAtom.debugLabel = "corner";
const clientIniState = {
  id: "guest",
  fullName: "guest",
  phone: "guest",
  email: "guest",
  personalId: "admin",
  admin: {
    fullName: "admin"
  }
}, connectionIniState = {
  title: "",
  activeCamera: !1,
  activeMic: !1,
  hasBeenConnected: !1,
  joinInfo: void 0,
  cameraSwitched: !1
}, initAtom = atom(!1);
initAtom.debugLabel = "initAtom";
const clientInfoAtom = atom(clientIniState);
clientInfoAtom.debugLabel = "clientInfoAtom";
const connectionInfoAtom = atom(connectionIniState);
connectionInfoAtom.debugLabel = "connectionInfoAtom";
const meetIdAtom = atom("");
meetIdAtom.debugLabel = "meetIdAtom";
const isVariationSelectorOpenAtom = atom(!1);
isVariationSelectorOpenAtom.debugLabel = "isVariationSelectorOpenAtom";
const addToCartNotificationAtom = atom(null);
addToCartNotificationAtom.debugLabel = "addToCartNotificationAtom";
const showAssistedSalesAtom = atom(!1);
showAssistedSalesAtom.debugLabel = "showAssistedSalesAtom";
const assistedSalesIdAtom = atomWithStorage(
  "assistedSalesId",
  null
);
assistedSalesIdAtom.debugLabel = "assistedSalesIdAtom";
const assistedSalesWidgetIdAtom = atomWithStorage(
  "assistedSalesWidgetId",
  null
);
assistedSalesWidgetIdAtom.debugLabel = "assistedSalesWidgetIdAtom";
const toastNotificationAtom = atom({
  show: !1,
  message: ""
});
toastNotificationAtom.debugLabel = "toastNotificationAtom";
const activeMicAtom$1 = atom(!1);
activeMicAtom$1.debugLabel = "activeMicAtom";
const activeCameraAtom$1 = atom(!1);
activeCameraAtom$1.debugLabel = "activeCameraAtom";
const SUITE_SHARE_MIN_JS = "https://static.suiteshare.com/widgets.js", STYLE_ELEMENT_ID = "assisted-sales-global-styles", useInjectAssistedSales = () => {
  const rv = usePerant((dv) => {
    var hv;
    return (hv = dv.account) == null ? void 0 : hv.assistedSalesId;
  }), tv = usePerant(
    (dv) => {
      var hv;
      return (hv = dv.account) == null ? void 0 : hv.assistedSalesWidgetId;
    }
  ), ev = usePerant((dv) => {
    var hv;
    return (hv = dv.account) == null ? void 0 : hv.widgetConfig;
  }), iv = !!(ev != null && ev.assistedSalesButton), ov = useSetAtom(showAssistedSalesAtom), [av, sv] = useAtom(assistedSalesIdAtom), [lv, uv] = useAtom(
    assistedSalesWidgetIdAtom
  ), cv = reactExports.useMemo(
    () => ({
      init: String(av),
      ...lv ? { "data-id": String(lv) } : {}
    }),
    [av, lv]
  );
  $c$1(SUITE_SHARE_MIN_JS, { attrs: cv, enabled: !!av }), reactExports.useEffect(() => (av && manageStyles("insert"), () => manageStyles("remove")), [av]), reactExports.useEffect(() => {
    rv && rv !== av && sv(rv);
  }, [rv]), reactExports.useEffect(() => {
    tv && tv !== lv && uv(tv);
  }, [tv]), reactExports.useEffect(() => {
    ov(!!iv);
  }, [iv]);
};
function manageStyles(rv) {
  const tv = document.getElementById(STYLE_ELEMENT_ID);
  if (rv === "insert" && !tv) {
    const ev = document.createElement("style");
    ev.id = STYLE_ELEMENT_ID, ev.innerHTML = __vite_glob_0_39, document.head.appendChild(ev);
  } else
    rv === "remove" && tv && tv.remove();
}
const useCallRequestHandlers = () => {
  const { navigate: rv, back: tv } = useNavigation(), ev = usePerant((yv) => {
    var Sv;
    return (Sv = yv.account) == null ? void 0 : Sv.account;
  }), iv = usePerant(
    (yv) => {
      var Sv;
      return (Sv = yv.account) == null ? void 0 : Sv.widgetConfig.manualCallHandling;
    }
  ), ov = usePerant((yv) => {
    var Sv;
    return (Sv = yv.account) == null ? void 0 : Sv.b2b;
  }), av = usePerant((yv) => {
    var Sv;
    return (Sv = yv.config) == null ? void 0 : Sv.productId;
  }), sv = usePerant((yv) => {
    var Sv;
    return (Sv = yv.config) == null ? void 0 : Sv.organization;
  }), lv = useSetAtom(clientInfoAtom), { saveClientInfo: uv } = useClientConnectionSt(), { t: cv } = useTranslation("translation", { keyPrefix: "call-request" }), dv = async (yv) => {
    if (!ev)
      throw new Error("Account not provided");
    await verifyPersonalAvailableService.execute({
      account: ev,
      productId: av,
      b2b: ov ?? !1,
      organization: sv,
      manualCallHandling: iv
    });
    const Sv = {
      fullName: yv.name,
      phone: yv.phone,
      email: yv.email
    }, {
      id: _v,
      personalId: Ev,
      admin: { fullName: wv }
    } = await registerCallService.execute({
      account: ev,
      clients: [Sv],
      productId: av,
      platform: "VTEX-IO",
      b2b: ov ?? !1,
      organization: sv
    }), xv = {
      ...Sv,
      id: _v,
      personalId: Ev,
      admin: { fullName: wv }
    };
    lv(xv), uv(xv);
  };
  return {
    requestCall: dv,
    handlePressSubmit: async (yv) => {
      try {
        await dv(yv), rv(Screens.callWait);
      } catch (Sv) {
        logger$1.error("error requesting call", Sv), rv(Screens.information, {
          title: cv("title"),
          details: `${cv("advisorsNotAvailable")}.`
        });
      }
    },
    handlePressBack: () => tv()
  };
}, useClientConnectionSt = () => ({
  getClientInfo: () => clientConnectionRepository.getClientInfo(),
  getConnectionInfo: () => clientConnectionRepository.getConnectionInfo(),
  saveClientInfo: (av) => {
    const lv = clientConnectionRepository.getClientInfo() ?? clientIniState;
    clientConnectionRepository.saveClientInfo({ ...lv, ...av });
  },
  saveConnectionInfo: (av) => {
    const lv = clientConnectionRepository.getConnectionInfo() ?? connectionIniState;
    clientConnectionRepository.saveConnectionInfo({
      ...lv,
      ...av
    });
  },
  clearClientConnectionSt: () => {
    clientConnectionRepository.clear();
  }
}), initialScreenAtom = atom(void 0);
initialScreenAtom.debugLabel = "initialScreenAtom";
const showScreensAtom = atom(!1);
showScreensAtom.debugLabel = "showScreensAtom";
const showButtonAtom = atom(!1);
showButtonAtom.debugLabel = "showButtonAtom";
const buttonIsLoadingAtom = atom(!1);
buttonIsLoadingAtom.debugLabel = "buttonIsLoadingAtom";
const useGetInitialScreen = () => {
  const rv = usePerant((_v) => {
    var Ev;
    return (Ev = _v.config) == null ? void 0 : Ev.account;
  }), tv = usePerant((_v) => {
    var Ev;
    return (Ev = _v.account) == null ? void 0 : Ev.widgetConfig;
  }), { getClientInfo: ev, getConnectionInfo: iv } = useClientConnectionSt(), { handleClick: ov } = useAssistedSalesHandlers(), av = useSetAtom(clientInfoAtom), sv = useSetAtom(connectionInfoAtom), [lv, uv] = useAtom(initialScreenAtom), { joinExistingCall: cv } = useJoinExistingCall(), [dv, hv] = useAtom(showScreensAtom), [pv, yv] = useAtom(initAtom), Sv = () => {
    const _v = (tv == null ? void 0 : tv.personalShopperButton) && !(tv != null && tv.assistedSalesButton), Ev = (tv == null ? void 0 : tv.assistedSalesButton) && !(tv != null && tv.personalShopperButton);
    _v ? tv != null && tv.personalShopperCallRequest ? uv(Screens.callRequest) : uv(Screens.callWait) : Ev ? ov(() => uv(Screens.assistedSales)) : uv(Screens.options);
  };
  return reactExports.useEffect(() => {
    if (!tv || pv)
      return;
    if (yv(!0), window.location.search) {
      const Ev = new URLSearchParams(window.location.search), wv = Ev.get("source_personal_shopper"), xv = Ev.get("id");
      if (wv && xv) {
        if (logger$1.debug("LOAD FROM LOCAL URL"), hv(!0), !(tv != null && tv.personalShopperCallRequest)) {
          uv(Screens.callWait), cv().then();
          return;
        }
        uv(Screens.joinCall);
        return;
      }
    }
    const _v = ev();
    if (_v) {
      logger$1.debug("LOAD FROM LOCAL STORAGE"), av(_v);
      const Ev = iv();
      if (Ev != null && Ev.hasBeenConnected) {
        const wv = {
          title: Ev.title,
          name: _v.fullName,
          device: "desktop",
          clientId: _v.id,
          account: rv ?? "",
          isAttendee: !0
        };
        loadJoinDataService.execute(wv).then((xv) => {
          sv({
            ...Ev,
            Highlight: xv.Highlight
          }), uv(Screens.clientCall), hv(!0);
        }).catch(Sv);
      } else
        Ev && sv(Ev), uv(Screens.callWait), hv(!0);
    } else
      logger$1.debug("NORMAL FLOW"), Sv();
  }, [tv]), { initialScreen: lv, autoOpen: dv, setDefaultScreen: Sv };
}, useWidget = () => {
  const rv = usePerant((dv) => {
    var hv;
    return (hv = dv.config) == null ? void 0 : hv.productId;
  }), tv = usePerant((dv) => {
    var hv;
    return (hv = dv.config) == null ? void 0 : hv.organization;
  }), ev = usePerant((dv) => {
    var hv;
    return (hv = dv.account) == null ? void 0 : hv.b2b;
  }), iv = usePerant((dv) => dv.account), { initialScreen: ov } = useGetInitialScreen(), av = useAtomValue(showScreensAtom), [sv, lv] = useAtom(showButtonAtom), uv = useAtomValue(buttonIsLoadingAtom), cv = usePerant(
    (dv) => {
      var hv;
      return (hv = dv.account) == null ? void 0 : hv.widgetConfig.manualCallHandling;
    }
  );
  return reactExports.useEffect(() => {
    if (console.info("useWidget account: ", iv), console.info("useWidget productId: ", rv), !iv)
      return;
    iv.widgetConfig.widget ? (async () => {
      try {
        if (ev && !tv) {
          lv(!1);
          return;
        }
        rv ? await verifyPersonalAvailableService.execute({
          account: iv.account,
          productId: rv,
          b2b: ev ?? !1,
          organization: tv,
          manualCallHandling: cv
        }) : ev && await verifyPersonalAvailableService.hasPersonal({
          account: iv.account,
          productId: rv,
          b2b: ev ?? !1,
          organization: tv,
          manualCallHandling: cv
        }), lv(!0);
      } catch (pv) {
        console.error("useWidget error: ", pv), lv(!1);
      }
    })() : lv(!1);
  }, [rv, iv]), {
    showButton: sv,
    buttonIsLoading: uv,
    showScreens: av,
    initialScreen: ov
  };
}, useWidgetHandlers = () => {
  const rv = usePerant((uv) => {
    var cv;
    return (cv = uv.account) == null ? void 0 : cv.widgetConfig;
  }), { requestCall: tv } = useCallRequestHandlers(), ev = useSetAtom(showScreensAtom), iv = useSetAtom(buttonIsLoadingAtom), ov = useSetAtom(initialScreenAtom), av = async () => {
    if (rv != null && rv.personalShopperButton && !(rv != null && rv.assistedSalesButton) && !(rv != null && rv.personalShopperCallRequest))
      try {
        iv(!0), await tv(INCOGNITO_CALL_FORM);
      } catch (cv) {
        logger$1.error("useWidget: error requesting incognito call", cv), ov(Screens.information);
      } finally {
        iv(!1);
      }
  };
  return {
    handleFlowStart: async () => {
      await av(), ev(!0);
    },
    handleFlowReset: () => {
      ev(!1);
    }
  };
}, useToastNotification = () => {
  const rv = useSetAtom(toastNotificationAtom);
  return {
    showToast: (ev) => {
      rv({
        show: !0,
        message: ev
      }), setTimeout(() => {
        rv({
          show: !1,
          message: ""
        });
      }, 4e3);
    }
  };
}, show = "_show_1yz95_12", slideInFromLeft$1 = "_slideInFromLeft_1yz95_1", styles$y = {
  show,
  slideInFromLeft: slideInFromLeft$1
}, defaultValues = {
  initialScreen: "",
  currentScreen: "",
  prevScreens: [],
  params: null,
  onReset: () => null,
  setCurrentScreen: () => null,
  setPrevScreens: () => null,
  setParameters: () => null
}, NavigatorContext = reactExports.createContext(defaultValues), ScreenNavigator = ({
  initialScreen: rv,
  children: tv,
  onReset: ev
}) => {
  const [iv, ov] = reactExports.useState(rv), [av, sv] = reactExports.useState([]), [lv, uv] = reactExports.useState(null), dv = React.Children.toArray(tv).map((pv) => {
    if (!React.isValidElement(pv))
      throw new Error("Invalid screen component");
    return {
      name: pv.props.name || "",
      component: pv.props.component
    };
  }), hv = dv.findIndex((pv) => pv.name === iv);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    NavigatorContext.Provider,
    {
      value: {
        currentScreen: iv,
        prevScreens: av,
        initialScreen: rv,
        params: lv,
        setCurrentScreen: ov,
        setPrevScreens: sv,
        setParameters: uv,
        onReset: ev
      },
      children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$y.show, children: dv[hv].component })
    }
  );
}, useNavigation = () => {
  const rv = reactExports.useContext(NavigatorContext);
  return {
    navigate: (av, sv) => {
      rv.setPrevScreens([...rv.prevScreens, rv.currentScreen]), rv.setCurrentScreen(av), sv && rv.setParameters(sv);
    },
    reset: () => {
      var av;
      rv.setCurrentScreen(rv.initialScreen), rv.setParameters(null), (av = rv.onReset) == null || av.call(rv);
    },
    back: () => {
      const av = [...rv.prevScreens];
      av.length > 0 && (rv.setCurrentScreen(av.pop() ?? ""), rv.setPrevScreens(av));
    },
    getParameter: (av) => rv.params ? rv.params[av] ?? "" : "",
    params: rv.params,
    currentScreen: rv.currentScreen,
    prevScreens: rv.prevScreens
  };
}, Screen = ({ component: rv }) => rv, container$c = "_container_1pmtx_1", counterContainer = "_counterContainer_1pmtx_11", counter = "_counter_1pmtx_11", styles$x = {
  container: container$c,
  counterContainer,
  counter
}, ChatMessageButton = ({ active: rv, counter: tv, onPress: ev }) => {
  const iv = tv < 10 ? `0${tv}` : tv.toString();
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$x.container, onClick: ev, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { icon: /* @__PURE__ */ jsxRuntimeExports.jsx(ChatRoundIcon, { active: rv }) }),
    !rv && tv > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$x.counterContainer, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$x.counter, children: iv }) })
  ] });
}, container$b = "_container_1bg01_1", checkmark = "_checkmark_1bg01_25", black = "_black_1bg01_71", styles$w = {
  container: container$b,
  checkmark,
  black
}, Checkbox = ({
  checked: rv = !1,
  name: tv,
  label: ev,
  register: iv
}) => {
  const [ov, av] = reactExports.useState(rv), sv = { ...iv(tv) };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: styles$w.container, children: [
    ev,
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      "input",
      {
        type: "checkbox",
        className: styles$w.black,
        checked: ov,
        ...sv,
        onChange: (lv) => {
          sv.onChange(lv), av((uv) => !uv);
        }
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: styles$w.checkmark })
  ] });
}, label = "_label_1h2hh_1", placeholder = "_placeholder_1h2hh_13", fieldInput = "_fieldInput_1h2hh_22", error$1 = "_error_1h2hh_48", styles$v = {
  label,
  placeholder,
  fieldInput,
  error: error$1
}, FieldInput = (rv) => {
  const {
    error: tv = "",
    name: ev,
    type: iv = "text",
    label: ov,
    register: av,
    className: sv,
    ...lv
  } = rv;
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: clsx(styles$v.label, sv), children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "input",
        {
          type: iv,
          placeholder: " ",
          autoComplete: "off",
          className: `${styles$v.fieldInput} ${tv ? styles$v.error : ""}`,
          ...lv,
          ...av(ev)
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: styles$v.placeholder, children: ov })
    ] }),
    tv && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: styles$v.error, children: tv })
  ] });
}, container$a = "_container_1i9wr_1", imagesContainer = "_imagesContainer_1i9wr_12", carouselImages = "_carouselImages_1i9wr_17", carouselImage = "_carouselImage_1i9wr_17", dotsContainer = "_dotsContainer_1i9wr_28", dot = "_dot_1i9wr_28", active = "_active_1i9wr_44", styles$u = {
  container: container$a,
  imagesContainer,
  carouselImages,
  carouselImage,
  dotsContainer,
  dot,
  active
}, ImageCarousel = ({ images: rv, currentIndex: tv }) => {
  const [ev, iv] = reactExports.useState(tv);
  return reactExports.useEffect(() => {
    iv(tv);
  }, [tv]), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$u.container, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$u.imagesContainer, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      "div",
      {
        className: styles$u.carouselImages,
        style: { transform: `translateX(-${ev * 158}px)` },
        children: rv.map((ov, av) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$u.carouselImage, children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: ov, alt: `Slide ${av}`, width: 158 }) }, av))
      }
    ) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$u.dotsContainer, children: rv.map((ov, av) => /* @__PURE__ */ jsxRuntimeExports.jsx(
      "span",
      {
        className: `${styles$u.dot} ${av === ev ? styles$u.active : ""}`,
        onClick: () => iv(av)
      },
      av
    )) })
  ] });
}, itemButton = "_itemButton_1nck6_1", content$c = "_content_1nck6_20", text = "_text_1nck6_27", styles$t = {
  itemButton,
  content: content$c,
  text
}, ItemButton = (rv) => {
  const { icon: tv, title: ev, description: iv, onPress: ov, style: av, loading: sv = !1 } = rv;
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "button",
    {
      className: `${styles$t.itemButton}`,
      onClick: ov,
      type: "button",
      style: av,
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$t.content, children: [
          sv ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { size: 31, borderWidth: 4, color: "#B9B9B9" }) : tv,
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$t.text, children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Headline", children: ev }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "BodyItem", children: iv })
          ] })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowHeadIcon, {})
      ]
    }
  );
}, list = "_list_gcisw_1", styles$s = {
  list
}, MessageAttachments = (rv) => {
  const { isSelf: tv, attachments: ev, onClickDownload: iv } = rv;
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$s.list, children: ev.map((ov) => /* @__PURE__ */ jsxRuntimeExports.jsx(
    MessageAttachment,
    {
      isSelf: tv,
      fileIcon: getFileIcon(ov.mimeType),
      name: ov.name,
      onClickDownload: () => iv(ov)
    },
    ov.content
  )) });
};
var isCheckBoxInput = (rv) => rv.type === "checkbox", isDateObject = (rv) => rv instanceof Date, isNullOrUndefined = (rv) => rv == null;
const isObjectType = (rv) => typeof rv == "object";
var isObject$1 = (rv) => !isNullOrUndefined(rv) && !Array.isArray(rv) && isObjectType(rv) && !isDateObject(rv), getEventValue = (rv) => isObject$1(rv) && rv.target ? isCheckBoxInput(rv.target) ? rv.target.checked : rv.target.value : rv, getNodeParentName = (rv) => rv.substring(0, rv.search(/\.\d+(\.|$)/)) || rv, isNameInFieldArray = (rv, tv) => rv.has(getNodeParentName(tv)), isPlainObject = (rv) => {
  const tv = rv.constructor && rv.constructor.prototype;
  return isObject$1(tv) && tv.hasOwnProperty("isPrototypeOf");
}, isWeb = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
function cloneObject(rv) {
  let tv;
  const ev = Array.isArray(rv);
  if (rv instanceof Date)
    tv = new Date(rv);
  else if (rv instanceof Set)
    tv = new Set(rv);
  else if (!(isWeb && (rv instanceof Blob || rv instanceof FileList)) && (ev || isObject$1(rv)))
    if (tv = ev ? [] : {}, !ev && !isPlainObject(rv))
      tv = rv;
    else
      for (const iv in rv)
        rv.hasOwnProperty(iv) && (tv[iv] = cloneObject(rv[iv]));
  else
    return rv;
  return tv;
}
var compact = (rv) => Array.isArray(rv) ? rv.filter(Boolean) : [], isUndefined = (rv) => rv === void 0, get = (rv, tv, ev) => {
  if (!tv || !isObject$1(rv))
    return ev;
  const iv = compact(tv.split(/[,[\].]+?/)).reduce((ov, av) => isNullOrUndefined(ov) ? ov : ov[av], rv);
  return isUndefined(iv) || iv === rv ? isUndefined(rv[tv]) ? ev : rv[tv] : iv;
}, isBoolean = (rv) => typeof rv == "boolean", isKey = (rv) => /^\w*$/.test(rv), stringToPath = (rv) => compact(rv.replace(/["|']|\]/g, "").split(/\.|\[/)), set = (rv, tv, ev) => {
  let iv = -1;
  const ov = isKey(tv) ? [tv] : stringToPath(tv), av = ov.length, sv = av - 1;
  for (; ++iv < av; ) {
    const lv = ov[iv];
    let uv = ev;
    if (iv !== sv) {
      const cv = rv[lv];
      uv = isObject$1(cv) || Array.isArray(cv) ? cv : isNaN(+ov[iv + 1]) ? {} : [];
    }
    if (lv === "__proto__")
      return;
    rv[lv] = uv, rv = rv[lv];
  }
  return rv;
};
const EVENTS = {
  BLUR: "blur",
  FOCUS_OUT: "focusout",
  CHANGE: "change"
}, VALIDATION_MODE = {
  onBlur: "onBlur",
  onChange: "onChange",
  onSubmit: "onSubmit",
  onTouched: "onTouched",
  all: "all"
}, INPUT_VALIDATION_RULES = {
  max: "max",
  min: "min",
  maxLength: "maxLength",
  minLength: "minLength",
  pattern: "pattern",
  required: "required",
  validate: "validate"
};
React.createContext(null);
var getProxyFormState = (rv, tv, ev, iv = !0) => {
  const ov = {
    defaultValues: tv._defaultValues
  };
  for (const av in rv)
    Object.defineProperty(ov, av, {
      get: () => {
        const sv = av;
        return tv._proxyFormState[sv] !== VALIDATION_MODE.all && (tv._proxyFormState[sv] = !iv || VALIDATION_MODE.all), rv[sv];
      }
    });
  return ov;
}, isEmptyObject = (rv) => isObject$1(rv) && !Object.keys(rv).length, shouldRenderFormState = (rv, tv, ev, iv) => {
  ev(rv);
  const { name: ov, ...av } = rv;
  return isEmptyObject(av) || Object.keys(av).length >= Object.keys(tv).length || Object.keys(av).find((sv) => tv[sv] === VALIDATION_MODE.all);
}, convertToArrayPayload = (rv) => Array.isArray(rv) ? rv : [rv];
function useSubscribe(rv) {
  const tv = React.useRef(rv);
  tv.current = rv, React.useEffect(() => {
    const ev = !rv.disabled && tv.current.subject && tv.current.subject.subscribe({
      next: tv.current.next
    });
    return () => {
      ev && ev.unsubscribe();
    };
  }, [rv.disabled]);
}
var isString = (rv) => typeof rv == "string", generateWatchOutput = (rv, tv, ev, iv, ov) => isString(rv) ? (iv && tv.watch.add(rv), get(ev, rv, ov)) : Array.isArray(rv) ? rv.map((av) => (iv && tv.watch.add(av), get(ev, av))) : (iv && (tv.watchAll = !0), ev), appendErrors = (rv, tv, ev, iv, ov) => tv ? {
  ...ev[rv],
  types: {
    ...ev[rv] && ev[rv].types ? ev[rv].types : {},
    [iv]: ov || !0
  }
} : {}, getValidationModes = (rv) => ({
  isOnSubmit: !rv || rv === VALIDATION_MODE.onSubmit,
  isOnBlur: rv === VALIDATION_MODE.onBlur,
  isOnChange: rv === VALIDATION_MODE.onChange,
  isOnAll: rv === VALIDATION_MODE.all,
  isOnTouch: rv === VALIDATION_MODE.onTouched
}), isWatched = (rv, tv, ev) => !ev && (tv.watchAll || tv.watch.has(rv) || [...tv.watch].some((iv) => rv.startsWith(iv) && /^\.\w+/.test(rv.slice(iv.length))));
const iterateFieldsByAction = (rv, tv, ev, iv) => {
  for (const ov of ev || Object.keys(rv)) {
    const av = get(rv, ov);
    if (av) {
      const { _f: sv, ...lv } = av;
      if (sv) {
        if (sv.refs && sv.refs[0] && tv(sv.refs[0], ov) && !iv)
          return !0;
        if (sv.ref && tv(sv.ref, sv.name) && !iv)
          return !0;
        if (iterateFieldsByAction(lv, tv))
          break;
      } else if (isObject$1(lv) && iterateFieldsByAction(lv, tv))
        break;
    }
  }
};
var updateFieldArrayRootError = (rv, tv, ev) => {
  const iv = convertToArrayPayload(get(rv, ev));
  return set(iv, "root", tv[ev]), set(rv, ev, iv), rv;
}, isFileInput = (rv) => rv.type === "file", isFunction = (rv) => typeof rv == "function", isHTMLElement = (rv) => {
  if (!isWeb)
    return !1;
  const tv = rv ? rv.ownerDocument : 0;
  return rv instanceof (tv && tv.defaultView ? tv.defaultView.HTMLElement : HTMLElement);
}, isMessage = (rv) => isString(rv), isRadioInput = (rv) => rv.type === "radio", isRegex = (rv) => rv instanceof RegExp;
const defaultResult = {
  value: !1,
  isValid: !1
}, validResult = { value: !0, isValid: !0 };
var getCheckboxValue = (rv) => {
  if (Array.isArray(rv)) {
    if (rv.length > 1) {
      const tv = rv.filter((ev) => ev && ev.checked && !ev.disabled).map((ev) => ev.value);
      return { value: tv, isValid: !!tv.length };
    }
    return rv[0].checked && !rv[0].disabled ? (
      // @ts-expect-error expected to work in the browser
      rv[0].attributes && !isUndefined(rv[0].attributes.value) ? isUndefined(rv[0].value) || rv[0].value === "" ? validResult : { value: rv[0].value, isValid: !0 } : validResult
    ) : defaultResult;
  }
  return defaultResult;
};
const defaultReturn = {
  isValid: !1,
  value: null
};
var getRadioValue = (rv) => Array.isArray(rv) ? rv.reduce((tv, ev) => ev && ev.checked && !ev.disabled ? {
  isValid: !0,
  value: ev.value
} : tv, defaultReturn) : defaultReturn;
function getValidateError(rv, tv, ev = "validate") {
  if (isMessage(rv) || Array.isArray(rv) && rv.every(isMessage) || isBoolean(rv) && !rv)
    return {
      type: ev,
      message: isMessage(rv) ? rv : "",
      ref: tv
    };
}
var getValueAndMessage = (rv) => isObject$1(rv) && !isRegex(rv) ? rv : {
  value: rv,
  message: ""
}, validateField = async (rv, tv, ev, iv, ov) => {
  const { ref: av, refs: sv, required: lv, maxLength: uv, minLength: cv, min: dv, max: hv, pattern: pv, validate: yv, name: Sv, valueAsNumber: _v, mount: Ev, disabled: wv } = rv._f, xv = get(tv, Sv);
  if (!Ev || wv)
    return {};
  const Cv = sv ? sv[0] : av, Av = (Xv) => {
    iv && Cv.reportValidity && (Cv.setCustomValidity(isBoolean(Xv) ? "" : Xv || ""), Cv.reportValidity());
  }, Ov = {}, Lv = isRadioInput(av), jv = isCheckBoxInput(av), Dv = Lv || jv, Vv = (_v || isFileInput(av)) && isUndefined(av.value) && isUndefined(xv) || isHTMLElement(av) && av.value === "" || xv === "" || Array.isArray(xv) && !xv.length, Gv = appendErrors.bind(null, Sv, ev, Ov), Yv = (Xv, L1, Bv, Qv = INPUT_VALIDATION_RULES.maxLength, B1 = INPUT_VALIDATION_RULES.minLength) => {
    const K1 = Xv ? L1 : Bv;
    Ov[Sv] = {
      type: Xv ? Qv : B1,
      message: K1,
      ref: av,
      ...Gv(Xv ? Qv : B1, K1)
    };
  };
  if (ov ? !Array.isArray(xv) || !xv.length : lv && (!Dv && (Vv || isNullOrUndefined(xv)) || isBoolean(xv) && !xv || jv && !getCheckboxValue(sv).isValid || Lv && !getRadioValue(sv).isValid)) {
    const { value: Xv, message: L1 } = isMessage(lv) ? { value: !!lv, message: lv } : getValueAndMessage(lv);
    if (Xv && (Ov[Sv] = {
      type: INPUT_VALIDATION_RULES.required,
      message: L1,
      ref: Cv,
      ...Gv(INPUT_VALIDATION_RULES.required, L1)
    }, !ev))
      return Av(L1), Ov;
  }
  if (!Vv && (!isNullOrUndefined(dv) || !isNullOrUndefined(hv))) {
    let Xv, L1;
    const Bv = getValueAndMessage(hv), Qv = getValueAndMessage(dv);
    if (!isNullOrUndefined(xv) && !isNaN(xv)) {
      const B1 = av.valueAsNumber || xv && +xv;
      isNullOrUndefined(Bv.value) || (Xv = B1 > Bv.value), isNullOrUndefined(Qv.value) || (L1 = B1 < Qv.value);
    } else {
      const B1 = av.valueAsDate || new Date(xv), K1 = (D1) => /* @__PURE__ */ new Date((/* @__PURE__ */ new Date()).toDateString() + " " + D1), j1 = av.type == "time", P1 = av.type == "week";
      isString(Bv.value) && xv && (Xv = j1 ? K1(xv) > K1(Bv.value) : P1 ? xv > Bv.value : B1 > new Date(Bv.value)), isString(Qv.value) && xv && (L1 = j1 ? K1(xv) < K1(Qv.value) : P1 ? xv < Qv.value : B1 < new Date(Qv.value));
    }
    if ((Xv || L1) && (Yv(!!Xv, Bv.message, Qv.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min), !ev))
      return Av(Ov[Sv].message), Ov;
  }
  if ((uv || cv) && !Vv && (isString(xv) || ov && Array.isArray(xv))) {
    const Xv = getValueAndMessage(uv), L1 = getValueAndMessage(cv), Bv = !isNullOrUndefined(Xv.value) && xv.length > +Xv.value, Qv = !isNullOrUndefined(L1.value) && xv.length < +L1.value;
    if ((Bv || Qv) && (Yv(Bv, Xv.message, L1.message), !ev))
      return Av(Ov[Sv].message), Ov;
  }
  if (pv && !Vv && isString(xv)) {
    const { value: Xv, message: L1 } = getValueAndMessage(pv);
    if (isRegex(Xv) && !xv.match(Xv) && (Ov[Sv] = {
      type: INPUT_VALIDATION_RULES.pattern,
      message: L1,
      ref: av,
      ...Gv(INPUT_VALIDATION_RULES.pattern, L1)
    }, !ev))
      return Av(L1), Ov;
  }
  if (yv) {
    if (isFunction(yv)) {
      const Xv = await yv(xv, tv), L1 = getValidateError(Xv, Cv);
      if (L1 && (Ov[Sv] = {
        ...L1,
        ...Gv(INPUT_VALIDATION_RULES.validate, L1.message)
      }, !ev))
        return Av(L1.message), Ov;
    } else if (isObject$1(yv)) {
      let Xv = {};
      for (const L1 in yv) {
        if (!isEmptyObject(Xv) && !ev)
          break;
        const Bv = getValidateError(await yv[L1](xv, tv), Cv, L1);
        Bv && (Xv = {
          ...Bv,
          ...Gv(L1, Bv.message)
        }, Av(Bv.message), ev && (Ov[Sv] = Xv));
      }
      if (!isEmptyObject(Xv) && (Ov[Sv] = {
        ref: Cv,
        ...Xv
      }, !ev))
        return Ov;
    }
  }
  return Av(!0), Ov;
};
function baseGet(rv, tv) {
  const ev = tv.slice(0, -1).length;
  let iv = 0;
  for (; iv < ev; )
    rv = isUndefined(rv) ? iv++ : rv[tv[iv++]];
  return rv;
}
function isEmptyArray(rv) {
  for (const tv in rv)
    if (rv.hasOwnProperty(tv) && !isUndefined(rv[tv]))
      return !1;
  return !0;
}
function unset(rv, tv) {
  const ev = Array.isArray(tv) ? tv : isKey(tv) ? [tv] : stringToPath(tv), iv = ev.length === 1 ? rv : baseGet(rv, ev), ov = ev.length - 1, av = ev[ov];
  return iv && delete iv[av], ov !== 0 && (isObject$1(iv) && isEmptyObject(iv) || Array.isArray(iv) && isEmptyArray(iv)) && unset(rv, ev.slice(0, -1)), rv;
}
var createSubject = () => {
  let rv = [];
  return {
    get observers() {
      return rv;
    },
    next: (ov) => {
      for (const av of rv)
        av.next && av.next(ov);
    },
    subscribe: (ov) => (rv.push(ov), {
      unsubscribe: () => {
        rv = rv.filter((av) => av !== ov);
      }
    }),
    unsubscribe: () => {
      rv = [];
    }
  };
}, isPrimitive = (rv) => isNullOrUndefined(rv) || !isObjectType(rv);
function deepEqual(rv, tv) {
  if (isPrimitive(rv) || isPrimitive(tv))
    return rv === tv;
  if (isDateObject(rv) && isDateObject(tv))
    return rv.getTime() === tv.getTime();
  const ev = Object.keys(rv), iv = Object.keys(tv);
  if (ev.length !== iv.length)
    return !1;
  for (const ov of ev) {
    const av = rv[ov];
    if (!iv.includes(ov))
      return !1;
    if (ov !== "ref") {
      const sv = tv[ov];
      if (isDateObject(av) && isDateObject(sv) || isObject$1(av) && isObject$1(sv) || Array.isArray(av) && Array.isArray(sv) ? !deepEqual(av, sv) : av !== sv)
        return !1;
    }
  }
  return !0;
}
var isMultipleSelect = (rv) => rv.type === "select-multiple", isRadioOrCheckbox = (rv) => isRadioInput(rv) || isCheckBoxInput(rv), live = (rv) => isHTMLElement(rv) && rv.isConnected, objectHasFunction = (rv) => {
  for (const tv in rv)
    if (isFunction(rv[tv]))
      return !0;
  return !1;
};
function markFieldsDirty(rv, tv = {}) {
  const ev = Array.isArray(rv);
  if (isObject$1(rv) || ev)
    for (const iv in rv)
      Array.isArray(rv[iv]) || isObject$1(rv[iv]) && !objectHasFunction(rv[iv]) ? (tv[iv] = Array.isArray(rv[iv]) ? [] : {}, markFieldsDirty(rv[iv], tv[iv])) : isNullOrUndefined(rv[iv]) || (tv[iv] = !0);
  return tv;
}
function getDirtyFieldsFromDefaultValues(rv, tv, ev) {
  const iv = Array.isArray(rv);
  if (isObject$1(rv) || iv)
    for (const ov in rv)
      Array.isArray(rv[ov]) || isObject$1(rv[ov]) && !objectHasFunction(rv[ov]) ? isUndefined(tv) || isPrimitive(ev[ov]) ? ev[ov] = Array.isArray(rv[ov]) ? markFieldsDirty(rv[ov], []) : { ...markFieldsDirty(rv[ov]) } : getDirtyFieldsFromDefaultValues(rv[ov], isNullOrUndefined(tv) ? {} : tv[ov], ev[ov]) : ev[ov] = !deepEqual(rv[ov], tv[ov]);
  return ev;
}
var getDirtyFields = (rv, tv) => getDirtyFieldsFromDefaultValues(rv, tv, markFieldsDirty(tv)), getFieldValueAs = (rv, { valueAsNumber: tv, valueAsDate: ev, setValueAs: iv }) => isUndefined(rv) ? rv : tv ? rv === "" ? NaN : rv && +rv : ev && isString(rv) ? new Date(rv) : iv ? iv(rv) : rv;
function getFieldValue(rv) {
  const tv = rv.ref;
  if (!(rv.refs ? rv.refs.every((ev) => ev.disabled) : tv.disabled))
    return isFileInput(tv) ? tv.files : isRadioInput(tv) ? getRadioValue(rv.refs).value : isMultipleSelect(tv) ? [...tv.selectedOptions].map(({ value: ev }) => ev) : isCheckBoxInput(tv) ? getCheckboxValue(rv.refs).value : getFieldValueAs(isUndefined(tv.value) ? rv.ref.value : tv.value, rv);
}
var getResolverOptions = (rv, tv, ev, iv) => {
  const ov = {};
  for (const av of rv) {
    const sv = get(tv, av);
    sv && set(ov, av, sv._f);
  }
  return {
    criteriaMode: ev,
    names: [...rv],
    fields: ov,
    shouldUseNativeValidation: iv
  };
}, getRuleValue = (rv) => isUndefined(rv) ? rv : isRegex(rv) ? rv.source : isObject$1(rv) ? isRegex(rv.value) ? rv.value.source : rv.value : rv;
const ASYNC_FUNCTION = "AsyncFunction";
var hasPromiseValidation = (rv) => (!rv || !rv.validate) && !!(isFunction(rv.validate) && rv.validate.constructor.name === ASYNC_FUNCTION || isObject$1(rv.validate) && Object.values(rv.validate).find((tv) => tv.constructor.name === ASYNC_FUNCTION)), hasValidation = (rv) => rv.mount && (rv.required || rv.min || rv.max || rv.maxLength || rv.minLength || rv.pattern || rv.validate);
function schemaErrorLookup(rv, tv, ev) {
  const iv = get(rv, ev);
  if (iv || isKey(ev))
    return {
      error: iv,
      name: ev
    };
  const ov = ev.split(".");
  for (; ov.length; ) {
    const av = ov.join("."), sv = get(tv, av), lv = get(rv, av);
    if (sv && !Array.isArray(sv) && ev !== av)
      return { name: ev };
    if (lv && lv.type)
      return {
        name: av,
        error: lv
      };
    ov.pop();
  }
  return {
    name: ev
  };
}
var skipValidation = (rv, tv, ev, iv, ov) => ov.isOnAll ? !1 : !ev && ov.isOnTouch ? !(tv || rv) : (ev ? iv.isOnBlur : ov.isOnBlur) ? !rv : (ev ? iv.isOnChange : ov.isOnChange) ? rv : !0, unsetEmptyArray = (rv, tv) => !compact(get(rv, tv)).length && unset(rv, tv);
const defaultOptions = {
  mode: VALIDATION_MODE.onSubmit,
  reValidateMode: VALIDATION_MODE.onChange,
  shouldFocusError: !0
};
function createFormControl(rv = {}) {
  let tv = {
    ...defaultOptions,
    ...rv
  }, ev = {
    submitCount: 0,
    isDirty: !1,
    isLoading: isFunction(tv.defaultValues),
    isValidating: !1,
    isSubmitted: !1,
    isSubmitting: !1,
    isSubmitSuccessful: !1,
    isValid: !1,
    touchedFields: {},
    dirtyFields: {},
    validatingFields: {},
    errors: tv.errors || {},
    disabled: tv.disabled || !1
  }, iv = {}, ov = isObject$1(tv.defaultValues) || isObject$1(tv.values) ? cloneObject(tv.defaultValues || tv.values) || {} : {}, av = tv.shouldUnregister ? {} : cloneObject(ov), sv = {
    action: !1,
    mount: !1,
    watch: !1
  }, lv = {
    mount: /* @__PURE__ */ new Set(),
    unMount: /* @__PURE__ */ new Set(),
    array: /* @__PURE__ */ new Set(),
    watch: /* @__PURE__ */ new Set()
  }, uv, cv = 0;
  const dv = {
    isDirty: !1,
    dirtyFields: !1,
    validatingFields: !1,
    touchedFields: !1,
    isValidating: !1,
    isValid: !1,
    errors: !1
  }, hv = {
    values: createSubject(),
    array: createSubject(),
    state: createSubject()
  }, pv = getValidationModes(tv.mode), yv = getValidationModes(tv.reValidateMode), Sv = tv.criteriaMode === VALIDATION_MODE.all, _v = (O1) => (Z1) => {
    clearTimeout(cv), cv = setTimeout(O1, Z1);
  }, Ev = async (O1) => {
    if (dv.isValid || O1) {
      const Z1 = tv.resolver ? isEmptyObject((await Dv()).errors) : await Gv(iv, !0);
      Z1 !== ev.isValid && hv.state.next({
        isValid: Z1
      });
    }
  }, wv = (O1, Z1) => {
    (dv.isValidating || dv.validatingFields) && ((O1 || Array.from(lv.mount)).forEach((Hv) => {
      Hv && (Z1 ? set(ev.validatingFields, Hv, Z1) : unset(ev.validatingFields, Hv));
    }), hv.state.next({
      validatingFields: ev.validatingFields,
      isValidating: !isEmptyObject(ev.validatingFields)
    }));
  }, xv = (O1, Z1 = [], Hv, Jv, Mv = !0, zv = !0) => {
    if (Jv && Hv) {
      if (sv.action = !0, zv && Array.isArray(get(iv, O1))) {
        const Wv = Hv(get(iv, O1), Jv.argA, Jv.argB);
        Mv && set(iv, O1, Wv);
      }
      if (zv && Array.isArray(get(ev.errors, O1))) {
        const Wv = Hv(get(ev.errors, O1), Jv.argA, Jv.argB);
        Mv && set(ev.errors, O1, Wv), unsetEmptyArray(ev.errors, O1);
      }
      if (dv.touchedFields && zv && Array.isArray(get(ev.touchedFields, O1))) {
        const Wv = Hv(get(ev.touchedFields, O1), Jv.argA, Jv.argB);
        Mv && set(ev.touchedFields, O1, Wv);
      }
      dv.dirtyFields && (ev.dirtyFields = getDirtyFields(ov, av)), hv.state.next({
        name: O1,
        isDirty: Xv(O1, Z1),
        dirtyFields: ev.dirtyFields,
        errors: ev.errors,
        isValid: ev.isValid
      });
    } else
      set(av, O1, Z1);
  }, Cv = (O1, Z1) => {
    set(ev.errors, O1, Z1), hv.state.next({
      errors: ev.errors
    });
  }, Av = (O1) => {
    ev.errors = O1, hv.state.next({
      errors: ev.errors,
      isValid: !1
    });
  }, Ov = (O1, Z1, Hv, Jv) => {
    const Mv = get(iv, O1);
    if (Mv) {
      const zv = get(av, O1, isUndefined(Hv) ? get(ov, O1) : Hv);
      isUndefined(zv) || Jv && Jv.defaultChecked || Z1 ? set(av, O1, Z1 ? zv : getFieldValue(Mv._f)) : Qv(O1, zv), sv.mount && Ev();
    }
  }, Lv = (O1, Z1, Hv, Jv, Mv) => {
    let zv = !1, Wv = !1;
    const Kv = {
      name: O1
    }, c1 = !!(get(iv, O1) && get(iv, O1)._f && get(iv, O1)._f.disabled);
    if (!Hv || Jv) {
      dv.isDirty && (Wv = ev.isDirty, ev.isDirty = Kv.isDirty = Xv(), zv = Wv !== Kv.isDirty);
      const $1 = c1 || deepEqual(get(ov, O1), Z1);
      Wv = !!(!c1 && get(ev.dirtyFields, O1)), $1 || c1 ? unset(ev.dirtyFields, O1) : set(ev.dirtyFields, O1, !0), Kv.dirtyFields = ev.dirtyFields, zv = zv || dv.dirtyFields && Wv !== !$1;
    }
    if (Hv) {
      const $1 = get(ev.touchedFields, O1);
      $1 || (set(ev.touchedFields, O1, Hv), Kv.touchedFields = ev.touchedFields, zv = zv || dv.touchedFields && $1 !== Hv);
    }
    return zv && Mv && hv.state.next(Kv), zv ? Kv : {};
  }, jv = (O1, Z1, Hv, Jv) => {
    const Mv = get(ev.errors, O1), zv = dv.isValid && isBoolean(Z1) && ev.isValid !== Z1;
    if (rv.delayError && Hv ? (uv = _v(() => Cv(O1, Hv)), uv(rv.delayError)) : (clearTimeout(cv), uv = null, Hv ? set(ev.errors, O1, Hv) : unset(ev.errors, O1)), (Hv ? !deepEqual(Mv, Hv) : Mv) || !isEmptyObject(Jv) || zv) {
      const Wv = {
        ...Jv,
        ...zv && isBoolean(Z1) ? { isValid: Z1 } : {},
        errors: ev.errors,
        name: O1
      };
      ev = {
        ...ev,
        ...Wv
      }, hv.state.next(Wv);
    }
  }, Dv = async (O1) => {
    wv(O1, !0);
    const Z1 = await tv.resolver(av, tv.context, getResolverOptions(O1 || lv.mount, iv, tv.criteriaMode, tv.shouldUseNativeValidation));
    return wv(O1), Z1;
  }, Vv = async (O1) => {
    const { errors: Z1 } = await Dv(O1);
    if (O1)
      for (const Hv of O1) {
        const Jv = get(Z1, Hv);
        Jv ? set(ev.errors, Hv, Jv) : unset(ev.errors, Hv);
      }
    else
      ev.errors = Z1;
    return Z1;
  }, Gv = async (O1, Z1, Hv = {
    valid: !0
  }) => {
    for (const Jv in O1) {
      const Mv = O1[Jv];
      if (Mv) {
        const { _f: zv, ...Wv } = Mv;
        if (zv) {
          const Kv = lv.array.has(zv.name), c1 = Mv._f && hasPromiseValidation(Mv._f);
          c1 && dv.validatingFields && wv([Jv], !0);
          const $1 = await validateField(Mv, av, Sv, tv.shouldUseNativeValidation && !Z1, Kv);
          if (c1 && dv.validatingFields && wv([Jv]), $1[zv.name] && (Hv.valid = !1, Z1))
            break;
          !Z1 && (get($1, zv.name) ? Kv ? updateFieldArrayRootError(ev.errors, $1, zv.name) : set(ev.errors, zv.name, $1[zv.name]) : unset(ev.errors, zv.name));
        }
        !isEmptyObject(Wv) && await Gv(Wv, Z1, Hv);
      }
    }
    return Hv.valid;
  }, Yv = () => {
    for (const O1 of lv.unMount) {
      const Z1 = get(iv, O1);
      Z1 && (Z1._f.refs ? Z1._f.refs.every((Hv) => !live(Hv)) : !live(Z1._f.ref)) && k1(O1);
    }
    lv.unMount = /* @__PURE__ */ new Set();
  }, Xv = (O1, Z1) => (O1 && Z1 && set(av, O1, Z1), !deepEqual(I1(), ov)), L1 = (O1, Z1, Hv) => generateWatchOutput(O1, lv, {
    ...sv.mount ? av : isUndefined(Z1) ? ov : isString(O1) ? { [O1]: Z1 } : Z1
  }, Hv, Z1), Bv = (O1) => compact(get(sv.mount ? av : ov, O1, rv.shouldUnregister ? get(ov, O1, []) : [])), Qv = (O1, Z1, Hv = {}) => {
    const Jv = get(iv, O1);
    let Mv = Z1;
    if (Jv) {
      const zv = Jv._f;
      zv && (!zv.disabled && set(av, O1, getFieldValueAs(Z1, zv)), Mv = isHTMLElement(zv.ref) && isNullOrUndefined(Z1) ? "" : Z1, isMultipleSelect(zv.ref) ? [...zv.ref.options].forEach((Wv) => Wv.selected = Mv.includes(Wv.value)) : zv.refs ? isCheckBoxInput(zv.ref) ? zv.refs.length > 1 ? zv.refs.forEach((Wv) => (!Wv.defaultChecked || !Wv.disabled) && (Wv.checked = Array.isArray(Mv) ? !!Mv.find((Kv) => Kv === Wv.value) : Mv === Wv.value)) : zv.refs[0] && (zv.refs[0].checked = !!Mv) : zv.refs.forEach((Wv) => Wv.checked = Wv.value === Mv) : isFileInput(zv.ref) ? zv.ref.value = "" : (zv.ref.value = Mv, zv.ref.type || hv.values.next({
        name: O1,
        values: { ...av }
      })));
    }
    (Hv.shouldDirty || Hv.shouldTouch) && Lv(O1, Mv, Hv.shouldTouch, Hv.shouldDirty, !0), Hv.shouldValidate && D1(O1);
  }, B1 = (O1, Z1, Hv) => {
    for (const Jv in Z1) {
      const Mv = Z1[Jv], zv = `${O1}.${Jv}`, Wv = get(iv, zv);
      (lv.array.has(O1) || !isPrimitive(Mv) || Wv && !Wv._f) && !isDateObject(Mv) ? B1(zv, Mv, Hv) : Qv(zv, Mv, Hv);
    }
  }, K1 = (O1, Z1, Hv = {}) => {
    const Jv = get(iv, O1), Mv = lv.array.has(O1), zv = cloneObject(Z1);
    set(av, O1, zv), Mv ? (hv.array.next({
      name: O1,
      values: { ...av }
    }), (dv.isDirty || dv.dirtyFields) && Hv.shouldDirty && hv.state.next({
      name: O1,
      dirtyFields: getDirtyFields(ov, av),
      isDirty: Xv(O1, zv)
    })) : Jv && !Jv._f && !isNullOrUndefined(zv) ? B1(O1, zv, Hv) : Qv(O1, zv, Hv), isWatched(O1, lv) && hv.state.next({ ...ev }), hv.values.next({
      name: sv.mount ? O1 : void 0,
      values: { ...av }
    });
  }, j1 = async (O1) => {
    sv.mount = !0;
    const Z1 = O1.target;
    let Hv = Z1.name, Jv = !0;
    const Mv = get(iv, Hv), zv = () => Z1.type ? getFieldValue(Mv._f) : getEventValue(O1), Wv = (Kv) => {
      Jv = Number.isNaN(Kv) || deepEqual(Kv, get(av, Hv, Kv));
    };
    if (Mv) {
      let Kv, c1;
      const $1 = zv(), N1 = O1.type === EVENTS.BLUR || O1.type === EVENTS.FOCUS_OUT, e$ = !hasValidation(Mv._f) && !tv.resolver && !get(ev.errors, Hv) && !Mv._f.deps || skipValidation(N1, get(ev.touchedFields, Hv), ev.isSubmitted, yv, pv), R1 = isWatched(Hv, lv, N1);
      set(av, Hv, $1), N1 ? (Mv._f.onBlur && Mv._f.onBlur(O1), uv && uv(0)) : Mv._f.onChange && Mv._f.onChange(O1);
      const Zv = Lv(Hv, $1, N1, !1), C1 = !isEmptyObject(Zv) || R1;
      if (!N1 && hv.values.next({
        name: Hv,
        type: O1.type,
        values: { ...av }
      }), e$)
        return dv.isValid && (rv.mode === "onBlur" ? N1 && Ev() : Ev()), C1 && hv.state.next({ name: Hv, ...R1 ? {} : Zv });
      if (!N1 && R1 && hv.state.next({ ...ev }), tv.resolver) {
        const { errors: q1 } = await Dv([Hv]);
        if (Wv($1), Jv) {
          const t$ = schemaErrorLookup(ev.errors, iv, Hv), _b = schemaErrorLookup(q1, iv, t$.name || Hv);
          Kv = _b.error, Hv = _b.name, c1 = isEmptyObject(q1);
        }
      } else
        wv([Hv], !0), Kv = (await validateField(Mv, av, Sv, tv.shouldUseNativeValidation))[Hv], wv([Hv]), Wv($1), Jv && (Kv ? c1 = !1 : dv.isValid && (c1 = await Gv(iv, !0)));
      Jv && (Mv._f.deps && D1(Mv._f.deps), jv(Hv, c1, Kv, Zv));
    }
  }, P1 = (O1, Z1) => {
    if (get(ev.errors, Z1) && O1.focus)
      return O1.focus(), 1;
  }, D1 = async (O1, Z1 = {}) => {
    let Hv, Jv;
    const Mv = convertToArrayPayload(O1);
    if (tv.resolver) {
      const zv = await Vv(isUndefined(O1) ? O1 : Mv);
      Hv = isEmptyObject(zv), Jv = O1 ? !Mv.some((Wv) => get(zv, Wv)) : Hv;
    } else
      O1 ? (Jv = (await Promise.all(Mv.map(async (zv) => {
        const Wv = get(iv, zv);
        return await Gv(Wv && Wv._f ? { [zv]: Wv } : Wv);
      }))).every(Boolean), !(!Jv && !ev.isValid) && Ev()) : Jv = Hv = await Gv(iv);
    return hv.state.next({
      ...!isString(O1) || dv.isValid && Hv !== ev.isValid ? {} : { name: O1 },
      ...tv.resolver || !O1 ? { isValid: Hv } : {},
      errors: ev.errors
    }), Z1.shouldFocus && !Jv && iterateFieldsByAction(iv, P1, O1 ? Mv : lv.mount), Jv;
  }, I1 = (O1) => {
    const Z1 = {
      ...sv.mount ? av : ov
    };
    return isUndefined(O1) ? Z1 : isString(O1) ? get(Z1, O1) : O1.map((Hv) => get(Z1, Hv));
  }, F1 = (O1, Z1) => ({
    invalid: !!get((Z1 || ev).errors, O1),
    isDirty: !!get((Z1 || ev).dirtyFields, O1),
    error: get((Z1 || ev).errors, O1),
    isValidating: !!get(ev.validatingFields, O1),
    isTouched: !!get((Z1 || ev).touchedFields, O1)
  }), M1 = (O1) => {
    O1 && convertToArrayPayload(O1).forEach((Z1) => unset(ev.errors, Z1)), hv.state.next({
      errors: O1 ? ev.errors : {}
    });
  }, U1 = (O1, Z1, Hv) => {
    const Jv = (get(iv, O1, { _f: {} })._f || {}).ref, Mv = get(ev.errors, O1) || {}, { ref: zv, message: Wv, type: Kv, ...c1 } = Mv;
    set(ev.errors, O1, {
      ...c1,
      ...Z1,
      ref: Jv
    }), hv.state.next({
      name: O1,
      errors: ev.errors,
      isValid: !1
    }), Hv && Hv.shouldFocus && Jv && Jv.focus && Jv.focus();
  }, H1 = (O1, Z1) => isFunction(O1) ? hv.values.subscribe({
    next: (Hv) => O1(L1(void 0, Z1), Hv)
  }) : L1(O1, Z1, !0), k1 = (O1, Z1 = {}) => {
    for (const Hv of O1 ? convertToArrayPayload(O1) : lv.mount)
      lv.mount.delete(Hv), lv.array.delete(Hv), Z1.keepValue || (unset(iv, Hv), unset(av, Hv)), !Z1.keepError && unset(ev.errors, Hv), !Z1.keepDirty && unset(ev.dirtyFields, Hv), !Z1.keepTouched && unset(ev.touchedFields, Hv), !Z1.keepIsValidating && unset(ev.validatingFields, Hv), !tv.shouldUnregister && !Z1.keepDefaultValue && unset(ov, Hv);
    hv.values.next({
      values: { ...av }
    }), hv.state.next({
      ...ev,
      ...Z1.keepDirty ? { isDirty: Xv() } : {}
    }), !Z1.keepIsValid && Ev();
  }, Q1 = ({ disabled: O1, name: Z1, field: Hv, fields: Jv, value: Mv }) => {
    if (isBoolean(O1) && sv.mount || O1) {
      const zv = O1 ? void 0 : isUndefined(Mv) ? getFieldValue(Hv ? Hv._f : get(Jv, Z1)._f) : Mv;
      set(av, Z1, zv), Lv(Z1, zv, !1, !1, !0);
    }
  }, Y1 = (O1, Z1 = {}) => {
    let Hv = get(iv, O1);
    const Jv = isBoolean(Z1.disabled) || isBoolean(rv.disabled);
    return set(iv, O1, {
      ...Hv || {},
      _f: {
        ...Hv && Hv._f ? Hv._f : { ref: { name: O1 } },
        name: O1,
        mount: !0,
        ...Z1
      }
    }), lv.mount.add(O1), Hv ? Q1({
      field: Hv,
      disabled: isBoolean(Z1.disabled) ? Z1.disabled : rv.disabled,
      name: O1,
      value: Z1.value
    }) : Ov(O1, !0, Z1.value), {
      ...Jv ? { disabled: Z1.disabled || rv.disabled } : {},
      ...tv.progressive ? {
        required: !!Z1.required,
        min: getRuleValue(Z1.min),
        max: getRuleValue(Z1.max),
        minLength: getRuleValue(Z1.minLength),
        maxLength: getRuleValue(Z1.maxLength),
        pattern: getRuleValue(Z1.pattern)
      } : {},
      name: O1,
      onChange: j1,
      onBlur: j1,
      ref: (Mv) => {
        if (Mv) {
          Y1(O1, Z1), Hv = get(iv, O1);
          const zv = isUndefined(Mv.value) && Mv.querySelectorAll && Mv.querySelectorAll("input,select,textarea")[0] || Mv, Wv = isRadioOrCheckbox(zv), Kv = Hv._f.refs || [];
          if (Wv ? Kv.find((c1) => c1 === zv) : zv === Hv._f.ref)
            return;
          set(iv, O1, {
            _f: {
              ...Hv._f,
              ...Wv ? {
                refs: [
                  ...Kv.filter(live),
                  zv,
                  ...Array.isArray(get(ov, O1)) ? [{}] : []
                ],
                ref: { type: zv.type, name: O1 }
              } : { ref: zv }
            }
          }), Ov(O1, !1, void 0, zv);
        } else
          Hv = get(iv, O1, {}), Hv._f && (Hv._f.mount = !1), (tv.shouldUnregister || Z1.shouldUnregister) && !(isNameInFieldArray(lv.array, O1) && sv.action) && lv.unMount.add(O1);
      }
    };
  }, r$ = () => tv.shouldFocusError && iterateFieldsByAction(iv, P1, lv.mount), a$ = (O1) => {
    isBoolean(O1) && (hv.state.next({ disabled: O1 }), iterateFieldsByAction(iv, (Z1, Hv) => {
      const Jv = get(iv, Hv);
      Jv && (Z1.disabled = Jv._f.disabled || O1, Array.isArray(Jv._f.refs) && Jv._f.refs.forEach((Mv) => {
        Mv.disabled = Jv._f.disabled || O1;
      }));
    }, 0, !1));
  }, S$ = (O1, Z1) => async (Hv) => {
    let Jv;
    Hv && (Hv.preventDefault && Hv.preventDefault(), Hv.persist && Hv.persist());
    let Mv = cloneObject(av);
    if (hv.state.next({
      isSubmitting: !0
    }), tv.resolver) {
      const { errors: zv, values: Wv } = await Dv();
      ev.errors = zv, Mv = Wv;
    } else
      await Gv(iv);
    if (unset(ev.errors, "root"), isEmptyObject(ev.errors)) {
      hv.state.next({
        errors: {}
      });
      try {
        await O1(Mv, Hv);
      } catch (zv) {
        Jv = zv;
      }
    } else
      Z1 && await Z1({ ...ev.errors }, Hv), r$(), setTimeout(r$);
    if (hv.state.next({
      isSubmitted: !0,
      isSubmitting: !1,
      isSubmitSuccessful: isEmptyObject(ev.errors) && !Jv,
      submitCount: ev.submitCount + 1,
      errors: ev.errors
    }), Jv)
      throw Jv;
  }, d$ = (O1, Z1 = {}) => {
    get(iv, O1) && (isUndefined(Z1.defaultValue) ? K1(O1, cloneObject(get(ov, O1))) : (K1(O1, Z1.defaultValue), set(ov, O1, cloneObject(Z1.defaultValue))), Z1.keepTouched || unset(ev.touchedFields, O1), Z1.keepDirty || (unset(ev.dirtyFields, O1), ev.isDirty = Z1.defaultValue ? Xv(O1, cloneObject(get(ov, O1))) : Xv()), Z1.keepError || (unset(ev.errors, O1), dv.isValid && Ev()), hv.state.next({ ...ev }));
  }, x$ = (O1, Z1 = {}) => {
    const Hv = O1 ? cloneObject(O1) : ov, Jv = cloneObject(Hv), Mv = isEmptyObject(O1), zv = Mv ? ov : Jv;
    if (Z1.keepDefaultValues || (ov = Hv), !Z1.keepValues) {
      if (Z1.keepDirtyValues)
        for (const Wv of lv.mount)
          get(ev.dirtyFields, Wv) ? set(zv, Wv, get(av, Wv)) : K1(Wv, get(zv, Wv));
      else {
        if (isWeb && isUndefined(O1))
          for (const Wv of lv.mount) {
            const Kv = get(iv, Wv);
            if (Kv && Kv._f) {
              const c1 = Array.isArray(Kv._f.refs) ? Kv._f.refs[0] : Kv._f.ref;
              if (isHTMLElement(c1)) {
                const $1 = c1.closest("form");
                if ($1) {
                  $1.reset();
                  break;
                }
              }
            }
          }
        iv = {};
      }
      av = rv.shouldUnregister ? Z1.keepDefaultValues ? cloneObject(ov) : {} : cloneObject(zv), hv.array.next({
        values: { ...zv }
      }), hv.values.next({
        values: { ...zv }
      });
    }
    lv = {
      mount: Z1.keepDirtyValues ? lv.mount : /* @__PURE__ */ new Set(),
      unMount: /* @__PURE__ */ new Set(),
      array: /* @__PURE__ */ new Set(),
      watch: /* @__PURE__ */ new Set(),
      watchAll: !1,
      focus: ""
    }, sv.mount = !dv.isValid || !!Z1.keepIsValid || !!Z1.keepDirtyValues, sv.watch = !!rv.shouldUnregister, hv.state.next({
      submitCount: Z1.keepSubmitCount ? ev.submitCount : 0,
      isDirty: Mv ? !1 : Z1.keepDirty ? ev.isDirty : !!(Z1.keepDefaultValues && !deepEqual(O1, ov)),
      isSubmitted: Z1.keepIsSubmitted ? ev.isSubmitted : !1,
      dirtyFields: Mv ? {} : Z1.keepDirtyValues ? Z1.keepDefaultValues && av ? getDirtyFields(ov, av) : ev.dirtyFields : Z1.keepDefaultValues && O1 ? getDirtyFields(ov, O1) : Z1.keepDirty ? ev.dirtyFields : {},
      touchedFields: Z1.keepTouched ? ev.touchedFields : {},
      errors: Z1.keepErrors ? ev.errors : {},
      isSubmitSuccessful: Z1.keepIsSubmitSuccessful ? ev.isSubmitSuccessful : !1,
      isSubmitting: !1
    });
  }, g$ = (O1, Z1) => x$(isFunction(O1) ? O1(av) : O1, Z1);
  return {
    control: {
      register: Y1,
      unregister: k1,
      getFieldState: F1,
      handleSubmit: S$,
      setError: U1,
      _executeSchema: Dv,
      _getWatch: L1,
      _getDirty: Xv,
      _updateValid: Ev,
      _removeUnmounted: Yv,
      _updateFieldArray: xv,
      _updateDisabledField: Q1,
      _getFieldArray: Bv,
      _reset: x$,
      _resetDefaultValues: () => isFunction(tv.defaultValues) && tv.defaultValues().then((O1) => {
        g$(O1, tv.resetOptions), hv.state.next({
          isLoading: !1
        });
      }),
      _updateFormState: (O1) => {
        ev = {
          ...ev,
          ...O1
        };
      },
      _disableForm: a$,
      _subjects: hv,
      _proxyFormState: dv,
      _setErrors: Av,
      get _fields() {
        return iv;
      },
      get _formValues() {
        return av;
      },
      get _state() {
        return sv;
      },
      set _state(O1) {
        sv = O1;
      },
      get _defaultValues() {
        return ov;
      },
      get _names() {
        return lv;
      },
      set _names(O1) {
        lv = O1;
      },
      get _formState() {
        return ev;
      },
      set _formState(O1) {
        ev = O1;
      },
      get _options() {
        return tv;
      },
      set _options(O1) {
        tv = {
          ...tv,
          ...O1
        };
      }
    },
    trigger: D1,
    register: Y1,
    handleSubmit: S$,
    watch: H1,
    setValue: K1,
    getValues: I1,
    reset: g$,
    resetField: d$,
    clearErrors: M1,
    unregister: k1,
    setError: U1,
    setFocus: (O1, Z1 = {}) => {
      const Hv = get(iv, O1), Jv = Hv && Hv._f;
      if (Jv) {
        const Mv = Jv.refs ? Jv.refs[0] : Jv.ref;
        Mv.focus && (Mv.focus(), Z1.shouldSelect && Mv.select());
      }
    },
    getFieldState: F1
  };
}
function useForm(rv = {}) {
  const tv = React.useRef(), ev = React.useRef(), [iv, ov] = React.useState({
    isDirty: !1,
    isValidating: !1,
    isLoading: isFunction(rv.defaultValues),
    isSubmitted: !1,
    isSubmitting: !1,
    isSubmitSuccessful: !1,
    isValid: !1,
    submitCount: 0,
    dirtyFields: {},
    touchedFields: {},
    validatingFields: {},
    errors: rv.errors || {},
    disabled: rv.disabled || !1,
    defaultValues: isFunction(rv.defaultValues) ? void 0 : rv.defaultValues
  });
  tv.current || (tv.current = {
    ...createFormControl(rv),
    formState: iv
  });
  const av = tv.current.control;
  return av._options = rv, useSubscribe({
    subject: av._subjects.state,
    next: (sv) => {
      shouldRenderFormState(sv, av._proxyFormState, av._updateFormState) && ov({ ...av._formState });
    }
  }), React.useEffect(() => av._disableForm(rv.disabled), [av, rv.disabled]), React.useEffect(() => {
    if (av._proxyFormState.isDirty) {
      const sv = av._getDirty();
      sv !== iv.isDirty && av._subjects.state.next({
        isDirty: sv
      });
    }
  }, [av, iv.isDirty]), React.useEffect(() => {
    rv.values && !deepEqual(rv.values, ev.current) ? (av._reset(rv.values, av._options.resetOptions), ev.current = rv.values, ov((sv) => ({ ...sv }))) : av._resetDefaultValues();
  }, [rv.values, av]), React.useEffect(() => {
    rv.errors && av._setErrors(rv.errors);
  }, [rv.errors, av]), React.useEffect(() => {
    av._state.mount || (av._updateValid(), av._state.mount = !0), av._state.watch && (av._state.watch = !1, av._subjects.state.next({ ...av._formState })), av._removeUnmounted();
  }), React.useEffect(() => {
    rv.shouldUnregister && av._subjects.values.next({
      values: av._getWatch()
    });
  }, [rv.shouldUnregister, av]), tv.current.formState = getProxyFormState(iv, av), tv.current;
}
const s = (rv, tv, ev) => {
  if (rv && "reportValidity" in rv) {
    const iv = get(ev, tv);
    rv.setCustomValidity(iv && iv.message || ""), rv.reportValidity();
  }
}, o$1 = (rv, tv) => {
  for (const ev in tv.fields) {
    const iv = tv.fields[ev];
    iv && iv.ref && "reportValidity" in iv.ref ? s(iv.ref, ev, rv) : iv.refs && iv.refs.forEach((ov) => s(ov, ev, rv));
  }
}, r = (rv, tv) => {
  tv.shouldUseNativeValidation && o$1(rv, tv);
  const ev = {};
  for (const iv in rv) {
    const ov = get(tv.fields, iv), av = Object.assign(rv[iv] || {}, { ref: ov && ov.ref });
    if (i(tv.names || Object.keys(rv), iv)) {
      const sv = Object.assign({}, get(ev, iv));
      set(sv, "root", av), set(ev, iv, sv);
    } else
      set(ev, iv, av);
  }
  return ev;
}, i = (rv, tv) => rv.some((ev) => ev.startsWith(tv + "."));
function o(rv, tv, ev) {
  return tv === void 0 && (tv = {}), ev === void 0 && (ev = {}), function(iv, ov, av) {
    try {
      return Promise.resolve(function(sv, lv) {
        try {
          var uv = (tv.context, Promise.resolve(rv[ev.mode === "sync" ? "validateSync" : "validate"](iv, Object.assign({ abortEarly: !1 }, tv, { context: ov }))).then(function(cv) {
            return av.shouldUseNativeValidation && o$1({}, av), { values: ev.raw ? iv : cv, errors: {} };
          }));
        } catch (cv) {
          return lv(cv);
        }
        return uv && uv.then ? uv.then(void 0, lv) : uv;
      }(0, function(sv) {
        if (!sv.inner)
          throw sv;
        return { values: {}, errors: r((lv = sv, uv = !av.shouldUseNativeValidation && av.criteriaMode === "all", (lv.inner || []).reduce(function(cv, dv) {
          if (cv[dv.path] || (cv[dv.path] = { message: dv.message, type: dv.type }), uv) {
            var hv = cv[dv.path].types, pv = hv && hv[dv.type];
            cv[dv.path] = appendErrors(dv.path, uv, cv, dv.type, pv ? [].concat(pv, dv.message) : dv.message);
          }
          return cv;
        }, {})), av) };
        var lv, uv;
      }));
    } catch (sv) {
      return Promise.reject(sv);
    }
  };
}
function Cache(rv) {
  this._maxSize = rv, this.clear();
}
Cache.prototype.clear = function() {
  this._size = 0, this._values = /* @__PURE__ */ Object.create(null);
};
Cache.prototype.get = function(rv) {
  return this._values[rv];
};
Cache.prototype.set = function(rv, tv) {
  return this._size >= this._maxSize && this.clear(), rv in this._values || this._size++, this._values[rv] = tv;
};
var SPLIT_REGEX = /[^.^\]^[]+|(?=\[\]|\.\.)/g, DIGIT_REGEX = /^\d+$/, LEAD_DIGIT_REGEX = /^\d/, SPEC_CHAR_REGEX = /[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g, CLEAN_QUOTES_REGEX = /^\s*(['"]?)(.*?)(\1)\s*$/, MAX_CACHE_SIZE = 512, pathCache = new Cache(MAX_CACHE_SIZE), setCache = new Cache(MAX_CACHE_SIZE), getCache = new Cache(MAX_CACHE_SIZE), propertyExpr = {
  Cache,
  split,
  normalizePath,
  setter: function(rv) {
    var tv = normalizePath(rv);
    return setCache.get(rv) || setCache.set(rv, function(iv, ov) {
      for (var av = 0, sv = tv.length, lv = iv; av < sv - 1; ) {
        var uv = tv[av];
        if (uv === "__proto__" || uv === "constructor" || uv === "prototype")
          return iv;
        lv = lv[tv[av++]];
      }
      lv[tv[av]] = ov;
    });
  },
  getter: function(rv, tv) {
    var ev = normalizePath(rv);
    return getCache.get(rv) || getCache.set(rv, function(ov) {
      for (var av = 0, sv = ev.length; av < sv; )
        if (ov != null || !tv)
          ov = ov[ev[av++]];
        else
          return;
      return ov;
    });
  },
  join: function(rv) {
    return rv.reduce(function(tv, ev) {
      return tv + (isQuoted(ev) || DIGIT_REGEX.test(ev) ? "[" + ev + "]" : (tv ? "." : "") + ev);
    }, "");
  },
  forEach: function(rv, tv, ev) {
    forEach(Array.isArray(rv) ? rv : split(rv), tv, ev);
  }
};
function normalizePath(rv) {
  return pathCache.get(rv) || pathCache.set(
    rv,
    split(rv).map(function(tv) {
      return tv.replace(CLEAN_QUOTES_REGEX, "$2");
    })
  );
}
function split(rv) {
  return rv.match(SPLIT_REGEX) || [""];
}
function forEach(rv, tv, ev) {
  var iv = rv.length, ov, av, sv, lv;
  for (av = 0; av < iv; av++)
    ov = rv[av], ov && (shouldBeQuoted(ov) && (ov = '"' + ov + '"'), lv = isQuoted(ov), sv = !lv && /^\d+$/.test(ov), tv.call(ev, ov, lv, sv, av, rv));
}
function isQuoted(rv) {
  return typeof rv == "string" && rv && ["'", '"'].indexOf(rv.charAt(0)) !== -1;
}
function hasLeadingNumber(rv) {
  return rv.match(LEAD_DIGIT_REGEX) && !rv.match(DIGIT_REGEX);
}
function hasSpecialChars(rv) {
  return SPEC_CHAR_REGEX.test(rv);
}
function shouldBeQuoted(rv) {
  return !isQuoted(rv) && (hasLeadingNumber(rv) || hasSpecialChars(rv));
}
const reWords = /[A-Z\xc0-\xd6\xd8-\xde]?[a-z\xdf-\xf6\xf8-\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde]|$)|(?:[A-Z\xc0-\xd6\xd8-\xde]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde](?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])|$)|[A-Z\xc0-\xd6\xd8-\xde]?(?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\xc0-\xd6\xd8-\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\d*(?:1ST|2ND|3RD|(?![123])\dTH)(?=\b|[a-z_])|\d*(?:1st|2nd|3rd|(?![123])\dth)(?=\b|[A-Z_])|\d+|(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?)*/g, words = (rv) => rv.match(reWords) || [], upperFirst = (rv) => rv[0].toUpperCase() + rv.slice(1), join = (rv, tv) => words(rv).join(tv).toLowerCase(), camelCase = (rv) => words(rv).reduce(
  (tv, ev) => `${tv}${tv ? ev[0].toUpperCase() + ev.slice(1).toLowerCase() : ev.toLowerCase()}`,
  ""
), pascalCase = (rv) => upperFirst(camelCase(rv)), snakeCase = (rv) => join(rv, "_"), kebabCase = (rv) => join(rv, "-"), sentenceCase = (rv) => upperFirst(join(rv, " ")), titleCase = (rv) => words(rv).map(upperFirst).join(" ");
var tinyCase = {
  words,
  upperFirst,
  camelCase,
  pascalCase,
  snakeCase,
  kebabCase,
  sentenceCase,
  titleCase
}, toposort$2 = { exports: {} };
toposort$2.exports = function(rv) {
  return toposort(uniqueNodes(rv), rv);
};
toposort$2.exports.array = toposort;
function toposort(rv, tv) {
  var ev = rv.length, iv = new Array(ev), ov = {}, av = ev, sv = makeOutgoingEdges(tv), lv = makeNodesHash(rv);
  for (tv.forEach(function(cv) {
    if (!lv.has(cv[0]) || !lv.has(cv[1]))
      throw new Error("Unknown node. There is an unknown node in the supplied edges.");
  }); av--; )
    ov[av] || uv(rv[av], av, /* @__PURE__ */ new Set());
  return iv;
  function uv(cv, dv, hv) {
    if (hv.has(cv)) {
      var pv;
      try {
        pv = ", node was:" + JSON.stringify(cv);
      } catch {
        pv = "";
      }
      throw new Error("Cyclic dependency" + pv);
    }
    if (!lv.has(cv))
      throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: " + JSON.stringify(cv));
    if (!ov[dv]) {
      ov[dv] = !0;
      var yv = sv.get(cv) || /* @__PURE__ */ new Set();
      if (yv = Array.from(yv), dv = yv.length) {
        hv.add(cv);
        do {
          var Sv = yv[--dv];
          uv(Sv, lv.get(Sv), hv);
        } while (dv);
        hv.delete(cv);
      }
      iv[--ev] = cv;
    }
  }
}
function uniqueNodes(rv) {
  for (var tv = /* @__PURE__ */ new Set(), ev = 0, iv = rv.length; ev < iv; ev++) {
    var ov = rv[ev];
    tv.add(ov[0]), tv.add(ov[1]);
  }
  return Array.from(tv);
}
function makeOutgoingEdges(rv) {
  for (var tv = /* @__PURE__ */ new Map(), ev = 0, iv = rv.length; ev < iv; ev++) {
    var ov = rv[ev];
    tv.has(ov[0]) || tv.set(ov[0], /* @__PURE__ */ new Set()), tv.has(ov[1]) || tv.set(ov[1], /* @__PURE__ */ new Set()), tv.get(ov[0]).add(ov[1]);
  }
  return tv;
}
function makeNodesHash(rv) {
  for (var tv = /* @__PURE__ */ new Map(), ev = 0, iv = rv.length; ev < iv; ev++)
    tv.set(rv[ev], ev);
  return tv;
}
var toposortExports = toposort$2.exports;
const toposort$1 = /* @__PURE__ */ getDefaultExportFromCjs(toposortExports), toString = Object.prototype.toString, errorToString = Error.prototype.toString, regExpToString = RegExp.prototype.toString, symbolToString = typeof Symbol < "u" ? Symbol.prototype.toString : () => "", SYMBOL_REGEXP = /^Symbol\((.*)\)(.*)$/;
function printNumber(rv) {
  return rv != +rv ? "NaN" : rv === 0 && 1 / rv < 0 ? "-0" : "" + rv;
}
function printSimpleValue(rv, tv = !1) {
  if (rv == null || rv === !0 || rv === !1)
    return "" + rv;
  const ev = typeof rv;
  if (ev === "number")
    return printNumber(rv);
  if (ev === "string")
    return tv ? `"${rv}"` : rv;
  if (ev === "function")
    return "[Function " + (rv.name || "anonymous") + "]";
  if (ev === "symbol")
    return symbolToString.call(rv).replace(SYMBOL_REGEXP, "Symbol($1)");
  const iv = toString.call(rv).slice(8, -1);
  return iv === "Date" ? isNaN(rv.getTime()) ? "" + rv : rv.toISOString(rv) : iv === "Error" || rv instanceof Error ? "[" + errorToString.call(rv) + "]" : iv === "RegExp" ? regExpToString.call(rv) : null;
}
function printValue(rv, tv) {
  let ev = printSimpleValue(rv, tv);
  return ev !== null ? ev : JSON.stringify(rv, function(iv, ov) {
    let av = printSimpleValue(this[iv], tv);
    return av !== null ? av : ov;
  }, 2);
}
function toArray$1(rv) {
  return rv == null ? [] : [].concat(rv);
}
let _Symbol$toStringTag, _Symbol$hasInstance, _Symbol$toStringTag2, strReg = /\$\{\s*(\w+)\s*\}/g;
_Symbol$toStringTag = Symbol.toStringTag;
class ValidationErrorNoStack {
  constructor(tv, ev, iv, ov) {
    this.name = void 0, this.message = void 0, this.value = void 0, this.path = void 0, this.type = void 0, this.params = void 0, this.errors = void 0, this.inner = void 0, this[_Symbol$toStringTag] = "Error", this.name = "ValidationError", this.value = ev, this.path = iv, this.type = ov, this.errors = [], this.inner = [], toArray$1(tv).forEach((av) => {
      if (ValidationError.isError(av)) {
        this.errors.push(...av.errors);
        const sv = av.inner.length ? av.inner : [av];
        this.inner.push(...sv);
      } else
        this.errors.push(av);
    }), this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];
  }
}
_Symbol$hasInstance = Symbol.hasInstance;
_Symbol$toStringTag2 = Symbol.toStringTag;
class ValidationError extends Error {
  static formatError(tv, ev) {
    const iv = ev.label || ev.path || "this";
    return iv !== ev.path && (ev = Object.assign({}, ev, {
      path: iv
    })), typeof tv == "string" ? tv.replace(strReg, (ov, av) => printValue(ev[av])) : typeof tv == "function" ? tv(ev) : tv;
  }
  static isError(tv) {
    return tv && tv.name === "ValidationError";
  }
  constructor(tv, ev, iv, ov, av) {
    const sv = new ValidationErrorNoStack(tv, ev, iv, ov);
    if (av)
      return sv;
    super(), this.value = void 0, this.path = void 0, this.type = void 0, this.params = void 0, this.errors = [], this.inner = [], this[_Symbol$toStringTag2] = "Error", this.name = sv.name, this.message = sv.message, this.type = sv.type, this.value = sv.value, this.path = sv.path, this.errors = sv.errors, this.inner = sv.inner, Error.captureStackTrace && Error.captureStackTrace(this, ValidationError);
  }
  static [_Symbol$hasInstance](tv) {
    return ValidationErrorNoStack[Symbol.hasInstance](tv) || super[Symbol.hasInstance](tv);
  }
}
let mixed = {
  default: "${path} is invalid",
  required: "${path} is a required field",
  defined: "${path} must be defined",
  notNull: "${path} cannot be null",
  oneOf: "${path} must be one of the following values: ${values}",
  notOneOf: "${path} must not be one of the following values: ${values}",
  notType: ({
    path: rv,
    type: tv,
    value: ev,
    originalValue: iv
  }) => {
    const ov = iv != null && iv !== ev ? ` (cast from the value \`${printValue(iv, !0)}\`).` : ".";
    return tv !== "mixed" ? `${rv} must be a \`${tv}\` type, but the final value was: \`${printValue(ev, !0)}\`` + ov : `${rv} must match the configured type. The validated value was: \`${printValue(ev, !0)}\`` + ov;
  }
}, string = {
  length: "${path} must be exactly ${length} characters",
  min: "${path} must be at least ${min} characters",
  max: "${path} must be at most ${max} characters",
  matches: '${path} must match the following: "${regex}"',
  email: "${path} must be a valid email",
  url: "${path} must be a valid URL",
  uuid: "${path} must be a valid UUID",
  datetime: "${path} must be a valid ISO date-time",
  datetime_precision: "${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits",
  datetime_offset: '${path} must be a valid ISO date-time with UTC "Z" timezone',
  trim: "${path} must be a trimmed string",
  lowercase: "${path} must be a lowercase string",
  uppercase: "${path} must be a upper case string"
}, number = {
  min: "${path} must be greater than or equal to ${min}",
  max: "${path} must be less than or equal to ${max}",
  lessThan: "${path} must be less than ${less}",
  moreThan: "${path} must be greater than ${more}",
  positive: "${path} must be a positive number",
  negative: "${path} must be a negative number",
  integer: "${path} must be an integer"
}, date = {
  min: "${path} field must be later than ${min}",
  max: "${path} field must be at earlier than ${max}"
}, boolean = {
  isValue: "${path} field must be ${value}"
}, object = {
  noUnknown: "${path} field has unspecified keys: ${unknown}"
}, array = {
  min: "${path} field must have at least ${min} items",
  max: "${path} field must have less than or equal to ${max} items",
  length: "${path} must have ${length} items"
}, tuple = {
  notType: (rv) => {
    const {
      path: tv,
      value: ev,
      spec: iv
    } = rv, ov = iv.types.length;
    if (Array.isArray(ev)) {
      if (ev.length < ov)
        return `${tv} tuple value has too few items, expected a length of ${ov} but got ${ev.length} for value: \`${printValue(ev, !0)}\``;
      if (ev.length > ov)
        return `${tv} tuple value has too many items, expected a length of ${ov} but got ${ev.length} for value: \`${printValue(ev, !0)}\``;
    }
    return ValidationError.formatError(mixed.notType, rv);
  }
};
Object.assign(/* @__PURE__ */ Object.create(null), {
  mixed,
  string,
  number,
  date,
  object,
  array,
  boolean,
  tuple
});
const isSchema = (rv) => rv && rv.__isYupSchema__;
class Condition {
  static fromOptions(tv, ev) {
    if (!ev.then && !ev.otherwise)
      throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");
    let {
      is: iv,
      then: ov,
      otherwise: av
    } = ev, sv = typeof iv == "function" ? iv : (...lv) => lv.every((uv) => uv === iv);
    return new Condition(tv, (lv, uv) => {
      var cv;
      let dv = sv(...lv) ? ov : av;
      return (cv = dv == null ? void 0 : dv(uv)) != null ? cv : uv;
    });
  }
  constructor(tv, ev) {
    this.fn = void 0, this.refs = tv, this.refs = tv, this.fn = ev;
  }
  resolve(tv, ev) {
    let iv = this.refs.map((av) => (
      // TODO: ? operator here?
      av.getValue(ev == null ? void 0 : ev.value, ev == null ? void 0 : ev.parent, ev == null ? void 0 : ev.context)
    )), ov = this.fn(iv, tv, ev);
    if (ov === void 0 || // @ts-ignore this can be base
    ov === tv)
      return tv;
    if (!isSchema(ov))
      throw new TypeError("conditions must return a schema object");
    return ov.resolve(ev);
  }
}
const prefixes = {
  context: "$",
  value: "."
};
class Reference {
  constructor(tv, ev = {}) {
    if (this.key = void 0, this.isContext = void 0, this.isValue = void 0, this.isSibling = void 0, this.path = void 0, this.getter = void 0, this.map = void 0, typeof tv != "string")
      throw new TypeError("ref must be a string, got: " + tv);
    if (this.key = tv.trim(), tv === "")
      throw new TypeError("ref must be a non-empty string");
    this.isContext = this.key[0] === prefixes.context, this.isValue = this.key[0] === prefixes.value, this.isSibling = !this.isContext && !this.isValue;
    let iv = this.isContext ? prefixes.context : this.isValue ? prefixes.value : "";
    this.path = this.key.slice(iv.length), this.getter = this.path && propertyExpr.getter(this.path, !0), this.map = ev.map;
  }
  getValue(tv, ev, iv) {
    let ov = this.isContext ? iv : this.isValue ? tv : ev;
    return this.getter && (ov = this.getter(ov || {})), this.map && (ov = this.map(ov)), ov;
  }
  /**
   *
   * @param {*} value
   * @param {Object} options
   * @param {Object=} options.context
   * @param {Object=} options.parent
   */
  cast(tv, ev) {
    return this.getValue(tv, ev == null ? void 0 : ev.parent, ev == null ? void 0 : ev.context);
  }
  resolve() {
    return this;
  }
  describe() {
    return {
      type: "ref",
      key: this.key
    };
  }
  toString() {
    return `Ref(${this.key})`;
  }
  static isRef(tv) {
    return tv && tv.__isYupRef;
  }
}
Reference.prototype.__isYupRef = !0;
const isAbsent = (rv) => rv == null;
function createValidation(rv) {
  function tv({
    value: ev,
    path: iv = "",
    options: ov,
    originalValue: av,
    schema: sv
  }, lv, uv) {
    const {
      name: cv,
      test: dv,
      params: hv,
      message: pv,
      skipAbsent: yv
    } = rv;
    let {
      parent: Sv,
      context: _v,
      abortEarly: Ev = sv.spec.abortEarly,
      disableStackTrace: wv = sv.spec.disableStackTrace
    } = ov;
    function xv(Yv) {
      return Reference.isRef(Yv) ? Yv.getValue(ev, Sv, _v) : Yv;
    }
    function Cv(Yv = {}) {
      const Xv = Object.assign({
        value: ev,
        originalValue: av,
        label: sv.spec.label,
        path: Yv.path || iv,
        spec: sv.spec,
        disableStackTrace: Yv.disableStackTrace || wv
      }, hv, Yv.params);
      for (const Bv of Object.keys(Xv))
        Xv[Bv] = xv(Xv[Bv]);
      const L1 = new ValidationError(ValidationError.formatError(Yv.message || pv, Xv), ev, Xv.path, Yv.type || cv, Xv.disableStackTrace);
      return L1.params = Xv, L1;
    }
    const Av = Ev ? lv : uv;
    let Ov = {
      path: iv,
      parent: Sv,
      type: cv,
      from: ov.from,
      createError: Cv,
      resolve: xv,
      options: ov,
      originalValue: av,
      schema: sv
    };
    const Lv = (Yv) => {
      ValidationError.isError(Yv) ? Av(Yv) : Yv ? uv(null) : Av(Cv());
    }, jv = (Yv) => {
      ValidationError.isError(Yv) ? Av(Yv) : lv(Yv);
    };
    if (yv && isAbsent(ev))
      return Lv(!0);
    let Vv;
    try {
      var Gv;
      if (Vv = dv.call(Ov, ev, Ov), typeof ((Gv = Vv) == null ? void 0 : Gv.then) == "function") {
        if (ov.sync)
          throw new Error(`Validation test of type: "${Ov.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`);
        return Promise.resolve(Vv).then(Lv, jv);
      }
    } catch (Yv) {
      jv(Yv);
      return;
    }
    Lv(Vv);
  }
  return tv.OPTIONS = rv, tv;
}
function getIn(rv, tv, ev, iv = ev) {
  let ov, av, sv;
  return tv ? (propertyExpr.forEach(tv, (lv, uv, cv) => {
    let dv = uv ? lv.slice(1, lv.length - 1) : lv;
    rv = rv.resolve({
      context: iv,
      parent: ov,
      value: ev
    });
    let hv = rv.type === "tuple", pv = cv ? parseInt(dv, 10) : 0;
    if (rv.innerType || hv) {
      if (hv && !cv)
        throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${sv}" must contain an index to the tuple element, e.g. "${sv}[0]"`);
      if (ev && pv >= ev.length)
        throw new Error(`Yup.reach cannot resolve an array item at index: ${lv}, in the path: ${tv}. because there is no value at that index. `);
      ov = ev, ev = ev && ev[pv], rv = hv ? rv.spec.types[pv] : rv.innerType;
    }
    if (!cv) {
      if (!rv.fields || !rv.fields[dv])
        throw new Error(`The schema does not contain the path: ${tv}. (failed at: ${sv} which is a type: "${rv.type}")`);
      ov = ev, ev = ev && ev[dv], rv = rv.fields[dv];
    }
    av = dv, sv = uv ? "[" + lv + "]" : "." + lv;
  }), {
    schema: rv,
    parent: ov,
    parentPath: av
  }) : {
    parent: ov,
    parentPath: tv,
    schema: rv
  };
}
class ReferenceSet extends Set {
  describe() {
    const tv = [];
    for (const ev of this.values())
      tv.push(Reference.isRef(ev) ? ev.describe() : ev);
    return tv;
  }
  resolveAll(tv) {
    let ev = [];
    for (const iv of this.values())
      ev.push(tv(iv));
    return ev;
  }
  clone() {
    return new ReferenceSet(this.values());
  }
  merge(tv, ev) {
    const iv = this.clone();
    return tv.forEach((ov) => iv.add(ov)), ev.forEach((ov) => iv.delete(ov)), iv;
  }
}
function clone(rv, tv = /* @__PURE__ */ new Map()) {
  if (isSchema(rv) || !rv || typeof rv != "object")
    return rv;
  if (tv.has(rv))
    return tv.get(rv);
  let ev;
  if (rv instanceof Date)
    ev = new Date(rv.getTime()), tv.set(rv, ev);
  else if (rv instanceof RegExp)
    ev = new RegExp(rv), tv.set(rv, ev);
  else if (Array.isArray(rv)) {
    ev = new Array(rv.length), tv.set(rv, ev);
    for (let iv = 0; iv < rv.length; iv++)
      ev[iv] = clone(rv[iv], tv);
  } else if (rv instanceof Map) {
    ev = /* @__PURE__ */ new Map(), tv.set(rv, ev);
    for (const [iv, ov] of rv.entries())
      ev.set(iv, clone(ov, tv));
  } else if (rv instanceof Set) {
    ev = /* @__PURE__ */ new Set(), tv.set(rv, ev);
    for (const iv of rv)
      ev.add(clone(iv, tv));
  } else if (rv instanceof Object) {
    ev = {}, tv.set(rv, ev);
    for (const [iv, ov] of Object.entries(rv))
      ev[iv] = clone(ov, tv);
  } else
    throw Error(`Unable to clone ${rv}`);
  return ev;
}
class Schema {
  constructor(tv) {
    this.type = void 0, this.deps = [], this.tests = void 0, this.transforms = void 0, this.conditions = [], this._mutate = void 0, this.internalTests = {}, this._whitelist = new ReferenceSet(), this._blacklist = new ReferenceSet(), this.exclusiveTests = /* @__PURE__ */ Object.create(null), this._typeCheck = void 0, this.spec = void 0, this.tests = [], this.transforms = [], this.withMutation(() => {
      this.typeError(mixed.notType);
    }), this.type = tv.type, this._typeCheck = tv.check, this.spec = Object.assign({
      strip: !1,
      strict: !1,
      abortEarly: !0,
      recursive: !0,
      disableStackTrace: !1,
      nullable: !1,
      optional: !0,
      coerce: !0
    }, tv == null ? void 0 : tv.spec), this.withMutation((ev) => {
      ev.nonNullable();
    });
  }
  // TODO: remove
  get _type() {
    return this.type;
  }
  clone(tv) {
    if (this._mutate)
      return tv && Object.assign(this.spec, tv), this;
    const ev = Object.create(Object.getPrototypeOf(this));
    return ev.type = this.type, ev._typeCheck = this._typeCheck, ev._whitelist = this._whitelist.clone(), ev._blacklist = this._blacklist.clone(), ev.internalTests = Object.assign({}, this.internalTests), ev.exclusiveTests = Object.assign({}, this.exclusiveTests), ev.deps = [...this.deps], ev.conditions = [...this.conditions], ev.tests = [...this.tests], ev.transforms = [...this.transforms], ev.spec = clone(Object.assign({}, this.spec, tv)), ev;
  }
  label(tv) {
    let ev = this.clone();
    return ev.spec.label = tv, ev;
  }
  meta(...tv) {
    if (tv.length === 0)
      return this.spec.meta;
    let ev = this.clone();
    return ev.spec.meta = Object.assign(ev.spec.meta || {}, tv[0]), ev;
  }
  withMutation(tv) {
    let ev = this._mutate;
    this._mutate = !0;
    let iv = tv(this);
    return this._mutate = ev, iv;
  }
  concat(tv) {
    if (!tv || tv === this)
      return this;
    if (tv.type !== this.type && this.type !== "mixed")
      throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${tv.type}`);
    let ev = this, iv = tv.clone();
    const ov = Object.assign({}, ev.spec, iv.spec);
    return iv.spec = ov, iv.internalTests = Object.assign({}, ev.internalTests, iv.internalTests), iv._whitelist = ev._whitelist.merge(tv._whitelist, tv._blacklist), iv._blacklist = ev._blacklist.merge(tv._blacklist, tv._whitelist), iv.tests = ev.tests, iv.exclusiveTests = ev.exclusiveTests, iv.withMutation((av) => {
      tv.tests.forEach((sv) => {
        av.test(sv.OPTIONS);
      });
    }), iv.transforms = [...ev.transforms, ...iv.transforms], iv;
  }
  isType(tv) {
    return tv == null ? !!(this.spec.nullable && tv === null || this.spec.optional && tv === void 0) : this._typeCheck(tv);
  }
  resolve(tv) {
    let ev = this;
    if (ev.conditions.length) {
      let iv = ev.conditions;
      ev = ev.clone(), ev.conditions = [], ev = iv.reduce((ov, av) => av.resolve(ov, tv), ev), ev = ev.resolve(tv);
    }
    return ev;
  }
  resolveOptions(tv) {
    var ev, iv, ov, av;
    return Object.assign({}, tv, {
      from: tv.from || [],
      strict: (ev = tv.strict) != null ? ev : this.spec.strict,
      abortEarly: (iv = tv.abortEarly) != null ? iv : this.spec.abortEarly,
      recursive: (ov = tv.recursive) != null ? ov : this.spec.recursive,
      disableStackTrace: (av = tv.disableStackTrace) != null ? av : this.spec.disableStackTrace
    });
  }
  /**
   * Run the configured transform pipeline over an input value.
   */
  cast(tv, ev = {}) {
    let iv = this.resolve(Object.assign({
      value: tv
    }, ev)), ov = ev.assert === "ignore-optionality", av = iv._cast(tv, ev);
    if (ev.assert !== !1 && !iv.isType(av)) {
      if (ov && isAbsent(av))
        return av;
      let sv = printValue(tv), lv = printValue(av);
      throw new TypeError(`The value of ${ev.path || "field"} could not be cast to a value that satisfies the schema type: "${iv.type}". 

attempted value: ${sv} 
` + (lv !== sv ? `result of cast: ${lv}` : ""));
    }
    return av;
  }
  _cast(tv, ev) {
    let iv = tv === void 0 ? tv : this.transforms.reduce((ov, av) => av.call(this, ov, tv, this), tv);
    return iv === void 0 && (iv = this.getDefault(ev)), iv;
  }
  _validate(tv, ev = {}, iv, ov) {
    let {
      path: av,
      originalValue: sv = tv,
      strict: lv = this.spec.strict
    } = ev, uv = tv;
    lv || (uv = this._cast(uv, Object.assign({
      assert: !1
    }, ev)));
    let cv = [];
    for (let dv of Object.values(this.internalTests))
      dv && cv.push(dv);
    this.runTests({
      path: av,
      value: uv,
      originalValue: sv,
      options: ev,
      tests: cv
    }, iv, (dv) => {
      if (dv.length)
        return ov(dv, uv);
      this.runTests({
        path: av,
        value: uv,
        originalValue: sv,
        options: ev,
        tests: this.tests
      }, iv, ov);
    });
  }
  /**
   * Executes a set of validations, either schema, produced Tests or a nested
   * schema validate result.
   */
  runTests(tv, ev, iv) {
    let ov = !1, {
      tests: av,
      value: sv,
      originalValue: lv,
      path: uv,
      options: cv
    } = tv, dv = (_v) => {
      ov || (ov = !0, ev(_v, sv));
    }, hv = (_v) => {
      ov || (ov = !0, iv(_v, sv));
    }, pv = av.length, yv = [];
    if (!pv)
      return hv([]);
    let Sv = {
      value: sv,
      originalValue: lv,
      path: uv,
      options: cv,
      schema: this
    };
    for (let _v = 0; _v < av.length; _v++) {
      const Ev = av[_v];
      Ev(Sv, dv, function(xv) {
        xv && (Array.isArray(xv) ? yv.push(...xv) : yv.push(xv)), --pv <= 0 && hv(yv);
      });
    }
  }
  asNestedTest({
    key: tv,
    index: ev,
    parent: iv,
    parentPath: ov,
    originalParent: av,
    options: sv
  }) {
    const lv = tv ?? ev;
    if (lv == null)
      throw TypeError("Must include `key` or `index` for nested validations");
    const uv = typeof lv == "number";
    let cv = iv[lv];
    const dv = Object.assign({}, sv, {
      // Nested validations fields are always strict:
      //    1. parent isn't strict so the casting will also have cast inner values
      //    2. parent is strict in which case the nested values weren't cast either
      strict: !0,
      parent: iv,
      value: cv,
      originalValue: av[lv],
      // FIXME: tests depend on `index` being passed around deeply,
      //   we should not let the options.key/index bleed through
      key: void 0,
      // index: undefined,
      [uv ? "index" : "key"]: lv,
      path: uv || lv.includes(".") ? `${ov || ""}[${uv ? lv : `"${lv}"`}]` : (ov ? `${ov}.` : "") + tv
    });
    return (hv, pv, yv) => this.resolve(dv)._validate(cv, dv, pv, yv);
  }
  validate(tv, ev) {
    var iv;
    let ov = this.resolve(Object.assign({}, ev, {
      value: tv
    })), av = (iv = ev == null ? void 0 : ev.disableStackTrace) != null ? iv : ov.spec.disableStackTrace;
    return new Promise((sv, lv) => ov._validate(tv, ev, (uv, cv) => {
      ValidationError.isError(uv) && (uv.value = cv), lv(uv);
    }, (uv, cv) => {
      uv.length ? lv(new ValidationError(uv, cv, void 0, void 0, av)) : sv(cv);
    }));
  }
  validateSync(tv, ev) {
    var iv;
    let ov = this.resolve(Object.assign({}, ev, {
      value: tv
    })), av, sv = (iv = ev == null ? void 0 : ev.disableStackTrace) != null ? iv : ov.spec.disableStackTrace;
    return ov._validate(tv, Object.assign({}, ev, {
      sync: !0
    }), (lv, uv) => {
      throw ValidationError.isError(lv) && (lv.value = uv), lv;
    }, (lv, uv) => {
      if (lv.length)
        throw new ValidationError(lv, tv, void 0, void 0, sv);
      av = uv;
    }), av;
  }
  isValid(tv, ev) {
    return this.validate(tv, ev).then(() => !0, (iv) => {
      if (ValidationError.isError(iv))
        return !1;
      throw iv;
    });
  }
  isValidSync(tv, ev) {
    try {
      return this.validateSync(tv, ev), !0;
    } catch (iv) {
      if (ValidationError.isError(iv))
        return !1;
      throw iv;
    }
  }
  _getDefault(tv) {
    let ev = this.spec.default;
    return ev == null ? ev : typeof ev == "function" ? ev.call(this, tv) : clone(ev);
  }
  getDefault(tv) {
    return this.resolve(tv || {})._getDefault(tv);
  }
  default(tv) {
    return arguments.length === 0 ? this._getDefault() : this.clone({
      default: tv
    });
  }
  strict(tv = !0) {
    return this.clone({
      strict: tv
    });
  }
  nullability(tv, ev) {
    const iv = this.clone({
      nullable: tv
    });
    return iv.internalTests.nullable = createValidation({
      message: ev,
      name: "nullable",
      test(ov) {
        return ov === null ? this.schema.spec.nullable : !0;
      }
    }), iv;
  }
  optionality(tv, ev) {
    const iv = this.clone({
      optional: tv
    });
    return iv.internalTests.optionality = createValidation({
      message: ev,
      name: "optionality",
      test(ov) {
        return ov === void 0 ? this.schema.spec.optional : !0;
      }
    }), iv;
  }
  optional() {
    return this.optionality(!0);
  }
  defined(tv = mixed.defined) {
    return this.optionality(!1, tv);
  }
  nullable() {
    return this.nullability(!0);
  }
  nonNullable(tv = mixed.notNull) {
    return this.nullability(!1, tv);
  }
  required(tv = mixed.required) {
    return this.clone().withMutation((ev) => ev.nonNullable(tv).defined(tv));
  }
  notRequired() {
    return this.clone().withMutation((tv) => tv.nullable().optional());
  }
  transform(tv) {
    let ev = this.clone();
    return ev.transforms.push(tv), ev;
  }
  /**
   * Adds a test function to the schema's queue of tests.
   * tests can be exclusive or non-exclusive.
   *
   * - exclusive tests, will replace any existing tests of the same name.
   * - non-exclusive: can be stacked
   *
   * If a non-exclusive test is added to a schema with an exclusive test of the same name
   * the exclusive test is removed and further tests of the same name will be stacked.
   *
   * If an exclusive test is added to a schema with non-exclusive tests of the same name
   * the previous tests are removed and further tests of the same name will replace each other.
   */
  test(...tv) {
    let ev;
    if (tv.length === 1 ? typeof tv[0] == "function" ? ev = {
      test: tv[0]
    } : ev = tv[0] : tv.length === 2 ? ev = {
      name: tv[0],
      test: tv[1]
    } : ev = {
      name: tv[0],
      message: tv[1],
      test: tv[2]
    }, ev.message === void 0 && (ev.message = mixed.default), typeof ev.test != "function")
      throw new TypeError("`test` is a required parameters");
    let iv = this.clone(), ov = createValidation(ev), av = ev.exclusive || ev.name && iv.exclusiveTests[ev.name] === !0;
    if (ev.exclusive && !ev.name)
      throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");
    return ev.name && (iv.exclusiveTests[ev.name] = !!ev.exclusive), iv.tests = iv.tests.filter((sv) => !(sv.OPTIONS.name === ev.name && (av || sv.OPTIONS.test === ov.OPTIONS.test))), iv.tests.push(ov), iv;
  }
  when(tv, ev) {
    !Array.isArray(tv) && typeof tv != "string" && (ev = tv, tv = ".");
    let iv = this.clone(), ov = toArray$1(tv).map((av) => new Reference(av));
    return ov.forEach((av) => {
      av.isSibling && iv.deps.push(av.key);
    }), iv.conditions.push(typeof ev == "function" ? new Condition(ov, ev) : Condition.fromOptions(ov, ev)), iv;
  }
  typeError(tv) {
    let ev = this.clone();
    return ev.internalTests.typeError = createValidation({
      message: tv,
      name: "typeError",
      skipAbsent: !0,
      test(iv) {
        return this.schema._typeCheck(iv) ? !0 : this.createError({
          params: {
            type: this.schema.type
          }
        });
      }
    }), ev;
  }
  oneOf(tv, ev = mixed.oneOf) {
    let iv = this.clone();
    return tv.forEach((ov) => {
      iv._whitelist.add(ov), iv._blacklist.delete(ov);
    }), iv.internalTests.whiteList = createValidation({
      message: ev,
      name: "oneOf",
      skipAbsent: !0,
      test(ov) {
        let av = this.schema._whitelist, sv = av.resolveAll(this.resolve);
        return sv.includes(ov) ? !0 : this.createError({
          params: {
            values: Array.from(av).join(", "),
            resolved: sv
          }
        });
      }
    }), iv;
  }
  notOneOf(tv, ev = mixed.notOneOf) {
    let iv = this.clone();
    return tv.forEach((ov) => {
      iv._blacklist.add(ov), iv._whitelist.delete(ov);
    }), iv.internalTests.blacklist = createValidation({
      message: ev,
      name: "notOneOf",
      test(ov) {
        let av = this.schema._blacklist, sv = av.resolveAll(this.resolve);
        return sv.includes(ov) ? this.createError({
          params: {
            values: Array.from(av).join(", "),
            resolved: sv
          }
        }) : !0;
      }
    }), iv;
  }
  strip(tv = !0) {
    let ev = this.clone();
    return ev.spec.strip = tv, ev;
  }
  /**
   * Return a serialized description of the schema including validations, flags, types etc.
   *
   * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).
   */
  describe(tv) {
    const ev = (tv ? this.resolve(tv) : this).clone(), {
      label: iv,
      meta: ov,
      optional: av,
      nullable: sv
    } = ev.spec;
    return {
      meta: ov,
      label: iv,
      optional: av,
      nullable: sv,
      default: ev.getDefault(tv),
      type: ev.type,
      oneOf: ev._whitelist.describe(),
      notOneOf: ev._blacklist.describe(),
      tests: ev.tests.map((uv) => ({
        name: uv.OPTIONS.name,
        params: uv.OPTIONS.params
      })).filter((uv, cv, dv) => dv.findIndex((hv) => hv.name === uv.name) === cv)
    };
  }
}
Schema.prototype.__isYupSchema__ = !0;
for (const rv of ["validate", "validateSync"])
  Schema.prototype[`${rv}At`] = function(tv, ev, iv = {}) {
    const {
      parent: ov,
      parentPath: av,
      schema: sv
    } = getIn(this, tv, ev, iv.context);
    return sv[rv](ov && ov[av], Object.assign({}, iv, {
      parent: ov,
      path: tv
    }));
  };
for (const rv of ["equals", "is"])
  Schema.prototype[rv] = Schema.prototype.oneOf;
for (const rv of ["not", "nope"])
  Schema.prototype[rv] = Schema.prototype.notOneOf;
function create$7() {
  return new BooleanSchema();
}
class BooleanSchema extends Schema {
  constructor() {
    super({
      type: "boolean",
      check(tv) {
        return tv instanceof Boolean && (tv = tv.valueOf()), typeof tv == "boolean";
      }
    }), this.withMutation(() => {
      this.transform((tv, ev, iv) => {
        if (iv.spec.coerce && !iv.isType(tv)) {
          if (/^(true|1)$/i.test(String(tv)))
            return !0;
          if (/^(false|0)$/i.test(String(tv)))
            return !1;
        }
        return tv;
      });
    });
  }
  isTrue(tv = boolean.isValue) {
    return this.test({
      message: tv,
      name: "is-value",
      exclusive: !0,
      params: {
        value: "true"
      },
      test(ev) {
        return isAbsent(ev) || ev === !0;
      }
    });
  }
  isFalse(tv = boolean.isValue) {
    return this.test({
      message: tv,
      name: "is-value",
      exclusive: !0,
      params: {
        value: "false"
      },
      test(ev) {
        return isAbsent(ev) || ev === !1;
      }
    });
  }
  default(tv) {
    return super.default(tv);
  }
  defined(tv) {
    return super.defined(tv);
  }
  optional() {
    return super.optional();
  }
  required(tv) {
    return super.required(tv);
  }
  notRequired() {
    return super.notRequired();
  }
  nullable() {
    return super.nullable();
  }
  nonNullable(tv) {
    return super.nonNullable(tv);
  }
  strip(tv) {
    return super.strip(tv);
  }
}
create$7.prototype = BooleanSchema.prototype;
const isoReg = /^(\d{4}|[+-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,.](\d{1,}))?)?(?:(Z)|([+-])(\d{2})(?::?(\d{2}))?)?)?$/;
function parseIsoDate(rv) {
  const tv = parseDateStruct(rv);
  if (!tv)
    return Date.parse ? Date.parse(rv) : Number.NaN;
  if (tv.z === void 0 && tv.plusMinus === void 0)
    return new Date(tv.year, tv.month, tv.day, tv.hour, tv.minute, tv.second, tv.millisecond).valueOf();
  let ev = 0;
  return tv.z !== "Z" && tv.plusMinus !== void 0 && (ev = tv.hourOffset * 60 + tv.minuteOffset, tv.plusMinus === "+" && (ev = 0 - ev)), Date.UTC(tv.year, tv.month, tv.day, tv.hour, tv.minute + ev, tv.second, tv.millisecond);
}
function parseDateStruct(rv) {
  var tv, ev;
  const iv = isoReg.exec(rv);
  return iv ? {
    year: toNumber(iv[1]),
    month: toNumber(iv[2], 1) - 1,
    day: toNumber(iv[3], 1),
    hour: toNumber(iv[4]),
    minute: toNumber(iv[5]),
    second: toNumber(iv[6]),
    millisecond: iv[7] ? (
      // allow arbitrary sub-second precision beyond milliseconds
      toNumber(iv[7].substring(0, 3))
    ) : 0,
    precision: (tv = (ev = iv[7]) == null ? void 0 : ev.length) != null ? tv : void 0,
    z: iv[8] || void 0,
    plusMinus: iv[9] || void 0,
    hourOffset: toNumber(iv[10]),
    minuteOffset: toNumber(iv[11])
  } : null;
}
function toNumber(rv, tv = 0) {
  return Number(rv) || tv;
}
let rEmail = (
  // eslint-disable-next-line
  /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
), rUrl = (
  // eslint-disable-next-line
  /^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i
), rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i, yearMonthDay = "^\\d{4}-\\d{2}-\\d{2}", hourMinuteSecond = "\\d{2}:\\d{2}:\\d{2}", zOrOffset = "(([+-]\\d{2}(:?\\d{2})?)|Z)", rIsoDateTime = new RegExp(`${yearMonthDay}T${hourMinuteSecond}(\\.\\d+)?${zOrOffset}$`), isTrimmed = (rv) => isAbsent(rv) || rv === rv.trim(), objStringTag = {}.toString();
function create$6() {
  return new StringSchema();
}
class StringSchema extends Schema {
  constructor() {
    super({
      type: "string",
      check(tv) {
        return tv instanceof String && (tv = tv.valueOf()), typeof tv == "string";
      }
    }), this.withMutation(() => {
      this.transform((tv, ev, iv) => {
        if (!iv.spec.coerce || iv.isType(tv) || Array.isArray(tv))
          return tv;
        const ov = tv != null && tv.toString ? tv.toString() : tv;
        return ov === objStringTag ? tv : ov;
      });
    });
  }
  required(tv) {
    return super.required(tv).withMutation((ev) => ev.test({
      message: tv || mixed.required,
      name: "required",
      skipAbsent: !0,
      test: (iv) => !!iv.length
    }));
  }
  notRequired() {
    return super.notRequired().withMutation((tv) => (tv.tests = tv.tests.filter((ev) => ev.OPTIONS.name !== "required"), tv));
  }
  length(tv, ev = string.length) {
    return this.test({
      message: ev,
      name: "length",
      exclusive: !0,
      params: {
        length: tv
      },
      skipAbsent: !0,
      test(iv) {
        return iv.length === this.resolve(tv);
      }
    });
  }
  min(tv, ev = string.min) {
    return this.test({
      message: ev,
      name: "min",
      exclusive: !0,
      params: {
        min: tv
      },
      skipAbsent: !0,
      test(iv) {
        return iv.length >= this.resolve(tv);
      }
    });
  }
  max(tv, ev = string.max) {
    return this.test({
      name: "max",
      exclusive: !0,
      message: ev,
      params: {
        max: tv
      },
      skipAbsent: !0,
      test(iv) {
        return iv.length <= this.resolve(tv);
      }
    });
  }
  matches(tv, ev) {
    let iv = !1, ov, av;
    return ev && (typeof ev == "object" ? {
      excludeEmptyString: iv = !1,
      message: ov,
      name: av
    } = ev : ov = ev), this.test({
      name: av || "matches",
      message: ov || string.matches,
      params: {
        regex: tv
      },
      skipAbsent: !0,
      test: (sv) => sv === "" && iv || sv.search(tv) !== -1
    });
  }
  email(tv = string.email) {
    return this.matches(rEmail, {
      name: "email",
      message: tv,
      excludeEmptyString: !0
    });
  }
  url(tv = string.url) {
    return this.matches(rUrl, {
      name: "url",
      message: tv,
      excludeEmptyString: !0
    });
  }
  uuid(tv = string.uuid) {
    return this.matches(rUUID, {
      name: "uuid",
      message: tv,
      excludeEmptyString: !1
    });
  }
  datetime(tv) {
    let ev = "", iv, ov;
    return tv && (typeof tv == "object" ? {
      message: ev = "",
      allowOffset: iv = !1,
      precision: ov = void 0
    } = tv : ev = tv), this.matches(rIsoDateTime, {
      name: "datetime",
      message: ev || string.datetime,
      excludeEmptyString: !0
    }).test({
      name: "datetime_offset",
      message: ev || string.datetime_offset,
      params: {
        allowOffset: iv
      },
      skipAbsent: !0,
      test: (av) => {
        if (!av || iv)
          return !0;
        const sv = parseDateStruct(av);
        return sv ? !!sv.z : !1;
      }
    }).test({
      name: "datetime_precision",
      message: ev || string.datetime_precision,
      params: {
        precision: ov
      },
      skipAbsent: !0,
      test: (av) => {
        if (!av || ov == null)
          return !0;
        const sv = parseDateStruct(av);
        return sv ? sv.precision === ov : !1;
      }
    });
  }
  //-- transforms --
  ensure() {
    return this.default("").transform((tv) => tv === null ? "" : tv);
  }
  trim(tv = string.trim) {
    return this.transform((ev) => ev != null ? ev.trim() : ev).test({
      message: tv,
      name: "trim",
      test: isTrimmed
    });
  }
  lowercase(tv = string.lowercase) {
    return this.transform((ev) => isAbsent(ev) ? ev : ev.toLowerCase()).test({
      message: tv,
      name: "string_case",
      exclusive: !0,
      skipAbsent: !0,
      test: (ev) => isAbsent(ev) || ev === ev.toLowerCase()
    });
  }
  uppercase(tv = string.uppercase) {
    return this.transform((ev) => isAbsent(ev) ? ev : ev.toUpperCase()).test({
      message: tv,
      name: "string_case",
      exclusive: !0,
      skipAbsent: !0,
      test: (ev) => isAbsent(ev) || ev === ev.toUpperCase()
    });
  }
}
create$6.prototype = StringSchema.prototype;
let invalidDate = /* @__PURE__ */ new Date(""), isDate = (rv) => Object.prototype.toString.call(rv) === "[object Date]";
class DateSchema extends Schema {
  constructor() {
    super({
      type: "date",
      check(tv) {
        return isDate(tv) && !isNaN(tv.getTime());
      }
    }), this.withMutation(() => {
      this.transform((tv, ev, iv) => !iv.spec.coerce || iv.isType(tv) || tv === null ? tv : (tv = parseIsoDate(tv), isNaN(tv) ? DateSchema.INVALID_DATE : new Date(tv)));
    });
  }
  prepareParam(tv, ev) {
    let iv;
    if (Reference.isRef(tv))
      iv = tv;
    else {
      let ov = this.cast(tv);
      if (!this._typeCheck(ov))
        throw new TypeError(`\`${ev}\` must be a Date or a value that can be \`cast()\` to a Date`);
      iv = ov;
    }
    return iv;
  }
  min(tv, ev = date.min) {
    let iv = this.prepareParam(tv, "min");
    return this.test({
      message: ev,
      name: "min",
      exclusive: !0,
      params: {
        min: tv
      },
      skipAbsent: !0,
      test(ov) {
        return ov >= this.resolve(iv);
      }
    });
  }
  max(tv, ev = date.max) {
    let iv = this.prepareParam(tv, "max");
    return this.test({
      message: ev,
      name: "max",
      exclusive: !0,
      params: {
        max: tv
      },
      skipAbsent: !0,
      test(ov) {
        return ov <= this.resolve(iv);
      }
    });
  }
}
DateSchema.INVALID_DATE = invalidDate;
DateSchema.prototype;
function sortFields(rv, tv = []) {
  let ev = [], iv = /* @__PURE__ */ new Set(), ov = new Set(tv.map(([sv, lv]) => `${sv}-${lv}`));
  function av(sv, lv) {
    let uv = propertyExpr.split(sv)[0];
    iv.add(uv), ov.has(`${lv}-${uv}`) || ev.push([lv, uv]);
  }
  for (const sv of Object.keys(rv)) {
    let lv = rv[sv];
    iv.add(sv), Reference.isRef(lv) && lv.isSibling ? av(lv.path, sv) : isSchema(lv) && "deps" in lv && lv.deps.forEach((uv) => av(uv, sv));
  }
  return toposort$1.array(Array.from(iv), ev).reverse();
}
function findIndex(rv, tv) {
  let ev = 1 / 0;
  return rv.some((iv, ov) => {
    var av;
    if ((av = tv.path) != null && av.includes(iv))
      return ev = ov, !0;
  }), ev;
}
function sortByKeyOrder(rv) {
  return (tv, ev) => findIndex(rv, tv) - findIndex(rv, ev);
}
const parseJson = (rv, tv, ev) => {
  if (typeof rv != "string")
    return rv;
  let iv = rv;
  try {
    iv = JSON.parse(rv);
  } catch {
  }
  return ev.isType(iv) ? iv : rv;
};
function deepPartial(rv) {
  if ("fields" in rv) {
    const tv = {};
    for (const [ev, iv] of Object.entries(rv.fields))
      tv[ev] = deepPartial(iv);
    return rv.setFields(tv);
  }
  if (rv.type === "array") {
    const tv = rv.optional();
    return tv.innerType && (tv.innerType = deepPartial(tv.innerType)), tv;
  }
  return rv.type === "tuple" ? rv.optional().clone({
    types: rv.spec.types.map(deepPartial)
  }) : "optional" in rv ? rv.optional() : rv;
}
const deepHas = (rv, tv) => {
  const ev = [...propertyExpr.normalizePath(tv)];
  if (ev.length === 1)
    return ev[0] in rv;
  let iv = ev.pop(), ov = propertyExpr.getter(propertyExpr.join(ev), !0)(rv);
  return !!(ov && iv in ov);
};
let isObject = (rv) => Object.prototype.toString.call(rv) === "[object Object]";
function unknown(rv, tv) {
  let ev = Object.keys(rv.fields);
  return Object.keys(tv).filter((iv) => ev.indexOf(iv) === -1);
}
const defaultSort = sortByKeyOrder([]);
function create$3(rv) {
  return new ObjectSchema(rv);
}
class ObjectSchema extends Schema {
  constructor(tv) {
    super({
      type: "object",
      check(ev) {
        return isObject(ev) || typeof ev == "function";
      }
    }), this.fields = /* @__PURE__ */ Object.create(null), this._sortErrors = defaultSort, this._nodes = [], this._excludedEdges = [], this.withMutation(() => {
      tv && this.shape(tv);
    });
  }
  _cast(tv, ev = {}) {
    var iv;
    let ov = super._cast(tv, ev);
    if (ov === void 0)
      return this.getDefault(ev);
    if (!this._typeCheck(ov))
      return ov;
    let av = this.fields, sv = (iv = ev.stripUnknown) != null ? iv : this.spec.noUnknown, lv = [].concat(this._nodes, Object.keys(ov).filter((hv) => !this._nodes.includes(hv))), uv = {}, cv = Object.assign({}, ev, {
      parent: uv,
      __validating: ev.__validating || !1
    }), dv = !1;
    for (const hv of lv) {
      let pv = av[hv], yv = hv in ov;
      if (pv) {
        let Sv, _v = ov[hv];
        cv.path = (ev.path ? `${ev.path}.` : "") + hv, pv = pv.resolve({
          value: _v,
          context: ev.context,
          parent: uv
        });
        let Ev = pv instanceof Schema ? pv.spec : void 0, wv = Ev == null ? void 0 : Ev.strict;
        if (Ev != null && Ev.strip) {
          dv = dv || hv in ov;
          continue;
        }
        Sv = !ev.__validating || !wv ? (
          // TODO: use _cast, this is double resolving
          pv.cast(ov[hv], cv)
        ) : ov[hv], Sv !== void 0 && (uv[hv] = Sv);
      } else
        yv && !sv && (uv[hv] = ov[hv]);
      (yv !== hv in uv || uv[hv] !== ov[hv]) && (dv = !0);
    }
    return dv ? uv : ov;
  }
  _validate(tv, ev = {}, iv, ov) {
    let {
      from: av = [],
      originalValue: sv = tv,
      recursive: lv = this.spec.recursive
    } = ev;
    ev.from = [{
      schema: this,
      value: sv
    }, ...av], ev.__validating = !0, ev.originalValue = sv, super._validate(tv, ev, iv, (uv, cv) => {
      if (!lv || !isObject(cv)) {
        ov(uv, cv);
        return;
      }
      sv = sv || cv;
      let dv = [];
      for (let hv of this._nodes) {
        let pv = this.fields[hv];
        !pv || Reference.isRef(pv) || dv.push(pv.asNestedTest({
          options: ev,
          key: hv,
          parent: cv,
          parentPath: ev.path,
          originalParent: sv
        }));
      }
      this.runTests({
        tests: dv,
        value: cv,
        originalValue: sv,
        options: ev
      }, iv, (hv) => {
        ov(hv.sort(this._sortErrors).concat(uv), cv);
      });
    });
  }
  clone(tv) {
    const ev = super.clone(tv);
    return ev.fields = Object.assign({}, this.fields), ev._nodes = this._nodes, ev._excludedEdges = this._excludedEdges, ev._sortErrors = this._sortErrors, ev;
  }
  concat(tv) {
    let ev = super.concat(tv), iv = ev.fields;
    for (let [ov, av] of Object.entries(this.fields)) {
      const sv = iv[ov];
      iv[ov] = sv === void 0 ? av : sv;
    }
    return ev.withMutation((ov) => (
      // XXX: excludes here is wrong
      ov.setFields(iv, [...this._excludedEdges, ...tv._excludedEdges])
    ));
  }
  _getDefault(tv) {
    if ("default" in this.spec)
      return super._getDefault(tv);
    if (!this._nodes.length)
      return;
    let ev = {};
    return this._nodes.forEach((iv) => {
      var ov;
      const av = this.fields[iv];
      let sv = tv;
      (ov = sv) != null && ov.value && (sv = Object.assign({}, sv, {
        parent: sv.value,
        value: sv.value[iv]
      })), ev[iv] = av && "getDefault" in av ? av.getDefault(sv) : void 0;
    }), ev;
  }
  setFields(tv, ev) {
    let iv = this.clone();
    return iv.fields = tv, iv._nodes = sortFields(tv, ev), iv._sortErrors = sortByKeyOrder(Object.keys(tv)), ev && (iv._excludedEdges = ev), iv;
  }
  shape(tv, ev = []) {
    return this.clone().withMutation((iv) => {
      let ov = iv._excludedEdges;
      return ev.length && (Array.isArray(ev[0]) || (ev = [ev]), ov = [...iv._excludedEdges, ...ev]), iv.setFields(Object.assign(iv.fields, tv), ov);
    });
  }
  partial() {
    const tv = {};
    for (const [ev, iv] of Object.entries(this.fields))
      tv[ev] = "optional" in iv && iv.optional instanceof Function ? iv.optional() : iv;
    return this.setFields(tv);
  }
  deepPartial() {
    return deepPartial(this);
  }
  pick(tv) {
    const ev = {};
    for (const iv of tv)
      this.fields[iv] && (ev[iv] = this.fields[iv]);
    return this.setFields(ev, this._excludedEdges.filter(([iv, ov]) => tv.includes(iv) && tv.includes(ov)));
  }
  omit(tv) {
    const ev = [];
    for (const iv of Object.keys(this.fields))
      tv.includes(iv) || ev.push(iv);
    return this.pick(ev);
  }
  from(tv, ev, iv) {
    let ov = propertyExpr.getter(tv, !0);
    return this.transform((av) => {
      if (!av)
        return av;
      let sv = av;
      return deepHas(av, tv) && (sv = Object.assign({}, av), iv || delete sv[tv], sv[ev] = ov(av)), sv;
    });
  }
  /** Parse an input JSON string to an object */
  json() {
    return this.transform(parseJson);
  }
  noUnknown(tv = !0, ev = object.noUnknown) {
    typeof tv != "boolean" && (ev = tv, tv = !0);
    let iv = this.test({
      name: "noUnknown",
      exclusive: !0,
      message: ev,
      test(ov) {
        if (ov == null)
          return !0;
        const av = unknown(this.schema, ov);
        return !tv || av.length === 0 || this.createError({
          params: {
            unknown: av.join(", ")
          }
        });
      }
    });
    return iv.spec.noUnknown = tv, iv;
  }
  unknown(tv = !0, ev = object.noUnknown) {
    return this.noUnknown(!tv, ev);
  }
  transformKeys(tv) {
    return this.transform((ev) => {
      if (!ev)
        return ev;
      const iv = {};
      for (const ov of Object.keys(ev))
        iv[tv(ov)] = ev[ov];
      return iv;
    });
  }
  camelCase() {
    return this.transformKeys(tinyCase.camelCase);
  }
  snakeCase() {
    return this.transformKeys(tinyCase.snakeCase);
  }
  constantCase() {
    return this.transformKeys((tv) => tinyCase.snakeCase(tv).toUpperCase());
  }
  describe(tv) {
    const ev = (tv ? this.resolve(tv) : this).clone(), iv = super.describe(tv);
    iv.fields = {};
    for (const [av, sv] of Object.entries(ev.fields)) {
      var ov;
      let lv = tv;
      (ov = lv) != null && ov.value && (lv = Object.assign({}, lv, {
        parent: lv.value,
        value: lv.value[av]
      })), iv.fields[av] = sv.describe(lv);
    }
    return iv;
  }
}
create$3.prototype = ObjectSchema.prototype;
const form$3 = "_form_xf27y_1", styles$r = {
  form: form$3
}, schema$1 = create$3().shape({
  message: create$6().required()
}).required(), MessageForm = ({
  hasErrorWithUploady: rv = !1,
  ...tv
}) => {
  const { onSubmit: ev, enableSubmit: iv = !1 } = tv, {
    register: ov,
    reset: av,
    handleSubmit: sv,
    getValues: lv,
    formState: { isSubmitting: uv, errors: cv, isDirty: dv, isValid: hv }
  } = useForm({
    resolver: o(schema$1),
    mode: "onChange"
  }), { t: pv } = useTranslation("translation", { keyPrefix: "message-form" }), yv = (Sv) => {
    if (Sv.preventDefault(), !iv)
      sv((_v) => {
        ev(_v), av();
      })();
    else {
      const _v = lv();
      ev(_v.message ? _v : null), av();
    }
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$r.form, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: yv, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      "input",
      {
        className: clsx(cv && styles$r.error),
        placeholder: pv("writeMessage"),
        autoComplete: "off",
        type: "text",
        ...ov("message")
      }
    ),
    !rv && /* @__PURE__ */ jsxRuntimeExports.jsx(UploadButton, {}),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      IconButton,
      {
        type: "submit",
        disabled: !iv && (!dv || !hv || uv),
        icon: /* @__PURE__ */ jsxRuntimeExports.jsx(SendIcon, {})
      }
    )
  ] }) });
}, message = "_message_9wf6j_1", messageAdvisor = "_messageAdvisor_9wf6j_10", messageHeader = "_messageHeader_9wf6j_14", styles$q = {
  message,
  messageAdvisor,
  messageHeader
}, MessageItem = ({
  isSelf: rv,
  user: tv,
  date: ev,
  content: iv,
  children: ov
}) => {
  const { t: av } = useTranslation("translation", { keyPrefix: "message-form" });
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "div",
    {
      className: `${styles$q.message} ${rv ? "" : styles$q.messageAdvisor}`,
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$q.messageHeader, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Headline", children: rv ? av("you") : tv }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "SmallCaption", children: formatToHHMM(ev) })
        ] }),
        iv && /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body", children: iv }),
        ov
      ]
    }
  );
}, container$9 = "_container_vbu0x_1", content$b = "_content_vbu0x_11", productContent$2 = "_productContent_vbu0x_17", priceInformation$2 = "_priceInformation_vbu0x_23", productVariationContent$1 = "_productVariationContent_vbu0x_34", actions$2 = "_actions_vbu0x_41", moreless$1 = "_moreless_vbu0x_48", styles$p = {
  container: container$9,
  content: content$b,
  productContent: productContent$2,
  priceInformation: priceInformation$2,
  productVariationContent: productVariationContent$1,
  actions: actions$2,
  moreless: moreless$1
}, MoreLessInput = ({ value: rv, onChangeValue: tv }) => {
  const ev = () => {
    rv > 0 && tv(rv - 1);
  }, iv = () => {
    tv(rv + 1);
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$p.moreless, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { onPress: ev, icon: /* @__PURE__ */ jsxRuntimeExports.jsx(LessValueIcon, {}) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { color: "#71747C", type: "Headline", children: `${rv}` }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { onPress: iv, icon: /* @__PURE__ */ jsxRuntimeExports.jsx(MoreValueIcon, {}) })
  ] });
}, container$8 = "_container_15z9s_1", styles$o = {
  container: container$8
}, Notification = ({ type: rv, message: tv }) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$o.container, children: [
  rv === "success" ? /* @__PURE__ */ jsxRuntimeExports.jsx(CheckIcon, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(CloseIcon, {}),
  /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Notification", children: tv })
] }), productVariation = "_productVariation_dgadh_1", variationItems = "_variationItems_dgadh_7", styles$n = {
  productVariation,
  variationItems
}, ProductVariation = ({
  id: rv,
  title: tv,
  options: ev,
  type: iv,
  chosenOption: ov,
  onChooseOption: av
}) => {
  const sv = (lv) => {
    av(rv, lv);
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$n.productVariation, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body", color: "#505152", children: tv }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$n.variationItems, children: ev.map((lv) => /* @__PURE__ */ jsxRuntimeExports.jsx(
      ProductVariationOption,
      {
        option: lv,
        type: iv,
        onPress: sv,
        selected: ov === lv.name
      },
      lv.name
    )) })
  ] });
}, container$7 = "_container_6f322_1", rates = "_rates_6f322_8", legends = "_legends_6f322_17", styles$m = {
  container: container$7,
  rates,
  legends
}, RateChooser = ({ maxRate: rv, value: tv, onChange: ev }) => {
  const [iv, ov] = reactExports.useState(tv), av = Array.from({ length: rv }, (uv, cv) => cv + 1), sv = (uv) => {
    ov(uv), ev(uv);
  }, { t: lv } = useTranslation("translation", { keyPrefix: "nps" });
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$m.container, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$m.rates, children: av.map((uv) => /* @__PURE__ */ jsxRuntimeExports.jsx(
      NumberButton,
      {
        onPress: () => sv(uv),
        number: uv,
        chosen: uv === iv
      },
      uv + 1
    )) }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$m.legends, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "BodyItem", className: styles$m.description, children: lv("leastLikely") }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "BodyItem", className: styles$m.description, children: lv("mostLikely") })
    ] })
  ] });
}, TermCondition = ({ link: rv = "" }) => {
  const { t: tv } = useTranslation("translation", {
    keyPrefix: "terms-and-conditions"
  });
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { type: "Caption", children: [
    tv("agree"),
    /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: rv, target: "_blank", rel: "noreferrer", children: ` ${tv("link")}` }),
    " ",
    `${tv("complement")}.`
  ] });
}, uploadItemsAtom = atom([]);
uploadItemsAtom.debugLabel = "uploadItemsAtom";
const UploadList = () => {
  const rv = useAbortItem(), [tv, ev] = useAtom(uploadItemsAtom);
  useBatchAddListener((ov) => {
    ev((av) => [...av, ...ov.items]);
  });
  const iv = reactExports.useCallback(
    (ov) => {
      ev((av) => av.filter((sv) => sv.id !== ov.id)), rv(ov.id);
    },
    [rv, ev]
  );
  return reactExports.useMemo(
    () => tv.map((ov) => /* @__PURE__ */ jsxRuntimeExports.jsx(UploadListItem, { item: ov, onDelete: iv }, ov.id)),
    [iv, tv]
  );
}, container$6 = "_container_bny18_1", styles$l = {
  container: container$6
}, Toast = ({ message: rv }) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$l.container, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "MiddleCaption", color: "#FFFFFF", children: rv }) }), container$5 = "_container_4ylet_1", containerFull = "_containerFull_4ylet_14", emptyText = "_emptyText_4ylet_18", messagesList = "_messagesList_4ylet_23", minimize$1 = "_minimize_4ylet_1", disabled = "_disabled_4ylet_54", header$6 = "_header_4ylet_78", styles$k = {
  container: container$5,
  containerFull,
  emptyText,
  messagesList,
  minimize: minimize$1,
  disabled,
  header: header$6
}, MessageSection = reactExports.memo((rv) => {
  const { messageListRef: tv, messages: ev } = rv, iv = useAtomValue(uploadItemsAtom), { t: ov } = useTranslation("translation", { keyPrefix: "message-form" });
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "div",
    {
      ref: tv,
      className: clsx(styles$k.messagesList, {
        [styles$k.disabled]: iv.length
      }),
      children: [
        ev.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$k.emptyText, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Caption", children: ov("emptyChat") }) }),
        ev.map((av) => /* @__PURE__ */ jsxRuntimeExports.jsx(MessageItem, { ...av, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          MessageAttachments,
          {
            isSelf: av.isSelf,
            attachments: av.attachments,
            onClickDownload: (sv) => downloadFileByUrl(sv.content, sv.name)
          },
          `attachments-${av.id}`
        ) }, `message-${av.id}`))
      ]
    }
  );
}), UploadPreview = reactExports.memo(() => {
  const rv = useAtomValue(uploadItemsAtom);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      className: clsx(styles$k.messagesList, {
        [styles$k.disabled]: !rv.length
      }),
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(UploadList, {})
    }
  );
}), useChatBase = (rv) => {
  const { messages: tv, onSendMessage: ev } = rv, iv = reactExports.useRef(null), [ov, av] = reactExports.useState(null), sv = async (lv) => {
    av(lv), lv != null && lv.message && ev(lv.message);
  };
  return reactExports.useEffect(() => {
    if (tv.length > 0 && iv.current) {
      const lv = iv.current;
      lv.scrollTop = lv.scrollHeight;
    }
  }, [tv]), {
    messageListRef: iv,
    inputData: ov,
    handlePressSubmit: sv,
    uploadItems: null
  };
}, useChatWithoutUploady = (rv) => useChatBase(rv), { apiUrls } = environment$2, useChatWithUploady = (rv) => {
  const tv = useChatBase(rv), { processPending: ev } = useUploadyContext(), [iv, ov] = useAtom(uploadItemsAtom), [av, sv] = reactExports.useState(tv.inputData), lv = reactExports.useCallback(async (cv) => ({ ...await fetch(
    `${apiUrls.rest}/chat?contentType=${cv.type}`
  ).then((hv) => hv.json()), mimeType: cv.type, nameFile: cv.name }), []), uv = async (cv) => {
    tv.handlePressSubmit(cv), sv(cv), iv.length && ev();
  };
  return useRequestPreSend(async ({ items: cv }) => {
    const { id: dv, file: hv } = cv[0], { uploadURL: pv, url: yv, mimeType: Sv } = await lv(hv);
    return ov((_v) => [
      ..._v.filter((Ev) => Ev.id !== dv),
      { ...cv[0], url: `https://${yv}` }
    ]), {
      options: {
        sendWithFormData: !1,
        destination: {
          url: pv,
          method: "PUT",
          headers: {
            "Content-Type": Sv
          }
        }
      }
    };
  }), useBatchFinalizeListener(() => {
    const cv = iv.map((dv) => ({
      content: dv.url,
      mimeType: dv.file.type,
      name: dv.file.name
    }));
    rv.onSendMessage((av == null ? void 0 : av.message) ?? "", cv), ov([]);
  }), {
    ...tv,
    uploadItems: iv,
    setUploadItems: ov,
    handlePressSubmit: uv
  };
}, PersonalChat = ({
  hasErrorWithUploady: rv = !1,
  ...tv
}) => {
  const { messages: ev } = tv, { t: iv } = useTranslation("translation", { keyPrefix: "ps-client-call" }), ov = rv ? useChatWithoutUploady : useChatWithUploady, { messageListRef: av, uploadItems: sv, handlePressSubmit: lv } = ov(tv), uv = iv(
    `chat${sv != null && sv.length ? ".attachment" : ""}.mainTitle`
  );
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs(
      "div",
      {
        className: clsx(styles$k.container, {
          [styles$k.containerFull]: !!tv.fullScreenMode
        }),
        children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Headline", children: uv }),
          !rv && /* @__PURE__ */ jsxRuntimeExports.jsx(UploadPreview, {}),
          /* @__PURE__ */ jsxRuntimeExports.jsx(MessageSection, { messageListRef: av, messages: ev })
        ]
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      MessageForm,
      {
        enableSubmit: !!(sv != null && sv.length),
        onSubmit: lv,
        hasErrorWithUploady: rv
      }
    )
  ] });
}, container$4 = "_container_178fq_1", slideInFromLeft = "_slideInFromLeft_178fq_1", content$a = "_content_178fq_28", productContent$1 = "_productContent_178fq_41", priceInformation$1 = "_priceInformation_178fq_47", withoutDiscount$1 = "_withoutDiscount_178fq_54", actions$1 = "_actions_178fq_58", styles$j = {
  container: container$4,
  slideInFromLeft,
  content: content$a,
  productContent: productContent$1,
  priceInformation: priceInformation$1,
  withoutDiscount: withoutDiscount$1,
  actions: actions$1
}, ProductHighlight = ({
  product: rv,
  hidePrice: tv = !1,
  onPressAdd: ev,
  onPressImage: iv
}) => {
  if (!rv)
    return;
  const ov = formatCurrency((rv == null ? void 0 : rv.priceWithDiscount) ?? 0), av = formatCurrency((rv == null ? void 0 : rv.price) ?? 0);
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$j.container, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$j.content, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "img",
        {
          style: { cursor: "pointer" },
          onClick: iv,
          src: rv.imageUrl,
          alt: "Product"
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$j.productContent, children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { cursor: "pointer" }, onClick: iv, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Headline", color: "#505152", children: rv.name }) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: !tv, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$j.priceInformation, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: av !== ov, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
            Typography,
            {
              color: "#71747C",
              type: "MiddleCaption",
              className: styles$j.withoutDiscount,
              children: av
            }
          ) }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { type: "Headline", children: [
            " ",
            ov
          ] })
        ] }) })
      ] })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$j.actions, children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { icon: /* @__PURE__ */ jsxRuntimeExports.jsx(CrossIcon, {}), onPress: ev }) })
  ] });
}, content$9 = "_content_pwtyq_1", desktopHight = "_desktopHight_pwtyq_11", mobileHight = "_mobileHight_pwtyq_15", audioVideoContent = "_audioVideoContent_pwtyq_23", audioVideoContentFull = "_audioVideoContentFull_pwtyq_32", videAvatarContent = "_videAvatarContent_pwtyq_56", fullScreenButton = "_fullScreenButton_pwtyq_66", PicButtonContent = "_PicButtonContent_pwtyq_76", closeButton$2 = "_closeButton_pwtyq_84", toastContainer = "_toastContainer_pwtyq_98", styles$i = {
  content: content$9,
  desktopHight,
  mobileHight,
  audioVideoContent,
  audioVideoContentFull,
  videAvatarContent,
  fullScreenButton,
  PicButtonContent,
  closeButton: closeButton$2,
  toastContainer
};
function PicIcon() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      xmlns: "http://www.w3.org/2000/svg",
      width: "34",
      height: "34",
      fill: "none",
      viewBox: "0 0 34 34",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("g", { filter: "url(#filter0_d_1469_28708)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M26.754 4.071c1.051.255 1.97 1.206 2.187 2.252.043.196.059 3.07.059 9.691 0 10.366.021 9.67-.33 10.393-.222.467-.796 1.04-1.263 1.264-.722.35-.027.329-10.407.329s-9.685.021-10.407-.33c-.467-.223-1.04-.796-1.264-1.263C4.98 25.684 5 26.38 5 15.998 5 5.617 4.98 6.312 5.33 5.59c.222-.467.796-1.04 1.263-1.264.728-.35.021-.33 10.433-.324 7.434.006 9.51.016 9.728.07zM7.363 5.451c-.372.144-.78.564-.908.936-.095.281-.1.589-.1 9.611 0 10.637-.049 9.655.472 10.17.504.504.148.472 5.384.494 2.522.005 4.577-.006 4.566-.027-.489-.982-.473-.797-.457-5.162.016-3.717.016-3.754.133-4.1.25-.732.823-1.401 1.476-1.725.68-.335.722-.34 4.726-.34 4.189 0 4.02-.016 4.98.467.021.01.032-2.044.027-4.567-.016-4.274-.027-4.598-.112-4.832a1.643 1.643 0 00-1.242-.998c-.144-.022-4.402-.038-9.467-.032-8.958.005-9.218.01-9.478.106zM18.72 16.78c-.175.058-.355.18-.557.382-.5.5-.473.26-.473 4.503 0 3.479.006 3.691.101 3.946.154.409.388.664.791.86l.356.176h3.69c4.253 0 4.046.02 4.545-.473.494-.5.473-.292.473-4.546v-3.69l-.122-.26c-.223-.494-.494-.75-.961-.914-.149-.053-1.004-.069-3.887-.074-3.318 0-3.717.01-3.956.09z"
          }
        ) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("path", { fill: "#fff", d: "M17.48 16.48H28.04V27.04H17.48z" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("g", { filter: "url(#filter1_d_1469_28708)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fill: "#fff",
            d: "M10.092 8.26c.067.031.985.908 2.047 1.957l1.924 1.899.025-.877c.027-.955.052-1.038.343-1.194.238-.13.565-.072.767.13l.16.161.016 1.78c.01 1.692.005 1.785-.088 1.94-.202.328-.233.333-2.182.317l-1.763-.015-.16-.161c-.312-.311-.234-.882.134-1.048.083-.042.44-.063.975-.063h.84l-1.872-1.883c-1.031-1.033-1.913-1.936-1.96-2.009a.747.747 0 01-.082-.347c0-.431.482-.753.876-.587z"
          }
        ) }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "filter",
            {
              id: "filter0_d_1469_28708",
              width: "34",
              height: "34",
              x: "0",
              y: "0",
              colorInterpolationFilters: "sRGB",
              filterUnits: "userSpaceOnUse",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "feColorMatrix",
                  {
                    in: "SourceAlpha",
                    result: "hardAlpha",
                    values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx("feOffset", { dy: "1" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx("feGaussianBlur", { stdDeviation: "2.5" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx("feComposite", { in2: "hardAlpha", operator: "out" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx("feColorMatrix", { values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "feBlend",
                  {
                    in2: "BackgroundImageFix",
                    result: "effect1_dropShadow_1469_28708"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "feBlend",
                  {
                    in: "SourceGraphic",
                    in2: "effect1_dropShadow_1469_28708",
                    result: "shape"
                  }
                )
              ]
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "filter",
            {
              id: "filter1_d_1469_28708",
              width: "16.162",
              height: "16.162",
              x: "4.216",
              y: "4.216",
              colorInterpolationFilters: "sRGB",
              filterUnits: "userSpaceOnUse",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "feColorMatrix",
                  {
                    in: "SourceAlpha",
                    result: "hardAlpha",
                    values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx("feOffset", { dy: "1" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx("feGaussianBlur", { stdDeviation: "2.5" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx("feComposite", { in2: "hardAlpha", operator: "out" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx("feColorMatrix", { values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "feBlend",
                  {
                    in2: "BackgroundImageFix",
                    result: "effect1_dropShadow_1469_28708"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "feBlend",
                  {
                    in: "SourceGraphic",
                    in2: "effect1_dropShadow_1469_28708",
                    result: "shape"
                  }
                )
              ]
            }
          )
        ] })
      ]
    }
  );
}
const PersonalAudioVideo = ({
  attendeeInfo: rv,
  hasMultipleAttendee: tv,
  audioRef: ev,
  videoRef: iv,
  selfVideoRef: ov,
  showExpandViewButton: av = !1,
  expandViewMode: sv = !1,
  onPressPip: lv,
  onPressNext: uv,
  onPressClose: cv,
  onPressExpandView: dv
}) => {
  const hv = getDeviceType() === "mobile", [pv, yv] = reactExports.useState(!1), Sv = useAtomValue(toastNotificationAtom), _v = () => {
    yv(!0);
  }, { isFullScreen: Ev, requestFullscreen: wv } = useFullScreen(iv), xv = () => {
    if (!hv) {
      dv == null || dv();
      return;
    }
    wv();
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "div",
    {
      className: clsx(styles$i.content, {
        [styles$i.desktopHight]: !hv,
        [styles$i.mobileHight]: hv
      }),
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "div",
          {
            className: clsx({
              [styles$i.audioVideoContent]: !sv && !Ev,
              [styles$i.audioVideoContentFull]: sv || Ev
            }),
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("audio", { id: "audio-personal", ref: ev, style: { display: "none" } }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "video",
                {
                  id: "video-personal",
                  ref: iv,
                  autoPlay: !0,
                  playsInline: !0,
                  muted: !0,
                  onLoadedData: _v,
                  className: styles$i.video
                }
              )
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: av && !sv, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$i.fullScreenButton, children: /* @__PURE__ */ jsxRuntimeExports.jsx(FullScreenButton, { onPress: xv }) }) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$i.videAvatarContent, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          CameraAvatar,
          {
            id: "avatar",
            name: (rv == null ? void 0 : rv.name) ?? "",
            micActive: (rv == null ? void 0 : rv.activeMic) ?? !1,
            active: (rv == null ? void 0 : rv.activeCamera) ?? !1,
            videoRef: ov,
            onPressNext: uv,
            isMultiple: tv > 2
          }
        ) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: pv, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$i.PicButtonContent, children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { icon: /* @__PURE__ */ jsxRuntimeExports.jsx(PicIcon, {}), onPress: lv }) }) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: !!cv && !sv, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$i.closeButton, children: /* @__PURE__ */ jsxRuntimeExports.jsx(CloseButton, { onPress: cv }) }) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: Sv.show, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$i.toastContainer, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Toast, { message: Sv.message }) }) })
      ]
    }
  );
}, content$8 = "_content_nzs7h_1", moreButtonsBar = "_moreButtonsBar_nzs7h_16", styles$h = {
  content: content$8,
  moreButtonsBar
}, ControlsBar = ({
  micCameraHandler: rv,
  chatHandler: tv,
  moreHandler: ev,
  onPresEndCall: iv
}) => /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
  ev.moreRef.current && ev.activeMore && reactDomExports.createPortal(
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$h.moreButtonsBar, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        IconButton,
        {
          icon: /* @__PURE__ */ jsxRuntimeExports.jsx(CameraSelfIcon, {}),
          onPress: rv.handlePressSwitchCamera
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        IconButton,
        {
          icon: /* @__PURE__ */ jsxRuntimeExports.jsx(ShareIcon, {}),
          onPress: tv.handlePressChat
        }
      )
    ] }),
    ev.moreRef.current
  ),
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$h.content, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      MicButton,
      {
        active: rv.activeMic,
        onPress: rv.handlePressMic
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      CameraButton,
      {
        active: rv.activeCamera,
        onPress: rv.handlePressCamera
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      SwitchCameraButton,
      {
        disabled: !rv.activeCamera,
        onPress: rv.handlePressSwitchCamera
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      ChatMessageButton,
      {
        active: tv.activeChat,
        counter: tv.newMsgCounter,
        onPress: tv.handlePressChat
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsx(EndCallButton, { onPress: iv })
  ] })
] }), container$3 = "_container_7p2jb_1", content$7 = "_content_7p2jb_11", productContent = "_productContent_7p2jb_18", priceInformation = "_priceInformation_7p2jb_24", withoutDiscount = "_withoutDiscount_7p2jb_31", productVariationContent = "_productVariationContent_7p2jb_35", actions = "_actions_7p2jb_62", moreless = "_moreless_7p2jb_74", styles$g = {
  container: container$3,
  content: content$7,
  productContent,
  priceInformation,
  withoutDiscount,
  productVariationContent,
  actions,
  moreless
}, getVariationThumbnail = (rv, tv, ev) => {
  var sv, lv;
  const iv = new RegExp(
    ev || "skuvariation",
    "i"
  ), ov = (lv = (sv = tv.items) == null ? void 0 : sv.filter(
    (uv) => (uv.variationCode ?? "null").indexOf(`${rv.name}`) > -1
  )) == null ? void 0 : lv[0], av = ov == null ? void 0 : ov.images.find(
    (uv) => iv.test(uv == null ? void 0 : uv.imageLabel)
  );
  return av || (ov == null ? void 0 : ov.images[0]);
}, mapProductVariation = (rv, tv) => {
  var ev;
  return ((ev = rv.variationSelector) == null ? void 0 : ev.map((iv) => ({
    id: iv.field.name,
    title: iv.field.name,
    type: iv.field.name,
    options: iv.values.map((ov) => ({
      name: ov.name,
      image: getVariationThumbnail(
        ov,
        rv,
        tv
      )
    }))
  }))) ?? [];
}, calcPrices = (rv) => {
  var ov, av, sv, lv;
  const tv = rv, ev = ((ov = tv == null ? void 0 : tv.sellers) == null ? void 0 : ov[0].commertialOffer.Price) + ((av = tv == null ? void 0 : tv.sellers) == null ? void 0 : av[0].commertialOffer.Tax), iv = ((sv = tv == null ? void 0 : tv.sellers) == null ? void 0 : sv[0].commertialOffer.PriceWithoutDiscount) + ((lv = tv == null ? void 0 : tv.sellers) == null ? void 0 : lv[0].commertialOffer.Tax);
  return {
    variationPrice: ev,
    variationPriceWithDiscount: iv
  };
}, useVariationHandlers = (rv, tv, ev) => {
  var wv;
  const [iv, ov] = reactExports.useState(!0), [av, sv] = reactExports.useState(!0), [lv, uv] = reactExports.useState(rv.price), [cv, dv] = reactExports.useState(
    rv.priceWithDiscount
  ), [hv, pv] = reactExports.useState(), yv = mapProductVariation(
    rv,
    ev == null ? void 0 : ev.variationThumbnailName
  ), Sv = reactExports.useCallback(
    (xv, Cv) => {
      const Av = {};
      return Cv.forEach((Ov) => {
        xv.hasOwnProperty(Ov.id) && (Av[Ov.id] = xv[Ov.id]);
      }), Av;
    },
    []
  ), _v = (xv, Cv) => {
    const Av = { ...hv, [xv]: Cv };
    pv(Sv(Av, yv));
  }, Ev = () => {
    let xv = {
      ...hv
    };
    yv.forEach((Cv) => {
      xv = { ...xv, [Cv.id]: Cv.options[0].name };
    }), pv(Sv(xv, yv));
  };
  return reactExports.useEffect(() => {
    var Ov, Lv;
    if (!hv)
      return;
    const xv = findItemProductService.findItemProductIndex(
      rv,
      hv
    ), Cv = xv > -1;
    if (Cv) {
      tv(xv);
      const jv = calcPrices((Ov = rv.items) == null ? void 0 : Ov[xv]);
      uv(jv.variationPrice), dv(jv.variationPriceWithDiscount);
    }
    Object.keys(hv ?? {}).length === ((Lv = rv.variationSelector) == null ? void 0 : Lv.length) && (sv(!1), ov(Cv));
  }, [
    tv,
    hv,
    rv,
    (wv = rv.variationSelector) == null ? void 0 : wv.length,
    Sv,
    yv
  ]), {
    variations: yv,
    optionsChosen: hv,
    available: iv,
    setAvailable: ov,
    disabled: av,
    setDisabled: sv,
    handleChooseOption: _v,
    price: lv,
    priceWithoutDiscount: cv,
    setDefaultOption: Ev
  };
}, ProductQuickView = ({
  product: rv,
  hidePrice: tv = !1,
  settings: ev,
  onPressAdd: iv,
  onPressBack: ov
}) => {
  var pv;
  const [av, sv] = reactExports.useState(1), [lv, uv] = reactExports.useState(0), cv = useVariationHandlers(
    rv,
    uv,
    ev
  ), dv = ((pv = rv.items) == null ? void 0 : pv.map((yv) => {
    var Sv;
    return (Sv = yv.images) == null ? void 0 : Sv[0].imageUrl;
  })) ?? [], hv = () => {
    cv.optionsChosen && iv(rv, av, cv.optionsChosen);
  };
  return reactExports.useEffect(() => {
    cv.setDefaultOption();
  }, []), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$g.container, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { icon: /* @__PURE__ */ jsxRuntimeExports.jsx(BackIcon, {}), onPress: ov }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$g.content, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(ImageCarousel, { currentIndex: lv, images: dv }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$g.productContent, children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "BigTitle", children: rv.name }),
        !tv && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$g.priceInformation, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            Show,
            {
              when: cv.priceWithoutDiscount !== cv.price,
              children: /* @__PURE__ */ jsxRuntimeExports.jsx(
                Typography,
                {
                  color: "#71747C",
                  type: "MiddleCaption",
                  className: styles$g.withoutDiscount,
                  children: `${formatCurrency(cv.priceWithoutDiscount)}`
                }
              )
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Headline", children: `${formatCurrency(cv.price)}` })
        ] })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$g.productVariationContent, children: cv.variations.map((yv) => {
        var Sv;
        return /* @__PURE__ */ jsxRuntimeExports.jsx(
          ProductVariation,
          {
            id: yv.id,
            title: yv.title,
            options: yv.options,
            type: yv.title,
            onChooseOption: cv.handleChooseOption,
            chosenOption: ((Sv = cv.optionsChosen) == null ? void 0 : Sv[yv.id]) ?? "none"
          },
          yv.id
        );
      }) })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$g.actions, children: cv.available ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(MoreLessInput, { value: av, onChangeValue: sv }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        ActionButton,
        {
          disabled: cv.disabled,
          onPress: hv,
          variant: "Terceira",
          text: "Add to cart"
        }
      )
    ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { color: "#7C7C7C", type: "Headline", children: "Unavailable product" }) })
  ] });
}, useJoinExistingCall = () => {
  const { navigate: rv } = useNavigation(), tv = usePerant((uv) => {
    var cv;
    return (cv = uv.account) == null ? void 0 : cv.account;
  }), ev = useSetAtom(clientInfoAtom), { saveClientInfo: iv, saveConnectionInfo: ov } = useClientConnectionSt(), av = useSetAtom(connectionInfoAtom), { t: sv } = useTranslation("translation", { keyPrefix: "call-request" });
  return {
    joinExistingCall: async (uv) => {
      try {
        if (!tv)
          throw new Error("Account not provided");
        const dv = new URLSearchParams(window.location.search).get("id");
        if (!dv)
          throw new Error("Client id not provided");
        const {
          chimeIdMetting: hv,
          status: pv,
          clients: yv
        } = await clientCallRepository.get(dv);
        if (pv === "FINALIZED")
          throw new Error("Call has been finalized");
        if (!hv)
          throw new Error("Attendee not found");
        let Sv = uv == null ? void 0 : uv.name;
        Sv || (Sv = generateUserName(yv, "User"));
        const _v = {
          fullName: Sv,
          phone: "",
          email: "",
          id: dv ?? "",
          personalId: hv ?? "",
          admin: { fullName: Sv }
        }, Ev = {
          title: hv ?? "",
          name: _v.fullName,
          device: "desktop",
          clientId: _v.id,
          account: tv ?? "",
          isAttendee: !0
        }, wv = await loadJoinDataService.execute(Ev), xv = {
          activeCamera: !1,
          activeMic: !1,
          hasBeenConnected: !0,
          title: _v.personalId,
          cameraSwitched: !1
        };
        ev(_v), iv(_v), av({
          ...xv,
          Highlight: wv.Highlight
        }), ov(xv), rv(Screens.clientCall);
      } catch (cv) {
        logger$1.error(cv), rv(Screens.information, {
          title: sv("title"),
          details: `${sv("advisorsNotAvailable")}.`
        });
      }
    }
  };
}, useStateHandler = () => {
  const rv = useSetAtom(clientInfoAtom), tv = useSetAtom(connectionInfoAtom), ev = useSetAtom(meetIdAtom);
  return { clearState: () => {
    rv(clientIniState), tv(connectionIniState), ev("");
  } };
}, useFullScreen = (rv) => {
  const [tv, ev] = reactExports.useState(!1), iv = () => {
    rv.current && (rv.current.requestFullscreen ? rv.current.requestFullscreen() : rv.current.mozRequestFullScreen ? rv.current.mozRequestFullScreen() : rv.current.webkitRequestFullscreen ? rv.current.webkitRequestFullscreen() : rv.current.msRequestFullscreen ? rv.current.msRequestFullscreen() : rv.current.webkitEnterFullscreen && rv.current.webkitEnterFullscreen());
  };
  return reactExports.useEffect(() => {
    var av;
    const ov = () => {
      document.fullscreenElement ? ev(!0) : ev(!1);
    };
    return document.addEventListener("fullscreenchange", ov), document.addEventListener(
      "webkitfullscreenchange",
      ov
    ), document.addEventListener("mozfullscreenchange", ov), document.addEventListener("msfullscreenchange", ov), (av = rv == null ? void 0 : rv.current) == null || av.addEventListener(
      "webkitendfullscreen",
      ov
    ), () => {
      document.removeEventListener("fullscreenchange", ov), document.removeEventListener(
        "webkitfullscreenchange",
        ov
      ), document.removeEventListener(
        "mozfullscreenchange",
        ov
      ), document.removeEventListener(
        "msfullscreenchange",
        ov
      );
    };
  }, [rv]), {
    requestFullscreen: iv,
    isFullScreen: tv
  };
};
function formatCurrency(rv) {
  return rv.toLocaleString("en-US", {
    style: "currency",
    currency: "USD",
    minimumFractionDigits: 0
  });
}
var CornerType = /* @__PURE__ */ ((rv) => (rv[rv.TopLeft = 0] = "TopLeft", rv[rv.TopRight = 1] = "TopRight", rv[rv.BottomLeft = 2] = "BottomLeft", rv[rv.BottomRight = 3] = "BottomRight", rv))(CornerType || {});
const calculateCorner = (rv, tv, ev) => rv === ev && tv === ev ? CornerType.TopLeft : rv > ev && tv === ev ? CornerType.TopRight : rv === ev && tv > ev ? CornerType.BottomLeft : CornerType.BottomRight, clamp = (rv, tv, ev) => rv < tv ? tv : rv > ev ? ev : rv, calculatePosition = (rv, tv, ev, iv, ov, av) => {
  let sv, lv;
  switch (rv) {
    case CornerType.TopLeft:
      sv = tv, lv = tv;
      break;
    case CornerType.TopRight:
      sv = ev - ov - tv, lv = tv;
      break;
    case CornerType.BottomLeft:
      sv = tv, lv = iv - av - tv;
      break;
    default:
      sv = ev - ov - tv, lv = iv - av - tv;
      break;
  }
  return { x: sv, y: lv };
}, downloadFileByUrl = async (rv, tv) => {
  try {
    const ev = await fetch(rv);
    if (!ev.ok)
      throw new Error(`Failed to fetch the file. Status: ${ev.status}`);
    const iv = await ev.blob(), ov = window.URL.createObjectURL(iv), av = document.createElement("a");
    av.href = ov, av.download = tv, document.body.appendChild(av), av.click(), document.body.removeChild(av), window.URL.revokeObjectURL(ov);
  } catch (ev) {
    console.error("Error downloading the file:", ev);
  }
}, fileIconMap = {
  "application/pdf": /* @__PURE__ */ jsxRuntimeExports.jsx(PdfIcon, {}),
  "text/plain": /* @__PURE__ */ jsxRuntimeExports.jsx(PlainTextIcon, {}),
  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": /* @__PURE__ */ jsxRuntimeExports.jsx(ExcelIcon, {})
}, getFileIcon = (rv) => rv.includes("image") ? /* @__PURE__ */ jsxRuntimeExports.jsx(ImageIcon, {}) : rv in fileIconMap ? fileIconMap[rv] : /* @__PURE__ */ jsxRuntimeExports.jsx(GenericFileIcon, {}), getDeviceType = () => {
  const rv = navigator.userAgent || navigator.vendor;
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(
    rv
  ) ? "mobile" : "desktop";
}, ID_META_REEL_N0_SCALE = "reel-no-scale", createMetaScale = (rv) => {
  const tv = document.createElement("meta");
  tv.name = "viewport", tv.content = rv, tv.id = ID_META_REEL_N0_SCALE;
  const ev = document.querySelector("head");
  ev == null || ev.appendChild(tv);
};
function setViewportScale(rv) {
  const tv = `width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=${rv ? "yes" : "no"}`, ev = document.getElementById(ID_META_REEL_N0_SCALE);
  ev ? ev.setAttribute("content", tv) : createMetaScale(tv);
}
function formatToHHMM(rv) {
  const tv = {
    hour: "2-digit",
    minute: "2-digit",
    hour12: !1
  };
  return new Intl.DateTimeFormat("en-US", tv).format(rv);
}
function generateUserName(rv, tv) {
  let ev = 1;
  for (const iv of rv)
    if (iv.fullName.startsWith(tv)) {
      const ov = iv.fullName.slice(tv.length), av = parseInt(ov, 10);
      !isNaN(av) && av >= ev && (ev = av + 1);
    }
  return `${tv} ${ev}`;
}
function _typeof(rv) {
  "@babel/helpers - typeof";
  return _typeof = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(tv) {
    return typeof tv;
  } : function(tv) {
    return tv && typeof Symbol == "function" && tv.constructor === Symbol && tv !== Symbol.prototype ? "symbol" : typeof tv;
  }, _typeof(rv);
}
function toPrimitive(rv, tv) {
  if (_typeof(rv) != "object" || !rv)
    return rv;
  var ev = rv[Symbol.toPrimitive];
  if (ev !== void 0) {
    var iv = ev.call(rv, tv || "default");
    if (_typeof(iv) != "object")
      return iv;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return (tv === "string" ? String : Number)(rv);
}
function toPropertyKey(rv) {
  var tv = toPrimitive(rv, "string");
  return _typeof(tv) == "symbol" ? tv : tv + "";
}
function _defineProperty(rv, tv, ev) {
  return tv = toPropertyKey(tv), tv in rv ? Object.defineProperty(rv, tv, {
    value: ev,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : rv[tv] = ev, rv;
}
function ownKeys(rv, tv) {
  var ev = Object.keys(rv);
  if (Object.getOwnPropertySymbols) {
    var iv = Object.getOwnPropertySymbols(rv);
    tv && (iv = iv.filter(function(ov) {
      return Object.getOwnPropertyDescriptor(rv, ov).enumerable;
    })), ev.push.apply(ev, iv);
  }
  return ev;
}
function _objectSpread2(rv) {
  for (var tv = 1; tv < arguments.length; tv++) {
    var ev = arguments[tv] != null ? arguments[tv] : {};
    tv % 2 ? ownKeys(Object(ev), !0).forEach(function(iv) {
      _defineProperty(rv, iv, ev[iv]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(rv, Object.getOwnPropertyDescriptors(ev)) : ownKeys(Object(ev)).forEach(function(iv) {
      Object.defineProperty(rv, iv, Object.getOwnPropertyDescriptor(ev, iv));
    });
  }
  return rv;
}
function _objectWithoutPropertiesLoose(rv, tv) {
  if (rv == null)
    return {};
  var ev = {};
  for (var iv in rv)
    if (Object.prototype.hasOwnProperty.call(rv, iv)) {
      if (tv.indexOf(iv) >= 0)
        continue;
      ev[iv] = rv[iv];
    }
  return ev;
}
function _objectWithoutProperties(rv, tv) {
  if (rv == null)
    return {};
  var ev = _objectWithoutPropertiesLoose(rv, tv), iv, ov;
  if (Object.getOwnPropertySymbols) {
    var av = Object.getOwnPropertySymbols(rv);
    for (ov = 0; ov < av.length; ov++)
      iv = av[ov], !(tv.indexOf(iv) >= 0) && Object.prototype.propertyIsEnumerable.call(rv, iv) && (ev[iv] = rv[iv]);
  }
  return ev;
}
var classnames = { exports: {} };
/*!
	Copyright (c) 2018 Jed Watson.
	Licensed under the MIT License (MIT), see
	http://jedwatson.github.io/classnames
*/
(function(rv) {
  (function() {
    var tv = {}.hasOwnProperty;
    function ev() {
      for (var av = "", sv = 0; sv < arguments.length; sv++) {
        var lv = arguments[sv];
        lv && (av = ov(av, iv(lv)));
      }
      return av;
    }
    function iv(av) {
      if (typeof av == "string" || typeof av == "number")
        return av;
      if (typeof av != "object")
        return "";
      if (Array.isArray(av))
        return ev.apply(null, av);
      if (av.toString !== Object.prototype.toString && !av.toString.toString().includes("[native code]"))
        return av.toString();
      var sv = "";
      for (var lv in av)
        tv.call(av, lv) && av[lv] && (sv = ov(sv, lv));
      return sv;
    }
    function ov(av, sv) {
      return sv ? av ? av + " " + sv : av + sv : av;
    }
    rv.exports ? (ev.default = ev, rv.exports = ev) : window.classNames = ev;
  })();
})(classnames);
var classnamesExports = classnames.exports;
const classNames = /* @__PURE__ */ getDefaultExportFromCjs(classnamesExports);
var defaultProps = {
  percent: 0,
  prefixCls: "rc-progress",
  strokeColor: "#2db7f5",
  strokeLinecap: "round",
  strokeWidth: 1,
  trailColor: "#D9D9D9",
  trailWidth: 1,
  gapPosition: "bottom"
}, useTransitionDuration = function rv() {
  var tv = reactExports.useRef([]), ev = reactExports.useRef(null);
  return reactExports.useEffect(function() {
    var iv = Date.now(), ov = !1;
    tv.current.forEach(function(av) {
      if (av) {
        ov = !0;
        var sv = av.style;
        sv.transitionDuration = ".3s, .3s, .3s, .06s", ev.current && iv - ev.current < 100 && (sv.transitionDuration = "0s, 0s");
      }
    }), ov && (ev.current = Date.now());
  }), tv.current;
};
function _arrayWithHoles(rv) {
  if (Array.isArray(rv))
    return rv;
}
function _iterableToArrayLimit(rv, tv) {
  var ev = rv == null ? null : typeof Symbol < "u" && rv[Symbol.iterator] || rv["@@iterator"];
  if (ev != null) {
    var iv, ov, av, sv, lv = [], uv = !0, cv = !1;
    try {
      if (av = (ev = ev.call(rv)).next, tv !== 0)
        for (; !(uv = (iv = av.call(ev)).done) && (lv.push(iv.value), lv.length !== tv); uv = !0)
          ;
    } catch (dv) {
      cv = !0, ov = dv;
    } finally {
      try {
        if (!uv && ev.return != null && (sv = ev.return(), Object(sv) !== sv))
          return;
      } finally {
        if (cv)
          throw ov;
      }
    }
    return lv;
  }
}
function _arrayLikeToArray(rv, tv) {
  (tv == null || tv > rv.length) && (tv = rv.length);
  for (var ev = 0, iv = new Array(tv); ev < tv; ev++)
    iv[ev] = rv[ev];
  return iv;
}
function _unsupportedIterableToArray(rv, tv) {
  if (rv) {
    if (typeof rv == "string")
      return _arrayLikeToArray(rv, tv);
    var ev = Object.prototype.toString.call(rv).slice(8, -1);
    if (ev === "Object" && rv.constructor && (ev = rv.constructor.name), ev === "Map" || ev === "Set")
      return Array.from(rv);
    if (ev === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ev))
      return _arrayLikeToArray(rv, tv);
  }
}
function _nonIterableRest() {
  throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function _slicedToArray(rv, tv) {
  return _arrayWithHoles(rv) || _iterableToArrayLimit(rv, tv) || _unsupportedIterableToArray(rv, tv) || _nonIterableRest();
}
function canUseDom() {
  return !!(typeof window < "u" && window.document && window.document.createElement);
}
var uuid = 0, isBrowserClient = canUseDom();
function getUUID() {
  var rv;
  return isBrowserClient ? (rv = uuid, uuid += 1) : rv = "TEST_OR_SSR", rv;
}
const useId = function(rv) {
  var tv = reactExports.useState(), ev = _slicedToArray(tv, 2), iv = ev[0], ov = ev[1];
  return reactExports.useEffect(function() {
    ov("rc_progress_".concat(getUUID()));
  }, []), rv || iv;
};
var Block = function rv(tv) {
  var ev = tv.bg, iv = tv.children;
  return /* @__PURE__ */ reactExports.createElement("div", {
    style: {
      width: "100%",
      height: "100%",
      background: ev
    }
  }, iv);
};
function getPtgColors(rv, tv) {
  return Object.keys(rv).map(function(ev) {
    var iv = parseFloat(ev), ov = "".concat(Math.floor(iv * tv), "%");
    return "".concat(rv[ev], " ").concat(ov);
  });
}
var PtgCircle = /* @__PURE__ */ reactExports.forwardRef(function(rv, tv) {
  var ev = rv.prefixCls, iv = rv.color, ov = rv.gradientId, av = rv.radius, sv = rv.style, lv = rv.ptg, uv = rv.strokeLinecap, cv = rv.strokeWidth, dv = rv.size, hv = rv.gapDegree, pv = iv && _typeof(iv) === "object", yv = pv ? "#FFF" : void 0, Sv = dv / 2, _v = /* @__PURE__ */ reactExports.createElement("circle", {
    className: "".concat(ev, "-circle-path"),
    r: av,
    cx: Sv,
    cy: Sv,
    stroke: yv,
    strokeLinecap: uv,
    strokeWidth: cv,
    opacity: lv === 0 ? 0 : 1,
    style: sv,
    ref: tv
  });
  if (!pv)
    return _v;
  var Ev = "".concat(ov, "-conic"), wv = hv ? "".concat(180 + hv / 2, "deg") : "0deg", xv = getPtgColors(iv, (360 - hv) / 360), Cv = getPtgColors(iv, 1), Av = "conic-gradient(from ".concat(wv, ", ").concat(xv.join(", "), ")"), Ov = "linear-gradient(to ".concat(hv ? "bottom" : "top", ", ").concat(Cv.join(", "), ")");
  return /* @__PURE__ */ reactExports.createElement(reactExports.Fragment, null, /* @__PURE__ */ reactExports.createElement("mask", {
    id: Ev
  }, _v), /* @__PURE__ */ reactExports.createElement("foreignObject", {
    x: 0,
    y: 0,
    width: dv,
    height: dv,
    mask: "url(#".concat(Ev, ")")
  }, /* @__PURE__ */ reactExports.createElement(Block, {
    bg: Ov
  }, /* @__PURE__ */ reactExports.createElement(Block, {
    bg: Av
  }))));
}), VIEW_BOX_SIZE = 100, getCircleStyle = function rv(tv, ev, iv, ov, av, sv, lv, uv, cv, dv) {
  var hv = arguments.length > 10 && arguments[10] !== void 0 ? arguments[10] : 0, pv = iv / 100 * 360 * ((360 - sv) / 360), yv = sv === 0 ? 0 : {
    bottom: 0,
    top: 180,
    left: 90,
    right: -90
  }[lv], Sv = (100 - ov) / 100 * ev;
  cv === "round" && ov !== 100 && (Sv += dv / 2, Sv >= ev && (Sv = ev - 0.01));
  var _v = VIEW_BOX_SIZE / 2;
  return {
    stroke: typeof uv == "string" ? uv : void 0,
    strokeDasharray: "".concat(ev, "px ").concat(tv),
    strokeDashoffset: Sv + hv,
    transform: "rotate(".concat(av + pv + yv, "deg)"),
    transformOrigin: "".concat(_v, "px ").concat(_v, "px"),
    transition: "stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s",
    fillOpacity: 0
  };
}, _excluded = ["id", "prefixCls", "steps", "strokeWidth", "trailWidth", "gapDegree", "gapPosition", "trailColor", "strokeLinecap", "style", "className", "strokeColor", "percent"];
function toArray(rv) {
  var tv = rv ?? [];
  return Array.isArray(tv) ? tv : [tv];
}
var Circle = function rv(tv) {
  var ev = _objectSpread2(_objectSpread2({}, defaultProps), tv), iv = ev.id, ov = ev.prefixCls, av = ev.steps, sv = ev.strokeWidth, lv = ev.trailWidth, uv = ev.gapDegree, cv = uv === void 0 ? 0 : uv, dv = ev.gapPosition, hv = ev.trailColor, pv = ev.strokeLinecap, yv = ev.style, Sv = ev.className, _v = ev.strokeColor, Ev = ev.percent, wv = _objectWithoutProperties(ev, _excluded), xv = VIEW_BOX_SIZE / 2, Cv = useId(iv), Av = "".concat(Cv, "-gradient"), Ov = xv - sv / 2, Lv = Math.PI * 2 * Ov, jv = cv > 0 ? 90 + cv / 2 : -90, Dv = Lv * ((360 - cv) / 360), Vv = _typeof(av) === "object" ? av : {
    count: av,
    gap: 2
  }, Gv = Vv.count, Yv = Vv.gap, Xv = toArray(Ev), L1 = toArray(_v), Bv = L1.find(function(I1) {
    return I1 && _typeof(I1) === "object";
  }), Qv = Bv && _typeof(Bv) === "object", B1 = Qv ? "butt" : pv, K1 = getCircleStyle(Lv, Dv, 0, 100, jv, cv, dv, hv, B1, sv), j1 = useTransitionDuration(), P1 = function() {
    var F1 = 0;
    return Xv.map(function(M1, U1) {
      var H1 = L1[U1] || L1[L1.length - 1], k1 = getCircleStyle(Lv, Dv, F1, M1, jv, cv, dv, H1, B1, sv);
      return F1 += M1, /* @__PURE__ */ reactExports.createElement(PtgCircle, {
        key: U1,
        color: H1,
        ptg: M1,
        radius: Ov,
        prefixCls: ov,
        gradientId: Av,
        style: k1,
        strokeLinecap: B1,
        strokeWidth: sv,
        gapDegree: cv,
        ref: function(Y1) {
          j1[U1] = Y1;
        },
        size: VIEW_BOX_SIZE
      });
    }).reverse();
  }, D1 = function() {
    var F1 = Math.round(Gv * (Xv[0] / 100)), M1 = 100 / Gv, U1 = 0;
    return new Array(Gv).fill(null).map(function(H1, k1) {
      var Q1 = k1 <= F1 - 1 ? L1[0] : hv, Y1 = Q1 && _typeof(Q1) === "object" ? "url(#".concat(Av, ")") : void 0, r$ = getCircleStyle(Lv, Dv, U1, M1, jv, cv, dv, Q1, "butt", sv, Yv);
      return U1 += (Dv - r$.strokeDashoffset + Yv) * 100 / Dv, /* @__PURE__ */ reactExports.createElement("circle", {
        key: k1,
        className: "".concat(ov, "-circle-path"),
        r: Ov,
        cx: xv,
        cy: xv,
        stroke: Y1,
        strokeWidth: sv,
        opacity: 1,
        style: r$,
        ref: function(S$) {
          j1[k1] = S$;
        }
      });
    });
  };
  return /* @__PURE__ */ reactExports.createElement("svg", _extends$7({
    className: classNames("".concat(ov, "-circle"), Sv),
    viewBox: "0 0 ".concat(VIEW_BOX_SIZE, " ").concat(VIEW_BOX_SIZE),
    style: yv,
    id: iv,
    role: "presentation"
  }, wv), !Gv && /* @__PURE__ */ reactExports.createElement("circle", {
    className: "".concat(ov, "-circle-trail"),
    r: Ov,
    cx: xv,
    cy: xv,
    stroke: hv,
    strokeLinecap: B1,
    strokeWidth: lv || sv,
    style: K1
  }), Gv ? D1() : P1());
};
const itemProgress = "_itemProgress_1v2v0_1", styles$f = {
  itemProgress
}, UploadProgress = reactExports.memo(({ id: rv }) => {
  const { completed: tv } = useItemProgressListener(rv) || { completed: 0 };
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$f.itemProgress, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
    Circle,
    {
      className: styles$f.styledCircle,
      percent: tv,
      strokeWidth: 2,
      trailColor: "#000",
      strokeColor: {
        "0%": "#ffbf00",
        "100%": "#40e340"
      }
    }
  ) });
}), itemWrapper = "_itemWrapper_rjdm2_1", statusIcon = "_statusIcon_rjdm2_12", itemName = "_itemName_rjdm2_21", success = "_success_rjdm2_34", error = "_error_rjdm2_38", deleteButton = "_deleteButton_rjdm2_42", styles$e = {
  itemWrapper,
  statusIcon,
  itemName,
  success,
  error,
  deleteButton
}, UploadListItem = reactExports.memo((rv) => {
  const { item: tv, onDelete: ev } = rv, [iv, ov] = reactExports.useState(tv.state), av = reactExports.useMemo(() => getFileIcon(tv.file.type), [tv.file.type]);
  useItemFinalizeListener((uv) => {
    ov(uv.state);
  }, tv.id);
  const sv = reactExports.useMemo(
    () => ({
      isSuccess: iv === FILE_STATES.FINISHED,
      isError: iv === FILE_STATES.ERROR,
      isPending: iv === FILE_STATES.PENDING,
      isUploading: iv === FILE_STATES.UPLOADING
    }),
    [iv]
  ), lv = (uv) => clsx(uv, {
    [styles$e.success]: sv.isSuccess,
    [styles$e.error]: sv.isError
  });
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$e.itemWrapper, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: lv(styles$e.statusIcon), children: [
      sv.isPending && av,
      sv.isUploading && /* @__PURE__ */ jsxRuntimeExports.jsx(UploadProgress, { id: tv.id }),
      sv.isSuccess && /* @__PURE__ */ jsxRuntimeExports.jsx(CheckIcon, {})
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: lv(styles$e.itemName), children: tv.file.name }),
    (sv.isPending || sv.isError) && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$e.deleteButton, onClick: () => ev(tv), children: /* @__PURE__ */ jsxRuntimeExports.jsx(TrashIcon, {}) })
  ] });
}), Show = ({ when: rv, whenAsync: tv, children: ev }) => {
  const [iv, ov] = reactExports.useState(!1);
  return reactExports.useEffect(() => {
    tv ? (async () => {
      const sv = await (tv == null ? void 0 : tv()) ?? !1;
      ov(sv);
    })() : rv !== void 0 && ov(rv);
  }, [rv, tv]), iv ? ev : null;
}, content$6 = "_content_11385_1", styles$d = {
  content: content$6
}, FullScreenButton = ({ onPress: rv }) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { onClick: rv, className: styles$d.content, children: [
  /* @__PURE__ */ jsxRuntimeExports.jsx(FullScreenIcon, {}),
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Expand View" })
] }), floatingModal = "_floatingModal_1bkfr_1", containerWithoutPadding = "_containerWithoutPadding_1bkfr_12", container$2 = "_container_1bkfr_12", specificWidth = "_specificWidth_1bkfr_25", containerWidthFitContent = "_containerWidthFitContent_1bkfr_29", header$5 = "_header_1bkfr_47", styles$c = {
  floatingModal,
  containerWithoutPadding,
  container: container$2,
  specificWidth,
  containerWidthFitContent,
  header: header$5
}, FloatingLayout = ({
  hideHeader: rv = !1,
  removePadding: tv = !1,
  widthFitContent: ev = !1,
  children: iv,
  draggable: ov = !1,
  grow: av = NORMAL_HEIGHT,
  onClose: sv
}) => {
  const { reset: lv } = useNavigation(), uv = () => {
    lv(), sv == null || sv();
  }, cv = ov ? { position: "static", height: av } : {};
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$c.floatingModal, style: cv, children: [
    !rv && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$c.header, children: [
      sv && /* @__PURE__ */ jsxRuntimeExports.jsx(CloseButton, { onPress: uv }),
      !sv && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { height: 25 } })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      "div",
      {
        className: clsx(
          styles$c.container,
          tv && styles$c.containerWithoutPadding,
          ev ? styles$c.containerWidthFitContent : styles$c.specificWidth
        ),
        style: cv,
        children: iv
      }
    )
  ] });
}, header$4 = "_header_1njrt_1", overlap$5 = "_overlap_1njrt_7", minContent = "_minContent_1njrt_12", minimize = "_minimize_1njrt_1", fullContent = "_fullContent_1njrt_17", styles$b = {
  header: header$4,
  overlap: overlap$5,
  minContent,
  minimize,
  fullContent
}, buttonShowFloating = "_buttonShowFloating_173yi_1", TopLeft = "_TopLeft_173yi_7", TopRight = "_TopRight_173yi_12", BottomLeft = "_BottomLeft_173yi_17", BottomRight = "_BottomRight_173yi_22", buttonImageCustom = "_buttonImageCustom_173yi_27", iconLeft = "_iconLeft_173yi_31", styles$a = {
  buttonShowFloating,
  TopLeft,
  TopRight,
  BottomLeft,
  BottomRight,
  buttonImageCustom,
  iconLeft
}, ButtonShowContainer = ({
  corner: rv,
  onPress: tv
}) => {
  const ev = rv === CornerType.BottomLeft || rv === CornerType.TopLeft ? 180 : 0, iv = () => {
    switch (rv) {
      case CornerType.TopLeft:
        return styles$a.TopLeft;
      case CornerType.TopRight:
        return styles$a.TopRight;
      case CornerType.BottomLeft:
        return styles$a.BottomLeft;
      default:
        return styles$a.BottomRight;
    }
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "button",
    {
      style: { transform: `rotate(${ev}deg)` },
      className: `${styles$a.buttonShowFloating}  ${iv()}`,
      onClick: tv,
      children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$a.buttonImageCustom, children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "svg",
          {
            width: "28",
            height: "122",
            viewBox: "0 0 28 122",
            fill: "none",
            xmlns: "http://www.w3.org/2000/svg",
            children: /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M0 15.701C0 10.0425 3.9528 5.15297 9.48565 3.96736L28 0V122L9.48566 118.033C3.95281 116.847 0 111.957 0 106.299V15.701Z",
                fill: "#A5A5A5"
              }
            )
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$a.iconLeft, children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconLeft, {}) })
      ] })
    }
  );
};
function handleTouchMoveBase(rv) {
  rv.preventDefault();
}
const ContainerDraggableMobile = ({
  children: rv,
  className: tv,
  corner: ev,
  onChangeCorner: iv,
  onDragging: ov
}) => {
  const av = reactExports.useRef(null), sv = document.documentElement.clientWidth, lv = document.documentElement.clientHeight, uv = 352, cv = 306, dv = 10, hv = 32, pv = 95, yv = calculatePosition(
    ev ?? CornerType.BottomLeft,
    dv,
    sv,
    lv,
    uv + hv,
    cv + pv
  ), [Sv, _v] = reactExports.useState({
    x: yv.x,
    y: yv.y
  }), [Ev, wv] = reactExports.useState(!1), xv = reactExports.useRef({ x: dv, y: dv }), Cv = (Lv) => {
    Lv.preventDefault();
    const jv = Lv.touches[0], Dv = jv.clientX - xv.current.x, Vv = jv.clientY - xv.current.y, Gv = sv - uv - hv, Yv = lv - cv, Xv = clamp(Dv, 0, Gv), L1 = clamp(Vv, 0, Yv);
    wv(!0), _v({ x: Xv, y: L1 });
  }, Av = (Lv) => {
    Lv.preventDefault(), document.addEventListener("touchmove", handleTouchMoveBase, {
      passive: !1
    });
    const jv = Lv.touches[0];
    xv.current = {
      x: jv.clientX - Sv.x,
      y: jv.clientY - Sv.y
    };
  }, Ov = (Lv) => {
    const jv = sv - uv + hv, Dv = lv - cv + pv, Vv = uv / 2, Gv = cv / 2, Yv = Sv.x < jv / 2 ? 0 : jv, Xv = Sv.y < Dv / 2 ? 0 : Dv, L1 = clamp(Yv - Vv, dv, jv), Bv = clamp(Xv - Gv, dv, Dv);
    _v({ x: L1, y: Bv }), iv && iv(calculateCorner(L1, Bv, dv)), wv(!1), document.removeEventListener("touchmove", handleTouchMoveBase);
  };
  return reactExports.useEffect(() => {
    ov && ov(Ev);
  }, [Ev, ov]), reactExports.useEffect(() => {
    const Lv = calculatePosition(
      ev ?? CornerType.BottomRight,
      dv,
      sv,
      lv,
      uv + hv,
      cv + hv
    );
    _v({ x: Lv.x, y: Lv.y });
  }, [ev]), /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      ref: av,
      className: tv,
      style: {
        left: `${Sv.x}px`,
        top: `${Sv.y}px`,
        height: cv,
        width: uv
      },
      onTouchStart: Av,
      onTouchMove: Cv,
      onTouchEnd: Ov,
      draggable: !0,
      children: rv
    }
  );
}, calculePosition = (rv, tv, ev, iv, ov, av) => {
  let sv, lv;
  switch (rv) {
    case CornerType.TopLeft:
      sv = tv, lv = tv;
      break;
    case CornerType.TopRight:
      sv = ev - ov - tv, lv = tv;
      break;
    case CornerType.BottomLeft:
      sv = tv, lv = iv - av - tv;
      break;
    default:
      sv = ev - ov - tv, lv = iv - av - tv;
      break;
  }
  return { x: sv, y: lv };
}, useDraggable = (rv, tv, ev) => {
  const ov = calculePosition(
    ev,
    25,
    window.innerWidth,
    window.innerHeight,
    rv,
    tv
  ), [av, sv] = reactExports.useState(ov.x), [lv, uv] = reactExports.useState(ov.y), [cv, dv] = reactExports.useState(!1), [hv, pv] = reactExports.useState(ev), yv = (Sv) => {
    const _v = window.innerWidth, Ev = window.innerHeight, wv = Sv.clientX, xv = Sv.clientY;
    function Cv(Ov) {
      dv(!0);
      const Lv = Ov.clientX - wv, jv = Ov.clientY - xv;
      av + Lv >= 0 && av + Lv <= _v - rv && sv(av + Lv), lv + jv >= 0 && lv + jv <= Ev - tv && uv(lv + jv);
    }
    const Av = (Ov) => {
      document.removeEventListener("mousemove", Cv), document.removeEventListener("mouseup", Av);
      const Lv = Ov.clientX - wv, jv = Ov.clientY - xv;
      if (!Lv && !jv)
        return;
      const Dv = av + Lv, Vv = lv + jv, Gv = window.innerWidth, Yv = window.innerHeight, Xv = rv / 2, L1 = tv / 2, Bv = [
        Math.sqrt(
          Math.pow(Dv - Xv, 2) + Math.pow(Vv - L1, 2)
        ),
        // esquina superior izquierda
        Math.sqrt(
          Math.pow(Gv - Dv - Xv, 2) + Math.pow(Vv - L1, 2)
        ),
        // esquina superior derecha
        Math.sqrt(
          Math.pow(Dv - Xv, 2) + Math.pow(Yv - Vv - L1, 2)
        ),
        // esquina inferior izquierda
        Math.sqrt(
          Math.pow(Gv - Dv - Xv, 2) + Math.pow(Yv - Vv - L1, 2)
        )
        // esquina inferior derecha
      ], Qv = Bv.indexOf(Math.min(...Bv)), B1 = calculePosition(
        Qv,
        25,
        Gv,
        Yv,
        rv,
        tv
      );
      sv(B1.x ?? 0), uv(B1.y ?? 0), pv(Qv), setTimeout(() => dv(!1), 400);
    };
    document.addEventListener("mousemove", Cv), document.addEventListener("mouseup", Av);
  };
  return reactExports.useEffect(() => {
    const Sv = calculePosition(
      ev ?? 3,
      25,
      window.innerWidth,
      window.innerHeight,
      rv,
      tv
    );
    sv(Sv.x ?? 0), uv(Sv.y ?? 0);
  }, [tv, rv, ev]), {
    posX: av,
    posY: lv,
    isDragging: cv,
    corner: hv,
    handleMouseDown: yv
  };
}, ContainerDraggableDesktop = ({
  children: rv,
  corner: tv,
  className: ev,
  onChangeCorner: iv,
  onDragging: ov
}) => {
  const av = reactExports.useRef(null), [sv, lv] = reactExports.useState(0), [uv, cv] = reactExports.useState(0), [dv, hv] = reactExports.useState(), [pv, yv] = reactExports.useState();
  reactExports.useEffect(() => {
    const Av = () => {
      var Dv;
      const jv = (Dv = av.current) == null ? void 0 : Dv.children[1];
      if (jv) {
        const { width: Vv, height: Gv } = jv.getBoundingClientRect();
        return { width: Vv, height: Gv };
      }
      return { width: 0, height: 0 };
    }, { width: Ov, height: Lv } = Av();
    yv(Ov), hv(Lv), lv(Ov ? Ov + 10 : 396), cv(Lv ? Lv + 20 : 390);
  }, [tv, av, rv]);
  const Sv = tv ?? CornerType.BottomRight, {
    posX: _v,
    posY: Ev,
    corner: wv,
    isDragging: xv,
    handleMouseDown: Cv
  } = useDraggable(sv, uv, Sv);
  return reactExports.useEffect(() => {
    iv && iv(wv);
  }, [wv, iv]), reactExports.useEffect(() => {
    ov && ov(xv);
  }, [xv, ov]), /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      ref: av,
      className: ev,
      style: {
        left: `${_v}px`,
        top: `${Ev}px`,
        height: dv,
        width: pv
      },
      onMouseDown: Cv,
      children: rv
    }
  );
}, DraggableModal = ({
  children: rv,
  corner: tv,
  className: ev,
  onChangeCorner: iv,
  onDragging: ov
}) => getDeviceType() === "mobile" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
  ContainerDraggableMobile,
  {
    className: ev,
    corner: tv,
    onDragging: ov,
    onChangeCorner: iv,
    children: rv
  }
) : /* @__PURE__ */ jsxRuntimeExports.jsx(
  ContainerDraggableDesktop,
  {
    className: ev,
    corner: tv,
    onChangeCorner: iv,
    onDragging: ov,
    children: rv
  }
), containerVideoFloating$1 = "_containerVideoFloating_1rpt1_1", closeButton$1 = "_closeButton_1rpt1_6", closeButtonMobile = "_closeButtonMobile_1rpt1_13", styles$9 = {
  containerVideoFloating: containerVideoFloating$1,
  closeButton: closeButton$1,
  closeButtonMobile
}, Container = ({
  maximized: rv,
  draggable: tv,
  children: ev,
  closeOption: iv,
  corner: ov,
  setCorner: av,
  onPressMaximize: sv
}) => tv ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { visibility: rv ? "visible" : "hidden" }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
    DraggableModal,
    {
      className: styles$9.containerVideoFloating,
      onChangeCorner: av,
      corner: ov,
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", {}),
        ev
      ]
    }
  ) }),
  !rv && iv && /* @__PURE__ */ jsxRuntimeExports.jsx(
    ButtonShowContainer,
    {
      corner: ov,
      onPress: () => {
        sv == null || sv();
      }
    }
  )
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { visibility: rv ? "visible" : "hidden" }, children: ev }),
  !rv && iv && /* @__PURE__ */ jsxRuntimeExports.jsx(
    ButtonShowContainer,
    {
      corner: CornerType.BottomRight,
      onPress: () => {
        sv == null || sv();
      }
    }
  )
] }), MinimizableLayout = ({
  minContent: rv,
  fullContent: tv,
  draggable: ev,
  corner: iv,
  setCorner: ov,
  onClose: av
}) => {
  const [sv, lv] = reactExports.useState(!1), [uv, cv] = reactExports.useState(!0), dv = () => {
    lv(!sv);
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Container,
    {
      draggable: ev,
      corner: iv,
      setCorner: ov,
      maximized: uv,
      onPressMaximize: () => cv(!0),
      children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
        FloatingLayout,
        {
          hideHeader: sv,
          draggable: ev,
          onClose: av,
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `${styles$b.header} ${sv ? "" : styles$b.overlap}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MinimizeButton, { onPress: dv }) }),
            sv ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$b.minContent, children: rv }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$b.fullContent, children: tv })
          ]
        }
      )
    }
  );
}, content$5 = "_content_9usmo_1", containerVideoFloating = "_containerVideoFloating_9usmo_6", styles$8 = {
  content: content$5,
  containerVideoFloating
}, AssistantOptionsScreen = () => {
  const { navigate: rv } = useNavigation(), tv = usePerant((dv) => {
    var hv;
    return (hv = dv.account) == null ? void 0 : hv.widgetConfig;
  }), { requestCall: ev } = useCallRequestHandlers(), { handleClick: iv } = useAssistedSalesHandlers(), ov = useAtomValue(showAssistedSalesAtom), [av, sv] = reactExports.useState(!1), { t: lv } = useTranslation("translation", {
    keyPrefix: "assistant-options"
  }), uv = async () => {
    try {
      sv(!0), await ev(INCOGNITO_CALL_FORM), rv(Screens.callWait);
    } catch (dv) {
      logger$1.error(
        "AssistantOptionsScreen: error requesting incognito call",
        dv
      ), rv(Screens.information);
    } finally {
      sv(!1);
    }
  }, cv = () => {
    (tv == null ? void 0 : tv.personalShopperCallRequest) ? rv(Screens.callRequest) : uv();
  };
  return (
    // eslint-disable-next-line @typescript-eslint/no-empty-function
    /* @__PURE__ */ jsxRuntimeExports.jsx(FloatingLayout, { onClose: () => {
    }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$8.content, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { type: "BigTitle", children: [
        lv("bigTitle"),
        "!"
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body", children: lv("body") }),
      (tv == null ? void 0 : tv.personalShopperButton) && /* @__PURE__ */ jsxRuntimeExports.jsx(
        ItemButton,
        {
          title: lv("videoCallTitle"),
          description: lv("videoCallDescription"),
          onPress: cv,
          icon: /* @__PURE__ */ jsxRuntimeExports.jsx(HeadSetIcon, {}),
          loading: av
        }
      ),
      ov && /* @__PURE__ */ jsxRuntimeExports.jsx(
        ItemButton,
        {
          title: lv("supportTitle"),
          description: lv("supportDescription"),
          onPress: () => iv(),
          icon: /* @__PURE__ */ jsxRuntimeExports.jsx(ChatIcon, {})
        }
      )
    ] }) })
  );
}, AssistedSalesScreen = () => (reactExports.useEffect(() => {
  var av;
  const rv = document.querySelector("#suiteshare_chat"), tv = (av = document.querySelector("pa-widget-legacy")) == null ? void 0 : av.shadowRoot, ev = (sv) => {
    var lv;
    return (lv = sv == null ? void 0 : sv.querySelector("pa-widget")) == null ? void 0 : lv.shadowRoot;
  }, iv = ev(tv || document);
  if (!rv)
    return logger$1.error(
      "suiteshare chat (#suiteshare_chat) not found in the DOM."
    );
  if (!iv)
    return logger$1.error(
      "shadow root of pa-widget not found in pa-widget-legacy."
    );
  const ov = iv.getElementById("as-content");
  if (!ov)
    return logger$1.error("as-content element not found within shadow DOM.");
  ov.appendChild(rv.cloneNode(!0));
}, []), // eslint-disable-next-line @typescript-eslint/no-empty-function
/* @__PURE__ */ jsxRuntimeExports.jsx(FloatingLayout, { onClose: () => {
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { id: "as-content" }) })), useCallRequestLoader = () => {
  const { navigate: rv } = useNavigation(), tv = usePerant((pv) => {
    var yv;
    return (yv = pv.config) == null ? void 0 : yv.account;
  }), ev = usePerant(
    (pv) => {
      var yv;
      return (yv = pv.account) == null ? void 0 : yv.widgetConfig.manualCallHandling;
    }
  ), iv = usePerant((pv) => {
    var yv;
    return (yv = pv.config) == null ? void 0 : yv.organization;
  }), ov = usePerant((pv) => {
    var yv;
    return (yv = pv.account) == null ? void 0 : yv.b2b;
  }), av = usePerant((pv) => {
    var yv;
    return (yv = pv.config) == null ? void 0 : yv.productId;
  }), {
    account: sv,
    isLoading: lv,
    isError: uv
  } = useAccount(), { t: cv } = useTranslation("translation", {
    keyPrefix: "call-request"
  }), { error: dv, isLoading: hv } = useQuery({
    queryKey: ["verifyPersonalAvailable", av, iv],
    queryFn: async () => (await verifyPersonalAvailableService.execute({
      account: tv,
      productId: av,
      b2b: ov ?? !1,
      organization: iv,
      manualCallHandling: ev
    }), !0),
    enabled: !!tv
  });
  return reactExports.useEffect(() => {
    (uv || !!dv) && rv(Screens.information, {
      title: cv("title"),
      details: cv("advisorsNotAvailable")
    });
  }, [dv, uv, rv, cv]), {
    loading: lv || hv,
    error: dv,
    data: sv
  };
}, useCallRequestForm = () => {
  const { t: rv } = useTranslation("translation", {
    keyPrefix: "form-validations"
  }), tv = create$3().shape({
    name: create$6().required(rv("nameRequired")),
    phone: create$6().matches(/^\d{9,11}$/, rv("invalidPhone")).required().typeError(rv("invalidPhone")),
    email: create$6().email(rv("invalidEmail")).required(rv("emailRequired")),
    acceptTerms: create$7().required().isTrue()
  }).required(), { register: ev, handleSubmit: iv, formState: ov } = useForm({
    resolver: o(tv),
    mode: "onChange"
  }), { isSubmitting: av, errors: sv, isDirty: lv, isValid: uv } = ov;
  return {
    register: ev,
    formState: ov,
    handleSubmit: iv,
    errors: sv,
    disableSubmit: !lv || !uv || av
  };
}, content$4 = "_content_1w52b_1", header$3 = "_header_1w52b_5", overlap$4 = "_overlap_1w52b_21", form$2 = "_form_1w52b_25", description$2 = "_description_1w52b_29", styles$7 = {
  content: content$4,
  header: header$3,
  overlap: overlap$4,
  form: form$2,
  description: description$2
}, CallRequestScreen = () => {
  var dv, hv, pv;
  const { data: rv } = useCallRequestLoader(), { register: tv, handleSubmit: ev, errors: iv, disableSubmit: ov } = useCallRequestForm(), { handlePressSubmit: av, handlePressBack: sv } = useCallRequestHandlers(), { prevScreens: lv } = useNavigation(), uv = getDeviceType() === "mobile", { t: cv } = useTranslation("translation", {
    keyPrefix: "call-request"
  });
  return reactExports.useEffect(() => (uv && setViewportScale(!1), () => {
    uv && setViewportScale(!0);
  }), [uv]), // eslint-disable-next-line @typescript-eslint/no-empty-function
  /* @__PURE__ */ jsxRuntimeExports.jsx(FloatingLayout, { onClose: () => {
  }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${styles$7.content} ${styles$7.overlap}`, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$7.header, children: [
      lv.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { icon: /* @__PURE__ */ jsxRuntimeExports.jsx(BackIcon, {}), onPress: sv }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Headline", children: cv("title") })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body", className: styles$7.description, children: cv("description") }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs(
      "form",
      {
        onSubmit: ev(av),
        className: styles$7.form,
        children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            FieldInput,
            {
              label: cv("name"),
              name: "name",
              register: tv,
              error: (dv = iv.name) == null ? void 0 : dv.message
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            FieldInput,
            {
              label: cv("email"),
              name: "email",
              register: tv,
              error: (hv = iv.email) == null ? void 0 : hv.message
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            FieldInput,
            {
              label: cv("phone"),
              name: "phone",
              register: tv,
              error: (pv = iv.phone) == null ? void 0 : pv.message
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            Checkbox,
            {
              name: "acceptTerms",
              register: tv,
              label: /* @__PURE__ */ jsxRuntimeExports.jsx(TermCondition, { link: rv == null ? void 0 : rv.urlClient }),
              id: "agreements"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            ActionButton,
            {
              disabled: ov,
              text: cv("startCall"),
              type: "submit"
            }
          )
        ]
      }
    )
  ] }) });
}, DELAY_MIN = 36e4, { publicUrls: publicUrls$1 } = environment$2, useWaitPersonal = (rv) => {
  const { navigate: tv } = useNavigation(), [ev, iv] = reactExports.useState(!1), { id: ov, personalId: av } = useAtomValue(clientInfoAtom), [sv] = useAtom(connectionInfoAtom), lv = usePerant((dv) => {
    var hv;
    return (hv = dv.account) == null ? void 0 : hv.account;
  }), { t: uv } = useTranslation("translation", { keyPrefix: "call-request" }), { clearClientConnectionSt: cv } = useClientConnectionSt();
  reactExports.useEffect(() => {
    const dv = `${publicUrls$1.wssPersonal}?channel=${ov}`, hv = new WebSocket(dv);
    return hv.onerror = () => {
      hv.close();
    }, hv.onmessage = (pv) => {
      const { action: yv, data: Sv } = JSON.parse(pv.data);
      yv === "chimeIdMetting" ? (iv(!0), rv(Sv)) : yv === "endMetting" && (cv(), tv(Screens.information, {
        title: uv("title"),
        details: `${uv("advisorsNotAvailable")}.`
      }));
    }, () => {
      hv == null || hv.close();
    };
  }, []), reactExports.useEffect(() => {
    if (!(sv != null && sv.title) || ev)
      return;
    const dv = setTimeout(
      () => rv(sv.title ?? ""),
      100
    );
    return () => window.clearTimeout(dv);
  }, [sv.title]), reactExports.useEffect(() => {
    const dv = setTimeout(() => {
      ev || (clientCallRepository.endCall(
        lv,
        ov,
        av,
        "FINALIZED_BY_TIMEOUT"
      ), cv(), tv(Screens.information, {
        title: uv("title"),
        details: `${uv("advisorsNotAvailable")}.`
      }));
    }, DELAY_MIN);
    return () => window.clearTimeout(dv);
  }, [ev, tv, uv]), reactExports.useEffect(() => {
    (async () => {
      const pv = new URLSearchParams(window.location.search).get("id");
      if (!pv)
        return;
      const { status: yv } = await clientCallRepository.get(pv);
      yv === "FINALIZED" && tv(Screens.information, {
        title: uv("title"),
        details: `${uv("advisorsNotAvailable")}.`
      });
    })();
  }, []);
}, useCallWaitHandlers = () => {
  const { navigate: rv } = useNavigation(), tv = usePerant((pv) => {
    var yv;
    return (yv = pv.account) == null ? void 0 : yv.widgetConfig;
  }), ev = usePerant((pv) => {
    var yv;
    return (yv = pv.account) == null ? void 0 : yv.account;
  }), { handleFlowReset: iv } = useWidgetHandlers(), { id: ov, fullName: av, personalId: sv } = useAtomValue(clientInfoAtom), lv = useSetAtom(connectionInfoAtom), { saveConnectionInfo: uv, clearClientConnectionSt: cv } = useClientConnectionSt();
  return {
    handlePressEndCall: () => {
      clientCallRepository.endCall(
        ev,
        ov,
        sv,
        "FINALIZED_BY_CUSTOMER"
      );
      const pv = (tv == null ? void 0 : tv.personalShopperButton) && !(tv != null && tv.assistedSalesButton) && !(tv != null && tv.personalShopperCallRequest);
      cv(), pv ? iv() : rv(Screens.options);
    },
    handleConnectAssessor: async (pv, yv, Sv) => {
      const _v = {
        title: pv,
        name: av,
        device: "desktop",
        clientId: ov,
        account: ev ?? "",
        isAttendee: !0
      }, Ev = await loadJoinDataService.execute(_v), wv = {
        activeCamera: yv,
        activeMic: Sv,
        hasBeenConnected: !0,
        title: pv,
        cameraSwitched: !1
      };
      lv({
        ...wv,
        Highlight: Ev.Highlight
      }), uv(wv), rv(Screens.clientCall);
    }
  };
}, header$2 = "_header_1aiuf_1", overlap$3 = "_overlap_1aiuf_7", dots = "_dots_1aiuf_11", contentMin = "_contentMin_1aiuf_19", content$3 = "_content_1aiuf_19", footer = "_footer_1aiuf_47", styles$6 = {
  header: header$2,
  overlap: overlap$3,
  dots,
  contentMin,
  content: content$3,
  footer
}, CallWaitScreen = () => {
  const rv = useAtomValue(connectionInfoAtom), { saveConnectionInfo: tv } = useClientConnectionSt(), { videoRef: ev, startCamera: iv, stopCamera: ov } = useCameraAvatar(), { handleConnectAssessor: av, handlePressEndCall: sv } = useCallWaitHandlers(), [lv, uv] = reactExports.useState(!1), [cv, dv] = reactExports.useState(!1), [hv, pv] = reactExports.useState(), { t: yv } = useTranslation("translation", { keyPrefix: "call-wait" }), [Sv, _v] = useAtom(cornerAtom), Ev = getDeviceType() === "mobile";
  reactExports.useEffect(() => {
    Sv === -1 && _v(Ev ? CornerType.BottomLeft : CornerType.BottomRight);
  }, [Sv, _v, Ev]);
  const wv = () => {
    dv(!cv), tv({ activeMic: !cv });
  }, xv = () => {
    lv ? ov() : iv(), uv(!lv), tv({ activeCamera: !lv });
  };
  return useWaitPersonal((Cv) => {
    pv(Cv);
  }), reactExports.useEffect(() => {
    hv && av(hv, lv, cv);
  }, [hv, lv, cv, av]), reactExports.useEffect(() => {
    rv.activeCamera ? iv() : ov(), uv(rv.activeCamera), dv(rv.activeMic);
  }, [rv]), /* @__PURE__ */ jsxRuntimeExports.jsx(
    MinimizableLayout,
    {
      draggable: !Ev,
      corner: Sv,
      setCorner: _v,
      minContent: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$6.contentMin, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body2", children: yv("waitMessage") }) }),
      fullContent: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$6.content, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            CameraAvatar,
            {
              micActive: cv,
              active: lv,
              videoRef: ev,
              id: "",
              name: "",
              isMultiple: !1
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$6.dots }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body2", children: yv("waitMessage") })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$6.footer, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            MicButton,
            {
              active: cv,
              onPress: wv,
              styleMode: "waitMode"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            CameraButton,
            {
              active: lv,
              onPress: xv,
              styleMode: "waitMode"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(EndCallButton, { onPress: sv })
        ] })
      ] })
    }
  );
}, useAudioVideoControlsHandlers = (rv) => {
  const [tv, ev] = useAtom(connectionInfoAtom), { saveConnectionInfo: iv } = useClientConnectionSt(), ov = () => {
    const uv = tv.activeMic;
    tv.activeMic ? rv.stopLocalAudio() : rv.startLocalAudio(), ev((cv) => ({
      ...cv,
      activeMic: !uv
    })), iv({ activeMic: !uv });
  }, av = async () => {
    const uv = tv.activeCamera;
    uv ? rv.stopLocalVideo() : await rv.startLocalVideo(), ev((cv) => ({
      ...cv,
      activeCamera: !uv
    })), iv({
      activeCamera: !uv
    });
  }, sv = async () => {
    tv.activeCamera && (await rv.switchLocalVideoInput(), iv({ cameraSwitched: !tv.cameraSwitched }));
  }, lv = reactExports.useCallback(async () => {
    tv.activeMic ? rv.startLocalAudio() : rv.stopLocalAudio(), tv.activeCamera ? (await rv.startLocalVideo(), tv.cameraSwitched && await rv.switchLocalVideoInput()) : rv.stopLocalVideo();
  }, [
    tv.activeMic,
    tv.activeCamera,
    tv.cameraSwitched,
    rv
  ]);
  return {
    activeCamera: tv.activeCamera,
    activeMic: tv.activeMic,
    handlePressMic: ov,
    handlePressCamera: av,
    handlePressSwitchCamera: sv,
    handleInitAudioVideo: lv
  };
}, AttendeesConnectedAtom = atom([]);
AttendeesConnectedAtom.debugLabel = "AttendeesConnectedAtom";
const currentAvatarAttendeeAtom = atom(void 0);
currentAvatarAttendeeAtom.debugLabel = "currentAvatarAttendeeAtom";
const tileAttendeesAtom = atom([]);
tileAttendeesAtom.debugLabel = "tileAttendeesAtom";
const moderatorAttendeeTileAtom = atom(void 0);
moderatorAttendeeTileAtom.debugLabel = "moderatorAttendeeTileAtom";
const screenSharedTileAtom = atom(void 0);
screenSharedTileAtom.debugLabel = "screenSharedTileAtom";
const activeMicAtom = atom(!1);
activeMicAtom.debugLabel = "activeMicAtom";
const activeCameraAtom = atom(!1);
activeCameraAtom.debugLabel = "activeCameraAtom";
const useAudioVideoHandlers = () => {
  const rv = reactExports.useMemo(
    () => meetProvidersFactory.createAudioVideo(),
    []
  ), tv = useAudioVideoControlsHandlers(rv), ev = useAtomValue(AttendeesConnectedAtom), [iv, ov] = useAtom(tileAttendeesAtom), [av, sv] = useAtom(
    currentAvatarAttendeeAtom
  ), [lv, uv] = useAtom(
    moderatorAttendeeTileAtom
  ), [cv, dv] = reactExports.useState(), [hv, pv] = useAtom(screenSharedTileAtom), yv = reactExports.useRef(), Sv = reactExports.useRef(), _v = reactExports.useRef(), Ev = () => {
    var Av, Ov;
    document.pictureInPictureElement ? document.exitPictureInPicture() : (Ov = (Av = Sv == null ? void 0 : Sv.current) == null ? void 0 : Av.requestPictureInPicture) == null || Ov.call(Av);
  }, wv = () => {
    hv && hv !== -1 ? (rv.unbindVideoElement(hv), rv.bindVideoElement(
      hv,
      Sv.current
    )) : lv && (rv.unbindVideoElement(lv), rv.bindVideoElement(
      lv,
      Sv.current
    ));
  }, xv = () => {
    const Av = iv.filter((Vv) => !Vv.isModerator), Ov = /* @__PURE__ */ new Map();
    Av.forEach((Vv) => {
      Ov.set(Vv.attendeeId, Vv);
    });
    const Lv = Array.from(Ov.values());
    let jv = Lv.findIndex(
      (Vv) => Vv.attendeeId === (av == null ? void 0 : av.attendeeId)
    );
    if (jv === -1) {
      sv(Lv[0]);
      return;
    }
    jv = jv + 1 >= Lv.length ? 0 : jv + 1, sv(Lv[jv]);
  }, Cv = () => {
    setTimeout(() => {
      rv.bindAudioOutput(
        yv.current
      ), wv(), av && (rv.unbindVideoElement(av.tileId), rv.bindVideoElement(
        av.tileId,
        _v.current
      ));
    }, 500);
  };
  return reactExports.useEffect(() => {
    ev.length !== 0 && (ov(
      (Av) => ev.map((Ov) => {
        const Lv = Av.find((Vv) => Vv.attendeeId === Ov.id);
        if (Lv)
          return Lv;
        const jv = rv.getLocalTile(), Dv = Ov.isLocal === !0 && jv >= 0;
        return {
          tileId: Ov.isLocal ? jv : -1,
          attendeeId: Ov.id,
          name: Ov.name,
          activeCamera: Dv,
          activeMic: !1,
          isModerator: !1,
          isLocal: Ov.isLocal ?? !1
        };
      })
    ), ev.forEach((Av) => {
      rv.addAudioObserver(Av.id, (Ov, Lv) => {
        if (Lv === null)
          return;
        const jv = !Lv;
        ov((Dv) => Dv.map((Vv) => Vv.attendeeId === Ov ? { ...Vv, activeMic: jv } : Vv));
      });
    }));
  }, [ev, rv, ov]), reactExports.useEffect(() => {
    rv.bindAudioOutput(
      yv.current
    ), rv.addVideoObserver(
      (Av, Ov, Lv, jv, Dv, Vv) => {
        jv && uv(Av), Vv && (console.log("isScreenShare", Av), pv(Av)), ov((Gv) => Gv.find((Xv) => Xv.attendeeId === Ov) ? Gv.map((Xv) => Xv.attendeeId === Ov ? {
          ...Xv,
          tileId: Av,
          activeCamera: Dv,
          isModerator: jv,
          isLocal: Lv
        } : Xv) : Gv);
      },
      (Av) => {
        dv(Av), cv && Av === hv && pv(-1), ov((Ov) => Ov.find((jv) => jv.tileId === Av) ? Ov.map((jv) => jv.tileId === Av ? { ...jv, tileId: -1, activeCamera: !1 } : jv) : Ov);
      }
    );
  }, [rv, ev]), reactExports.useEffect(() => {
    if (iv.length === 0)
      return;
    if (av) {
      let Ov = iv.find(
        (jv) => jv.attendeeId === av.attendeeId
      );
      if (!(JSON.stringify(av) !== JSON.stringify(Ov)))
        return;
      Ov || (Ov = iv.find((jv) => jv.isLocal)), sv(Ov);
      return;
    }
    const Av = iv.find((Ov) => Ov.isLocal);
    Av && sv(Av);
  }, [av, iv]), reactExports.useEffect(() => {
    av != null && av.tileId && (rv.unbindVideoElement(av == null ? void 0 : av.tileId), rv.bindVideoElement(
      av == null ? void 0 : av.tileId,
      _v.current
    ));
  }, [rv, av]), reactExports.useEffect(() => {
    wv();
  }, [rv, lv, hv]), reactExports.useEffect(() => {
    cv && cv === hv && pv(-1);
  }, [cv, hv]), {
    audioRef: yv,
    videoRef: Sv,
    selfVideoRef: _v,
    currentAvatarAttendee: av,
    handlePressPic: Ev,
    handlePressNext: xv,
    activeCamera: tv.activeCamera,
    activeMic: tv.activeMic,
    handlePressMic: tv.handlePressMic,
    handlePressCamera: tv.handlePressCamera,
    handlePressSwitchCamera: tv.handlePressSwitchCamera,
    handleInitAudioVideo: tv.handleInitAudioVideo,
    handleExpandView: Cv,
    isSharingScreen: !!hv && hv !== -1
  };
}, useChatHandlers = () => {
  const rv = reactExports.useMemo(() => meetProvidersFactory.createChat(), []), [tv, ev] = reactExports.useState([]), [iv, ov] = reactExports.useState(0), [av, sv] = reactExports.useState(!1), { fullName: lv } = useAtomValue(clientInfoAtom), uv = () => {
    sv(!av), ov(0);
  }, cv = reactExports.useCallback(
    (dv, hv = []) => {
      if (!dv && !hv.length)
        return;
      const pv = {
        id: ar$2(),
        type: "str",
        user: lv,
        content: dv,
        date: /* @__PURE__ */ new Date(),
        attachments: hv.map((yv) => ({ ...yv, type: "file" }))
      };
      rv.sendMessage(pv), ev((yv) => [...yv, { ...pv, isSelf: !0 }]);
    },
    [rv, lv]
  );
  return reactExports.useEffect(() => (rv.subscribeReceiveMessage((dv) => {
    ev((hv) => [
      ...hv,
      {
        ...dv,
        isSelf: !1
      }
    ]), ov((hv) => hv + 1);
  }), () => {
    rv.unsubscribeReceiveMessage();
  }), [rv]), {
    activeChat: av,
    messages: tv,
    newMsgCounter: iv,
    handleSendMessage: cv,
    handlePressChat: uv
  };
}, { publicUrls } = environment$2, useHighlightHandlers = () => {
  const rv = usePerant((Sv) => {
    var _v;
    return (_v = Sv.config) == null ? void 0 : _v.account;
  }), tv = useAtomValue(connectionInfoAtom), ev = usePerant(
    (Sv) => {
      var _v;
      return (_v = Sv.account) == null ? void 0 : _v.variationThumbnailName;
    }
  ), { id: iv } = useAtomValue(clientInfoAtom), [ov, av] = reactExports.useState(), [sv, lv] = reactExports.useState(!1), uv = useAddToCart(), cv = useSetAtom(isVariationSelectorOpenAtom), dv = async () => {
    ov ? uv(ov) : logger$1.error("useHighlightHandlers: product not found");
  }, hv = async (Sv, _v, Ev) => {
    const wv = await findItemProductService.findItemProduct(
      Sv,
      Ev
    );
    if (!(wv != null && wv.itemId))
      throw new Error("itemId not found");
    Sv.skuId = wv == null ? void 0 : wv.itemId, uv(Sv, _v);
  }, pv = () => {
    cv(!1);
  }, yv = (Sv, _v) => () => {
    var Ev, wv;
    document.pictureInPictureElement ? document.exitPictureInPicture() : (wv = (Ev = _v == null ? void 0 : _v.current) == null ? void 0 : Ev.requestPictureInPicture) == null || wv.call(Ev), sessionStorage.setItem("deleteSession", "yes"), window.open(Sv.pdpLink, "_blank"), setTimeout(() => sessionStorage.removeItem("deleteSession"), 300);
  };
  return reactExports.useEffect(() => {
    var wv;
    const Sv = `${publicUrls.wssPersonal}?channel=${iv}`, _v = new WebSocket(Sv);
    _v.onerror = () => {
      _v.close();
    }, _v.onmessage = (xv) => {
      const { action: Cv, productId: Av, showProduct: Ov } = JSON.parse(xv.data);
      Cv === "sendProduct" && (Ov && rv ? productService.get(Av).then((Lv) => {
        av(Lv), lv(!0);
      }).catch((Lv) => logger$1.error(Lv)) : (av(void 0), lv(!1)));
    };
    const Ev = (wv = tv == null ? void 0 : tv.Highlight) == null ? void 0 : wv.productId;
    return Ev && rv && productService.get(Ev).then((xv) => {
      av(xv), lv(!0);
    }).catch((xv) => logger$1.error(xv)), () => {
      _v.close();
    };
  }, []), {
    product: ov,
    activeHighlight: sv,
    quickViewSettings: {
      variationThumbnailName: ev
    },
    handlePressAdd: dv,
    handlePressAddWithVar: hv,
    handlePressBack: pv,
    handlePressPdp: yv
  };
}, useMeetingHandlers = () => {
  const { navigate: rv } = useNavigation(), { showToast: tv } = useToastNotification(), { t: ev } = useTranslation("translation", { keyPrefix: "client-call" }), { clearClientConnectionSt: iv } = useClientConnectionSt(), ov = useAtomValue(connectionInfoAtom), av = useAtomValue(clientInfoAtom), sv = reactExports.useMemo(
    () => meetProvidersFactory.createMeeting(),
    []
  ), [lv, uv] = useAtom(
    AttendeesConnectedAtom
  ), cv = (pv, yv) => {
    if (!yv) {
      uv(
        (Sv) => Sv.filter((_v) => _v.id !== pv)
      );
      return;
    }
    tv(ev("newUserConnected")), clientCallRepository.getAttendeeInfo(ov.title, pv).then((Sv) => {
      var wv;
      const _v = meetProvidersFactory.getJoinInfo(), Ev = ((wv = _v == null ? void 0 : _v.Attendee) == null ? void 0 : wv.AttendeeId) === Sv.id;
      uv((xv) => xv.some((Cv) => Cv.id === Sv.id) ? xv : [...xv, { ...Sv, isLocal: Ev }]);
    });
  }, dv = reactExports.useCallback(() => {
    try {
      sv.join(cv);
    } catch (pv) {
      console.error(pv);
    }
  }, []), hv = reactExports.useCallback(() => {
    sv.leave(), iv(), uv([]), rv(Screens.nps);
  }, [sv]);
  return reactExports.useEffect(() => (sv.addStatusObserver((pv) => {
    pv === "FINALIZED" && hv();
  }), () => sv.removeStatusObserver()), [hv, sv]), reactExports.useEffect(() => {
    (async () => {
      const { status: yv } = await clientCallRepository.get(av.id);
      yv === "FINALIZED" && hv();
    })();
  }, []), {
    handleLeaveMeet: hv,
    handleStartMeet: dv,
    attendeesConnectedNum: lv.length
  };
}, modal = "_modal_1sbfu_3", closeButton = "_closeButton_1sbfu_20", containerAudioVideo = "_containerAudioVideo_1sbfu_41", container$1 = "_container_1sbfu_41", controlBar = "_controlBar_1sbfu_59", audioVideo$1 = "_audioVideo_1sbfu_69", rightSide = "_rightSide_1sbfu_78", chat = "_chat_1sbfu_89", moreOption$1 = "_moreOption_1sbfu_96", highlight$1 = "_highlight_1sbfu_104", notification$1 = "_notification_1sbfu_111", opacityShow$1 = "_opacityShow_1sbfu_1", quickViewContent$1 = "_quickViewContent_1sbfu_133", styles$5 = {
  modal,
  closeButton,
  containerAudioVideo,
  container: container$1,
  controlBar,
  audioVideo: audioVideo$1,
  rightSide,
  chat,
  moreOption: moreOption$1,
  highlight: highlight$1,
  notification: notification$1,
  opacityShow: opacityShow$1,
  quickViewContent: quickViewContent$1
}, FullScreenLayout = ({
  audioVideo: rv,
  chat: tv,
  highlight: ev,
  notification: iv,
  controlBar: ov,
  quickView: av,
  onPressClose: sv
}) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.modal, children: [
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.closeButton, onClick: sv, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Close Expand View" }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(CloseButton, { onPress: sv })
  ] }),
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.containerAudioVideo, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.audioVideo, children: rv }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      Show,
      {
        when: tv.showWhen || ev.showWhen || iv.showWhen,
        children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.rightSide, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsxs(Show, { when: !av.showWhen, children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: tv.showWhen, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.chat, children: tv.component }) }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: ev.showWhen, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.highlight, children: ev.component }) }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: iv.showWhen, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.notification, children: iv.component }) })
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: av.showWhen, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.quickViewContent, children: av.component }) })
        ] })
      }
    )
  ] }),
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.controlBar, children: ov })
] }), container = "_container_1kw7z_1", audioVideo = "_audioVideo_1kw7z_11", moreOption = "_moreOption_1kw7z_19", highlight = "_highlight_1kw7z_27", notification = "_notification_1kw7z_33", opacityShow = "_opacityShow_1kw7z_1", quickViewContent = "_quickViewContent_1kw7z_55", styles$4 = {
  container,
  audioVideo,
  moreOption,
  highlight,
  notification,
  opacityShow,
  quickViewContent
}, WidgetLayout = ({
  audioVideo: rv,
  chat: tv,
  highlight: ev,
  notification: iv,
  controlBar: ov,
  quickView: av,
  maximized: sv,
  onToggleMaximized: lv
}) => {
  const uv = reactExports.useRef(null), cv = useAtomValue(isVariationSelectorOpenAtom), dv = !tv.showWhen && ev.showWhen, [hv, pv] = useAtom(cornerAtom), yv = getDeviceType() === "mobile";
  reactExports.useEffect(() => {
    hv === -1 && pv(yv ? CornerType.BottomLeft : CornerType.BottomRight);
  }, [hv, pv, yv]);
  let Sv = tv.showWhen ? CHAT_HEIGHT : !tv.showWhen && (dv || iv.showWhen) ? HIGHLIGHT_HEIGHT : NORMAL_HEIGHT;
  return Sv = cv ? QUICK_VIEW_HEIGHT : Sv, /* @__PURE__ */ jsxRuntimeExports.jsx(
    Container,
    {
      draggable: !yv,
      closeOption: !cv,
      corner: hv,
      setCorner: pv,
      maximized: sv,
      onPressMaximize: () => lv == null ? void 0 : lv(!0),
      children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
        FloatingLayout,
        {
          hideHeader: !0,
          removePadding: !0,
          widthFitContent: !0,
          draggable: !yv,
          grow: Sv,
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs(
              "div",
              {
                className: styles$4.container,
                style: { display: cv ? "none" : "block" },
                children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$4.audioVideo, children: [
                    rv,
                    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: uv, className: styles$4.moreOption })
                  ] }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: tv.showWhen, children: tv.component }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: ev.showWhen, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$4.highlight, children: ev.component }) }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: iv.showWhen, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$4.notification, children: iv.component }) }),
                  ov
                ]
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(Show, { when: av.showWhen, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$4.quickViewContent, children: av.component }) })
          ]
        }
      )
    }
  );
}, ErrorBoundaryContext = reactExports.createContext(null), initialState = {
  didCatch: !1,
  error: null
};
class ErrorBoundary extends reactExports.Component {
  constructor(tv) {
    super(tv), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = initialState;
  }
  static getDerivedStateFromError(tv) {
    return {
      didCatch: !0,
      error: tv
    };
  }
  resetErrorBoundary() {
    const {
      error: tv
    } = this.state;
    if (tv !== null) {
      for (var ev, iv, ov = arguments.length, av = new Array(ov), sv = 0; sv < ov; sv++)
        av[sv] = arguments[sv];
      (ev = (iv = this.props).onReset) === null || ev === void 0 || ev.call(iv, {
        args: av,
        reason: "imperative-api"
      }), this.setState(initialState);
    }
  }
  componentDidCatch(tv, ev) {
    var iv, ov;
    (iv = (ov = this.props).onError) === null || iv === void 0 || iv.call(ov, tv, ev);
  }
  componentDidUpdate(tv, ev) {
    const {
      didCatch: iv
    } = this.state, {
      resetKeys: ov
    } = this.props;
    if (iv && ev.error !== null && hasArrayChanged(tv.resetKeys, ov)) {
      var av, sv;
      (av = (sv = this.props).onReset) === null || av === void 0 || av.call(sv, {
        next: ov,
        prev: tv.resetKeys,
        reason: "keys"
      }), this.setState(initialState);
    }
  }
  render() {
    const {
      children: tv,
      fallbackRender: ev,
      FallbackComponent: iv,
      fallback: ov
    } = this.props, {
      didCatch: av,
      error: sv
    } = this.state;
    let lv = tv;
    if (av) {
      const uv = {
        error: sv,
        resetErrorBoundary: this.resetErrorBoundary
      };
      if (typeof ev == "function")
        lv = ev(uv);
      else if (iv)
        lv = reactExports.createElement(iv, uv);
      else if (ov === null || reactExports.isValidElement(ov))
        lv = ov;
      else
        throw sv;
    }
    return reactExports.createElement(ErrorBoundaryContext.Provider, {
      value: {
        didCatch: av,
        error: sv,
        resetErrorBoundary: this.resetErrorBoundary
      }
    }, lv);
  }
}
function hasArrayChanged() {
  let rv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], tv = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
  return rv.length !== tv.length || rv.some((ev, iv) => !Object.is(ev, tv[iv]));
}
const ClientCallScreen = () => {
  const [rv, tv] = reactExports.useState(!1), [ev, iv] = reactExports.useState(!0), [ov, av] = reactExports.useState(!1), sv = useAtomValue(isVariationSelectorOpenAtom), lv = useAtomValue(addToCartNotificationAtom), uv = useSetAtom(initialScreenAtom), cv = useMeetingHandlers(), dv = useAudioVideoHandlers(), hv = useHighlightHandlers(), pv = useChatHandlers(), yv = reactExports.useRef(null), Sv = usePerant((Lv) => {
    var jv;
    return (jv = Lv.account) == null ? void 0 : jv.b2b;
  }), _v = !pv.activeChat && hv.activeHighlight, Ev = !pv.activeChat && lv, wv = () => tv(!rv), xv = (Lv) => () => {
    av(Lv), dv.handleExpandView();
  };
  reactExports.useEffect(() => {
    uv(Screens.clientCall);
    const Lv = setTimeout(async () => {
      cv.handleStartMeet(), await dv.handleInitAudioVideo();
    }, 500);
    return () => window.clearTimeout(Lv);
  }, []);
  const Cv = (Lv) => /* @__PURE__ */ jsxRuntimeExports.jsx(
    PersonalChat,
    {
      fullScreenMode: ov,
      messages: pv.messages,
      onSendMessage: pv.handleSendMessage,
      hasErrorWithUploady: Lv
    }
  ), Av = () => /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary, { FallbackComponent: () => Cv(!0), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Uploady, { autoUpload: !1, children: Cv(!1) }) }), Ov = ov ? FullScreenLayout : WidgetLayout;
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Ov,
    {
      maximized: ev,
      onToggleMaximized: (Lv) => iv(Lv),
      onPressClose: xv(!1),
      audioVideo: /* @__PURE__ */ jsxRuntimeExports.jsx(
        PersonalAudioVideo,
        {
          audioRef: dv.audioRef,
          videoRef: dv.videoRef,
          selfVideoRef: dv.selfVideoRef,
          attendeeInfo: dv == null ? void 0 : dv.currentAvatarAttendee,
          hasMultipleAttendee: cv.attendeesConnectedNum,
          onPressPip: dv.handlePressPic,
          onPressNext: dv.handlePressNext,
          onPressClose: () => iv(!1),
          showExpandViewButton: dv.isSharingScreen,
          expandViewMode: ov,
          onPressExpandView: xv(!0)
        }
      ),
      chat: {
        showWhen: pv.activeChat,
        component: Av()
      },
      highlight: {
        showWhen: _v && !!hv.product && !lv,
        component: /* @__PURE__ */ jsxRuntimeExports.jsx(
          ProductHighlight,
          {
            hidePrice: Sv,
            product: hv.product,
            onPressAdd: hv.handlePressAdd,
            onPressImage: hv.handlePressPdp(
              hv.product,
              dv.videoRef
            )
          }
        )
      },
      notification: {
        showWhen: !!Ev,
        component: /* @__PURE__ */ jsxRuntimeExports.jsx(Notification, { ...lv })
      },
      controlBar: /* @__PURE__ */ jsxRuntimeExports.jsx(
        ControlsBar,
        {
          micCameraHandler: dv,
          chatHandler: pv,
          moreHandler: { activeMore: rv, handlePressMore: wv, moreRef: yv },
          onPresEndCall: cv.handleLeaveMeet
        }
      ),
      quickView: {
        showWhen: sv && hv.product !== void 0,
        component: /* @__PURE__ */ jsxRuntimeExports.jsx(
          ProductQuickView,
          {
            hidePrice: Sv,
            product: hv.product,
            onPressAdd: hv.handlePressAddWithVar,
            onPressBack: hv.handlePressBack,
            settings: hv.quickViewSettings
          }
        )
      }
    }
  );
}, content$2 = "_content_1f7ou_1", overlap$2 = "_overlap_1f7ou_9", styles$3 = {
  content: content$2,
  overlap: overlap$2
}, InformationScreen = () => {
  const { reset: rv, getParameter: tv } = useNavigation(), { setDefaultScreen: ev } = useGetInitialScreen(), { t: iv } = useTranslation("translation", { keyPrefix: "call-request" }), ov = () => {
    ev(), rv();
  }, av = tv("title") !== "" ? tv("title") : iv("title"), sv = tv("details") !== "" ? tv("details") : iv("advisorsNotAvailable");
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(FloatingLayout, { children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${styles$3.content} ${styles$3.overlap}`, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Headline", children: av }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body", children: sv })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(ActionButton, { text: iv("close"), onPress: ov })
  ] });
}, schema = create$3().shape({
  comments: create$6()
}), useNpsHandlers = () => {
  const { clearState: rv } = useStateHandler(), { setDefaultScreen: tv } = useGetInitialScreen(), [ev, iv] = reactExports.useState(0), ov = useAtomValue(clientInfoAtom), { navigate: av, reset: sv } = useNavigation(), { register: lv, handleSubmit: uv, formState: cv } = useForm({
    resolver: o(schema),
    mode: "onChange"
  }), { t: dv } = useTranslation("translation", { keyPrefix: "nps-end" }), hv = async (wv) => {
    try {
      const xv = {
        qualification: ev,
        comment: wv.comments !== "" ? wv.comments : "none",
        fullName: ov.fullName,
        id: ov.id,
        email: ov.email,
        sessionId: ov.id
      };
      await netPromoterScoreRepository.save(xv), av(Screens.information, {
        title: dv("title"),
        details: dv("details")
      });
    } catch (xv) {
      logger$1.error(xv), av(Screens.information);
    } finally {
      rv();
    }
  }, pv = () => {
    rv(), tv(), sv();
  }, { isSubmitting: yv, errors: Sv, isDirty: _v, isValid: Ev } = cv;
  return {
    register: lv,
    formState: cv,
    errors: Sv,
    disableSubmit: !_v || !Ev || yv,
    rateChosen: ev,
    setRateChosen: iv,
    handleSubmit: uv(hv),
    handlePressClose: pv
  };
}, content$1 = "_content_nmfo4_1", header$1 = "_header_nmfo4_5", overlap$1 = "_overlap_nmfo4_16", form$1 = "_form_nmfo4_20", description$1 = "_description_nmfo4_24", rateChooserContainer = "_rateChooserContainer_nmfo4_28", bottom = "_bottom_nmfo4_33", styles$2 = {
  content: content$1,
  header: header$1,
  overlap: overlap$1,
  form: form$1,
  description: description$1,
  rateChooserContainer,
  bottom
}, NPSScreen = () => {
  const [rv, tv] = reactExports.useState(0), ev = useNpsHandlers(), { t: iv } = useTranslation("translation", { keyPrefix: "nps" }), ov = () => {
    ev.setRateChosen(rv);
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsx(FloatingLayout, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${styles$2.content} ${styles$2.overlap}`, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$2.header, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Headline", children: iv("sessionCompletedTitle") }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body", className: styles$2.description, children: iv("sessionCompletedBody") }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: ev.handleSubmit, className: styles$2.form, children: [
      ev.rateChosen === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$2.rateChooserContainer, children: /* @__PURE__ */ jsxRuntimeExports.jsx(RateChooser, { maxRate: 5, value: rv, onChange: tv }) }),
      ev.rateChosen > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
        FieldInput,
        {
          label: iv("comments"),
          name: "comments",
          register: ev.register
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$2.bottom, children: [
        ev.rateChosen === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
          ActionButton,
          {
            text: iv("submit"),
            type: "button",
            disabled: rv === 0,
            onPress: ov
          }
        ),
        ev.rateChosen > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ActionButton, { text: iv("finish"), type: "submit" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          ActionButton,
          {
            text: iv("skip"),
            type: "submit",
            variant: "Secondary",
            onPress: ev.handlePressClose
          }
        )
      ] })
    ] })
  ] }) });
}, useJoinCallForm = () => {
  const { t: rv } = useTranslation("translation", {
    keyPrefix: "form-validations"
  }), tv = create$3().shape({
    name: create$6().required(rv("nameRequired"))
  }).required(), { register: ev, handleSubmit: iv, formState: ov } = useForm({
    resolver: o(tv),
    mode: "onChange"
  }), { isSubmitting: av, errors: sv, isDirty: lv, isValid: uv } = ov;
  return {
    register: ev,
    formState: ov,
    handleSubmit: iv,
    errors: sv,
    disableSubmit: !lv || !uv || av
  };
}, useJoinCallHandlers = () => {
  const { back: rv } = useNavigation(), { joinExistingCall: tv } = useJoinExistingCall();
  return {
    handlePressSubmit: async (ov) => {
      tv(ov);
    },
    handlePressBack: () => rv()
  };
}, content = "_content_1w52b_1", header = "_header_1w52b_5", overlap = "_overlap_1w52b_21", form = "_form_1w52b_25", description = "_description_1w52b_29", styles$1 = {
  content,
  header,
  overlap,
  form,
  description
}, JoinCallScreen = () => {
  var lv;
  const { register: rv, handleSubmit: tv, errors: ev, disableSubmit: iv } = useJoinCallForm(), { handlePressSubmit: ov } = useJoinCallHandlers(), av = getDeviceType() === "mobile", { t: sv } = useTranslation("translation", { keyPrefix: "join-call" });
  return reactExports.useEffect(() => (av && setViewportScale(!1), () => {
    av && setViewportScale(!0);
  }), [av]), /* @__PURE__ */ jsxRuntimeExports.jsx(FloatingLayout, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${styles$1.content} ${styles$1.overlap}`, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$1.header, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "BigTitle", children: sv("joinCallTitle") }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { type: "Body", className: styles$1.description, children: `${sv("joinCallBody")}.` }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs(
      "form",
      {
        onSubmit: tv(ov),
        className: styles$1.form,
        children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            FieldInput,
            {
              label: sv("name"),
              name: "name",
              register: rv,
              error: (lv = ev.name) == null ? void 0 : lv.message
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            ActionButton,
            {
              disabled: iv,
              text: sv("startCall"),
              type: "submit"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(ActionButton, { text: sv("cancel"), variant: "Secondary" })
        ]
      }
    )
  ] }) });
}, Routes = ({ onReset: rv, initialScreen: tv }) => (useAddToCartEventListener(), tv && /* @__PURE__ */ jsxRuntimeExports.jsxs(ScreenNavigator, { initialScreen: tv, onReset: rv, children: [
  /* @__PURE__ */ jsxRuntimeExports.jsx(Screen, { name: Screens.options, component: /* @__PURE__ */ jsxRuntimeExports.jsx(AssistantOptionsScreen, {}) }),
  /* @__PURE__ */ jsxRuntimeExports.jsx(Screen, { name: Screens.callRequest, component: /* @__PURE__ */ jsxRuntimeExports.jsx(CallRequestScreen, {}) }),
  /* @__PURE__ */ jsxRuntimeExports.jsx(Screen, { name: Screens.callWait, component: /* @__PURE__ */ jsxRuntimeExports.jsx(CallWaitScreen, {}) }),
  /* @__PURE__ */ jsxRuntimeExports.jsx(Screen, { name: Screens.information, component: /* @__PURE__ */ jsxRuntimeExports.jsx(InformationScreen, {}) }),
  /* @__PURE__ */ jsxRuntimeExports.jsx(Screen, { name: Screens.clientCall, component: /* @__PURE__ */ jsxRuntimeExports.jsx(ClientCallScreen, {}) }),
  /* @__PURE__ */ jsxRuntimeExports.jsx(
    Screen,
    {
      name: Screens.assistedSales,
      component: /* @__PURE__ */ jsxRuntimeExports.jsx(AssistedSalesScreen, {})
    }
  ),
  /* @__PURE__ */ jsxRuntimeExports.jsx(Screen, { name: Screens.nps, component: /* @__PURE__ */ jsxRuntimeExports.jsx(NPSScreen, {}) }),
  /* @__PURE__ */ jsxRuntimeExports.jsx(Screen, { name: Screens.joinCall, component: /* @__PURE__ */ jsxRuntimeExports.jsx(JoinCallScreen, {}) })
] })), Widget = () => {
  const { handleFlowStart: rv, handleFlowReset: tv } = useWidgetHandlers(), { showButton: ev, buttonIsLoading: iv, showScreens: ov, initialScreen: av } = useWidget();
  return useInjectAssistedSales(), console.info(`showButton: ${ev}, showScreens: ${ov}`), /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
    !ov && ev && /* @__PURE__ */ jsxRuntimeExports.jsx(FlowStartButton, { loading: iv, onPress: rv }),
    ov && /* @__PURE__ */ jsxRuntimeExports.jsx(Routes, { initialScreen: av, onReset: tv })
  ] });
}, AssistantFlow = () => /* @__PURE__ */ jsxRuntimeExports.jsx(JD, { enableVtexAdminUI: !1, enableJotaiDevTools: !1, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Widget, {}) }), __vite_glob_0_0 = "button._actionButton_6myfg_1{margin-top:10px;margin-bottom:10px;padding-top:10px;padding-bottom:10px;width:100%;border-radius:6.48px;font-weight:400;font-size:15;height:46px}button._Primary_6myfg_13{background:#fff;color:#000}button._Secondary_6myfg_18{background:transparent;color:#595959;font-size:15px;font-weight:400;line-height:20px;letter-spacing:.01em;margin-top:0}button._Terceira_6myfg_28{background:#647988;color:#fff;font-size:15px;font-weight:400;line-height:20px;letter-spacing:.01em;margin:0}button._Secondary_6myfg_18:disabled{background:#dfdfdf;color:#7c7c7c}button._Primary_6myfg_13:disabled,button._Terceira_6myfg_28:disabled{background:#d9d9d9;color:#898a8d}button._actionButton_6myfg_1:hover{box-shadow:0 0 10px 3px #56617a80;box-shadow:0 0 0 1px #e2e2e2}", __vite_glob_0_1 = '._videoContainer_ti5za_1{width:100px;height:100px;overflow:hidden;border-radius:50%;border:2px solid white}._circularVideo_ti5za_9{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:50%}div._displayNone_ti5za_16{display:none}div._micIcon_ti5za_20{z-index:20;margin:3px}div._container_ti5za_25{display:grid;grid-template-areas:"messagearea";width:100px;height:100px}div._container_ti5za_25>*{grid-area:messagearea}div._userNameContainer_ti5za_36{z-index:3;display:flex;align-items:flex-end;justify-content:center;padding:10px}', __vite_glob_0_2 = "._closeButton_1ke3h_1{height:25px;color:#747474}", __vite_glob_0_3 = "._flowStartButton_o7yax_1{background:#a49e9e;box-shadow:2.25px 3px 24px #0000008a;-webkit-backdrop-filter:blur(70px);backdrop-filter:blur(70px);border-radius:100px;width:60px;height:60px;display:flex;align-items:center;justify-content:center;position:fixed;bottom:20px;right:20px;z-index:9999}", __vite_glob_0_4 = "div._content_11385_1{border:1px solid;border-image-source:linear-gradient(156.52deg,rgba(255,255,255,.4) 2.12%,rgba(255,255,255,.0001) 39%,rgba(255,255,255,.0001) 54.33%,rgba(255,255,255,.1) 93.02%);background:#80808099;background-blend-mode:luminosity;width:74px;height:74px;gap:5px;border-radius:37px;display:flex;justify-content:center;align-items:center;flex-direction:column;cursor:pointer}div._content_11385_1>span{color:#fff;font-size:10px}", __vite_glob_0_5 = "._button_1ndxo_1{cursor:pointer}._closeButton_1ndxo_5{height:25px}", __vite_glob_0_6 = "._main_5vb9n_1{display:flex;justify-content:space-between;align-items:center;gap:4px;padding:.4rem;background:#ffffff45;border:1px solid #e8e7e842;border-radius:4px}._isSelf_5vb9n_12{background:#0000000d!important}._content_5vb9n_16,._fileIcon_5vb9n_17,._downloadButton_5vb9n_18{display:flex;align-items:center;justify-content:center}._content_5vb9n_16{display:flex;width:88%;justify-content:flex-start;gap:2px}._name_5vb9n_31{width:85%}._name_5vb9n_31 span{width:100%;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:#545454;margin:2px 0 0;font-size:14px}._fileIcon_5vb9n_17 svg,._downloadButton_5vb9n_18 svg{width:100%;border-radius:8px}._fileIcon_5vb9n_17{width:10%;border-radius:8px;margin-right:4px}._downloadButton_5vb9n_18{border-radius:50%;background:#00000021;width:25px;height:25px;cursor:pointer;display:flex;align-items:center;padding-top:3px;justify-content:center}", __vite_glob_0_7 = "div._minimizeicon_1jgcg_1{width:59px;height:3px;border-radius:20px;background:#5f5f5f}._container_1jgcg_8{height:30px}", __vite_glob_0_8 = "button._numberButton_1hwlt_1{margin-top:10px;margin-bottom:10px;padding-top:10px;padding-bottom:10px;border-radius:6.48px;font-weight:400;font-size:15;height:36px;width:36px;background:#fff3;color:#5a5a5a}button._numberButton_1hwlt_1._chosen_1hwlt_15{background:#fff;border:1px solid;border-image-source:linear-gradient(153.13deg,#9fcced -15.84%,rgba(196,196,196,.448798) 78.67%,rgba(96,96,96,0) 155.61%);color:#000}button._numberButton_1hwlt_1:hover{box-shadow:0 0 10px 3px #56617a80;box-shadow:0 0 0 1px #e2e2e2}", __vite_glob_0_9 = "div._variationItem_1ri1m_1{min-width:30px;height:30px;background:#e8e8e8;border-radius:15px;align-items:center;display:flex;padding:10px;cursor:pointer}div._variationItemSelected_1ri1m_12{background:#3c474e}div._variationColor_1ri1m_16{width:30px;height:30px;border-radius:15px}div._variationColorSelected_1ri1m_22{border:2px solid #3c474e;padding:2px}._variationColor_1ri1m_16{display:flex;justify-content:center;align-items:center;overflow:hidden;width:30px;height:30px;border-radius:15px}", __vite_glob_0_10 = "._spinner_1c0ad_1{display:inline-block;border:solid 1px rgba(0,0,0,.1);border-top-color:#fff;border-radius:50%;animation:_spin_1c0ad_1 1s linear infinite}@keyframes _spin_1c0ad_1{to{transform:rotate(360deg)}}", __vite_glob_0_11 = "p._BigTitle_ve1pr_1{color:#000;font-size:18px;font-weight:400;line-height:20px;text-align:left}p._Headline_ve1pr_10{font-size:15px;font-weight:500;line-height:20px;letter-spacing:.01em;color:#000}p._Body_ve1pr_18{font-size:14px;font-weight:400;line-height:20px;letter-spacing:.01em;color:#545454}p._Body2_ve1pr_26{color:#000;font-weight:400;font-size:14px}p._Notification_ve1pr_32{color:#fff;font-weight:400;font-size:16px}p._BodyItem_ve1pr_39{color:#545454;font-weight:400;font-size:14px}p._Caption_ve1pr_46{color:#818181;font-weight:400;font-size:13px}p._MiddleCaption_ve1pr_52{color:#767676;font-weight:400;font-size:12px}p._SmallCaption_ve1pr_58{color:#767676;font-weight:400;font-size:10px}p._Caption_ve1pr_46 a{color:#494949}", __vite_glob_0_12 = "._itemWrapper_rjdm2_1{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem;background:#ffffff45;border:1px solid #e8e7e842;border-radius:4px}._statusIcon_rjdm2_12{max-width:26px}._statusIcon_rjdm2_12 svg{border-radius:7px;width:100%}._itemName_rjdm2_21{width:100%;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:#545454;margin:2px 0 0;font-size:14px}._success_rjdm2_34{color:green}._error_rjdm2_38{color:red}._deleteButton_rjdm2_42{max-width:26px;border-radius:50%;background:#00000021;cursor:pointer;display:flex;align-items:center;padding:5px;justify-content:center;color:#fff}._deleteButton_rjdm2_42 svg{width:100%;height:auto}", __vite_glob_0_13 = "._itemProgress_1v2v0_1{display:flex;align-items:center}", __vite_glob_0_14 = "._buttonShowFloating_173yi_1{position:fixed;height:120px;z-index:999999}._TopLeft_173yi_7{top:80px;left:0}._TopRight_173yi_12{top:80px;right:0}._BottomLeft_173yi_17{bottom:80px;left:0}._BottomRight_173yi_22{bottom:80px;right:0}._buttonShowFloating_173yi_1 ._buttonImageCustom_173yi_27{position:relative}._buttonShowFloating_173yi_1 ._buttonImageCustom_173yi_27 ._iconLeft_173yi_31{position:absolute;top:38%;left:20%}", __vite_glob_0_15 = 'div._container_1pmtx_1{display:grid;grid-template-areas:"messagearea";cursor:pointer}div._container_1pmtx_1>*{grid-area:messagearea}div._counterContainer_1pmtx_11{display:flex;justify-content:flex-end}._counter_1pmtx_11{text-align:center;align-items:center;font-size:10px;display:flex;justify-content:center;background-color:#ff4c4c;border:1px solid #fff;width:20px;height:20px;border-radius:10px}', __vite_glob_0_16 = '._container_1bg01_1{display:block;position:relative;padding-left:30px;margin-bottom:12px;margin-top:12px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-left:-3px}._container_1bg01_1 input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}._checkmark_1bg01_25{position:absolute;top:0;left:0;height:15px;width:15px;background-color:#eee;border-radius:2px;border:solid 1px #bdbdbd}._container_1bg01_1:hover input~._checkmark_1bg01_25{background-color:#ccc}._checkmark_1bg01_25:after{content:"";position:absolute;display:none}._container_1bg01_1 input:checked~._checkmark_1bg01_25:after{display:block}._container_1bg01_1 ._checkmark_1bg01_25:after{left:5px;top:2px;width:5px;height:10px;border:solid #000;border-width:0 3px 3px 0;transform:rotate(45deg)}._container_1bg01_1 input:checked~._checkmark_1bg01_25{background-color:#fff}._container_1bg01_1 input._black_1bg01_71:checked~._checkmark_1bg01_25:after{border:solid #000;border-width:0 3px 3px 0}', __vite_glob_0_17 = "._containerVideoFloating_1rpt1_1{position:fixed;z-index:9999}._closeButton_1rpt1_6{position:absolute;top:15px;left:14px;z-index:99999}._closeButtonMobile_1rpt1_13{position:fixed;bottom:345px;left:40px;z-index:99999}._closeButton_1rpt1_6 svg{width:24px;height:24px;color:#fff!important}._closeButtonMobile_1rpt1_13 svg{width:24px;height:24px;color:#fff!important}", __vite_glob_0_18 = '._label_1h2hh_1{display:grid;width:100%;grid-template-areas:"input";margin-top:15px;align-items:center}._label_1h2hh_1>*{grid-area:input}span._placeholder_1h2hh_13{transform-origin:left;transition:transform .3s,color .3s;color:#545454;font-size:14px;margin-left:0;margin-bottom:5px}input._fieldInput_1h2hh_22{background:none;border:0px;border-bottom:1px solid #545454;border-radius:0;width:100%;color:#000;font-size:14px;font-weight:400;padding:0 0 0 5px}input._fieldInput_1h2hh_22:focus{background:none;border:0px;border-bottom:2px solid #ffffff;padding:0 0 0 5px}input._fieldInput_1h2hh_22:not(:-moz-placeholder-shown)+._placeholder_1h2hh_13{transform:translateY(-100%) scale(.8)}input._fieldInput_1h2hh_22:focus+._placeholder_1h2hh_13,input._fieldInput_1h2hh_22:not(:placeholder-shown)+._placeholder_1h2hh_13{transform:translateY(-100%) scale(.8)}input._error_1h2hh_48{border-bottom:2px solid #cc3d3d}span._error_1h2hh_48{color:#cc3d3d;padding-top:3px;margin:0;font-size:12px;font-weight:400;line-height:16px;letter-spacing:.004em}', __vite_glob_0_19 = "._container_1i9wr_1{display:flex;flex-direction:column;justify-content:space-between;align-content:center;width:158px;overflow:hidden;align-self:center;max-height:200px}._imagesContainer_1i9wr_12{display:flex;overflow:hidden}._carouselImages_1i9wr_17{display:flex;transition:.3s ease-in-out}._carouselImage_1i9wr_17{width:158px}._dotsContainer_1i9wr_28{display:flex;justify-content:center;align-items:center;padding-top:10px}._dot_1i9wr_28{width:6px;height:6px;background-color:#888;border-radius:50%;margin:0 5px;cursor:pointer}._active_1i9wr_44{background-color:#333}", __vite_glob_0_20 = "button._itemButton_1nck6_1{background:#fff;margin-top:15px;margin-bottom:15px;padding:10px;border-radius:8px;color:#000;font-weight:400;font-size:15;width:100%;min-width:275px;display:flex;flex-direction:row;justify-content:space-between;align-items:center;min-height:88px;transition:all ease .5s}div._content_1nck6_20{display:flex;flex-direction:row;justify-content:flex-start;align-items:center}div._text_1nck6_27{display:flex;flex-direction:column;align-items:flex-start;margin-left:10px;text-align:left;line-height:1.4}", __vite_glob_0_21 = "._list_gcisw_1{width:100%;margin-top:.8rem;display:flex;flex-direction:column;gap:.5rem}", __vite_glob_0_22 = "div._form_xf27y_1{background-color:#414141;padding:10px}div._form_xf27y_1>form{display:flex;flex-direction:row;justify-content:space-between;background-color:#292424b2;align-items:center;border-bottom-left-radius:8px;border-bottom-right-radius:8px;padding-left:5px;padding-right:5px}div._form_xf27y_1>form>input{width:90%;color:#fff;background-color:#29242400;padding:.75rem}div._form_xf27y_1>form>input:focus{outline:none;border:none}div._form_xf27y_1>form>button:nth-last-child(1){margin-right:1rem}", __vite_glob_0_23 = "div._message_9wf6j_1{display:flex;flex-direction:column;align-items:flex-start;border-radius:3px;padding:8px;background-color:#ffffffe5}div._messageAdvisor_9wf6j_10{background:#00000026}div._messageHeader_9wf6j_14{display:flex;flex-direction:row;align-items:center;align-content:center;justify-content:flex-start;gap:5px}", __vite_glob_0_24 = "div._container_vbu0x_1{display:flex;flex-direction:column;justify-content:space-between;background:#fff;border-radius:8px;height:100%;padding:15px}div._content_vbu0x_11{display:flex;flex-direction:column;justify-content:flex-start}div._productContent_vbu0x_17{display:flex;flex-direction:column;gap:10px}div._priceInformation_vbu0x_23{display:flex;flex-direction:row;gap:5px;align-items:center}div._priceInformation_vbu0x_23 p:first-child{text-decoration:line-through}div._productVariationContent_vbu0x_34{display:flex;flex-direction:column;gap:20px;padding-top:15px}div._actions_vbu0x_41{display:flex;flex-direction:row;align-items:center;gap:5px}div._moreless_vbu0x_48{display:flex;padding:10px;justify-content:space-between;align-items:center;gap:20px;border:.49px;border:.49px solid #bbbbbb;height:45px}", __vite_glob_0_25 = "div._container_15z9s_1{display:flex;flex-direction:row;justify-content:center;align-items:center;border-radius:8px;height:74px;box-shadow:0 7px 18px #ffffffd4;box-shadow:0 -1px 10px 7px #ffffff36;gap:10px;opacity:1}._container_15z9s_1>*{color:#505152!important}", __vite_glob_0_26 = "div._productVariation_dgadh_1{display:flex;flex-direction:column;gap:10px}div._variationItems_dgadh_7{display:flex;flex-direction:row;gap:10px}", __vite_glob_0_27 = "div._container_6f322_1{display:flex;justify-content:center;align-items:center;flex-direction:column}div._rates_6f322_8,div._legends_6f322_17{display:flex;flex-direction:row;gap:25px;justify-content:space-between;align-items:center;width:100%}", __vite_glob_0_28 = "div._container_bny18_1{border-radius:4px;background:#1f1f1f;padding:5px;width:150px;text-align:center}", __vite_glob_0_29 = "._listContainer_1asj5_1{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;margin-top:20px}._disabled_1asj5_9{display:none!important}", __vite_glob_0_30 = "div._content_nzs7h_1{display:flex;justify-content:center;background-color:#131313d1;padding:10px;height:72px;border-radius:0 0 9px 9px;border-bottom:1px solid #00000052}div._content_nzs7h_1>button{padding-left:5px;padding-right:5px}div._moreButtonsBar_nzs7h_16{background:#f1f1f133;box-shadow:0 4px 4px #00000040;box-shadow:0 -1px 4px #00000040;display:flex;align-items:center;padding:0 8px 8px;width:-moz-fit-content;width:fit-content;border-radius:8px;flex-direction:row;height:60px;margin-bottom:3px;align-self:center}@media only screen and (max-width: 600px){div._content_nzs7h_1{border-radius:0}}", __vite_glob_0_31 = 'div._content_pwtyq_1{margin:0 auto;width:100%;height:100%;border-radius:10px;background-color:#131313;display:grid;grid-template-areas:"videoarea"}div._desktopHight_pwtyq_11{height:100%}div._mobileHight_pwtyq_15{height:302px}div._content_pwtyq_1>*{grid-area:videoarea}div._audioVideoContent_pwtyq_23{margin:0 auto;height:302px;border-radius:10px;align-items:center;justify-content:center;display:flex}div._audioVideoContentFull_pwtyq_32{margin:0 auto;width:100%;border-radius:10px;align-items:center;justify-content:center;display:flex;overflow:hidden}div._audioVideoContentFull_pwtyq_32 video{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;border-radius:10px}div._audioVideoContent_pwtyq_23 video{height:100%;-o-object-fit:cover;object-fit:cover;border-radius:10px;width:365px}div._videAvatarContent_pwtyq_56{padding:10px;display:flex;align-items:flex-end;justify-content:flex-end;height:110px;align-self:end;z-index:9999}div._fullScreenButton_pwtyq_66{display:flex;align-items:center;justify-content:center;height:74px;align-self:center;z-index:9998;cursor:pointer}div._PicButtonContent_pwtyq_76{padding:10px;display:flex;justify-content:flex-end;z-index:15;align-items:flex-start}div._closeButton_pwtyq_84{z-index:15;margin-top:7px;margin-left:7px;width:24px;height:25px}._closeButton_pwtyq_84 svg{width:24px;height:24px;color:#fff!important}._toastContainer_pwtyq_98{display:flex;align-items:flex-start;justify-content:center;padding-top:10px}', __vite_glob_0_32 = "div._container_4ylet_1{display:flex;flex-direction:column;justify-content:flex-start;background:#a3a3a333;padding:10px;border-radius:4px;gap:5px;margin-left:10px;margin-right:10px;min-height:185px}div._containerFull_4ylet_14{height:100%}div._emptyText_4ylet_18{text-align:center;padding:10px}div._messagesList_4ylet_23{display:flex;flex-direction:column;justify-content:flex-start;border-top:1px solid #ffffff;line-height:1;gap:6px;padding-top:10px;max-height:140px;overflow:auto;animation:.2s ease-out 0s 1 _minimize_4ylet_1}div._messagesList_4ylet_23::-webkit-scrollbar{width:12px}div._messagesList_4ylet_23 ::-webkit-scrollbar-thumb{background-color:#888;border-radius:6px}div._messagesList_4ylet_23 ::-webkit-scrollbar-track{background-color:#f1f1f1}._disabled_4ylet_54{display:none!important}div._messagesList_4ylet_23{scrollbar-color:#888 #f1f1f1;scrollbar-width:thin}@keyframes _minimize_4ylet_1{0%{height:0px}to{height:180px}}@media only screen and (min-width: 600px){div._header_4ylet_78{display:none;visibility:hidden}}", __vite_glob_0_33 = "div._container_178fq_1{display:flex;flex-direction:row;justify-content:space-between;background:#f1f1f1cc;border-radius:8px;box-shadow:0 4px 4px #00000040;box-shadow:0 -1px 4px #00000040;height:74px}@keyframes _slideInFromLeft_178fq_1{0%{opacity:0}to{opacity:1}}div._container_178fq_1{opacity:1;animation:.8s ease-out 0s 1 _slideInFromLeft_178fq_1}div._content_178fq_28{display:flex;flex-direction:row;justify-content:flex-start}div._content_178fq_28 img{width:74px;max-height:100%;border-top-left-radius:8px;border-bottom-left-radius:8px}div._productContent_178fq_41{display:flex;flex-direction:column;padding:8px}div._priceInformation_178fq_47{display:flex;flex-direction:row;gap:5px;align-items:center}p._withoutDiscount_178fq_54{text-decoration:line-through}div._actions_178fq_58{display:flex;flex-direction:column-reverse;padding:8px 8px 8px 0}", __vite_glob_0_34 = "div._container_7p2jb_1{display:flex;flex-direction:column;justify-content:space-between;background:#fff;border-radius:8px;height:100%;padding:15px}div._content_7p2jb_11{display:flex;flex-direction:column;justify-content:center;gap:5px}div._productContent_7p2jb_18{display:flex;flex-direction:column;gap:10px}div._priceInformation_7p2jb_24{display:flex;flex-direction:row;gap:5px;align-items:center}p._withoutDiscount_7p2jb_31{text-decoration:line-through}div._productVariationContent_7p2jb_35{display:flex;flex-direction:column;gap:20px;padding-top:5px;max-height:145px;overflow:auto}div._productVariationContent_7p2jb_35::-webkit-scrollbar{width:6px}div._productVariationContent_7p2jb_35::-webkit-scrollbar-track{border-radius:10px}div._productVariationContent_7p2jb_35::-webkit-scrollbar-thumb{border-radius:10px;background:#d3d3d3}div._actions_7p2jb_62{padding-top:10px;display:flex;flex-direction:row;align-items:flex-end;gap:5px;justify-content:center}div._actions_7p2jb_62 p{padding:20px}div._moreless_7p2jb_74{display:flex;padding:10px;justify-content:space-between;align-items:center;gap:20px;border:.49px;border:.49px solid #bbbbbb;height:45px}", __vite_glob_0_35 = "@keyframes _slideInFromLeft_1yz95_1{0%{opacity:0}to{opacity:1}}div._show_1yz95_12>div{opacity:1;animation:.8s ease-out 0s 1 _slideInFromLeft_1yz95_1}", __vite_glob_0_36 = "._floatingModal_1bkfr_1{right:20px;bottom:40px;position:fixed;background:#e5eff499;-webkit-backdrop-filter:blur(70px);backdrop-filter:blur(70px);border-radius:10px;box-shadow:2.25px 3px 24px #0000008a;z-index:9999}._containerWithoutPadding_1bkfr_12{padding:0!important}div._container_1bkfr_12{display:flex;flex-direction:column;justify-content:space-between;padding:0 20px 10px}div._specificWidth_1bkfr_25{width:352px}div._containerWidthFitContent_1bkfr_29{width:-moz-fit-content;width:fit-content}@media only screen and (max-width: 600px){._floatingModal_1bkfr_1{right:0;bottom:0;border:1px white solid;width:100%;border-radius:12px 12px 0 0}div._container_1bkfr_12{width:100%}}div._header_1bkfr_47{display:flex;justify-content:flex-end;align-items:center;padding:10px 10px 0}", __vite_glob_0_37 = "div._header_1njrt_1{display:flex;justify-content:center;align-items:center}div._overlap_1njrt_7{margin-top:-30px}div._minContent_1njrt_12{animation:.2s ease-out 0s 1 _minimize_1njrt_1}div._fullContent_1njrt_17{min-height:250px}@keyframes _minimize_1njrt_1{0%{height:280px}to{height:50px}}@media only screen and (min-width: 600px){div._header_1njrt_1{display:none;visibility:hidden}}", __vite_glob_0_38 = 'div._content_9usmo_1{flex-grow:4;line-height:3}._containerVideoFloating_9usmo_6{display:grid;grid-column-gap:0px;grid-row-gap:0px;position:fixed;border-radius:10px;grid-template-areas:"title title close" "video video video" "playback . volume";background-color:#fff;z-index:1000000}._containerVideoFloating_9usmo_6:before{position:absolute;width:100%;height:100%;content:"";border-radius:10px}', __vite_glob_0_40 = "div._content_1w52b_1{flex-grow:4}div._header_1w52b_5{display:flex;justify-content:flex-start;align-items:center;height:25px}div._header_1w52b_5>*{padding-right:8px}input[type=checkbox]{width:10px;height:10px}div._overlap_1w52b_21{margin-top:-10px}._form_1w52b_25{gap:.8rem}._description_1w52b_29{margin:.5rem 0}", __vite_glob_0_41 = "div._header_1aiuf_1{display:flex;justify-content:center;align-items:center}div._overlap_1aiuf_7{margin-top:-30px}div._dots_1aiuf_11{background-image:url(/assets/widget/LoadingPS.gif);background-size:49px;background-repeat:no-repeat;width:50px;background-position:center}div._contentMin_1aiuf_19{display:flex;flex-direction:row;justify-content:center;align-items:center}div._contentMin_1aiuf_19>div._dots_1aiuf_11{padding:10px}div._contentMin_1aiuf_19>p{padding-left:10px}div._content_1aiuf_19{display:flex;flex-direction:column;flex-grow:3;justify-content:center;align-items:center;min-height:250px}div._content_1aiuf_19>div._dots_1aiuf_11{padding:30px}div._footer_1aiuf_47{display:flex;justify-content:center;align-items:center;padding-bottom:15px}div._footer_1aiuf_47>button{padding-left:5px;padding-right:5px}", __vite_glob_0_42 = "._modal_1sbfu_3{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000;align-items:center;z-index:999999;justify-content:center;display:flex;flex-direction:column}div._closeButton_1sbfu_20{align-self:flex-end;padding-right:30px;display:flex;flex-direction:row;color:#fff;opacity:1;gap:5px;align-items:center;font-size:14px;height:60px;min-height:60px;justify-content:center;cursor:pointer}div._closeButton_1sbfu_20>button{color:#fff}div._containerAudioVideo_1sbfu_41{background-color:#000;flex-grow:1;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:30px;width:100%;max-height:calc(100vh - 130px);padding-right:30px;padding-left:30px}div._container_1sbfu_41>div{height:100%}div._controlBar_1sbfu_59{display:flex;flex-direction:row;justify-content:space-around;align-items:center;gap:10px;height:72px;min-height:72px}div._audioVideo_1sbfu_69{display:flex;flex-direction:row;gap:10px;width:calc(100% - 385px);height:calc(100% - 82px)}div._rightSide_1sbfu_78{width:385px;flex-direction:column;height:calc(100% - 82px);background-color:#c7c7c7;border:1px solid;border-image-source:linear-gradient(156.52deg,rgba(255,255,255,.4) 2.12%,rgba(255,255,255,.0001) 39%,rgba(255,255,255,.0001) 54.33%,rgba(255,255,255,.1) 93.02%);border-radius:8px;border:1px}div._chat_1sbfu_89{display:flex;flex-direction:column;justify-content:space-between;height:100%}div._moreOption_1sbfu_96{display:flex;justify-content:center;align-self:end;margin-bottom:-10px;z-index:3}div._highlight_1sbfu_104,div._notification_1sbfu_111{margin:10px}@keyframes _opacityShow_1sbfu_1{0%{opacity:0}to{opacity:1}}div._moreOption_1sbfu_96>div{opacity:1;animation:.8s ease-out 0s 1 _opacityShow_1sbfu_1}div._quickViewContent_1sbfu_133{animation:.8s ease-out 0s 1 _opacityShow_1sbfu_1;width:385px;height:100%}@media only screen and (max-width: 600px){div._quickViewContent_1sbfu_133{width:100%}}", __vite_glob_0_43 = "div._container_1kw7z_1{width:385px}@media only screen and (max-width: 600px){div._container_1kw7z_1{width:100%}}div._audioVideo_1kw7z_11{padding:10px;display:flex;flex-direction:column;justify-content:space-between;gap:10px}div._moreOption_1kw7z_19{display:flex;justify-content:center;align-self:end;margin-bottom:-10px;z-index:3}div._highlight_1kw7z_27,div._notification_1kw7z_33{margin-left:10px;margin-right:10px;margin-bottom:10px}@keyframes _opacityShow_1kw7z_1{0%{opacity:0}to{opacity:1}}div._moreOption_1kw7z_19>div{opacity:1;animation:.8s ease-out 0s 1 _opacityShow_1kw7z_1}div._quickViewContent_1kw7z_55{animation:.8s ease-out 0s 1 _opacityShow_1kw7z_1;width:385px;height:100%}@media only screen and (max-width: 600px){div._quickViewContent_1kw7z_55{width:100%}}", __vite_glob_0_44 = "div._content_1f7ou_1{flex-grow:4;min-height:100px;gap:20px;display:flex;flex-direction:column}div._overlap_1f7ou_9{margin-top:-10px}", __vite_glob_0_45 = "div._content_1w52b_1{flex-grow:4}div._header_1w52b_5{display:flex;justify-content:flex-start;align-items:center;height:25px}div._header_1w52b_5>*{padding-right:8px}input[type=checkbox]{width:10px;height:10px}div._overlap_1w52b_21{margin-top:-10px}._form_1w52b_25{gap:.8rem}._description_1w52b_29{margin:.5rem 0}", __vite_glob_0_46 = "div._content_nmfo4_1{flex-grow:4}div._header_nmfo4_5{display:flex;justify-content:flex-start;align-items:center;height:25px}div._header_nmfo4_5>*{padding-right:8px}div._overlap_nmfo4_16{margin-top:-10px}._form_nmfo4_20{gap:.8rem}._description_nmfo4_24{margin:.5rem 0}div._rateChooserContainer_nmfo4_28{padding-left:10px;padding-right:10px}div._bottom_nmfo4_33{display:flex;flex-direction:column;padding-top:10px;padding-left:10px;padding-right:10px;width:100%}", __vite_glob_0_47 = '@import"https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap";*,button,input,optgroup,select,textarea{font-family:Lato,sans-serif!important}:host{width:100%;display:block}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;text-decoration:none;color:inherit}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit;margin:0;padding:0;border:none;outline:none;background:none;box-sizing:border-box;display:inline-block;vertical-align:middle;line-height:1}button{cursor:pointer}input[type=text],input[type=password],input[type=email],textarea{width:100%}iframe{border:0;width:100%;display:block}', localStyles = /* @__PURE__ */ Object.assign({
  "./components/atoms/action-button/styles.module.css": __vite_glob_0_0,
  "./components/atoms/camera-avatar/styles.module.css": __vite_glob_0_1,
  "./components/atoms/close-button/styles.module.css": __vite_glob_0_2,
  "./components/atoms/flow-start-button/styles.module.css": __vite_glob_0_3,
  "./components/atoms/full-screen-button/full-screen-button.module.css": __vite_glob_0_4,
  "./components/atoms/icon-button/styles.module.css": __vite_glob_0_5,
  "./components/atoms/message-attachment/styles.module.css": __vite_glob_0_6,
  "./components/atoms/minimize-button/styles.module.css": __vite_glob_0_7,
  "./components/atoms/number-button/styles.module.css": __vite_glob_0_8,
  "./components/atoms/product-variation-option/styles.module.css": __vite_glob_0_9,
  "./components/atoms/spinner/styles.module.css": __vite_glob_0_10,
  "./components/atoms/typography/styles.module.css": __vite_glob_0_11,
  "./components/atoms/upload-list-item/styles.module.css": __vite_glob_0_12,
  "./components/atoms/upload-progress/styles.module.css": __vite_glob_0_13,
  "./components/molecules/button-show-container/styles.module.css": __vite_glob_0_14,
  "./components/molecules/chat-message-button/styles.module.css": __vite_glob_0_15,
  "./components/molecules/checkbox/styles.module.css": __vite_glob_0_16,
  "./components/molecules/container/styles.module.css": __vite_glob_0_17,
  "./components/molecules/field-input/styles.module.css": __vite_glob_0_18,
  "./components/molecules/image-carousel/styles.module.css": __vite_glob_0_19,
  "./components/molecules/item-button/styles.module.css": __vite_glob_0_20,
  "./components/molecules/message-attachments/styles.module.css": __vite_glob_0_21,
  "./components/molecules/message-form/styles.module.css": __vite_glob_0_22,
  "./components/molecules/message-item/styles.module.css": __vite_glob_0_23,
  "./components/molecules/more-less-input/styles.module.css": __vite_glob_0_24,
  "./components/molecules/notification/styles.module.css": __vite_glob_0_25,
  "./components/molecules/product-variation/styles.module.css": __vite_glob_0_26,
  "./components/molecules/rate-chooser/styles.module.css": __vite_glob_0_27,
  "./components/molecules/toast/styles.module.css": __vite_glob_0_28,
  "./components/molecules/upload-list/styles.module.css": __vite_glob_0_29,
  "./components/organisms/controls-bar/styles.module.css": __vite_glob_0_30,
  "./components/organisms/personal-audio-video/personal-audio-video.module.css": __vite_glob_0_31,
  "./components/organisms/personal-chat/personal-chat.module.css": __vite_glob_0_32,
  "./components/organisms/product-highlight/styles.module.css": __vite_glob_0_33,
  "./components/organisms/product-quick-view/styles.module.css": __vite_glob_0_34,
  "./components/organisms/screen-navigator/styles.module.css": __vite_glob_0_35,
  "./components/templates/floating-layout/styles.module.css": __vite_glob_0_36,
  "./components/templates/minimizable-layout/styles.module.css": __vite_glob_0_37,
  "./features/assistant-flow/screens/assistant-options/styles.module.css": __vite_glob_0_38,
  "./features/assistant-flow/screens/assisted-sales/styles.css": __vite_glob_0_39,
  "./features/assistant-flow/screens/call-request/styles.module.css": __vite_glob_0_40,
  "./features/assistant-flow/screens/call-wait/styles.module.css": __vite_glob_0_41,
  "./features/assistant-flow/screens/client-call/components/call-layouts/full-screen/full-screen.module.css": __vite_glob_0_42,
  "./features/assistant-flow/screens/client-call/components/call-layouts/widget-layout/widget.module.css": __vite_glob_0_43,
  "./features/assistant-flow/screens/information/styles.module.css": __vite_glob_0_44,
  "./features/assistant-flow/screens/join-call/styles.module.css": __vite_glob_0_45,
  "./features/assistant-flow/screens/nps-screen/styles.module.css": __vite_glob_0_46,
  "./styles.css": __vite_glob_0_47
}), styles = dc([localStyles]);
logger$1.info("🧩 Personal Assistant Widget - Loaded successfully!");
const WC_NAME = "pa-widget", inlineStyles = Object.values(styles).map((rv) => rv), mainStyles = r$6(inlineStyles.join(`
`));
class PaWidget extends r$3 {
  constructor() {
    super();
    T$(this, "reactRender", () => {
      const ev = this.createReactElement();
      createRoot(this.reactRoot.value).render(ev);
    });
    this.reactRoot = e();
  }
  connectedCallback() {
    super.connectedCallback();
  }
  render() {
    return x` <div ${n(this.reactRoot)}></div> `;
  }
  updated() {
    this.reactRender();
  }
  createReactElement() {
    return React.createElement(AssistantFlow, {}, React.createElement("slot"));
  }
  hotAddStyles() {
    const ev = (iv) => iv.replace("./", "");
    for (const [iv, ov] of Object.entries(
      styles
    )) {
      const av = ev(iv), sv = document.createElement("style");
      sv.setAttribute("type", "text/css"), sv.setAttribute("id", av), sv.innerHTML = ov, setTimeout(() => {
        var lv;
        return (lv = this.shadowRoot) == null ? void 0 : lv.appendChild(sv);
      });
    }
  }
  hotUpdateStyles(ev) {
    var ov;
    const iv = (ov = this.shadowRoot) == null ? void 0 : ov.getElementById(ev.id);
    iv && (iv.innerHTML = ev.content);
  }
}
T$(PaWidget, "styles", [mainStyles]);
!customElements.get(WC_NAME) && customElements.define(WC_NAME, PaWidget);
const environment$1 = {
  account: "__ACCOUNT__",
  productId: "__PRODUCT_ID__",
  organization: { id: "__ORGANIZATION_ID__", name: "__ORGANIZATION_NAME__" }
}, environment = {
  ...environment$1
}, logger = Xg("widget-script", getPerant);
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const t = (rv) => (tv, ev) => {
  ev !== void 0 ? ev.addInitializer(() => {
    customElements.define(rv, tv);
  }) : customElements.define(rv, tv);
};
var __defProp = Object.defineProperty, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __decorateClass = (rv, tv, ev, iv) => {
  for (var ov = iv > 1 ? void 0 : iv ? __getOwnPropDesc(tv, ev) : tv, av = rv.length - 1, sv; av >= 0; av--)
    (sv = rv[av]) && (ov = (iv ? sv(tv, ev, ov) : sv(ov)) || ov);
  return iv && ov && __defProp(tv, ev, ov), ov;
};
const perant = getPerant();
let PaWidgetLegacy = class extends r$3 {
  connectedCallback() {
    super.connectedCallback(), this.init();
  }
  async getProductId() {
    var rv;
    try {
      const tv = (rv = window == null ? void 0 : window.vtexjs) == null ? void 0 : rv.catalog, ev = await (tv == null ? void 0 : tv.getCurrentProductWithVariations());
      return ev != null && ev.productId ? String(ev == null ? void 0 : ev.productId) : null;
    } catch (tv) {
      return logger.error("Error obteniendo el producto de VTEX", tv), null;
    }
  }
  async getOrderFormId() {
    var rv, tv, ev;
    try {
      return ((ev = (tv = (rv = window == null ? void 0 : window.vtexjs) == null ? void 0 : rv.checkout) == null ? void 0 : tv.orderForm) == null ? void 0 : ev.orderFormId) ?? null;
    } catch (iv) {
      return logger.error("Error obteniendo el orderFormId de VTEX", iv), null;
    }
  }
  async init() {
    const rv = await this.getProductId();
    rv && perant.setProductId(rv);
    const tv = await this.getOrderFormId();
    tv && perant.setOrderFormId(tv), this.requestUpdate();
  }
  render() {
    return x`<pa-widget></pa-widget>`;
  }
};
PaWidgetLegacy = __decorateClass([
  t("pa-widget-legacy")
], PaWidgetLegacy);
const runtime = initializePerantRuntime({ env: environment, logger });
jc$1(runtime, WC_NAME, WC_NAME);
runtime.config(Ge$3.Local, async (rv) => {
  const { component: tv } = rv;
  runtime.store.setAddToCartConfig({
    actionFactory: { addToCart: (ev) => logger.debug("Add to cart", ev) }
  }), runtime.store.setUpdateUTMConfig((ev) => logger.debug("UTM setting", ev)), await tv.render();
});
runtime.config(Ge$3.VtexLegacy, async () => {
  runtime.store.setAddToCartConfig({
    actionFactory: { addToCart: bc }
  }), runtime.store.setUpdateUTMConfig(yc);
});
runtime.config(Ge$3.VtexIO, async () => {
  runtime.store.setUpdateUTMConfig(yc);
});
runtime.config(Ge$3.VtexFastStore, async () => {
  runtime.store.setAddToCartConfig({
    actionFactory: {
      addToCart: (rv) => logger.debug("Add to cart not implemented in FastStore.", rv)
    }
  }), runtime.store.setUpdateUTMConfig(
    (rv) => logger.debug("UTM setting not implemented in FastStore.", rv)
  );
});
runtime.execute();
//# sourceMappingURL=pa-ws-index.js.map