KISS Translator

A simple bilingual translation extension & Greasemonkey script (一个简约的双语对照翻译扩展 & 油猴脚本)

// ==UserScript==
// @name          KISS Translator
// @namespace     https://github.com/fishjar/kiss-translator
// @version       1.8.11
// @description   A simple bilingual translation extension & Greasemonkey script (一个简约的双语对照翻译扩展 & 油猴脚本)
// @author        Gabe<yugang2002@gmail.com>
// @homepageURL   https://github.com/fishjar/kiss-translator
// @license       GPL-3.0
// @match         *://*/*
// @icon          https://fishjar.github.io/kiss-translator/images/logo192.png
// @grant         GM.xmlHttpRequest
// @grant         GM.registerMenuCommand
// @grant         GM.unregisterMenuCommand
// @grant         GM.setValue
// @grant         GM.getValue
// @grant         GM.deleteValue
// @grant         GM.info
// @grant         unsafeWindow
// @connect       translate.googleapis.com
// @connect       api-edge.cognitive.microsofttranslator.com
// @connect       edge.microsoft.com
// @connect       api-free.deepl.com
// @connect       api.deepl.com
// @connect       www2.deepl.com
// @connect       api.openai.com
// @connect       generativelanguage.googleapis.com
// @connect       openai.azure.com
// @connect       workers.dev
// @connect       github.io
// @connect       githubusercontent.com
// @connect       kiss-translator.rayjar.com
// @connect       ghproxy.com
// @connect       dav.jianguoyun.com
// @connect       fanyi.baidu.com
// @connect       transmart.qq.com
// @connect       localhost:3000
// @connect       127.0.0.1:3000
// @connect       localhost:1188
// @connect       127.0.0.1:1188
// @connect       localhost:11434
// @connect       127.0.0.1:11434
// @run-at        document-end
// ==/UserScript==


/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ 3029:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  Z: () => (/* binding */ createCache)
});

;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+sheet@1.2.2/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js
/*

Based off glamor's StyleSheet, thanks Sunil ❤️

high performance StyleSheet for css-in-js systems

- uses multiple style tags behind the scenes for millions of rules
- uses `insertRule` for appending in production for *much* faster performance

// usage

import { StyleSheet } from '@emotion/sheet'

let styleSheet = new StyleSheet({ key: '', container: document.head })

styleSheet.insert('#box { border: 1px solid red; }')
- appends a css rule into the stylesheet

styleSheet.flush()
- empties the stylesheet of all its contents

*/
// $FlowFixMe
function sheetForTag(tag) {
  if (tag.sheet) {
    // $FlowFixMe
    return tag.sheet;
  } // this weirdness brought to you by firefox

  /* istanbul ignore next */

  for (var i = 0; i < document.styleSheets.length; i++) {
    if (document.styleSheets[i].ownerNode === tag) {
      // $FlowFixMe
      return document.styleSheets[i];
    }
  }
}
function createStyleElement(options) {
  var tag = document.createElement('style');
  tag.setAttribute('data-emotion', options.key);
  if (options.nonce !== undefined) {
    tag.setAttribute('nonce', options.nonce);
  }
  tag.appendChild(document.createTextNode(''));
  tag.setAttribute('data-s', '');
  return tag;
}
var StyleSheet = /*#__PURE__*/function () {
  // Using Node instead of HTMLElement since container may be a ShadowRoot
  function StyleSheet(options) {
    var _this = this;
    this._insertTag = function (tag) {
      var before;
      if (_this.tags.length === 0) {
        if (_this.insertionPoint) {
          before = _this.insertionPoint.nextSibling;
        } else if (_this.prepend) {
          before = _this.container.firstChild;
        } else {
          before = _this.before;
        }
      } else {
        before = _this.tags[_this.tags.length - 1].nextSibling;
      }
      _this.container.insertBefore(tag, before);
      _this.tags.push(tag);
    };
    this.isSpeedy = options.speedy === undefined ? "production" === 'production' : options.speedy;
    this.tags = [];
    this.ctr = 0;
    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets

    this.key = options.key;
    this.container = options.container;
    this.prepend = options.prepend;
    this.insertionPoint = options.insertionPoint;
    this.before = null;
  }
  var _proto = StyleSheet.prototype;
  _proto.hydrate = function hydrate(nodes) {
    nodes.forEach(this._insertTag);
  };
  _proto.insert = function insert(rule) {
    // the max length is how many rules we have per style tag, it's 65000 in speedy mode
    // it's 1 in dev because we insert source maps that map a single rule to a location
    // and you can only have one source map per style tag
    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {
      this._insertTag(createStyleElement(this));
    }
    var tag = this.tags[this.tags.length - 1];
    if (false) { var isImportRule; }
    if (this.isSpeedy) {
      var sheet = sheetForTag(tag);
      try {
        // this is the ultrafast version, works across browsers
        // the big drawback is that the css won't be editable in devtools
        sheet.insertRule(rule, sheet.cssRules.length);
      } catch (e) {
        if (false) {}
      }
    } else {
      tag.appendChild(document.createTextNode(rule));
    }
    this.ctr++;
  };
  _proto.flush = function flush() {
    // $FlowFixMe
    this.tags.forEach(function (tag) {
      return tag.parentNode && tag.parentNode.removeChild(tag);
    });
    this.tags = [];
    this.ctr = 0;
    if (false) {}
  };
  return StyleSheet;
}();

;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js
/**
 * @param {number}
 * @return {number}
 */
var abs = Math.abs;

/**
 * @param {number}
 * @return {string}
 */
var Utility_from = String.fromCharCode;

/**
 * @param {object}
 * @return {object}
 */
var Utility_assign = Object.assign;

/**
 * @param {string} value
 * @param {number} length
 * @return {number}
 */
function hash(value, length) {
  return Utility_charat(value, 0) ^ 45 ? (((length << 2 ^ Utility_charat(value, 0)) << 2 ^ Utility_charat(value, 1)) << 2 ^ Utility_charat(value, 2)) << 2 ^ Utility_charat(value, 3) : 0;
}

/**
 * @param {string} value
 * @return {string}
 */
function trim(value) {
  return value.trim();
}

/**
 * @param {string} value
 * @param {RegExp} pattern
 * @return {string?}
 */
function Utility_match(value, pattern) {
  return (value = pattern.exec(value)) ? value[0] : value;
}

/**
 * @param {string} value
 * @param {(string|RegExp)} pattern
 * @param {string} replacement
 * @return {string}
 */
function Utility_replace(value, pattern, replacement) {
  return value.replace(pattern, replacement);
}

/**
 * @param {string} value
 * @param {string} search
 * @return {number}
 */
function indexof(value, search) {
  return value.indexOf(search);
}

/**
 * @param {string} value
 * @param {number} index
 * @return {number}
 */
function Utility_charat(value, index) {
  return value.charCodeAt(index) | 0;
}

/**
 * @param {string} value
 * @param {number} begin
 * @param {number} end
 * @return {string}
 */
function Utility_substr(value, begin, end) {
  return value.slice(begin, end);
}

/**
 * @param {string} value
 * @return {number}
 */
function Utility_strlen(value) {
  return value.length;
}

/**
 * @param {any[]} value
 * @return {number}
 */
function Utility_sizeof(value) {
  return value.length;
}

/**
 * @param {any} value
 * @param {any[]} array
 * @return {any}
 */
function Utility_append(value, array) {
  return array.push(value), value;
}

/**
 * @param {string[]} array
 * @param {function} callback
 * @return {string}
 */
function Utility_combine(array, callback) {
  return array.map(callback).join('');
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js

var line = 1;
var column = 1;
var Tokenizer_length = 0;
var position = 0;
var character = 0;
var characters = '';

/**
 * @param {string} value
 * @param {object | null} root
 * @param {object | null} parent
 * @param {string} type
 * @param {string[] | string} props
 * @param {object[] | string} children
 * @param {number} length
 */
function node(value, root, parent, type, props, children, length) {
  return {
    value: value,
    root: root,
    parent: parent,
    type: type,
    props: props,
    children: children,
    line: line,
    column: column,
    length: length,
    return: ''
  };
}

/**
 * @param {object} root
 * @param {object} props
 * @return {object}
 */
function Tokenizer_copy(root, props) {
  return Utility_assign(node('', null, null, '', null, null, 0), root, {
    length: -root.length
  }, props);
}

/**
 * @return {number}
 */
function Tokenizer_char() {
  return character;
}

/**
 * @return {number}
 */
function prev() {
  character = position > 0 ? Utility_charat(characters, --position) : 0;
  if (column--, character === 10) column = 1, line--;
  return character;
}

/**
 * @return {number}
 */
function next() {
  character = position < Tokenizer_length ? Utility_charat(characters, position++) : 0;
  if (column++, character === 10) column = 1, line++;
  return character;
}

/**
 * @return {number}
 */
function peek() {
  return Utility_charat(characters, position);
}

/**
 * @return {number}
 */
function caret() {
  return position;
}

/**
 * @param {number} begin
 * @param {number} end
 * @return {string}
 */
function slice(begin, end) {
  return Utility_substr(characters, begin, end);
}

/**
 * @param {number} type
 * @return {number}
 */
function token(type) {
  switch (type) {
    // \0 \t \n \r \s whitespace token
    case 0:
    case 9:
    case 10:
    case 13:
    case 32:
      return 5;
    // ! + , / > @ ~ isolate token
    case 33:
    case 43:
    case 44:
    case 47:
    case 62:
    case 64:
    case 126:
    // ; { } breakpoint token
    case 59:
    case 123:
    case 125:
      return 4;
    // : accompanied token
    case 58:
      return 3;
    // " ' ( [ opening delimit token
    case 34:
    case 39:
    case 40:
    case 91:
      return 2;
    // ) ] closing delimit token
    case 41:
    case 93:
      return 1;
  }
  return 0;
}

/**
 * @param {string} value
 * @return {any[]}
 */
function alloc(value) {
  return line = column = 1, Tokenizer_length = Utility_strlen(characters = value), position = 0, [];
}

/**
 * @param {any} value
 * @return {any}
 */
function dealloc(value) {
  return characters = '', value;
}

/**
 * @param {number} type
 * @return {string}
 */
function delimit(type) {
  return trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)));
}

/**
 * @param {string} value
 * @return {string[]}
 */
function Tokenizer_tokenize(value) {
  return dealloc(tokenizer(alloc(value)));
}

/**
 * @param {number} type
 * @return {string}
 */
function whitespace(type) {
  while (character = peek()) if (character < 33) next();else break;
  return token(type) > 2 || token(character) > 3 ? '' : ' ';
}

/**
 * @param {string[]} children
 * @return {string[]}
 */
function tokenizer(children) {
  while (next()) switch (token(character)) {
    case 0:
      append(identifier(position - 1), children);
      break;
    case 2:
      append(delimit(character), children);
      break;
    default:
      append(from(character), children);
  }
  return children;
}

/**
 * @param {number} index
 * @param {number} count
 * @return {string}
 */
function escaping(index, count) {
  while (--count && next())
  // not 0-9 A-F a-f
  if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97) break;
  return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32));
}

/**
 * @param {number} type
 * @return {number}
 */
function delimiter(type) {
  while (next()) switch (character) {
    // ] ) " '
    case type:
      return position;
    // " '
    case 34:
    case 39:
      if (type !== 34 && type !== 39) delimiter(character);
      break;
    // (
    case 40:
      if (type === 41) delimiter(type);
      break;
    // \
    case 92:
      next();
      break;
  }
  return position;
}

/**
 * @param {number} type
 * @param {number} index
 * @return {number}
 */
function commenter(type, index) {
  while (next())
  // //
  if (type + character === 47 + 10) break;
  // /*
  else if (type + character === 42 + 42 && peek() === 47) break;
  return '/*' + slice(index, position - 1) + '*' + Utility_from(type === 47 ? type : next());
}

/**
 * @param {number} index
 * @return {string}
 */
function identifier(index) {
  while (!token(peek())) next();
  return slice(index, position);
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js
var Enum_MS = '-ms-';
var Enum_MOZ = '-moz-';
var Enum_WEBKIT = '-webkit-';
var COMMENT = 'comm';
var Enum_RULESET = 'rule';
var Enum_DECLARATION = 'decl';
var PAGE = '@page';
var MEDIA = '@media';
var IMPORT = '@import';
var CHARSET = '@charset';
var VIEWPORT = '@viewport';
var SUPPORTS = '@supports';
var DOCUMENT = '@document';
var NAMESPACE = '@namespace';
var Enum_KEYFRAMES = '@keyframes';
var FONT_FACE = '@font-face';
var COUNTER_STYLE = '@counter-style';
var FONT_FEATURE_VALUES = '@font-feature-values';
var LAYER = '@layer';
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js



/**
 * @param {object[]} children
 * @param {function} callback
 * @return {string}
 */
function Serializer_serialize(children, callback) {
  var output = '';
  var length = Utility_sizeof(children);
  for (var i = 0; i < length; i++) output += callback(children[i], i, children, callback) || '';
  return output;
}

/**
 * @param {object} element
 * @param {number} index
 * @param {object[]} children
 * @param {function} callback
 * @return {string}
 */
function stringify(element, index, children, callback) {
  switch (element.type) {
    case LAYER:
      if (element.children.length) break;
    case IMPORT:
    case Enum_DECLARATION:
      return element.return = element.return || element.value;
    case COMMENT:
      return '';
    case Enum_KEYFRAMES:
      return element.return = element.value + '{' + Serializer_serialize(element.children, callback) + '}';
    case Enum_RULESET:
      element.value = element.props.join(',');
  }
  return Utility_strlen(children = Serializer_serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : '';
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js






/**
 * @param {function[]} collection
 * @return {function}
 */
function middleware(collection) {
  var length = Utility_sizeof(collection);
  return function (element, index, children, callback) {
    var output = '';
    for (var i = 0; i < length; i++) output += collection[i](element, index, children, callback) || '';
    return output;
  };
}

/**
 * @param {function} callback
 * @return {function}
 */
function rulesheet(callback) {
  return function (element) {
    if (!element.root) if (element = element.return) callback(element);
  };
}

/**
 * @param {object} element
 * @param {number} index
 * @param {object[]} children
 * @param {function} callback
 */
function prefixer(element, index, children, callback) {
  if (element.length > -1) if (!element.return) switch (element.type) {
    case DECLARATION:
      element.return = prefix(element.value, element.length, children);
      return;
    case KEYFRAMES:
      return serialize([copy(element, {
        value: replace(element.value, '@', '@' + WEBKIT)
      })], callback);
    case RULESET:
      if (element.length) return combine(element.props, function (value) {
        switch (match(value, /(::plac\w+|:read-\w+)/)) {
          // :read-(only|write)
          case ':read-only':
          case ':read-write':
            return serialize([copy(element, {
              props: [replace(value, /:(read-\w+)/, ':' + MOZ + '$1')]
            })], callback);
          // :placeholder
          case '::placeholder':
            return serialize([copy(element, {
              props: [replace(value, /:(plac\w+)/, ':' + WEBKIT + 'input-$1')]
            }), copy(element, {
              props: [replace(value, /:(plac\w+)/, ':' + MOZ + '$1')]
            }), copy(element, {
              props: [replace(value, /:(plac\w+)/, MS + 'input-$1')]
            })], callback);
        }
        return '';
      });
  }
}

/**
 * @param {object} element
 * @param {number} index
 * @param {object[]} children
 */
function namespace(element) {
  switch (element.type) {
    case RULESET:
      element.props = element.props.map(function (value) {
        return combine(tokenize(value), function (value, index, children) {
          switch (charat(value, 0)) {
            // \f
            case 12:
              return substr(value, 1, strlen(value));
            // \0 ( + > ~
            case 0:
            case 40:
            case 43:
            case 62:
            case 126:
              return value;
            // :
            case 58:
              if (children[++index] === 'global') children[index] = '', children[++index] = '\f' + substr(children[index], index = 1, -1);
            // \s
            case 32:
              return index === 1 ? '' : value;
            default:
              switch (index) {
                case 0:
                  element = value;
                  return sizeof(children) > 1 ? '' : value;
                case index = sizeof(children) - 1:
                case 2:
                  return index === 2 ? value + element + element : value + element;
                default:
                  return value;
              }
          }
        });
      });
  }
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js




/**
 * @param {string} value
 * @return {object[]}
 */
function compile(value) {
  return dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value));
}

/**
 * @param {string} value
 * @param {object} root
 * @param {object?} parent
 * @param {string[]} rule
 * @param {string[]} rules
 * @param {string[]} rulesets
 * @param {number[]} pseudo
 * @param {number[]} points
 * @param {string[]} declarations
 * @return {object}
 */
function parse(value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
  var index = 0;
  var offset = 0;
  var length = pseudo;
  var atrule = 0;
  var property = 0;
  var previous = 0;
  var variable = 1;
  var scanning = 1;
  var ampersand = 1;
  var character = 0;
  var type = '';
  var props = rules;
  var children = rulesets;
  var reference = rule;
  var characters = type;
  while (scanning) switch (previous = character, character = next()) {
    // (
    case 40:
      if (previous != 108 && Utility_charat(characters, length - 1) == 58) {
        if (indexof(characters += Utility_replace(delimit(character), '&', '&\f'), '&\f') != -1) ampersand = -1;
        break;
      }
    // " ' [
    case 34:
    case 39:
    case 91:
      characters += delimit(character);
      break;
    // \t \n \r \s
    case 9:
    case 10:
    case 13:
    case 32:
      characters += whitespace(previous);
      break;
    // \
    case 92:
      characters += escaping(caret() - 1, 7);
      continue;
    // /
    case 47:
      switch (peek()) {
        case 42:
        case 47:
          Utility_append(comment(commenter(next(), caret()), root, parent), declarations);
          break;
        default:
          characters += '/';
      }
      break;
    // {
    case 123 * variable:
      points[index++] = Utility_strlen(characters) * ampersand;
    // } ; \0
    case 125 * variable:
    case 59:
    case 0:
      switch (character) {
        // \0 }
        case 0:
        case 125:
          scanning = 0;
        // ;
        case 59 + offset:
          if (ampersand == -1) characters = Utility_replace(characters, /\f/g, '');
          if (property > 0 && Utility_strlen(characters) - length) Utility_append(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(Utility_replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations);
          break;
        // @ ;
        case 59:
          characters += ';';
        // { rule/at-rule
        default:
          Utility_append(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets);
          if (character === 123) if (offset === 0) parse(characters, root, reference, reference, props, rulesets, length, points, children);else switch (atrule === 99 && Utility_charat(characters, 3) === 110 ? 100 : atrule) {
            // d l m s
            case 100:
            case 108:
            case 109:
            case 115:
              parse(value, reference, reference, rule && Utility_append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children);
              break;
            default:
              parse(characters, reference, reference, reference, [''], children, 0, points, children);
          }
      }
      index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo;
      break;
    // :
    case 58:
      length = 1 + Utility_strlen(characters), property = previous;
    default:
      if (variable < 1) if (character == 123) --variable;else if (character == 125 && variable++ == 0 && prev() == 125) continue;
      switch (characters += Utility_from(character), character * variable) {
        // &
        case 38:
          ampersand = offset > 0 ? 1 : (characters += '\f', -1);
          break;
        // ,
        case 44:
          points[index++] = (Utility_strlen(characters) - 1) * ampersand, ampersand = 1;
          break;
        // @
        case 64:
          // -
          if (peek() === 45) characters += delimit(next());
          atrule = peek(), offset = length = Utility_strlen(type = characters += identifier(caret())), character++;
          break;
        // -
        case 45:
          if (previous === 45 && Utility_strlen(characters) == 2) variable = 0;
      }
  }
  return rulesets;
}

/**
 * @param {string} value
 * @param {object} root
 * @param {object?} parent
 * @param {number} index
 * @param {number} offset
 * @param {string[]} rules
 * @param {number[]} points
 * @param {string} type
 * @param {string[]} props
 * @param {string[]} children
 * @param {number} length
 * @return {object}
 */
function ruleset(value, root, parent, index, offset, rules, points, type, props, children, length) {
  var post = offset - 1;
  var rule = offset === 0 ? rules : [''];
  var size = Utility_sizeof(rule);
  for (var i = 0, j = 0, k = 0; i < index; ++i) for (var x = 0, y = Utility_substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x) if (z = trim(j > 0 ? rule[x] + ' ' + y : Utility_replace(y, /&\f/g, rule[x]))) props[k++] = z;
  return node(value, root, parent, offset === 0 ? Enum_RULESET : type, props, children, length);
}

/**
 * @param {number} value
 * @param {object} root
 * @param {object?} parent
 * @return {object}
 */
function comment(value, root, parent) {
  return node(value, root, parent, COMMENT, Utility_from(Tokenizer_char()), Utility_substr(value, 2, -2), 0);
}

/**
 * @param {string} value
 * @param {object} root
 * @param {object?} parent
 * @param {number} length
 * @return {object}
 */
function declaration(value, root, parent, length) {
  return node(value, root, parent, Enum_DECLARATION, Utility_substr(value, 0, length), Utility_substr(value, length + 1, -1), length);
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+cache@11.11.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js




var identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {
  var previous = 0;
  var character = 0;
  while (true) {
    previous = character;
    character = peek(); // &\f

    if (previous === 38 && character === 12) {
      points[index] = 1;
    }
    if (token(character)) {
      break;
    }
    next();
  }
  return slice(begin, position);
};
var toRules = function toRules(parsed, points) {
  // pretend we've started with a comma
  var index = -1;
  var character = 44;
  do {
    switch (token(character)) {
      case 0:
        // &\f
        if (character === 38 && peek() === 12) {
          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings
          // stylis inserts \f after & to know when & where it should replace this sequence with the context selector
          // and when it should just concatenate the outer and inner selectors
          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here
          points[index] = 1;
        }
        parsed[index] += identifierWithPointTracking(position - 1, points, index);
        break;
      case 2:
        parsed[index] += delimit(character);
        break;
      case 4:
        // comma
        if (character === 44) {
          // colon
          parsed[++index] = peek() === 58 ? '&\f' : '';
          points[index] = parsed[index].length;
          break;
        }

      // fallthrough

      default:
        parsed[index] += Utility_from(character);
    }
  } while (character = next());
  return parsed;
};
var getRules = function getRules(value, points) {
  return dealloc(toRules(alloc(value), points));
}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11

var fixedElements = /* #__PURE__ */new WeakMap();
var compat = function compat(element) {
  if (element.type !== 'rule' || !element.parent ||
  // positive .length indicates that this rule contains pseudo
  // negative .length indicates that this rule has been already prefixed
  element.length < 1) {
    return;
  }
  var value = element.value,
    parent = element.parent;
  var isImplicitRule = element.column === parent.column && element.line === parent.line;
  while (parent.type !== 'rule') {
    parent = parent.parent;
    if (!parent) return;
  } // short-circuit for the simplest case

  if (element.props.length === 1 && value.charCodeAt(0) !== 58
  /* colon */ && !fixedElements.get(parent)) {
    return;
  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)
  // then the props has already been manipulated beforehand as they that array is shared between it and its "rule parent"

  if (isImplicitRule) {
    return;
  }
  fixedElements.set(element, true);
  var points = [];
  var rules = getRules(value, points);
  var parentRules = parent.props;
  for (var i = 0, k = 0; i < rules.length; i++) {
    for (var j = 0; j < parentRules.length; j++, k++) {
      element.props[k] = points[i] ? rules[i].replace(/&\f/g, parentRules[j]) : parentRules[j] + " " + rules[i];
    }
  }
};
var removeLabel = function removeLabel(element) {
  if (element.type === 'decl') {
    var value = element.value;
    if (
    // charcode for l
    value.charCodeAt(0) === 108 &&
    // charcode for b
    value.charCodeAt(2) === 98) {
      // this ignores label
      element["return"] = '';
      element.value = '';
    }
  }
};
var ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';
var isIgnoringComment = function isIgnoringComment(element) {
  return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;
};
var createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {
  return function (element, index, children) {
    if (element.type !== 'rule' || cache.compat) return;
    var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);
    if (unsafePseudoClasses) {
      var isNested = !!element.parent; // in nested rules comments become children of the "auto-inserted" rule and that's always the `element.parent`
      //
      // considering this input:
      // .a {
      //   .b /* comm */ {}
      //   color: hotpink;
      // }
      // we get output corresponding to this:
      // .a {
      //   & {
      //     /* comm */
      //     color: hotpink;
      //   }
      //   .b {}
      // }

      var commentContainer = isNested ? element.parent.children :
      // global rule at the root level
      children;
      for (var i = commentContainer.length - 1; i >= 0; i--) {
        var node = commentContainer[i];
        if (node.line < element.line) {
          break;
        } // it is quite weird but comments are *usually* put at `column: element.column - 1`
        // so we seek *from the end* for the node that is earlier than the rule's `element` and check that
        // this will also match inputs like this:
        // .a {
        //   /* comm */
        //   .b {}
        // }
        //
        // but that is fine
        //
        // it would be the easiest to change the placement of the comment to be the first child of the rule:
        // .a {
        //   .b { /* comm */ }
        // }
        // with such inputs we wouldn't have to search for the comment at all
        // TODO: consider changing this comment placement in the next major version

        if (node.column < element.column) {
          if (isIgnoringComment(node)) {
            return;
          }
          break;
        }
      }
      unsafePseudoClasses.forEach(function (unsafePseudoClass) {
        console.error("The pseudo class \"" + unsafePseudoClass + "\" is potentially unsafe when doing server-side rendering. Try changing it to \"" + unsafePseudoClass.split('-child')[0] + "-of-type\".");
      });
    }
  };
};
var isImportRule = function isImportRule(element) {
  return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;
};
var isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {
  for (var i = index - 1; i >= 0; i--) {
    if (!isImportRule(children[i])) {
      return true;
    }
  }
  return false;
}; // use this to remove incorrect elements from further processing
// so they don't get handed to the `sheet` (or anything else)
// as that could potentially lead to additional logs which in turn could be overhelming to the user

var nullifyElement = function nullifyElement(element) {
  element.type = '';
  element.value = '';
  element["return"] = '';
  element.children = '';
  element.props = '';
};
var incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {
  if (!isImportRule(element)) {
    return;
  }
  if (element.parent) {
    console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.");
    nullifyElement(element);
  } else if (isPrependedWithRegularRules(index, children)) {
    console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.");
    nullifyElement(element);
  }
};

/* eslint-disable no-fallthrough */

function emotion_cache_browser_esm_prefix(value, length) {
  switch (hash(value, length)) {
    // color-adjust
    case 5103:
      return Enum_WEBKIT + 'print-' + value + value;
    // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)

    case 5737:
    case 4201:
    case 3177:
    case 3433:
    case 1641:
    case 4457:
    case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break

    case 5572:
    case 6356:
    case 5844:
    case 3191:
    case 6645:
    case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,

    case 6391:
    case 5879:
    case 5623:
    case 6135:
    case 4599:
    case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)

    case 4215:
    case 6389:
    case 5109:
    case 5365:
    case 5621:
    case 3829:
      return Enum_WEBKIT + value + value;
    // appearance, user-select, transform, hyphens, text-size-adjust

    case 5349:
    case 4246:
    case 4810:
    case 6968:
    case 2756:
      return Enum_WEBKIT + value + Enum_MOZ + value + Enum_MS + value + value;
    // flex, flex-direction

    case 6828:
    case 4268:
      return Enum_WEBKIT + value + Enum_MS + value + value;
    // order

    case 6165:
      return Enum_WEBKIT + value + Enum_MS + 'flex-' + value + value;
    // align-items

    case 5187:
      return Enum_WEBKIT + value + Utility_replace(value, /(\w+).+(:[^]+)/, Enum_WEBKIT + 'box-$1$2' + Enum_MS + 'flex-$1$2') + value;
    // align-self

    case 5443:
      return Enum_WEBKIT + value + Enum_MS + 'flex-item-' + Utility_replace(value, /flex-|-self/, '') + value;
    // align-content

    case 4675:
      return Enum_WEBKIT + value + Enum_MS + 'flex-line-pack' + Utility_replace(value, /align-content|flex-|-self/, '') + value;
    // flex-shrink

    case 5548:
      return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, 'shrink', 'negative') + value;
    // flex-basis

    case 5292:
      return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, 'basis', 'preferred-size') + value;
    // flex-grow

    case 6060:
      return Enum_WEBKIT + 'box-' + Utility_replace(value, '-grow', '') + Enum_WEBKIT + value + Enum_MS + Utility_replace(value, 'grow', 'positive') + value;
    // transition

    case 4554:
      return Enum_WEBKIT + Utility_replace(value, /([^-])(transform)/g, '$1' + Enum_WEBKIT + '$2') + value;
    // cursor

    case 6187:
      return Utility_replace(Utility_replace(Utility_replace(value, /(zoom-|grab)/, Enum_WEBKIT + '$1'), /(image-set)/, Enum_WEBKIT + '$1'), value, '') + value;
    // background, background-image

    case 5495:
    case 3959:
      return Utility_replace(value, /(image-set\([^]*)/, Enum_WEBKIT + '$1' + '$`$1');
    // justify-content

    case 4968:
      return Utility_replace(Utility_replace(value, /(.+:)(flex-)?(.*)/, Enum_WEBKIT + 'box-pack:$3' + Enum_MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + Enum_WEBKIT + value + value;
    // (margin|padding)-inline-(start|end)

    case 4095:
    case 3583:
    case 4068:
    case 2532:
      return Utility_replace(value, /(.+)-inline(.+)/, Enum_WEBKIT + '$1$2') + value;
    // (min|max)?(width|height|inline-size|block-size)

    case 8116:
    case 7059:
    case 5753:
    case 5535:
    case 5445:
    case 5701:
    case 4933:
    case 4677:
    case 5533:
    case 5789:
    case 5021:
    case 4765:
      // stretch, max-content, min-content, fill-available
      if (Utility_strlen(value) - 1 - length > 6) switch (Utility_charat(value, length + 1)) {
        // (m)ax-content, (m)in-content
        case 109:
          // -
          if (Utility_charat(value, length + 4) !== 45) break;
        // (f)ill-available, (f)it-content

        case 102:
          return Utility_replace(value, /(.+:)(.+)-([^]+)/, '$1' + Enum_WEBKIT + '$2-$3' + '$1' + Enum_MOZ + (Utility_charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;
        // (s)tretch

        case 115:
          return ~indexof(value, 'stretch') ? emotion_cache_browser_esm_prefix(Utility_replace(value, 'stretch', 'fill-available'), length) + value : value;
      }
      break;
    // position: sticky

    case 4949:
      // (s)ticky?
      if (Utility_charat(value, length + 1) !== 115) break;
    // display: (flex|inline-flex)

    case 6444:
      switch (Utility_charat(value, Utility_strlen(value) - 3 - (~indexof(value, '!important') && 10))) {
        // stic(k)y
        case 107:
          return Utility_replace(value, ':', ':' + Enum_WEBKIT) + value;
        // (inline-)?fl(e)x

        case 101:
          return Utility_replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + Enum_WEBKIT + (Utility_charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + Enum_WEBKIT + '$2$3' + '$1' + Enum_MS + '$2box$3') + value;
      }
      break;
    // writing-mode

    case 5936:
      switch (Utility_charat(value, length + 11)) {
        // vertical-l(r)
        case 114:
          return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, /[svh]\w+-[tblr]{2}/, 'tb') + value;
        // vertical-r(l)

        case 108:
          return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, /[svh]\w+-[tblr]{2}/, 'tb-rl') + value;
        // horizontal(-)tb

        case 45:
          return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, /[svh]\w+-[tblr]{2}/, 'lr') + value;
      }
      return Enum_WEBKIT + value + Enum_MS + value + value;
  }
  return value;
}
var emotion_cache_browser_esm_prefixer = function prefixer(element, index, children, callback) {
  if (element.length > -1) if (!element["return"]) switch (element.type) {
    case Enum_DECLARATION:
      element["return"] = emotion_cache_browser_esm_prefix(element.value, element.length);
      break;
    case Enum_KEYFRAMES:
      return Serializer_serialize([Tokenizer_copy(element, {
        value: Utility_replace(element.value, '@', '@' + Enum_WEBKIT)
      })], callback);
    case Enum_RULESET:
      if (element.length) return Utility_combine(element.props, function (value) {
        switch (Utility_match(value, /(::plac\w+|:read-\w+)/)) {
          // :read-(only|write)
          case ':read-only':
          case ':read-write':
            return Serializer_serialize([Tokenizer_copy(element, {
              props: [Utility_replace(value, /:(read-\w+)/, ':' + Enum_MOZ + '$1')]
            })], callback);
          // :placeholder

          case '::placeholder':
            return Serializer_serialize([Tokenizer_copy(element, {
              props: [Utility_replace(value, /:(plac\w+)/, ':' + Enum_WEBKIT + 'input-$1')]
            }), Tokenizer_copy(element, {
              props: [Utility_replace(value, /:(plac\w+)/, ':' + Enum_MOZ + '$1')]
            }), Tokenizer_copy(element, {
              props: [Utility_replace(value, /:(plac\w+)/, Enum_MS + 'input-$1')]
            })], callback);
        }
        return '';
      });
  }
};
var defaultStylisPlugins = [emotion_cache_browser_esm_prefixer];
var createCache = function createCache(options) {
  var key = options.key;
  if (false) {}
  if (key === 'css') {
    var ssrStyles = document.querySelectorAll("style[data-emotion]:not([data-s])"); // get SSRed styles out of the way of React's hydration
    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)
    // note this very very intentionally targets all style elements regardless of the key to ensure
    // that creating a cache works inside of render of a React component

    Array.prototype.forEach.call(ssrStyles, function (node) {
      // we want to only move elements which have a space in the data-emotion attribute value
      // because that indicates that it is an Emotion 11 server-side rendered style elements
      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector
      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)
      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles
      // will not result in the Emotion 10 styles being destroyed
      var dataEmotionAttribute = node.getAttribute('data-emotion');
      if (dataEmotionAttribute.indexOf(' ') === -1) {
        return;
      }
      document.head.appendChild(node);
      node.setAttribute('data-s', '');
    });
  }
  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;
  if (false) {}
  var inserted = {};
  var container;
  var nodesToHydrate = [];
  {
    container = options.container || document.head;
    Array.prototype.forEach.call(
    // this means we will ignore elements which don't have a space in them which
    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements
    document.querySelectorAll("style[data-emotion^=\"" + key + " \"]"), function (node) {
      var attrib = node.getAttribute("data-emotion").split(' '); // $FlowFixMe

      for (var i = 1; i < attrib.length; i++) {
        inserted[attrib[i]] = true;
      }
      nodesToHydrate.push(node);
    });
  }
  var _insert;
  var omnipresentPlugins = [compat, removeLabel];
  if (false) {}
  {
    var currentSheet;
    var finalizingPlugins = [stringify,  false ? 0 : rulesheet(function (rule) {
      currentSheet.insert(rule);
    })];
    var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));
    var stylis = function stylis(styles) {
      return Serializer_serialize(compile(styles), serializer);
    };
    _insert = function insert(selector, serialized, sheet, shouldCache) {
      currentSheet = sheet;
      if (false) {}
      stylis(selector ? selector + "{" + serialized.styles + "}" : serialized.styles);
      if (shouldCache) {
        cache.inserted[serialized.name] = true;
      }
    };
  }
  var cache = {
    key: key,
    sheet: new StyleSheet({
      key: key,
      container: container,
      nonce: options.nonce,
      speedy: options.speedy,
      prepend: options.prepend,
      insertionPoint: options.insertionPoint
    }),
    nonce: options.nonce,
    inserted: inserted,
    registered: {},
    insert: _insert
  };
  cache.sheet.hydrate(nodesToHydrate);
  return cache;
};


/***/ }),

/***/ 7506:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ memoize)
/* harmony export */ });
function memoize(fn) {
  var cache = Object.create(null);
  return function (arg) {
    if (cache[arg] === undefined) cache[arg] = fn(arg);
    return cache[arg];
  };
}


/***/ }),

/***/ 2412:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   C: () => (/* binding */ CacheProvider),
/* harmony export */   T: () => (/* binding */ ThemeContext),
/* harmony export */   i: () => (/* binding */ isBrowser),
/* harmony export */   w: () => (/* binding */ withEmotionCache)
/* harmony export */ });
/* unused harmony exports E, _, a, b, c, h, u */
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3029);
/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7073);
/* harmony import */ var _emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(122);









var isBrowser = "object" !== 'undefined';
var hasOwnProperty = {}.hasOwnProperty;
var EmotionCacheContext = /* #__PURE__ */react__WEBPACK_IMPORTED_MODULE_0__.createContext(
// we're doing this to avoid preconstruct's dead code elimination in this one case
// because this module is primarily intended for the browser and node
// but it's also required in react native and similar environments sometimes
// and we could have a special build just for that
// but this is much easier and the native packages
// might use a different theme context in the future anyway
typeof HTMLElement !== 'undefined' ? /* #__PURE__ */(0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({
  key: 'css'
}) : null);
if (false) {}
var CacheProvider = EmotionCacheContext.Provider;
var __unsafe_useEmotionCache = function useEmotionCache() {
  return useContext(EmotionCacheContext);
};
var withEmotionCache = function withEmotionCache(func) {
  // $FlowFixMe
  return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, ref) {
    // the cache will never be null in the browser
    var cache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext);
    return func(props, cache, ref);
  });
};
if (!isBrowser) {
  withEmotionCache = function withEmotionCache(func) {
    return function (props) {
      var cache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext);
      if (cache === null) {
        // yes, we're potentially creating this on every render
        // it doesn't actually matter though since it's only on the server
        // so there will only every be a single render
        // that could change in the future because of suspense and etc. but for now,
        // this works and i don't want to optimise for a future thing that we aren't sure about
        cache = (0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({
          key: 'css'
        });
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(EmotionCacheContext.Provider, {
          value: cache
        }, func(props, cache));
      } else {
        return func(props, cache);
      }
    };
  };
}
var ThemeContext = /* #__PURE__ */react__WEBPACK_IMPORTED_MODULE_0__.createContext({});
if (false) {}
var useTheme = function useTheme() {
  return React.useContext(ThemeContext);
};
var getTheme = function getTheme(outerTheme, theme) {
  if (typeof theme === 'function') {
    var mergedTheme = theme(outerTheme);
    if (false) {}
    return mergedTheme;
  }
  if (false) {}
  return _extends({}, outerTheme, theme);
};
var createCacheWithTheme = /* #__PURE__ */(/* unused pure expression or super */ null && (weakMemoize(function (outerTheme) {
  return weakMemoize(function (theme) {
    return getTheme(outerTheme, theme);
  });
})));
var ThemeProvider = function ThemeProvider(props) {
  var theme = React.useContext(ThemeContext);
  if (props.theme !== theme) {
    theme = createCacheWithTheme(theme)(props.theme);
  }
  return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
    value: theme
  }, props.children);
};
function withTheme(Component) {
  var componentName = Component.displayName || Component.name || 'Component';
  var render = function render(props, ref) {
    var theme = React.useContext(ThemeContext);
    return /*#__PURE__*/React.createElement(Component, _extends({
      theme: theme,
      ref: ref
    }, props));
  }; // $FlowFixMe

  var WithTheme = /*#__PURE__*/React.forwardRef(render);
  WithTheme.displayName = "WithTheme(" + componentName + ")";
  return hoistNonReactStatics(WithTheme, Component);
}
var getLastPart = function getLastPart(functionName) {
  // The match may be something like 'Object.createEmotionProps' or
  // 'Loader.prototype.render'
  var parts = functionName.split('.');
  return parts[parts.length - 1];
};
var getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {
  // V8
  var match = /^\s+at\s+([A-Za-z0-9$.]+)\s/.exec(line);
  if (match) return getLastPart(match[1]); // Safari / Firefox

  match = /^([A-Za-z0-9$.]+)@/.exec(line);
  if (match) return getLastPart(match[1]);
  return undefined;
};
var internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS
// identifiers, thus we only need to replace what is a valid character for JS,
// but not for CSS.

var sanitizeIdentifier = function sanitizeIdentifier(identifier) {
  return identifier.replace(/\$/g, '-');
};
var getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {
  if (!stackTrace) return undefined;
  var lines = stackTrace.split('\n');
  for (var i = 0; i < lines.length; i++) {
    var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just "Error"

    if (!functionName) continue; // If we reach one of these, we have gone too far and should quit

    if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an
    // uppercase letter

    if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);
  }
  return undefined;
};
var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';
var labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';
var createEmotionProps = function createEmotionProps(type, props) {
  if (false) {}
  var newProps = {};
  for (var key in props) {
    if (hasOwnProperty.call(props, key)) {
      newProps[key] = props[key];
    }
  }
  newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when
  // the label hasn't already been computed

  if (false) { var label; }
  return newProps;
};
var Insertion = function Insertion(_ref) {
  var cache = _ref.cache,
    serialized = _ref.serialized,
    isStringTag = _ref.isStringTag;
  registerStyles(cache, serialized, isStringTag);
  useInsertionEffectAlwaysWithSyncFallback(function () {
    return insertStyles(cache, serialized, isStringTag);
  });
  return null;
};
var Emotion = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache, ref) {
  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works
  // not passing the registered cache to serializeStyles because it would
  // make certain babel optimisations not possible

  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {
    cssProp = cache.registered[cssProp];
  }
  var WrappedComponent = props[typePropName];
  var registeredStyles = [cssProp];
  var className = '';
  if (typeof props.className === 'string') {
    className = getRegisteredStyles(cache.registered, registeredStyles, props.className);
  } else if (props.className != null) {
    className = props.className + " ";
  }
  var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));
  if (false) { var labelFromStack; }
  className += cache.key + "-" + serialized.name;
  var newProps = {};
  for (var key in props) {
    if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( true || 0)) {
      newProps[key] = props[key];
    }
  }
  newProps.ref = ref;
  newProps.className = className;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {
    cache: cache,
    serialized: serialized,
    isStringTag: typeof WrappedComponent === 'string'
  }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));
})));
if (false) {}
var Emotion$1 = (/* unused pure expression or super */ null && (Emotion));


/***/ }),

/***/ 2150:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   F4: () => (/* binding */ keyframes),
/* harmony export */   iv: () => (/* binding */ css),
/* harmony export */   xB: () => (/* binding */ Global)
/* harmony export */ });
/* unused harmony exports ClassNames, createElement, jsx */
/* harmony import */ var _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2412);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
/* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1443);
/* harmony import */ var _emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(122);
/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7073);
/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3029);
/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9761);
/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4__);











var pkg = {
  name: "@emotion/react",
  version: "11.11.1",
  main: "dist/emotion-react.cjs.js",
  module: "dist/emotion-react.esm.js",
  browser: {
    "./dist/emotion-react.esm.js": "./dist/emotion-react.browser.esm.js"
  },
  exports: {
    ".": {
      module: {
        worker: "./dist/emotion-react.worker.esm.js",
        browser: "./dist/emotion-react.browser.esm.js",
        "default": "./dist/emotion-react.esm.js"
      },
      "import": "./dist/emotion-react.cjs.mjs",
      "default": "./dist/emotion-react.cjs.js"
    },
    "./jsx-runtime": {
      module: {
        worker: "./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js",
        browser: "./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js",
        "default": "./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js"
      },
      "import": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs",
      "default": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js"
    },
    "./_isolated-hnrs": {
      module: {
        worker: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js",
        browser: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js",
        "default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js"
      },
      "import": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs",
      "default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js"
    },
    "./jsx-dev-runtime": {
      module: {
        worker: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js",
        browser: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js",
        "default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js"
      },
      "import": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs",
      "default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js"
    },
    "./package.json": "./package.json",
    "./types/css-prop": "./types/css-prop.d.ts",
    "./macro": {
      types: {
        "import": "./macro.d.mts",
        "default": "./macro.d.ts"
      },
      "default": "./macro.js"
    }
  },
  types: "types/index.d.ts",
  files: ["src", "dist", "jsx-runtime", "jsx-dev-runtime", "_isolated-hnrs", "types/*.d.ts", "macro.*"],
  sideEffects: false,
  author: "Emotion Contributors",
  license: "MIT",
  scripts: {
    "test:typescript": "dtslint types"
  },
  dependencies: {
    "@babel/runtime": "^7.18.3",
    "@emotion/babel-plugin": "^11.11.0",
    "@emotion/cache": "^11.11.0",
    "@emotion/serialize": "^1.1.2",
    "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
    "@emotion/utils": "^1.2.1",
    "@emotion/weak-memoize": "^0.3.1",
    "hoist-non-react-statics": "^3.3.1"
  },
  peerDependencies: {
    react: ">=16.8.0"
  },
  peerDependenciesMeta: {
    "@types/react": {
      optional: true
    }
  },
  devDependencies: {
    "@definitelytyped/dtslint": "0.0.112",
    "@emotion/css": "11.11.0",
    "@emotion/css-prettifier": "1.1.3",
    "@emotion/server": "11.11.0",
    "@emotion/styled": "11.11.0",
    "html-tag-names": "^1.1.2",
    react: "16.14.0",
    "svg-tag-names": "^1.1.1",
    typescript: "^4.5.5"
  },
  repository: "https://github.com/emotion-js/emotion/tree/main/packages/react",
  publishConfig: {
    access: "public"
  },
  "umd:main": "dist/emotion-react.umd.min.js",
  preconstruct: {
    entrypoints: ["./index.js", "./jsx-runtime.js", "./jsx-dev-runtime.js", "./_isolated-hnrs.js"],
    umdName: "emotionReact",
    exports: {
      envConditions: ["browser", "worker"],
      extra: {
        "./types/css-prop": "./types/css-prop.d.ts",
        "./macro": {
          types: {
            "import": "./macro.d.mts",
            "default": "./macro.d.ts"
          },
          "default": "./macro.js"
        }
      }
    }
  }
};
var jsx = function jsx(type, props) {
  var args = arguments;
  if (props == null || !hasOwnProperty.call(props, 'css')) {
    // $FlowFixMe
    return React.createElement.apply(undefined, args);
  }
  var argsLength = args.length;
  var createElementArgArray = new Array(argsLength);
  createElementArgArray[0] = Emotion;
  createElementArgArray[1] = createEmotionProps(type, props);
  for (var i = 2; i < argsLength; i++) {
    createElementArgArray[i] = args[i];
  } // $FlowFixMe

  return React.createElement.apply(null, createElementArgArray);
};
var warnedAboutCssPropForGlobal = false; // maintain place over rerenders.
// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild
// initial client-side render from SSR, use place of hydrating tag

var Global = /* #__PURE__ */(0,_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_5__.w)(function (props, cache) {
  if (false) {}
  var styles = props.styles;
  var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_2__/* .serializeStyles */ .O)([styles], undefined, react__WEBPACK_IMPORTED_MODULE_0__.useContext(_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_5__.T));
  if (!_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_5__.i) {
    var _ref;
    var serializedNames = serialized.name;
    var serializedStyles = serialized.styles;
    var next = serialized.next;
    while (next !== undefined) {
      serializedNames += ' ' + next.name;
      serializedStyles += next.styles;
      next = next.next;
    }
    var shouldCache = cache.compat === true;
    var rules = cache.insert("", {
      name: serializedNames,
      styles: serializedStyles
    }, cache.sheet, shouldCache);
    if (shouldCache) {
      return null;
    }
    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("style", (_ref = {}, _ref["data-emotion"] = cache.key + "-global " + serializedNames, _ref.dangerouslySetInnerHTML = {
      __html: rules
    }, _ref.nonce = cache.sheet.nonce, _ref));
  } // yes, i know these hooks are used conditionally
  // but it is based on a constant that will never change at runtime
  // it's effectively like having two implementations and switching them out
  // so it's not actually breaking anything

  var sheetRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef();
  (0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_1__/* .useInsertionEffectWithLayoutFallback */ .j)(function () {
    var key = cache.key + "-global"; // use case of https://github.com/emotion-js/emotion/issues/2675

    var sheet = new cache.sheet.constructor({
      key: key,
      nonce: cache.sheet.nonce,
      container: cache.sheet.container,
      speedy: cache.sheet.isSpeedy
    });
    var rehydrating = false; // $FlowFixMe

    var node = document.querySelector("style[data-emotion=\"" + key + " " + serialized.name + "\"]");
    if (cache.sheet.tags.length) {
      sheet.before = cache.sheet.tags[0];
    }
    if (node !== null) {
      rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s

      node.setAttribute('data-emotion', key);
      sheet.hydrate([node]);
    }
    sheetRef.current = [sheet, rehydrating];
    return function () {
      sheet.flush();
    };
  }, [cache]);
  (0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_1__/* .useInsertionEffectWithLayoutFallback */ .j)(function () {
    var sheetRefCurrent = sheetRef.current;
    var sheet = sheetRefCurrent[0],
      rehydrating = sheetRefCurrent[1];
    if (rehydrating) {
      sheetRefCurrent[1] = false;
      return;
    }
    if (serialized.next !== undefined) {
      // insert keyframes
      (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_6__/* .insertStyles */ .My)(cache, serialized.next, true);
    }
    if (sheet.tags.length) {
      // if this doesn't exist then it will be null so the style element will be appended
      var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;
      sheet.before = element;
      sheet.flush();
    }
    cache.insert("", serialized, sheet, false);
  }, [cache, serialized.name]);
  return null;
});
if (false) {}
function css() {
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }
  return (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_2__/* .serializeStyles */ .O)(args);
}
var keyframes = function keyframes() {
  var insertable = css.apply(void 0, arguments);
  var name = "animation-" + insertable.name; // $FlowFixMe

  return {
    name: name,
    styles: "@keyframes " + name + "{" + insertable.styles + "}",
    anim: 1,
    toString: function toString() {
      return "_EMO_" + this.name + "_" + this.styles + "_EMO_";
    }
  };
};
var classnames = function classnames(args) {
  var len = args.length;
  var i = 0;
  var cls = '';
  for (; i < len; i++) {
    var arg = args[i];
    if (arg == null) continue;
    var toAdd = void 0;
    switch (typeof arg) {
      case 'boolean':
        break;
      case 'object':
        {
          if (Array.isArray(arg)) {
            toAdd = classnames(arg);
          } else {
            if (false) {}
            toAdd = '';
            for (var k in arg) {
              if (arg[k] && k) {
                toAdd && (toAdd += ' ');
                toAdd += k;
              }
            }
          }
          break;
        }
      default:
        {
          toAdd = arg;
        }
    }
    if (toAdd) {
      cls && (cls += ' ');
      cls += toAdd;
    }
  }
  return cls;
};
function merge(registered, css, className) {
  var registeredStyles = [];
  var rawClassName = getRegisteredStyles(registered, registeredStyles, className);
  if (registeredStyles.length < 2) {
    return className;
  }
  return rawClassName + css(registeredStyles);
}
var Insertion = function Insertion(_ref) {
  var cache = _ref.cache,
    serializedArr = _ref.serializedArr;
  useInsertionEffectAlwaysWithSyncFallback(function () {
    for (var i = 0; i < serializedArr.length; i++) {
      insertStyles(cache, serializedArr[i], false);
    }
  });
  return null;
};
var ClassNames = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache) {
  var hasRendered = false;
  var serializedArr = [];
  var css = function css() {
    if (hasRendered && "production" !== 'production') {}
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    var serialized = serializeStyles(args, cache.registered);
    serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`

    registerStyles(cache, serialized, false);
    return cache.key + "-" + serialized.name;
  };
  var cx = function cx() {
    if (hasRendered && "production" !== 'production') {}
    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
      args[_key2] = arguments[_key2];
    }
    return merge(cache.registered, css, classnames(args));
  };
  var content = {
    css: css,
    cx: cx,
    theme: React.useContext(ThemeContext)
  };
  var ele = props.children(content);
  hasRendered = true;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {
    cache: cache,
    serializedArr: serializedArr
  }), ele);
})));
if (false) {}
if (false) { var globalKey, globalContext, isTestEnv, isBrowser; }


/***/ }),

/***/ 7073:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  O: () => (/* binding */ serializeStyles)
});

;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+hash@0.9.1/node_modules/@emotion/hash/dist/emotion-hash.esm.js
/* eslint-disable */
// Inspired by https://github.com/garycourt/murmurhash-js
// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86
function murmur2(str) {
  // 'm' and 'r' are mixing constants generated offline.
  // They're not really 'magic', they just happen to work well.
  // const m = 0x5bd1e995;
  // const r = 24;
  // Initialize the hash
  var h = 0; // Mix 4 bytes at a time into the hash

  var k,
    i = 0,
    len = str.length;
  for (; len >= 4; ++i, len -= 4) {
    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;
    k = /* Math.imul(k, m): */
    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);
    k ^= /* k >>> r: */
    k >>> 24;
    h = /* Math.imul(k, m): */
    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^ /* Math.imul(h, m): */
    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
  } // Handle the last few bytes of the input array

  switch (len) {
    case 3:
      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;
    case 2:
      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;
    case 1:
      h ^= str.charCodeAt(i) & 0xff;
      h = /* Math.imul(h, m): */
      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
  } // Do a few final mixes of the hash to ensure the last few
  // bytes are well-incorporated.

  h ^= h >>> 13;
  h = /* Math.imul(h, m): */
  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
  return ((h ^ h >>> 15) >>> 0).toString(36);
}

;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+unitless@0.8.1/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js
var unitlessKeys = {
  animationIterationCount: 1,
  aspectRatio: 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
};

// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+memoize@0.8.1/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js
var emotion_memoize_esm = __webpack_require__(7506);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+serialize@1.1.2/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js



var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";
var UNDEFINED_AS_OBJECT_KEY_ERROR = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).";
var hyphenateRegex = /[A-Z]|^ms/g;
var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;
var isCustomProperty = function isCustomProperty(property) {
  return property.charCodeAt(1) === 45;
};
var isProcessableValue = function isProcessableValue(value) {
  return value != null && typeof value !== 'boolean';
};
var processStyleName = /* #__PURE__ */(0,emotion_memoize_esm/* default */.Z)(function (styleName) {
  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();
});
var processStyleValue = function processStyleValue(key, value) {
  switch (key) {
    case 'animation':
    case 'animationName':
      {
        if (typeof value === 'string') {
          return value.replace(animationRegex, function (match, p1, p2) {
            cursor = {
              name: p1,
              styles: p2,
              next: cursor
            };
            return p1;
          });
        }
      }
  }
  if (unitlessKeys[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {
    return value + 'px';
  }
  return value;
};
if (false) { var hyphenatedCache, hyphenPattern, msPattern, oldProcessStyleValue, contentValues, contentValuePattern; }
var noComponentSelectorMessage = (/* unused pure expression or super */ null && ('Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.'));
function handleInterpolation(mergedProps, registered, interpolation) {
  if (interpolation == null) {
    return '';
  }
  if (interpolation.__emotion_styles !== undefined) {
    if (false) {}
    return interpolation;
  }
  switch (typeof interpolation) {
    case 'boolean':
      {
        return '';
      }
    case 'object':
      {
        if (interpolation.anim === 1) {
          cursor = {
            name: interpolation.name,
            styles: interpolation.styles,
            next: cursor
          };
          return interpolation.name;
        }
        if (interpolation.styles !== undefined) {
          var next = interpolation.next;
          if (next !== undefined) {
            // not the most efficient thing ever but this is a pretty rare case
            // and there will be very few iterations of this generally
            while (next !== undefined) {
              cursor = {
                name: next.name,
                styles: next.styles,
                next: cursor
              };
              next = next.next;
            }
          }
          var styles = interpolation.styles + ";";
          if (false) {}
          return styles;
        }
        return createStringFromObject(mergedProps, registered, interpolation);
      }
    case 'function':
      {
        if (mergedProps !== undefined) {
          var previousCursor = cursor;
          var result = interpolation(mergedProps);
          cursor = previousCursor;
          return handleInterpolation(mergedProps, registered, result);
        } else if (false) {}
        break;
      }
    case 'string':
      if (false) { var replaced, matched; }
      break;
  } // finalize string values (regular strings and functions interpolated into css calls)

  if (registered == null) {
    return interpolation;
  }
  var cached = registered[interpolation];
  return cached !== undefined ? cached : interpolation;
}
function createStringFromObject(mergedProps, registered, obj) {
  var string = '';
  if (Array.isArray(obj)) {
    for (var i = 0; i < obj.length; i++) {
      string += handleInterpolation(mergedProps, registered, obj[i]) + ";";
    }
  } else {
    for (var _key in obj) {
      var value = obj[_key];
      if (typeof value !== 'object') {
        if (registered != null && registered[value] !== undefined) {
          string += _key + "{" + registered[value] + "}";
        } else if (isProcessableValue(value)) {
          string += processStyleName(_key) + ":" + processStyleValue(_key, value) + ";";
        }
      } else {
        if (_key === 'NO_COMPONENT_SELECTOR' && "production" !== 'production') {}
        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {
          for (var _i = 0; _i < value.length; _i++) {
            if (isProcessableValue(value[_i])) {
              string += processStyleName(_key) + ":" + processStyleValue(_key, value[_i]) + ";";
            }
          }
        } else {
          var interpolated = handleInterpolation(mergedProps, registered, value);
          switch (_key) {
            case 'animation':
            case 'animationName':
              {
                string += processStyleName(_key) + ":" + interpolated + ";";
                break;
              }
            default:
              {
                if (false) {}
                string += _key + "{" + interpolated + "}";
              }
          }
        }
      }
    }
  }
  return string;
}
var labelPattern = /label:\s*([^\s;\n{]+)\s*(;|$)/g;
var sourceMapPattern;
if (false) {} // this is the cursor for keyframes
// keyframes are stored on the SerializedStyles object as a linked list

var cursor;
var serializeStyles = function serializeStyles(args, registered, mergedProps) {
  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {
    return args[0];
  }
  var stringMode = true;
  var styles = '';
  cursor = undefined;
  var strings = args[0];
  if (strings == null || strings.raw === undefined) {
    stringMode = false;
    styles += handleInterpolation(mergedProps, registered, strings);
  } else {
    if (false) {}
    styles += strings[0];
  } // we start at 1 since we've already handled the first arg

  for (var i = 1; i < args.length; i++) {
    styles += handleInterpolation(mergedProps, registered, args[i]);
    if (stringMode) {
      if (false) {}
      styles += strings[i];
    }
  }
  var sourceMap;
  if (false) {} // using a global regex with .exec is stateful so lastIndex has to be reset each time

  labelPattern.lastIndex = 0;
  var identifierName = '';
  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5

  while ((match = labelPattern.exec(styles)) !== null) {
    identifierName += '-' +
    // $FlowFixMe we know it's not null
    match[1];
  }
  var name = murmur2(styles) + identifierName;
  if (false) {}
  return {
    name: name,
    styles: styles,
    next: cursor
  };
};


/***/ }),

/***/ 122:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache;
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   L: () => (/* binding */ useInsertionEffectAlwaysWithSyncFallback),
/* harmony export */   j: () => (/* binding */ useInsertionEffectWithLayoutFallback)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);

var syncFallback = function syncFallback(create) {
  return create();
};
var useInsertionEffect = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))['useInsertion' + 'Effect'] ? /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))['useInsertion' + 'Effect'] : false;
var useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;
var useInsertionEffectWithLayoutFallback = useInsertionEffect || react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect;


/***/ }),

/***/ 1443:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   My: () => (/* binding */ insertStyles),
/* harmony export */   fp: () => (/* binding */ getRegisteredStyles),
/* harmony export */   hC: () => (/* binding */ registerStyles)
/* harmony export */ });
var isBrowser = "object" !== 'undefined';
function getRegisteredStyles(registered, registeredStyles, classNames) {
  var rawClassName = '';
  classNames.split(' ').forEach(function (className) {
    if (registered[className] !== undefined) {
      registeredStyles.push(registered[className] + ";");
    } else {
      rawClassName += className + " ";
    }
  });
  return rawClassName;
}
var registerStyles = function registerStyles(cache, serialized, isStringTag) {
  var className = cache.key + "-" + serialized.name;
  if (
  // we only need to add the styles to the registered cache if the
  // class name could be used further down
  // the tree but if it's a string tag, we know it won't
  // so we don't have to add it to registered cache.
  // this improves memory usage since we can avoid storing the whole style string
  (isStringTag === false ||
  // we need to always store it if we're in compat mode and
  // in node since emotion-server relies on whether a style is in
  // the registered cache to know whether a style is global or not
  // also, note that this check will be dead code eliminated in the browser
  isBrowser === false) && cache.registered[className] === undefined) {
    cache.registered[className] = serialized.styles;
  }
};
var insertStyles = function insertStyles(cache, serialized, isStringTag) {
  registerStyles(cache, serialized, isStringTag);
  var className = cache.key + "-" + serialized.name;
  if (cache.inserted[serialized.name] === undefined) {
    var current = serialized;
    do {
      cache.insert(serialized === current ? "." + className : '', current, cache.sheet, true);
      current = current.next;
    } while (current !== undefined);
  }
};


/***/ }),

/***/ 305:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
}), 'Close');

/***/ }),

/***/ 5413:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"
}), 'ContentCopy');

/***/ }),

/***/ 5788:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1"
}), 'DarkMode');

/***/ }),

/***/ 2478:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"
}), 'Done');

/***/ }),

/***/ 6147:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2m-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"
}), 'DragIndicator');

/***/ }),

/***/ 9839:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54z"
}), 'Favorite');

/***/ }),

/***/ 6062:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3m-4.4 15.55-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05"
}), 'FavoriteBorder');

/***/ }),

/***/ 9235:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"
}), 'Home');

/***/ }),

/***/ 8375:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4z"
}), 'LibraryAddCheck');

/***/ }),

/***/ 6250:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5M2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1m18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1m0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0z"
}), 'LightMode');

/***/ }),

/***/ 509:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1z"
}), 'Lock');

/***/ }),

/***/ 1463:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m0 12H6V10h12z"
}), 'LockOpen');

/***/ }),

/***/ 71:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  fillRule: "evenodd",
  d: "M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3"
}), 'PushPin');

/***/ }),

/***/ 9318:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M14 4v5c0 1.12.37 2.16 1 3H9c.65-.86 1-1.9 1-3V4zm3-2H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3V4h1c.55 0 1-.45 1-1s-.45-1-1-1"
}), 'PushPinOutlined');

/***/ }),

/***/ 9055:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "m12.87 15.07-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"
}), 'Translate');

/***/ }),

/***/ 651:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10z"
}), 'UnfoldLess');

/***/ }),

/***/ 5804:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15z"
}), 'UnfoldMore');

/***/ }),

/***/ 6060:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

"use client";

var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Z = void 0;
var _createSvgIcon = _interopRequireDefault(__webpack_require__(3783));
var _jsxRuntime = __webpack_require__(7394);
var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
  d: "M3 9v6h4l5 5V4L7 9zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02M14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77"
}), 'VolumeUp');

/***/ }),

/***/ 3783:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

'use client';

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "default", ({
  enumerable: true,
  get: function () {
    return _utils.createSvgIcon;
  }
}));
var _utils = __webpack_require__(1254);

/***/ }),

/***/ 7262:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const blue = {
  50: '#e3f2fd',
  100: '#bbdefb',
  200: '#90caf9',
  300: '#64b5f6',
  400: '#42a5f5',
  500: '#2196f3',
  600: '#1e88e5',
  700: '#1976d2',
  800: '#1565c0',
  900: '#0d47a1',
  A100: '#82b1ff',
  A200: '#448aff',
  A400: '#2979ff',
  A700: '#2962ff'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (blue);

/***/ }),

/***/ 3353:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const common = {
  black: '#000',
  white: '#fff'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (common);

/***/ }),

/***/ 2587:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const green = {
  50: '#e8f5e9',
  100: '#c8e6c9',
  200: '#a5d6a7',
  300: '#81c784',
  400: '#66bb6a',
  500: '#4caf50',
  600: '#43a047',
  700: '#388e3c',
  800: '#2e7d32',
  900: '#1b5e20',
  A100: '#b9f6ca',
  A200: '#69f0ae',
  A400: '#00e676',
  A700: '#00c853'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (green);

/***/ }),

/***/ 2181:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const grey = {
  50: '#fafafa',
  100: '#f5f5f5',
  200: '#eeeeee',
  300: '#e0e0e0',
  400: '#bdbdbd',
  500: '#9e9e9e',
  600: '#757575',
  700: '#616161',
  800: '#424242',
  900: '#212121',
  A100: '#f5f5f5',
  A200: '#eeeeee',
  A400: '#bdbdbd',
  A700: '#616161'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (grey);

/***/ }),

/***/ 6645:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const lightBlue = {
  50: '#e1f5fe',
  100: '#b3e5fc',
  200: '#81d4fa',
  300: '#4fc3f7',
  400: '#29b6f6',
  500: '#03a9f4',
  600: '#039be5',
  700: '#0288d1',
  800: '#0277bd',
  900: '#01579b',
  A100: '#80d8ff',
  A200: '#40c4ff',
  A400: '#00b0ff',
  A700: '#0091ea'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lightBlue);

/***/ }),

/***/ 5283:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const orange = {
  50: '#fff3e0',
  100: '#ffe0b2',
  200: '#ffcc80',
  300: '#ffb74d',
  400: '#ffa726',
  500: '#ff9800',
  600: '#fb8c00',
  700: '#f57c00',
  800: '#ef6c00',
  900: '#e65100',
  A100: '#ffd180',
  A200: '#ffab40',
  A400: '#ff9100',
  A700: '#ff6d00'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (orange);

/***/ }),

/***/ 9617:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const purple = {
  50: '#f3e5f5',
  100: '#e1bee7',
  200: '#ce93d8',
  300: '#ba68c8',
  400: '#ab47bc',
  500: '#9c27b0',
  600: '#8e24aa',
  700: '#7b1fa2',
  800: '#6a1b9a',
  900: '#4a148c',
  A100: '#ea80fc',
  A200: '#e040fb',
  A400: '#d500f9',
  A700: '#aa00ff'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (purple);

/***/ }),

/***/ 6008:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const red = {
  50: '#ffebee',
  100: '#ffcdd2',
  200: '#ef9a9a',
  300: '#e57373',
  400: '#ef5350',
  500: '#f44336',
  600: '#e53935',
  700: '#d32f2f',
  800: '#c62828',
  900: '#b71c1c',
  A100: '#ff8a80',
  A200: '#ff5252',
  A400: '#ff1744',
  A700: '#d50000'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (red);

/***/ }),

/***/ 791:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ createMixins)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010);

function createMixins(breakpoints, mixins) {
  return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({
    toolbar: {
      minHeight: 56,
      [breakpoints.up('xs')]: {
        '@media (orientation: landscape)': {
          minHeight: 48
        }
      },
      [breakpoints.up('sm')]: {
        minHeight: 64
      }
    }
  }, mixins);
}

/***/ }),

/***/ 2777:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ZP: () => (/* binding */ createPalette)
/* harmony export */ });
/* unused harmony exports light, dark */
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1010);
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(3031);
/* harmony import */ var _mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4451);
/* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(8836);
/* harmony import */ var _mui_system_colorManipulator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1744);
/* harmony import */ var _colors_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3353);
/* harmony import */ var _colors_grey__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(2181);
/* harmony import */ var _colors_purple__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9617);
/* harmony import */ var _colors_red__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6008);
/* harmony import */ var _colors_orange__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5283);
/* harmony import */ var _colors_blue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7262);
/* harmony import */ var _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6645);
/* harmony import */ var _colors_green__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2587);



const _excluded = ["mode", "contrastThreshold", "tonalOffset"];










const light = {
  // The colors used to style the text.
  text: {
    // The most important text.
    primary: 'rgba(0, 0, 0, 0.87)',
    // Secondary text.
    secondary: 'rgba(0, 0, 0, 0.6)',
    // Disabled text have even lower visual prominence.
    disabled: 'rgba(0, 0, 0, 0.38)'
  },
  // The color used to divide different elements.
  divider: 'rgba(0, 0, 0, 0.12)',
  // The background colors used to style the surfaces.
  // Consistency between these values is important.
  background: {
    paper: _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.white,
    default: _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.white
  },
  // The colors used to style the action elements.
  action: {
    // The color of an active action like an icon button.
    active: 'rgba(0, 0, 0, 0.54)',
    // The color of an hovered action.
    hover: 'rgba(0, 0, 0, 0.04)',
    hoverOpacity: 0.04,
    // The color of a selected action.
    selected: 'rgba(0, 0, 0, 0.08)',
    selectedOpacity: 0.08,
    // The color of a disabled action.
    disabled: 'rgba(0, 0, 0, 0.26)',
    // The background color of a disabled action.
    disabledBackground: 'rgba(0, 0, 0, 0.12)',
    disabledOpacity: 0.38,
    focus: 'rgba(0, 0, 0, 0.12)',
    focusOpacity: 0.12,
    activatedOpacity: 0.12
  }
};
const dark = {
  text: {
    primary: _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.white,
    secondary: 'rgba(255, 255, 255, 0.7)',
    disabled: 'rgba(255, 255, 255, 0.5)',
    icon: 'rgba(255, 255, 255, 0.5)'
  },
  divider: 'rgba(255, 255, 255, 0.12)',
  background: {
    paper: '#121212',
    default: '#121212'
  },
  action: {
    active: _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.white,
    hover: 'rgba(255, 255, 255, 0.08)',
    hoverOpacity: 0.08,
    selected: 'rgba(255, 255, 255, 0.16)',
    selectedOpacity: 0.16,
    disabled: 'rgba(255, 255, 255, 0.3)',
    disabledBackground: 'rgba(255, 255, 255, 0.12)',
    disabledOpacity: 0.38,
    focus: 'rgba(255, 255, 255, 0.12)',
    focusOpacity: 0.12,
    activatedOpacity: 0.24
  }
};
function addLightOrDark(intent, direction, shade, tonalOffset) {
  const tonalOffsetLight = tonalOffset.light || tonalOffset;
  const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;
  if (!intent[direction]) {
    if (intent.hasOwnProperty(shade)) {
      intent[direction] = intent[shade];
    } else if (direction === 'light') {
      intent.light = (0,_mui_system_colorManipulator__WEBPACK_IMPORTED_MODULE_1__/* .lighten */ .$n)(intent.main, tonalOffsetLight);
    } else if (direction === 'dark') {
      intent.dark = (0,_mui_system_colorManipulator__WEBPACK_IMPORTED_MODULE_1__/* .darken */ ._j)(intent.main, tonalOffsetDark);
    }
  }
}
function getDefaultPrimary() {
  let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
  if (mode === 'dark') {
    return {
      main: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[200],
      light: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[50],
      dark: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[400]
    };
  }
  return {
    main: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[700],
    light: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[400],
    dark: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[800]
  };
}
function getDefaultSecondary() {
  let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
  if (mode === 'dark') {
    return {
      main: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[200],
      light: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[50],
      dark: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[400]
    };
  }
  return {
    main: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[500],
    light: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[300],
    dark: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[700]
  };
}
function getDefaultError() {
  let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
  if (mode === 'dark') {
    return {
      main: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[500],
      light: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[300],
      dark: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[700]
    };
  }
  return {
    main: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[700],
    light: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[400],
    dark: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[800]
  };
}
function getDefaultInfo() {
  let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
  if (mode === 'dark') {
    return {
      main: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[400],
      light: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[300],
      dark: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[700]
    };
  }
  return {
    main: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[700],
    light: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[500],
    dark: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[900]
  };
}
function getDefaultSuccess() {
  let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
  if (mode === 'dark') {
    return {
      main: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[400],
      light: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[300],
      dark: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[700]
    };
  }
  return {
    main: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[800],
    light: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[500],
    dark: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[900]
  };
}
function getDefaultWarning() {
  let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
  if (mode === 'dark') {
    return {
      main: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[400],
      light: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[300],
      dark: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[700]
    };
  }
  return {
    main: '#ed6c02',
    // closest to orange[800] that pass 3:1.
    light: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[500],
    dark: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[900]
  };
}
function createPalette(palette) {
  const {
      mode = 'light',
      contrastThreshold = 3,
      tonalOffset = 0.2
    } = palette,
    other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(palette, _excluded);
  const primary = palette.primary || getDefaultPrimary(mode);
  const secondary = palette.secondary || getDefaultSecondary(mode);
  const error = palette.error || getDefaultError(mode);
  const info = palette.info || getDefaultInfo(mode);
  const success = palette.success || getDefaultSuccess(mode);
  const warning = palette.warning || getDefaultWarning(mode);

  // Use the same logic as
  // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59
  // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54
  function getContrastText(background) {
    const contrastText = (0,_mui_system_colorManipulator__WEBPACK_IMPORTED_MODULE_1__/* .getContrastRatio */ .mi)(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;
    if (false) {}
    return contrastText;
  }
  const augmentColor = _ref => {
    let {
      color,
      name,
      mainShade = 500,
      lightShade = 300,
      darkShade = 700
    } = _ref;
    color = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({}, color);
    if (!color.main && color[mainShade]) {
      color.main = color[mainShade];
    }
    if (!color.hasOwnProperty('main')) {
      throw new Error( false ? 0 : (0,_mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z)(11, name ? " (".concat(name, ")") : '', mainShade));
    }
    if (typeof color.main !== 'string') {
      throw new Error( false ? 0 : (0,_mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z)(12, name ? " (".concat(name, ")") : '', JSON.stringify(color.main)));
    }
    addLightOrDark(color, 'light', lightShade, tonalOffset);
    addLightOrDark(color, 'dark', darkShade, tonalOffset);
    if (!color.contrastText) {
      color.contrastText = getContrastText(color.main);
    }
    return color;
  };
  const modes = {
    dark,
    light
  };
  if (false) {}
  const paletteOutput = (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z)((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({
    // A collection of common colors.
    common: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({}, _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z),
    // prevent mutable object.
    // The palette mode, can be light or dark.
    mode,
    // The colors used to represent primary interface elements for a user.
    primary: augmentColor({
      color: primary,
      name: 'primary'
    }),
    // The colors used to represent secondary interface elements for a user.
    secondary: augmentColor({
      color: secondary,
      name: 'secondary',
      mainShade: 'A400',
      lightShade: 'A200',
      darkShade: 'A700'
    }),
    // The colors used to represent interface elements that the user should be made aware of.
    error: augmentColor({
      color: error,
      name: 'error'
    }),
    // The colors used to represent potentially dangerous actions or important messages.
    warning: augmentColor({
      color: warning,
      name: 'warning'
    }),
    // The colors used to present information to the user that is neutral and not necessarily important.
    info: augmentColor({
      color: info,
      name: 'info'
    }),
    // The colors used to indicate the successful completion of an action that user triggered.
    success: augmentColor({
      color: success,
      name: 'success'
    }),
    // The grey colors.
    grey: _colors_grey__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z,
    // Used by `getContrastText()` to maximize the contrast between
    // the background and the text.
    contrastThreshold,
    // Takes a background color and returns the text color that maximizes the contrast.
    getContrastText,
    // Generate a rich color object.
    augmentColor,
    // Used by the functions below to shift a color's luminance by approximately
    // two indexes within its tonal palette.
    // E.g., shift from Red 500 to Red 300 or Red 700.
    tonalOffset
  }, modes[mode]), other);
  return paletteOutput;
}

/***/ }),

/***/ 1126:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* unused harmony export createMuiTheme */
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1010);
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3031);
/* harmony import */ var _mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4451);
/* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8836);
/* harmony import */ var _mui_system_styleFunctionSx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(3913);
/* harmony import */ var _mui_system_styleFunctionSx__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(7692);
/* harmony import */ var _mui_system_createTheme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2332);
/* harmony import */ var _createMixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(791);
/* harmony import */ var _createPalette__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2777);
/* harmony import */ var _createTypography__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6661);
/* harmony import */ var _shadows__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2454);
/* harmony import */ var _createTransitions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1292);
/* harmony import */ var _zIndex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(8771);



const _excluded = ["breakpoints", "mixins", "spacing", "palette", "transitions", "typography", "shape"];










function createTheme() {
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  const {
      mixins: mixinsInput = {},
      palette: paletteInput = {},
      transitions: transitionsInput = {},
      typography: typographyInput = {}
    } = options,
    other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(options, _excluded);
  if (options.vars) {
    throw new Error( false ? 0 : (0,_mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(18));
  }
  const palette = (0,_createPalette__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP)(paletteInput);
  const systemTheme = (0,_mui_system_createTheme__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(options);
  let muiTheme = (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(systemTheme, {
    mixins: (0,_createMixins__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(systemTheme.breakpoints, mixinsInput),
    palette,
    // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.
    shadows: _shadows__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z.slice(),
    typography: (0,_createTypography__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z)(palette, typographyInput),
    transitions: (0,_createTransitions__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .ZP)(transitionsInput),
    zIndex: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({}, _zIndex__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z)
  });
  muiTheme = (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(muiTheme, other);
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
    args[_key - 1] = arguments[_key];
  }
  muiTheme = args.reduce((acc, argument) => (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(acc, argument), muiTheme);
  if (false) {}
  muiTheme.unstable_sxConfig = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({}, _mui_system_styleFunctionSx__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, other == null ? void 0 : other.unstable_sxConfig);
  muiTheme.unstable_sx = function sx(props) {
    return (0,_mui_system_styleFunctionSx__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z)({
      sx: props,
      theme: this
    });
  };
  return muiTheme;
}
let warnedOnce = false;
function createMuiTheme() {
  if (false) {}
  return createTheme(...arguments);
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createTheme);

/***/ }),

/***/ 1292:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ZP: () => (/* binding */ createTransitions)
/* harmony export */ });
/* unused harmony exports easing, duration */
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3031);
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010);


const _excluded = ["duration", "easing", "delay"];
// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves
// to learn the context in which each easing should be used.
const easing = {
  // This is the most common easing curve.
  easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',
  // Objects enter the screen at full velocity from off-screen and
  // slowly decelerate to a resting point.
  easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',
  // Objects leave the screen at full velocity. They do not decelerate when off-screen.
  easeIn: 'cubic-bezier(0.4, 0, 1, 1)',
  // The sharp curve is used by objects that may return to the screen at any time.
  sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'
};

// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations
// to learn when use what timing
const duration = {
  shortest: 150,
  shorter: 200,
  short: 250,
  // most basic recommended timing
  standard: 300,
  // this is to be used in complex animations
  complex: 375,
  // recommended when something is entering screen
  enteringScreen: 225,
  // recommended when something is leaving screen
  leavingScreen: 195
};
function formatMs(milliseconds) {
  return "".concat(Math.round(milliseconds), "ms");
}
function getAutoHeightDuration(height) {
  if (!height) {
    return 0;
  }
  const constant = height / 36;

  // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10
  return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);
}
function createTransitions(inputTransitions) {
  const mergedEasing = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, easing, inputTransitions.easing);
  const mergedDuration = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, duration, inputTransitions.duration);
  const create = function () {
    let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];
    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    const {
        duration: durationOption = mergedDuration.standard,
        easing: easingOption = mergedEasing.easeInOut,
        delay = 0
      } = options,
      other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(options, _excluded);
    if (false) {}
    return (Array.isArray(props) ? props : [props]).map(animatedProp => "".concat(animatedProp, " ").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), " ").concat(easingOption, " ").concat(typeof delay === 'string' ? delay : formatMs(delay))).join(',');
  };
  return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({
    getAutoHeightDuration,
    create
  }, inputTransitions, {
    easing: mergedEasing,
    duration: mergedDuration
  });
}

/***/ }),

/***/ 6661:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ createTypography)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1010);
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3031);
/* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8836);


const _excluded = ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"];

function round(value) {
  return Math.round(value * 1e5) / 1e5;
}
const caseAllCaps = {
  textTransform: 'uppercase'
};
const defaultFontFamily = '"Roboto", "Helvetica", "Arial", sans-serif';

/**
 * @see @link{https://m2.material.io/design/typography/the-type-system.html}
 * @see @link{https://m2.material.io/design/typography/understanding-typography.html}
 */
function createTypography(palette, typography) {
  const _ref = typeof typography === 'function' ? typography(palette) : typography,
    {
      fontFamily = defaultFontFamily,
      // The default font size of the Material Specification.
      fontSize = 14,
      // px
      fontWeightLight = 300,
      fontWeightRegular = 400,
      fontWeightMedium = 500,
      fontWeightBold = 700,
      // Tell MUI what's the font-size on the html element.
      // 16px is the default font-size used by browsers.
      htmlFontSize = 16,
      // Apply the CSS properties to all the variants.
      allVariants,
      pxToRem: pxToRem2
    } = _ref,
    other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(_ref, _excluded);
  if (false) {}
  const coef = fontSize / 14;
  const pxToRem = pxToRem2 || (size => "".concat(size / htmlFontSize * coef, "rem"));
  const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({
    fontFamily,
    fontWeight,
    fontSize: pxToRem(size),
    // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/
    lineHeight
  }, fontFamily === defaultFontFamily ? {
    letterSpacing: "".concat(round(letterSpacing / size), "em")
  } : {}, casing, allVariants);
  const variants = {
    h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),
    h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),
    h3: buildVariant(fontWeightRegular, 48, 1.167, 0),
    h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),
    h5: buildVariant(fontWeightRegular, 24, 1.334, 0),
    h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),
    subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),
    subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),
    body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),
    body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),
    button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),
    caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),
    overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),
    // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.
    inherit: {
      fontFamily: 'inherit',
      fontWeight: 'inherit',
      fontSize: 'inherit',
      lineHeight: 'inherit',
      letterSpacing: 'inherit'
    }
  };
  return (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({
    htmlFontSize,
    pxToRem,
    fontFamily,
    fontSize,
    fontWeightLight,
    fontWeightRegular,
    fontWeightMedium,
    fontWeightBold
  }, variants), other, {
    clone: false // No need to clone deep
  });
}

/***/ }),

/***/ 1315:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _createTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1126);
'use client';


const defaultTheme = (0,_createTheme__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)();
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaultTheme);

/***/ }),

/***/ 4876:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ('$$material');

/***/ }),

/***/ 2243:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _slotShouldForwardProp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5023);

const rootShouldForwardProp = prop => (0,_slotShouldForwardProp__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(prop) && prop !== 'classes';
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rootShouldForwardProp);

/***/ }),

/***/ 2454:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const shadowKeyUmbraOpacity = 0.2;
const shadowKeyPenumbraOpacity = 0.14;
const shadowAmbientShadowOpacity = 0.12;
function createShadow() {
  return ["".concat(arguments.length <= 0 ? undefined : arguments[0], "px ").concat(arguments.length <= 1 ? undefined : arguments[1], "px ").concat(arguments.length <= 2 ? undefined : arguments[2], "px ").concat(arguments.length <= 3 ? undefined : arguments[3], "px rgba(0,0,0,").concat(shadowKeyUmbraOpacity, ")"), "".concat(arguments.length <= 4 ? undefined : arguments[4], "px ").concat(arguments.length <= 5 ? undefined : arguments[5], "px ").concat(arguments.length <= 6 ? undefined : arguments[6], "px ").concat(arguments.length <= 7 ? undefined : arguments[7], "px rgba(0,0,0,").concat(shadowKeyPenumbraOpacity, ")"), "".concat(arguments.length <= 8 ? undefined : arguments[8], "px ").concat(arguments.length <= 9 ? undefined : arguments[9], "px ").concat(arguments.length <= 10 ? undefined : arguments[10], "px ").concat(arguments.length <= 11 ? undefined : arguments[11], "px rgba(0,0,0,").concat(shadowAmbientShadowOpacity, ")")].join(',');
}

// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss
const shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (shadows);

/***/ }),

/***/ 5023:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
// copied from @mui/system/createStyled
function slotShouldForwardProp(prop) {
  return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (slotShouldForwardProp);

/***/ }),

/***/ 1535:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ZP: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_system_createStyled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1950);
/* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1315);
/* harmony import */ var _identifier__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4876);
/* harmony import */ var _rootShouldForwardProp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2243);
'use client';







const styled = (0,_mui_system_createStyled__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .ZP)({
  themeId: _identifier__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z,
  defaultTheme: _defaultTheme__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z,
  rootShouldForwardProp: _rootShouldForwardProp__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z
});
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (styled);

/***/ }),

/***/ 1778:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ useThemeProps)
/* harmony export */ });
/* harmony import */ var _mui_system_useThemeProps__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3696);
/* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1315);
/* harmony import */ var _identifier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4876);
'use client';




function useThemeProps(_ref) {
  let {
    props,
    name
  } = _ref;
  return (0,_mui_system_useThemeProps__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({
    props,
    name,
    defaultTheme: _defaultTheme__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z,
    themeId: _identifier__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z
  });
}

/***/ }),

/***/ 8771:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
// We need to centralize the zIndex definitions as they work
// like global values in the browser.
const zIndex = {
  mobileStepper: 1000,
  fab: 1050,
  speedDial: 1050,
  appBar: 1100,
  drawer: 1200,
  modal: 1300,
  snackbar: 1400,
  tooltip: 1500
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (zIndex);

/***/ }),

/***/ 7593:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4656);

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 2876:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3444);

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 9295:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  Z: () => (/* binding */ createSvgIcon)
});

// EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(1010);
// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/index.js
var react = __webpack_require__(7948);
// EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
var objectWithoutPropertiesLoose = __webpack_require__(3031);
// EXTERNAL MODULE: ./node_modules/.pnpm/clsx@2.1.0/node_modules/clsx/dist/clsx.mjs
var clsx = __webpack_require__(8152);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/composeClasses/composeClasses.js
var composeClasses = __webpack_require__(5923);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/capitalize.js
var capitalize = __webpack_require__(7593);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/useThemeProps.js
var useThemeProps = __webpack_require__(1778);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/styled.js
var styled = __webpack_require__(1535);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js
var generateUtilityClasses = __webpack_require__(3453);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js
var generateUtilityClass = __webpack_require__(8092);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/SvgIcon/svgIconClasses.js


function getSvgIconUtilityClass(slot) {
  return (0,generateUtilityClass/* default */.ZP)('MuiSvgIcon', slot);
}
const svgIconClasses = (0,generateUtilityClasses/* default */.Z)('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);
/* harmony default export */ const SvgIcon_svgIconClasses = ((/* unused pure expression or super */ null && (svgIconClasses)));
// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(7394);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/SvgIcon/SvgIcon.js
'use client';



const _excluded = ["children", "className", "color", "component", "fontSize", "htmlColor", "inheritViewBox", "titleAccess", "viewBox"];










const useUtilityClasses = ownerState => {
  const {
    color,
    fontSize,
    classes
  } = ownerState;
  const slots = {
    root: ['root', color !== 'inherit' && "color".concat((0,capitalize/* default */.Z)(color)), "fontSize".concat((0,capitalize/* default */.Z)(fontSize))]
  };
  return (0,composeClasses/* default */.Z)(slots, getSvgIconUtilityClass, classes);
};
const SvgIconRoot = (0,styled/* default */.ZP)('svg', {
  name: 'MuiSvgIcon',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, ownerState.color !== 'inherit' && styles["color".concat((0,capitalize/* default */.Z)(ownerState.color))], styles["fontSize".concat((0,capitalize/* default */.Z)(ownerState.fontSize))]];
  }
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3;
  return {
    userSelect: 'none',
    width: '1em',
    height: '1em',
    display: 'inline-block',
    // the <svg> will define the property that has `currentColor`
    // for example heroicons uses fill="none" and stroke="currentColor"
    fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',
    flexShrink: 0,
    transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {
      duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter
    }),
    fontSize: {
      inherit: 'inherit',
      small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',
      medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',
      large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'
    }[ownerState.fontSize],
    // TODO v5 deprecate, v6 remove for sx
    color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : {
      action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active,
      disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled,
      inherit: undefined
    }[ownerState.color]
  };
});
const SvgIcon = /*#__PURE__*/react.forwardRef(function SvgIcon(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiSvgIcon'
  });
  const {
      children,
      className,
      color = 'inherit',
      component = 'svg',
      fontSize = 'medium',
      htmlColor,
      inheritViewBox = false,
      titleAccess,
      viewBox = '0 0 24 24'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded);
  const hasSvgAsChild = /*#__PURE__*/react.isValidElement(children) && children.type === 'svg';
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color,
    component,
    fontSize,
    instanceFontSize: inProps.fontSize,
    inheritViewBox,
    viewBox,
    hasSvgAsChild
  });
  const more = {};
  if (!inheritViewBox) {
    more.viewBox = viewBox;
  }
  const classes = useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(SvgIconRoot, (0,esm_extends/* default */.Z)({
    as: component,
    className: (0,clsx/* default */.Z)(classes.root, className),
    focusable: "false",
    color: htmlColor,
    "aria-hidden": titleAccess ? undefined : true,
    role: titleAccess ? 'img' : undefined,
    ref: ref
  }, more, other, hasSvgAsChild && children.props, {
    ownerState: ownerState,
    children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/(0,jsx_runtime.jsx)("title", {
      children: titleAccess
    }) : null]
  }));
});
 false ? 0 : void 0;
SvgIcon.muiName = 'SvgIcon';
/* harmony default export */ const SvgIcon_SvgIcon = (SvgIcon);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/createSvgIcon.js
'use client';





/**
 * Private module reserved for @mui packages.
 */

function createSvgIcon(path, displayName) {
  function Component(props, ref) {
    return /*#__PURE__*/(0,jsx_runtime.jsx)(SvgIcon_SvgIcon, (0,esm_extends/* default */.Z)({
      "data-testid": "".concat(displayName, "Icon"),
      ref: ref
    }, props, {
      children: path
    }));
  }
  if (false) {}
  Component.muiName = SvgIcon_SvgIcon.muiName;
  return /*#__PURE__*/react.memo( /*#__PURE__*/react.forwardRef(Component));
}

/***/ }),

/***/ 5036:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9082);

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_debounce__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 1254:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  capitalize: () => (/* reexport */ capitalize/* default */.Z),
  createChainedFunction: () => (/* reexport */ createChainedFunction/* default */.Z),
  createSvgIcon: () => (/* reexport */ createSvgIcon/* default */.Z),
  debounce: () => (/* reexport */ debounce/* default */.Z),
  deprecatedPropType: () => (/* reexport */ utils_deprecatedPropType),
  isMuiElement: () => (/* reexport */ isMuiElement/* default */.Z),
  ownerDocument: () => (/* reexport */ ownerDocument/* default */.Z),
  ownerWindow: () => (/* reexport */ ownerWindow/* default */.Z),
  requirePropFactory: () => (/* reexport */ utils_requirePropFactory),
  setRef: () => (/* reexport */ utils_setRef),
  unstable_ClassNameGenerator: () => (/* binding */ unstable_ClassNameGenerator),
  unstable_useEnhancedEffect: () => (/* reexport */ useEnhancedEffect/* default */.Z),
  unstable_useId: () => (/* reexport */ useId/* default */.Z),
  unsupportedProp: () => (/* reexport */ utils_unsupportedProp),
  useControlled: () => (/* reexport */ useControlled/* default */.Z),
  useEventCallback: () => (/* reexport */ useEventCallback/* default */.Z),
  useForkRef: () => (/* reexport */ useForkRef/* default */.Z),
  useIsFocusVisible: () => (/* reexport */ useIsFocusVisible/* default */.Z)
});

// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.js
var ClassNameGenerator = __webpack_require__(3705);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/capitalize.js
var capitalize = __webpack_require__(7593);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/createChainedFunction.js
var createChainedFunction = __webpack_require__(2876);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/createSvgIcon.js + 2 modules
var createSvgIcon = __webpack_require__(9295);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/debounce.js
var debounce = __webpack_require__(5036);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/deprecatedPropType/deprecatedPropType.js
function deprecatedPropType(validator, reason) {
  if (true) {
    return () => null;
  }
  return (props, propName, componentName, location, propFullName) => {
    const componentNameSafe = componentName || '<<anonymous>>';
    const propFullNameSafe = propFullName || propName;
    if (typeof props[propName] !== 'undefined') {
      return new Error("The ".concat(location, " `").concat(propFullNameSafe, "` of ") + "`".concat(componentNameSafe, "` is deprecated. ").concat(reason));
    }
    return null;
  };
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/deprecatedPropType.js

/* harmony default export */ const utils_deprecatedPropType = (deprecatedPropType);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/isMuiElement.js + 1 modules
var isMuiElement = __webpack_require__(3272);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/ownerDocument.js
var ownerDocument = __webpack_require__(1704);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/ownerWindow.js
var ownerWindow = __webpack_require__(5329);
// EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(1010);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/requirePropFactory/requirePropFactory.js

function requirePropFactory(componentNameInError, Component) {
  if (true) {
    return () => null;
  }

  // eslint-disable-next-line react/forbid-foreign-prop-types
  const prevPropTypes = Component ? (0,esm_extends/* default */.Z)({}, Component.propTypes) : null;
  const requireProp = requiredProp => function (props, propName, componentName, location, propFullName) {
    const propFullNameSafe = propFullName || propName;
    const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];
    if (defaultTypeChecker) {
      for (var _len = arguments.length, args = new Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
        args[_key - 5] = arguments[_key];
      }
      const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);
      if (typeCheckerResult) {
        return typeCheckerResult;
      }
    }
    if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {
      return new Error("The prop `".concat(propFullNameSafe, "` of ") + "`".concat(componentNameInError, "` can only be used together with the `").concat(requiredProp, "` prop."));
    }
    return null;
  };
  return requireProp;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/requirePropFactory.js

/* harmony default export */ const utils_requirePropFactory = (requirePropFactory);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/setRef/setRef.js
var setRef = __webpack_require__(9109);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/setRef.js

/* harmony default export */ const utils_setRef = (setRef/* default */.Z);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useEnhancedEffect.js
var useEnhancedEffect = __webpack_require__(208);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useId.js
var useId = __webpack_require__(3163);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/unsupportedProp/unsupportedProp.js
function unsupportedProp(props, propName, componentName, location, propFullName) {
  if (true) {
    return null;
  }
  const propFullNameSafe = propFullName || propName;
  if (typeof props[propName] !== 'undefined') {
    return new Error("The prop `".concat(propFullNameSafe, "` is not supported. Please remove it."));
  }
  return null;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/unsupportedProp.js

/* harmony default export */ const utils_unsupportedProp = (unsupportedProp);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useControlled.js + 1 modules
var useControlled = __webpack_require__(1520);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useEventCallback.js
var useEventCallback = __webpack_require__(4505);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useForkRef.js
var useForkRef = __webpack_require__(6490);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useIsFocusVisible.js
var useIsFocusVisible = __webpack_require__(1511);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/index.js
'use client';



















// TODO: remove this export once ClassNameGenerator is stable
// eslint-disable-next-line @typescript-eslint/naming-convention
const unstable_ClassNameGenerator = {
  configure: generator => {
    if (false) {}
    ClassNameGenerator/* default */.Z.configure(generator);
  }
};

/***/ }),

/***/ 3272:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  Z: () => (/* binding */ utils_isMuiElement)
});

// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/index.js
var react = __webpack_require__(7948);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/isMuiElement/isMuiElement.js

function isMuiElement(element, muiNames) {
  var _muiName, _element$type;
  return /*#__PURE__*/react.isValidElement(element) && muiNames.indexOf(
  // For server components `muiName` is avaialble in element.type._payload.value.muiName
  // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45
  // eslint-disable-next-line no-underscore-dangle
  (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/isMuiElement.js

/* harmony default export */ const utils_isMuiElement = (isMuiElement);

/***/ }),

/***/ 1704:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1563);

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 5329:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_ownerWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6029);

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_ownerWindow__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 1520:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  Z: () => (/* binding */ utils_useControlled)
});

// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/index.js
var react = __webpack_require__(7948);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/useControlled/useControlled.js
'use client';

/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */

function useControlled(_ref) {
  let {
    controlled,
    default: defaultProp,
    name,
    state = 'value'
  } = _ref;
  // isControlled is ignored in the hook dependency lists as it should never change.
  const {
    current: isControlled
  } = react.useRef(controlled !== undefined);
  const [valueState, setValue] = react.useState(defaultProp);
  const value = isControlled ? controlled : valueState;
  if (false) {}
  const setValueIfUncontrolled = react.useCallback(newValue => {
    if (!isControlled) {
      setValue(newValue);
    }
  }, []);
  return [value, setValueIfUncontrolled];
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useControlled.js
'use client';


/* harmony default export */ const utils_useControlled = (useControlled);

/***/ }),

/***/ 208:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4536);
'use client';


/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 4505:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9210);
'use client';


/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 6490:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_useForkRef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4114);
'use client';


/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useForkRef__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 3163:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_useId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2179);
'use client';


/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useId__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 1511:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3185);
'use client';


/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);

/***/ }),

/***/ 8732:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ GlobalStyles)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2150);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7394);
'use client';





function isEmpty(obj) {
  return obj === undefined || obj === null || Object.keys(obj).length === 0;
}
function GlobalStyles(props) {
  const {
    styles,
    defaultTheme = {}
  } = props;
  const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_emotion_react__WEBPACK_IMPORTED_MODULE_2__/* .Global */ .xB, {
    styles: globalStyles
  });
}
 false ? 0 : void 0;

/***/ }),

/***/ 6818:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  GlobalStyles: () => (/* reexport */ GlobalStyles/* default */.Z),
  StyledEngineProvider: () => (/* reexport */ StyledEngineProvider),
  ThemeContext: () => (/* reexport */ emotion_element_c39617d8_browser_esm.T),
  css: () => (/* reexport */ emotion_react_browser_esm/* css */.iv),
  "default": () => (/* binding */ styled),
  internal_processStyles: () => (/* binding */ internal_processStyles),
  keyframes: () => (/* reexport */ emotion_react_browser_esm/* keyframes */.F4)
});

;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/extends.js
function _extends() {
  _extends = Object.assign ? Object.assign.bind() : function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];
      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }
    return target;
  };
  return _extends.apply(this, arguments);
}
// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/index.js
var react = __webpack_require__(7948);
// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+memoize@0.8.1/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js
var emotion_memoize_esm = __webpack_require__(7506);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+is-prop-valid@1.2.1/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js

var reactPropsRegex = /^((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|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)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23

var isPropValid = /* #__PURE__ */(0,emotion_memoize_esm/* default */.Z)(function (prop) {
  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111
  /* o */ && prop.charCodeAt(1) === 110
  /* n */ && prop.charCodeAt(2) < 91;
}
/* Z+1 */);


// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0/node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js
var emotion_element_c39617d8_browser_esm = __webpack_require__(2412);
// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+utils@1.2.1/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js
var emotion_utils_browser_esm = __webpack_require__(1443);
// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+serialize@1.1.2/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js + 2 modules
var emotion_serialize_browser_esm = __webpack_require__(7073);
// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.0.1_react@18.2.0/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js
var emotion_use_insertion_effect_with_fallbacks_browser_esm = __webpack_require__(122);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+styled@11.11.0_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js







var testOmitPropsOnStringTag = isPropValid;
var testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {
  return key !== 'theme';
};
var getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {
  return typeof tag === 'string' &&
  // 96 is one less than the char code
  // for "a" so this is checking that
  // it's a lowercase character
  tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;
};
var composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {
  var shouldForwardProp;
  if (options) {
    var optionsShouldForwardProp = options.shouldForwardProp;
    shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {
      return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);
    } : optionsShouldForwardProp;
  }
  if (typeof shouldForwardProp !== 'function' && isReal) {
    shouldForwardProp = tag.__emotion_forwardProp;
  }
  return shouldForwardProp;
};
var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";
var Insertion = function Insertion(_ref) {
  var cache = _ref.cache,
    serialized = _ref.serialized,
    isStringTag = _ref.isStringTag;
  (0,emotion_utils_browser_esm/* registerStyles */.hC)(cache, serialized, isStringTag);
  (0,emotion_use_insertion_effect_with_fallbacks_browser_esm/* useInsertionEffectAlwaysWithSyncFallback */.L)(function () {
    return (0,emotion_utils_browser_esm/* insertStyles */.My)(cache, serialized, isStringTag);
  });
  return null;
};
var createStyled = function createStyled(tag, options) {
  if (false) {}
  var isReal = tag.__emotion_real === tag;
  var baseTag = isReal && tag.__emotion_base || tag;
  var identifierName;
  var targetClassName;
  if (options !== undefined) {
    identifierName = options.label;
    targetClassName = options.target;
  }
  var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);
  var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);
  var shouldUseAs = !defaultShouldForwardProp('as');
  return function () {
    var args = arguments;
    var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];
    if (identifierName !== undefined) {
      styles.push("label:" + identifierName + ";");
    }
    if (args[0] == null || args[0].raw === undefined) {
      styles.push.apply(styles, args);
    } else {
      if (false) {}
      styles.push(args[0][0]);
      var len = args.length;
      var i = 1;
      for (; i < len; i++) {
        if (false) {}
        styles.push(args[i], args[0][i]);
      }
    } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class

    var Styled = (0,emotion_element_c39617d8_browser_esm.w)(function (props, cache, ref) {
      var FinalTag = shouldUseAs && props.as || baseTag;
      var className = '';
      var classInterpolations = [];
      var mergedProps = props;
      if (props.theme == null) {
        mergedProps = {};
        for (var key in props) {
          mergedProps[key] = props[key];
        }
        mergedProps.theme = react.useContext(emotion_element_c39617d8_browser_esm.T);
      }
      if (typeof props.className === 'string') {
        className = (0,emotion_utils_browser_esm/* getRegisteredStyles */.fp)(cache.registered, classInterpolations, props.className);
      } else if (props.className != null) {
        className = props.className + " ";
      }
      var serialized = (0,emotion_serialize_browser_esm/* serializeStyles */.O)(styles.concat(classInterpolations), cache.registered, mergedProps);
      className += cache.key + "-" + serialized.name;
      if (targetClassName !== undefined) {
        className += " " + targetClassName;
      }
      var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;
      var newProps = {};
      for (var _key in props) {
        if (shouldUseAs && _key === 'as') continue;
        if (
        // $FlowFixMe
        finalShouldForwardProp(_key)) {
          newProps[_key] = props[_key];
        }
      }
      newProps.className = className;
      newProps.ref = ref;
      return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Insertion, {
        cache: cache,
        serialized: serialized,
        isStringTag: typeof FinalTag === 'string'
      }), /*#__PURE__*/react.createElement(FinalTag, newProps));
    });
    Styled.displayName = identifierName !== undefined ? identifierName : "Styled(" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + ")";
    Styled.defaultProps = tag.defaultProps;
    Styled.__emotion_real = Styled;
    Styled.__emotion_base = baseTag;
    Styled.__emotion_styles = styles;
    Styled.__emotion_forwardProp = shouldForwardProp;
    Object.defineProperty(Styled, 'toString', {
      value: function value() {
        if (targetClassName === undefined && "production" !== 'production') {} // $FlowFixMe: coerce undefined to string

        return "." + targetClassName;
      }
    });
    Styled.withComponent = function (nextTag, nextOptions) {
      return createStyled(nextTag, _extends({}, options, nextOptions, {
        shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)
      })).apply(void 0, styles);
    };
    return Styled;
  };
};

;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+styled@11.11.0_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js








var tags = ['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',
// SVG
'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];
var newStyled = createStyled.bind();
tags.forEach(function (tagName) {
  // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type
  newStyled[tagName] = newStyled(tagName);
});

// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0/node_modules/@emotion/react/dist/emotion-react.browser.esm.js
var emotion_react_browser_esm = __webpack_require__(2150);
// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+cache@11.11.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js + 7 modules
var emotion_cache_browser_esm = __webpack_require__(3029);
// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(7394);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+styled-engine@5.15.14_@emotion+react@11.11.1_@emotion+styled@11.11.0_react@18.2.0/node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js
'use client';






// prepend: true moves MUI styles to the top of the <head> so they're loaded first.
// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.

let cache;
if (typeof document === 'object') {
  cache = (0,emotion_cache_browser_esm/* default */.Z)({
    key: 'css',
    prepend: true
  });
}
function StyledEngineProvider(props) {
  const {
    injectFirst,
    children
  } = props;
  return injectFirst && cache ? /*#__PURE__*/(0,jsx_runtime.jsx)(emotion_element_c39617d8_browser_esm.C, {
    value: cache,
    children: children
  }) : children;
}
 false ? 0 : void 0;
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+styled-engine@5.15.14_@emotion+react@11.11.1_@emotion+styled@11.11.0_react@18.2.0/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js
var GlobalStyles = __webpack_require__(8732);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+styled-engine@5.15.14_@emotion+react@11.11.1_@emotion+styled@11.11.0_react@18.2.0/node_modules/@mui/styled-engine/index.js
/**
 * @mui/styled-engine v5.15.14
 *
 * @license MIT
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
'use client';

/* eslint-disable no-underscore-dangle */

function styled(tag, options) {
  const stylesFactory = newStyled(tag, options);
  if (false) {}
  return stylesFactory;
}

// eslint-disable-next-line @typescript-eslint/naming-convention
const internal_processStyles = (tag, processor) => {
  // Emotion attaches all the styles as `__emotion_styles`.
  // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186
  if (Array.isArray(tag.__emotion_styles)) {
    tag.__emotion_styles = processor(tag.__emotion_styles);
  }
};




/***/ }),

/***/ 1744:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;


var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.Fq = alpha;
__webpack_unused_export__ = blend;
__webpack_unused_export__ = void 0;
exports._j = darken;
__webpack_unused_export__ = decomposeColor;
__webpack_unused_export__ = emphasize;
exports.mi = getContrastRatio;
__webpack_unused_export__ = getLuminance;
__webpack_unused_export__ = hexToRgb;
__webpack_unused_export__ = hslToRgb;
exports.$n = lighten;
__webpack_unused_export__ = private_safeAlpha;
__webpack_unused_export__ = void 0;
__webpack_unused_export__ = private_safeDarken;
__webpack_unused_export__ = private_safeEmphasize;
__webpack_unused_export__ = private_safeLighten;
__webpack_unused_export__ = recomposeColor;
__webpack_unused_export__ = rgbToHex;
var _formatMuiErrorMessage2 = _interopRequireDefault(__webpack_require__(3001));
var _clamp = _interopRequireDefault(__webpack_require__(5288));
/* eslint-disable @typescript-eslint/naming-convention */

/**
 * Returns a number whose value is limited to the given range.
 * @param {number} value The value to be clamped
 * @param {number} min The lower boundary of the output range
 * @param {number} max The upper boundary of the output range
 * @returns {number} A number in the range [min, max]
 */
function clampWrapper(value) {
  let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
  if (false) {}
  return (0, _clamp.default)(value, min, max);
}

/**
 * Converts a color from CSS hex format to CSS rgb format.
 * @param {string} color - Hex color, i.e. #nnn or #nnnnnn
 * @returns {string} A CSS rgb color string
 */
function hexToRgb(color) {
  color = color.slice(1);
  const re = new RegExp(".{1,".concat(color.length >= 6 ? 2 : 1, "}"), 'g');
  let colors = color.match(re);
  if (colors && colors[0].length === 1) {
    colors = colors.map(n => n + n);
  }
  return colors ? "rgb".concat(colors.length === 4 ? 'a' : '', "(").concat(colors.map((n, index) => {
    return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;
  }).join(', '), ")") : '';
}
function intToHex(int) {
  const hex = int.toString(16);
  return hex.length === 1 ? "0".concat(hex) : hex;
}

/**
 * Returns an object with the type and values of a color.
 *
 * Note: Does not support rgb % values.
 * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
 * @returns {object} - A MUI color object: {type: string, values: number[]}
 */
function decomposeColor(color) {
  // Idempotent
  if (color.type) {
    return color;
  }
  if (color.charAt(0) === '#') {
    return decomposeColor(hexToRgb(color));
  }
  const marker = color.indexOf('(');
  const type = color.substring(0, marker);
  if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {
    throw new Error( false ? 0 : (0, _formatMuiErrorMessage2.default)(9, color));
  }
  let values = color.substring(marker + 1, color.length - 1);
  let colorSpace;
  if (type === 'color') {
    values = values.split(' ');
    colorSpace = values.shift();
    if (values.length === 4 && values[3].charAt(0) === '/') {
      values[3] = values[3].slice(1);
    }
    if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {
      throw new Error( false ? 0 : (0, _formatMuiErrorMessage2.default)(10, colorSpace));
    }
  } else {
    values = values.split(',');
  }
  values = values.map(value => parseFloat(value));
  return {
    type,
    values,
    colorSpace
  };
}

/**
 * Returns a channel created from the input color.
 *
 * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
 * @returns {string} - The channel for the color, that can be used in rgba or hsla colors
 */
const colorChannel = color => {
  const decomposedColor = decomposeColor(color);
  return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? "".concat(val, "%") : val).join(' ');
};
__webpack_unused_export__ = colorChannel;
const private_safeColorChannel = (color, warning) => {
  try {
    return colorChannel(color);
  } catch (error) {
    if (warning && "production" !== 'production') {}
    return color;
  }
};

/**
 * Converts a color object with type and values to a string.
 * @param {object} color - Decomposed color
 * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'
 * @param {array} color.values - [n,n,n] or [n,n,n,n]
 * @returns {string} A CSS color string
 */
__webpack_unused_export__ = private_safeColorChannel;
function recomposeColor(color) {
  const {
    type,
    colorSpace
  } = color;
  let {
    values
  } = color;
  if (type.indexOf('rgb') !== -1) {
    // Only convert the first 3 values to int (i.e. not alpha)
    values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);
  } else if (type.indexOf('hsl') !== -1) {
    values[1] = "".concat(values[1], "%");
    values[2] = "".concat(values[2], "%");
  }
  if (type.indexOf('color') !== -1) {
    values = "".concat(colorSpace, " ").concat(values.join(' '));
  } else {
    values = "".concat(values.join(', '));
  }
  return "".concat(type, "(").concat(values, ")");
}

/**
 * Converts a color from CSS rgb format to CSS hex format.
 * @param {string} color - RGB color, i.e. rgb(n, n, n)
 * @returns {string} A CSS rgb color string, i.e. #nnnnnn
 */
function rgbToHex(color) {
  // Idempotent
  if (color.indexOf('#') === 0) {
    return color;
  }
  const {
    values
  } = decomposeColor(color);
  return "#".concat(values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join(''));
}

/**
 * Converts a color from hsl format to rgb format.
 * @param {string} color - HSL color values
 * @returns {string} rgb color values
 */
function hslToRgb(color) {
  color = decomposeColor(color);
  const {
    values
  } = color;
  const h = values[0];
  const s = values[1] / 100;
  const l = values[2] / 100;
  const a = s * Math.min(l, 1 - l);
  const f = function (n) {
    let k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;
    return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
  };
  let type = 'rgb';
  const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];
  if (color.type === 'hsla') {
    type += 'a';
    rgb.push(values[3]);
  }
  return recomposeColor({
    type,
    values: rgb
  });
}
/**
 * The relative brightness of any point in a color space,
 * normalized to 0 for darkest black and 1 for lightest white.
 *
 * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
 * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
 * @returns {number} The relative brightness of the color in the range 0 - 1
 */
function getLuminance(color) {
  color = decomposeColor(color);
  let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;
  rgb = rgb.map(val => {
    if (color.type !== 'color') {
      val /= 255; // normalized
    }

    return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;
  });

  // Truncate at 3 digits
  return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));
}

/**
 * Calculates the contrast ratio between two colors.
 *
 * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
 * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
 * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
 * @returns {number} A contrast ratio value in the range 0 - 21.
 */
function getContrastRatio(foreground, background) {
  const lumA = getLuminance(foreground);
  const lumB = getLuminance(background);
  return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);
}

/**
 * Sets the absolute transparency of a color.
 * Any existing alpha values are overwritten.
 * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
 * @param {number} value - value to set the alpha channel to in the range 0 - 1
 * @returns {string} A CSS color string. Hex input values are returned as rgb
 */
function alpha(color, value) {
  color = decomposeColor(color);
  value = clampWrapper(value);
  if (color.type === 'rgb' || color.type === 'hsl') {
    color.type += 'a';
  }
  if (color.type === 'color') {
    color.values[3] = "/".concat(value);
  } else {
    color.values[3] = value;
  }
  return recomposeColor(color);
}
function private_safeAlpha(color, value, warning) {
  try {
    return alpha(color, value);
  } catch (error) {
    if (warning && "production" !== 'production') {}
    return color;
  }
}

/**
 * Darkens a color.
 * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
 * @param {number} coefficient - multiplier in the range 0 - 1
 * @returns {string} A CSS color string. Hex input values are returned as rgb
 */
function darken(color, coefficient) {
  color = decomposeColor(color);
  coefficient = clampWrapper(coefficient);
  if (color.type.indexOf('hsl') !== -1) {
    color.values[2] *= 1 - coefficient;
  } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {
    for (let i = 0; i < 3; i += 1) {
      color.values[i] *= 1 - coefficient;
    }
  }
  return recomposeColor(color);
}
function private_safeDarken(color, coefficient, warning) {
  try {
    return darken(color, coefficient);
  } catch (error) {
    if (warning && "production" !== 'production') {}
    return color;
  }
}

/**
 * Lightens a color.
 * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
 * @param {number} coefficient - multiplier in the range 0 - 1
 * @returns {string} A CSS color string. Hex input values are returned as rgb
 */
function lighten(color, coefficient) {
  color = decomposeColor(color);
  coefficient = clampWrapper(coefficient);
  if (color.type.indexOf('hsl') !== -1) {
    color.values[2] += (100 - color.values[2]) * coefficient;
  } else if (color.type.indexOf('rgb') !== -1) {
    for (let i = 0; i < 3; i += 1) {
      color.values[i] += (255 - color.values[i]) * coefficient;
    }
  } else if (color.type.indexOf('color') !== -1) {
    for (let i = 0; i < 3; i += 1) {
      color.values[i] += (1 - color.values[i]) * coefficient;
    }
  }
  return recomposeColor(color);
}
function private_safeLighten(color, coefficient, warning) {
  try {
    return lighten(color, coefficient);
  } catch (error) {
    if (warning && "production" !== 'production') {}
    return color;
  }
}

/**
 * Darken or lighten a color, depending on its luminance.
 * Light colors are darkened, dark colors are lightened.
 * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
 * @param {number} coefficient=0.15 - multiplier in the range 0 - 1
 * @returns {string} A CSS color string. Hex input values are returned as rgb
 */
function emphasize(color) {
  let coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;
  return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);
}
function private_safeEmphasize(color, coefficient, warning) {
  try {
    return emphasize(color, coefficient);
  } catch (error) {
    if (warning && "production" !== 'production') {}
    return color;
  }
}

/**
 * Blend a transparent overlay color with a background color, resulting in a single
 * RGB color.
 * @param {string} background - CSS color
 * @param {string} overlay - CSS color
 * @param {number} opacity - Opacity multiplier in the range 0 - 1
 * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.
 */
function blend(background, overlay, opacity) {
  let gamma = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1.0;
  const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);
  const backgroundColor = decomposeColor(background);
  const overlayColor = decomposeColor(overlay);
  const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];
  return recomposeColor({
    type: 'rgb',
    values: rgb
  });
}

/***/ }),

/***/ 1950:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;


var _interopRequireDefault = __webpack_require__(3894);
__webpack_unused_export__ = ({
  value: true
});
exports.ZP = createStyled;
__webpack_unused_export__ = shouldForwardProp;
__webpack_unused_export__ = void 0;
var _extends2 = _interopRequireDefault(__webpack_require__(4708));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(3364));
var _styledEngine = _interopRequireWildcard(__webpack_require__(6818));
var _deepmerge = __webpack_require__(9499);
var _capitalize = _interopRequireDefault(__webpack_require__(6814));
var _getDisplayName = _interopRequireDefault(__webpack_require__(8853));
var _createTheme = _interopRequireDefault(__webpack_require__(8523));
var _styleFunctionSx = _interopRequireDefault(__webpack_require__(1238));
const _excluded = ["ownerState"],
  _excluded2 = ["variants"],
  _excluded3 = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"];
/* eslint-disable no-underscore-dangle */
function _getRequireWildcardCache(e) {
  if ("function" != typeof WeakMap) return null;
  var r = new WeakMap(),
    t = new WeakMap();
  return (_getRequireWildcardCache = function (e) {
    return e ? t : r;
  })(e);
}
function _interopRequireWildcard(e, r) {
  if (!r && e && e.__esModule) return e;
  if (null === e || "object" != typeof e && "function" != typeof e) return {
    default: e
  };
  var t = _getRequireWildcardCache(r);
  if (t && t.has(e)) return t.get(e);
  var n = {
      __proto__: null
    },
    a = Object.defineProperty && Object.getOwnPropertyDescriptor;
  for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {
    var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
    i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
  }
  return n.default = e, t && t.set(e, n), n;
}
function isEmpty(obj) {
  return Object.keys(obj).length === 0;
}

// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40
function isStringTag(tag) {
  return typeof tag === 'string' &&
  // 96 is one less than the char code
  // for "a" so this is checking that
  // it's a lowercase character
  tag.charCodeAt(0) > 96;
}

// Update /system/styled/#api in case if this changes
function shouldForwardProp(prop) {
  return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';
}
const systemDefaultTheme = __webpack_unused_export__ = (0, _createTheme.default)();
const lowercaseFirstLetter = string => {
  if (!string) {
    return string;
  }
  return string.charAt(0).toLowerCase() + string.slice(1);
};
function resolveTheme(_ref2) {
  let {
    defaultTheme,
    theme,
    themeId
  } = _ref2;
  return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;
}
function defaultOverridesResolver(slot) {
  if (!slot) {
    return null;
  }
  return (props, styles) => styles[slot];
}
function processStyleArg(callableStyle, _ref) {
  let {
      ownerState
    } = _ref,
    props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
  const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({
    ownerState
  }, props)) : callableStyle;
  if (Array.isArray(resolvedStylesArg)) {
    return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({
      ownerState
    }, props)));
  }
  if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {
    const {
        variants = []
      } = resolvedStylesArg,
      otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);
    let result = otherStyles;
    variants.forEach(variant => {
      let isMatch = true;
      if (typeof variant.props === 'function') {
        isMatch = variant.props((0, _extends2.default)({
          ownerState
        }, props, ownerState));
      } else {
        Object.keys(variant.props).forEach(key => {
          if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {
            isMatch = false;
          }
        });
      }
      if (isMatch) {
        if (!Array.isArray(result)) {
          result = [result];
        }
        result.push(typeof variant.style === 'function' ? variant.style((0, _extends2.default)({
          ownerState
        }, props, ownerState)) : variant.style);
      }
    });
    return result;
  }
  return resolvedStylesArg;
}
function createStyled() {
  let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  const {
    themeId,
    defaultTheme = systemDefaultTheme,
    rootShouldForwardProp = shouldForwardProp,
    slotShouldForwardProp = shouldForwardProp
  } = input;
  const systemSx = props => {
    return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {
      theme: resolveTheme((0, _extends2.default)({}, props, {
        defaultTheme,
        themeId
      }))
    }));
  };
  systemSx.__mui_systemSx = true;
  return function (tag) {
    let inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.
    (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));
    const {
        name: componentName,
        slot: componentSlot,
        skipVariantsResolver: inputSkipVariantsResolver,
        skipSx: inputSkipSx,
        // TODO v6: remove `lowercaseFirstLetter()` in the next major release
        // For more details: https://github.com/mui/material-ui/pull/37908
        overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))
      } = inputOptions,
      options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);

    // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
    const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :
    // TODO v6: remove `Root` in the next major release
    // For more details: https://github.com/mui/material-ui/pull/37908
    componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;
    const skipSx = inputSkipSx || false;
    let label;
    if (false) {}
    let shouldForwardPropOption = shouldForwardProp;

    // TODO v6: remove `Root` in the next major release
    // For more details: https://github.com/mui/material-ui/pull/37908
    if (componentSlot === 'Root' || componentSlot === 'root') {
      shouldForwardPropOption = rootShouldForwardProp;
    } else if (componentSlot) {
      // any other slot specified
      shouldForwardPropOption = slotShouldForwardProp;
    } else if (isStringTag(tag)) {
      // for string (html) tag, preserve the behavior in emotion & styled-components.
      shouldForwardPropOption = undefined;
    }
    const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({
      shouldForwardProp: shouldForwardPropOption,
      label
    }, options));
    const transformStyleArg = stylesArg => {
      // On the server Emotion doesn't use React.forwardRef for creating components, so the created
      // component stays as a function. This condition makes sure that we do not interpolate functions
      // which are basically components used as a selectors.
      if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {
        return props => processStyleArg(stylesArg, (0, _extends2.default)({}, props, {
          theme: resolveTheme({
            theme: props.theme,
            defaultTheme,
            themeId
          })
        }));
      }
      return stylesArg;
    };
    const muiStyledResolver = function (styleArg) {
      let transformedStyleArg = transformStyleArg(styleArg);
      for (var _len = arguments.length, expressions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        expressions[_key - 1] = arguments[_key];
      }
      const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];
      if (componentName && overridesResolver) {
        expressionsWithDefaultTheme.push(props => {
          const theme = resolveTheme((0, _extends2.default)({}, props, {
            defaultTheme,
            themeId
          }));
          if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {
            return null;
          }
          const styleOverrides = theme.components[componentName].styleOverrides;
          const resolvedStyleOverrides = {};
          // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly
          Object.entries(styleOverrides).forEach(_ref3 => {
            let [slotKey, slotStyle] = _ref3;
            resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {
              theme
            }));
          });
          return overridesResolver(props, resolvedStyleOverrides);
        });
      }
      if (componentName && !skipVariantsResolver) {
        expressionsWithDefaultTheme.push(props => {
          var _theme$components;
          const theme = resolveTheme((0, _extends2.default)({}, props, {
            defaultTheme,
            themeId
          }));
          const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;
          return processStyleArg({
            variants: themeVariants
          }, (0, _extends2.default)({}, props, {
            theme
          }));
        });
      }
      if (!skipSx) {
        expressionsWithDefaultTheme.push(systemSx);
      }
      const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;
      if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {
        const placeholders = new Array(numOfCustomFnsApplied).fill('');
        // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.
        transformedStyleArg = [...styleArg, ...placeholders];
        transformedStyleArg.raw = [...styleArg.raw, ...placeholders];
      }
      const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);
      if (false) {}
      if (tag.muiName) {
        Component.muiName = tag.muiName;
      }
      return Component;
    };
    if (defaultStyledResolver.withConfig) {
      muiStyledResolver.withConfig = defaultStyledResolver.withConfig;
    }
    return muiStyledResolver;
  };
}

/***/ }),

/***/ 9074:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   L7: () => (/* binding */ removeUnusedBreakpoints),
/* harmony export */   P$: () => (/* binding */ resolveBreakpointValues),
/* harmony export */   VO: () => (/* binding */ values),
/* harmony export */   W8: () => (/* binding */ createEmptyBreakpointObject),
/* harmony export */   dt: () => (/* binding */ mergeBreakpointsInOrder),
/* harmony export */   k9: () => (/* binding */ handleBreakpoints)
/* harmony export */ });
/* unused harmony export computeBreakpointsBase */
/* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8836);





// The breakpoint **start** at this value.
// For instance with the first breakpoint xs: [xs, sm[.
const values = {
  xs: 0,
  // phone
  sm: 600,
  // tablet
  md: 900,
  // small laptop
  lg: 1200,
  // desktop
  xl: 1536 // large screen
};

const defaultBreakpoints = {
  // Sorted ASC by size. That's important.
  // It can't be configured as it's used statically for propTypes.
  keys: ['xs', 'sm', 'md', 'lg', 'xl'],
  up: key => "@media (min-width:".concat(values[key], "px)")
};
function handleBreakpoints(props, propValue, styleFromPropValue) {
  const theme = props.theme || {};
  if (Array.isArray(propValue)) {
    const themeBreakpoints = theme.breakpoints || defaultBreakpoints;
    return propValue.reduce((acc, item, index) => {
      acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);
      return acc;
    }, {});
  }
  if (typeof propValue === 'object') {
    const themeBreakpoints = theme.breakpoints || defaultBreakpoints;
    return Object.keys(propValue).reduce((acc, breakpoint) => {
      // key is breakpoint
      if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {
        const mediaKey = themeBreakpoints.up(breakpoint);
        acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);
      } else {
        const cssKey = breakpoint;
        acc[cssKey] = propValue[cssKey];
      }
      return acc;
    }, {});
  }
  const output = styleFromPropValue(propValue);
  return output;
}
function breakpoints(styleFunction) {
  // false positive
  // eslint-disable-next-line react/function-component-definition
  const newStyleFunction = props => {
    const theme = props.theme || {};
    const base = styleFunction(props);
    const themeBreakpoints = theme.breakpoints || defaultBreakpoints;
    const extended = themeBreakpoints.keys.reduce((acc, key) => {
      if (props[key]) {
        acc = acc || {};
        acc[themeBreakpoints.up(key)] = styleFunction(_extends({
          theme
        }, props[key]));
      }
      return acc;
    }, null);
    return merge(base, extended);
  };
  newStyleFunction.propTypes =  false ? 0 : {};
  newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];
  return newStyleFunction;
}
function createEmptyBreakpointObject() {
  let breakpointsInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var _breakpointsInput$key;
  const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {
    const breakpointStyleKey = breakpointsInput.up(key);
    acc[breakpointStyleKey] = {};
    return acc;
  }, {});
  return breakpointsInOrder || {};
}
function removeUnusedBreakpoints(breakpointKeys, style) {
  return breakpointKeys.reduce((acc, key) => {
    const breakpointOutput = acc[key];
    const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;
    if (isBreakpointUnused) {
      delete acc[key];
    }
    return acc;
  }, style);
}
function mergeBreakpointsInOrder(breakpointsInput) {
  const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);
  for (var _len = arguments.length, styles = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
    styles[_key - 1] = arguments[_key];
  }
  const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(prev, next), {});
  return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);
}

// compute base for responsive values; e.g.,
// [1,2,3] => {xs: true, sm: true, md: true}
// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}
function computeBreakpointsBase(breakpointValues, themeBreakpoints) {
  // fixed value
  if (typeof breakpointValues !== 'object') {
    return {};
  }
  const base = {};
  const breakpointsKeys = Object.keys(themeBreakpoints);
  if (Array.isArray(breakpointValues)) {
    breakpointsKeys.forEach((breakpoint, i) => {
      if (i < breakpointValues.length) {
        base[breakpoint] = true;
      }
    });
  } else {
    breakpointsKeys.forEach(breakpoint => {
      if (breakpointValues[breakpoint] != null) {
        base[breakpoint] = true;
      }
    });
  }
  return base;
}
function resolveBreakpointValues(_ref) {
  let {
    values: breakpointValues,
    breakpoints: themeBreakpoints,
    base: customBase
  } = _ref;
  const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);
  const keys = Object.keys(base);
  if (keys.length === 0) {
    return breakpointValues;
  }
  let previous;
  return keys.reduce((acc, breakpoint, i) => {
    if (Array.isArray(breakpointValues)) {
      acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];
      previous = i;
    } else if (typeof breakpointValues === 'object') {
      acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];
      previous = breakpoint;
    } else {
      acc[breakpoint] = breakpointValues;
    }
    return acc;
  }, {});
}
/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (breakpoints)));

/***/ }),

/***/ 4447:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ applyStyles)
/* harmony export */ });
/**
 * A universal utility to style components with multiple color modes. Always use it from the theme object.
 * It works with:
 *  - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)
 *  - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)
 *  - Zero-runtime engine
 *
 * Tips: Use an array over object spread and place `theme.applyStyles()` last.
 *
 * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]
 *
 * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}
 *
 * @example
 * 1. using with `styled`:
 * ```jsx
 *   const Component = styled('div')(({ theme }) => [
 *     { background: '#e5e5e5' },
 *     theme.applyStyles('dark', {
 *       background: '#1c1c1c',
 *       color: '#fff',
 *     }),
 *   ]);
 * ```
 *
 * @example
 * 2. using with `sx` prop:
 * ```jsx
 *   <Box sx={theme => [
 *     { background: '#e5e5e5' },
 *     theme.applyStyles('dark', {
 *        background: '#1c1c1c',
 *        color: '#fff',
 *      }),
 *     ]}
 *   />
 * ```
 *
 * @example
 * 3. theming a component:
 * ```jsx
 *   extendTheme({
 *     components: {
 *       MuiButton: {
 *         styleOverrides: {
 *           root: ({ theme }) => [
 *             { background: '#e5e5e5' },
 *             theme.applyStyles('dark', {
 *               background: '#1c1c1c',
 *               color: '#fff',
 *             }),
 *           ],
 *         },
 *       }
 *     }
 *   })
 *```
 */
function applyStyles(key, styles) {
  // @ts-expect-error this is 'any' type
  const theme = this;
  if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {
    // If CssVarsProvider is used as a provider,
    // returns '* :where([data-mui-color-scheme="light|dark"]) &'
    const selector = theme.getColorSchemeSelector(key).replace(/(\[[^\]]+\])/, '*:where($1)');
    return {
      [selector]: styles
    };
  }
  if (theme.palette.mode === key) {
    return styles;
  }
  return {};
}

/***/ }),

/***/ 782:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ createBreakpoints)
/* harmony export */ });
/* unused harmony export breakpointKeys */
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3031);
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010);


const _excluded = ["values", "unit", "step"];
// Sorted ASC by size. That's important.
// It can't be configured as it's used statically for propTypes.
const breakpointKeys = (/* unused pure expression or super */ null && (['xs', 'sm', 'md', 'lg', 'xl']));
const sortBreakpointsValues = values => {
  const breakpointsAsArray = Object.keys(values).map(key => ({
    key,
    val: values[key]
  })) || [];
  // Sort in ascending order
  breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);
  return breakpointsAsArray.reduce((acc, obj) => {
    return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, acc, {
      [obj.key]: obj.val
    });
  }, {});
};

// Keep in mind that @media is inclusive by the CSS specification.
function createBreakpoints(breakpoints) {
  const {
      // The breakpoint **start** at this value.
      // For instance with the first breakpoint xs: [xs, sm).
      values = {
        xs: 0,
        // phone
        sm: 600,
        // tablet
        md: 900,
        // small laptop
        lg: 1200,
        // desktop
        xl: 1536 // large screen
      },

      unit = 'px',
      step = 5
    } = breakpoints,
    other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(breakpoints, _excluded);
  const sortedValues = sortBreakpointsValues(values);
  const keys = Object.keys(sortedValues);
  function up(key) {
    const value = typeof values[key] === 'number' ? values[key] : key;
    return "@media (min-width:".concat(value).concat(unit, ")");
  }
  function down(key) {
    const value = typeof values[key] === 'number' ? values[key] : key;
    return "@media (max-width:".concat(value - step / 100).concat(unit, ")");
  }
  function between(start, end) {
    const endIndex = keys.indexOf(end);
    return "@media (min-width:".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, ") and ") + "(max-width:".concat((endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100).concat(unit, ")");
  }
  function only(key) {
    if (keys.indexOf(key) + 1 < keys.length) {
      return between(key, keys[keys.indexOf(key) + 1]);
    }
    return up(key);
  }
  function not(key) {
    // handle first and last key separately, for better readability
    const keyIndex = keys.indexOf(key);
    if (keyIndex === 0) {
      return up(keys[1]);
    }
    if (keyIndex === keys.length - 1) {
      return down(keys[keyIndex]);
    }
    return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');
  }
  return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({
    keys,
    values: sortedValues,
    up,
    down,
    between,
    only,
    not,
    unit
  }, other);
}

/***/ }),

/***/ 2332:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  Z: () => (/* binding */ createTheme_createTheme)
});

// EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(1010);
// EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
var objectWithoutPropertiesLoose = __webpack_require__(3031);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/deepmerge/deepmerge.js
var deepmerge = __webpack_require__(8836);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/createTheme/createBreakpoints.js
var createBreakpoints = __webpack_require__(782);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/createTheme/shape.js
const shape = {
  borderRadius: 4
};
/* harmony default export */ const createTheme_shape = (shape);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/spacing.js + 1 modules
var esm_spacing = __webpack_require__(9521);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/createTheme/createSpacing.js


// The different signatures imply different meaning for their arguments that can't be expressed structurally.
// We express the difference with variable names.

function createSpacing() {
  let spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;
  // Already transformed.
  if (spacingInput.mui) {
    return spacingInput;
  }

  // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.
  // Smaller components, such as icons, can align to a 4dp grid.
  // https://m2.material.io/design/layout/understanding-layout.html
  const transform = (0,esm_spacing/* createUnarySpacing */.hB)({
    spacing: spacingInput
  });
  const spacing = function () {
    for (var _len = arguments.length, argsInput = new Array(_len), _key = 0; _key < _len; _key++) {
      argsInput[_key] = arguments[_key];
    }
    if (false) {}
    const args = argsInput.length === 0 ? [1] : argsInput;
    return args.map(argument => {
      const output = transform(argument);
      return typeof output === 'number' ? "".concat(output, "px") : output;
    }).join(' ');
  };
  spacing.mui = true;
  return spacing;
}
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js
var styleFunctionSx = __webpack_require__(7692);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js + 5 modules
var defaultSxConfig = __webpack_require__(3913);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/createTheme/applyStyles.js
var applyStyles = __webpack_require__(4447);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/createTheme/createTheme.js


const _excluded = ["breakpoints", "palette", "spacing", "shape"];







function createTheme() {
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  const {
      breakpoints: breakpointsInput = {},
      palette: paletteInput = {},
      spacing: spacingInput,
      shape: shapeInput = {}
    } = options,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(options, _excluded);
  const breakpoints = (0,createBreakpoints/* default */.Z)(breakpointsInput);
  const spacing = createSpacing(spacingInput);
  let muiTheme = (0,deepmerge/* default */.Z)({
    breakpoints,
    direction: 'ltr',
    components: {},
    // Inject component definitions.
    palette: (0,esm_extends/* default */.Z)({
      mode: 'light'
    }, paletteInput),
    spacing,
    shape: (0,esm_extends/* default */.Z)({}, createTheme_shape, shapeInput)
  }, other);
  muiTheme.applyStyles = applyStyles/* default */.Z;
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
    args[_key - 1] = arguments[_key];
  }
  muiTheme = args.reduce((acc, argument) => (0,deepmerge/* default */.Z)(acc, argument), muiTheme);
  muiTheme.unstable_sxConfig = (0,esm_extends/* default */.Z)({}, defaultSxConfig/* default */.Z, other == null ? void 0 : other.unstable_sxConfig);
  muiTheme.unstable_sx = function sx(props) {
    return (0,styleFunctionSx/* default */.Z)({
      sx: props,
      theme: this
    });
  };
  return muiTheme;
}
/* harmony default export */ const createTheme_createTheme = (createTheme);

/***/ }),

/***/ 8523:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* reexport safe */ _createTheme__WEBPACK_IMPORTED_MODULE_0__.Z),
/* harmony export */   private_createBreakpoints: () => (/* reexport safe */ _createBreakpoints__WEBPACK_IMPORTED_MODULE_1__.Z),
/* harmony export */   unstable_applyStyles: () => (/* reexport safe */ _applyStyles__WEBPACK_IMPORTED_MODULE_2__.Z)
/* harmony export */ });
/* harmony import */ var _createTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2332);
/* harmony import */ var _createBreakpoints__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(782);
/* harmony import */ var _applyStyles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4447);




/***/ }),

/***/ 5388:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8836);

function merge(acc, item) {
  if (!item) {
    return acc;
  }
  return (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(acc, item, {
    clone: false // No need to clone deep, it's way faster.
  });
}

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (merge);

/***/ }),

/***/ 9521:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  hB: () => (/* binding */ createUnarySpacing),
  eI: () => (/* binding */ createUnaryUnit),
  NA: () => (/* binding */ getValue),
  e6: () => (/* binding */ margin),
  o3: () => (/* binding */ padding)
});

// UNUSED EXPORTS: default, getStyleFromPropValue, marginKeys, paddingKeys

// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/breakpoints.js
var breakpoints = __webpack_require__(9074);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/style.js
var style = __webpack_require__(3335);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/merge.js
var merge = __webpack_require__(5388);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/memoize.js
function memoize(fn) {
  const cache = {};
  return arg => {
    if (cache[arg] === undefined) {
      cache[arg] = fn(arg);
    }
    return cache[arg];
  };
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/spacing.js





const properties = {
  m: 'margin',
  p: 'padding'
};
const directions = {
  t: 'Top',
  r: 'Right',
  b: 'Bottom',
  l: 'Left',
  x: ['Left', 'Right'],
  y: ['Top', 'Bottom']
};
const aliases = {
  marginX: 'mx',
  marginY: 'my',
  paddingX: 'px',
  paddingY: 'py'
};

// memoize() impact:
// From 300,000 ops/sec
// To 350,000 ops/sec
const getCssProperties = memoize(prop => {
  // It's not a shorthand notation.
  if (prop.length > 2) {
    if (aliases[prop]) {
      prop = aliases[prop];
    } else {
      return [prop];
    }
  }
  const [a, b] = prop.split('');
  const property = properties[a];
  const direction = directions[b] || '';
  return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];
});
const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];
const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];
const spacingKeys = [...marginKeys, ...paddingKeys];
function createUnaryUnit(theme, themeKey, defaultValue, propName) {
  var _getPath;
  const themeSpacing = (_getPath = (0,style/* getPath */.DW)(theme, themeKey, false)) != null ? _getPath : defaultValue;
  if (typeof themeSpacing === 'number') {
    return abs => {
      if (typeof abs === 'string') {
        return abs;
      }
      if (false) {}
      return themeSpacing * abs;
    };
  }
  if (Array.isArray(themeSpacing)) {
    return abs => {
      if (typeof abs === 'string') {
        return abs;
      }
      if (false) {}
      return themeSpacing[abs];
    };
  }
  if (typeof themeSpacing === 'function') {
    return themeSpacing;
  }
  if (false) {}
  return () => undefined;
}
function createUnarySpacing(theme) {
  return createUnaryUnit(theme, 'spacing', 8, 'spacing');
}
function getValue(transformer, propValue) {
  if (typeof propValue === 'string' || propValue == null) {
    return propValue;
  }
  const abs = Math.abs(propValue);
  const transformed = transformer(abs);
  if (propValue >= 0) {
    return transformed;
  }
  if (typeof transformed === 'number') {
    return -transformed;
  }
  return "-".concat(transformed);
}
function getStyleFromPropValue(cssProperties, transformer) {
  return propValue => cssProperties.reduce((acc, cssProperty) => {
    acc[cssProperty] = getValue(transformer, propValue);
    return acc;
  }, {});
}
function resolveCssProperty(props, keys, prop, transformer) {
  // Using a hash computation over an array iteration could be faster, but with only 28 items,
  // it's doesn't worth the bundle size.
  if (keys.indexOf(prop) === -1) {
    return null;
  }
  const cssProperties = getCssProperties(prop);
  const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);
  const propValue = props[prop];
  return (0,breakpoints/* handleBreakpoints */.k9)(props, propValue, styleFromPropValue);
}
function spacing_style(props, keys) {
  const transformer = createUnarySpacing(props.theme);
  return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge/* default */.Z, {});
}
function margin(props) {
  return spacing_style(props, marginKeys);
}
margin.propTypes =  false ? 0 : {};
margin.filterProps = marginKeys;
function padding(props) {
  return spacing_style(props, paddingKeys);
}
padding.propTypes =  false ? 0 : {};
padding.filterProps = paddingKeys;
function spacing(props) {
  return spacing_style(props, spacingKeys);
}
spacing.propTypes =  false ? 0 : {};
spacing.filterProps = spacingKeys;
/* harmony default export */ const esm_spacing = ((/* unused pure expression or super */ null && (spacing)));

/***/ }),

/***/ 3335:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   DW: () => (/* binding */ getPath),
/* harmony export */   Jq: () => (/* binding */ getStyleValue),
/* harmony export */   ZP: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4656);
/* harmony import */ var _breakpoints__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9074);



function getPath(obj, path) {
  let checkVars = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
  if (!path || typeof path !== 'string') {
    return null;
  }

  // Check if CSS variables are used
  if (obj && obj.vars && checkVars) {
    const val = "vars.".concat(path).split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);
    if (val != null) {
      return val;
    }
  }
  return path.split('.').reduce((acc, item) => {
    if (acc && acc[item] != null) {
      return acc[item];
    }
    return null;
  }, obj);
}
function getStyleValue(themeMapping, transform, propValueFinal) {
  let userValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : propValueFinal;
  let value;
  if (typeof themeMapping === 'function') {
    value = themeMapping(propValueFinal);
  } else if (Array.isArray(themeMapping)) {
    value = themeMapping[propValueFinal] || userValue;
  } else {
    value = getPath(themeMapping, propValueFinal) || userValue;
  }
  if (transform) {
    value = transform(value, userValue, themeMapping);
  }
  return value;
}
function style(options) {
  const {
    prop,
    cssProperty = options.prop,
    themeKey,
    transform
  } = options;

  // false positive
  // eslint-disable-next-line react/function-component-definition
  const fn = props => {
    if (props[prop] == null) {
      return null;
    }
    const propValue = props[prop];
    const theme = props.theme;
    const themeMapping = getPath(theme, themeKey) || {};
    const styleFromPropValue = propValueFinal => {
      let value = getStyleValue(themeMapping, transform, propValueFinal);
      if (propValueFinal === value && typeof propValueFinal === 'string') {
        // Haven't found value
        value = getStyleValue(themeMapping, transform, "".concat(prop).concat(propValueFinal === 'default' ? '' : (0,_mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(propValueFinal)), propValueFinal);
      }
      if (cssProperty === false) {
        return value;
      }
      return {
        [cssProperty]: value
      };
    };
    return (0,_breakpoints__WEBPACK_IMPORTED_MODULE_1__/* .handleBreakpoints */ .k9)(props, propValue, styleFromPropValue);
  };
  fn.propTypes =  false ? 0 : {};
  fn.filterProps = [prop];
  return fn;
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (style);

/***/ }),

/***/ 3913:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  Z: () => (/* binding */ styleFunctionSx_defaultSxConfig)
});

// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/spacing.js + 1 modules
var spacing = __webpack_require__(9521);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/style.js
var style = __webpack_require__(3335);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/merge.js
var merge = __webpack_require__(5388);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/compose.js

function compose() {
  for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {
    styles[_key] = arguments[_key];
  }
  const handlers = styles.reduce((acc, style) => {
    style.filterProps.forEach(prop => {
      acc[prop] = style;
    });
    return acc;
  }, {});

  // false positive
  // eslint-disable-next-line react/function-component-definition
  const fn = props => {
    return Object.keys(props).reduce((acc, prop) => {
      if (handlers[prop]) {
        return (0,merge/* default */.Z)(acc, handlers[prop](props));
      }
      return acc;
    }, {});
  };
  fn.propTypes =  false ? 0 : {};
  fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);
  return fn;
}
/* harmony default export */ const esm_compose = (compose);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/breakpoints.js
var breakpoints = __webpack_require__(9074);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/borders.js





function borderTransform(value) {
  if (typeof value !== 'number') {
    return value;
  }
  return "".concat(value, "px solid");
}
function createBorderStyle(prop, transform) {
  return (0,style/* default */.ZP)({
    prop,
    themeKey: 'borders',
    transform
  });
}
const border = createBorderStyle('border', borderTransform);
const borderTop = createBorderStyle('borderTop', borderTransform);
const borderRight = createBorderStyle('borderRight', borderTransform);
const borderBottom = createBorderStyle('borderBottom', borderTransform);
const borderLeft = createBorderStyle('borderLeft', borderTransform);
const borderColor = createBorderStyle('borderColor');
const borderTopColor = createBorderStyle('borderTopColor');
const borderRightColor = createBorderStyle('borderRightColor');
const borderBottomColor = createBorderStyle('borderBottomColor');
const borderLeftColor = createBorderStyle('borderLeftColor');
const outline = createBorderStyle('outline', borderTransform);
const outlineColor = createBorderStyle('outlineColor');

// false positive
// eslint-disable-next-line react/function-component-definition
const borderRadius = props => {
  if (props.borderRadius !== undefined && props.borderRadius !== null) {
    const transformer = (0,spacing/* createUnaryUnit */.eI)(props.theme, 'shape.borderRadius', 4, 'borderRadius');
    const styleFromPropValue = propValue => ({
      borderRadius: (0,spacing/* getValue */.NA)(transformer, propValue)
    });
    return (0,breakpoints/* handleBreakpoints */.k9)(props, props.borderRadius, styleFromPropValue);
  }
  return null;
};
borderRadius.propTypes =  false ? 0 : {};
borderRadius.filterProps = ['borderRadius'];
const borders = esm_compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);
/* harmony default export */ const esm_borders = ((/* unused pure expression or super */ null && (borders)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/cssGrid.js






// false positive
// eslint-disable-next-line react/function-component-definition
const gap = props => {
  if (props.gap !== undefined && props.gap !== null) {
    const transformer = (0,spacing/* createUnaryUnit */.eI)(props.theme, 'spacing', 8, 'gap');
    const styleFromPropValue = propValue => ({
      gap: (0,spacing/* getValue */.NA)(transformer, propValue)
    });
    return (0,breakpoints/* handleBreakpoints */.k9)(props, props.gap, styleFromPropValue);
  }
  return null;
};
gap.propTypes =  false ? 0 : {};
gap.filterProps = ['gap'];

// false positive
// eslint-disable-next-line react/function-component-definition
const columnGap = props => {
  if (props.columnGap !== undefined && props.columnGap !== null) {
    const transformer = (0,spacing/* createUnaryUnit */.eI)(props.theme, 'spacing', 8, 'columnGap');
    const styleFromPropValue = propValue => ({
      columnGap: (0,spacing/* getValue */.NA)(transformer, propValue)
    });
    return (0,breakpoints/* handleBreakpoints */.k9)(props, props.columnGap, styleFromPropValue);
  }
  return null;
};
columnGap.propTypes =  false ? 0 : {};
columnGap.filterProps = ['columnGap'];

// false positive
// eslint-disable-next-line react/function-component-definition
const rowGap = props => {
  if (props.rowGap !== undefined && props.rowGap !== null) {
    const transformer = (0,spacing/* createUnaryUnit */.eI)(props.theme, 'spacing', 8, 'rowGap');
    const styleFromPropValue = propValue => ({
      rowGap: (0,spacing/* getValue */.NA)(transformer, propValue)
    });
    return (0,breakpoints/* handleBreakpoints */.k9)(props, props.rowGap, styleFromPropValue);
  }
  return null;
};
rowGap.propTypes =  false ? 0 : {};
rowGap.filterProps = ['rowGap'];
const gridColumn = (0,style/* default */.ZP)({
  prop: 'gridColumn'
});
const gridRow = (0,style/* default */.ZP)({
  prop: 'gridRow'
});
const gridAutoFlow = (0,style/* default */.ZP)({
  prop: 'gridAutoFlow'
});
const gridAutoColumns = (0,style/* default */.ZP)({
  prop: 'gridAutoColumns'
});
const gridAutoRows = (0,style/* default */.ZP)({
  prop: 'gridAutoRows'
});
const gridTemplateColumns = (0,style/* default */.ZP)({
  prop: 'gridTemplateColumns'
});
const gridTemplateRows = (0,style/* default */.ZP)({
  prop: 'gridTemplateRows'
});
const gridTemplateAreas = (0,style/* default */.ZP)({
  prop: 'gridTemplateAreas'
});
const gridArea = (0,style/* default */.ZP)({
  prop: 'gridArea'
});
const grid = esm_compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);
/* harmony default export */ const cssGrid = ((/* unused pure expression or super */ null && (grid)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/palette.js


function paletteTransform(value, userValue) {
  if (userValue === 'grey') {
    return userValue;
  }
  return value;
}
const color = (0,style/* default */.ZP)({
  prop: 'color',
  themeKey: 'palette',
  transform: paletteTransform
});
const bgcolor = (0,style/* default */.ZP)({
  prop: 'bgcolor',
  cssProperty: 'backgroundColor',
  themeKey: 'palette',
  transform: paletteTransform
});
const backgroundColor = (0,style/* default */.ZP)({
  prop: 'backgroundColor',
  themeKey: 'palette',
  transform: paletteTransform
});
const palette = esm_compose(color, bgcolor, backgroundColor);
/* harmony default export */ const esm_palette = ((/* unused pure expression or super */ null && (palette)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/sizing.js



function sizingTransform(value) {
  return value <= 1 && value !== 0 ? "".concat(value * 100, "%") : value;
}
const width = (0,style/* default */.ZP)({
  prop: 'width',
  transform: sizingTransform
});
const maxWidth = props => {
  if (props.maxWidth !== undefined && props.maxWidth !== null) {
    const styleFromPropValue = propValue => {
      var _props$theme, _props$theme2;
      const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpoints/* values */.VO[propValue];
      if (!breakpoint) {
        return {
          maxWidth: sizingTransform(propValue)
        };
      }
      if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {
        return {
          maxWidth: "".concat(breakpoint).concat(props.theme.breakpoints.unit)
        };
      }
      return {
        maxWidth: breakpoint
      };
    };
    return (0,breakpoints/* handleBreakpoints */.k9)(props, props.maxWidth, styleFromPropValue);
  }
  return null;
};
maxWidth.filterProps = ['maxWidth'];
const minWidth = (0,style/* default */.ZP)({
  prop: 'minWidth',
  transform: sizingTransform
});
const height = (0,style/* default */.ZP)({
  prop: 'height',
  transform: sizingTransform
});
const maxHeight = (0,style/* default */.ZP)({
  prop: 'maxHeight',
  transform: sizingTransform
});
const minHeight = (0,style/* default */.ZP)({
  prop: 'minHeight',
  transform: sizingTransform
});
const sizeWidth = (0,style/* default */.ZP)({
  prop: 'size',
  cssProperty: 'width',
  transform: sizingTransform
});
const sizeHeight = (0,style/* default */.ZP)({
  prop: 'size',
  cssProperty: 'height',
  transform: sizingTransform
});
const boxSizing = (0,style/* default */.ZP)({
  prop: 'boxSizing'
});
const sizing = esm_compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);
/* harmony default export */ const esm_sizing = ((/* unused pure expression or super */ null && (sizing)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js





const defaultSxConfig = {
  // borders
  border: {
    themeKey: 'borders',
    transform: borderTransform
  },
  borderTop: {
    themeKey: 'borders',
    transform: borderTransform
  },
  borderRight: {
    themeKey: 'borders',
    transform: borderTransform
  },
  borderBottom: {
    themeKey: 'borders',
    transform: borderTransform
  },
  borderLeft: {
    themeKey: 'borders',
    transform: borderTransform
  },
  borderColor: {
    themeKey: 'palette'
  },
  borderTopColor: {
    themeKey: 'palette'
  },
  borderRightColor: {
    themeKey: 'palette'
  },
  borderBottomColor: {
    themeKey: 'palette'
  },
  borderLeftColor: {
    themeKey: 'palette'
  },
  outline: {
    themeKey: 'borders',
    transform: borderTransform
  },
  outlineColor: {
    themeKey: 'palette'
  },
  borderRadius: {
    themeKey: 'shape.borderRadius',
    style: borderRadius
  },
  // palette
  color: {
    themeKey: 'palette',
    transform: paletteTransform
  },
  bgcolor: {
    themeKey: 'palette',
    cssProperty: 'backgroundColor',
    transform: paletteTransform
  },
  backgroundColor: {
    themeKey: 'palette',
    transform: paletteTransform
  },
  // spacing
  p: {
    style: spacing/* padding */.o3
  },
  pt: {
    style: spacing/* padding */.o3
  },
  pr: {
    style: spacing/* padding */.o3
  },
  pb: {
    style: spacing/* padding */.o3
  },
  pl: {
    style: spacing/* padding */.o3
  },
  px: {
    style: spacing/* padding */.o3
  },
  py: {
    style: spacing/* padding */.o3
  },
  padding: {
    style: spacing/* padding */.o3
  },
  paddingTop: {
    style: spacing/* padding */.o3
  },
  paddingRight: {
    style: spacing/* padding */.o3
  },
  paddingBottom: {
    style: spacing/* padding */.o3
  },
  paddingLeft: {
    style: spacing/* padding */.o3
  },
  paddingX: {
    style: spacing/* padding */.o3
  },
  paddingY: {
    style: spacing/* padding */.o3
  },
  paddingInline: {
    style: spacing/* padding */.o3
  },
  paddingInlineStart: {
    style: spacing/* padding */.o3
  },
  paddingInlineEnd: {
    style: spacing/* padding */.o3
  },
  paddingBlock: {
    style: spacing/* padding */.o3
  },
  paddingBlockStart: {
    style: spacing/* padding */.o3
  },
  paddingBlockEnd: {
    style: spacing/* padding */.o3
  },
  m: {
    style: spacing/* margin */.e6
  },
  mt: {
    style: spacing/* margin */.e6
  },
  mr: {
    style: spacing/* margin */.e6
  },
  mb: {
    style: spacing/* margin */.e6
  },
  ml: {
    style: spacing/* margin */.e6
  },
  mx: {
    style: spacing/* margin */.e6
  },
  my: {
    style: spacing/* margin */.e6
  },
  margin: {
    style: spacing/* margin */.e6
  },
  marginTop: {
    style: spacing/* margin */.e6
  },
  marginRight: {
    style: spacing/* margin */.e6
  },
  marginBottom: {
    style: spacing/* margin */.e6
  },
  marginLeft: {
    style: spacing/* margin */.e6
  },
  marginX: {
    style: spacing/* margin */.e6
  },
  marginY: {
    style: spacing/* margin */.e6
  },
  marginInline: {
    style: spacing/* margin */.e6
  },
  marginInlineStart: {
    style: spacing/* margin */.e6
  },
  marginInlineEnd: {
    style: spacing/* margin */.e6
  },
  marginBlock: {
    style: spacing/* margin */.e6
  },
  marginBlockStart: {
    style: spacing/* margin */.e6
  },
  marginBlockEnd: {
    style: spacing/* margin */.e6
  },
  // display
  displayPrint: {
    cssProperty: false,
    transform: value => ({
      '@media print': {
        display: value
      }
    })
  },
  display: {},
  overflow: {},
  textOverflow: {},
  visibility: {},
  whiteSpace: {},
  // flexbox
  flexBasis: {},
  flexDirection: {},
  flexWrap: {},
  justifyContent: {},
  alignItems: {},
  alignContent: {},
  order: {},
  flex: {},
  flexGrow: {},
  flexShrink: {},
  alignSelf: {},
  justifyItems: {},
  justifySelf: {},
  // grid
  gap: {
    style: gap
  },
  rowGap: {
    style: rowGap
  },
  columnGap: {
    style: columnGap
  },
  gridColumn: {},
  gridRow: {},
  gridAutoFlow: {},
  gridAutoColumns: {},
  gridAutoRows: {},
  gridTemplateColumns: {},
  gridTemplateRows: {},
  gridTemplateAreas: {},
  gridArea: {},
  // positions
  position: {},
  zIndex: {
    themeKey: 'zIndex'
  },
  top: {},
  right: {},
  bottom: {},
  left: {},
  // shadows
  boxShadow: {
    themeKey: 'shadows'
  },
  // sizing
  width: {
    transform: sizingTransform
  },
  maxWidth: {
    style: maxWidth
  },
  minWidth: {
    transform: sizingTransform
  },
  height: {
    transform: sizingTransform
  },
  maxHeight: {
    transform: sizingTransform
  },
  minHeight: {
    transform: sizingTransform
  },
  boxSizing: {},
  // typography
  fontFamily: {
    themeKey: 'typography'
  },
  fontSize: {
    themeKey: 'typography'
  },
  fontStyle: {
    themeKey: 'typography'
  },
  fontWeight: {
    themeKey: 'typography'
  },
  letterSpacing: {},
  textTransform: {},
  lineHeight: {},
  textAlign: {},
  typography: {
    cssProperty: false,
    themeKey: 'typography'
  }
};
/* harmony default export */ const styleFunctionSx_defaultSxConfig = (defaultSxConfig);

/***/ }),

/***/ 761:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ extendSxProp)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1010);
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3031);
/* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8836);
/* harmony import */ var _defaultSxConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3913);


const _excluded = ["sx"];


const splitProps = props => {
  var _props$theme$unstable, _props$theme;
  const result = {
    systemProps: {},
    otherProps: {}
  };
  const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : _defaultSxConfig__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z;
  Object.keys(props).forEach(prop => {
    if (config[prop]) {
      result.systemProps[prop] = props[prop];
    } else {
      result.otherProps[prop] = props[prop];
    }
  });
  return result;
};
function extendSxProp(props) {
  const {
      sx: inSx
    } = props,
    other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(props, _excluded);
  const {
    systemProps,
    otherProps
  } = splitProps(other);
  let finalSx;
  if (Array.isArray(inSx)) {
    finalSx = [systemProps, ...inSx];
  } else if (typeof inSx === 'function') {
    finalSx = function () {
      const result = inSx(...arguments);
      if (!(0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_2__/* .isPlainObject */ .P)(result)) {
        return systemProps;
      }
      return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, systemProps, result);
    };
  } else {
    finalSx = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, systemProps, inSx);
  }
  return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, otherProps, {
    sx: finalSx
  });
}

/***/ }),

/***/ 1238:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* reexport safe */ _styleFunctionSx__WEBPACK_IMPORTED_MODULE_0__.Z),
/* harmony export */   extendSxProp: () => (/* reexport safe */ _extendSxProp__WEBPACK_IMPORTED_MODULE_1__.Z),
/* harmony export */   unstable_createStyleFunctionSx: () => (/* reexport safe */ _styleFunctionSx__WEBPACK_IMPORTED_MODULE_0__.n),
/* harmony export */   unstable_defaultSxConfig: () => (/* reexport safe */ _defaultSxConfig__WEBPACK_IMPORTED_MODULE_2__.Z)
/* harmony export */ });
/* harmony import */ var _styleFunctionSx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7692);
/* harmony import */ var _extendSxProp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(761);
/* harmony import */ var _defaultSxConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3913);





/***/ }),

/***/ 7692:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   n: () => (/* binding */ unstable_createStyleFunctionSx)
/* harmony export */ });
/* harmony import */ var _mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4656);
/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5388);
/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3335);
/* harmony import */ var _breakpoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9074);
/* harmony import */ var _defaultSxConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3913);





function objectsHaveSameKeys() {
  for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {
    objects[_key] = arguments[_key];
  }
  const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);
  const union = new Set(allKeys);
  return objects.every(object => union.size === Object.keys(object).length);
}
function callIfFn(maybeFn, arg) {
  return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;
}

// eslint-disable-next-line @typescript-eslint/naming-convention
function unstable_createStyleFunctionSx() {
  function getThemeValue(prop, val, theme, config) {
    const props = {
      [prop]: val,
      theme
    };
    const options = config[prop];
    if (!options) {
      return {
        [prop]: val
      };
    }
    const {
      cssProperty = prop,
      themeKey,
      transform,
      style
    } = options;
    if (val == null) {
      return null;
    }

    // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123
    if (themeKey === 'typography' && val === 'inherit') {
      return {
        [prop]: val
      };
    }
    const themeMapping = (0,_style__WEBPACK_IMPORTED_MODULE_0__/* .getPath */ .DW)(theme, themeKey) || {};
    if (style) {
      return style(props);
    }
    const styleFromPropValue = propValueFinal => {
      let value = (0,_style__WEBPACK_IMPORTED_MODULE_0__/* .getStyleValue */ .Jq)(themeMapping, transform, propValueFinal);
      if (propValueFinal === value && typeof propValueFinal === 'string') {
        // Haven't found value
        value = (0,_style__WEBPACK_IMPORTED_MODULE_0__/* .getStyleValue */ .Jq)(themeMapping, transform, "".concat(prop).concat(propValueFinal === 'default' ? '' : (0,_mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(propValueFinal)), propValueFinal);
      }
      if (cssProperty === false) {
        return value;
      }
      return {
        [cssProperty]: value
      };
    };
    return (0,_breakpoints__WEBPACK_IMPORTED_MODULE_2__/* .handleBreakpoints */ .k9)(props, val, styleFromPropValue);
  }
  function styleFunctionSx(props) {
    var _theme$unstable_sxCon;
    const {
      sx,
      theme = {}
    } = props || {};
    if (!sx) {
      return null; // Emotion & styled-components will neglect null
    }

    const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : _defaultSxConfig__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z;

    /*
     * Receive `sxInput` as object or callback
     * and then recursively check keys & values to create media query object styles.
     * (the result will be used in `styled`)
     */
    function traverse(sxInput) {
      let sxObject = sxInput;
      if (typeof sxInput === 'function') {
        sxObject = sxInput(theme);
      } else if (typeof sxInput !== 'object') {
        // value
        return sxInput;
      }
      if (!sxObject) {
        return null;
      }
      const emptyBreakpoints = (0,_breakpoints__WEBPACK_IMPORTED_MODULE_2__/* .createEmptyBreakpointObject */ .W8)(theme.breakpoints);
      const breakpointsKeys = Object.keys(emptyBreakpoints);
      let css = emptyBreakpoints;
      Object.keys(sxObject).forEach(styleKey => {
        const value = callIfFn(sxObject[styleKey], theme);
        if (value !== null && value !== undefined) {
          if (typeof value === 'object') {
            if (config[styleKey]) {
              css = (0,_merge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(css, getThemeValue(styleKey, value, theme, config));
            } else {
              const breakpointsValues = (0,_breakpoints__WEBPACK_IMPORTED_MODULE_2__/* .handleBreakpoints */ .k9)({
                theme
              }, value, x => ({
                [styleKey]: x
              }));
              if (objectsHaveSameKeys(breakpointsValues, value)) {
                css[styleKey] = styleFunctionSx({
                  sx: value,
                  theme
                });
              } else {
                css = (0,_merge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(css, breakpointsValues);
              }
            }
          } else {
            css = (0,_merge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(css, getThemeValue(styleKey, value, theme, config));
          }
        }
      });
      return (0,_breakpoints__WEBPACK_IMPORTED_MODULE_2__/* .removeUnusedBreakpoints */ .L7)(breakpointsKeys, css);
    }
    return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);
  }
  return styleFunctionSx;
}
const styleFunctionSx = unstable_createStyleFunctionSx();
styleFunctionSx.filterProps = ['sx'];
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (styleFunctionSx);

/***/ }),

/***/ 234:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* unused harmony export systemDefaultTheme */
/* harmony import */ var _createTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2332);
/* harmony import */ var _useThemeWithoutDefault__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4601);
'use client';



const systemDefaultTheme = (0,_createTheme__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)();
function useTheme() {
  let defaultTheme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : systemDefaultTheme;
  return (0,_useThemeWithoutDefault__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(defaultTheme);
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useTheme);

/***/ }),

/***/ 2473:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ getThemeProps)
/* harmony export */ });
/* harmony import */ var _mui_utils_resolveProps__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3928);

function getThemeProps(params) {
  const {
    theme,
    name,
    props
  } = params;
  if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {
    return props;
  }
  return (0,_mui_utils_resolveProps__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(theme.components[name].defaultProps, props);
}

/***/ }),

/***/ 3696:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ useThemeProps)
/* harmony export */ });
/* harmony import */ var _getThemeProps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2473);
/* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(234);
'use client';



function useThemeProps(_ref) {
  let {
    props,
    name,
    defaultTheme,
    themeId
  } = _ref;
  let theme = (0,_useTheme__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(defaultTheme);
  if (themeId) {
    theme = theme[themeId] || theme;
  }
  const mergedProps = (0,_getThemeProps__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({
    theme,
    name,
    props
  });
  return mergedProps;
}

/***/ }),

/***/ 4601:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
/* harmony import */ var _mui_styled_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2412);
'use client';



function isObjectEmpty(obj) {
  return Object.keys(obj).length === 0;
}
function useTheme() {
  let defaultTheme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  const contextTheme = react__WEBPACK_IMPORTED_MODULE_0__.useContext(_mui_styled_engine__WEBPACK_IMPORTED_MODULE_1__.T);
  return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useTheme);

/***/ }),

/***/ 3705:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
const defaultGenerator = componentName => componentName;
const createClassNameGenerator = () => {
  let generate = defaultGenerator;
  return {
    configure(generator) {
      generate = generator;
    },
    generate(componentName) {
      return generate(componentName);
    },
    reset() {
      generate = defaultGenerator;
    }
  };
};
const ClassNameGenerator = createClassNameGenerator();
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ClassNameGenerator);

/***/ }),

/***/ 4656:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ capitalize)
/* harmony export */ });
/* harmony import */ var _mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4451);

// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.
//
// A strict capitalization should uppercase the first letter of each word in the sentence.
// We only handle the first word.
function capitalize(string) {
  if (typeof string !== 'string') {
    throw new Error( false ? 0 : (0,_mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(7));
  }
  return string.charAt(0).toUpperCase() + string.slice(1);
}

/***/ }),

/***/ 6814:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* reexport safe */ _capitalize__WEBPACK_IMPORTED_MODULE_0__.Z)
/* harmony export */ });
/* harmony import */ var _capitalize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4656);


/***/ }),

/***/ 5288:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "default": () => (/* reexport */ clamp_clamp)
});

;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/clamp/clamp.js
function clamp(val) {
  let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MIN_SAFE_INTEGER;
  let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.MAX_SAFE_INTEGER;
  return Math.max(min, Math.min(val, max));
}
/* harmony default export */ const clamp_clamp = (clamp);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/clamp/index.js


/***/ }),

/***/ 5923:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ composeClasses)
/* harmony export */ });
function composeClasses(slots, getUtilityClass) {
  let classes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
  const output = {};
  Object.keys(slots).forEach(
  // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.
  // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208
  slot => {
    output[slot] = slots[slot].reduce((acc, key) => {
      if (key) {
        const utilityClass = getUtilityClass(key);
        if (utilityClass !== '') {
          acc.push(utilityClass);
        }
        if (classes && classes[key]) {
          acc.push(classes[key]);
        }
      }
      return acc;
    }, []).join(' ');
  });
  return output;
}

/***/ }),

/***/ 3444:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ createChainedFunction)
/* harmony export */ });
/**
 * Safe chained function.
 *
 * Will only create a new function if needed,
 * otherwise will pass back existing functions or null.
 */
function createChainedFunction() {
  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {
    funcs[_key] = arguments[_key];
  }
  return funcs.reduce((acc, func) => {
    if (func == null) {
      return acc;
    }
    return function chainedFunction() {
      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
        args[_key2] = arguments[_key2];
      }
      acc.apply(this, args);
      func.apply(this, args);
    };
  }, () => {});
}

/***/ }),

/***/ 9082:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ debounce)
/* harmony export */ });
// Corresponds to 10 frames at 60 Hz.
// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.
function debounce(func) {
  let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;
  let timeout;
  function debounced() {
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    const later = () => {
      // @ts-ignore
      func.apply(this, args);
    };
    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
  }
  debounced.clear = () => {
    clearTimeout(timeout);
  };
  return debounced;
}

/***/ }),

/***/ 8836:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   P: () => (/* binding */ isPlainObject),
/* harmony export */   Z: () => (/* binding */ deepmerge)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010);

// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js
function isPlainObject(item) {
  if (typeof item !== 'object' || item === null) {
    return false;
  }
  const prototype = Object.getPrototypeOf(item);
  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);
}
function deepClone(source) {
  if (!isPlainObject(source)) {
    return source;
  }
  const output = {};
  Object.keys(source).forEach(key => {
    output[key] = deepClone(source[key]);
  });
  return output;
}
function deepmerge(target, source) {
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
    clone: true
  };
  const output = options.clone ? (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, target) : target;
  if (isPlainObject(target) && isPlainObject(source)) {
    Object.keys(source).forEach(key => {
      // Avoid prototype pollution
      if (key === '__proto__') {
        return;
      }
      if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {
        // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.
        output[key] = deepmerge(target[key], source[key], options);
      } else if (options.clone) {
        output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];
      } else {
        output[key] = source[key];
      }
    });
  }
  return output;
}

/***/ }),

/***/ 9499:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* reexport safe */ _deepmerge__WEBPACK_IMPORTED_MODULE_0__.Z),
/* harmony export */   isPlainObject: () => (/* reexport safe */ _deepmerge__WEBPACK_IMPORTED_MODULE_0__.P)
/* harmony export */ });
/* harmony import */ var _deepmerge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8836);



/***/ }),

/***/ 4451:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ formatMuiErrorMessage)
/* harmony export */ });
/**
 * WARNING: Don't import this directly.
 * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.
 * @param {number} code
 */
function formatMuiErrorMessage(code) {
  // Apply babel-plugin-transform-template-literals in loose mode
  // loose mode is safe if we're concatenating primitives
  // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose
  /* eslint-disable prefer-template */
  let url = 'https://mui.com/production-error/?code=' + code;
  for (let i = 1; i < arguments.length; i += 1) {
    // rest params over-transpile for this case
    // eslint-disable-next-line prefer-rest-params
    url += '&args[]=' + encodeURIComponent(arguments[i]);
  }
  return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';
  /* eslint-enable prefer-template */
}

/***/ }),

/***/ 3001:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* reexport safe */ _formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__.Z)
/* harmony export */ });
/* harmony import */ var _formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4451);


/***/ }),

/***/ 8092:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ZP: () => (/* binding */ generateUtilityClass)
/* harmony export */ });
/* unused harmony exports globalStateClasses, isGlobalState */
/* harmony import */ var _ClassNameGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3705);

const globalStateClasses = {
  active: 'active',
  checked: 'checked',
  completed: 'completed',
  disabled: 'disabled',
  error: 'error',
  expanded: 'expanded',
  focused: 'focused',
  focusVisible: 'focusVisible',
  open: 'open',
  readOnly: 'readOnly',
  required: 'required',
  selected: 'selected'
};
function generateUtilityClass(componentName, slot) {
  let globalStatePrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Mui';
  const globalStateClass = globalStateClasses[slot];
  return globalStateClass ? "".concat(globalStatePrefix, "-").concat(globalStateClass) : "".concat(_ClassNameGenerator__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.generate(componentName), "-").concat(slot);
}
function isGlobalState(slot) {
  return globalStateClasses[slot] !== undefined;
}

/***/ }),

/***/ 3453:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ generateUtilityClasses)
/* harmony export */ });
/* harmony import */ var _generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8092);

function generateUtilityClasses(componentName, slots) {
  let globalStatePrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Mui';
  const result = {};
  slots.forEach(slot => {
    result[slot] = (0,_generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .ZP)(componentName, slot, globalStatePrefix);
  });
  return result;
}

/***/ }),

/***/ 8853:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "default": () => (/* reexport */ getDisplayName),
  getFunctionName: () => (/* reexport */ getFunctionName)
});

// EXTERNAL MODULE: ./node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/index.js
var react_is = __webpack_require__(8890);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/getDisplayName/getDisplayName.js


// Simplified polyfill for IE11 support
// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3
const fnNameMatchRegex = /^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;
function getFunctionName(fn) {
  const match = "".concat(fn).match(fnNameMatchRegex);
  const name = match && match[1];
  return name || '';
}
function getFunctionComponentName(Component) {
  let fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  return Component.displayName || Component.name || getFunctionName(Component) || fallback;
}
function getWrappedName(outerType, innerType, wrapperName) {
  const functionName = getFunctionComponentName(innerType);
  return outerType.displayName || (functionName !== '' ? "".concat(wrapperName, "(").concat(functionName, ")") : wrapperName);
}

/**
 * cherry-pick from
 * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js
 * originally forked from recompose/getDisplayName with added IE11 support
 */
function getDisplayName(Component) {
  if (Component == null) {
    return undefined;
  }
  if (typeof Component === 'string') {
    return Component;
  }
  if (typeof Component === 'function') {
    return getFunctionComponentName(Component, 'Component');
  }

  // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`
  if (typeof Component === 'object') {
    switch (Component.$$typeof) {
      case react_is.ForwardRef:
        return getWrappedName(Component, Component.render, 'ForwardRef');
      case react_is.Memo:
        return getWrappedName(Component, Component.type, 'memo');
      default:
        return undefined;
    }
  }
  return undefined;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/getDisplayName/index.js



/***/ }),

/***/ 1563:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ ownerDocument)
/* harmony export */ });
function ownerDocument(node) {
  return node && node.ownerDocument || document;
}

/***/ }),

/***/ 6029:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ ownerWindow)
/* harmony export */ });
/* harmony import */ var _ownerDocument__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1563);

function ownerWindow(node) {
  const doc = (0,_ownerDocument__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(node);
  return doc.defaultView || window;
}

/***/ }),

/***/ 3928:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ resolveProps)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010);

/**
 * Add keys, values of `defaultProps` that does not exist in `props`
 * @param {object} defaultProps
 * @param {object} props
 * @returns {object} resolved props
 */
function resolveProps(defaultProps, props) {
  const output = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, props);
  Object.keys(defaultProps).forEach(propName => {
    if (propName.toString().match(/^(components|slots)$/)) {
      output[propName] = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, defaultProps[propName], output[propName]);
    } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {
      const defaultSlotProps = defaultProps[propName] || {};
      const slotProps = props[propName];
      output[propName] = {};
      if (!slotProps || !Object.keys(slotProps)) {
        // Reduce the iteration if the slot props is empty
        output[propName] = defaultSlotProps;
      } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {
        // Reduce the iteration if the default slot props is empty
        output[propName] = slotProps;
      } else {
        output[propName] = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, slotProps);
        Object.keys(defaultSlotProps).forEach(slotPropName => {
          output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);
        });
      }
    } else if (output[propName] === undefined) {
      output[propName] = defaultProps[propName];
    }
  });
  return output;
}

/***/ }),

/***/ 9109:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ setRef)
/* harmony export */ });
/**
 * TODO v5: consider making it private
 *
 * passes {value} to {ref}
 *
 * WARNING: Be sure to only call this inside a callback that is passed as a ref.
 * Otherwise, make sure to cleanup the previous {ref} if it changes. See
 * https://github.com/mui/material-ui/issues/13539
 *
 * Useful if you want to expose the ref of an inner component to the public API
 * while still using it inside the component.
 * @param ref A ref callback or ref object. If anything falsy, this is a no-op.
 */
function setRef(ref, value) {
  if (typeof ref === 'function') {
    ref(value);
  } else if (ref) {
    ref.current = value;
  }
}

/***/ }),

/***/ 4536:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
'use client';



/**
 * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.
 * This is useful for effects that are only needed for client-side rendering but not for SSR.
 *
 * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85
 * and confirm it doesn't apply to your use-case.
 */
const useEnhancedEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useEnhancedEffect);

/***/ }),

/***/ 9210:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
/* harmony import */ var _useEnhancedEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4536);
'use client';




/**
 * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892
 * See RFC in https://github.com/reactjs/rfcs/pull/220
 */

function useEventCallback(fn) {
  const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(fn);
  (0,_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(() => {
    ref.current = fn;
  });
  return react__WEBPACK_IMPORTED_MODULE_0__.useRef(function () {
    return (
      // @ts-expect-error hide `this`
      (0, ref.current)(...arguments)
    );
  }).current;
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useEventCallback);

/***/ }),

/***/ 4114:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ useForkRef)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
/* harmony import */ var _setRef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9109);
'use client';



function useForkRef() {
  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
    refs[_key] = arguments[_key];
  }
  /**
   * This will create a new function if the refs passed to this hook change and are all defined.
   * This means react will call the old forkRef with `null` and the new forkRef
   * with the ref. Cleanup naturally emerges from this behavior.
   */
  return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {
    if (refs.every(ref => ref == null)) {
      return null;
    }
    return instance => {
      refs.forEach(ref => {
        (0,_setRef__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(ref, instance);
      });
    };
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, refs);
}

/***/ }),

/***/ 2179:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache;
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ useId)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
'use client';


let globalId = 0;
function useGlobalId(idOverride) {
  const [defaultId, setDefaultId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(idOverride);
  const id = idOverride || defaultId;
  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {
    if (defaultId == null) {
      // Fallback to this default id when possible.
      // Use the incrementing value for client-side rendering only.
      // We can't use it server-side.
      // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem
      globalId += 1;
      setDefaultId("mui-".concat(globalId));
    }
  }, [defaultId]);
  return id;
}

// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814
const maybeReactUseId = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))['useId'.toString()];
/**
 *
 * @example <div id={useId()} />
 * @param idOverride
 * @returns {string}
 */
function useId(idOverride) {
  if (maybeReactUseId !== undefined) {
    const reactId = maybeReactUseId();
    return idOverride != null ? idOverride : reactId;
  }
  // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.
  return useGlobalId(idOverride);
}

/***/ }),

/***/ 3185:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ useIsFocusVisible)
/* harmony export */ });
/* unused harmony export teardown */
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
/* harmony import */ var _useTimeout_useTimeout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5859);
'use client';

// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js


let hadKeyboardEvent = true;
let hadFocusVisibleRecently = false;
const hadFocusVisibleRecentlyTimeout = new _useTimeout_useTimeout__WEBPACK_IMPORTED_MODULE_1__/* .Timeout */ .V();
const inputTypesWhitelist = {
  text: true,
  search: true,
  url: true,
  tel: true,
  email: true,
  password: true,
  number: true,
  date: true,
  month: true,
  week: true,
  time: true,
  datetime: true,
  'datetime-local': true
};

/**
 * Computes whether the given element should automatically trigger the
 * `focus-visible` class being added, i.e. whether it should always match
 * `:focus-visible` when focused.
 * @param {Element} node
 * @returns {boolean}
 */
function focusTriggersKeyboardModality(node) {
  const {
    type,
    tagName
  } = node;
  if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {
    return true;
  }
  if (tagName === 'TEXTAREA' && !node.readOnly) {
    return true;
  }
  if (node.isContentEditable) {
    return true;
  }
  return false;
}

/**
 * Keep track of our keyboard modality state with `hadKeyboardEvent`.
 * If the most recent user interaction was via the keyboard;
 * and the key press did not include a meta, alt/option, or control key;
 * then the modality is keyboard. Otherwise, the modality is not keyboard.
 * @param {KeyboardEvent} event
 */
function handleKeyDown(event) {
  if (event.metaKey || event.altKey || event.ctrlKey) {
    return;
  }
  hadKeyboardEvent = true;
}

/**
 * If at any point a user clicks with a pointing device, ensure that we change
 * the modality away from keyboard.
 * This avoids the situation where a user presses a key on an already focused
 * element, and then clicks on a different element, focusing it with a
 * pointing device, while we still think we're in keyboard modality.
 */
function handlePointerDown() {
  hadKeyboardEvent = false;
}
function handleVisibilityChange() {
  if (this.visibilityState === 'hidden') {
    // If the tab becomes active again, the browser will handle calling focus
    // on the element (Safari actually calls it twice).
    // If this tab change caused a blur on an element with focus-visible,
    // re-apply the class when the user switches back to the tab.
    if (hadFocusVisibleRecently) {
      hadKeyboardEvent = true;
    }
  }
}
function prepare(doc) {
  doc.addEventListener('keydown', handleKeyDown, true);
  doc.addEventListener('mousedown', handlePointerDown, true);
  doc.addEventListener('pointerdown', handlePointerDown, true);
  doc.addEventListener('touchstart', handlePointerDown, true);
  doc.addEventListener('visibilitychange', handleVisibilityChange, true);
}
function teardown(doc) {
  doc.removeEventListener('keydown', handleKeyDown, true);
  doc.removeEventListener('mousedown', handlePointerDown, true);
  doc.removeEventListener('pointerdown', handlePointerDown, true);
  doc.removeEventListener('touchstart', handlePointerDown, true);
  doc.removeEventListener('visibilitychange', handleVisibilityChange, true);
}
function isFocusVisible(event) {
  const {
    target
  } = event;
  try {
    return target.matches(':focus-visible');
  } catch (error) {
    // Browsers not implementing :focus-visible will throw a SyntaxError.
    // We use our own heuristic for those browsers.
    // Rethrow might be better if it's not the expected error but do we really
    // want to crash if focus-visible malfunctioned?
  }

  // No need for validFocusTarget check. The user does that by attaching it to
  // focusable events only.
  return hadKeyboardEvent || focusTriggersKeyboardModality(target);
}
function useIsFocusVisible() {
  const ref = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => {
    if (node != null) {
      prepare(node.ownerDocument);
    }
  }, []);
  const isFocusVisibleRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);

  /**
   * Should be called if a blur event is fired
   */
  function handleBlurVisible() {
    // checking against potential state variable does not suffice if we focus and blur synchronously.
    // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.
    // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.
    // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751
    // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).
    if (isFocusVisibleRef.current) {
      // To detect a tab/window switch, we look for a blur event followed
      // rapidly by a visibility change.
      // If we don't see a visibility change within 100ms, it's probably a
      // regular focus change.
      hadFocusVisibleRecently = true;
      hadFocusVisibleRecentlyTimeout.start(100, () => {
        hadFocusVisibleRecently = false;
      });
      isFocusVisibleRef.current = false;
      return true;
    }
    return false;
  }

  /**
   * Should be called if a blur event is fired
   */
  function handleFocusVisible(event) {
    if (isFocusVisible(event)) {
      isFocusVisibleRef.current = true;
      return true;
    }
    return false;
  }
  return {
    isFocusVisibleRef,
    onFocus: handleFocusVisible,
    onBlur: handleBlurVisible,
    ref
  };
}

/***/ }),

/***/ 5794:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ useLazyRef)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
'use client';


const UNINITIALIZED = {};

/**
 * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional
 * initialization argument, so the initialization function doesn't need to be an inline closure.
 *
 * @usage
 *   const ref = useLazyRef(sortColumns, columns)
 */
function useLazyRef(init, initArg) {
  const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(UNINITIALIZED);
  if (ref.current === UNINITIALIZED) {
    ref.current = init(initArg);
  }
  return ref;
}

/***/ }),

/***/ 2127:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ useOnMount)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948);
'use client';


const EMPTY = [];

/**
 * A React.useEffect equivalent that runs once, when the component is mounted.
 */
function useOnMount(fn) {
  /* eslint-disable react-hooks/exhaustive-deps */
  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(fn, EMPTY);
  /* eslint-enable react-hooks/exhaustive-deps */
}

/***/ }),

/***/ 5859:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   V: () => (/* binding */ Timeout),
/* harmony export */   Z: () => (/* binding */ useTimeout)
/* harmony export */ });
/* harmony import */ var _useLazyRef_useLazyRef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5794);
/* harmony import */ var _useOnMount_useOnMount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2127);
'use client';



class Timeout {
  constructor() {
    this.currentId = null;
    this.clear = () => {
      if (this.currentId !== null) {
        clearTimeout(this.currentId);
        this.currentId = null;
      }
    };
    this.disposeEffect = () => {
      return this.clear;
    };
  }
  static create() {
    return new Timeout();
  }
  /**
   * Executes `fn` after `delay`, clearing any previously scheduled call.
   */
  start(delay, fn) {
    this.clear();
    this.currentId = setTimeout(() => {
      this.currentId = null;
      fn();
    }, delay);
  }
}
function useTimeout() {
  const timeout = (0,_useLazyRef_useLazyRef__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(Timeout.create).current;
  (0,_useOnMount_useOnMount__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(timeout.disposeEffect);
  return timeout;
}

/***/ }),

/***/ 6501:
/***/ (function(__unused_webpack_module, exports) {

(function (global, factory) {
   true ? factory(exports) : 0;
})(this, function (exports) {
  'use strict';

  // This file was generated. Do not modify manually!
  var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];

  // This file was generated. Do not modify manually!
  var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];

  // This file was generated. Do not modify manually!
  var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";

  // This file was generated. Do not modify manually!
  var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";

  // These are a run-length and offset encoded representation of the
  // >0xffff code points that are a valid part of identifiers. The
  // offset starts at 0x10000, and each pair of numbers represents an
  // offset to the next range, and then a size of the range.

  // Reserved word lists for various dialects of the language

  var reservedWords = {
    3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",
    5: "class enum extends super const export import",
    6: "enum",
    strict: "implements interface let package private protected public static yield",
    strictBind: "eval arguments"
  };

  // And the keywords

  var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this";
  var keywords$1 = {
    5: ecma5AndLessKeywords,
    "5module": ecma5AndLessKeywords + " export import",
    6: ecma5AndLessKeywords + " const class extends export import super"
  };
  var keywordRelationalOperator = /^in(stanceof)?$/;

  // ## Character categories

  var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
  var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");

  // This has a complexity linear to the value of the code. The
  // assumption is that looking up astral identifier characters is
  // rare.
  function isInAstralSet(code, set) {
    var pos = 0x10000;
    for (var i = 0; i < set.length; i += 2) {
      pos += set[i];
      if (pos > code) {
        return false;
      }
      pos += set[i + 1];
      if (pos >= code) {
        return true;
      }
    }
    return false;
  }

  // Test whether a given character code starts an identifier.

  function isIdentifierStart(code, astral) {
    if (code < 65) {
      return code === 36;
    }
    if (code < 91) {
      return true;
    }
    if (code < 97) {
      return code === 95;
    }
    if (code < 123) {
      return true;
    }
    if (code <= 0xffff) {
      return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
    }
    if (astral === false) {
      return false;
    }
    return isInAstralSet(code, astralIdentifierStartCodes);
  }

  // Test whether a given character is part of an identifier.

  function isIdentifierChar(code, astral) {
    if (code < 48) {
      return code === 36;
    }
    if (code < 58) {
      return true;
    }
    if (code < 65) {
      return false;
    }
    if (code < 91) {
      return true;
    }
    if (code < 97) {
      return code === 95;
    }
    if (code < 123) {
      return true;
    }
    if (code <= 0xffff) {
      return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
    }
    if (astral === false) {
      return false;
    }
    return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
  }

  // ## Token types

  // The assignment of fine-grained, information-carrying type objects
  // allows the tokenizer to store the information it has about a
  // token in a way that is very cheap for the parser to look up.

  // All token type variables start with an underscore, to make them
  // easy to recognize.

  // The `beforeExpr` property is used to disambiguate between regular
  // expressions and divisions. It is set on all token types that can
  // be followed by an expression (thus, a slash after them would be a
  // regular expression).
  //
  // The `startsExpr` property is used to check if the token ends a
  // `yield` expression. It is set on all token types that either can
  // directly start an expression (like a quotation mark) or can
  // continue an expression (like the body of a string).
  //
  // `isLoop` marks a keyword as starting a loop, which is important
  // to know when parsing a label, in order to allow or disallow
  // continue jumps to that label.

  var TokenType = function TokenType(label, conf) {
    if (conf === void 0) conf = {};
    this.label = label;
    this.keyword = conf.keyword;
    this.beforeExpr = !!conf.beforeExpr;
    this.startsExpr = !!conf.startsExpr;
    this.isLoop = !!conf.isLoop;
    this.isAssign = !!conf.isAssign;
    this.prefix = !!conf.prefix;
    this.postfix = !!conf.postfix;
    this.binop = conf.binop || null;
    this.updateContext = null;
  };
  function binop(name, prec) {
    return new TokenType(name, {
      beforeExpr: true,
      binop: prec
    });
  }
  var beforeExpr = {
      beforeExpr: true
    },
    startsExpr = {
      startsExpr: true
    };

  // Map keyword names to token types.

  var keywords = {};

  // Succinct definitions of keyword token types
  function kw(name, options) {
    if (options === void 0) options = {};
    options.keyword = name;
    return keywords[name] = new TokenType(name, options);
  }
  var types$1 = {
    num: new TokenType("num", startsExpr),
    regexp: new TokenType("regexp", startsExpr),
    string: new TokenType("string", startsExpr),
    name: new TokenType("name", startsExpr),
    privateId: new TokenType("privateId", startsExpr),
    eof: new TokenType("eof"),
    // Punctuation token types.
    bracketL: new TokenType("[", {
      beforeExpr: true,
      startsExpr: true
    }),
    bracketR: new TokenType("]"),
    braceL: new TokenType("{", {
      beforeExpr: true,
      startsExpr: true
    }),
    braceR: new TokenType("}"),
    parenL: new TokenType("(", {
      beforeExpr: true,
      startsExpr: true
    }),
    parenR: new TokenType(")"),
    comma: new TokenType(",", beforeExpr),
    semi: new TokenType(";", beforeExpr),
    colon: new TokenType(":", beforeExpr),
    dot: new TokenType("."),
    question: new TokenType("?", beforeExpr),
    questionDot: new TokenType("?."),
    arrow: new TokenType("=>", beforeExpr),
    template: new TokenType("template"),
    invalidTemplate: new TokenType("invalidTemplate"),
    ellipsis: new TokenType("...", beforeExpr),
    backQuote: new TokenType("`", startsExpr),
    dollarBraceL: new TokenType("${", {
      beforeExpr: true,
      startsExpr: true
    }),
    // Operators. These carry several kinds of properties to help the
    // parser use them properly (the presence of these properties is
    // what categorizes them as operators).
    //
    // `binop`, when present, specifies that this operator is a binary
    // operator, and will refer to its precedence.
    //
    // `prefix` and `postfix` mark the operator as a prefix or postfix
    // unary operator.
    //
    // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as
    // binary operators with a very low precedence, that should result
    // in AssignmentExpression nodes.

    eq: new TokenType("=", {
      beforeExpr: true,
      isAssign: true
    }),
    assign: new TokenType("_=", {
      beforeExpr: true,
      isAssign: true
    }),
    incDec: new TokenType("++/--", {
      prefix: true,
      postfix: true,
      startsExpr: true
    }),
    prefix: new TokenType("!/~", {
      beforeExpr: true,
      prefix: true,
      startsExpr: true
    }),
    logicalOR: binop("||", 1),
    logicalAND: binop("&&", 2),
    bitwiseOR: binop("|", 3),
    bitwiseXOR: binop("^", 4),
    bitwiseAND: binop("&", 5),
    equality: binop("==/!=/===/!==", 6),
    relational: binop("</>/<=/>=", 7),
    bitShift: binop("<</>>/>>>", 8),
    plusMin: new TokenType("+/-", {
      beforeExpr: true,
      binop: 9,
      prefix: true,
      startsExpr: true
    }),
    modulo: binop("%", 10),
    star: binop("*", 10),
    slash: binop("/", 10),
    starstar: new TokenType("**", {
      beforeExpr: true
    }),
    coalesce: binop("??", 1),
    // Keyword token types.
    _break: kw("break"),
    _case: kw("case", beforeExpr),
    _catch: kw("catch"),
    _continue: kw("continue"),
    _debugger: kw("debugger"),
    _default: kw("default", beforeExpr),
    _do: kw("do", {
      isLoop: true,
      beforeExpr: true
    }),
    _else: kw("else", beforeExpr),
    _finally: kw("finally"),
    _for: kw("for", {
      isLoop: true
    }),
    _function: kw("function", startsExpr),
    _if: kw("if"),
    _return: kw("return", beforeExpr),
    _switch: kw("switch"),
    _throw: kw("throw", beforeExpr),
    _try: kw("try"),
    _var: kw("var"),
    _const: kw("const"),
    _while: kw("while", {
      isLoop: true
    }),
    _with: kw("with"),
    _new: kw("new", {
      beforeExpr: true,
      startsExpr: true
    }),
    _this: kw("this", startsExpr),
    _super: kw("super", startsExpr),
    _class: kw("class", startsExpr),
    _extends: kw("extends", beforeExpr),
    _export: kw("export"),
    _import: kw("import", startsExpr),
    _null: kw("null", startsExpr),
    _true: kw("true", startsExpr),
    _false: kw("false", startsExpr),
    _in: kw("in", {
      beforeExpr: true,
      binop: 7
    }),
    _instanceof: kw("instanceof", {
      beforeExpr: true,
      binop: 7
    }),
    _typeof: kw("typeof", {
      beforeExpr: true,
      prefix: true,
      startsExpr: true
    }),
    _void: kw("void", {
      beforeExpr: true,
      prefix: true,
      startsExpr: true
    }),
    _delete: kw("delete", {
      beforeExpr: true,
      prefix: true,
      startsExpr: true
    })
  };

  // Matches a whole line break (where CRLF is considered a single
  // line break). Used to count lines.

  var lineBreak = /\r\n?|\n|\u2028|\u2029/;
  var lineBreakG = new RegExp(lineBreak.source, "g");
  function isNewLine(code) {
    return code === 10 || code === 13 || code === 0x2028 || code === 0x2029;
  }
  function nextLineBreak(code, from, end) {
    if (end === void 0) end = code.length;
    for (var i = from; i < end; i++) {
      var next = code.charCodeAt(i);
      if (isNewLine(next)) {
        return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1;
      }
    }
    return -1;
  }
  var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/;
  var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
  var ref = Object.prototype;
  var hasOwnProperty = ref.hasOwnProperty;
  var toString = ref.toString;
  var hasOwn = Object.hasOwn || function (obj, propName) {
    return hasOwnProperty.call(obj, propName);
  };
  var isArray = Array.isArray || function (obj) {
    return toString.call(obj) === "[object Array]";
  };
  var regexpCache = Object.create(null);
  function wordsRegexp(words) {
    return regexpCache[words] || (regexpCache[words] = new RegExp("^(?:" + words.replace(/ /g, "|") + ")$"));
  }
  function codePointToString(code) {
    // UTF-16 Decoding
    if (code <= 0xFFFF) {
      return String.fromCharCode(code);
    }
    code -= 0x10000;
    return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00);
  }
  var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/;

  // These are used when `options.locations` is on, for the
  // `startLoc` and `endLoc` properties.

  var Position = function Position(line, col) {
    this.line = line;
    this.column = col;
  };
  Position.prototype.offset = function offset(n) {
    return new Position(this.line, this.column + n);
  };
  var SourceLocation = function SourceLocation(p, start, end) {
    this.start = start;
    this.end = end;
    if (p.sourceFile !== null) {
      this.source = p.sourceFile;
    }
  };

  // The `getLineInfo` function is mostly useful when the
  // `locations` option is off (for performance reasons) and you
  // want to find the line/column position for a given character
  // offset. `input` should be the code string that the offset refers
  // into.

  function getLineInfo(input, offset) {
    for (var line = 1, cur = 0;;) {
      var nextBreak = nextLineBreak(input, cur, offset);
      if (nextBreak < 0) {
        return new Position(line, offset - cur);
      }
      ++line;
      cur = nextBreak;
    }
  }

  // A second argument must be given to configure the parser process.
  // These options are recognized (only `ecmaVersion` is required):

  var defaultOptions = {
    // `ecmaVersion` indicates the ECMAScript version to parse. Must be
    // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10
    // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"`
    // (the latest version the library supports). This influences
    // support for strict mode, the set of reserved words, and support
    // for new syntax features.
    ecmaVersion: null,
    // `sourceType` indicates the mode the code should be parsed in.
    // Can be either `"script"` or `"module"`. This influences global
    // strict mode and parsing of `import` and `export` declarations.
    sourceType: "script",
    // `onInsertedSemicolon` can be a callback that will be called when
    // a semicolon is automatically inserted. It will be passed the
    // position of the inserted semicolon as an offset, and if
    // `locations` is enabled, it is given the location as a `{line,
    // column}` object as second argument.
    onInsertedSemicolon: null,
    // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
    // trailing commas.
    onTrailingComma: null,
    // By default, reserved words are only enforced if ecmaVersion >= 5.
    // Set `allowReserved` to a boolean value to explicitly turn this on
    // an off. When this option has the value "never", reserved words
    // and keywords can also not be used as property names.
    allowReserved: null,
    // When enabled, a return at the top level is not considered an
    // error.
    allowReturnOutsideFunction: false,
    // When enabled, import/export statements are not constrained to
    // appearing at the top of the program, and an import.meta expression
    // in a script isn't considered an error.
    allowImportExportEverywhere: false,
    // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.
    // When enabled, await identifiers are allowed to appear at the top-level scope,
    // but they are still not allowed in non-async functions.
    allowAwaitOutsideFunction: null,
    // When enabled, super identifiers are not constrained to
    // appearing in methods and do not raise an error when they appear elsewhere.
    allowSuperOutsideMethod: null,
    // When enabled, hashbang directive in the beginning of file is
    // allowed and treated as a line comment. Enabled by default when
    // `ecmaVersion` >= 2023.
    allowHashBang: false,
    // By default, the parser will verify that private properties are
    // only used in places where they are valid and have been declared.
    // Set this to false to turn such checks off.
    checkPrivateFields: true,
    // When `locations` is on, `loc` properties holding objects with
    // `start` and `end` properties in `{line, column}` form (with
    // line being 1-based and column 0-based) will be attached to the
    // nodes.
    locations: false,
    // A function can be passed as `onToken` option, which will
    // cause Acorn to call that function with object in the same
    // format as tokens returned from `tokenizer().getToken()`. Note
    // that you are not allowed to call the parser from the
    // callback—that will corrupt its internal state.
    onToken: null,
    // A function can be passed as `onComment` option, which will
    // cause Acorn to call that function with `(block, text, start,
    // end)` parameters whenever a comment is skipped. `block` is a
    // boolean indicating whether this is a block (`/* */`) comment,
    // `text` is the content of the comment, and `start` and `end` are
    // character offsets that denote the start and end of the comment.
    // When the `locations` option is on, two more parameters are
    // passed, the full `{line, column}` locations of the start and
    // end of the comments. Note that you are not allowed to call the
    // parser from the callback—that will corrupt its internal state.
    // When this option has an array as value, objects representing the
    // comments are pushed to it.
    onComment: null,
    // Nodes have their start and end characters offsets recorded in
    // `start` and `end` properties (directly on the node, rather than
    // the `loc` object, which holds line/column data. To also add a
    // [semi-standardized][range] `range` property holding a `[start,
    // end]` array with the same numbers, set the `ranges` option to
    // `true`.
    //
    // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
    ranges: false,
    // It is possible to parse multiple files into a single AST by
    // passing the tree produced by parsing the first file as
    // `program` option in subsequent parses. This will add the
    // toplevel forms of the parsed file to the `Program` (top) node
    // of an existing parse tree.
    program: null,
    // When `locations` is on, you can pass this to record the source
    // file in every node's `loc` object.
    sourceFile: null,
    // This value, if given, is stored in every node, whether
    // `locations` is on or off.
    directSourceFile: null,
    // When enabled, parenthesized expressions are represented by
    // (non-standard) ParenthesizedExpression nodes
    preserveParens: false
  };

  // Interpret and default an options object

  var warnedAboutEcmaVersion = false;
  function getOptions(opts) {
    var options = {};
    for (var opt in defaultOptions) {
      options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt];
    }
    if (options.ecmaVersion === "latest") {
      options.ecmaVersion = 1e8;
    } else if (options.ecmaVersion == null) {
      if (!warnedAboutEcmaVersion && typeof console === "object" && console.warn) {
        warnedAboutEcmaVersion = true;
        console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.");
      }
      options.ecmaVersion = 11;
    } else if (options.ecmaVersion >= 2015) {
      options.ecmaVersion -= 2009;
    }
    if (options.allowReserved == null) {
      options.allowReserved = options.ecmaVersion < 5;
    }
    if (!opts || opts.allowHashBang == null) {
      options.allowHashBang = options.ecmaVersion >= 14;
    }
    if (isArray(options.onToken)) {
      var tokens = options.onToken;
      options.onToken = function (token) {
        return tokens.push(token);
      };
    }
    if (isArray(options.onComment)) {
      options.onComment = pushComment(options, options.onComment);
    }
    return options;
  }
  function pushComment(options, array) {
    return function (block, text, start, end, startLoc, endLoc) {
      var comment = {
        type: block ? "Block" : "Line",
        value: text,
        start: start,
        end: end
      };
      if (options.locations) {
        comment.loc = new SourceLocation(this, startLoc, endLoc);
      }
      if (options.ranges) {
        comment.range = [start, end];
      }
      array.push(comment);
    };
  }

  // Each scope gets a bitset that may contain these flags
  var SCOPE_TOP = 1,
    SCOPE_FUNCTION = 2,
    SCOPE_ASYNC = 4,
    SCOPE_GENERATOR = 8,
    SCOPE_ARROW = 16,
    SCOPE_SIMPLE_CATCH = 32,
    SCOPE_SUPER = 64,
    SCOPE_DIRECT_SUPER = 128,
    SCOPE_CLASS_STATIC_BLOCK = 256,
    SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;
  function functionFlags(async, generator) {
    return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0);
  }

  // Used in checkLVal* and declareName to determine the type of a binding
  var BIND_NONE = 0,
    // Not a binding
    BIND_VAR = 1,
    // Var-style binding
    BIND_LEXICAL = 2,
    // Let- or const-style binding
    BIND_FUNCTION = 3,
    // Function declaration
    BIND_SIMPLE_CATCH = 4,
    // Simple (identifier pattern) catch binding
    BIND_OUTSIDE = 5; // Special case for function names as bound inside the function

  var Parser = function Parser(options, input, startPos) {
    this.options = options = getOptions(options);
    this.sourceFile = options.sourceFile;
    this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]);
    var reserved = "";
    if (options.allowReserved !== true) {
      reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];
      if (options.sourceType === "module") {
        reserved += " await";
      }
    }
    this.reservedWords = wordsRegexp(reserved);
    var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict;
    this.reservedWordsStrict = wordsRegexp(reservedStrict);
    this.reservedWordsStrictBind = wordsRegexp(reservedStrict + " " + reservedWords.strictBind);
    this.input = String(input);

    // Used to signal to callers of `readWord1` whether the word
    // contained any escape sequences. This is needed because words with
    // escape sequences must not be interpreted as keywords.
    this.containsEsc = false;

    // Set up token state

    // The current position of the tokenizer in the input.
    if (startPos) {
      this.pos = startPos;
      this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1;
      this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;
    } else {
      this.pos = this.lineStart = 0;
      this.curLine = 1;
    }

    // Properties of the current token:
    // Its type
    this.type = types$1.eof;
    // For tokens that include more information than their type, the value
    this.value = null;
    // Its start and end offset
    this.start = this.end = this.pos;
    // And, if locations are used, the {line, column} object
    // corresponding to those offsets
    this.startLoc = this.endLoc = this.curPosition();

    // Position information for the previous token
    this.lastTokEndLoc = this.lastTokStartLoc = null;
    this.lastTokStart = this.lastTokEnd = this.pos;

    // The context stack is used to superficially track syntactic
    // context to predict whether a regular expression is allowed in a
    // given position.
    this.context = this.initialContext();
    this.exprAllowed = true;

    // Figure out if it's a module code.
    this.inModule = options.sourceType === "module";
    this.strict = this.inModule || this.strictDirective(this.pos);

    // Used to signify the start of a potential arrow function
    this.potentialArrowAt = -1;
    this.potentialArrowInForAwait = false;

    // Positions to delayed-check that yield/await does not exist in default parameters.
    this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;
    // Labels in scope.
    this.labels = [];
    // Thus-far undefined exports.
    this.undefinedExports = Object.create(null);

    // If enabled, skip leading hashbang line.
    if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!") {
      this.skipLineComment(2);
    }

    // Scope tracking for duplicate variable names (see scope.js)
    this.scopeStack = [];
    this.enterScope(SCOPE_TOP);

    // For RegExp validation
    this.regexpState = null;

    // The stack of private names.
    // Each element has two properties: 'declared' and 'used'.
    // When it exited from the outermost class definition, all used private names must be declared.
    this.privateNameStack = [];
  };
  var prototypeAccessors = {
    inFunction: {
      configurable: true
    },
    inGenerator: {
      configurable: true
    },
    inAsync: {
      configurable: true
    },
    canAwait: {
      configurable: true
    },
    allowSuper: {
      configurable: true
    },
    allowDirectSuper: {
      configurable: true
    },
    treatFunctionsAsVar: {
      configurable: true
    },
    allowNewDotTarget: {
      configurable: true
    },
    inClassStaticBlock: {
      configurable: true
    }
  };
  Parser.prototype.parse = function parse() {
    var node = this.options.program || this.startNode();
    this.nextToken();
    return this.parseTopLevel(node);
  };
  prototypeAccessors.inFunction.get = function () {
    return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;
  };
  prototypeAccessors.inGenerator.get = function () {
    return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit;
  };
  prototypeAccessors.inAsync.get = function () {
    return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit;
  };
  prototypeAccessors.canAwait.get = function () {
    for (var i = this.scopeStack.length - 1; i >= 0; i--) {
      var scope = this.scopeStack[i];
      if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) {
        return false;
      }
      if (scope.flags & SCOPE_FUNCTION) {
        return (scope.flags & SCOPE_ASYNC) > 0;
      }
    }
    return this.inModule && this.options.ecmaVersion >= 13 || this.options.allowAwaitOutsideFunction;
  };
  prototypeAccessors.allowSuper.get = function () {
    var ref = this.currentThisScope();
    var flags = ref.flags;
    var inClassFieldInit = ref.inClassFieldInit;
    return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod;
  };
  prototypeAccessors.allowDirectSuper.get = function () {
    return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;
  };
  prototypeAccessors.treatFunctionsAsVar.get = function () {
    return this.treatFunctionsAsVarInScope(this.currentScope());
  };
  prototypeAccessors.allowNewDotTarget.get = function () {
    var ref = this.currentThisScope();
    var flags = ref.flags;
    var inClassFieldInit = ref.inClassFieldInit;
    return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit;
  };
  prototypeAccessors.inClassStaticBlock.get = function () {
    return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0;
  };
  Parser.extend = function extend() {
    var plugins = [],
      len = arguments.length;
    while (len--) plugins[len] = arguments[len];
    var cls = this;
    for (var i = 0; i < plugins.length; i++) {
      cls = plugins[i](cls);
    }
    return cls;
  };
  Parser.parse = function parse(input, options) {
    return new this(options, input).parse();
  };
  Parser.parseExpressionAt = function parseExpressionAt(input, pos, options) {
    var parser = new this(options, input, pos);
    parser.nextToken();
    return parser.parseExpression();
  };
  Parser.tokenizer = function tokenizer(input, options) {
    return new this(options, input);
  };
  Object.defineProperties(Parser.prototype, prototypeAccessors);
  var pp$9 = Parser.prototype;

  // ## Parser utilities

  var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;
  pp$9.strictDirective = function (start) {
    if (this.options.ecmaVersion < 5) {
      return false;
    }
    for (;;) {
      // Try to find string literal.
      skipWhiteSpace.lastIndex = start;
      start += skipWhiteSpace.exec(this.input)[0].length;
      var match = literal.exec(this.input.slice(start));
      if (!match) {
        return false;
      }
      if ((match[1] || match[2]) === "use strict") {
        skipWhiteSpace.lastIndex = start + match[0].length;
        var spaceAfter = skipWhiteSpace.exec(this.input),
          end = spaceAfter.index + spaceAfter[0].length;
        var next = this.input.charAt(end);
        return next === ";" || next === "}" || lineBreak.test(spaceAfter[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(next) || next === "!" && this.input.charAt(end + 1) === "=");
      }
      start += match[0].length;

      // Skip semicolon, if any.
      skipWhiteSpace.lastIndex = start;
      start += skipWhiteSpace.exec(this.input)[0].length;
      if (this.input[start] === ";") {
        start++;
      }
    }
  };

  // Predicate that tests whether the next token is of the given
  // type, and if yes, consumes it as a side effect.

  pp$9.eat = function (type) {
    if (this.type === type) {
      this.next();
      return true;
    } else {
      return false;
    }
  };

  // Tests whether parsed token is a contextual keyword.

  pp$9.isContextual = function (name) {
    return this.type === types$1.name && this.value === name && !this.containsEsc;
  };

  // Consumes contextual keyword if possible.

  pp$9.eatContextual = function (name) {
    if (!this.isContextual(name)) {
      return false;
    }
    this.next();
    return true;
  };

  // Asserts that following token is given contextual keyword.

  pp$9.expectContextual = function (name) {
    if (!this.eatContextual(name)) {
      this.unexpected();
    }
  };

  // Test whether a semicolon can be inserted at the current position.

  pp$9.canInsertSemicolon = function () {
    return this.type === types$1.eof || this.type === types$1.braceR || lineBreak.test(this.input.slice(this.lastTokEnd, this.start));
  };
  pp$9.insertSemicolon = function () {
    if (this.canInsertSemicolon()) {
      if (this.options.onInsertedSemicolon) {
        this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc);
      }
      return true;
    }
  };

  // Consume a semicolon, or, failing that, see if we are allowed to
  // pretend that there is a semicolon at this position.

  pp$9.semicolon = function () {
    if (!this.eat(types$1.semi) && !this.insertSemicolon()) {
      this.unexpected();
    }
  };
  pp$9.afterTrailingComma = function (tokType, notNext) {
    if (this.type === tokType) {
      if (this.options.onTrailingComma) {
        this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc);
      }
      if (!notNext) {
        this.next();
      }
      return true;
    }
  };

  // Expect a token of a given type. If found, consume it, otherwise,
  // raise an unexpected token error.

  pp$9.expect = function (type) {
    this.eat(type) || this.unexpected();
  };

  // Raise an unexpected token error.

  pp$9.unexpected = function (pos) {
    this.raise(pos != null ? pos : this.start, "Unexpected token");
  };
  var DestructuringErrors = function DestructuringErrors() {
    this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1;
  };
  pp$9.checkPatternErrors = function (refDestructuringErrors, isAssign) {
    if (!refDestructuringErrors) {
      return;
    }
    if (refDestructuringErrors.trailingComma > -1) {
      this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element");
    }
    var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;
    if (parens > -1) {
      this.raiseRecoverable(parens, isAssign ? "Assigning to rvalue" : "Parenthesized pattern");
    }
  };
  pp$9.checkExpressionErrors = function (refDestructuringErrors, andThrow) {
    if (!refDestructuringErrors) {
      return false;
    }
    var shorthandAssign = refDestructuringErrors.shorthandAssign;
    var doubleProto = refDestructuringErrors.doubleProto;
    if (!andThrow) {
      return shorthandAssign >= 0 || doubleProto >= 0;
    }
    if (shorthandAssign >= 0) {
      this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns");
    }
    if (doubleProto >= 0) {
      this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property");
    }
  };
  pp$9.checkYieldAwaitInDefaultParams = function () {
    if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) {
      this.raise(this.yieldPos, "Yield expression cannot be a default value");
    }
    if (this.awaitPos) {
      this.raise(this.awaitPos, "Await expression cannot be a default value");
    }
  };
  pp$9.isSimpleAssignTarget = function (expr) {
    if (expr.type === "ParenthesizedExpression") {
      return this.isSimpleAssignTarget(expr.expression);
    }
    return expr.type === "Identifier" || expr.type === "MemberExpression";
  };
  var pp$8 = Parser.prototype;

  // ### Statement parsing

  // Parse a program. Initializes the parser, reads any number of
  // statements, and wraps them in a Program node.  Optionally takes a
  // `program` argument.  If present, the statements will be appended
  // to its body instead of creating a new node.

  pp$8.parseTopLevel = function (node) {
    var exports = Object.create(null);
    if (!node.body) {
      node.body = [];
    }
    while (this.type !== types$1.eof) {
      var stmt = this.parseStatement(null, true, exports);
      node.body.push(stmt);
    }
    if (this.inModule) {
      for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1) {
        var name = list[i];
        this.raiseRecoverable(this.undefinedExports[name].start, "Export '" + name + "' is not defined");
      }
    }
    this.adaptDirectivePrologue(node.body);
    this.next();
    node.sourceType = this.options.sourceType;
    return this.finishNode(node, "Program");
  };
  var loopLabel = {
      kind: "loop"
    },
    switchLabel = {
      kind: "switch"
    };
  pp$8.isLet = function (context) {
    if (this.options.ecmaVersion < 6 || !this.isContextual("let")) {
      return false;
    }
    skipWhiteSpace.lastIndex = this.pos;
    var skip = skipWhiteSpace.exec(this.input);
    var next = this.pos + skip[0].length,
      nextCh = this.input.charCodeAt(next);
    // For ambiguous cases, determine if a LexicalDeclaration (or only a
    // Statement) is allowed here. If context is not empty then only a Statement
    // is allowed. However, `let [` is an explicit negative lookahead for
    // ExpressionStatement, so special-case it first.
    if (nextCh === 91 || nextCh === 92) {
      return true;
    } // '[', '/'
    if (context) {
      return false;
    }
    if (nextCh === 123 || nextCh > 0xd7ff && nextCh < 0xdc00) {
      return true;
    } // '{', astral
    if (isIdentifierStart(nextCh, true)) {
      var pos = next + 1;
      while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) {
        ++pos;
      }
      if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) {
        return true;
      }
      var ident = this.input.slice(next, pos);
      if (!keywordRelationalOperator.test(ident)) {
        return true;
      }
    }
    return false;
  };

  // check 'async [no LineTerminator here] function'
  // - 'async /*foo*/ function' is OK.
  // - 'async /*\n*/ function' is invalid.
  pp$8.isAsyncFunction = function () {
    if (this.options.ecmaVersion < 8 || !this.isContextual("async")) {
      return false;
    }
    skipWhiteSpace.lastIndex = this.pos;
    var skip = skipWhiteSpace.exec(this.input);
    var next = this.pos + skip[0].length,
      after;
    return !lineBreak.test(this.input.slice(this.pos, next)) && this.input.slice(next, next + 8) === "function" && (next + 8 === this.input.length || !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00));
  };

  // Parse a single statement.
  //
  // If expecting a statement and finding a slash operator, parse a
  // regular expression literal. This is to handle cases like
  // `if (foo) /blah/.exec(foo)`, where looking at the previous token
  // does not help.

  pp$8.parseStatement = function (context, topLevel, exports) {
    var starttype = this.type,
      node = this.startNode(),
      kind;
    if (this.isLet(context)) {
      starttype = types$1._var;
      kind = "let";
    }

    // Most types of statements are recognized by the keyword they
    // start with. Many are trivial to parse, some require a bit of
    // complexity.

    switch (starttype) {
      case types$1._break:
      case types$1._continue:
        return this.parseBreakContinueStatement(node, starttype.keyword);
      case types$1._debugger:
        return this.parseDebuggerStatement(node);
      case types$1._do:
        return this.parseDoStatement(node);
      case types$1._for:
        return this.parseForStatement(node);
      case types$1._function:
        // Function as sole body of either an if statement or a labeled statement
        // works, but not when it is part of a labeled statement that is the sole
        // body of an if statement.
        if (context && (this.strict || context !== "if" && context !== "label") && this.options.ecmaVersion >= 6) {
          this.unexpected();
        }
        return this.parseFunctionStatement(node, false, !context);
      case types$1._class:
        if (context) {
          this.unexpected();
        }
        return this.parseClass(node, true);
      case types$1._if:
        return this.parseIfStatement(node);
      case types$1._return:
        return this.parseReturnStatement(node);
      case types$1._switch:
        return this.parseSwitchStatement(node);
      case types$1._throw:
        return this.parseThrowStatement(node);
      case types$1._try:
        return this.parseTryStatement(node);
      case types$1._const:
      case types$1._var:
        kind = kind || this.value;
        if (context && kind !== "var") {
          this.unexpected();
        }
        return this.parseVarStatement(node, kind);
      case types$1._while:
        return this.parseWhileStatement(node);
      case types$1._with:
        return this.parseWithStatement(node);
      case types$1.braceL:
        return this.parseBlock(true, node);
      case types$1.semi:
        return this.parseEmptyStatement(node);
      case types$1._export:
      case types$1._import:
        if (this.options.ecmaVersion > 10 && starttype === types$1._import) {
          skipWhiteSpace.lastIndex = this.pos;
          var skip = skipWhiteSpace.exec(this.input);
          var next = this.pos + skip[0].length,
            nextCh = this.input.charCodeAt(next);
          if (nextCh === 40 || nextCh === 46)
            // '(' or '.'
            {
              return this.parseExpressionStatement(node, this.parseExpression());
            }
        }
        if (!this.options.allowImportExportEverywhere) {
          if (!topLevel) {
            this.raise(this.start, "'import' and 'export' may only appear at the top level");
          }
          if (!this.inModule) {
            this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'");
          }
        }
        return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports);

      // If the statement does not start with a statement keyword or a
      // brace, it's an ExpressionStatement or LabeledStatement. We
      // simply start parsing an expression, and afterwards, if the
      // next token is a colon and the expression was a simple
      // Identifier node, we switch to interpreting it as a label.
      default:
        if (this.isAsyncFunction()) {
          if (context) {
            this.unexpected();
          }
          this.next();
          return this.parseFunctionStatement(node, true, !context);
        }
        var maybeName = this.value,
          expr = this.parseExpression();
        if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon)) {
          return this.parseLabeledStatement(node, maybeName, expr, context);
        } else {
          return this.parseExpressionStatement(node, expr);
        }
    }
  };
  pp$8.parseBreakContinueStatement = function (node, keyword) {
    var isBreak = keyword === "break";
    this.next();
    if (this.eat(types$1.semi) || this.insertSemicolon()) {
      node.label = null;
    } else if (this.type !== types$1.name) {
      this.unexpected();
    } else {
      node.label = this.parseIdent();
      this.semicolon();
    }

    // Verify that there is an actual destination to break or
    // continue to.
    var i = 0;
    for (; i < this.labels.length; ++i) {
      var lab = this.labels[i];
      if (node.label == null || lab.name === node.label.name) {
        if (lab.kind != null && (isBreak || lab.kind === "loop")) {
          break;
        }
        if (node.label && isBreak) {
          break;
        }
      }
    }
    if (i === this.labels.length) {
      this.raise(node.start, "Unsyntactic " + keyword);
    }
    return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement");
  };
  pp$8.parseDebuggerStatement = function (node) {
    this.next();
    this.semicolon();
    return this.finishNode(node, "DebuggerStatement");
  };
  pp$8.parseDoStatement = function (node) {
    this.next();
    this.labels.push(loopLabel);
    node.body = this.parseStatement("do");
    this.labels.pop();
    this.expect(types$1._while);
    node.test = this.parseParenExpression();
    if (this.options.ecmaVersion >= 6) {
      this.eat(types$1.semi);
    } else {
      this.semicolon();
    }
    return this.finishNode(node, "DoWhileStatement");
  };

  // Disambiguating between a `for` and a `for`/`in` or `for`/`of`
  // loop is non-trivial. Basically, we have to parse the init `var`
  // statement or expression, disallowing the `in` operator (see
  // the second parameter to `parseExpression`), and then check
  // whether the next token is `in` or `of`. When there is no init
  // part (semicolon immediately after the opening parenthesis), it
  // is a regular `for` loop.

  pp$8.parseForStatement = function (node) {
    this.next();
    var awaitAt = this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await") ? this.lastTokStart : -1;
    this.labels.push(loopLabel);
    this.enterScope(0);
    this.expect(types$1.parenL);
    if (this.type === types$1.semi) {
      if (awaitAt > -1) {
        this.unexpected(awaitAt);
      }
      return this.parseFor(node, null);
    }
    var isLet = this.isLet();
    if (this.type === types$1._var || this.type === types$1._const || isLet) {
      var init$1 = this.startNode(),
        kind = isLet ? "let" : this.value;
      this.next();
      this.parseVar(init$1, true, kind);
      this.finishNode(init$1, "VariableDeclaration");
      if ((this.type === types$1._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && init$1.declarations.length === 1) {
        if (this.options.ecmaVersion >= 9) {
          if (this.type === types$1._in) {
            if (awaitAt > -1) {
              this.unexpected(awaitAt);
            }
          } else {
            node.await = awaitAt > -1;
          }
        }
        return this.parseForIn(node, init$1);
      }
      if (awaitAt > -1) {
        this.unexpected(awaitAt);
      }
      return this.parseFor(node, init$1);
    }
    var startsWithLet = this.isContextual("let"),
      isForOf = false;
    var refDestructuringErrors = new DestructuringErrors();
    var init = this.parseExpression(awaitAt > -1 ? "await" : true, refDestructuringErrors);
    if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
      if (this.options.ecmaVersion >= 9) {
        if (this.type === types$1._in) {
          if (awaitAt > -1) {
            this.unexpected(awaitAt);
          }
        } else {
          node.await = awaitAt > -1;
        }
      }
      if (startsWithLet && isForOf) {
        this.raise(init.start, "The left-hand side of a for-of loop may not start with 'let'.");
      }
      this.toAssignable(init, false, refDestructuringErrors);
      this.checkLValPattern(init);
      return this.parseForIn(node, init);
    } else {
      this.checkExpressionErrors(refDestructuringErrors, true);
    }
    if (awaitAt > -1) {
      this.unexpected(awaitAt);
    }
    return this.parseFor(node, init);
  };
  pp$8.parseFunctionStatement = function (node, isAsync, declarationPosition) {
    this.next();
    return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync);
  };
  pp$8.parseIfStatement = function (node) {
    this.next();
    node.test = this.parseParenExpression();
    // allow function declarations in branches, but only in non-strict mode
    node.consequent = this.parseStatement("if");
    node.alternate = this.eat(types$1._else) ? this.parseStatement("if") : null;
    return this.finishNode(node, "IfStatement");
  };
  pp$8.parseReturnStatement = function (node) {
    if (!this.inFunction && !this.options.allowReturnOutsideFunction) {
      this.raise(this.start, "'return' outside of function");
    }
    this.next();

    // In `return` (and `break`/`continue`), the keywords with
    // optional arguments, we eagerly look for a semicolon or the
    // possibility to insert one.

    if (this.eat(types$1.semi) || this.insertSemicolon()) {
      node.argument = null;
    } else {
      node.argument = this.parseExpression();
      this.semicolon();
    }
    return this.finishNode(node, "ReturnStatement");
  };
  pp$8.parseSwitchStatement = function (node) {
    this.next();
    node.discriminant = this.parseParenExpression();
    node.cases = [];
    this.expect(types$1.braceL);
    this.labels.push(switchLabel);
    this.enterScope(0);

    // Statements under must be grouped (by label) in SwitchCase
    // nodes. `cur` is used to keep the node that we are currently
    // adding statements to.

    var cur;
    for (var sawDefault = false; this.type !== types$1.braceR;) {
      if (this.type === types$1._case || this.type === types$1._default) {
        var isCase = this.type === types$1._case;
        if (cur) {
          this.finishNode(cur, "SwitchCase");
        }
        node.cases.push(cur = this.startNode());
        cur.consequent = [];
        this.next();
        if (isCase) {
          cur.test = this.parseExpression();
        } else {
          if (sawDefault) {
            this.raiseRecoverable(this.lastTokStart, "Multiple default clauses");
          }
          sawDefault = true;
          cur.test = null;
        }
        this.expect(types$1.colon);
      } else {
        if (!cur) {
          this.unexpected();
        }
        cur.consequent.push(this.parseStatement(null));
      }
    }
    this.exitScope();
    if (cur) {
      this.finishNode(cur, "SwitchCase");
    }
    this.next(); // Closing brace
    this.labels.pop();
    return this.finishNode(node, "SwitchStatement");
  };
  pp$8.parseThrowStatement = function (node) {
    this.next();
    if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) {
      this.raise(this.lastTokEnd, "Illegal newline after throw");
    }
    node.argument = this.parseExpression();
    this.semicolon();
    return this.finishNode(node, "ThrowStatement");
  };

  // Reused empty array added for node fields that are always empty.

  var empty$1 = [];
  pp$8.parseCatchClauseParam = function () {
    var param = this.parseBindingAtom();
    var simple = param.type === "Identifier";
    this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);
    this.checkLValPattern(param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);
    this.expect(types$1.parenR);
    return param;
  };
  pp$8.parseTryStatement = function (node) {
    this.next();
    node.block = this.parseBlock();
    node.handler = null;
    if (this.type === types$1._catch) {
      var clause = this.startNode();
      this.next();
      if (this.eat(types$1.parenL)) {
        clause.param = this.parseCatchClauseParam();
      } else {
        if (this.options.ecmaVersion < 10) {
          this.unexpected();
        }
        clause.param = null;
        this.enterScope(0);
      }
      clause.body = this.parseBlock(false);
      this.exitScope();
      node.handler = this.finishNode(clause, "CatchClause");
    }
    node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;
    if (!node.handler && !node.finalizer) {
      this.raise(node.start, "Missing catch or finally clause");
    }
    return this.finishNode(node, "TryStatement");
  };
  pp$8.parseVarStatement = function (node, kind, allowMissingInitializer) {
    this.next();
    this.parseVar(node, false, kind, allowMissingInitializer);
    this.semicolon();
    return this.finishNode(node, "VariableDeclaration");
  };
  pp$8.parseWhileStatement = function (node) {
    this.next();
    node.test = this.parseParenExpression();
    this.labels.push(loopLabel);
    node.body = this.parseStatement("while");
    this.labels.pop();
    return this.finishNode(node, "WhileStatement");
  };
  pp$8.parseWithStatement = function (node) {
    if (this.strict) {
      this.raise(this.start, "'with' in strict mode");
    }
    this.next();
    node.object = this.parseParenExpression();
    node.body = this.parseStatement("with");
    return this.finishNode(node, "WithStatement");
  };
  pp$8.parseEmptyStatement = function (node) {
    this.next();
    return this.finishNode(node, "EmptyStatement");
  };
  pp$8.parseLabeledStatement = function (node, maybeName, expr, context) {
    for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1) {
      var label = list[i$1];
      if (label.name === maybeName) {
        this.raise(expr.start, "Label '" + maybeName + "' is already declared");
      }
    }
    var kind = this.type.isLoop ? "loop" : this.type === types$1._switch ? "switch" : null;
    for (var i = this.labels.length - 1; i >= 0; i--) {
      var label$1 = this.labels[i];
      if (label$1.statementStart === node.start) {
        // Update information about previous labels on this node
        label$1.statementStart = this.start;
        label$1.kind = kind;
      } else {
        break;
      }
    }
    this.labels.push({
      name: maybeName,
      kind: kind,
      statementStart: this.start
    });
    node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label");
    this.labels.pop();
    node.label = expr;
    return this.finishNode(node, "LabeledStatement");
  };
  pp$8.parseExpressionStatement = function (node, expr) {
    node.expression = expr;
    this.semicolon();
    return this.finishNode(node, "ExpressionStatement");
  };

  // Parse a semicolon-enclosed block of statements, handling `"use
  // strict"` declarations when `allowStrict` is true (used for
  // function bodies).

  pp$8.parseBlock = function (createNewLexicalScope, node, exitStrict) {
    if (createNewLexicalScope === void 0) createNewLexicalScope = true;
    if (node === void 0) node = this.startNode();
    node.body = [];
    this.expect(types$1.braceL);
    if (createNewLexicalScope) {
      this.enterScope(0);
    }
    while (this.type !== types$1.braceR) {
      var stmt = this.parseStatement(null);
      node.body.push(stmt);
    }
    if (exitStrict) {
      this.strict = false;
    }
    this.next();
    if (createNewLexicalScope) {
      this.exitScope();
    }
    return this.finishNode(node, "BlockStatement");
  };

  // Parse a regular `for` loop. The disambiguation code in
  // `parseStatement` will already have parsed the init statement or
  // expression.

  pp$8.parseFor = function (node, init) {
    node.init = init;
    this.expect(types$1.semi);
    node.test = this.type === types$1.semi ? null : this.parseExpression();
    this.expect(types$1.semi);
    node.update = this.type === types$1.parenR ? null : this.parseExpression();
    this.expect(types$1.parenR);
    node.body = this.parseStatement("for");
    this.exitScope();
    this.labels.pop();
    return this.finishNode(node, "ForStatement");
  };

  // Parse a `for`/`in` and `for`/`of` loop, which are almost
  // same from parser's perspective.

  pp$8.parseForIn = function (node, init) {
    var isForIn = this.type === types$1._in;
    this.next();
    if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || this.options.ecmaVersion < 8 || this.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) {
      this.raise(init.start, (isForIn ? "for-in" : "for-of") + " loop variable declaration may not have an initializer");
    }
    node.left = init;
    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();
    this.expect(types$1.parenR);
    node.body = this.parseStatement("for");
    this.exitScope();
    this.labels.pop();
    return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement");
  };

  // Parse a list of variable declarations.

  pp$8.parseVar = function (node, isFor, kind, allowMissingInitializer) {
    node.declarations = [];
    node.kind = kind;
    for (;;) {
      var decl = this.startNode();
      this.parseVarId(decl, kind);
      if (this.eat(types$1.eq)) {
        decl.init = this.parseMaybeAssign(isFor);
      } else if (!allowMissingInitializer && kind === "const" && !(this.type === types$1._in || this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
        this.unexpected();
      } else if (!allowMissingInitializer && decl.id.type !== "Identifier" && !(isFor && (this.type === types$1._in || this.isContextual("of")))) {
        this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value");
      } else {
        decl.init = null;
      }
      node.declarations.push(this.finishNode(decl, "VariableDeclarator"));
      if (!this.eat(types$1.comma)) {
        break;
      }
    }
    return node;
  };
  pp$8.parseVarId = function (decl, kind) {
    decl.id = this.parseBindingAtom();
    this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false);
  };
  var FUNC_STATEMENT = 1,
    FUNC_HANGING_STATEMENT = 2,
    FUNC_NULLABLE_ID = 4;

  // Parse a function declaration or literal (depending on the
  // `statement & FUNC_STATEMENT`).

  // Remove `allowExpressionBody` for 7.0.0, as it is only called with false
  pp$8.parseFunction = function (node, statement, allowExpressionBody, isAsync, forInit) {
    this.initFunction(node);
    if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {
      if (this.type === types$1.star && statement & FUNC_HANGING_STATEMENT) {
        this.unexpected();
      }
      node.generator = this.eat(types$1.star);
    }
    if (this.options.ecmaVersion >= 8) {
      node.async = !!isAsync;
    }
    if (statement & FUNC_STATEMENT) {
      node.id = statement & FUNC_NULLABLE_ID && this.type !== types$1.name ? null : this.parseIdent();
      if (node.id && !(statement & FUNC_HANGING_STATEMENT))
        // If it is a regular function declaration in sloppy mode, then it is
        // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding
        // mode depends on properties of the current scope (see
        // treatFunctionsAsVar).
        {
          this.checkLValSimple(node.id, this.strict || node.generator || node.async ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION);
        }
    }
    var oldYieldPos = this.yieldPos,
      oldAwaitPos = this.awaitPos,
      oldAwaitIdentPos = this.awaitIdentPos;
    this.yieldPos = 0;
    this.awaitPos = 0;
    this.awaitIdentPos = 0;
    this.enterScope(functionFlags(node.async, node.generator));
    if (!(statement & FUNC_STATEMENT)) {
      node.id = this.type === types$1.name ? this.parseIdent() : null;
    }
    this.parseFunctionParams(node);
    this.parseFunctionBody(node, allowExpressionBody, false, forInit);
    this.yieldPos = oldYieldPos;
    this.awaitPos = oldAwaitPos;
    this.awaitIdentPos = oldAwaitIdentPos;
    return this.finishNode(node, statement & FUNC_STATEMENT ? "FunctionDeclaration" : "FunctionExpression");
  };
  pp$8.parseFunctionParams = function (node) {
    this.expect(types$1.parenL);
    node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);
    this.checkYieldAwaitInDefaultParams();
  };

  // Parse a class declaration or literal (depending on the
  // `isStatement` parameter).

  pp$8.parseClass = function (node, isStatement) {
    this.next();

    // ecma-262 14.6 Class Definitions
    // A class definition is always strict mode code.
    var oldStrict = this.strict;
    this.strict = true;
    this.parseClassId(node, isStatement);
    this.parseClassSuper(node);
    var privateNameMap = this.enterClassBody();
    var classBody = this.startNode();
    var hadConstructor = false;
    classBody.body = [];
    this.expect(types$1.braceL);
    while (this.type !== types$1.braceR) {
      var element = this.parseClassElement(node.superClass !== null);
      if (element) {
        classBody.body.push(element);
        if (element.type === "MethodDefinition" && element.kind === "constructor") {
          if (hadConstructor) {
            this.raiseRecoverable(element.start, "Duplicate constructor in the same class");
          }
          hadConstructor = true;
        } else if (element.key && element.key.type === "PrivateIdentifier" && isPrivateNameConflicted(privateNameMap, element)) {
          this.raiseRecoverable(element.key.start, "Identifier '#" + element.key.name + "' has already been declared");
        }
      }
    }
    this.strict = oldStrict;
    this.next();
    node.body = this.finishNode(classBody, "ClassBody");
    this.exitClassBody();
    return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression");
  };
  pp$8.parseClassElement = function (constructorAllowsSuper) {
    if (this.eat(types$1.semi)) {
      return null;
    }
    var ecmaVersion = this.options.ecmaVersion;
    var node = this.startNode();
    var keyName = "";
    var isGenerator = false;
    var isAsync = false;
    var kind = "method";
    var isStatic = false;
    if (this.eatContextual("static")) {
      // Parse static init block
      if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {
        this.parseClassStaticBlock(node);
        return node;
      }
      if (this.isClassElementNameStart() || this.type === types$1.star) {
        isStatic = true;
      } else {
        keyName = "static";
      }
    }
    node.static = isStatic;
    if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) {
      if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {
        isAsync = true;
      } else {
        keyName = "async";
      }
    }
    if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {
      isGenerator = true;
    }
    if (!keyName && !isAsync && !isGenerator) {
      var lastValue = this.value;
      if (this.eatContextual("get") || this.eatContextual("set")) {
        if (this.isClassElementNameStart()) {
          kind = lastValue;
        } else {
          keyName = lastValue;
        }
      }
    }

    // Parse element name
    if (keyName) {
      // 'async', 'get', 'set', or 'static' were not a keyword contextually.
      // The last token is any of those. Make it the element name.
      node.computed = false;
      node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);
      node.key.name = keyName;
      this.finishNode(node.key, "Identifier");
    } else {
      this.parseClassElementName(node);
    }

    // Parse element value
    if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) {
      var isConstructor = !node.static && checkKeyName(node, "constructor");
      var allowsDirectSuper = isConstructor && constructorAllowsSuper;
      // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.
      if (isConstructor && kind !== "method") {
        this.raise(node.key.start, "Constructor can't have get/set modifier");
      }
      node.kind = isConstructor ? "constructor" : kind;
      this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);
    } else {
      this.parseClassField(node);
    }
    return node;
  };
  pp$8.isClassElementNameStart = function () {
    return this.type === types$1.name || this.type === types$1.privateId || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword;
  };
  pp$8.parseClassElementName = function (element) {
    if (this.type === types$1.privateId) {
      if (this.value === "constructor") {
        this.raise(this.start, "Classes can't have an element named '#constructor'");
      }
      element.computed = false;
      element.key = this.parsePrivateIdent();
    } else {
      this.parsePropertyName(element);
    }
  };
  pp$8.parseClassMethod = function (method, isGenerator, isAsync, allowsDirectSuper) {
    // Check key and flags
    var key = method.key;
    if (method.kind === "constructor") {
      if (isGenerator) {
        this.raise(key.start, "Constructor can't be a generator");
      }
      if (isAsync) {
        this.raise(key.start, "Constructor can't be an async method");
      }
    } else if (method.static && checkKeyName(method, "prototype")) {
      this.raise(key.start, "Classes may not have a static property named prototype");
    }

    // Parse value
    var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);

    // Check value
    if (method.kind === "get" && value.params.length !== 0) {
      this.raiseRecoverable(value.start, "getter should have no params");
    }
    if (method.kind === "set" && value.params.length !== 1) {
      this.raiseRecoverable(value.start, "setter should have exactly one param");
    }
    if (method.kind === "set" && value.params[0].type === "RestElement") {
      this.raiseRecoverable(value.params[0].start, "Setter cannot use rest params");
    }
    return this.finishNode(method, "MethodDefinition");
  };
  pp$8.parseClassField = function (field) {
    if (checkKeyName(field, "constructor")) {
      this.raise(field.key.start, "Classes can't have a field named 'constructor'");
    } else if (field.static && checkKeyName(field, "prototype")) {
      this.raise(field.key.start, "Classes can't have a static field named 'prototype'");
    }
    if (this.eat(types$1.eq)) {
      // To raise SyntaxError if 'arguments' exists in the initializer.
      var scope = this.currentThisScope();
      var inClassFieldInit = scope.inClassFieldInit;
      scope.inClassFieldInit = true;
      field.value = this.parseMaybeAssign();
      scope.inClassFieldInit = inClassFieldInit;
    } else {
      field.value = null;
    }
    this.semicolon();
    return this.finishNode(field, "PropertyDefinition");
  };
  pp$8.parseClassStaticBlock = function (node) {
    node.body = [];
    var oldLabels = this.labels;
    this.labels = [];
    this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);
    while (this.type !== types$1.braceR) {
      var stmt = this.parseStatement(null);
      node.body.push(stmt);
    }
    this.next();
    this.exitScope();
    this.labels = oldLabels;
    return this.finishNode(node, "StaticBlock");
  };
  pp$8.parseClassId = function (node, isStatement) {
    if (this.type === types$1.name) {
      node.id = this.parseIdent();
      if (isStatement) {
        this.checkLValSimple(node.id, BIND_LEXICAL, false);
      }
    } else {
      if (isStatement === true) {
        this.unexpected();
      }
      node.id = null;
    }
  };
  pp$8.parseClassSuper = function (node) {
    node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(null, false) : null;
  };
  pp$8.enterClassBody = function () {
    var element = {
      declared: Object.create(null),
      used: []
    };
    this.privateNameStack.push(element);
    return element.declared;
  };
  pp$8.exitClassBody = function () {
    var ref = this.privateNameStack.pop();
    var declared = ref.declared;
    var used = ref.used;
    if (!this.options.checkPrivateFields) {
      return;
    }
    var len = this.privateNameStack.length;
    var parent = len === 0 ? null : this.privateNameStack[len - 1];
    for (var i = 0; i < used.length; ++i) {
      var id = used[i];
      if (!hasOwn(declared, id.name)) {
        if (parent) {
          parent.used.push(id);
        } else {
          this.raiseRecoverable(id.start, "Private field '#" + id.name + "' must be declared in an enclosing class");
        }
      }
    }
  };
  function isPrivateNameConflicted(privateNameMap, element) {
    var name = element.key.name;
    var curr = privateNameMap[name];
    var next = "true";
    if (element.type === "MethodDefinition" && (element.kind === "get" || element.kind === "set")) {
      next = (element.static ? "s" : "i") + element.kind;
    }

    // `class { get #a(){}; static set #a(_){} }` is also conflict.
    if (curr === "iget" && next === "iset" || curr === "iset" && next === "iget" || curr === "sget" && next === "sset" || curr === "sset" && next === "sget") {
      privateNameMap[name] = "true";
      return false;
    } else if (!curr) {
      privateNameMap[name] = next;
      return false;
    } else {
      return true;
    }
  }
  function checkKeyName(node, name) {
    var computed = node.computed;
    var key = node.key;
    return !computed && (key.type === "Identifier" && key.name === name || key.type === "Literal" && key.value === name);
  }

  // Parses module export declaration.

  pp$8.parseExportAllDeclaration = function (node, exports) {
    if (this.options.ecmaVersion >= 11) {
      if (this.eatContextual("as")) {
        node.exported = this.parseModuleExportName();
        this.checkExport(exports, node.exported, this.lastTokStart);
      } else {
        node.exported = null;
      }
    }
    this.expectContextual("from");
    if (this.type !== types$1.string) {
      this.unexpected();
    }
    node.source = this.parseExprAtom();
    this.semicolon();
    return this.finishNode(node, "ExportAllDeclaration");
  };
  pp$8.parseExport = function (node, exports) {
    this.next();
    // export * from '...'
    if (this.eat(types$1.star)) {
      return this.parseExportAllDeclaration(node, exports);
    }
    if (this.eat(types$1._default)) {
      // export default ...
      this.checkExport(exports, "default", this.lastTokStart);
      node.declaration = this.parseExportDefaultDeclaration();
      return this.finishNode(node, "ExportDefaultDeclaration");
    }
    // export var|const|let|function|class ...
    if (this.shouldParseExportStatement()) {
      node.declaration = this.parseExportDeclaration(node);
      if (node.declaration.type === "VariableDeclaration") {
        this.checkVariableExport(exports, node.declaration.declarations);
      } else {
        this.checkExport(exports, node.declaration.id, node.declaration.id.start);
      }
      node.specifiers = [];
      node.source = null;
    } else {
      // export { x, y as z } [from '...']
      node.declaration = null;
      node.specifiers = this.parseExportSpecifiers(exports);
      if (this.eatContextual("from")) {
        if (this.type !== types$1.string) {
          this.unexpected();
        }
        node.source = this.parseExprAtom();
      } else {
        for (var i = 0, list = node.specifiers; i < list.length; i += 1) {
          // check for keywords used as local names
          var spec = list[i];
          this.checkUnreserved(spec.local);
          // check if export is defined
          this.checkLocalExport(spec.local);
          if (spec.local.type === "Literal") {
            this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`.");
          }
        }
        node.source = null;
      }
      this.semicolon();
    }
    return this.finishNode(node, "ExportNamedDeclaration");
  };
  pp$8.parseExportDeclaration = function (node) {
    return this.parseStatement(null);
  };
  pp$8.parseExportDefaultDeclaration = function () {
    var isAsync;
    if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {
      var fNode = this.startNode();
      this.next();
      if (isAsync) {
        this.next();
      }
      return this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);
    } else if (this.type === types$1._class) {
      var cNode = this.startNode();
      return this.parseClass(cNode, "nullableID");
    } else {
      var declaration = this.parseMaybeAssign();
      this.semicolon();
      return declaration;
    }
  };
  pp$8.checkExport = function (exports, name, pos) {
    if (!exports) {
      return;
    }
    if (typeof name !== "string") {
      name = name.type === "Identifier" ? name.name : name.value;
    }
    if (hasOwn(exports, name)) {
      this.raiseRecoverable(pos, "Duplicate export '" + name + "'");
    }
    exports[name] = true;
  };
  pp$8.checkPatternExport = function (exports, pat) {
    var type = pat.type;
    if (type === "Identifier") {
      this.checkExport(exports, pat, pat.start);
    } else if (type === "ObjectPattern") {
      for (var i = 0, list = pat.properties; i < list.length; i += 1) {
        var prop = list[i];
        this.checkPatternExport(exports, prop);
      }
    } else if (type === "ArrayPattern") {
      for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {
        var elt = list$1[i$1];
        if (elt) {
          this.checkPatternExport(exports, elt);
        }
      }
    } else if (type === "Property") {
      this.checkPatternExport(exports, pat.value);
    } else if (type === "AssignmentPattern") {
      this.checkPatternExport(exports, pat.left);
    } else if (type === "RestElement") {
      this.checkPatternExport(exports, pat.argument);
    }
  };
  pp$8.checkVariableExport = function (exports, decls) {
    if (!exports) {
      return;
    }
    for (var i = 0, list = decls; i < list.length; i += 1) {
      var decl = list[i];
      this.checkPatternExport(exports, decl.id);
    }
  };
  pp$8.shouldParseExportStatement = function () {
    return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || this.type.keyword === "function" || this.isLet() || this.isAsyncFunction();
  };

  // Parses a comma-separated list of module exports.

  pp$8.parseExportSpecifier = function (exports) {
    var node = this.startNode();
    node.local = this.parseModuleExportName();
    node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local;
    this.checkExport(exports, node.exported, node.exported.start);
    return this.finishNode(node, "ExportSpecifier");
  };
  pp$8.parseExportSpecifiers = function (exports) {
    var nodes = [],
      first = true;
    // export { x, y as z } [from '...']
    this.expect(types$1.braceL);
    while (!this.eat(types$1.braceR)) {
      if (!first) {
        this.expect(types$1.comma);
        if (this.afterTrailingComma(types$1.braceR)) {
          break;
        }
      } else {
        first = false;
      }
      nodes.push(this.parseExportSpecifier(exports));
    }
    return nodes;
  };

  // Parses import declaration.

  pp$8.parseImport = function (node) {
    this.next();

    // import '...'
    if (this.type === types$1.string) {
      node.specifiers = empty$1;
      node.source = this.parseExprAtom();
    } else {
      node.specifiers = this.parseImportSpecifiers();
      this.expectContextual("from");
      node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();
    }
    this.semicolon();
    return this.finishNode(node, "ImportDeclaration");
  };

  // Parses a comma-separated list of module imports.

  pp$8.parseImportSpecifier = function () {
    var node = this.startNode();
    node.imported = this.parseModuleExportName();
    if (this.eatContextual("as")) {
      node.local = this.parseIdent();
    } else {
      this.checkUnreserved(node.imported);
      node.local = node.imported;
    }
    this.checkLValSimple(node.local, BIND_LEXICAL);
    return this.finishNode(node, "ImportSpecifier");
  };
  pp$8.parseImportDefaultSpecifier = function () {
    // import defaultObj, { x, y as z } from '...'
    var node = this.startNode();
    node.local = this.parseIdent();
    this.checkLValSimple(node.local, BIND_LEXICAL);
    return this.finishNode(node, "ImportDefaultSpecifier");
  };
  pp$8.parseImportNamespaceSpecifier = function () {
    var node = this.startNode();
    this.next();
    this.expectContextual("as");
    node.local = this.parseIdent();
    this.checkLValSimple(node.local, BIND_LEXICAL);
    return this.finishNode(node, "ImportNamespaceSpecifier");
  };
  pp$8.parseImportSpecifiers = function () {
    var nodes = [],
      first = true;
    if (this.type === types$1.name) {
      nodes.push(this.parseImportDefaultSpecifier());
      if (!this.eat(types$1.comma)) {
        return nodes;
      }
    }
    if (this.type === types$1.star) {
      nodes.push(this.parseImportNamespaceSpecifier());
      return nodes;
    }
    this.expect(types$1.braceL);
    while (!this.eat(types$1.braceR)) {
      if (!first) {
        this.expect(types$1.comma);
        if (this.afterTrailingComma(types$1.braceR)) {
          break;
        }
      } else {
        first = false;
      }
      nodes.push(this.parseImportSpecifier());
    }
    return nodes;
  };
  pp$8.parseModuleExportName = function () {
    if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {
      var stringLiteral = this.parseLiteral(this.value);
      if (loneSurrogate.test(stringLiteral.value)) {
        this.raise(stringLiteral.start, "An export name cannot include a lone surrogate.");
      }
      return stringLiteral;
    }
    return this.parseIdent(true);
  };

  // Set `ExpressionStatement#directive` property for directive prologues.
  pp$8.adaptDirectivePrologue = function (statements) {
    for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {
      statements[i].directive = statements[i].expression.raw.slice(1, -1);
    }
  };
  pp$8.isDirectiveCandidate = function (statement) {
    return this.options.ecmaVersion >= 5 && statement.type === "ExpressionStatement" && statement.expression.type === "Literal" && typeof statement.expression.value === "string" && (
    // Reject parenthesized strings.
    this.input[statement.start] === "\"" || this.input[statement.start] === "'");
  };
  var pp$7 = Parser.prototype;

  // Convert existing expression atom to assignable pattern
  // if possible.

  pp$7.toAssignable = function (node, isBinding, refDestructuringErrors) {
    if (this.options.ecmaVersion >= 6 && node) {
      switch (node.type) {
        case "Identifier":
          if (this.inAsync && node.name === "await") {
            this.raise(node.start, "Cannot use 'await' as identifier inside an async function");
          }
          break;
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          break;
        case "ObjectExpression":
          node.type = "ObjectPattern";
          if (refDestructuringErrors) {
            this.checkPatternErrors(refDestructuringErrors, true);
          }
          for (var i = 0, list = node.properties; i < list.length; i += 1) {
            var prop = list[i];
            this.toAssignable(prop, isBinding);
            // Early error:
            //   AssignmentRestProperty[Yield, Await] :
            //     `...` DestructuringAssignmentTarget[Yield, Await]
            //
            //   It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.
            if (prop.type === "RestElement" && (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern")) {
              this.raise(prop.argument.start, "Unexpected token");
            }
          }
          break;
        case "Property":
          // AssignmentProperty has type === "Property"
          if (node.kind !== "init") {
            this.raise(node.key.start, "Object pattern can't contain getter or setter");
          }
          this.toAssignable(node.value, isBinding);
          break;
        case "ArrayExpression":
          node.type = "ArrayPattern";
          if (refDestructuringErrors) {
            this.checkPatternErrors(refDestructuringErrors, true);
          }
          this.toAssignableList(node.elements, isBinding);
          break;
        case "SpreadElement":
          node.type = "RestElement";
          this.toAssignable(node.argument, isBinding);
          if (node.argument.type === "AssignmentPattern") {
            this.raise(node.argument.start, "Rest elements cannot have a default value");
          }
          break;
        case "AssignmentExpression":
          if (node.operator !== "=") {
            this.raise(node.left.end, "Only '=' operator can be used for specifying default value.");
          }
          node.type = "AssignmentPattern";
          delete node.operator;
          this.toAssignable(node.left, isBinding);
          break;
        case "ParenthesizedExpression":
          this.toAssignable(node.expression, isBinding, refDestructuringErrors);
          break;
        case "ChainExpression":
          this.raiseRecoverable(node.start, "Optional chaining cannot appear in left-hand side");
          break;
        case "MemberExpression":
          if (!isBinding) {
            break;
          }
        default:
          this.raise(node.start, "Assigning to rvalue");
      }
    } else if (refDestructuringErrors) {
      this.checkPatternErrors(refDestructuringErrors, true);
    }
    return node;
  };

  // Convert list of expression atoms to binding list.

  pp$7.toAssignableList = function (exprList, isBinding) {
    var end = exprList.length;
    for (var i = 0; i < end; i++) {
      var elt = exprList[i];
      if (elt) {
        this.toAssignable(elt, isBinding);
      }
    }
    if (end) {
      var last = exprList[end - 1];
      if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier") {
        this.unexpected(last.argument.start);
      }
    }
    return exprList;
  };

  // Parses spread element.

  pp$7.parseSpread = function (refDestructuringErrors) {
    var node = this.startNode();
    this.next();
    node.argument = this.parseMaybeAssign(false, refDestructuringErrors);
    return this.finishNode(node, "SpreadElement");
  };
  pp$7.parseRestBinding = function () {
    var node = this.startNode();
    this.next();

    // RestElement inside of a function parameter must be an identifier
    if (this.options.ecmaVersion === 6 && this.type !== types$1.name) {
      this.unexpected();
    }
    node.argument = this.parseBindingAtom();
    return this.finishNode(node, "RestElement");
  };

  // Parses lvalue (assignable) atom.

  pp$7.parseBindingAtom = function () {
    if (this.options.ecmaVersion >= 6) {
      switch (this.type) {
        case types$1.bracketL:
          var node = this.startNode();
          this.next();
          node.elements = this.parseBindingList(types$1.bracketR, true, true);
          return this.finishNode(node, "ArrayPattern");
        case types$1.braceL:
          return this.parseObj(true);
      }
    }
    return this.parseIdent();
  };
  pp$7.parseBindingList = function (close, allowEmpty, allowTrailingComma, allowModifiers) {
    var elts = [],
      first = true;
    while (!this.eat(close)) {
      if (first) {
        first = false;
      } else {
        this.expect(types$1.comma);
      }
      if (allowEmpty && this.type === types$1.comma) {
        elts.push(null);
      } else if (allowTrailingComma && this.afterTrailingComma(close)) {
        break;
      } else if (this.type === types$1.ellipsis) {
        var rest = this.parseRestBinding();
        this.parseBindingListItem(rest);
        elts.push(rest);
        if (this.type === types$1.comma) {
          this.raiseRecoverable(this.start, "Comma is not permitted after the rest element");
        }
        this.expect(close);
        break;
      } else {
        elts.push(this.parseAssignableListItem(allowModifiers));
      }
    }
    return elts;
  };
  pp$7.parseAssignableListItem = function (allowModifiers) {
    var elem = this.parseMaybeDefault(this.start, this.startLoc);
    this.parseBindingListItem(elem);
    return elem;
  };
  pp$7.parseBindingListItem = function (param) {
    return param;
  };

  // Parses assignment pattern around given atom if possible.

  pp$7.parseMaybeDefault = function (startPos, startLoc, left) {
    left = left || this.parseBindingAtom();
    if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) {
      return left;
    }
    var node = this.startNodeAt(startPos, startLoc);
    node.left = left;
    node.right = this.parseMaybeAssign();
    return this.finishNode(node, "AssignmentPattern");
  };

  // The following three functions all verify that a node is an lvalue —
  // something that can be bound, or assigned to. In order to do so, they perform
  // a variety of checks:
  //
  // - Check that none of the bound/assigned-to identifiers are reserved words.
  // - Record name declarations for bindings in the appropriate scope.
  // - Check duplicate argument names, if checkClashes is set.
  //
  // If a complex binding pattern is encountered (e.g., object and array
  // destructuring), the entire pattern is recursively checked.
  //
  // There are three versions of checkLVal*() appropriate for different
  // circumstances:
  //
  // - checkLValSimple() shall be used if the syntactic construct supports
  //   nothing other than identifiers and member expressions. Parenthesized
  //   expressions are also correctly handled. This is generally appropriate for
  //   constructs for which the spec says
  //
  //   > It is a Syntax Error if AssignmentTargetType of [the production] is not
  //   > simple.
  //
  //   It is also appropriate for checking if an identifier is valid and not
  //   defined elsewhere, like import declarations or function/class identifiers.
  //
  //   Examples where this is used include:
  //     a += …;
  //     import a from '…';
  //   where a is the node to be checked.
  //
  // - checkLValPattern() shall be used if the syntactic construct supports
  //   anything checkLValSimple() supports, as well as object and array
  //   destructuring patterns. This is generally appropriate for constructs for
  //   which the spec says
  //
  //   > It is a Syntax Error if [the production] is neither an ObjectLiteral nor
  //   > an ArrayLiteral and AssignmentTargetType of [the production] is not
  //   > simple.
  //
  //   Examples where this is used include:
  //     (a = …);
  //     const a = …;
  //     try { … } catch (a) { … }
  //   where a is the node to be checked.
  //
  // - checkLValInnerPattern() shall be used if the syntactic construct supports
  //   anything checkLValPattern() supports, as well as default assignment
  //   patterns, rest elements, and other constructs that may appear within an
  //   object or array destructuring pattern.
  //
  //   As a special case, function parameters also use checkLValInnerPattern(),
  //   as they also support defaults and rest constructs.
  //
  // These functions deliberately support both assignment and binding constructs,
  // as the logic for both is exceedingly similar. If the node is the target of
  // an assignment, then bindingType should be set to BIND_NONE. Otherwise, it
  // should be set to the appropriate BIND_* constant, like BIND_VAR or
  // BIND_LEXICAL.
  //
  // If the function is called with a non-BIND_NONE bindingType, then
  // additionally a checkClashes object may be specified to allow checking for
  // duplicate argument names. checkClashes is ignored if the provided construct
  // is an assignment (i.e., bindingType is BIND_NONE).

  pp$7.checkLValSimple = function (expr, bindingType, checkClashes) {
    if (bindingType === void 0) bindingType = BIND_NONE;
    var isBind = bindingType !== BIND_NONE;
    switch (expr.type) {
      case "Identifier":
        if (this.strict && this.reservedWordsStrictBind.test(expr.name)) {
          this.raiseRecoverable(expr.start, (isBind ? "Binding " : "Assigning to ") + expr.name + " in strict mode");
        }
        if (isBind) {
          if (bindingType === BIND_LEXICAL && expr.name === "let") {
            this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name");
          }
          if (checkClashes) {
            if (hasOwn(checkClashes, expr.name)) {
              this.raiseRecoverable(expr.start, "Argument name clash");
            }
            checkClashes[expr.name] = true;
          }
          if (bindingType !== BIND_OUTSIDE) {
            this.declareName(expr.name, bindingType, expr.start);
          }
        }
        break;
      case "ChainExpression":
        this.raiseRecoverable(expr.start, "Optional chaining cannot appear in left-hand side");
        break;
      case "MemberExpression":
        if (isBind) {
          this.raiseRecoverable(expr.start, "Binding member expression");
        }
        break;
      case "ParenthesizedExpression":
        if (isBind) {
          this.raiseRecoverable(expr.start, "Binding parenthesized expression");
        }
        return this.checkLValSimple(expr.expression, bindingType, checkClashes);
      default:
        this.raise(expr.start, (isBind ? "Binding" : "Assigning to") + " rvalue");
    }
  };
  pp$7.checkLValPattern = function (expr, bindingType, checkClashes) {
    if (bindingType === void 0) bindingType = BIND_NONE;
    switch (expr.type) {
      case "ObjectPattern":
        for (var i = 0, list = expr.properties; i < list.length; i += 1) {
          var prop = list[i];
          this.checkLValInnerPattern(prop, bindingType, checkClashes);
        }
        break;
      case "ArrayPattern":
        for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {
          var elem = list$1[i$1];
          if (elem) {
            this.checkLValInnerPattern(elem, bindingType, checkClashes);
          }
        }
        break;
      default:
        this.checkLValSimple(expr, bindingType, checkClashes);
    }
  };
  pp$7.checkLValInnerPattern = function (expr, bindingType, checkClashes) {
    if (bindingType === void 0) bindingType = BIND_NONE;
    switch (expr.type) {
      case "Property":
        // AssignmentProperty has type === "Property"
        this.checkLValInnerPattern(expr.value, bindingType, checkClashes);
        break;
      case "AssignmentPattern":
        this.checkLValPattern(expr.left, bindingType, checkClashes);
        break;
      case "RestElement":
        this.checkLValPattern(expr.argument, bindingType, checkClashes);
        break;
      default:
        this.checkLValPattern(expr, bindingType, checkClashes);
    }
  };

  // The algorithm used to determine whether a regexp can appear at a
  // given point in the program is loosely based on sweet.js' approach.
  // See https://github.com/mozilla/sweet.js/wiki/design

  var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {
    this.token = token;
    this.isExpr = !!isExpr;
    this.preserveSpace = !!preserveSpace;
    this.override = override;
    this.generator = !!generator;
  };
  var types = {
    b_stat: new TokContext("{", false),
    b_expr: new TokContext("{", true),
    b_tmpl: new TokContext("${", false),
    p_stat: new TokContext("(", false),
    p_expr: new TokContext("(", true),
    q_tmpl: new TokContext("`", true, true, function (p) {
      return p.tryReadTemplateToken();
    }),
    f_stat: new TokContext("function", false),
    f_expr: new TokContext("function", true),
    f_expr_gen: new TokContext("function", true, false, null, true),
    f_gen: new TokContext("function", false, false, null, true)
  };
  var pp$6 = Parser.prototype;
  pp$6.initialContext = function () {
    return [types.b_stat];
  };
  pp$6.curContext = function () {
    return this.context[this.context.length - 1];
  };
  pp$6.braceIsBlock = function (prevType) {
    var parent = this.curContext();
    if (parent === types.f_expr || parent === types.f_stat) {
      return true;
    }
    if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr)) {
      return !parent.isExpr;
    }

    // The check for `tt.name && exprAllowed` detects whether we are
    // after a `yield` or `of` construct. See the `updateContext` for
    // `tt.name`.
    if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed) {
      return lineBreak.test(this.input.slice(this.lastTokEnd, this.start));
    }
    if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow) {
      return true;
    }
    if (prevType === types$1.braceL) {
      return parent === types.b_stat;
    }
    if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name) {
      return false;
    }
    return !this.exprAllowed;
  };
  pp$6.inGeneratorContext = function () {
    for (var i = this.context.length - 1; i >= 1; i--) {
      var context = this.context[i];
      if (context.token === "function") {
        return context.generator;
      }
    }
    return false;
  };
  pp$6.updateContext = function (prevType) {
    var update,
      type = this.type;
    if (type.keyword && prevType === types$1.dot) {
      this.exprAllowed = false;
    } else if (update = type.updateContext) {
      update.call(this, prevType);
    } else {
      this.exprAllowed = type.beforeExpr;
    }
  };

  // Used to handle edge cases when token context could not be inferred correctly during tokenization phase

  pp$6.overrideContext = function (tokenCtx) {
    if (this.curContext() !== tokenCtx) {
      this.context[this.context.length - 1] = tokenCtx;
    }
  };

  // Token-specific context update code

  types$1.parenR.updateContext = types$1.braceR.updateContext = function () {
    if (this.context.length === 1) {
      this.exprAllowed = true;
      return;
    }
    var out = this.context.pop();
    if (out === types.b_stat && this.curContext().token === "function") {
      out = this.context.pop();
    }
    this.exprAllowed = !out.isExpr;
  };
  types$1.braceL.updateContext = function (prevType) {
    this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);
    this.exprAllowed = true;
  };
  types$1.dollarBraceL.updateContext = function () {
    this.context.push(types.b_tmpl);
    this.exprAllowed = true;
  };
  types$1.parenL.updateContext = function (prevType) {
    var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;
    this.context.push(statementParens ? types.p_stat : types.p_expr);
    this.exprAllowed = true;
  };
  types$1.incDec.updateContext = function () {
    // tokExprAllowed stays unchanged
  };
  types$1._function.updateContext = types$1._class.updateContext = function (prevType) {
    if (prevType.beforeExpr && prevType !== types$1._else && !(prevType === types$1.semi && this.curContext() !== types.p_stat) && !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat)) {
      this.context.push(types.f_expr);
    } else {
      this.context.push(types.f_stat);
    }
    this.exprAllowed = false;
  };
  types$1.colon.updateContext = function () {
    if (this.curContext().token === "function") {
      this.context.pop();
    }
    this.exprAllowed = true;
  };
  types$1.backQuote.updateContext = function () {
    if (this.curContext() === types.q_tmpl) {
      this.context.pop();
    } else {
      this.context.push(types.q_tmpl);
    }
    this.exprAllowed = false;
  };
  types$1.star.updateContext = function (prevType) {
    if (prevType === types$1._function) {
      var index = this.context.length - 1;
      if (this.context[index] === types.f_expr) {
        this.context[index] = types.f_expr_gen;
      } else {
        this.context[index] = types.f_gen;
      }
    }
    this.exprAllowed = true;
  };
  types$1.name.updateContext = function (prevType) {
    var allowed = false;
    if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {
      if (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) {
        allowed = true;
      }
    }
    this.exprAllowed = allowed;
  };

  // A recursive descent parser operates by defining functions for all
  // syntactic elements, and recursively calling those, each function
  // advancing the input stream and returning an AST node. Precedence
  // of constructs (for example, the fact that `!x[1]` means `!(x[1])`
  // instead of `(!x)[1]` is handled by the fact that the parser
  // function that parses unary prefix operators is called first, and
  // in turn calls the function that parses `[]` subscripts — that
  // way, it'll receive the node for `x[1]` already parsed, and wraps
  // *that* in the unary operator node.
  //
  // Acorn uses an [operator precedence parser][opp] to handle binary
  // operator precedence, because it is much more compact than using
  // the technique outlined above, which uses different, nesting
  // functions to specify precedence, for all of the ten binary
  // precedence levels that JavaScript defines.
  //
  // [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser

  var pp$5 = Parser.prototype;

  // Check if property name clashes with already added.
  // Object/class getters and setters are not allowed to clash —
  // either with each other or with an init property — and in
  // strict mode, init properties are also not allowed to be repeated.

  pp$5.checkPropClash = function (prop, propHash, refDestructuringErrors) {
    if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") {
      return;
    }
    if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) {
      return;
    }
    var key = prop.key;
    var name;
    switch (key.type) {
      case "Identifier":
        name = key.name;
        break;
      case "Literal":
        name = String(key.value);
        break;
      default:
        return;
    }
    var kind = prop.kind;
    if (this.options.ecmaVersion >= 6) {
      if (name === "__proto__" && kind === "init") {
        if (propHash.proto) {
          if (refDestructuringErrors) {
            if (refDestructuringErrors.doubleProto < 0) {
              refDestructuringErrors.doubleProto = key.start;
            }
          } else {
            this.raiseRecoverable(key.start, "Redefinition of __proto__ property");
          }
        }
        propHash.proto = true;
      }
      return;
    }
    name = "$" + name;
    var other = propHash[name];
    if (other) {
      var redefinition;
      if (kind === "init") {
        redefinition = this.strict && other.init || other.get || other.set;
      } else {
        redefinition = other.init || other[kind];
      }
      if (redefinition) {
        this.raiseRecoverable(key.start, "Redefinition of property");
      }
    } else {
      other = propHash[name] = {
        init: false,
        get: false,
        set: false
      };
    }
    other[kind] = true;
  };

  // ### Expression parsing

  // These nest, from the most general expression type at the top to
  // 'atomic', nondivisible expression types at the bottom. Most of
  // the functions will simply let the function(s) below them parse,
  // and, *if* the syntactic construct they handle is present, wrap
  // the AST node that the inner parser gave them in another node.

  // Parse a full expression. The optional arguments are used to
  // forbid the `in` operator (in for loops initalization expressions)
  // and provide reference for storing '=' operator inside shorthand
  // property assignment in contexts where both object expression
  // and object pattern might appear (so it's possible to raise
  // delayed syntax error at correct position).

  pp$5.parseExpression = function (forInit, refDestructuringErrors) {
    var startPos = this.start,
      startLoc = this.startLoc;
    var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);
    if (this.type === types$1.comma) {
      var node = this.startNodeAt(startPos, startLoc);
      node.expressions = [expr];
      while (this.eat(types$1.comma)) {
        node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors));
      }
      return this.finishNode(node, "SequenceExpression");
    }
    return expr;
  };

  // Parse an assignment expression. This includes applications of
  // operators like `+=`.

  pp$5.parseMaybeAssign = function (forInit, refDestructuringErrors, afterLeftParse) {
    if (this.isContextual("yield")) {
      if (this.inGenerator) {
        return this.parseYield(forInit);
      }
      // The tokenizer will assume an expression is allowed after
      // `yield`, but this isn't that kind of yield
      else {
        this.exprAllowed = false;
      }
    }
    var ownDestructuringErrors = false,
      oldParenAssign = -1,
      oldTrailingComma = -1,
      oldDoubleProto = -1;
    if (refDestructuringErrors) {
      oldParenAssign = refDestructuringErrors.parenthesizedAssign;
      oldTrailingComma = refDestructuringErrors.trailingComma;
      oldDoubleProto = refDestructuringErrors.doubleProto;
      refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;
    } else {
      refDestructuringErrors = new DestructuringErrors();
      ownDestructuringErrors = true;
    }
    var startPos = this.start,
      startLoc = this.startLoc;
    if (this.type === types$1.parenL || this.type === types$1.name) {
      this.potentialArrowAt = this.start;
      this.potentialArrowInForAwait = forInit === "await";
    }
    var left = this.parseMaybeConditional(forInit, refDestructuringErrors);
    if (afterLeftParse) {
      left = afterLeftParse.call(this, left, startPos, startLoc);
    }
    if (this.type.isAssign) {
      var node = this.startNodeAt(startPos, startLoc);
      node.operator = this.value;
      if (this.type === types$1.eq) {
        left = this.toAssignable(left, false, refDestructuringErrors);
      }
      if (!ownDestructuringErrors) {
        refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;
      }
      if (refDestructuringErrors.shorthandAssign >= left.start) {
        refDestructuringErrors.shorthandAssign = -1;
      } // reset because shorthand default was used correctly
      if (this.type === types$1.eq) {
        this.checkLValPattern(left);
      } else {
        this.checkLValSimple(left);
      }
      node.left = left;
      this.next();
      node.right = this.parseMaybeAssign(forInit);
      if (oldDoubleProto > -1) {
        refDestructuringErrors.doubleProto = oldDoubleProto;
      }
      return this.finishNode(node, "AssignmentExpression");
    } else {
      if (ownDestructuringErrors) {
        this.checkExpressionErrors(refDestructuringErrors, true);
      }
    }
    if (oldParenAssign > -1) {
      refDestructuringErrors.parenthesizedAssign = oldParenAssign;
    }
    if (oldTrailingComma > -1) {
      refDestructuringErrors.trailingComma = oldTrailingComma;
    }
    return left;
  };

  // Parse a ternary conditional (`?:`) operator.

  pp$5.parseMaybeConditional = function (forInit, refDestructuringErrors) {
    var startPos = this.start,
      startLoc = this.startLoc;
    var expr = this.parseExprOps(forInit, refDestructuringErrors);
    if (this.checkExpressionErrors(refDestructuringErrors)) {
      return expr;
    }
    if (this.eat(types$1.question)) {
      var node = this.startNodeAt(startPos, startLoc);
      node.test = expr;
      node.consequent = this.parseMaybeAssign();
      this.expect(types$1.colon);
      node.alternate = this.parseMaybeAssign(forInit);
      return this.finishNode(node, "ConditionalExpression");
    }
    return expr;
  };

  // Start the precedence parser.

  pp$5.parseExprOps = function (forInit, refDestructuringErrors) {
    var startPos = this.start,
      startLoc = this.startLoc;
    var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);
    if (this.checkExpressionErrors(refDestructuringErrors)) {
      return expr;
    }
    return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit);
  };

  // Parse binary operators with the operator precedence parsing
  // algorithm. `left` is the left-hand side of the operator.
  // `minPrec` provides context that allows the function to stop and
  // defer further parser to one of its callers when it encounters an
  // operator that has a lower precedence than the set it is parsing.

  pp$5.parseExprOp = function (left, leftStartPos, leftStartLoc, minPrec, forInit) {
    var prec = this.type.binop;
    if (prec != null && (!forInit || this.type !== types$1._in)) {
      if (prec > minPrec) {
        var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;
        var coalesce = this.type === types$1.coalesce;
        if (coalesce) {
          // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.
          // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.
          prec = types$1.logicalAND.binop;
        }
        var op = this.value;
        this.next();
        var startPos = this.start,
          startLoc = this.startLoc;
        var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);
        var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);
        if (logical && this.type === types$1.coalesce || coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND)) {
          this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses");
        }
        return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit);
      }
    }
    return left;
  };
  pp$5.buildBinary = function (startPos, startLoc, left, right, op, logical) {
    if (right.type === "PrivateIdentifier") {
      this.raise(right.start, "Private identifier can only be left side of binary expression");
    }
    var node = this.startNodeAt(startPos, startLoc);
    node.left = left;
    node.operator = op;
    node.right = right;
    return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression");
  };

  // Parse unary operators, both prefix and postfix.

  pp$5.parseMaybeUnary = function (refDestructuringErrors, sawUnary, incDec, forInit) {
    var startPos = this.start,
      startLoc = this.startLoc,
      expr;
    if (this.isContextual("await") && this.canAwait) {
      expr = this.parseAwait(forInit);
      sawUnary = true;
    } else if (this.type.prefix) {
      var node = this.startNode(),
        update = this.type === types$1.incDec;
      node.operator = this.value;
      node.prefix = true;
      this.next();
      node.argument = this.parseMaybeUnary(null, true, update, forInit);
      this.checkExpressionErrors(refDestructuringErrors, true);
      if (update) {
        this.checkLValSimple(node.argument);
      } else if (this.strict && node.operator === "delete" && node.argument.type === "Identifier") {
        this.raiseRecoverable(node.start, "Deleting local variable in strict mode");
      } else if (node.operator === "delete" && isPrivateFieldAccess(node.argument)) {
        this.raiseRecoverable(node.start, "Private fields can not be deleted");
      } else {
        sawUnary = true;
      }
      expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
    } else if (!sawUnary && this.type === types$1.privateId) {
      if ((forInit || this.privateNameStack.length === 0) && this.options.checkPrivateFields) {
        this.unexpected();
      }
      expr = this.parsePrivateIdent();
      // only could be private fields in 'in', such as #x in obj
      if (this.type !== types$1._in) {
        this.unexpected();
      }
    } else {
      expr = this.parseExprSubscripts(refDestructuringErrors, forInit);
      if (this.checkExpressionErrors(refDestructuringErrors)) {
        return expr;
      }
      while (this.type.postfix && !this.canInsertSemicolon()) {
        var node$1 = this.startNodeAt(startPos, startLoc);
        node$1.operator = this.value;
        node$1.prefix = false;
        node$1.argument = expr;
        this.checkLValSimple(expr);
        this.next();
        expr = this.finishNode(node$1, "UpdateExpression");
      }
    }
    if (!incDec && this.eat(types$1.starstar)) {
      if (sawUnary) {
        this.unexpected(this.lastTokStart);
      } else {
        return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), "**", false);
      }
    } else {
      return expr;
    }
  };
  function isPrivateFieldAccess(node) {
    return node.type === "MemberExpression" && node.property.type === "PrivateIdentifier" || node.type === "ChainExpression" && isPrivateFieldAccess(node.expression);
  }

  // Parse call, dot, and `[]`-subscript expressions.

  pp$5.parseExprSubscripts = function (refDestructuringErrors, forInit) {
    var startPos = this.start,
      startLoc = this.startLoc;
    var expr = this.parseExprAtom(refDestructuringErrors, forInit);
    if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") {
      return expr;
    }
    var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit);
    if (refDestructuringErrors && result.type === "MemberExpression") {
      if (refDestructuringErrors.parenthesizedAssign >= result.start) {
        refDestructuringErrors.parenthesizedAssign = -1;
      }
      if (refDestructuringErrors.parenthesizedBind >= result.start) {
        refDestructuringErrors.parenthesizedBind = -1;
      }
      if (refDestructuringErrors.trailingComma >= result.start) {
        refDestructuringErrors.trailingComma = -1;
      }
    }
    return result;
  };
  pp$5.parseSubscripts = function (base, startPos, startLoc, noCalls, forInit) {
    var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.potentialArrowAt === base.start;
    var optionalChained = false;
    while (true) {
      var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit);
      if (element.optional) {
        optionalChained = true;
      }
      if (element === base || element.type === "ArrowFunctionExpression") {
        if (optionalChained) {
          var chainNode = this.startNodeAt(startPos, startLoc);
          chainNode.expression = element;
          element = this.finishNode(chainNode, "ChainExpression");
        }
        return element;
      }
      base = element;
    }
  };
  pp$5.shouldParseAsyncArrow = function () {
    return !this.canInsertSemicolon() && this.eat(types$1.arrow);
  };
  pp$5.parseSubscriptAsyncArrow = function (startPos, startLoc, exprList, forInit) {
    return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit);
  };
  pp$5.parseSubscript = function (base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {
    var optionalSupported = this.options.ecmaVersion >= 11;
    var optional = optionalSupported && this.eat(types$1.questionDot);
    if (noCalls && optional) {
      this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions");
    }
    var computed = this.eat(types$1.bracketL);
    if (computed || optional && this.type !== types$1.parenL && this.type !== types$1.backQuote || this.eat(types$1.dot)) {
      var node = this.startNodeAt(startPos, startLoc);
      node.object = base;
      if (computed) {
        node.property = this.parseExpression();
        this.expect(types$1.bracketR);
      } else if (this.type === types$1.privateId && base.type !== "Super") {
        node.property = this.parsePrivateIdent();
      } else {
        node.property = this.parseIdent(this.options.allowReserved !== "never");
      }
      node.computed = !!computed;
      if (optionalSupported) {
        node.optional = optional;
      }
      base = this.finishNode(node, "MemberExpression");
    } else if (!noCalls && this.eat(types$1.parenL)) {
      var refDestructuringErrors = new DestructuringErrors(),
        oldYieldPos = this.yieldPos,
        oldAwaitPos = this.awaitPos,
        oldAwaitIdentPos = this.awaitIdentPos;
      this.yieldPos = 0;
      this.awaitPos = 0;
      this.awaitIdentPos = 0;
      var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);
      if (maybeAsyncArrow && !optional && this.shouldParseAsyncArrow()) {
        this.checkPatternErrors(refDestructuringErrors, false);
        this.checkYieldAwaitInDefaultParams();
        if (this.awaitIdentPos > 0) {
          this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function");
        }
        this.yieldPos = oldYieldPos;
        this.awaitPos = oldAwaitPos;
        this.awaitIdentPos = oldAwaitIdentPos;
        return this.parseSubscriptAsyncArrow(startPos, startLoc, exprList, forInit);
      }
      this.checkExpressionErrors(refDestructuringErrors, true);
      this.yieldPos = oldYieldPos || this.yieldPos;
      this.awaitPos = oldAwaitPos || this.awaitPos;
      this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;
      var node$1 = this.startNodeAt(startPos, startLoc);
      node$1.callee = base;
      node$1.arguments = exprList;
      if (optionalSupported) {
        node$1.optional = optional;
      }
      base = this.finishNode(node$1, "CallExpression");
    } else if (this.type === types$1.backQuote) {
      if (optional || optionalChained) {
        this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions");
      }
      var node$2 = this.startNodeAt(startPos, startLoc);
      node$2.tag = base;
      node$2.quasi = this.parseTemplate({
        isTagged: true
      });
      base = this.finishNode(node$2, "TaggedTemplateExpression");
    }
    return base;
  };

  // Parse an atomic expression — either a single token that is an
  // expression, an expression started by a keyword like `function` or
  // `new`, or an expression wrapped in punctuation like `()`, `[]`,
  // or `{}`.

  pp$5.parseExprAtom = function (refDestructuringErrors, forInit, forNew) {
    // If a division operator appears in an expression position, the
    // tokenizer got confused, and we force it to read a regexp instead.
    if (this.type === types$1.slash) {
      this.readRegexp();
    }
    var node,
      canBeArrow = this.potentialArrowAt === this.start;
    switch (this.type) {
      case types$1._super:
        if (!this.allowSuper) {
          this.raise(this.start, "'super' keyword outside a method");
        }
        node = this.startNode();
        this.next();
        if (this.type === types$1.parenL && !this.allowDirectSuper) {
          this.raise(node.start, "super() call outside constructor of a subclass");
        }
        // The `super` keyword can appear at below:
        // SuperProperty:
        //     super [ Expression ]
        //     super . IdentifierName
        // SuperCall:
        //     super ( Arguments )
        if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL) {
          this.unexpected();
        }
        return this.finishNode(node, "Super");
      case types$1._this:
        node = this.startNode();
        this.next();
        return this.finishNode(node, "ThisExpression");
      case types$1.name:
        var startPos = this.start,
          startLoc = this.startLoc,
          containsEsc = this.containsEsc;
        var id = this.parseIdent(false);
        if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$1._function)) {
          this.overrideContext(types.f_expr);
          return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit);
        }
        if (canBeArrow && !this.canInsertSemicolon()) {
          if (this.eat(types$1.arrow)) {
            return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit);
          }
          if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$1.name && !containsEsc && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) {
            id = this.parseIdent(false);
            if (this.canInsertSemicolon() || !this.eat(types$1.arrow)) {
              this.unexpected();
            }
            return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit);
          }
        }
        return id;
      case types$1.regexp:
        var value = this.value;
        node = this.parseLiteral(value.value);
        node.regex = {
          pattern: value.pattern,
          flags: value.flags
        };
        return node;
      case types$1.num:
      case types$1.string:
        return this.parseLiteral(this.value);
      case types$1._null:
      case types$1._true:
      case types$1._false:
        node = this.startNode();
        node.value = this.type === types$1._null ? null : this.type === types$1._true;
        node.raw = this.type.keyword;
        this.next();
        return this.finishNode(node, "Literal");
      case types$1.parenL:
        var start = this.start,
          expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);
        if (refDestructuringErrors) {
          if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) {
            refDestructuringErrors.parenthesizedAssign = start;
          }
          if (refDestructuringErrors.parenthesizedBind < 0) {
            refDestructuringErrors.parenthesizedBind = start;
          }
        }
        return expr;
      case types$1.bracketL:
        node = this.startNode();
        this.next();
        node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);
        return this.finishNode(node, "ArrayExpression");
      case types$1.braceL:
        this.overrideContext(types.b_expr);
        return this.parseObj(false, refDestructuringErrors);
      case types$1._function:
        node = this.startNode();
        this.next();
        return this.parseFunction(node, 0);
      case types$1._class:
        return this.parseClass(this.startNode(), false);
      case types$1._new:
        return this.parseNew();
      case types$1.backQuote:
        return this.parseTemplate();
      case types$1._import:
        if (this.options.ecmaVersion >= 11) {
          return this.parseExprImport(forNew);
        } else {
          return this.unexpected();
        }
      default:
        return this.parseExprAtomDefault();
    }
  };
  pp$5.parseExprAtomDefault = function () {
    this.unexpected();
  };
  pp$5.parseExprImport = function (forNew) {
    var node = this.startNode();

    // Consume `import` as an identifier for `import.meta`.
    // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.
    if (this.containsEsc) {
      this.raiseRecoverable(this.start, "Escape sequence in keyword import");
    }
    this.next();
    if (this.type === types$1.parenL && !forNew) {
      return this.parseDynamicImport(node);
    } else if (this.type === types$1.dot) {
      var meta = this.startNodeAt(node.start, node.loc && node.loc.start);
      meta.name = "import";
      node.meta = this.finishNode(meta, "Identifier");
      return this.parseImportMeta(node);
    } else {
      this.unexpected();
    }
  };
  pp$5.parseDynamicImport = function (node) {
    this.next(); // skip `(`

    // Parse node.source.
    node.source = this.parseMaybeAssign();

    // Verify ending.
    if (!this.eat(types$1.parenR)) {
      var errorPos = this.start;
      if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {
        this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()");
      } else {
        this.unexpected(errorPos);
      }
    }
    return this.finishNode(node, "ImportExpression");
  };
  pp$5.parseImportMeta = function (node) {
    this.next(); // skip `.`

    var containsEsc = this.containsEsc;
    node.property = this.parseIdent(true);
    if (node.property.name !== "meta") {
      this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'");
    }
    if (containsEsc) {
      this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters");
    }
    if (this.options.sourceType !== "module" && !this.options.allowImportExportEverywhere) {
      this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module");
    }
    return this.finishNode(node, "MetaProperty");
  };
  pp$5.parseLiteral = function (value) {
    var node = this.startNode();
    node.value = value;
    node.raw = this.input.slice(this.start, this.end);
    if (node.raw.charCodeAt(node.raw.length - 1) === 110) {
      node.bigint = node.raw.slice(0, -1).replace(/_/g, "");
    }
    this.next();
    return this.finishNode(node, "Literal");
  };
  pp$5.parseParenExpression = function () {
    this.expect(types$1.parenL);
    var val = this.parseExpression();
    this.expect(types$1.parenR);
    return val;
  };
  pp$5.shouldParseArrow = function (exprList) {
    return !this.canInsertSemicolon();
  };
  pp$5.parseParenAndDistinguishExpression = function (canBeArrow, forInit) {
    var startPos = this.start,
      startLoc = this.startLoc,
      val,
      allowTrailingComma = this.options.ecmaVersion >= 8;
    if (this.options.ecmaVersion >= 6) {
      this.next();
      var innerStartPos = this.start,
        innerStartLoc = this.startLoc;
      var exprList = [],
        first = true,
        lastIsComma = false;
      var refDestructuringErrors = new DestructuringErrors(),
        oldYieldPos = this.yieldPos,
        oldAwaitPos = this.awaitPos,
        spreadStart;
      this.yieldPos = 0;
      this.awaitPos = 0;
      // Do not save awaitIdentPos to allow checking awaits nested in parameters
      while (this.type !== types$1.parenR) {
        first ? first = false : this.expect(types$1.comma);
        if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {
          lastIsComma = true;
          break;
        } else if (this.type === types$1.ellipsis) {
          spreadStart = this.start;
          exprList.push(this.parseParenItem(this.parseRestBinding()));
          if (this.type === types$1.comma) {
            this.raiseRecoverable(this.start, "Comma is not permitted after the rest element");
          }
          break;
        } else {
          exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));
        }
      }
      var innerEndPos = this.lastTokEnd,
        innerEndLoc = this.lastTokEndLoc;
      this.expect(types$1.parenR);
      if (canBeArrow && this.shouldParseArrow(exprList) && this.eat(types$1.arrow)) {
        this.checkPatternErrors(refDestructuringErrors, false);
        this.checkYieldAwaitInDefaultParams();
        this.yieldPos = oldYieldPos;
        this.awaitPos = oldAwaitPos;
        return this.parseParenArrowList(startPos, startLoc, exprList, forInit);
      }
      if (!exprList.length || lastIsComma) {
        this.unexpected(this.lastTokStart);
      }
      if (spreadStart) {
        this.unexpected(spreadStart);
      }
      this.checkExpressionErrors(refDestructuringErrors, true);
      this.yieldPos = oldYieldPos || this.yieldPos;
      this.awaitPos = oldAwaitPos || this.awaitPos;
      if (exprList.length > 1) {
        val = this.startNodeAt(innerStartPos, innerStartLoc);
        val.expressions = exprList;
        this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc);
      } else {
        val = exprList[0];
      }
    } else {
      val = this.parseParenExpression();
    }
    if (this.options.preserveParens) {
      var par = this.startNodeAt(startPos, startLoc);
      par.expression = val;
      return this.finishNode(par, "ParenthesizedExpression");
    } else {
      return val;
    }
  };
  pp$5.parseParenItem = function (item) {
    return item;
  };
  pp$5.parseParenArrowList = function (startPos, startLoc, exprList, forInit) {
    return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit);
  };

  // New's precedence is slightly tricky. It must allow its argument to
  // be a `[]` or dot subscript expression, but not a call — at least,
  // not without wrapping it in parentheses. Thus, it uses the noCalls
  // argument to parseSubscripts to prevent it from consuming the
  // argument list.

  var empty = [];
  pp$5.parseNew = function () {
    if (this.containsEsc) {
      this.raiseRecoverable(this.start, "Escape sequence in keyword new");
    }
    var node = this.startNode();
    this.next();
    if (this.options.ecmaVersion >= 6 && this.type === types$1.dot) {
      var meta = this.startNodeAt(node.start, node.loc && node.loc.start);
      meta.name = "new";
      node.meta = this.finishNode(meta, "Identifier");
      this.next();
      var containsEsc = this.containsEsc;
      node.property = this.parseIdent(true);
      if (node.property.name !== "target") {
        this.raiseRecoverable(node.property.start, "The only valid meta property for new is 'new.target'");
      }
      if (containsEsc) {
        this.raiseRecoverable(node.start, "'new.target' must not contain escaped characters");
      }
      if (!this.allowNewDotTarget) {
        this.raiseRecoverable(node.start, "'new.target' can only be used in functions and class static block");
      }
      return this.finishNode(node, "MetaProperty");
    }
    var startPos = this.start,
      startLoc = this.startLoc;
    node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false);
    if (this.eat(types$1.parenL)) {
      node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false);
    } else {
      node.arguments = empty;
    }
    return this.finishNode(node, "NewExpression");
  };

  // Parse template expression.

  pp$5.parseTemplateElement = function (ref) {
    var isTagged = ref.isTagged;
    var elem = this.startNode();
    if (this.type === types$1.invalidTemplate) {
      if (!isTagged) {
        this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal");
      }
      elem.value = {
        raw: this.value,
        cooked: null
      };
    } else {
      elem.value = {
        raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"),
        cooked: this.value
      };
    }
    this.next();
    elem.tail = this.type === types$1.backQuote;
    return this.finishNode(elem, "TemplateElement");
  };
  pp$5.parseTemplate = function (ref) {
    if (ref === void 0) ref = {};
    var isTagged = ref.isTagged;
    if (isTagged === void 0) isTagged = false;
    var node = this.startNode();
    this.next();
    node.expressions = [];
    var curElt = this.parseTemplateElement({
      isTagged: isTagged
    });
    node.quasis = [curElt];
    while (!curElt.tail) {
      if (this.type === types$1.eof) {
        this.raise(this.pos, "Unterminated template literal");
      }
      this.expect(types$1.dollarBraceL);
      node.expressions.push(this.parseExpression());
      this.expect(types$1.braceR);
      node.quasis.push(curElt = this.parseTemplateElement({
        isTagged: isTagged
      }));
    }
    this.next();
    return this.finishNode(node, "TemplateLiteral");
  };
  pp$5.isAsyncProp = function (prop) {
    return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === types$1.star) && !lineBreak.test(this.input.slice(this.lastTokEnd, this.start));
  };

  // Parse an object literal or binding pattern.

  pp$5.parseObj = function (isPattern, refDestructuringErrors) {
    var node = this.startNode(),
      first = true,
      propHash = {};
    node.properties = [];
    this.next();
    while (!this.eat(types$1.braceR)) {
      if (!first) {
        this.expect(types$1.comma);
        if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) {
          break;
        }
      } else {
        first = false;
      }
      var prop = this.parseProperty(isPattern, refDestructuringErrors);
      if (!isPattern) {
        this.checkPropClash(prop, propHash, refDestructuringErrors);
      }
      node.properties.push(prop);
    }
    return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression");
  };
  pp$5.parseProperty = function (isPattern, refDestructuringErrors) {
    var prop = this.startNode(),
      isGenerator,
      isAsync,
      startPos,
      startLoc;
    if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {
      if (isPattern) {
        prop.argument = this.parseIdent(false);
        if (this.type === types$1.comma) {
          this.raiseRecoverable(this.start, "Comma is not permitted after the rest element");
        }
        return this.finishNode(prop, "RestElement");
      }
      // Parse argument.
      prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);
      // To disallow trailing comma via `this.toAssignable()`.
      if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {
        refDestructuringErrors.trailingComma = this.start;
      }
      // Finish
      return this.finishNode(prop, "SpreadElement");
    }
    if (this.options.ecmaVersion >= 6) {
      prop.method = false;
      prop.shorthand = false;
      if (isPattern || refDestructuringErrors) {
        startPos = this.start;
        startLoc = this.startLoc;
      }
      if (!isPattern) {
        isGenerator = this.eat(types$1.star);
      }
    }
    var containsEsc = this.containsEsc;
    this.parsePropertyName(prop);
    if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {
      isAsync = true;
      isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);
      this.parsePropertyName(prop);
    } else {
      isAsync = false;
    }
    this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);
    return this.finishNode(prop, "Property");
  };
  pp$5.parseGetterSetter = function (prop) {
    prop.kind = prop.key.name;
    this.parsePropertyName(prop);
    prop.value = this.parseMethod(false);
    var paramCount = prop.kind === "get" ? 0 : 1;
    if (prop.value.params.length !== paramCount) {
      var start = prop.value.start;
      if (prop.kind === "get") {
        this.raiseRecoverable(start, "getter should have no params");
      } else {
        this.raiseRecoverable(start, "setter should have exactly one param");
      }
    } else {
      if (prop.kind === "set" && prop.value.params[0].type === "RestElement") {
        this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params");
      }
    }
  };
  pp$5.parsePropertyValue = function (prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {
    if ((isGenerator || isAsync) && this.type === types$1.colon) {
      this.unexpected();
    }
    if (this.eat(types$1.colon)) {
      prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);
      prop.kind = "init";
    } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {
      if (isPattern) {
        this.unexpected();
      }
      prop.kind = "init";
      prop.method = true;
      prop.value = this.parseMethod(isGenerator, isAsync);
    } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq) {
      if (isGenerator || isAsync) {
        this.unexpected();
      }
      this.parseGetterSetter(prop);
    } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") {
      if (isGenerator || isAsync) {
        this.unexpected();
      }
      this.checkUnreserved(prop.key);
      if (prop.key.name === "await" && !this.awaitIdentPos) {
        this.awaitIdentPos = startPos;
      }
      prop.kind = "init";
      if (isPattern) {
        prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
      } else if (this.type === types$1.eq && refDestructuringErrors) {
        if (refDestructuringErrors.shorthandAssign < 0) {
          refDestructuringErrors.shorthandAssign = this.start;
        }
        prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
      } else {
        prop.value = this.copyNode(prop.key);
      }
      prop.shorthand = true;
    } else {
      this.unexpected();
    }
  };
  pp$5.parsePropertyName = function (prop) {
    if (this.options.ecmaVersion >= 6) {
      if (this.eat(types$1.bracketL)) {
        prop.computed = true;
        prop.key = this.parseMaybeAssign();
        this.expect(types$1.bracketR);
        return prop.key;
      } else {
        prop.computed = false;
      }
    }
    return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never");
  };

  // Initialize empty function node.

  pp$5.initFunction = function (node) {
    node.id = null;
    if (this.options.ecmaVersion >= 6) {
      node.generator = node.expression = false;
    }
    if (this.options.ecmaVersion >= 8) {
      node.async = false;
    }
  };

  // Parse object or class method.

  pp$5.parseMethod = function (isGenerator, isAsync, allowDirectSuper) {
    var node = this.startNode(),
      oldYieldPos = this.yieldPos,
      oldAwaitPos = this.awaitPos,
      oldAwaitIdentPos = this.awaitIdentPos;
    this.initFunction(node);
    if (this.options.ecmaVersion >= 6) {
      node.generator = isGenerator;
    }
    if (this.options.ecmaVersion >= 8) {
      node.async = !!isAsync;
    }
    this.yieldPos = 0;
    this.awaitPos = 0;
    this.awaitIdentPos = 0;
    this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));
    this.expect(types$1.parenL);
    node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);
    this.checkYieldAwaitInDefaultParams();
    this.parseFunctionBody(node, false, true, false);
    this.yieldPos = oldYieldPos;
    this.awaitPos = oldAwaitPos;
    this.awaitIdentPos = oldAwaitIdentPos;
    return this.finishNode(node, "FunctionExpression");
  };

  // Parse arrow function expression with given parameters.

  pp$5.parseArrowExpression = function (node, params, isAsync, forInit) {
    var oldYieldPos = this.yieldPos,
      oldAwaitPos = this.awaitPos,
      oldAwaitIdentPos = this.awaitIdentPos;
    this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);
    this.initFunction(node);
    if (this.options.ecmaVersion >= 8) {
      node.async = !!isAsync;
    }
    this.yieldPos = 0;
    this.awaitPos = 0;
    this.awaitIdentPos = 0;
    node.params = this.toAssignableList(params, true);
    this.parseFunctionBody(node, true, false, forInit);
    this.yieldPos = oldYieldPos;
    this.awaitPos = oldAwaitPos;
    this.awaitIdentPos = oldAwaitIdentPos;
    return this.finishNode(node, "ArrowFunctionExpression");
  };

  // Parse function body and check parameters.

  pp$5.parseFunctionBody = function (node, isArrowFunction, isMethod, forInit) {
    var isExpression = isArrowFunction && this.type !== types$1.braceL;
    var oldStrict = this.strict,
      useStrict = false;
    if (isExpression) {
      node.body = this.parseMaybeAssign(forInit);
      node.expression = true;
      this.checkParams(node, false);
    } else {
      var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);
      if (!oldStrict || nonSimple) {
        useStrict = this.strictDirective(this.end);
        // If this is a strict mode function, verify that argument names
        // are not repeated, and it does not try to bind the words `eval`
        // or `arguments`.
        if (useStrict && nonSimple) {
          this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list");
        }
      }
      // Start a new scope with regard to labels and the `inFunction`
      // flag (restore them to their old value afterwards).
      var oldLabels = this.labels;
      this.labels = [];
      if (useStrict) {
        this.strict = true;
      }

      // Add the params to varDeclaredNames to ensure that an error is thrown
      // if a let/const declaration in the function clashes with one of the params.
      this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));
      // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'
      if (this.strict && node.id) {
        this.checkLValSimple(node.id, BIND_OUTSIDE);
      }
      node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);
      node.expression = false;
      this.adaptDirectivePrologue(node.body.body);
      this.labels = oldLabels;
    }
    this.exitScope();
  };
  pp$5.isSimpleParamList = function (params) {
    for (var i = 0, list = params; i < list.length; i += 1) {
      var param = list[i];
      if (param.type !== "Identifier") {
        return false;
      }
    }
    return true;
  };

  // Checks function params for various disallowed patterns such as using "eval"
  // or "arguments" and duplicate parameters.

  pp$5.checkParams = function (node, allowDuplicates) {
    var nameHash = Object.create(null);
    for (var i = 0, list = node.params; i < list.length; i += 1) {
      var param = list[i];
      this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);
    }
  };

  // Parses a comma-separated list of expressions, and returns them as
  // an array. `close` is the token type that ends the list, and
  // `allowEmpty` can be turned on to allow subsequent commas with
  // nothing in between them to be parsed as `null` (which is needed
  // for array literals).

  pp$5.parseExprList = function (close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
    var elts = [],
      first = true;
    while (!this.eat(close)) {
      if (!first) {
        this.expect(types$1.comma);
        if (allowTrailingComma && this.afterTrailingComma(close)) {
          break;
        }
      } else {
        first = false;
      }
      var elt = void 0;
      if (allowEmpty && this.type === types$1.comma) {
        elt = null;
      } else if (this.type === types$1.ellipsis) {
        elt = this.parseSpread(refDestructuringErrors);
        if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0) {
          refDestructuringErrors.trailingComma = this.start;
        }
      } else {
        elt = this.parseMaybeAssign(false, refDestructuringErrors);
      }
      elts.push(elt);
    }
    return elts;
  };
  pp$5.checkUnreserved = function (ref) {
    var start = ref.start;
    var end = ref.end;
    var name = ref.name;
    if (this.inGenerator && name === "yield") {
      this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator");
    }
    if (this.inAsync && name === "await") {
      this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function");
    }
    if (this.currentThisScope().inClassFieldInit && name === "arguments") {
      this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer");
    }
    if (this.inClassStaticBlock && (name === "arguments" || name === "await")) {
      this.raise(start, "Cannot use " + name + " in class static initialization block");
    }
    if (this.keywords.test(name)) {
      this.raise(start, "Unexpected keyword '" + name + "'");
    }
    if (this.options.ecmaVersion < 6 && this.input.slice(start, end).indexOf("\\") !== -1) {
      return;
    }
    var re = this.strict ? this.reservedWordsStrict : this.reservedWords;
    if (re.test(name)) {
      if (!this.inAsync && name === "await") {
        this.raiseRecoverable(start, "Cannot use keyword 'await' outside an async function");
      }
      this.raiseRecoverable(start, "The keyword '" + name + "' is reserved");
    }
  };

  // Parse the next token as an identifier. If `liberal` is true (used
  // when parsing properties), it will also convert keywords into
  // identifiers.

  pp$5.parseIdent = function (liberal) {
    var node = this.parseIdentNode();
    this.next(!!liberal);
    this.finishNode(node, "Identifier");
    if (!liberal) {
      this.checkUnreserved(node);
      if (node.name === "await" && !this.awaitIdentPos) {
        this.awaitIdentPos = node.start;
      }
    }
    return node;
  };
  pp$5.parseIdentNode = function () {
    var node = this.startNode();
    if (this.type === types$1.name) {
      node.name = this.value;
    } else if (this.type.keyword) {
      node.name = this.type.keyword;

      // To fix https://github.com/acornjs/acorn/issues/575
      // `class` and `function` keywords push new context into this.context.
      // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.
      // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword
      if ((node.name === "class" || node.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {
        this.context.pop();
      }
      this.type = types$1.name;
    } else {
      this.unexpected();
    }
    return node;
  };
  pp$5.parsePrivateIdent = function () {
    var node = this.startNode();
    if (this.type === types$1.privateId) {
      node.name = this.value;
    } else {
      this.unexpected();
    }
    this.next();
    this.finishNode(node, "PrivateIdentifier");

    // For validating existence
    if (this.options.checkPrivateFields) {
      if (this.privateNameStack.length === 0) {
        this.raise(node.start, "Private field '#" + node.name + "' must be declared in an enclosing class");
      } else {
        this.privateNameStack[this.privateNameStack.length - 1].used.push(node);
      }
    }
    return node;
  };

  // Parses yield expression inside generator.

  pp$5.parseYield = function (forInit) {
    if (!this.yieldPos) {
      this.yieldPos = this.start;
    }
    var node = this.startNode();
    this.next();
    if (this.type === types$1.semi || this.canInsertSemicolon() || this.type !== types$1.star && !this.type.startsExpr) {
      node.delegate = false;
      node.argument = null;
    } else {
      node.delegate = this.eat(types$1.star);
      node.argument = this.parseMaybeAssign(forInit);
    }
    return this.finishNode(node, "YieldExpression");
  };
  pp$5.parseAwait = function (forInit) {
    if (!this.awaitPos) {
      this.awaitPos = this.start;
    }
    var node = this.startNode();
    this.next();
    node.argument = this.parseMaybeUnary(null, true, false, forInit);
    return this.finishNode(node, "AwaitExpression");
  };
  var pp$4 = Parser.prototype;

  // This function is used to raise exceptions on parse errors. It
  // takes an offset integer (into the current `input`) to indicate
  // the location of the error, attaches the position to the end
  // of the error message, and then raises a `SyntaxError` with that
  // message.

  pp$4.raise = function (pos, message) {
    var loc = getLineInfo(this.input, pos);
    message += " (" + loc.line + ":" + loc.column + ")";
    var err = new SyntaxError(message);
    err.pos = pos;
    err.loc = loc;
    err.raisedAt = this.pos;
    throw err;
  };
  pp$4.raiseRecoverable = pp$4.raise;
  pp$4.curPosition = function () {
    if (this.options.locations) {
      return new Position(this.curLine, this.pos - this.lineStart);
    }
  };
  var pp$3 = Parser.prototype;
  var Scope = function Scope(flags) {
    this.flags = flags;
    // A list of var-declared names in the current lexical scope
    this.var = [];
    // A list of lexically-declared names in the current lexical scope
    this.lexical = [];
    // A list of lexically-declared FunctionDeclaration names in the current lexical scope
    this.functions = [];
    // A switch to disallow the identifier reference 'arguments'
    this.inClassFieldInit = false;
  };

  // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.

  pp$3.enterScope = function (flags) {
    this.scopeStack.push(new Scope(flags));
  };
  pp$3.exitScope = function () {
    this.scopeStack.pop();
  };

  // The spec says:
  // > At the top level of a function, or script, function declarations are
  // > treated like var declarations rather than like lexical declarations.
  pp$3.treatFunctionsAsVarInScope = function (scope) {
    return scope.flags & SCOPE_FUNCTION || !this.inModule && scope.flags & SCOPE_TOP;
  };
  pp$3.declareName = function (name, bindingType, pos) {
    var redeclared = false;
    if (bindingType === BIND_LEXICAL) {
      var scope = this.currentScope();
      redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;
      scope.lexical.push(name);
      if (this.inModule && scope.flags & SCOPE_TOP) {
        delete this.undefinedExports[name];
      }
    } else if (bindingType === BIND_SIMPLE_CATCH) {
      var scope$1 = this.currentScope();
      scope$1.lexical.push(name);
    } else if (bindingType === BIND_FUNCTION) {
      var scope$2 = this.currentScope();
      if (this.treatFunctionsAsVar) {
        redeclared = scope$2.lexical.indexOf(name) > -1;
      } else {
        redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1;
      }
      scope$2.functions.push(name);
    } else {
      for (var i = this.scopeStack.length - 1; i >= 0; --i) {
        var scope$3 = this.scopeStack[i];
        if (scope$3.lexical.indexOf(name) > -1 && !(scope$3.flags & SCOPE_SIMPLE_CATCH && scope$3.lexical[0] === name) || !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {
          redeclared = true;
          break;
        }
        scope$3.var.push(name);
        if (this.inModule && scope$3.flags & SCOPE_TOP) {
          delete this.undefinedExports[name];
        }
        if (scope$3.flags & SCOPE_VAR) {
          break;
        }
      }
    }
    if (redeclared) {
      this.raiseRecoverable(pos, "Identifier '" + name + "' has already been declared");
    }
  };
  pp$3.checkLocalExport = function (id) {
    // scope.functions must be empty as Module code is always strict.
    if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && this.scopeStack[0].var.indexOf(id.name) === -1) {
      this.undefinedExports[id.name] = id;
    }
  };
  pp$3.currentScope = function () {
    return this.scopeStack[this.scopeStack.length - 1];
  };
  pp$3.currentVarScope = function () {
    for (var i = this.scopeStack.length - 1;; i--) {
      var scope = this.scopeStack[i];
      if (scope.flags & SCOPE_VAR) {
        return scope;
      }
    }
  };

  // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.
  pp$3.currentThisScope = function () {
    for (var i = this.scopeStack.length - 1;; i--) {
      var scope = this.scopeStack[i];
      if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) {
        return scope;
      }
    }
  };
  var Node = function Node(parser, pos, loc) {
    this.type = "";
    this.start = pos;
    this.end = 0;
    if (parser.options.locations) {
      this.loc = new SourceLocation(parser, loc);
    }
    if (parser.options.directSourceFile) {
      this.sourceFile = parser.options.directSourceFile;
    }
    if (parser.options.ranges) {
      this.range = [pos, 0];
    }
  };

  // Start an AST node, attaching a start offset.

  var pp$2 = Parser.prototype;
  pp$2.startNode = function () {
    return new Node(this, this.start, this.startLoc);
  };
  pp$2.startNodeAt = function (pos, loc) {
    return new Node(this, pos, loc);
  };

  // Finish an AST node, adding `type` and `end` properties.

  function finishNodeAt(node, type, pos, loc) {
    node.type = type;
    node.end = pos;
    if (this.options.locations) {
      node.loc.end = loc;
    }
    if (this.options.ranges) {
      node.range[1] = pos;
    }
    return node;
  }
  pp$2.finishNode = function (node, type) {
    return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc);
  };

  // Finish node at given position

  pp$2.finishNodeAt = function (node, type, pos, loc) {
    return finishNodeAt.call(this, node, type, pos, loc);
  };
  pp$2.copyNode = function (node) {
    var newNode = new Node(this, node.start, this.startLoc);
    for (var prop in node) {
      newNode[prop] = node[prop];
    }
    return newNode;
  };

  // This file contains Unicode properties extracted from the ECMAScript specification.
  // The lists are extracted like so:
  // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)

  // #table-binary-unicode-properties
  var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS";
  var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic";
  var ecma11BinaryProperties = ecma10BinaryProperties;
  var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict";
  var ecma13BinaryProperties = ecma12BinaryProperties;
  var ecma14BinaryProperties = ecma13BinaryProperties;
  var unicodeBinaryProperties = {
    9: ecma9BinaryProperties,
    10: ecma10BinaryProperties,
    11: ecma11BinaryProperties,
    12: ecma12BinaryProperties,
    13: ecma13BinaryProperties,
    14: ecma14BinaryProperties
  };

  // #table-binary-unicode-properties-of-strings
  var ecma14BinaryPropertiesOfStrings = "Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji";
  var unicodeBinaryPropertiesOfStrings = {
    9: "",
    10: "",
    11: "",
    12: "",
    13: "",
    14: ecma14BinaryPropertiesOfStrings
  };

  // #table-unicode-general-category-values
  var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu";

  // #table-unicode-script-values
  var ecma9ScriptValues = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb";
  var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd";
  var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho";
  var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi";
  var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith";
  var ecma14ScriptValues = ecma13ScriptValues + " Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz";
  var unicodeScriptValues = {
    9: ecma9ScriptValues,
    10: ecma10ScriptValues,
    11: ecma11ScriptValues,
    12: ecma12ScriptValues,
    13: ecma13ScriptValues,
    14: ecma14ScriptValues
  };
  var data = {};
  function buildUnicodeData(ecmaVersion) {
    var d = data[ecmaVersion] = {
      binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + " " + unicodeGeneralCategoryValues),
      binaryOfStrings: wordsRegexp(unicodeBinaryPropertiesOfStrings[ecmaVersion]),
      nonBinary: {
        General_Category: wordsRegexp(unicodeGeneralCategoryValues),
        Script: wordsRegexp(unicodeScriptValues[ecmaVersion])
      }
    };
    d.nonBinary.Script_Extensions = d.nonBinary.Script;
    d.nonBinary.gc = d.nonBinary.General_Category;
    d.nonBinary.sc = d.nonBinary.Script;
    d.nonBinary.scx = d.nonBinary.Script_Extensions;
  }
  for (var i = 0, list = [9, 10, 11, 12, 13, 14]; i < list.length; i += 1) {
    var ecmaVersion = list[i];
    buildUnicodeData(ecmaVersion);
  }
  var pp$1 = Parser.prototype;
  var RegExpValidationState = function RegExpValidationState(parser) {
    this.parser = parser;
    this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : "") + (parser.options.ecmaVersion >= 15 ? "v" : "");
    this.unicodeProperties = data[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion];
    this.source = "";
    this.flags = "";
    this.start = 0;
    this.switchU = false;
    this.switchV = false;
    this.switchN = false;
    this.pos = 0;
    this.lastIntValue = 0;
    this.lastStringValue = "";
    this.lastAssertionIsQuantifiable = false;
    this.numCapturingParens = 0;
    this.maxBackReference = 0;
    this.groupNames = [];
    this.backReferenceNames = [];
  };
  RegExpValidationState.prototype.reset = function reset(start, pattern, flags) {
    var unicodeSets = flags.indexOf("v") !== -1;
    var unicode = flags.indexOf("u") !== -1;
    this.start = start | 0;
    this.source = pattern + "";
    this.flags = flags;
    if (unicodeSets && this.parser.options.ecmaVersion >= 15) {
      this.switchU = true;
      this.switchV = true;
      this.switchN = true;
    } else {
      this.switchU = unicode && this.parser.options.ecmaVersion >= 6;
      this.switchV = false;
      this.switchN = unicode && this.parser.options.ecmaVersion >= 9;
    }
  };
  RegExpValidationState.prototype.raise = function raise(message) {
    this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + message);
  };

  // If u flag is given, this returns the code point at the index (it combines a surrogate pair).
  // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).
  RegExpValidationState.prototype.at = function at(i, forceU) {
    if (forceU === void 0) forceU = false;
    var s = this.source;
    var l = s.length;
    if (i >= l) {
      return -1;
    }
    var c = s.charCodeAt(i);
    if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {
      return c;
    }
    var next = s.charCodeAt(i + 1);
    return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c;
  };
  RegExpValidationState.prototype.nextIndex = function nextIndex(i, forceU) {
    if (forceU === void 0) forceU = false;
    var s = this.source;
    var l = s.length;
    if (i >= l) {
      return l;
    }
    var c = s.charCodeAt(i),
      next;
    if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l || (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {
      return i + 1;
    }
    return i + 2;
  };
  RegExpValidationState.prototype.current = function current(forceU) {
    if (forceU === void 0) forceU = false;
    return this.at(this.pos, forceU);
  };
  RegExpValidationState.prototype.lookahead = function lookahead(forceU) {
    if (forceU === void 0) forceU = false;
    return this.at(this.nextIndex(this.pos, forceU), forceU);
  };
  RegExpValidationState.prototype.advance = function advance(forceU) {
    if (forceU === void 0) forceU = false;
    this.pos = this.nextIndex(this.pos, forceU);
  };
  RegExpValidationState.prototype.eat = function eat(ch, forceU) {
    if (forceU === void 0) forceU = false;
    if (this.current(forceU) === ch) {
      this.advance(forceU);
      return true;
    }
    return false;
  };
  RegExpValidationState.prototype.eatChars = function eatChars(chs, forceU) {
    if (forceU === void 0) forceU = false;
    var pos = this.pos;
    for (var i = 0, list = chs; i < list.length; i += 1) {
      var ch = list[i];
      var current = this.at(pos, forceU);
      if (current === -1 || current !== ch) {
        return false;
      }
      pos = this.nextIndex(pos, forceU);
    }
    this.pos = pos;
    return true;
  };

  /**
   * Validate the flags part of a given RegExpLiteral.
   *
   * @param {RegExpValidationState} state The state to validate RegExp.
   * @returns {void}
   */
  pp$1.validateRegExpFlags = function (state) {
    var validFlags = state.validFlags;
    var flags = state.flags;
    var u = false;
    var v = false;
    for (var i = 0; i < flags.length; i++) {
      var flag = flags.charAt(i);
      if (validFlags.indexOf(flag) === -1) {
        this.raise(state.start, "Invalid regular expression flag");
      }
      if (flags.indexOf(flag, i + 1) > -1) {
        this.raise(state.start, "Duplicate regular expression flag");
      }
      if (flag === "u") {
        u = true;
      }
      if (flag === "v") {
        v = true;
      }
    }
    if (this.options.ecmaVersion >= 15 && u && v) {
      this.raise(state.start, "Invalid regular expression flag");
    }
  };

  /**
   * Validate the pattern part of a given RegExpLiteral.
   *
   * @param {RegExpValidationState} state The state to validate RegExp.
   * @returns {void}
   */
  pp$1.validateRegExpPattern = function (state) {
    this.regexp_pattern(state);

    // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of
    // parsing contains a |GroupName|, reparse with the goal symbol
    // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*
    // exception if _P_ did not conform to the grammar, if any elements of _P_
    // were not matched by the parse, or if any Early Error conditions exist.
    if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {
      state.switchN = true;
      this.regexp_pattern(state);
    }
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern
  pp$1.regexp_pattern = function (state) {
    state.pos = 0;
    state.lastIntValue = 0;
    state.lastStringValue = "";
    state.lastAssertionIsQuantifiable = false;
    state.numCapturingParens = 0;
    state.maxBackReference = 0;
    state.groupNames.length = 0;
    state.backReferenceNames.length = 0;
    this.regexp_disjunction(state);
    if (state.pos !== state.source.length) {
      // Make the same messages as V8.
      if (state.eat(0x29 /* ) */)) {
        state.raise("Unmatched ')'");
      }
      if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {
        state.raise("Lone quantifier brackets");
      }
    }
    if (state.maxBackReference > state.numCapturingParens) {
      state.raise("Invalid escape");
    }
    for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {
      var name = list[i];
      if (state.groupNames.indexOf(name) === -1) {
        state.raise("Invalid named capture referenced");
      }
    }
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction
  pp$1.regexp_disjunction = function (state) {
    this.regexp_alternative(state);
    while (state.eat(0x7C /* | */)) {
      this.regexp_alternative(state);
    }

    // Make the same message as V8.
    if (this.regexp_eatQuantifier(state, true)) {
      state.raise("Nothing to repeat");
    }
    if (state.eat(0x7B /* { */)) {
      state.raise("Lone quantifier brackets");
    }
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative
  pp$1.regexp_alternative = function (state) {
    while (state.pos < state.source.length && this.regexp_eatTerm(state)) {}
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term
  pp$1.regexp_eatTerm = function (state) {
    if (this.regexp_eatAssertion(state)) {
      // Handle `QuantifiableAssertion Quantifier` alternative.
      // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion
      // is a QuantifiableAssertion.
      if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {
        // Make the same message as V8.
        if (state.switchU) {
          state.raise("Invalid quantifier");
        }
      }
      return true;
    }
    if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {
      this.regexp_eatQuantifier(state);
      return true;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion
  pp$1.regexp_eatAssertion = function (state) {
    var start = state.pos;
    state.lastAssertionIsQuantifiable = false;

    // ^, $
    if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {
      return true;
    }

    // \b \B
    if (state.eat(0x5C /* \ */)) {
      if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {
        return true;
      }
      state.pos = start;
    }

    // Lookahead / Lookbehind
    if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {
      var lookbehind = false;
      if (this.options.ecmaVersion >= 9) {
        lookbehind = state.eat(0x3C /* < */);
      }

      if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {
        this.regexp_disjunction(state);
        if (!state.eat(0x29 /* ) */)) {
          state.raise("Unterminated group");
        }
        state.lastAssertionIsQuantifiable = !lookbehind;
        return true;
      }
    }
    state.pos = start;
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier
  pp$1.regexp_eatQuantifier = function (state, noError) {
    if (noError === void 0) noError = false;
    if (this.regexp_eatQuantifierPrefix(state, noError)) {
      state.eat(0x3F /* ? */);
      return true;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix
  pp$1.regexp_eatQuantifierPrefix = function (state, noError) {
    return state.eat(0x2A /* * */) || state.eat(0x2B /* + */) || state.eat(0x3F /* ? */) || this.regexp_eatBracedQuantifier(state, noError);
  };
  pp$1.regexp_eatBracedQuantifier = function (state, noError) {
    var start = state.pos;
    if (state.eat(0x7B /* { */)) {
      var min = 0,
        max = -1;
      if (this.regexp_eatDecimalDigits(state)) {
        min = state.lastIntValue;
        if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {
          max = state.lastIntValue;
        }
        if (state.eat(0x7D /* } */)) {
          // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term
          if (max !== -1 && max < min && !noError) {
            state.raise("numbers out of order in {} quantifier");
          }
          return true;
        }
      }
      if (state.switchU && !noError) {
        state.raise("Incomplete quantifier");
      }
      state.pos = start;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom
  pp$1.regexp_eatAtom = function (state) {
    return this.regexp_eatPatternCharacters(state) || state.eat(0x2E /* . */) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state);
  };
  pp$1.regexp_eatReverseSolidusAtomEscape = function (state) {
    var start = state.pos;
    if (state.eat(0x5C /* \ */)) {
      if (this.regexp_eatAtomEscape(state)) {
        return true;
      }
      state.pos = start;
    }
    return false;
  };
  pp$1.regexp_eatUncapturingGroup = function (state) {
    var start = state.pos;
    if (state.eat(0x28 /* ( */)) {
      if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {
        this.regexp_disjunction(state);
        if (state.eat(0x29 /* ) */)) {
          return true;
        }
        state.raise("Unterminated group");
      }
      state.pos = start;
    }
    return false;
  };
  pp$1.regexp_eatCapturingGroup = function (state) {
    if (state.eat(0x28 /* ( */)) {
      if (this.options.ecmaVersion >= 9) {
        this.regexp_groupSpecifier(state);
      } else if (state.current() === 0x3F /* ? */) {
        state.raise("Invalid group");
      }
      this.regexp_disjunction(state);
      if (state.eat(0x29 /* ) */)) {
        state.numCapturingParens += 1;
        return true;
      }
      state.raise("Unterminated group");
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom
  pp$1.regexp_eatExtendedAtom = function (state) {
    return state.eat(0x2E /* . */) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state) || this.regexp_eatInvalidBracedQuantifier(state) || this.regexp_eatExtendedPatternCharacter(state);
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier
  pp$1.regexp_eatInvalidBracedQuantifier = function (state) {
    if (this.regexp_eatBracedQuantifier(state, true)) {
      state.raise("Nothing to repeat");
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter
  pp$1.regexp_eatSyntaxCharacter = function (state) {
    var ch = state.current();
    if (isSyntaxCharacter(ch)) {
      state.lastIntValue = ch;
      state.advance();
      return true;
    }
    return false;
  };
  function isSyntaxCharacter(ch) {
    return ch === 0x24 /* $ */ || ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ || ch === 0x2E /* . */ || ch === 0x3F /* ? */ || ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ || ch >= 0x7B /* { */ && ch <= 0x7D /* } */;
  }

  // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter
  // But eat eager.
  pp$1.regexp_eatPatternCharacters = function (state) {
    var start = state.pos;
    var ch = 0;
    while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {
      state.advance();
    }
    return state.pos !== start;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter
  pp$1.regexp_eatExtendedPatternCharacter = function (state) {
    var ch = state.current();
    if (ch !== -1 && ch !== 0x24 /* $ */ && !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) && ch !== 0x2E /* . */ && ch !== 0x3F /* ? */ && ch !== 0x5B /* [ */ && ch !== 0x5E /* ^ */ && ch !== 0x7C /* | */) {
      state.advance();
      return true;
    }
    return false;
  };

  // GroupSpecifier ::
  //   [empty]
  //   `?` GroupName
  pp$1.regexp_groupSpecifier = function (state) {
    if (state.eat(0x3F /* ? */)) {
      if (this.regexp_eatGroupName(state)) {
        if (state.groupNames.indexOf(state.lastStringValue) !== -1) {
          state.raise("Duplicate capture group name");
        }
        state.groupNames.push(state.lastStringValue);
        return;
      }
      state.raise("Invalid group");
    }
  };

  // GroupName ::
  //   `<` RegExpIdentifierName `>`
  // Note: this updates `state.lastStringValue` property with the eaten name.
  pp$1.regexp_eatGroupName = function (state) {
    state.lastStringValue = "";
    if (state.eat(0x3C /* < */)) {
      if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {
        return true;
      }
      state.raise("Invalid capture group name");
    }
    return false;
  };

  // RegExpIdentifierName ::
  //   RegExpIdentifierStart
  //   RegExpIdentifierName RegExpIdentifierPart
  // Note: this updates `state.lastStringValue` property with the eaten name.
  pp$1.regexp_eatRegExpIdentifierName = function (state) {
    state.lastStringValue = "";
    if (this.regexp_eatRegExpIdentifierStart(state)) {
      state.lastStringValue += codePointToString(state.lastIntValue);
      while (this.regexp_eatRegExpIdentifierPart(state)) {
        state.lastStringValue += codePointToString(state.lastIntValue);
      }
      return true;
    }
    return false;
  };

  // RegExpIdentifierStart ::
  //   UnicodeIDStart
  //   `$`
  //   `_`
  //   `\` RegExpUnicodeEscapeSequence[+U]
  pp$1.regexp_eatRegExpIdentifierStart = function (state) {
    var start = state.pos;
    var forceU = this.options.ecmaVersion >= 11;
    var ch = state.current(forceU);
    state.advance(forceU);
    if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {
      ch = state.lastIntValue;
    }
    if (isRegExpIdentifierStart(ch)) {
      state.lastIntValue = ch;
      return true;
    }
    state.pos = start;
    return false;
  };
  function isRegExpIdentifierStart(ch) {
    return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F; /* _ */
  }

  // RegExpIdentifierPart ::
  //   UnicodeIDContinue
  //   `$`
  //   `_`
  //   `\` RegExpUnicodeEscapeSequence[+U]
  //   <ZWNJ>
  //   <ZWJ>
  pp$1.regexp_eatRegExpIdentifierPart = function (state) {
    var start = state.pos;
    var forceU = this.options.ecmaVersion >= 11;
    var ch = state.current(forceU);
    state.advance(forceU);
    if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {
      ch = state.lastIntValue;
    }
    if (isRegExpIdentifierPart(ch)) {
      state.lastIntValue = ch;
      return true;
    }
    state.pos = start;
    return false;
  };
  function isRegExpIdentifierPart(ch) {
    return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D; /* <ZWJ> */
  }

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape
  pp$1.regexp_eatAtomEscape = function (state) {
    if (this.regexp_eatBackReference(state) || this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state) || state.switchN && this.regexp_eatKGroupName(state)) {
      return true;
    }
    if (state.switchU) {
      // Make the same message as V8.
      if (state.current() === 0x63 /* c */) {
        state.raise("Invalid unicode escape");
      }
      state.raise("Invalid escape");
    }
    return false;
  };
  pp$1.regexp_eatBackReference = function (state) {
    var start = state.pos;
    if (this.regexp_eatDecimalEscape(state)) {
      var n = state.lastIntValue;
      if (state.switchU) {
        // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape
        if (n > state.maxBackReference) {
          state.maxBackReference = n;
        }
        return true;
      }
      if (n <= state.numCapturingParens) {
        return true;
      }
      state.pos = start;
    }
    return false;
  };
  pp$1.regexp_eatKGroupName = function (state) {
    if (state.eat(0x6B /* k */)) {
      if (this.regexp_eatGroupName(state)) {
        state.backReferenceNames.push(state.lastStringValue);
        return true;
      }
      state.raise("Invalid named reference");
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape
  pp$1.regexp_eatCharacterEscape = function (state) {
    return this.regexp_eatControlEscape(state) || this.regexp_eatCControlLetter(state) || this.regexp_eatZero(state) || this.regexp_eatHexEscapeSequence(state) || this.regexp_eatRegExpUnicodeEscapeSequence(state, false) || !state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state) || this.regexp_eatIdentityEscape(state);
  };
  pp$1.regexp_eatCControlLetter = function (state) {
    var start = state.pos;
    if (state.eat(0x63 /* c */)) {
      if (this.regexp_eatControlLetter(state)) {
        return true;
      }
      state.pos = start;
    }
    return false;
  };
  pp$1.regexp_eatZero = function (state) {
    if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {
      state.lastIntValue = 0;
      state.advance();
      return true;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape
  pp$1.regexp_eatControlEscape = function (state) {
    var ch = state.current();
    if (ch === 0x74 /* t */) {
      state.lastIntValue = 0x09; /* \t */
      state.advance();
      return true;
    }
    if (ch === 0x6E /* n */) {
      state.lastIntValue = 0x0A; /* \n */
      state.advance();
      return true;
    }
    if (ch === 0x76 /* v */) {
      state.lastIntValue = 0x0B; /* \v */
      state.advance();
      return true;
    }
    if (ch === 0x66 /* f */) {
      state.lastIntValue = 0x0C; /* \f */
      state.advance();
      return true;
    }
    if (ch === 0x72 /* r */) {
      state.lastIntValue = 0x0D; /* \r */
      state.advance();
      return true;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter
  pp$1.regexp_eatControlLetter = function (state) {
    var ch = state.current();
    if (isControlLetter(ch)) {
      state.lastIntValue = ch % 0x20;
      state.advance();
      return true;
    }
    return false;
  };
  function isControlLetter(ch) {
    return ch >= 0x41 /* A */ && ch <= 0x5A /* Z */ || ch >= 0x61 /* a */ && ch <= 0x7A /* z */;
  }

  // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence
  pp$1.regexp_eatRegExpUnicodeEscapeSequence = function (state, forceU) {
    if (forceU === void 0) forceU = false;
    var start = state.pos;
    var switchU = forceU || state.switchU;
    if (state.eat(0x75 /* u */)) {
      if (this.regexp_eatFixedHexDigits(state, 4)) {
        var lead = state.lastIntValue;
        if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {
          var leadSurrogateEnd = state.pos;
          if (state.eat(0x5C /* \ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {
            var trail = state.lastIntValue;
            if (trail >= 0xDC00 && trail <= 0xDFFF) {
              state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;
              return true;
            }
          }
          state.pos = leadSurrogateEnd;
          state.lastIntValue = lead;
        }
        return true;
      }
      if (switchU && state.eat(0x7B /* { */) && this.regexp_eatHexDigits(state) && state.eat(0x7D /* } */) && isValidUnicode(state.lastIntValue)) {
        return true;
      }
      if (switchU) {
        state.raise("Invalid unicode escape");
      }
      state.pos = start;
    }
    return false;
  };
  function isValidUnicode(ch) {
    return ch >= 0 && ch <= 0x10FFFF;
  }

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape
  pp$1.regexp_eatIdentityEscape = function (state) {
    if (state.switchU) {
      if (this.regexp_eatSyntaxCharacter(state)) {
        return true;
      }
      if (state.eat(0x2F /* / */)) {
        state.lastIntValue = 0x2F; /* / */
        return true;
      }
      return false;
    }
    var ch = state.current();
    if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {
      state.lastIntValue = ch;
      state.advance();
      return true;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape
  pp$1.regexp_eatDecimalEscape = function (state) {
    state.lastIntValue = 0;
    var ch = state.current();
    if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {
      do {
        state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);
        state.advance();
      } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */);
      return true;
    }
    return false;
  };

  // Return values used by character set parsing methods, needed to
  // forbid negation of sets that can match strings.
  var CharSetNone = 0; // Nothing parsed
  var CharSetOk = 1; // Construct parsed, cannot contain strings
  var CharSetString = 2; // Construct parsed, can contain strings

  // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape
  pp$1.regexp_eatCharacterClassEscape = function (state) {
    var ch = state.current();
    if (isCharacterClassEscape(ch)) {
      state.lastIntValue = -1;
      state.advance();
      return CharSetOk;
    }
    var negate = false;
    if (state.switchU && this.options.ecmaVersion >= 9 && ((negate = ch === 0x50 /* P */) || ch === 0x70 /* p */)) {
      state.lastIntValue = -1;
      state.advance();
      var result;
      if (state.eat(0x7B /* { */) && (result = this.regexp_eatUnicodePropertyValueExpression(state)) && state.eat(0x7D /* } */)) {
        if (negate && result === CharSetString) {
          state.raise("Invalid property name");
        }
        return result;
      }
      state.raise("Invalid property name");
    }
    return CharSetNone;
  };
  function isCharacterClassEscape(ch) {
    return ch === 0x64 /* d */ || ch === 0x44 /* D */ || ch === 0x73 /* s */ || ch === 0x53 /* S */ || ch === 0x77 /* w */ || ch === 0x57 /* W */;
  }

  // UnicodePropertyValueExpression ::
  //   UnicodePropertyName `=` UnicodePropertyValue
  //   LoneUnicodePropertyNameOrValue
  pp$1.regexp_eatUnicodePropertyValueExpression = function (state) {
    var start = state.pos;

    // UnicodePropertyName `=` UnicodePropertyValue
    if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {
      var name = state.lastStringValue;
      if (this.regexp_eatUnicodePropertyValue(state)) {
        var value = state.lastStringValue;
        this.regexp_validateUnicodePropertyNameAndValue(state, name, value);
        return CharSetOk;
      }
    }
    state.pos = start;

    // LoneUnicodePropertyNameOrValue
    if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {
      var nameOrValue = state.lastStringValue;
      return this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue);
    }
    return CharSetNone;
  };
  pp$1.regexp_validateUnicodePropertyNameAndValue = function (state, name, value) {
    if (!hasOwn(state.unicodeProperties.nonBinary, name)) {
      state.raise("Invalid property name");
    }
    if (!state.unicodeProperties.nonBinary[name].test(value)) {
      state.raise("Invalid property value");
    }
  };
  pp$1.regexp_validateUnicodePropertyNameOrValue = function (state, nameOrValue) {
    if (state.unicodeProperties.binary.test(nameOrValue)) {
      return CharSetOk;
    }
    if (state.switchV && state.unicodeProperties.binaryOfStrings.test(nameOrValue)) {
      return CharSetString;
    }
    state.raise("Invalid property name");
  };

  // UnicodePropertyName ::
  //   UnicodePropertyNameCharacters
  pp$1.regexp_eatUnicodePropertyName = function (state) {
    var ch = 0;
    state.lastStringValue = "";
    while (isUnicodePropertyNameCharacter(ch = state.current())) {
      state.lastStringValue += codePointToString(ch);
      state.advance();
    }
    return state.lastStringValue !== "";
  };
  function isUnicodePropertyNameCharacter(ch) {
    return isControlLetter(ch) || ch === 0x5F; /* _ */
  }

  // UnicodePropertyValue ::
  //   UnicodePropertyValueCharacters
  pp$1.regexp_eatUnicodePropertyValue = function (state) {
    var ch = 0;
    state.lastStringValue = "";
    while (isUnicodePropertyValueCharacter(ch = state.current())) {
      state.lastStringValue += codePointToString(ch);
      state.advance();
    }
    return state.lastStringValue !== "";
  };
  function isUnicodePropertyValueCharacter(ch) {
    return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch);
  }

  // LoneUnicodePropertyNameOrValue ::
  //   UnicodePropertyValueCharacters
  pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function (state) {
    return this.regexp_eatUnicodePropertyValue(state);
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass
  pp$1.regexp_eatCharacterClass = function (state) {
    if (state.eat(0x5B /* [ */)) {
      var negate = state.eat(0x5E /* ^ */);
      var result = this.regexp_classContents(state);
      if (!state.eat(0x5D /* ] */)) {
        state.raise("Unterminated character class");
      }
      if (negate && result === CharSetString) {
        state.raise("Negated character class may contain strings");
      }
      return true;
    }
    return false;
  };

  // https://tc39.es/ecma262/#prod-ClassContents
  // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges
  pp$1.regexp_classContents = function (state) {
    if (state.current() === 0x5D /* ] */) {
      return CharSetOk;
    }
    if (state.switchV) {
      return this.regexp_classSetExpression(state);
    }
    this.regexp_nonEmptyClassRanges(state);
    return CharSetOk;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges
  // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash
  pp$1.regexp_nonEmptyClassRanges = function (state) {
    while (this.regexp_eatClassAtom(state)) {
      var left = state.lastIntValue;
      if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {
        var right = state.lastIntValue;
        if (state.switchU && (left === -1 || right === -1)) {
          state.raise("Invalid character class");
        }
        if (left !== -1 && right !== -1 && left > right) {
          state.raise("Range out of order in character class");
        }
      }
    }
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom
  // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash
  pp$1.regexp_eatClassAtom = function (state) {
    var start = state.pos;
    if (state.eat(0x5C /* \ */)) {
      if (this.regexp_eatClassEscape(state)) {
        return true;
      }
      if (state.switchU) {
        // Make the same message as V8.
        var ch$1 = state.current();
        if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {
          state.raise("Invalid class escape");
        }
        state.raise("Invalid escape");
      }
      state.pos = start;
    }
    var ch = state.current();
    if (ch !== 0x5D /* ] */) {
      state.lastIntValue = ch;
      state.advance();
      return true;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape
  pp$1.regexp_eatClassEscape = function (state) {
    var start = state.pos;
    if (state.eat(0x62 /* b */)) {
      state.lastIntValue = 0x08; /* <BS> */
      return true;
    }
    if (state.switchU && state.eat(0x2D /* - */)) {
      state.lastIntValue = 0x2D; /* - */
      return true;
    }
    if (!state.switchU && state.eat(0x63 /* c */)) {
      if (this.regexp_eatClassControlLetter(state)) {
        return true;
      }
      state.pos = start;
    }
    return this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state);
  };

  // https://tc39.es/ecma262/#prod-ClassSetExpression
  // https://tc39.es/ecma262/#prod-ClassUnion
  // https://tc39.es/ecma262/#prod-ClassIntersection
  // https://tc39.es/ecma262/#prod-ClassSubtraction
  pp$1.regexp_classSetExpression = function (state) {
    var result = CharSetOk,
      subResult;
    if (this.regexp_eatClassSetRange(state)) ;else if (subResult = this.regexp_eatClassSetOperand(state)) {
      if (subResult === CharSetString) {
        result = CharSetString;
      }
      // https://tc39.es/ecma262/#prod-ClassIntersection
      var start = state.pos;
      while (state.eatChars([0x26, 0x26] /* && */)) {
        if (state.current() !== 0x26 /* & */ && (subResult = this.regexp_eatClassSetOperand(state))) {
          if (subResult !== CharSetString) {
            result = CharSetOk;
          }
          continue;
        }
        state.raise("Invalid character in character class");
      }
      if (start !== state.pos) {
        return result;
      }
      // https://tc39.es/ecma262/#prod-ClassSubtraction
      while (state.eatChars([0x2D, 0x2D] /* -- */)) {
        if (this.regexp_eatClassSetOperand(state)) {
          continue;
        }
        state.raise("Invalid character in character class");
      }
      if (start !== state.pos) {
        return result;
      }
    } else {
      state.raise("Invalid character in character class");
    }
    // https://tc39.es/ecma262/#prod-ClassUnion
    for (;;) {
      if (this.regexp_eatClassSetRange(state)) {
        continue;
      }
      subResult = this.regexp_eatClassSetOperand(state);
      if (!subResult) {
        return result;
      }
      if (subResult === CharSetString) {
        result = CharSetString;
      }
    }
  };

  // https://tc39.es/ecma262/#prod-ClassSetRange
  pp$1.regexp_eatClassSetRange = function (state) {
    var start = state.pos;
    if (this.regexp_eatClassSetCharacter(state)) {
      var left = state.lastIntValue;
      if (state.eat(0x2D /* - */) && this.regexp_eatClassSetCharacter(state)) {
        var right = state.lastIntValue;
        if (left !== -1 && right !== -1 && left > right) {
          state.raise("Range out of order in character class");
        }
        return true;
      }
      state.pos = start;
    }
    return false;
  };

  // https://tc39.es/ecma262/#prod-ClassSetOperand
  pp$1.regexp_eatClassSetOperand = function (state) {
    if (this.regexp_eatClassSetCharacter(state)) {
      return CharSetOk;
    }
    return this.regexp_eatClassStringDisjunction(state) || this.regexp_eatNestedClass(state);
  };

  // https://tc39.es/ecma262/#prod-NestedClass
  pp$1.regexp_eatNestedClass = function (state) {
    var start = state.pos;
    if (state.eat(0x5B /* [ */)) {
      var negate = state.eat(0x5E /* ^ */);
      var result = this.regexp_classContents(state);
      if (state.eat(0x5D /* ] */)) {
        if (negate && result === CharSetString) {
          state.raise("Negated character class may contain strings");
        }
        return result;
      }
      state.pos = start;
    }
    if (state.eat(0x5C /* \ */)) {
      var result$1 = this.regexp_eatCharacterClassEscape(state);
      if (result$1) {
        return result$1;
      }
      state.pos = start;
    }
    return null;
  };

  // https://tc39.es/ecma262/#prod-ClassStringDisjunction
  pp$1.regexp_eatClassStringDisjunction = function (state) {
    var start = state.pos;
    if (state.eatChars([0x5C, 0x71] /* \q */)) {
      if (state.eat(0x7B /* { */)) {
        var result = this.regexp_classStringDisjunctionContents(state);
        if (state.eat(0x7D /* } */)) {
          return result;
        }
      } else {
        // Make the same message as V8.
        state.raise("Invalid escape");
      }
      state.pos = start;
    }
    return null;
  };

  // https://tc39.es/ecma262/#prod-ClassStringDisjunctionContents
  pp$1.regexp_classStringDisjunctionContents = function (state) {
    var result = this.regexp_classString(state);
    while (state.eat(0x7C /* | */)) {
      if (this.regexp_classString(state) === CharSetString) {
        result = CharSetString;
      }
    }
    return result;
  };

  // https://tc39.es/ecma262/#prod-ClassString
  // https://tc39.es/ecma262/#prod-NonEmptyClassString
  pp$1.regexp_classString = function (state) {
    var count = 0;
    while (this.regexp_eatClassSetCharacter(state)) {
      count++;
    }
    return count === 1 ? CharSetOk : CharSetString;
  };

  // https://tc39.es/ecma262/#prod-ClassSetCharacter
  pp$1.regexp_eatClassSetCharacter = function (state) {
    var start = state.pos;
    if (state.eat(0x5C /* \ */)) {
      if (this.regexp_eatCharacterEscape(state) || this.regexp_eatClassSetReservedPunctuator(state)) {
        return true;
      }
      if (state.eat(0x62 /* b */)) {
        state.lastIntValue = 0x08; /* <BS> */
        return true;
      }
      state.pos = start;
      return false;
    }
    var ch = state.current();
    if (ch < 0 || ch === state.lookahead() && isClassSetReservedDoublePunctuatorCharacter(ch)) {
      return false;
    }
    if (isClassSetSyntaxCharacter(ch)) {
      return false;
    }
    state.advance();
    state.lastIntValue = ch;
    return true;
  };

  // https://tc39.es/ecma262/#prod-ClassSetReservedDoublePunctuator
  function isClassSetReservedDoublePunctuatorCharacter(ch) {
    return ch === 0x21 /* ! */ || ch >= 0x23 /* # */ && ch <= 0x26 /* & */ || ch >= 0x2A /* * */ && ch <= 0x2C /* , */ || ch === 0x2E /* . */ || ch >= 0x3A /* : */ && ch <= 0x40 /* @ */ || ch === 0x5E /* ^ */ || ch === 0x60 /* ` */ || ch === 0x7E /* ~ */;
  }

  // https://tc39.es/ecma262/#prod-ClassSetSyntaxCharacter
  function isClassSetSyntaxCharacter(ch) {
    return ch === 0x28 /* ( */ || ch === 0x29 /* ) */ || ch === 0x2D /* - */ || ch === 0x2F /* / */ || ch >= 0x5B /* [ */ && ch <= 0x5D /* ] */ || ch >= 0x7B /* { */ && ch <= 0x7D /* } */;
  }

  // https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator
  pp$1.regexp_eatClassSetReservedPunctuator = function (state) {
    var ch = state.current();
    if (isClassSetReservedPunctuator(ch)) {
      state.lastIntValue = ch;
      state.advance();
      return true;
    }
    return false;
  };

  // https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator
  function isClassSetReservedPunctuator(ch) {
    return ch === 0x21 /* ! */ || ch === 0x23 /* # */ || ch === 0x25 /* % */ || ch === 0x26 /* & */ || ch === 0x2C /* , */ || ch === 0x2D /* - */ || ch >= 0x3A /* : */ && ch <= 0x3E /* > */ || ch === 0x40 /* @ */ || ch === 0x60 /* ` */ || ch === 0x7E /* ~ */;
  }

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter
  pp$1.regexp_eatClassControlLetter = function (state) {
    var ch = state.current();
    if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {
      state.lastIntValue = ch % 0x20;
      state.advance();
      return true;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
  pp$1.regexp_eatHexEscapeSequence = function (state) {
    var start = state.pos;
    if (state.eat(0x78 /* x */)) {
      if (this.regexp_eatFixedHexDigits(state, 2)) {
        return true;
      }
      if (state.switchU) {
        state.raise("Invalid escape");
      }
      state.pos = start;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits
  pp$1.regexp_eatDecimalDigits = function (state) {
    var start = state.pos;
    var ch = 0;
    state.lastIntValue = 0;
    while (isDecimalDigit(ch = state.current())) {
      state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);
      state.advance();
    }
    return state.pos !== start;
  };
  function isDecimalDigit(ch) {
    return ch >= 0x30 /* 0 */ && ch <= 0x39; /* 9 */
  }

  // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits
  pp$1.regexp_eatHexDigits = function (state) {
    var start = state.pos;
    var ch = 0;
    state.lastIntValue = 0;
    while (isHexDigit(ch = state.current())) {
      state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);
      state.advance();
    }
    return state.pos !== start;
  };
  function isHexDigit(ch) {
    return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */ || ch >= 0x41 /* A */ && ch <= 0x46 /* F */ || ch >= 0x61 /* a */ && ch <= 0x66 /* f */;
  }

  function hexToInt(ch) {
    if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {
      return 10 + (ch - 0x41 /* A */);
    }

    if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {
      return 10 + (ch - 0x61 /* a */);
    }

    return ch - 0x30; /* 0 */
  }

  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence
  // Allows only 0-377(octal) i.e. 0-255(decimal).
  pp$1.regexp_eatLegacyOctalEscapeSequence = function (state) {
    if (this.regexp_eatOctalDigit(state)) {
      var n1 = state.lastIntValue;
      if (this.regexp_eatOctalDigit(state)) {
        var n2 = state.lastIntValue;
        if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {
          state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;
        } else {
          state.lastIntValue = n1 * 8 + n2;
        }
      } else {
        state.lastIntValue = n1;
      }
      return true;
    }
    return false;
  };

  // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit
  pp$1.regexp_eatOctalDigit = function (state) {
    var ch = state.current();
    if (isOctalDigit(ch)) {
      state.lastIntValue = ch - 0x30; /* 0 */
      state.advance();
      return true;
    }
    state.lastIntValue = 0;
    return false;
  };
  function isOctalDigit(ch) {
    return ch >= 0x30 /* 0 */ && ch <= 0x37; /* 7 */
  }

  // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits
  // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit
  // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
  pp$1.regexp_eatFixedHexDigits = function (state, length) {
    var start = state.pos;
    state.lastIntValue = 0;
    for (var i = 0; i < length; ++i) {
      var ch = state.current();
      if (!isHexDigit(ch)) {
        state.pos = start;
        return false;
      }
      state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);
      state.advance();
    }
    return true;
  };

  // Object type used to represent tokens. Note that normally, tokens
  // simply exist as properties on the parser object. This is only
  // used for the onToken callback and the external tokenizer.

  var Token = function Token(p) {
    this.type = p.type;
    this.value = p.value;
    this.start = p.start;
    this.end = p.end;
    if (p.options.locations) {
      this.loc = new SourceLocation(p, p.startLoc, p.endLoc);
    }
    if (p.options.ranges) {
      this.range = [p.start, p.end];
    }
  };

  // ## Tokenizer

  var pp = Parser.prototype;

  // Move to the next token

  pp.next = function (ignoreEscapeSequenceInKeyword) {
    if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc) {
      this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword);
    }
    if (this.options.onToken) {
      this.options.onToken(new Token(this));
    }
    this.lastTokEnd = this.end;
    this.lastTokStart = this.start;
    this.lastTokEndLoc = this.endLoc;
    this.lastTokStartLoc = this.startLoc;
    this.nextToken();
  };
  pp.getToken = function () {
    this.next();
    return new Token(this);
  };

  // If we're in an ES6 environment, make parsers iterable
  if (typeof Symbol !== "undefined") {
    pp[Symbol.iterator] = function () {
      var this$1$1 = this;
      return {
        next: function () {
          var token = this$1$1.getToken();
          return {
            done: token.type === types$1.eof,
            value: token
          };
        }
      };
    };
  }

  // Toggle strict mode. Re-reads the next number or string to please
  // pedantic tests (`"use strict"; 010;` should fail).

  // Read a single token, updating the parser object's token-related
  // properties.

  pp.nextToken = function () {
    var curContext = this.curContext();
    if (!curContext || !curContext.preserveSpace) {
      this.skipSpace();
    }
    this.start = this.pos;
    if (this.options.locations) {
      this.startLoc = this.curPosition();
    }
    if (this.pos >= this.input.length) {
      return this.finishToken(types$1.eof);
    }
    if (curContext.override) {
      return curContext.override(this);
    } else {
      this.readToken(this.fullCharCodeAtPos());
    }
  };
  pp.readToken = function (code) {
    // Identifier or keyword. '\uXXXX' sequences are allowed in
    // identifiers, so '\' also dispatches to that.
    if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */) {
      return this.readWord();
    }
    return this.getTokenFromCode(code);
  };
  pp.fullCharCodeAtPos = function () {
    var code = this.input.charCodeAt(this.pos);
    if (code <= 0xd7ff || code >= 0xdc00) {
      return code;
    }
    var next = this.input.charCodeAt(this.pos + 1);
    return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00;
  };
  pp.skipBlockComment = function () {
    var startLoc = this.options.onComment && this.curPosition();
    var start = this.pos,
      end = this.input.indexOf("*/", this.pos += 2);
    if (end === -1) {
      this.raise(this.pos - 2, "Unterminated comment");
    }
    this.pos = end + 2;
    if (this.options.locations) {
      for (var nextBreak = void 0, pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {
        ++this.curLine;
        pos = this.lineStart = nextBreak;
      }
    }
    if (this.options.onComment) {
      this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos, startLoc, this.curPosition());
    }
  };
  pp.skipLineComment = function (startSkip) {
    var start = this.pos;
    var startLoc = this.options.onComment && this.curPosition();
    var ch = this.input.charCodeAt(this.pos += startSkip);
    while (this.pos < this.input.length && !isNewLine(ch)) {
      ch = this.input.charCodeAt(++this.pos);
    }
    if (this.options.onComment) {
      this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos, startLoc, this.curPosition());
    }
  };

  // Called at the start of the parse and after every token. Skips
  // whitespace and comments, and.

  pp.skipSpace = function () {
    loop: while (this.pos < this.input.length) {
      var ch = this.input.charCodeAt(this.pos);
      switch (ch) {
        case 32:
        case 160:
          // ' '
          ++this.pos;
          break;
        case 13:
          if (this.input.charCodeAt(this.pos + 1) === 10) {
            ++this.pos;
          }
        case 10:
        case 8232:
        case 8233:
          ++this.pos;
          if (this.options.locations) {
            ++this.curLine;
            this.lineStart = this.pos;
          }
          break;
        case 47:
          // '/'
          switch (this.input.charCodeAt(this.pos + 1)) {
            case 42:
              // '*'
              this.skipBlockComment();
              break;
            case 47:
              this.skipLineComment(2);
              break;
            default:
              break loop;
          }
          break;
        default:
          if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {
            ++this.pos;
          } else {
            break loop;
          }
      }
    }
  };

  // Called at the end of every token. Sets `end`, `val`, and
  // maintains `context` and `exprAllowed`, and skips the space after
  // the token, so that the next one's `start` will point at the
  // right position.

  pp.finishToken = function (type, val) {
    this.end = this.pos;
    if (this.options.locations) {
      this.endLoc = this.curPosition();
    }
    var prevType = this.type;
    this.type = type;
    this.value = val;
    this.updateContext(prevType);
  };

  // ### Token reading

  // This is the function that is called to fetch the next token. It
  // is somewhat obscure, because it works in character codes rather
  // than characters, and because operator parsing has been inlined
  // into it.
  //
  // All in the name of speed.
  //
  pp.readToken_dot = function () {
    var next = this.input.charCodeAt(this.pos + 1);
    if (next >= 48 && next <= 57) {
      return this.readNumber(true);
    }
    var next2 = this.input.charCodeAt(this.pos + 2);
    if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) {
      // 46 = dot '.'
      this.pos += 3;
      return this.finishToken(types$1.ellipsis);
    } else {
      ++this.pos;
      return this.finishToken(types$1.dot);
    }
  };
  pp.readToken_slash = function () {
    // '/'
    var next = this.input.charCodeAt(this.pos + 1);
    if (this.exprAllowed) {
      ++this.pos;
      return this.readRegexp();
    }
    if (next === 61) {
      return this.finishOp(types$1.assign, 2);
    }
    return this.finishOp(types$1.slash, 1);
  };
  pp.readToken_mult_modulo_exp = function (code) {
    // '%*'
    var next = this.input.charCodeAt(this.pos + 1);
    var size = 1;
    var tokentype = code === 42 ? types$1.star : types$1.modulo;

    // exponentiation operator ** and **=
    if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {
      ++size;
      tokentype = types$1.starstar;
      next = this.input.charCodeAt(this.pos + 2);
    }
    if (next === 61) {
      return this.finishOp(types$1.assign, size + 1);
    }
    return this.finishOp(tokentype, size);
  };
  pp.readToken_pipe_amp = function (code) {
    // '|&'
    var next = this.input.charCodeAt(this.pos + 1);
    if (next === code) {
      if (this.options.ecmaVersion >= 12) {
        var next2 = this.input.charCodeAt(this.pos + 2);
        if (next2 === 61) {
          return this.finishOp(types$1.assign, 3);
        }
      }
      return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2);
    }
    if (next === 61) {
      return this.finishOp(types$1.assign, 2);
    }
    return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1);
  };
  pp.readToken_caret = function () {
    // '^'
    var next = this.input.charCodeAt(this.pos + 1);
    if (next === 61) {
      return this.finishOp(types$1.assign, 2);
    }
    return this.finishOp(types$1.bitwiseXOR, 1);
  };
  pp.readToken_plus_min = function (code) {
    // '+-'
    var next = this.input.charCodeAt(this.pos + 1);
    if (next === code) {
      if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {
        // A `-->` line comment
        this.skipLineComment(3);
        this.skipSpace();
        return this.nextToken();
      }
      return this.finishOp(types$1.incDec, 2);
    }
    if (next === 61) {
      return this.finishOp(types$1.assign, 2);
    }
    return this.finishOp(types$1.plusMin, 1);
  };
  pp.readToken_lt_gt = function (code) {
    // '<>'
    var next = this.input.charCodeAt(this.pos + 1);
    var size = 1;
    if (next === code) {
      size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;
      if (this.input.charCodeAt(this.pos + size) === 61) {
        return this.finishOp(types$1.assign, size + 1);
      }
      return this.finishOp(types$1.bitShift, size);
    }
    if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && this.input.charCodeAt(this.pos + 3) === 45) {
      // `<!--`, an XML-style comment that should be interpreted as a line comment
      this.skipLineComment(4);
      this.skipSpace();
      return this.nextToken();
    }
    if (next === 61) {
      size = 2;
    }
    return this.finishOp(types$1.relational, size);
  };
  pp.readToken_eq_excl = function (code) {
    // '=!'
    var next = this.input.charCodeAt(this.pos + 1);
    if (next === 61) {
      return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2);
    }
    if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) {
      // '=>'
      this.pos += 2;
      return this.finishToken(types$1.arrow);
    }
    return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1);
  };
  pp.readToken_question = function () {
    // '?'
    var ecmaVersion = this.options.ecmaVersion;
    if (ecmaVersion >= 11) {
      var next = this.input.charCodeAt(this.pos + 1);
      if (next === 46) {
        var next2 = this.input.charCodeAt(this.pos + 2);
        if (next2 < 48 || next2 > 57) {
          return this.finishOp(types$1.questionDot, 2);
        }
      }
      if (next === 63) {
        if (ecmaVersion >= 12) {
          var next2$1 = this.input.charCodeAt(this.pos + 2);
          if (next2$1 === 61) {
            return this.finishOp(types$1.assign, 3);
          }
        }
        return this.finishOp(types$1.coalesce, 2);
      }
    }
    return this.finishOp(types$1.question, 1);
  };
  pp.readToken_numberSign = function () {
    // '#'
    var ecmaVersion = this.options.ecmaVersion;
    var code = 35; // '#'
    if (ecmaVersion >= 13) {
      ++this.pos;
      code = this.fullCharCodeAtPos();
      if (isIdentifierStart(code, true) || code === 92 /* '\' */) {
        return this.finishToken(types$1.privateId, this.readWord1());
      }
    }
    this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'");
  };
  pp.getTokenFromCode = function (code) {
    switch (code) {
      // The interpretation of a dot depends on whether it is followed
      // by a digit or another two dots.
      case 46:
        // '.'
        return this.readToken_dot();

      // Punctuation tokens.
      case 40:
        ++this.pos;
        return this.finishToken(types$1.parenL);
      case 41:
        ++this.pos;
        return this.finishToken(types$1.parenR);
      case 59:
        ++this.pos;
        return this.finishToken(types$1.semi);
      case 44:
        ++this.pos;
        return this.finishToken(types$1.comma);
      case 91:
        ++this.pos;
        return this.finishToken(types$1.bracketL);
      case 93:
        ++this.pos;
        return this.finishToken(types$1.bracketR);
      case 123:
        ++this.pos;
        return this.finishToken(types$1.braceL);
      case 125:
        ++this.pos;
        return this.finishToken(types$1.braceR);
      case 58:
        ++this.pos;
        return this.finishToken(types$1.colon);
      case 96:
        // '`'
        if (this.options.ecmaVersion < 6) {
          break;
        }
        ++this.pos;
        return this.finishToken(types$1.backQuote);
      case 48:
        // '0'
        var next = this.input.charCodeAt(this.pos + 1);
        if (next === 120 || next === 88) {
          return this.readRadixNumber(16);
        } // '0x', '0X' - hex number
        if (this.options.ecmaVersion >= 6) {
          if (next === 111 || next === 79) {
            return this.readRadixNumber(8);
          } // '0o', '0O' - octal number
          if (next === 98 || next === 66) {
            return this.readRadixNumber(2);
          } // '0b', '0B' - binary number
        }

      // Anything else beginning with a digit is an integer, octal
      // number, or float.
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
        // 1-9
        return this.readNumber(false);

      // Quotes produce strings.
      case 34:
      case 39:
        // '"', "'"
        return this.readString(code);

      // Operators are parsed inline in tiny state machines. '=' (61) is
      // often referred to. `finishOp` simply skips the amount of
      // characters it is given as second argument, and returns a token
      // of the type given by its first argument.
      case 47:
        // '/'
        return this.readToken_slash();
      case 37:
      case 42:
        // '%*'
        return this.readToken_mult_modulo_exp(code);
      case 124:
      case 38:
        // '|&'
        return this.readToken_pipe_amp(code);
      case 94:
        // '^'
        return this.readToken_caret();
      case 43:
      case 45:
        // '+-'
        return this.readToken_plus_min(code);
      case 60:
      case 62:
        // '<>'
        return this.readToken_lt_gt(code);
      case 61:
      case 33:
        // '=!'
        return this.readToken_eq_excl(code);
      case 63:
        // '?'
        return this.readToken_question();
      case 126:
        // '~'
        return this.finishOp(types$1.prefix, 1);
      case 35:
        // '#'
        return this.readToken_numberSign();
    }
    this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'");
  };
  pp.finishOp = function (type, size) {
    var str = this.input.slice(this.pos, this.pos + size);
    this.pos += size;
    return this.finishToken(type, str);
  };
  pp.readRegexp = function () {
    var escaped,
      inClass,
      start = this.pos;
    for (;;) {
      if (this.pos >= this.input.length) {
        this.raise(start, "Unterminated regular expression");
      }
      var ch = this.input.charAt(this.pos);
      if (lineBreak.test(ch)) {
        this.raise(start, "Unterminated regular expression");
      }
      if (!escaped) {
        if (ch === "[") {
          inClass = true;
        } else if (ch === "]" && inClass) {
          inClass = false;
        } else if (ch === "/" && !inClass) {
          break;
        }
        escaped = ch === "\\";
      } else {
        escaped = false;
      }
      ++this.pos;
    }
    var pattern = this.input.slice(start, this.pos);
    ++this.pos;
    var flagsStart = this.pos;
    var flags = this.readWord1();
    if (this.containsEsc) {
      this.unexpected(flagsStart);
    }

    // Validate pattern
    var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));
    state.reset(start, pattern, flags);
    this.validateRegExpFlags(state);
    this.validateRegExpPattern(state);

    // Create Literal#value property value.
    var value = null;
    try {
      value = new RegExp(pattern, flags);
    } catch (e) {
      // ESTree requires null if it failed to instantiate RegExp object.
      // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral
    }
    return this.finishToken(types$1.regexp, {
      pattern: pattern,
      flags: flags,
      value: value
    });
  };

  // Read an integer in the given radix. Return null if zero digits
  // were read, the integer value otherwise. When `len` is given, this
  // will return `null` unless the integer has exactly `len` digits.

  pp.readInt = function (radix, len, maybeLegacyOctalNumericLiteral) {
    // `len` is used for character escape sequences. In that case, disallow separators.
    var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;

    // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)
    // and isn't fraction part nor exponent part. In that case, if the first digit
    // is zero then disallow separators.
    var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;
    var start = this.pos,
      total = 0,
      lastCode = 0;
    for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {
      var code = this.input.charCodeAt(this.pos),
        val = void 0;
      if (allowSeparators && code === 95) {
        if (isLegacyOctalNumericLiteral) {
          this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals");
        }
        if (lastCode === 95) {
          this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore");
        }
        if (i === 0) {
          this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits");
        }
        lastCode = code;
        continue;
      }
      if (code >= 97) {
        val = code - 97 + 10;
      } // a
      else if (code >= 65) {
        val = code - 65 + 10;
      } // A
      else if (code >= 48 && code <= 57) {
        val = code - 48;
      } // 0-9
      else {
        val = Infinity;
      }
      if (val >= radix) {
        break;
      }
      lastCode = code;
      total = total * radix + val;
    }
    if (allowSeparators && lastCode === 95) {
      this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits");
    }
    if (this.pos === start || len != null && this.pos - start !== len) {
      return null;
    }
    return total;
  };
  function stringToNumber(str, isLegacyOctalNumericLiteral) {
    if (isLegacyOctalNumericLiteral) {
      return parseInt(str, 8);
    }

    // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.
    return parseFloat(str.replace(/_/g, ""));
  }
  function stringToBigInt(str) {
    if (typeof BigInt !== "function") {
      return null;
    }

    // `BigInt(value)` throws syntax error if the string contains numeric separators.
    return BigInt(str.replace(/_/g, ""));
  }
  pp.readRadixNumber = function (radix) {
    var start = this.pos;
    this.pos += 2; // 0x
    var val = this.readInt(radix);
    if (val == null) {
      this.raise(this.start + 2, "Expected number in radix " + radix);
    }
    if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {
      val = stringToBigInt(this.input.slice(start, this.pos));
      ++this.pos;
    } else if (isIdentifierStart(this.fullCharCodeAtPos())) {
      this.raise(this.pos, "Identifier directly after number");
    }
    return this.finishToken(types$1.num, val);
  };

  // Read an integer, octal integer, or floating-point number.

  pp.readNumber = function (startsWithDot) {
    var start = this.pos;
    if (!startsWithDot && this.readInt(10, undefined, true) === null) {
      this.raise(start, "Invalid number");
    }
    var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;
    if (octal && this.strict) {
      this.raise(start, "Invalid number");
    }
    var next = this.input.charCodeAt(this.pos);
    if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {
      var val$1 = stringToBigInt(this.input.slice(start, this.pos));
      ++this.pos;
      if (isIdentifierStart(this.fullCharCodeAtPos())) {
        this.raise(this.pos, "Identifier directly after number");
      }
      return this.finishToken(types$1.num, val$1);
    }
    if (octal && /[89]/.test(this.input.slice(start, this.pos))) {
      octal = false;
    }
    if (next === 46 && !octal) {
      // '.'
      ++this.pos;
      this.readInt(10);
      next = this.input.charCodeAt(this.pos);
    }
    if ((next === 69 || next === 101) && !octal) {
      // 'eE'
      next = this.input.charCodeAt(++this.pos);
      if (next === 43 || next === 45) {
        ++this.pos;
      } // '+-'
      if (this.readInt(10) === null) {
        this.raise(start, "Invalid number");
      }
    }
    if (isIdentifierStart(this.fullCharCodeAtPos())) {
      this.raise(this.pos, "Identifier directly after number");
    }
    var val = stringToNumber(this.input.slice(start, this.pos), octal);
    return this.finishToken(types$1.num, val);
  };

  // Read a string value, interpreting backslash-escapes.

  pp.readCodePoint = function () {
    var ch = this.input.charCodeAt(this.pos),
      code;
    if (ch === 123) {
      // '{'
      if (this.options.ecmaVersion < 6) {
        this.unexpected();
      }
      var codePos = ++this.pos;
      code = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos);
      ++this.pos;
      if (code > 0x10FFFF) {
        this.invalidStringToken(codePos, "Code point out of bounds");
      }
    } else {
      code = this.readHexChar(4);
    }
    return code;
  };
  pp.readString = function (quote) {
    var out = "",
      chunkStart = ++this.pos;
    for (;;) {
      if (this.pos >= this.input.length) {
        this.raise(this.start, "Unterminated string constant");
      }
      var ch = this.input.charCodeAt(this.pos);
      if (ch === quote) {
        break;
      }
      if (ch === 92) {
        // '\'
        out += this.input.slice(chunkStart, this.pos);
        out += this.readEscapedChar(false);
        chunkStart = this.pos;
      } else if (ch === 0x2028 || ch === 0x2029) {
        if (this.options.ecmaVersion < 10) {
          this.raise(this.start, "Unterminated string constant");
        }
        ++this.pos;
        if (this.options.locations) {
          this.curLine++;
          this.lineStart = this.pos;
        }
      } else {
        if (isNewLine(ch)) {
          this.raise(this.start, "Unterminated string constant");
        }
        ++this.pos;
      }
    }
    out += this.input.slice(chunkStart, this.pos++);
    return this.finishToken(types$1.string, out);
  };

  // Reads template string tokens.

  var INVALID_TEMPLATE_ESCAPE_ERROR = {};
  pp.tryReadTemplateToken = function () {
    this.inTemplateElement = true;
    try {
      this.readTmplToken();
    } catch (err) {
      if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {
        this.readInvalidTemplateToken();
      } else {
        throw err;
      }
    }
    this.inTemplateElement = false;
  };
  pp.invalidStringToken = function (position, message) {
    if (this.inTemplateElement && this.options.ecmaVersion >= 9) {
      throw INVALID_TEMPLATE_ESCAPE_ERROR;
    } else {
      this.raise(position, message);
    }
  };
  pp.readTmplToken = function () {
    var out = "",
      chunkStart = this.pos;
    for (;;) {
      if (this.pos >= this.input.length) {
        this.raise(this.start, "Unterminated template");
      }
      var ch = this.input.charCodeAt(this.pos);
      if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) {
        // '`', '${'
        if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) {
          if (ch === 36) {
            this.pos += 2;
            return this.finishToken(types$1.dollarBraceL);
          } else {
            ++this.pos;
            return this.finishToken(types$1.backQuote);
          }
        }
        out += this.input.slice(chunkStart, this.pos);
        return this.finishToken(types$1.template, out);
      }
      if (ch === 92) {
        // '\'
        out += this.input.slice(chunkStart, this.pos);
        out += this.readEscapedChar(true);
        chunkStart = this.pos;
      } else if (isNewLine(ch)) {
        out += this.input.slice(chunkStart, this.pos);
        ++this.pos;
        switch (ch) {
          case 13:
            if (this.input.charCodeAt(this.pos) === 10) {
              ++this.pos;
            }
          case 10:
            out += "\n";
            break;
          default:
            out += String.fromCharCode(ch);
            break;
        }
        if (this.options.locations) {
          ++this.curLine;
          this.lineStart = this.pos;
        }
        chunkStart = this.pos;
      } else {
        ++this.pos;
      }
    }
  };

  // Reads a template token to search for the end, without validating any escape sequences
  pp.readInvalidTemplateToken = function () {
    for (; this.pos < this.input.length; this.pos++) {
      switch (this.input[this.pos]) {
        case "\\":
          ++this.pos;
          break;
        case "$":
          if (this.input[this.pos + 1] !== "{") {
            break;
          }

        // falls through
        case "`":
          return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos));

        // no default
      }
    }

    this.raise(this.start, "Unterminated template");
  };

  // Used to read escaped characters

  pp.readEscapedChar = function (inTemplate) {
    var ch = this.input.charCodeAt(++this.pos);
    ++this.pos;
    switch (ch) {
      case 110:
        return "\n";
      // 'n' -> '\n'
      case 114:
        return "\r";
      // 'r' -> '\r'
      case 120:
        return String.fromCharCode(this.readHexChar(2));
      // 'x'
      case 117:
        return codePointToString(this.readCodePoint());
      // 'u'
      case 116:
        return "\t";
      // 't' -> '\t'
      case 98:
        return "\b";
      // 'b' -> '\b'
      case 118:
        return "\u000b";
      // 'v' -> '\u000b'
      case 102:
        return "\f";
      // 'f' -> '\f'
      case 13:
        if (this.input.charCodeAt(this.pos) === 10) {
          ++this.pos;
        }
      // '\r\n'
      case 10:
        // ' \n'
        if (this.options.locations) {
          this.lineStart = this.pos;
          ++this.curLine;
        }
        return "";
      case 56:
      case 57:
        if (this.strict) {
          this.invalidStringToken(this.pos - 1, "Invalid escape sequence");
        }
        if (inTemplate) {
          var codePos = this.pos - 1;
          this.invalidStringToken(codePos, "Invalid escape sequence in template string");
        }
      default:
        if (ch >= 48 && ch <= 55) {
          var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];
          var octal = parseInt(octalStr, 8);
          if (octal > 255) {
            octalStr = octalStr.slice(0, -1);
            octal = parseInt(octalStr, 8);
          }
          this.pos += octalStr.length - 1;
          ch = this.input.charCodeAt(this.pos);
          if ((octalStr !== "0" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {
            this.invalidStringToken(this.pos - 1 - octalStr.length, inTemplate ? "Octal literal in template string" : "Octal literal in strict mode");
          }
          return String.fromCharCode(octal);
        }
        if (isNewLine(ch)) {
          // Unicode new line characters after \ get removed from output in both
          // template literals and strings
          return "";
        }
        return String.fromCharCode(ch);
    }
  };

  // Used to read character escape sequences ('\x', '\u', '\U').

  pp.readHexChar = function (len) {
    var codePos = this.pos;
    var n = this.readInt(16, len);
    if (n === null) {
      this.invalidStringToken(codePos, "Bad character escape sequence");
    }
    return n;
  };

  // Read an identifier, and return it as a string. Sets `this.containsEsc`
  // to whether the word contained a '\u' escape.
  //
  // Incrementally adds only escaped chars, adding other chunks as-is
  // as a micro-optimization.

  pp.readWord1 = function () {
    this.containsEsc = false;
    var word = "",
      first = true,
      chunkStart = this.pos;
    var astral = this.options.ecmaVersion >= 6;
    while (this.pos < this.input.length) {
      var ch = this.fullCharCodeAtPos();
      if (isIdentifierChar(ch, astral)) {
        this.pos += ch <= 0xffff ? 1 : 2;
      } else if (ch === 92) {
        // "\"
        this.containsEsc = true;
        word += this.input.slice(chunkStart, this.pos);
        var escStart = this.pos;
        if (this.input.charCodeAt(++this.pos) !== 117)
          // "u"
          {
            this.invalidStringToken(this.pos, "Expecting Unicode escape sequence \\uXXXX");
          }
        ++this.pos;
        var esc = this.readCodePoint();
        if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral)) {
          this.invalidStringToken(escStart, "Invalid Unicode escape");
        }
        word += codePointToString(esc);
        chunkStart = this.pos;
      } else {
        break;
      }
      first = false;
    }
    return word + this.input.slice(chunkStart, this.pos);
  };

  // Read an identifier or keyword token. Will check for reserved
  // words when necessary.

  pp.readWord = function () {
    var word = this.readWord1();
    var type = types$1.name;
    if (this.keywords.test(word)) {
      type = keywords[word];
    }
    return this.finishToken(type, word);
  };

  // Acorn is a tiny, fast JavaScript parser written in JavaScript.
  //
  // Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and
  // various contributors and released under an MIT license.
  //
  // Git repositories for Acorn are available at
  //
  //     http://marijnhaverbeke.nl/git/acorn
  //     https://github.com/acornjs/acorn.git
  //
  // Please use the [github bug tracker][ghbt] to report issues.
  //
  // [ghbt]: https://github.com/acornjs/acorn/issues
  //
  // [walk]: util/walk.js

  var version = "8.11.3";
  Parser.acorn = {
    Parser: Parser,
    version: version,
    defaultOptions: defaultOptions,
    Position: Position,
    SourceLocation: SourceLocation,
    getLineInfo: getLineInfo,
    Node: Node,
    TokenType: TokenType,
    tokTypes: types$1,
    keywordTypes: keywords,
    TokContext: TokContext,
    tokContexts: types,
    isIdentifierChar: isIdentifierChar,
    isIdentifierStart: isIdentifierStart,
    Token: Token,
    isNewLine: isNewLine,
    lineBreak: lineBreak,
    lineBreakG: lineBreakG,
    nonASCIIwhitespace: nonASCIIwhitespace
  };

  // The main exported interface (under `self.acorn` when in the
  // browser) is a `parse` function that takes a code string and returns
  // an abstract syntax tree as specified by the [ESTree spec][estree].
  //
  // [estree]: https://github.com/estree/estree

  function parse(input, options) {
    return Parser.parse(input, options);
  }

  // This function tries to parse a single expression at a given
  // offset in a string. Useful for parsing mixed-language formats
  // that embed JavaScript expressions.

  function parseExpressionAt(input, pos, options) {
    return Parser.parseExpressionAt(input, pos, options);
  }

  // Acorn is organized as a tokenizer and a recursive-descent parser.
  // The `tokenizer` export provides an interface to the tokenizer.

  function tokenizer(input, options) {
    return Parser.tokenizer(input, options);
  }
  exports.Node = Node;
  exports.Parser = Parser;
  exports.Position = Position;
  exports.SourceLocation = SourceLocation;
  exports.TokContext = TokContext;
  exports.Token = Token;
  exports.TokenType = TokenType;
  exports.defaultOptions = defaultOptions;
  exports.getLineInfo = getLineInfo;
  exports.isIdentifierChar = isIdentifierChar;
  exports.isIdentifierStart = isIdentifierStart;
  exports.isNewLine = isNewLine;
  exports.keywordTypes = keywords;
  exports.lineBreak = lineBreak;
  exports.lineBreakG = lineBreakG;
  exports.nonASCIIwhitespace = nonASCIIwhitespace;
  exports.parse = parse;
  exports.parseExpressionAt = parseExpressionAt;
  exports.tokContexts = types;
  exports.tokTypes = types$1;
  exports.tokenizer = tokenizer;
  exports.version = version;
});

/***/ }),

/***/ 9761:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var reactIs = __webpack_require__(736);

/**
 * Copyright 2015, Yahoo! Inc.
 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
 */
var REACT_STATICS = {
  childContextTypes: true,
  contextType: true,
  contextTypes: true,
  defaultProps: true,
  displayName: true,
  getDefaultProps: true,
  getDerivedStateFromError: true,
  getDerivedStateFromProps: true,
  mixins: true,
  propTypes: true,
  type: true
};
var KNOWN_STATICS = {
  name: true,
  length: true,
  prototype: true,
  caller: true,
  callee: true,
  arguments: true,
  arity: true
};
var FORWARD_REF_STATICS = {
  '$$typeof': true,
  render: true,
  defaultProps: true,
  displayName: true,
  propTypes: true
};
var MEMO_STATICS = {
  '$$typeof': true,
  compare: true,
  defaultProps: true,
  displayName: true,
  propTypes: true,
  type: true
};
var TYPE_STATICS = {};
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
function getStatics(component) {
  // React v16.11 and below
  if (reactIs.isMemo(component)) {
    return MEMO_STATICS;
  } // React v16.12 and above

  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
}
var defineProperty = Object.defineProperty;
var getOwnPropertyNames = Object.getOwnPropertyNames;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var getPrototypeOf = Object.getPrototypeOf;
var objectPrototype = Object.prototype;
function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
  if (typeof sourceComponent !== 'string') {
    // don't hoist over string (html) components
    if (objectPrototype) {
      var inheritedComponent = getPrototypeOf(sourceComponent);
      if (inheritedComponent && inheritedComponent !== objectPrototype) {
        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
      }
    }
    var keys = getOwnPropertyNames(sourceComponent);
    if (getOwnPropertySymbols) {
      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
    }
    var targetStatics = getStatics(targetComponent);
    var sourceStatics = getStatics(sourceComponent);
    for (var i = 0; i < keys.length; ++i) {
      var key = keys[i];
      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
        try {
          // Avoid failures from read-only properties
          defineProperty(targetComponent, key, descriptor);
        } catch (e) {}
      }
    }
  }
  return targetComponent;
}
module.exports = hoistNonReactStatics;

/***/ }),

/***/ 4883:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/**
 * @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.
 */
/*
 Modernizr 3.0.0pre (Custom Build) | MIT
*/


var aa = __webpack_require__(7948),
  ca = __webpack_require__(1935);
function p(a) {
  for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++) b += "&args[]=" + encodeURIComponent(arguments[c]);
  return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
}
var da = new Set(),
  ea = {};
function fa(a, b) {
  ha(a, b);
  ha(a + "Capture", b);
}
function ha(a, b) {
  ea[a] = b;
  for (a = 0; a < b.length; a++) da.add(b[a]);
}
var ia = !("undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement),
  ja = Object.prototype.hasOwnProperty,
  ka = /^[: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 = {},
  ma = {};
function oa(a) {
  if (ja.call(ma, a)) return !0;
  if (ja.call(la, a)) return !1;
  if (ka.test(a)) return ma[a] = !0;
  la[a] = !0;
  return !1;
}
function pa(a, b, c, d) {
  if (null !== c && 0 === c.type) return !1;
  switch (typeof b) {
    case "function":
    case "symbol":
      return !0;
    case "boolean":
      if (d) return !1;
      if (null !== c) return !c.acceptsBooleans;
      a = a.toLowerCase().slice(0, 5);
      return "data-" !== a && "aria-" !== a;
    default:
      return !1;
  }
}
function qa(a, b, c, d) {
  if (null === b || "undefined" === typeof b || pa(a, b, c, d)) return !0;
  if (d) return !1;
  if (null !== c) switch (c.type) {
    case 3:
      return !b;
    case 4:
      return !1 === b;
    case 5:
      return isNaN(b);
    case 6:
      return isNaN(b) || 1 > b;
  }
  return !1;
}
function v(a, b, c, d, e, f, g) {
  this.acceptsBooleans = 2 === b || 3 === b || 4 === b;
  this.attributeName = d;
  this.attributeNamespace = e;
  this.mustUseProperty = c;
  this.propertyName = a;
  this.type = b;
  this.sanitizeURL = f;
  this.removeEmptyString = g;
}
var z = {};
"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function (a) {
  z[a] = new v(a, 0, !1, a, null, !1, !1);
});
[["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function (a) {
  var b = a[0];
  z[b] = new v(b, 1, !1, a[1], null, !1, !1);
});
["contentEditable", "draggable", "spellCheck", "value"].forEach(function (a) {
  z[a] = new v(a, 2, !1, a.toLowerCase(), null, !1, !1);
});
["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function (a) {
  z[a] = new v(a, 2, !1, a, 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 (a) {
  z[a] = new v(a, 3, !1, a.toLowerCase(), null, !1, !1);
});
["checked", "multiple", "muted", "selected"].forEach(function (a) {
  z[a] = new v(a, 3, !0, a, null, !1, !1);
});
["capture", "download"].forEach(function (a) {
  z[a] = new v(a, 4, !1, a, null, !1, !1);
});
["cols", "rows", "size", "span"].forEach(function (a) {
  z[a] = new v(a, 6, !1, a, null, !1, !1);
});
["rowSpan", "start"].forEach(function (a) {
  z[a] = new v(a, 5, !1, a.toLowerCase(), null, !1, !1);
});
var ra = /[\-:]([a-z])/g;
function sa(a) {
  return a[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 (a) {
  var b = a.replace(ra, sa);
  z[b] = new v(b, 1, !1, a, null, !1, !1);
});
"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function (a) {
  var b = a.replace(ra, sa);
  z[b] = new v(b, 1, !1, a, "http://www.w3.org/1999/xlink", !1, !1);
});
["xml:base", "xml:lang", "xml:space"].forEach(function (a) {
  var b = a.replace(ra, sa);
  z[b] = new v(b, 1, !1, a, "http://www.w3.org/XML/1998/namespace", !1, !1);
});
["tabIndex", "crossOrigin"].forEach(function (a) {
  z[a] = new v(a, 1, !1, a.toLowerCase(), null, !1, !1);
});
z.xlinkHref = new v("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1);
["src", "href", "action", "formAction"].forEach(function (a) {
  z[a] = new v(a, 1, !1, a.toLowerCase(), null, !0, !0);
});
function ta(a, b, c, d) {
  var e = z.hasOwnProperty(b) ? z[b] : null;
  if (null !== e ? 0 !== e.type : d || !(2 < b.length) || "o" !== b[0] && "O" !== b[0] || "n" !== b[1] && "N" !== b[1]) qa(b, c, e, d) && (c = null), d || null === e ? oa(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, "" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? !1 : "" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && !0 === c ? "" : "" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c)));
}
var ua = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
  va = Symbol.for("react.element"),
  wa = Symbol.for("react.portal"),
  ya = Symbol.for("react.fragment"),
  za = Symbol.for("react.strict_mode"),
  Aa = Symbol.for("react.profiler"),
  Ba = Symbol.for("react.provider"),
  Ca = Symbol.for("react.context"),
  Da = Symbol.for("react.forward_ref"),
  Ea = Symbol.for("react.suspense"),
  Fa = Symbol.for("react.suspense_list"),
  Ga = Symbol.for("react.memo"),
  Ha = Symbol.for("react.lazy");
Symbol.for("react.scope");
Symbol.for("react.debug_trace_mode");
var Ia = Symbol.for("react.offscreen");
Symbol.for("react.legacy_hidden");
Symbol.for("react.cache");
Symbol.for("react.tracing_marker");
var Ja = Symbol.iterator;
function Ka(a) {
  if (null === a || "object" !== typeof a) return null;
  a = Ja && a[Ja] || a["@@iterator"];
  return "function" === typeof a ? a : null;
}
var A = Object.assign,
  La;
function Ma(a) {
  if (void 0 === La) try {
    throw Error();
  } catch (c) {
    var b = c.stack.trim().match(/\n( *(at )?)/);
    La = b && b[1] || "";
  }
  return "\n" + La + a;
}
var Na = !1;
function Oa(a, b) {
  if (!a || Na) return "";
  Na = !0;
  var c = Error.prepareStackTrace;
  Error.prepareStackTrace = void 0;
  try {
    if (b) {
      if (b = function () {
        throw Error();
      }, Object.defineProperty(b.prototype, "props", {
        set: function () {
          throw Error();
        }
      }), "object" === typeof Reflect && Reflect.construct) {
        try {
          Reflect.construct(b, []);
        } catch (l) {
          var d = l;
        }
        Reflect.construct(a, [], b);
      } else {
        try {
          b.call();
        } catch (l) {
          d = l;
        }
        a.call(b.prototype);
      }
    } else {
      try {
        throw Error();
      } catch (l) {
        d = l;
      }
      a();
    }
  } catch (l) {
    if (l && d && "string" === typeof l.stack) {
      for (var e = l.stack.split("\n"), f = d.stack.split("\n"), g = e.length - 1, h = f.length - 1; 1 <= g && 0 <= h && e[g] !== f[h];) h--;
      for (; 1 <= g && 0 <= h; g--, h--) if (e[g] !== f[h]) {
        if (1 !== g || 1 !== h) {
          do if (g--, h--, 0 > h || e[g] !== f[h]) {
            var k = "\n" + e[g].replace(" at new ", " at ");
            a.displayName && k.includes("<anonymous>") && (k = k.replace("<anonymous>", a.displayName));
            return k;
          } while (1 <= g && 0 <= h);
        }
        break;
      }
    }
  } finally {
    Na = !1, Error.prepareStackTrace = c;
  }
  return (a = a ? a.displayName || a.name : "") ? Ma(a) : "";
}
function Pa(a) {
  switch (a.tag) {
    case 5:
      return Ma(a.type);
    case 16:
      return Ma("Lazy");
    case 13:
      return Ma("Suspense");
    case 19:
      return Ma("SuspenseList");
    case 0:
    case 2:
    case 15:
      return a = Oa(a.type, !1), a;
    case 11:
      return a = Oa(a.type.render, !1), a;
    case 1:
      return a = Oa(a.type, !0), a;
    default:
      return "";
  }
}
function Qa(a) {
  if (null == a) return null;
  if ("function" === typeof a) return a.displayName || a.name || null;
  if ("string" === typeof a) return a;
  switch (a) {
    case ya:
      return "Fragment";
    case wa:
      return "Portal";
    case Aa:
      return "Profiler";
    case za:
      return "StrictMode";
    case Ea:
      return "Suspense";
    case Fa:
      return "SuspenseList";
  }
  if ("object" === typeof a) switch (a.$$typeof) {
    case Ca:
      return (a.displayName || "Context") + ".Consumer";
    case Ba:
      return (a._context.displayName || "Context") + ".Provider";
    case Da:
      var b = a.render;
      a = a.displayName;
      a || (a = b.displayName || b.name || "", a = "" !== a ? "ForwardRef(" + a + ")" : "ForwardRef");
      return a;
    case Ga:
      return b = a.displayName || null, null !== b ? b : Qa(a.type) || "Memo";
    case Ha:
      b = a._payload;
      a = a._init;
      try {
        return Qa(a(b));
      } catch (c) {}
  }
  return null;
}
function Ra(a) {
  var b = a.type;
  switch (a.tag) {
    case 24:
      return "Cache";
    case 9:
      return (b.displayName || "Context") + ".Consumer";
    case 10:
      return (b._context.displayName || "Context") + ".Provider";
    case 18:
      return "DehydratedFragment";
    case 11:
      return a = b.render, a = a.displayName || a.name || "", b.displayName || ("" !== a ? "ForwardRef(" + a + ")" : "ForwardRef");
    case 7:
      return "Fragment";
    case 5:
      return b;
    case 4:
      return "Portal";
    case 3:
      return "Root";
    case 6:
      return "Text";
    case 16:
      return Qa(b);
    case 8:
      return b === za ? "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 ("function" === typeof b) return b.displayName || b.name || null;
      if ("string" === typeof b) return b;
  }
  return null;
}
function Sa(a) {
  switch (typeof a) {
    case "boolean":
    case "number":
    case "string":
    case "undefined":
      return a;
    case "object":
      return a;
    default:
      return "";
  }
}
function Ta(a) {
  var b = a.type;
  return (a = a.nodeName) && "input" === a.toLowerCase() && ("checkbox" === b || "radio" === b);
}
function Ua(a) {
  var b = Ta(a) ? "checked" : "value",
    c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b),
    d = "" + a[b];
  if (!a.hasOwnProperty(b) && "undefined" !== typeof c && "function" === typeof c.get && "function" === typeof c.set) {
    var e = c.get,
      f = c.set;
    Object.defineProperty(a, b, {
      configurable: !0,
      get: function () {
        return e.call(this);
      },
      set: function (a) {
        d = "" + a;
        f.call(this, a);
      }
    });
    Object.defineProperty(a, b, {
      enumerable: c.enumerable
    });
    return {
      getValue: function () {
        return d;
      },
      setValue: function (a) {
        d = "" + a;
      },
      stopTracking: function () {
        a._valueTracker = null;
        delete a[b];
      }
    };
  }
}
function Va(a) {
  a._valueTracker || (a._valueTracker = Ua(a));
}
function Wa(a) {
  if (!a) return !1;
  var b = a._valueTracker;
  if (!b) return !0;
  var c = b.getValue();
  var d = "";
  a && (d = Ta(a) ? a.checked ? "true" : "false" : a.value);
  a = d;
  return a !== c ? (b.setValue(a), !0) : !1;
}
function Xa(a) {
  a = a || ("undefined" !== typeof document ? document : void 0);
  if ("undefined" === typeof a) return null;
  try {
    return a.activeElement || a.body;
  } catch (b) {
    return a.body;
  }
}
function Ya(a, b) {
  var c = b.checked;
  return A({}, b, {
    defaultChecked: void 0,
    defaultValue: void 0,
    value: void 0,
    checked: null != c ? c : a._wrapperState.initialChecked
  });
}
function Za(a, b) {
  var c = null == b.defaultValue ? "" : b.defaultValue,
    d = null != b.checked ? b.checked : b.defaultChecked;
  c = Sa(null != b.value ? b.value : c);
  a._wrapperState = {
    initialChecked: d,
    initialValue: c,
    controlled: "checkbox" === b.type || "radio" === b.type ? null != b.checked : null != b.value
  };
}
function ab(a, b) {
  b = b.checked;
  null != b && ta(a, "checked", b, !1);
}
function bb(a, b) {
  ab(a, b);
  var c = Sa(b.value),
    d = b.type;
  if (null != c) {
    if ("number" === d) {
      if (0 === c && "" === a.value || a.value != c) a.value = "" + c;
    } else a.value !== "" + c && (a.value = "" + c);
  } else if ("submit" === d || "reset" === d) {
    a.removeAttribute("value");
    return;
  }
  b.hasOwnProperty("value") ? cb(a, b.type, c) : b.hasOwnProperty("defaultValue") && cb(a, b.type, Sa(b.defaultValue));
  null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);
}
function db(a, b, c) {
  if (b.hasOwnProperty("value") || b.hasOwnProperty("defaultValue")) {
    var d = b.type;
    if (!("submit" !== d && "reset" !== d || void 0 !== b.value && null !== b.value)) return;
    b = "" + a._wrapperState.initialValue;
    c || b === a.value || (a.value = b);
    a.defaultValue = b;
  }
  c = a.name;
  "" !== c && (a.name = "");
  a.defaultChecked = !!a._wrapperState.initialChecked;
  "" !== c && (a.name = c);
}
function cb(a, b, c) {
  if ("number" !== b || Xa(a.ownerDocument) !== a) null == c ? a.defaultValue = "" + a._wrapperState.initialValue : a.defaultValue !== "" + c && (a.defaultValue = "" + c);
}
var eb = Array.isArray;
function fb(a, b, c, d) {
  a = a.options;
  if (b) {
    b = {};
    for (var e = 0; e < c.length; e++) b["$" + c[e]] = !0;
    for (c = 0; c < a.length; c++) e = b.hasOwnProperty("$" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = !0);
  } else {
    c = "" + Sa(c);
    b = null;
    for (e = 0; e < a.length; e++) {
      if (a[e].value === c) {
        a[e].selected = !0;
        d && (a[e].defaultSelected = !0);
        return;
      }
      null !== b || a[e].disabled || (b = a[e]);
    }
    null !== b && (b.selected = !0);
  }
}
function gb(a, b) {
  if (null != b.dangerouslySetInnerHTML) throw Error(p(91));
  return A({}, b, {
    value: void 0,
    defaultValue: void 0,
    children: "" + a._wrapperState.initialValue
  });
}
function hb(a, b) {
  var c = b.value;
  if (null == c) {
    c = b.children;
    b = b.defaultValue;
    if (null != c) {
      if (null != b) throw Error(p(92));
      if (eb(c)) {
        if (1 < c.length) throw Error(p(93));
        c = c[0];
      }
      b = c;
    }
    null == b && (b = "");
    c = b;
  }
  a._wrapperState = {
    initialValue: Sa(c)
  };
}
function ib(a, b) {
  var c = Sa(b.value),
    d = Sa(b.defaultValue);
  null != c && (c = "" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));
  null != d && (a.defaultValue = "" + d);
}
function jb(a) {
  var b = a.textContent;
  b === a._wrapperState.initialValue && "" !== b && null !== b && (a.value = b);
}
function kb(a) {
  switch (a) {
    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(a, b) {
  return null == a || "http://www.w3.org/1999/xhtml" === a ? kb(b) : "http://www.w3.org/2000/svg" === a && "foreignObject" === b ? "http://www.w3.org/1999/xhtml" : a;
}
var mb,
  nb = function (a) {
    return "undefined" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function (b, c, d, e) {
      MSApp.execUnsafeLocalFunction(function () {
        return a(b, c, d, e);
      });
    } : a;
  }(function (a, b) {
    if ("http://www.w3.org/2000/svg" !== a.namespaceURI || "innerHTML" in a) a.innerHTML = b;else {
      mb = mb || document.createElement("div");
      mb.innerHTML = "<svg>" + b.valueOf().toString() + "</svg>";
      for (b = mb.firstChild; a.firstChild;) a.removeChild(a.firstChild);
      for (; b.firstChild;) a.appendChild(b.firstChild);
    }
  });
function ob(a, b) {
  if (b) {
    var c = a.firstChild;
    if (c && c === a.lastChild && 3 === c.nodeType) {
      c.nodeValue = b;
      return;
    }
  }
  a.textContent = b;
}
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 = ["Webkit", "ms", "Moz", "O"];
Object.keys(pb).forEach(function (a) {
  qb.forEach(function (b) {
    b = b + a.charAt(0).toUpperCase() + a.substring(1);
    pb[b] = pb[a];
  });
});
function rb(a, b, c) {
  return null == b || "boolean" === typeof b || "" === b ? "" : c || "number" !== typeof b || 0 === b || pb.hasOwnProperty(a) && pb[a] ? ("" + b).trim() : b + "px";
}
function sb(a, b) {
  a = a.style;
  for (var c in b) if (b.hasOwnProperty(c)) {
    var d = 0 === c.indexOf("--"),
      e = rb(c, b[c], d);
    "float" === c && (c = "cssFloat");
    d ? a.setProperty(c, e) : a[c] = e;
  }
}
var tb = A({
  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(a, b) {
  if (b) {
    if (tb[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw Error(p(137, a));
    if (null != b.dangerouslySetInnerHTML) {
      if (null != b.children) throw Error(p(60));
      if ("object" !== typeof b.dangerouslySetInnerHTML || !("__html" in b.dangerouslySetInnerHTML)) throw Error(p(61));
    }
    if (null != b.style && "object" !== typeof b.style) throw Error(p(62));
  }
}
function vb(a, b) {
  if (-1 === a.indexOf("-")) return "string" === typeof b.is;
  switch (a) {
    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(a) {
  a = a.target || a.srcElement || window;
  a.correspondingUseElement && (a = a.correspondingUseElement);
  return 3 === a.nodeType ? a.parentNode : a;
}
var yb = null,
  zb = null,
  Ab = null;
function Bb(a) {
  if (a = Cb(a)) {
    if ("function" !== typeof yb) throw Error(p(280));
    var b = a.stateNode;
    b && (b = Db(b), yb(a.stateNode, a.type, b));
  }
}
function Eb(a) {
  zb ? Ab ? Ab.push(a) : Ab = [a] : zb = a;
}
function Fb() {
  if (zb) {
    var a = zb,
      b = Ab;
    Ab = zb = null;
    Bb(a);
    if (b) for (a = 0; a < b.length; a++) Bb(b[a]);
  }
}
function Gb(a, b) {
  return a(b);
}
function Hb() {}
var Ib = !1;
function Jb(a, b, c) {
  if (Ib) return a(b, c);
  Ib = !0;
  try {
    return Gb(a, b, c);
  } finally {
    if (Ib = !1, null !== zb || null !== Ab) Hb(), Fb();
  }
}
function Kb(a, b) {
  var c = a.stateNode;
  if (null === c) return null;
  var d = Db(c);
  if (null === d) return null;
  c = d[b];
  a: switch (b) {
    case "onClick":
    case "onClickCapture":
    case "onDoubleClick":
    case "onDoubleClickCapture":
    case "onMouseDown":
    case "onMouseDownCapture":
    case "onMouseMove":
    case "onMouseMoveCapture":
    case "onMouseUp":
    case "onMouseUpCapture":
    case "onMouseEnter":
      (d = !d.disabled) || (a = a.type, d = !("button" === a || "input" === a || "select" === a || "textarea" === a));
      a = !d;
      break a;
    default:
      a = !1;
  }
  if (a) return null;
  if (c && "function" !== typeof c) throw Error(p(231, b, typeof c));
  return c;
}
var Lb = !1;
if (ia) try {
  var Mb = {};
  Object.defineProperty(Mb, "passive", {
    get: function () {
      Lb = !0;
    }
  });
  window.addEventListener("test", Mb, Mb);
  window.removeEventListener("test", Mb, Mb);
} catch (a) {
  Lb = !1;
}
function Nb(a, b, c, d, e, f, g, h, k) {
  var l = Array.prototype.slice.call(arguments, 3);
  try {
    b.apply(c, l);
  } catch (m) {
    this.onError(m);
  }
}
var Ob = !1,
  Pb = null,
  Qb = !1,
  Rb = null,
  Sb = {
    onError: function (a) {
      Ob = !0;
      Pb = a;
    }
  };
function Tb(a, b, c, d, e, f, g, h, k) {
  Ob = !1;
  Pb = null;
  Nb.apply(Sb, arguments);
}
function Ub(a, b, c, d, e, f, g, h, k) {
  Tb.apply(this, arguments);
  if (Ob) {
    if (Ob) {
      var l = Pb;
      Ob = !1;
      Pb = null;
    } else throw Error(p(198));
    Qb || (Qb = !0, Rb = l);
  }
}
function Vb(a) {
  var b = a,
    c = a;
  if (a.alternate) for (; b.return;) b = b.return;else {
    a = b;
    do b = a, 0 !== (b.flags & 4098) && (c = b.return), a = b.return; while (a);
  }
  return 3 === b.tag ? c : null;
}
function Wb(a) {
  if (13 === a.tag) {
    var b = a.memoizedState;
    null === b && (a = a.alternate, null !== a && (b = a.memoizedState));
    if (null !== b) return b.dehydrated;
  }
  return null;
}
function Xb(a) {
  if (Vb(a) !== a) throw Error(p(188));
}
function Yb(a) {
  var b = a.alternate;
  if (!b) {
    b = Vb(a);
    if (null === b) throw Error(p(188));
    return b !== a ? null : a;
  }
  for (var c = a, d = b;;) {
    var e = c.return;
    if (null === e) break;
    var f = e.alternate;
    if (null === f) {
      d = e.return;
      if (null !== d) {
        c = d;
        continue;
      }
      break;
    }
    if (e.child === f.child) {
      for (f = e.child; f;) {
        if (f === c) return Xb(e), a;
        if (f === d) return Xb(e), b;
        f = f.sibling;
      }
      throw Error(p(188));
    }
    if (c.return !== d.return) c = e, d = f;else {
      for (var g = !1, h = e.child; h;) {
        if (h === c) {
          g = !0;
          c = e;
          d = f;
          break;
        }
        if (h === d) {
          g = !0;
          d = e;
          c = f;
          break;
        }
        h = h.sibling;
      }
      if (!g) {
        for (h = f.child; h;) {
          if (h === c) {
            g = !0;
            c = f;
            d = e;
            break;
          }
          if (h === d) {
            g = !0;
            d = f;
            c = e;
            break;
          }
          h = h.sibling;
        }
        if (!g) throw Error(p(189));
      }
    }
    if (c.alternate !== d) throw Error(p(190));
  }
  if (3 !== c.tag) throw Error(p(188));
  return c.stateNode.current === c ? a : b;
}
function Zb(a) {
  a = Yb(a);
  return null !== a ? $b(a) : null;
}
function $b(a) {
  if (5 === a.tag || 6 === a.tag) return a;
  for (a = a.child; null !== a;) {
    var b = $b(a);
    if (null !== b) return b;
    a = a.sibling;
  }
  return null;
}
var ac = ca.unstable_scheduleCallback,
  bc = ca.unstable_cancelCallback,
  cc = ca.unstable_shouldYield,
  dc = ca.unstable_requestPaint,
  B = ca.unstable_now,
  ec = ca.unstable_getCurrentPriorityLevel,
  fc = ca.unstable_ImmediatePriority,
  gc = ca.unstable_UserBlockingPriority,
  hc = ca.unstable_NormalPriority,
  ic = ca.unstable_LowPriority,
  jc = ca.unstable_IdlePriority,
  kc = null,
  lc = null;
function mc(a) {
  if (lc && "function" === typeof lc.onCommitFiberRoot) try {
    lc.onCommitFiberRoot(kc, a, void 0, 128 === (a.current.flags & 128));
  } catch (b) {}
}
var oc = Math.clz32 ? Math.clz32 : nc,
  pc = Math.log,
  qc = Math.LN2;
function nc(a) {
  a >>>= 0;
  return 0 === a ? 32 : 31 - (pc(a) / qc | 0) | 0;
}
var rc = 64,
  sc = 4194304;
function tc(a) {
  switch (a & -a) {
    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 a & 4194240;
    case 4194304:
    case 8388608:
    case 16777216:
    case 33554432:
    case 67108864:
      return a & 130023424;
    case 134217728:
      return 134217728;
    case 268435456:
      return 268435456;
    case 536870912:
      return 536870912;
    case 1073741824:
      return 1073741824;
    default:
      return a;
  }
}
function uc(a, b) {
  var c = a.pendingLanes;
  if (0 === c) return 0;
  var d = 0,
    e = a.suspendedLanes,
    f = a.pingedLanes,
    g = c & 268435455;
  if (0 !== g) {
    var h = g & ~e;
    0 !== h ? d = tc(h) : (f &= g, 0 !== f && (d = tc(f)));
  } else g = c & ~e, 0 !== g ? d = tc(g) : 0 !== f && (d = tc(f));
  if (0 === d) return 0;
  if (0 !== b && b !== d && 0 === (b & e) && (e = d & -d, f = b & -b, e >= f || 16 === e && 0 !== (f & 4194240))) return b;
  0 !== (d & 4) && (d |= c & 16);
  b = a.entangledLanes;
  if (0 !== b) for (a = a.entanglements, b &= d; 0 < b;) c = 31 - oc(b), e = 1 << c, d |= a[c], b &= ~e;
  return d;
}
function vc(a, b) {
  switch (a) {
    case 1:
    case 2:
    case 4:
      return b + 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 b + 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(a, b) {
  for (var c = a.suspendedLanes, d = a.pingedLanes, e = a.expirationTimes, f = a.pendingLanes; 0 < f;) {
    var g = 31 - oc(f),
      h = 1 << g,
      k = e[g];
    if (-1 === k) {
      if (0 === (h & c) || 0 !== (h & d)) e[g] = vc(h, b);
    } else k <= b && (a.expiredLanes |= h);
    f &= ~h;
  }
}
function xc(a) {
  a = a.pendingLanes & -1073741825;
  return 0 !== a ? a : a & 1073741824 ? 1073741824 : 0;
}
function yc() {
  var a = rc;
  rc <<= 1;
  0 === (rc & 4194240) && (rc = 64);
  return a;
}
function zc(a) {
  for (var b = [], c = 0; 31 > c; c++) b.push(a);
  return b;
}
function Ac(a, b, c) {
  a.pendingLanes |= b;
  536870912 !== b && (a.suspendedLanes = 0, a.pingedLanes = 0);
  a = a.eventTimes;
  b = 31 - oc(b);
  a[b] = c;
}
function Bc(a, b) {
  var c = a.pendingLanes & ~b;
  a.pendingLanes = b;
  a.suspendedLanes = 0;
  a.pingedLanes = 0;
  a.expiredLanes &= b;
  a.mutableReadLanes &= b;
  a.entangledLanes &= b;
  b = a.entanglements;
  var d = a.eventTimes;
  for (a = a.expirationTimes; 0 < c;) {
    var e = 31 - oc(c),
      f = 1 << e;
    b[e] = 0;
    d[e] = -1;
    a[e] = -1;
    c &= ~f;
  }
}
function Cc(a, b) {
  var c = a.entangledLanes |= b;
  for (a = a.entanglements; c;) {
    var d = 31 - oc(c),
      e = 1 << d;
    e & b | a[d] & b && (a[d] |= b);
    c &= ~e;
  }
}
var C = 0;
function Dc(a) {
  a &= -a;
  return 1 < a ? 4 < a ? 0 !== (a & 268435455) ? 16 : 536870912 : 4 : 1;
}
var Ec,
  Fc,
  Gc,
  Hc,
  Ic,
  Jc = !1,
  Kc = [],
  Lc = null,
  Mc = null,
  Nc = null,
  Oc = new Map(),
  Pc = new Map(),
  Qc = [],
  Rc = "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(a, b) {
  switch (a) {
    case "focusin":
    case "focusout":
      Lc = null;
      break;
    case "dragenter":
    case "dragleave":
      Mc = null;
      break;
    case "mouseover":
    case "mouseout":
      Nc = null;
      break;
    case "pointerover":
    case "pointerout":
      Oc.delete(b.pointerId);
      break;
    case "gotpointercapture":
    case "lostpointercapture":
      Pc.delete(b.pointerId);
  }
}
function Tc(a, b, c, d, e, f) {
  if (null === a || a.nativeEvent !== f) return a = {
    blockedOn: b,
    domEventName: c,
    eventSystemFlags: d,
    nativeEvent: f,
    targetContainers: [e]
  }, null !== b && (b = Cb(b), null !== b && Fc(b)), a;
  a.eventSystemFlags |= d;
  b = a.targetContainers;
  null !== e && -1 === b.indexOf(e) && b.push(e);
  return a;
}
function Uc(a, b, c, d, e) {
  switch (b) {
    case "focusin":
      return Lc = Tc(Lc, a, b, c, d, e), !0;
    case "dragenter":
      return Mc = Tc(Mc, a, b, c, d, e), !0;
    case "mouseover":
      return Nc = Tc(Nc, a, b, c, d, e), !0;
    case "pointerover":
      var f = e.pointerId;
      Oc.set(f, Tc(Oc.get(f) || null, a, b, c, d, e));
      return !0;
    case "gotpointercapture":
      return f = e.pointerId, Pc.set(f, Tc(Pc.get(f) || null, a, b, c, d, e)), !0;
  }
  return !1;
}
function Vc(a) {
  var b = Wc(a.target);
  if (null !== b) {
    var c = Vb(b);
    if (null !== c) if (b = c.tag, 13 === b) {
      if (b = Wb(c), null !== b) {
        a.blockedOn = b;
        Ic(a.priority, function () {
          Gc(c);
        });
        return;
      }
    } else if (3 === b && c.stateNode.current.memoizedState.isDehydrated) {
      a.blockedOn = 3 === c.tag ? c.stateNode.containerInfo : null;
      return;
    }
  }
  a.blockedOn = null;
}
function Xc(a) {
  if (null !== a.blockedOn) return !1;
  for (var b = a.targetContainers; 0 < b.length;) {
    var c = Yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);
    if (null === c) {
      c = a.nativeEvent;
      var d = new c.constructor(c.type, c);
      wb = d;
      c.target.dispatchEvent(d);
      wb = null;
    } else return b = Cb(c), null !== b && Fc(b), a.blockedOn = c, !1;
    b.shift();
  }
  return !0;
}
function Zc(a, b, c) {
  Xc(a) && c.delete(b);
}
function $c() {
  Jc = !1;
  null !== Lc && Xc(Lc) && (Lc = null);
  null !== Mc && Xc(Mc) && (Mc = null);
  null !== Nc && Xc(Nc) && (Nc = null);
  Oc.forEach(Zc);
  Pc.forEach(Zc);
}
function ad(a, b) {
  a.blockedOn === b && (a.blockedOn = null, Jc || (Jc = !0, ca.unstable_scheduleCallback(ca.unstable_NormalPriority, $c)));
}
function bd(a) {
  function b(b) {
    return ad(b, a);
  }
  if (0 < Kc.length) {
    ad(Kc[0], a);
    for (var c = 1; c < Kc.length; c++) {
      var d = Kc[c];
      d.blockedOn === a && (d.blockedOn = null);
    }
  }
  null !== Lc && ad(Lc, a);
  null !== Mc && ad(Mc, a);
  null !== Nc && ad(Nc, a);
  Oc.forEach(b);
  Pc.forEach(b);
  for (c = 0; c < Qc.length; c++) d = Qc[c], d.blockedOn === a && (d.blockedOn = null);
  for (; 0 < Qc.length && (c = Qc[0], null === c.blockedOn);) Vc(c), null === c.blockedOn && Qc.shift();
}
var cd = ua.ReactCurrentBatchConfig,
  dd = !0;
function ed(a, b, c, d) {
  var e = C,
    f = cd.transition;
  cd.transition = null;
  try {
    C = 1, fd(a, b, c, d);
  } finally {
    C = e, cd.transition = f;
  }
}
function gd(a, b, c, d) {
  var e = C,
    f = cd.transition;
  cd.transition = null;
  try {
    C = 4, fd(a, b, c, d);
  } finally {
    C = e, cd.transition = f;
  }
}
function fd(a, b, c, d) {
  if (dd) {
    var e = Yc(a, b, c, d);
    if (null === e) hd(a, b, d, id, c), Sc(a, d);else if (Uc(e, a, b, c, d)) d.stopPropagation();else if (Sc(a, d), b & 4 && -1 < Rc.indexOf(a)) {
      for (; null !== e;) {
        var f = Cb(e);
        null !== f && Ec(f);
        f = Yc(a, b, c, d);
        null === f && hd(a, b, d, id, c);
        if (f === e) break;
        e = f;
      }
      null !== e && d.stopPropagation();
    } else hd(a, b, d, null, c);
  }
}
var id = null;
function Yc(a, b, c, d) {
  id = null;
  a = xb(d);
  a = Wc(a);
  if (null !== a) if (b = Vb(a), null === b) a = null;else if (c = b.tag, 13 === c) {
    a = Wb(b);
    if (null !== a) return a;
    a = null;
  } else if (3 === c) {
    if (b.stateNode.current.memoizedState.isDehydrated) return 3 === b.tag ? b.stateNode.containerInfo : null;
    a = null;
  } else b !== a && (a = null);
  id = a;
  return null;
}
function jd(a) {
  switch (a) {
    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()) {
        case fc:
          return 1;
        case gc:
          return 4;
        case hc:
        case ic:
          return 16;
        case jc:
          return 536870912;
        default:
          return 16;
      }
    default:
      return 16;
  }
}
var kd = null,
  ld = null,
  md = null;
function nd() {
  if (md) return md;
  var a,
    b = ld,
    c = b.length,
    d,
    e = "value" in kd ? kd.value : kd.textContent,
    f = e.length;
  for (a = 0; a < c && b[a] === e[a]; a++);
  var g = c - a;
  for (d = 1; d <= g && b[c - d] === e[f - d]; d++);
  return md = e.slice(a, 1 < d ? 1 - d : void 0);
}
function od(a) {
  var b = a.keyCode;
  "charCode" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;
  10 === a && (a = 13);
  return 32 <= a || 13 === a ? a : 0;
}
function pd() {
  return !0;
}
function qd() {
  return !1;
}
function rd(a) {
  function b(b, d, e, f, g) {
    this._reactName = b;
    this._targetInst = e;
    this.type = d;
    this.nativeEvent = f;
    this.target = g;
    this.currentTarget = null;
    for (var c in a) a.hasOwnProperty(c) && (b = a[c], this[c] = b ? b(f) : f[c]);
    this.isDefaultPrevented = (null != f.defaultPrevented ? f.defaultPrevented : !1 === f.returnValue) ? pd : qd;
    this.isPropagationStopped = qd;
    return this;
  }
  A(b.prototype, {
    preventDefault: function () {
      this.defaultPrevented = !0;
      var a = this.nativeEvent;
      a && (a.preventDefault ? a.preventDefault() : "unknown" !== typeof a.returnValue && (a.returnValue = !1), this.isDefaultPrevented = pd);
    },
    stopPropagation: function () {
      var a = this.nativeEvent;
      a && (a.stopPropagation ? a.stopPropagation() : "unknown" !== typeof a.cancelBubble && (a.cancelBubble = !0), this.isPropagationStopped = pd);
    },
    persist: function () {},
    isPersistent: pd
  });
  return b;
}
var sd = {
    eventPhase: 0,
    bubbles: 0,
    cancelable: 0,
    timeStamp: function (a) {
      return a.timeStamp || Date.now();
    },
    defaultPrevented: 0,
    isTrusted: 0
  },
  td = rd(sd),
  ud = A({}, sd, {
    view: 0,
    detail: 0
  }),
  vd = rd(ud),
  wd,
  xd,
  yd,
  Ad = A({}, ud, {
    screenX: 0,
    screenY: 0,
    clientX: 0,
    clientY: 0,
    pageX: 0,
    pageY: 0,
    ctrlKey: 0,
    shiftKey: 0,
    altKey: 0,
    metaKey: 0,
    getModifierState: zd,
    button: 0,
    buttons: 0,
    relatedTarget: function (a) {
      return void 0 === a.relatedTarget ? a.fromElement === a.srcElement ? a.toElement : a.fromElement : a.relatedTarget;
    },
    movementX: function (a) {
      if ("movementX" in a) return a.movementX;
      a !== yd && (yd && "mousemove" === a.type ? (wd = a.screenX - yd.screenX, xd = a.screenY - yd.screenY) : xd = wd = 0, yd = a);
      return wd;
    },
    movementY: function (a) {
      return "movementY" in a ? a.movementY : xd;
    }
  }),
  Bd = rd(Ad),
  Cd = A({}, Ad, {
    dataTransfer: 0
  }),
  Dd = rd(Cd),
  Ed = A({}, ud, {
    relatedTarget: 0
  }),
  Fd = rd(Ed),
  Gd = A({}, sd, {
    animationName: 0,
    elapsedTime: 0,
    pseudoElement: 0
  }),
  Hd = rd(Gd),
  Id = A({}, sd, {
    clipboardData: function (a) {
      return "clipboardData" in a ? a.clipboardData : window.clipboardData;
    }
  }),
  Jd = rd(Id),
  Kd = A({}, sd, {
    data: 0
  }),
  Ld = rd(Kd),
  Md = {
    Esc: "Escape",
    Spacebar: " ",
    Left: "ArrowLeft",
    Up: "ArrowUp",
    Right: "ArrowRight",
    Down: "ArrowDown",
    Del: "Delete",
    Win: "OS",
    Menu: "ContextMenu",
    Apps: "ContextMenu",
    Scroll: "ScrollLock",
    MozPrintableKey: "Unidentified"
  },
  Nd = {
    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 = {
    Alt: "altKey",
    Control: "ctrlKey",
    Meta: "metaKey",
    Shift: "shiftKey"
  };
function Pd(a) {
  var b = this.nativeEvent;
  return b.getModifierState ? b.getModifierState(a) : (a = Od[a]) ? !!b[a] : !1;
}
function zd() {
  return Pd;
}
var Qd = A({}, ud, {
    key: function (a) {
      if (a.key) {
        var b = Md[a.key] || a.key;
        if ("Unidentified" !== b) return b;
      }
      return "keypress" === a.type ? (a = od(a), 13 === a ? "Enter" : String.fromCharCode(a)) : "keydown" === a.type || "keyup" === a.type ? Nd[a.keyCode] || "Unidentified" : "";
    },
    code: 0,
    location: 0,
    ctrlKey: 0,
    shiftKey: 0,
    altKey: 0,
    metaKey: 0,
    repeat: 0,
    locale: 0,
    getModifierState: zd,
    charCode: function (a) {
      return "keypress" === a.type ? od(a) : 0;
    },
    keyCode: function (a) {
      return "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
    },
    which: function (a) {
      return "keypress" === a.type ? od(a) : "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
    }
  }),
  Rd = rd(Qd),
  Sd = A({}, Ad, {
    pointerId: 0,
    width: 0,
    height: 0,
    pressure: 0,
    tangentialPressure: 0,
    tiltX: 0,
    tiltY: 0,
    twist: 0,
    pointerType: 0,
    isPrimary: 0
  }),
  Td = rd(Sd),
  Ud = A({}, ud, {
    touches: 0,
    targetTouches: 0,
    changedTouches: 0,
    altKey: 0,
    metaKey: 0,
    ctrlKey: 0,
    shiftKey: 0,
    getModifierState: zd
  }),
  Vd = rd(Ud),
  Wd = A({}, sd, {
    propertyName: 0,
    elapsedTime: 0,
    pseudoElement: 0
  }),
  Xd = rd(Wd),
  Yd = A({}, Ad, {
    deltaX: function (a) {
      return "deltaX" in a ? a.deltaX : "wheelDeltaX" in a ? -a.wheelDeltaX : 0;
    },
    deltaY: function (a) {
      return "deltaY" in a ? a.deltaY : "wheelDeltaY" in a ? -a.wheelDeltaY : "wheelDelta" in a ? -a.wheelDelta : 0;
    },
    deltaZ: 0,
    deltaMode: 0
  }),
  Zd = rd(Yd),
  $d = [9, 13, 27, 32],
  ae = ia && "CompositionEvent" in window,
  be = null;
ia && "documentMode" in document && (be = document.documentMode);
var ce = ia && "TextEvent" in window && !be,
  de = ia && (!ae || be && 8 < be && 11 >= be),
  ee = String.fromCharCode(32),
  fe = !1;
function ge(a, b) {
  switch (a) {
    case "keyup":
      return -1 !== $d.indexOf(b.keyCode);
    case "keydown":
      return 229 !== b.keyCode;
    case "keypress":
    case "mousedown":
    case "focusout":
      return !0;
    default:
      return !1;
  }
}
function he(a) {
  a = a.detail;
  return "object" === typeof a && "data" in a ? a.data : null;
}
var ie = !1;
function je(a, b) {
  switch (a) {
    case "compositionend":
      return he(b);
    case "keypress":
      if (32 !== b.which) return null;
      fe = !0;
      return ee;
    case "textInput":
      return a = b.data, a === ee && fe ? null : a;
    default:
      return null;
  }
}
function ke(a, b) {
  if (ie) return "compositionend" === a || !ae && ge(a, b) ? (a = nd(), md = ld = kd = null, ie = !1, a) : null;
  switch (a) {
    case "paste":
      return null;
    case "keypress":
      if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {
        if (b.char && 1 < b.char.length) return b.char;
        if (b.which) return String.fromCharCode(b.which);
      }
      return null;
    case "compositionend":
      return de && "ko" !== b.locale ? null : b.data;
    default:
      return null;
  }
}
var le = {
  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(a) {
  var b = a && a.nodeName && a.nodeName.toLowerCase();
  return "input" === b ? !!le[a.type] : "textarea" === b ? !0 : !1;
}
function ne(a, b, c, d) {
  Eb(d);
  b = oe(b, "onChange");
  0 < b.length && (c = new td("onChange", "change", null, c, d), a.push({
    event: c,
    listeners: b
  }));
}
var pe = null,
  qe = null;
function re(a) {
  se(a, 0);
}
function te(a) {
  var b = ue(a);
  if (Wa(b)) return a;
}
function ve(a, b) {
  if ("change" === a) return b;
}
var we = !1;
if (ia) {
  var xe;
  if (ia) {
    var ye = ("oninput" in document);
    if (!ye) {
      var ze = document.createElement("div");
      ze.setAttribute("oninput", "return;");
      ye = "function" === typeof ze.oninput;
    }
    xe = ye;
  } else xe = !1;
  we = xe && (!document.documentMode || 9 < document.documentMode);
}
function Ae() {
  pe && (pe.detachEvent("onpropertychange", Be), qe = pe = null);
}
function Be(a) {
  if ("value" === a.propertyName && te(qe)) {
    var b = [];
    ne(b, qe, a, xb(a));
    Jb(re, b);
  }
}
function Ce(a, b, c) {
  "focusin" === a ? (Ae(), pe = b, qe = c, pe.attachEvent("onpropertychange", Be)) : "focusout" === a && Ae();
}
function De(a) {
  if ("selectionchange" === a || "keyup" === a || "keydown" === a) return te(qe);
}
function Ee(a, b) {
  if ("click" === a) return te(b);
}
function Fe(a, b) {
  if ("input" === a || "change" === a) return te(b);
}
function Ge(a, b) {
  return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
}
var He = "function" === typeof Object.is ? Object.is : Ge;
function Ie(a, b) {
  if (He(a, b)) return !0;
  if ("object" !== typeof a || null === a || "object" !== typeof b || null === b) return !1;
  var c = Object.keys(a),
    d = Object.keys(b);
  if (c.length !== d.length) return !1;
  for (d = 0; d < c.length; d++) {
    var e = c[d];
    if (!ja.call(b, e) || !He(a[e], b[e])) return !1;
  }
  return !0;
}
function Je(a) {
  for (; a && a.firstChild;) a = a.firstChild;
  return a;
}
function Ke(a, b) {
  var c = Je(a);
  a = 0;
  for (var d; c;) {
    if (3 === c.nodeType) {
      d = a + c.textContent.length;
      if (a <= b && d >= b) return {
        node: c,
        offset: b - a
      };
      a = d;
    }
    a: {
      for (; c;) {
        if (c.nextSibling) {
          c = c.nextSibling;
          break a;
        }
        c = c.parentNode;
      }
      c = void 0;
    }
    c = Je(c);
  }
}
function Le(a, b) {
  return a && b ? a === b ? !0 : a && 3 === a.nodeType ? !1 : b && 3 === b.nodeType ? Le(a, b.parentNode) : "contains" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : !1 : !1;
}
function Me() {
  for (var a = window, b = Xa(); b instanceof a.HTMLIFrameElement;) {
    try {
      var c = "string" === typeof b.contentWindow.location.href;
    } catch (d) {
      c = !1;
    }
    if (c) a = b.contentWindow;else break;
    b = Xa(a.document);
  }
  return b;
}
function Ne(a) {
  var b = a && a.nodeName && a.nodeName.toLowerCase();
  return b && ("input" === b && ("text" === a.type || "search" === a.type || "tel" === a.type || "url" === a.type || "password" === a.type) || "textarea" === b || "true" === a.contentEditable);
}
function Oe(a) {
  var b = Me(),
    c = a.focusedElem,
    d = a.selectionRange;
  if (b !== c && c && c.ownerDocument && Le(c.ownerDocument.documentElement, c)) {
    if (null !== d && Ne(c)) if (b = d.start, a = d.end, void 0 === a && (a = b), "selectionStart" in c) c.selectionStart = b, c.selectionEnd = Math.min(a, c.value.length);else if (a = (b = c.ownerDocument || document) && b.defaultView || window, a.getSelection) {
      a = a.getSelection();
      var e = c.textContent.length,
        f = Math.min(d.start, e);
      d = void 0 === d.end ? f : Math.min(d.end, e);
      !a.extend && f > d && (e = d, d = f, f = e);
      e = Ke(c, f);
      var g = Ke(c, d);
      e && g && (1 !== a.rangeCount || a.anchorNode !== e.node || a.anchorOffset !== e.offset || a.focusNode !== g.node || a.focusOffset !== g.offset) && (b = b.createRange(), b.setStart(e.node, e.offset), a.removeAllRanges(), f > d ? (a.addRange(b), a.extend(g.node, g.offset)) : (b.setEnd(g.node, g.offset), a.addRange(b)));
    }
    b = [];
    for (a = c; a = a.parentNode;) 1 === a.nodeType && b.push({
      element: a,
      left: a.scrollLeft,
      top: a.scrollTop
    });
    "function" === typeof c.focus && c.focus();
    for (c = 0; c < b.length; c++) a = b[c], a.element.scrollLeft = a.left, a.element.scrollTop = a.top;
  }
}
var Pe = ia && "documentMode" in document && 11 >= document.documentMode,
  Qe = null,
  Re = null,
  Se = null,
  Te = !1;
function Ue(a, b, c) {
  var d = c.window === c ? c.document : 9 === c.nodeType ? c : c.ownerDocument;
  Te || null == Qe || Qe !== Xa(d) || (d = Qe, "selectionStart" in d && Ne(d) ? d = {
    start: d.selectionStart,
    end: d.selectionEnd
  } : (d = (d.ownerDocument && d.ownerDocument.defaultView || window).getSelection(), d = {
    anchorNode: d.anchorNode,
    anchorOffset: d.anchorOffset,
    focusNode: d.focusNode,
    focusOffset: d.focusOffset
  }), Se && Ie(Se, d) || (Se = d, d = oe(Re, "onSelect"), 0 < d.length && (b = new td("onSelect", "select", null, b, c), a.push({
    event: b,
    listeners: d
  }), b.target = Qe)));
}
function Ve(a, b) {
  var c = {};
  c[a.toLowerCase()] = b.toLowerCase();
  c["Webkit" + a] = "webkit" + b;
  c["Moz" + a] = "moz" + b;
  return c;
}
var We = {
    animationend: Ve("Animation", "AnimationEnd"),
    animationiteration: Ve("Animation", "AnimationIteration"),
    animationstart: Ve("Animation", "AnimationStart"),
    transitionend: Ve("Transition", "TransitionEnd")
  },
  Xe = {},
  Ye = {};
ia && (Ye = document.createElement("div").style, "AnimationEvent" in window || (delete We.animationend.animation, delete We.animationiteration.animation, delete We.animationstart.animation), "TransitionEvent" in window || delete We.transitionend.transition);
function Ze(a) {
  if (Xe[a]) return Xe[a];
  if (!We[a]) return a;
  var b = We[a],
    c;
  for (c in b) if (b.hasOwnProperty(c) && c in Ye) return Xe[a] = b[c];
  return a;
}
var $e = Ze("animationend"),
  af = Ze("animationiteration"),
  bf = Ze("animationstart"),
  cf = Ze("transitionend"),
  df = new Map(),
  ef = "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(a, b) {
  df.set(a, b);
  fa(b, [a]);
}
for (var gf = 0; gf < ef.length; gf++) {
  var hf = ef[gf],
    jf = hf.toLowerCase(),
    kf = hf[0].toUpperCase() + hf.slice(1);
  ff(jf, "on" + kf);
}
ff($e, "onAnimationEnd");
ff(af, "onAnimationIteration");
ff(bf, "onAnimationStart");
ff("dblclick", "onDoubleClick");
ff("focusin", "onFocus");
ff("focusout", "onBlur");
ff(cf, "onTransitionEnd");
ha("onMouseEnter", ["mouseout", "mouseover"]);
ha("onMouseLeave", ["mouseout", "mouseover"]);
ha("onPointerEnter", ["pointerout", "pointerover"]);
ha("onPointerLeave", ["pointerout", "pointerover"]);
fa("onChange", "change click focusin focusout input keydown keyup selectionchange".split(" "));
fa("onSelect", "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));
fa("onBeforeInput", ["compositionend", "keypress", "textInput", "paste"]);
fa("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown".split(" "));
fa("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" "));
fa("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" "));
var lf = "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 = new Set("cancel close invalid load scroll toggle".split(" ").concat(lf));
function nf(a, b, c) {
  var d = a.type || "unknown-event";
  a.currentTarget = c;
  Ub(d, b, void 0, a);
  a.currentTarget = null;
}
function se(a, b) {
  b = 0 !== (b & 4);
  for (var c = 0; c < a.length; c++) {
    var d = a[c],
      e = d.event;
    d = d.listeners;
    a: {
      var f = void 0;
      if (b) for (var g = d.length - 1; 0 <= g; g--) {
        var h = d[g],
          k = h.instance,
          l = h.currentTarget;
        h = h.listener;
        if (k !== f && e.isPropagationStopped()) break a;
        nf(e, h, l);
        f = k;
      } else for (g = 0; g < d.length; g++) {
        h = d[g];
        k = h.instance;
        l = h.currentTarget;
        h = h.listener;
        if (k !== f && e.isPropagationStopped()) break a;
        nf(e, h, l);
        f = k;
      }
    }
  }
  if (Qb) throw a = Rb, Qb = !1, Rb = null, a;
}
function D(a, b) {
  var c = b[of];
  void 0 === c && (c = b[of] = new Set());
  var d = a + "__bubble";
  c.has(d) || (pf(b, a, 2, !1), c.add(d));
}
function qf(a, b, c) {
  var d = 0;
  b && (d |= 4);
  pf(c, a, d, b);
}
var rf = "_reactListening" + Math.random().toString(36).slice(2);
function sf(a) {
  if (!a[rf]) {
    a[rf] = !0;
    da.forEach(function (b) {
      "selectionchange" !== b && (mf.has(b) || qf(b, !1, a), qf(b, !0, a));
    });
    var b = 9 === a.nodeType ? a : a.ownerDocument;
    null === b || b[rf] || (b[rf] = !0, qf("selectionchange", !1, b));
  }
}
function pf(a, b, c, d) {
  switch (jd(b)) {
    case 1:
      var e = ed;
      break;
    case 4:
      e = gd;
      break;
    default:
      e = fd;
  }
  c = e.bind(null, b, c, a);
  e = void 0;
  !Lb || "touchstart" !== b && "touchmove" !== b && "wheel" !== b || (e = !0);
  d ? void 0 !== e ? a.addEventListener(b, c, {
    capture: !0,
    passive: e
  }) : a.addEventListener(b, c, !0) : void 0 !== e ? a.addEventListener(b, c, {
    passive: e
  }) : a.addEventListener(b, c, !1);
}
function hd(a, b, c, d, e) {
  var f = d;
  if (0 === (b & 1) && 0 === (b & 2) && null !== d) a: for (;;) {
    if (null === d) return;
    var g = d.tag;
    if (3 === g || 4 === g) {
      var h = d.stateNode.containerInfo;
      if (h === e || 8 === h.nodeType && h.parentNode === e) break;
      if (4 === g) for (g = d.return; null !== g;) {
        var k = g.tag;
        if (3 === k || 4 === k) if (k = g.stateNode.containerInfo, k === e || 8 === k.nodeType && k.parentNode === e) return;
        g = g.return;
      }
      for (; null !== h;) {
        g = Wc(h);
        if (null === g) return;
        k = g.tag;
        if (5 === k || 6 === k) {
          d = f = g;
          continue a;
        }
        h = h.parentNode;
      }
    }
    d = d.return;
  }
  Jb(function () {
    var d = f,
      e = xb(c),
      g = [];
    a: {
      var h = df.get(a);
      if (void 0 !== h) {
        var k = td,
          n = a;
        switch (a) {
          case "keypress":
            if (0 === od(c)) break a;
          case "keydown":
          case "keyup":
            k = Rd;
            break;
          case "focusin":
            n = "focus";
            k = Fd;
            break;
          case "focusout":
            n = "blur";
            k = Fd;
            break;
          case "beforeblur":
          case "afterblur":
            k = Fd;
            break;
          case "click":
            if (2 === c.button) break a;
          case "auxclick":
          case "dblclick":
          case "mousedown":
          case "mousemove":
          case "mouseup":
          case "mouseout":
          case "mouseover":
          case "contextmenu":
            k = Bd;
            break;
          case "drag":
          case "dragend":
          case "dragenter":
          case "dragexit":
          case "dragleave":
          case "dragover":
          case "dragstart":
          case "drop":
            k = Dd;
            break;
          case "touchcancel":
          case "touchend":
          case "touchmove":
          case "touchstart":
            k = Vd;
            break;
          case $e:
          case af:
          case bf:
            k = Hd;
            break;
          case cf:
            k = Xd;
            break;
          case "scroll":
            k = vd;
            break;
          case "wheel":
            k = Zd;
            break;
          case "copy":
          case "cut":
          case "paste":
            k = Jd;
            break;
          case "gotpointercapture":
          case "lostpointercapture":
          case "pointercancel":
          case "pointerdown":
          case "pointermove":
          case "pointerout":
          case "pointerover":
          case "pointerup":
            k = Td;
        }
        var t = 0 !== (b & 4),
          J = !t && "scroll" === a,
          x = t ? null !== h ? h + "Capture" : null : h;
        t = [];
        for (var w = d, u; null !== w;) {
          u = w;
          var F = u.stateNode;
          5 === u.tag && null !== F && (u = F, null !== x && (F = Kb(w, x), null != F && t.push(tf(w, F, u))));
          if (J) break;
          w = w.return;
        }
        0 < t.length && (h = new k(h, n, null, c, e), g.push({
          event: h,
          listeners: t
        }));
      }
    }
    if (0 === (b & 7)) {
      a: {
        h = "mouseover" === a || "pointerover" === a;
        k = "mouseout" === a || "pointerout" === a;
        if (h && c !== wb && (n = c.relatedTarget || c.fromElement) && (Wc(n) || n[uf])) break a;
        if (k || h) {
          h = e.window === e ? e : (h = e.ownerDocument) ? h.defaultView || h.parentWindow : window;
          if (k) {
            if (n = c.relatedTarget || c.toElement, k = d, n = n ? Wc(n) : null, null !== n && (J = Vb(n), n !== J || 5 !== n.tag && 6 !== n.tag)) n = null;
          } else k = null, n = d;
          if (k !== n) {
            t = Bd;
            F = "onMouseLeave";
            x = "onMouseEnter";
            w = "mouse";
            if ("pointerout" === a || "pointerover" === a) t = Td, F = "onPointerLeave", x = "onPointerEnter", w = "pointer";
            J = null == k ? h : ue(k);
            u = null == n ? h : ue(n);
            h = new t(F, w + "leave", k, c, e);
            h.target = J;
            h.relatedTarget = u;
            F = null;
            Wc(e) === d && (t = new t(x, w + "enter", n, c, e), t.target = u, t.relatedTarget = J, F = t);
            J = F;
            if (k && n) b: {
              t = k;
              x = n;
              w = 0;
              for (u = t; u; u = vf(u)) w++;
              u = 0;
              for (F = x; F; F = vf(F)) u++;
              for (; 0 < w - u;) t = vf(t), w--;
              for (; 0 < u - w;) x = vf(x), u--;
              for (; w--;) {
                if (t === x || null !== x && t === x.alternate) break b;
                t = vf(t);
                x = vf(x);
              }
              t = null;
            } else t = null;
            null !== k && wf(g, h, k, t, !1);
            null !== n && null !== J && wf(g, J, n, t, !0);
          }
        }
      }
      a: {
        h = d ? ue(d) : window;
        k = h.nodeName && h.nodeName.toLowerCase();
        if ("select" === k || "input" === k && "file" === h.type) var na = ve;else if (me(h)) {
          if (we) na = Fe;else {
            na = De;
            var xa = Ce;
          }
        } else (k = h.nodeName) && "input" === k.toLowerCase() && ("checkbox" === h.type || "radio" === h.type) && (na = Ee);
        if (na && (na = na(a, d))) {
          ne(g, na, c, e);
          break a;
        }
        xa && xa(a, h, d);
        "focusout" === a && (xa = h._wrapperState) && xa.controlled && "number" === h.type && cb(h, "number", h.value);
      }
      xa = d ? ue(d) : window;
      switch (a) {
        case "focusin":
          if (me(xa) || "true" === xa.contentEditable) Qe = xa, Re = d, Se = null;
          break;
        case "focusout":
          Se = Re = Qe = null;
          break;
        case "mousedown":
          Te = !0;
          break;
        case "contextmenu":
        case "mouseup":
        case "dragend":
          Te = !1;
          Ue(g, c, e);
          break;
        case "selectionchange":
          if (Pe) break;
        case "keydown":
        case "keyup":
          Ue(g, c, e);
      }
      var $a;
      if (ae) b: {
        switch (a) {
          case "compositionstart":
            var ba = "onCompositionStart";
            break b;
          case "compositionend":
            ba = "onCompositionEnd";
            break b;
          case "compositionupdate":
            ba = "onCompositionUpdate";
            break b;
        }
        ba = void 0;
      } else ie ? ge(a, c) && (ba = "onCompositionEnd") : "keydown" === a && 229 === c.keyCode && (ba = "onCompositionStart");
      ba && (de && "ko" !== c.locale && (ie || "onCompositionStart" !== ba ? "onCompositionEnd" === ba && ie && ($a = nd()) : (kd = e, ld = "value" in kd ? kd.value : kd.textContent, ie = !0)), xa = oe(d, ba), 0 < xa.length && (ba = new Ld(ba, a, null, c, e), g.push({
        event: ba,
        listeners: xa
      }), $a ? ba.data = $a : ($a = he(c), null !== $a && (ba.data = $a))));
      if ($a = ce ? je(a, c) : ke(a, c)) d = oe(d, "onBeforeInput"), 0 < d.length && (e = new Ld("onBeforeInput", "beforeinput", null, c, e), g.push({
        event: e,
        listeners: d
      }), e.data = $a);
    }
    se(g, b);
  });
}
function tf(a, b, c) {
  return {
    instance: a,
    listener: b,
    currentTarget: c
  };
}
function oe(a, b) {
  for (var c = b + "Capture", d = []; null !== a;) {
    var e = a,
      f = e.stateNode;
    5 === e.tag && null !== f && (e = f, f = Kb(a, c), null != f && d.unshift(tf(a, f, e)), f = Kb(a, b), null != f && d.push(tf(a, f, e)));
    a = a.return;
  }
  return d;
}
function vf(a) {
  if (null === a) return null;
  do a = a.return; while (a && 5 !== a.tag);
  return a ? a : null;
}
function wf(a, b, c, d, e) {
  for (var f = b._reactName, g = []; null !== c && c !== d;) {
    var h = c,
      k = h.alternate,
      l = h.stateNode;
    if (null !== k && k === d) break;
    5 === h.tag && null !== l && (h = l, e ? (k = Kb(c, f), null != k && g.unshift(tf(c, k, h))) : e || (k = Kb(c, f), null != k && g.push(tf(c, k, h))));
    c = c.return;
  }
  0 !== g.length && a.push({
    event: b,
    listeners: g
  });
}
var xf = /\r\n?/g,
  yf = /\u0000|\uFFFD/g;
function zf(a) {
  return ("string" === typeof a ? a : "" + a).replace(xf, "\n").replace(yf, "");
}
function Af(a, b, c) {
  b = zf(b);
  if (zf(a) !== b && c) throw Error(p(425));
}
function Bf() {}
var Cf = null,
  Df = null;
function Ef(a, b) {
  return "textarea" === a || "noscript" === a || "string" === typeof b.children || "number" === typeof b.children || "object" === typeof b.dangerouslySetInnerHTML && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;
}
var Ff = "function" === typeof setTimeout ? setTimeout : void 0,
  Gf = "function" === typeof clearTimeout ? clearTimeout : void 0,
  Hf = "function" === typeof Promise ? Promise : void 0,
  Jf = "function" === typeof queueMicrotask ? queueMicrotask : "undefined" !== typeof Hf ? function (a) {
    return Hf.resolve(null).then(a).catch(If);
  } : Ff;
function If(a) {
  setTimeout(function () {
    throw a;
  });
}
function Kf(a, b) {
  var c = b,
    d = 0;
  do {
    var e = c.nextSibling;
    a.removeChild(c);
    if (e && 8 === e.nodeType) if (c = e.data, "/$" === c) {
      if (0 === d) {
        a.removeChild(e);
        bd(b);
        return;
      }
      d--;
    } else "$" !== c && "$?" !== c && "$!" !== c || d++;
    c = e;
  } while (c);
  bd(b);
}
function Lf(a) {
  for (; null != a; a = a.nextSibling) {
    var b = a.nodeType;
    if (1 === b || 3 === b) break;
    if (8 === b) {
      b = a.data;
      if ("$" === b || "$!" === b || "$?" === b) break;
      if ("/$" === b) return null;
    }
  }
  return a;
}
function Mf(a) {
  a = a.previousSibling;
  for (var b = 0; a;) {
    if (8 === a.nodeType) {
      var c = a.data;
      if ("$" === c || "$!" === c || "$?" === c) {
        if (0 === b) return a;
        b--;
      } else "/$" === c && b++;
    }
    a = a.previousSibling;
  }
  return null;
}
var Nf = Math.random().toString(36).slice(2),
  Of = "__reactFiber$" + Nf,
  Pf = "__reactProps$" + Nf,
  uf = "__reactContainer$" + Nf,
  of = "__reactEvents$" + Nf,
  Qf = "__reactListeners$" + Nf,
  Rf = "__reactHandles$" + Nf;
function Wc(a) {
  var b = a[Of];
  if (b) return b;
  for (var c = a.parentNode; c;) {
    if (b = c[uf] || c[Of]) {
      c = b.alternate;
      if (null !== b.child || null !== c && null !== c.child) for (a = Mf(a); null !== a;) {
        if (c = a[Of]) return c;
        a = Mf(a);
      }
      return b;
    }
    a = c;
    c = a.parentNode;
  }
  return null;
}
function Cb(a) {
  a = a[Of] || a[uf];
  return !a || 5 !== a.tag && 6 !== a.tag && 13 !== a.tag && 3 !== a.tag ? null : a;
}
function ue(a) {
  if (5 === a.tag || 6 === a.tag) return a.stateNode;
  throw Error(p(33));
}
function Db(a) {
  return a[Pf] || null;
}
var Sf = [],
  Tf = -1;
function Uf(a) {
  return {
    current: a
  };
}
function E(a) {
  0 > Tf || (a.current = Sf[Tf], Sf[Tf] = null, Tf--);
}
function G(a, b) {
  Tf++;
  Sf[Tf] = a.current;
  a.current = b;
}
var Vf = {},
  H = Uf(Vf),
  Wf = Uf(!1),
  Xf = Vf;
function Yf(a, b) {
  var c = a.type.contextTypes;
  if (!c) return Vf;
  var d = a.stateNode;
  if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;
  var e = {},
    f;
  for (f in c) e[f] = b[f];
  d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);
  return e;
}
function Zf(a) {
  a = a.childContextTypes;
  return null !== a && void 0 !== a;
}
function $f() {
  E(Wf);
  E(H);
}
function ag(a, b, c) {
  if (H.current !== Vf) throw Error(p(168));
  G(H, b);
  G(Wf, c);
}
function bg(a, b, c) {
  var d = a.stateNode;
  b = b.childContextTypes;
  if ("function" !== typeof d.getChildContext) return c;
  d = d.getChildContext();
  for (var e in d) if (!(e in b)) throw Error(p(108, Ra(a) || "Unknown", e));
  return A({}, c, d);
}
function cg(a) {
  a = (a = a.stateNode) && a.__reactInternalMemoizedMergedChildContext || Vf;
  Xf = H.current;
  G(H, a);
  G(Wf, Wf.current);
  return !0;
}
function dg(a, b, c) {
  var d = a.stateNode;
  if (!d) throw Error(p(169));
  c ? (a = bg(a, b, Xf), d.__reactInternalMemoizedMergedChildContext = a, E(Wf), E(H), G(H, a)) : E(Wf);
  G(Wf, c);
}
var eg = null,
  fg = !1,
  gg = !1;
function hg(a) {
  null === eg ? eg = [a] : eg.push(a);
}
function ig(a) {
  fg = !0;
  hg(a);
}
function jg() {
  if (!gg && null !== eg) {
    gg = !0;
    var a = 0,
      b = C;
    try {
      var c = eg;
      for (C = 1; a < c.length; a++) {
        var d = c[a];
        do d = d(!0); while (null !== d);
      }
      eg = null;
      fg = !1;
    } catch (e) {
      throw null !== eg && (eg = eg.slice(a + 1)), ac(fc, jg), e;
    } finally {
      C = b, gg = !1;
    }
  }
  return null;
}
var kg = [],
  lg = 0,
  mg = null,
  ng = 0,
  og = [],
  pg = 0,
  qg = null,
  rg = 1,
  sg = "";
function tg(a, b) {
  kg[lg++] = ng;
  kg[lg++] = mg;
  mg = a;
  ng = b;
}
function ug(a, b, c) {
  og[pg++] = rg;
  og[pg++] = sg;
  og[pg++] = qg;
  qg = a;
  var d = rg;
  a = sg;
  var e = 32 - oc(d) - 1;
  d &= ~(1 << e);
  c += 1;
  var f = 32 - oc(b) + e;
  if (30 < f) {
    var g = e - e % 5;
    f = (d & (1 << g) - 1).toString(32);
    d >>= g;
    e -= g;
    rg = 1 << 32 - oc(b) + e | c << e | d;
    sg = f + a;
  } else rg = 1 << f | c << e | d, sg = a;
}
function vg(a) {
  null !== a.return && (tg(a, 1), ug(a, 1, 0));
}
function wg(a) {
  for (; a === mg;) mg = kg[--lg], kg[lg] = null, ng = kg[--lg], kg[lg] = null;
  for (; a === qg;) qg = og[--pg], og[pg] = null, sg = og[--pg], og[pg] = null, rg = og[--pg], og[pg] = null;
}
var xg = null,
  yg = null,
  I = !1,
  zg = null;
function Ag(a, b) {
  var c = Bg(5, null, null, 0);
  c.elementType = "DELETED";
  c.stateNode = b;
  c.return = a;
  b = a.deletions;
  null === b ? (a.deletions = [c], a.flags |= 16) : b.push(c);
}
function Cg(a, b) {
  switch (a.tag) {
    case 5:
      var c = a.type;
      b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;
      return null !== b ? (a.stateNode = b, xg = a, yg = Lf(b.firstChild), !0) : !1;
    case 6:
      return b = "" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, xg = a, yg = null, !0) : !1;
    case 13:
      return b = 8 !== b.nodeType ? null : b, null !== b ? (c = null !== qg ? {
        id: rg,
        overflow: sg
      } : null, a.memoizedState = {
        dehydrated: b,
        treeContext: c,
        retryLane: 1073741824
      }, c = Bg(18, null, null, 0), c.stateNode = b, c.return = a, a.child = c, xg = a, yg = null, !0) : !1;
    default:
      return !1;
  }
}
function Dg(a) {
  return 0 !== (a.mode & 1) && 0 === (a.flags & 128);
}
function Eg(a) {
  if (I) {
    var b = yg;
    if (b) {
      var c = b;
      if (!Cg(a, b)) {
        if (Dg(a)) throw Error(p(418));
        b = Lf(c.nextSibling);
        var d = xg;
        b && Cg(a, b) ? Ag(d, c) : (a.flags = a.flags & -4097 | 2, I = !1, xg = a);
      }
    } else {
      if (Dg(a)) throw Error(p(418));
      a.flags = a.flags & -4097 | 2;
      I = !1;
      xg = a;
    }
  }
}
function Fg(a) {
  for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 13 !== a.tag;) a = a.return;
  xg = a;
}
function Gg(a) {
  if (a !== xg) return !1;
  if (!I) return Fg(a), I = !0, !1;
  var b;
  (b = 3 !== a.tag) && !(b = 5 !== a.tag) && (b = a.type, b = "head" !== b && "body" !== b && !Ef(a.type, a.memoizedProps));
  if (b && (b = yg)) {
    if (Dg(a)) throw Hg(), Error(p(418));
    for (; b;) Ag(a, b), b = Lf(b.nextSibling);
  }
  Fg(a);
  if (13 === a.tag) {
    a = a.memoizedState;
    a = null !== a ? a.dehydrated : null;
    if (!a) throw Error(p(317));
    a: {
      a = a.nextSibling;
      for (b = 0; a;) {
        if (8 === a.nodeType) {
          var c = a.data;
          if ("/$" === c) {
            if (0 === b) {
              yg = Lf(a.nextSibling);
              break a;
            }
            b--;
          } else "$" !== c && "$!" !== c && "$?" !== c || b++;
        }
        a = a.nextSibling;
      }
      yg = null;
    }
  } else yg = xg ? Lf(a.stateNode.nextSibling) : null;
  return !0;
}
function Hg() {
  for (var a = yg; a;) a = Lf(a.nextSibling);
}
function Ig() {
  yg = xg = null;
  I = !1;
}
function Jg(a) {
  null === zg ? zg = [a] : zg.push(a);
}
var Kg = ua.ReactCurrentBatchConfig;
function Lg(a, b) {
  if (a && a.defaultProps) {
    b = A({}, b);
    a = a.defaultProps;
    for (var c in a) void 0 === b[c] && (b[c] = a[c]);
    return b;
  }
  return b;
}
var Mg = Uf(null),
  Ng = null,
  Og = null,
  Pg = null;
function Qg() {
  Pg = Og = Ng = null;
}
function Rg(a) {
  var b = Mg.current;
  E(Mg);
  a._currentValue = b;
}
function Sg(a, b, c) {
  for (; null !== a;) {
    var d = a.alternate;
    (a.childLanes & b) !== b ? (a.childLanes |= b, null !== d && (d.childLanes |= b)) : null !== d && (d.childLanes & b) !== b && (d.childLanes |= b);
    if (a === c) break;
    a = a.return;
  }
}
function Tg(a, b) {
  Ng = a;
  Pg = Og = null;
  a = a.dependencies;
  null !== a && null !== a.firstContext && (0 !== (a.lanes & b) && (Ug = !0), a.firstContext = null);
}
function Vg(a) {
  var b = a._currentValue;
  if (Pg !== a) if (a = {
    context: a,
    memoizedValue: b,
    next: null
  }, null === Og) {
    if (null === Ng) throw Error(p(308));
    Og = a;
    Ng.dependencies = {
      lanes: 0,
      firstContext: a
    };
  } else Og = Og.next = a;
  return b;
}
var Wg = null;
function Xg(a) {
  null === Wg ? Wg = [a] : Wg.push(a);
}
function Yg(a, b, c, d) {
  var e = b.interleaved;
  null === e ? (c.next = c, Xg(b)) : (c.next = e.next, e.next = c);
  b.interleaved = c;
  return Zg(a, d);
}
function Zg(a, b) {
  a.lanes |= b;
  var c = a.alternate;
  null !== c && (c.lanes |= b);
  c = a;
  for (a = a.return; null !== a;) a.childLanes |= b, c = a.alternate, null !== c && (c.childLanes |= b), c = a, a = a.return;
  return 3 === c.tag ? c.stateNode : null;
}
var $g = !1;
function ah(a) {
  a.updateQueue = {
    baseState: a.memoizedState,
    firstBaseUpdate: null,
    lastBaseUpdate: null,
    shared: {
      pending: null,
      interleaved: null,
      lanes: 0
    },
    effects: null
  };
}
function bh(a, b) {
  a = a.updateQueue;
  b.updateQueue === a && (b.updateQueue = {
    baseState: a.baseState,
    firstBaseUpdate: a.firstBaseUpdate,
    lastBaseUpdate: a.lastBaseUpdate,
    shared: a.shared,
    effects: a.effects
  });
}
function ch(a, b) {
  return {
    eventTime: a,
    lane: b,
    tag: 0,
    payload: null,
    callback: null,
    next: null
  };
}
function dh(a, b, c) {
  var d = a.updateQueue;
  if (null === d) return null;
  d = d.shared;
  if (0 !== (K & 2)) {
    var e = d.pending;
    null === e ? b.next = b : (b.next = e.next, e.next = b);
    d.pending = b;
    return Zg(a, c);
  }
  e = d.interleaved;
  null === e ? (b.next = b, Xg(d)) : (b.next = e.next, e.next = b);
  d.interleaved = b;
  return Zg(a, c);
}
function eh(a, b, c) {
  b = b.updateQueue;
  if (null !== b && (b = b.shared, 0 !== (c & 4194240))) {
    var d = b.lanes;
    d &= a.pendingLanes;
    c |= d;
    b.lanes = c;
    Cc(a, c);
  }
}
function fh(a, b) {
  var c = a.updateQueue,
    d = a.alternate;
  if (null !== d && (d = d.updateQueue, c === d)) {
    var e = null,
      f = null;
    c = c.firstBaseUpdate;
    if (null !== c) {
      do {
        var g = {
          eventTime: c.eventTime,
          lane: c.lane,
          tag: c.tag,
          payload: c.payload,
          callback: c.callback,
          next: null
        };
        null === f ? e = f = g : f = f.next = g;
        c = c.next;
      } while (null !== c);
      null === f ? e = f = b : f = f.next = b;
    } else e = f = b;
    c = {
      baseState: d.baseState,
      firstBaseUpdate: e,
      lastBaseUpdate: f,
      shared: d.shared,
      effects: d.effects
    };
    a.updateQueue = c;
    return;
  }
  a = c.lastBaseUpdate;
  null === a ? c.firstBaseUpdate = b : a.next = b;
  c.lastBaseUpdate = b;
}
function gh(a, b, c, d) {
  var e = a.updateQueue;
  $g = !1;
  var f = e.firstBaseUpdate,
    g = e.lastBaseUpdate,
    h = e.shared.pending;
  if (null !== h) {
    e.shared.pending = null;
    var k = h,
      l = k.next;
    k.next = null;
    null === g ? f = l : g.next = l;
    g = k;
    var m = a.alternate;
    null !== m && (m = m.updateQueue, h = m.lastBaseUpdate, h !== g && (null === h ? m.firstBaseUpdate = l : h.next = l, m.lastBaseUpdate = k));
  }
  if (null !== f) {
    var q = e.baseState;
    g = 0;
    m = l = k = null;
    h = f;
    do {
      var r = h.lane,
        y = h.eventTime;
      if ((d & r) === r) {
        null !== m && (m = m.next = {
          eventTime: y,
          lane: 0,
          tag: h.tag,
          payload: h.payload,
          callback: h.callback,
          next: null
        });
        a: {
          var n = a,
            t = h;
          r = b;
          y = c;
          switch (t.tag) {
            case 1:
              n = t.payload;
              if ("function" === typeof n) {
                q = n.call(y, q, r);
                break a;
              }
              q = n;
              break a;
            case 3:
              n.flags = n.flags & -65537 | 128;
            case 0:
              n = t.payload;
              r = "function" === typeof n ? n.call(y, q, r) : n;
              if (null === r || void 0 === r) break a;
              q = A({}, q, r);
              break a;
            case 2:
              $g = !0;
          }
        }
        null !== h.callback && 0 !== h.lane && (a.flags |= 64, r = e.effects, null === r ? e.effects = [h] : r.push(h));
      } else y = {
        eventTime: y,
        lane: r,
        tag: h.tag,
        payload: h.payload,
        callback: h.callback,
        next: null
      }, null === m ? (l = m = y, k = q) : m = m.next = y, g |= r;
      h = h.next;
      if (null === h) if (h = e.shared.pending, null === h) break;else r = h, h = r.next, r.next = null, e.lastBaseUpdate = r, e.shared.pending = null;
    } while (1);
    null === m && (k = q);
    e.baseState = k;
    e.firstBaseUpdate = l;
    e.lastBaseUpdate = m;
    b = e.shared.interleaved;
    if (null !== b) {
      e = b;
      do g |= e.lane, e = e.next; while (e !== b);
    } else null === f && (e.shared.lanes = 0);
    hh |= g;
    a.lanes = g;
    a.memoizedState = q;
  }
}
function ih(a, b, c) {
  a = b.effects;
  b.effects = null;
  if (null !== a) for (b = 0; b < a.length; b++) {
    var d = a[b],
      e = d.callback;
    if (null !== e) {
      d.callback = null;
      d = c;
      if ("function" !== typeof e) throw Error(p(191, e));
      e.call(d);
    }
  }
}
var jh = new aa.Component().refs;
function kh(a, b, c, d) {
  b = a.memoizedState;
  c = c(d, b);
  c = null === c || void 0 === c ? b : A({}, b, c);
  a.memoizedState = c;
  0 === a.lanes && (a.updateQueue.baseState = c);
}
var nh = {
  isMounted: function (a) {
    return (a = a._reactInternals) ? Vb(a) === a : !1;
  },
  enqueueSetState: function (a, b, c) {
    a = a._reactInternals;
    var d = L(),
      e = lh(a),
      f = ch(d, e);
    f.payload = b;
    void 0 !== c && null !== c && (f.callback = c);
    b = dh(a, f, e);
    null !== b && (mh(b, a, e, d), eh(b, a, e));
  },
  enqueueReplaceState: function (a, b, c) {
    a = a._reactInternals;
    var d = L(),
      e = lh(a),
      f = ch(d, e);
    f.tag = 1;
    f.payload = b;
    void 0 !== c && null !== c && (f.callback = c);
    b = dh(a, f, e);
    null !== b && (mh(b, a, e, d), eh(b, a, e));
  },
  enqueueForceUpdate: function (a, b) {
    a = a._reactInternals;
    var c = L(),
      d = lh(a),
      e = ch(c, d);
    e.tag = 2;
    void 0 !== b && null !== b && (e.callback = b);
    b = dh(a, e, d);
    null !== b && (mh(b, a, d, c), eh(b, a, d));
  }
};
function oh(a, b, c, d, e, f, g) {
  a = a.stateNode;
  return "function" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !Ie(c, d) || !Ie(e, f) : !0;
}
function ph(a, b, c) {
  var d = !1,
    e = Vf;
  var f = b.contextType;
  "object" === typeof f && null !== f ? f = Vg(f) : (e = Zf(b) ? Xf : H.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Yf(a, e) : Vf);
  b = new b(c, f);
  a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;
  b.updater = nh;
  a.stateNode = b;
  b._reactInternals = a;
  d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);
  return b;
}
function qh(a, b, c, d) {
  a = b.state;
  "function" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);
  "function" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);
  b.state !== a && nh.enqueueReplaceState(b, b.state, null);
}
function rh(a, b, c, d) {
  var e = a.stateNode;
  e.props = c;
  e.state = a.memoizedState;
  e.refs = jh;
  ah(a);
  var f = b.contextType;
  "object" === typeof f && null !== f ? e.context = Vg(f) : (f = Zf(b) ? Xf : H.current, e.context = Yf(a, f));
  e.state = a.memoizedState;
  f = b.getDerivedStateFromProps;
  "function" === typeof f && (kh(a, b, f, c), e.state = a.memoizedState);
  "function" === typeof b.getDerivedStateFromProps || "function" === typeof e.getSnapshotBeforeUpdate || "function" !== typeof e.UNSAFE_componentWillMount && "function" !== typeof e.componentWillMount || (b = e.state, "function" === typeof e.componentWillMount && e.componentWillMount(), "function" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && nh.enqueueReplaceState(e, e.state, null), gh(a, c, e, d), e.state = a.memoizedState);
  "function" === typeof e.componentDidMount && (a.flags |= 4194308);
}
function sh(a, b, c) {
  a = c.ref;
  if (null !== a && "function" !== typeof a && "object" !== typeof a) {
    if (c._owner) {
      c = c._owner;
      if (c) {
        if (1 !== c.tag) throw Error(p(309));
        var d = c.stateNode;
      }
      if (!d) throw Error(p(147, a));
      var e = d,
        f = "" + a;
      if (null !== b && null !== b.ref && "function" === typeof b.ref && b.ref._stringRef === f) return b.ref;
      b = function (a) {
        var b = e.refs;
        b === jh && (b = e.refs = {});
        null === a ? delete b[f] : b[f] = a;
      };
      b._stringRef = f;
      return b;
    }
    if ("string" !== typeof a) throw Error(p(284));
    if (!c._owner) throw Error(p(290, a));
  }
  return a;
}
function th(a, b) {
  a = Object.prototype.toString.call(b);
  throw Error(p(31, "[object Object]" === a ? "object with keys {" + Object.keys(b).join(", ") + "}" : a));
}
function uh(a) {
  var b = a._init;
  return b(a._payload);
}
function vh(a) {
  function b(b, c) {
    if (a) {
      var d = b.deletions;
      null === d ? (b.deletions = [c], b.flags |= 16) : d.push(c);
    }
  }
  function c(c, d) {
    if (!a) return null;
    for (; null !== d;) b(c, d), d = d.sibling;
    return null;
  }
  function d(a, b) {
    for (a = new Map(); null !== b;) null !== b.key ? a.set(b.key, b) : a.set(b.index, b), b = b.sibling;
    return a;
  }
  function e(a, b) {
    a = wh(a, b);
    a.index = 0;
    a.sibling = null;
    return a;
  }
  function f(b, c, d) {
    b.index = d;
    if (!a) return b.flags |= 1048576, c;
    d = b.alternate;
    if (null !== d) return d = d.index, d < c ? (b.flags |= 2, c) : d;
    b.flags |= 2;
    return c;
  }
  function g(b) {
    a && null === b.alternate && (b.flags |= 2);
    return b;
  }
  function h(a, b, c, d) {
    if (null === b || 6 !== b.tag) return b = xh(c, a.mode, d), b.return = a, b;
    b = e(b, c);
    b.return = a;
    return b;
  }
  function k(a, b, c, d) {
    var f = c.type;
    if (f === ya) return m(a, b, c.props.children, d, c.key);
    if (null !== b && (b.elementType === f || "object" === typeof f && null !== f && f.$$typeof === Ha && uh(f) === b.type)) return d = e(b, c.props), d.ref = sh(a, b, c), d.return = a, d;
    d = yh(c.type, c.key, c.props, null, a.mode, d);
    d.ref = sh(a, b, c);
    d.return = a;
    return d;
  }
  function l(a, b, c, d) {
    if (null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation) return b = zh(c, a.mode, d), b.return = a, b;
    b = e(b, c.children || []);
    b.return = a;
    return b;
  }
  function m(a, b, c, d, f) {
    if (null === b || 7 !== b.tag) return b = Ah(c, a.mode, d, f), b.return = a, b;
    b = e(b, c);
    b.return = a;
    return b;
  }
  function q(a, b, c) {
    if ("string" === typeof b && "" !== b || "number" === typeof b) return b = xh("" + b, a.mode, c), b.return = a, b;
    if ("object" === typeof b && null !== b) {
      switch (b.$$typeof) {
        case va:
          return c = yh(b.type, b.key, b.props, null, a.mode, c), c.ref = sh(a, null, b), c.return = a, c;
        case wa:
          return b = zh(b, a.mode, c), b.return = a, b;
        case Ha:
          var d = b._init;
          return q(a, d(b._payload), c);
      }
      if (eb(b) || Ka(b)) return b = Ah(b, a.mode, c, null), b.return = a, b;
      th(a, b);
    }
    return null;
  }
  function r(a, b, c, d) {
    var e = null !== b ? b.key : null;
    if ("string" === typeof c && "" !== c || "number" === typeof c) return null !== e ? null : h(a, b, "" + c, d);
    if ("object" === typeof c && null !== c) {
      switch (c.$$typeof) {
        case va:
          return c.key === e ? k(a, b, c, d) : null;
        case wa:
          return c.key === e ? l(a, b, c, d) : null;
        case Ha:
          return e = c._init, r(a, b, e(c._payload), d);
      }
      if (eb(c) || Ka(c)) return null !== e ? null : m(a, b, c, d, null);
      th(a, c);
    }
    return null;
  }
  function y(a, b, c, d, e) {
    if ("string" === typeof d && "" !== d || "number" === typeof d) return a = a.get(c) || null, h(b, a, "" + d, e);
    if ("object" === typeof d && null !== d) {
      switch (d.$$typeof) {
        case va:
          return a = a.get(null === d.key ? c : d.key) || null, k(b, a, d, e);
        case wa:
          return a = a.get(null === d.key ? c : d.key) || null, l(b, a, d, e);
        case Ha:
          var f = d._init;
          return y(a, b, c, f(d._payload), e);
      }
      if (eb(d) || Ka(d)) return a = a.get(c) || null, m(b, a, d, e, null);
      th(b, d);
    }
    return null;
  }
  function n(e, g, h, k) {
    for (var l = null, m = null, u = g, w = g = 0, x = null; null !== u && w < h.length; w++) {
      u.index > w ? (x = u, u = null) : x = u.sibling;
      var n = r(e, u, h[w], k);
      if (null === n) {
        null === u && (u = x);
        break;
      }
      a && u && null === n.alternate && b(e, u);
      g = f(n, g, w);
      null === m ? l = n : m.sibling = n;
      m = n;
      u = x;
    }
    if (w === h.length) return c(e, u), I && tg(e, w), l;
    if (null === u) {
      for (; w < h.length; w++) u = q(e, h[w], k), null !== u && (g = f(u, g, w), null === m ? l = u : m.sibling = u, m = u);
      I && tg(e, w);
      return l;
    }
    for (u = d(e, u); w < h.length; w++) x = y(u, e, w, h[w], k), null !== x && (a && null !== x.alternate && u.delete(null === x.key ? w : x.key), g = f(x, g, w), null === m ? l = x : m.sibling = x, m = x);
    a && u.forEach(function (a) {
      return b(e, a);
    });
    I && tg(e, w);
    return l;
  }
  function t(e, g, h, k) {
    var l = Ka(h);
    if ("function" !== typeof l) throw Error(p(150));
    h = l.call(h);
    if (null == h) throw Error(p(151));
    for (var u = l = null, m = g, w = g = 0, x = null, n = h.next(); null !== m && !n.done; w++, n = h.next()) {
      m.index > w ? (x = m, m = null) : x = m.sibling;
      var t = r(e, m, n.value, k);
      if (null === t) {
        null === m && (m = x);
        break;
      }
      a && m && null === t.alternate && b(e, m);
      g = f(t, g, w);
      null === u ? l = t : u.sibling = t;
      u = t;
      m = x;
    }
    if (n.done) return c(e, m), I && tg(e, w), l;
    if (null === m) {
      for (; !n.done; w++, n = h.next()) n = q(e, n.value, k), null !== n && (g = f(n, g, w), null === u ? l = n : u.sibling = n, u = n);
      I && tg(e, w);
      return l;
    }
    for (m = d(e, m); !n.done; w++, n = h.next()) n = y(m, e, w, n.value, k), null !== n && (a && null !== n.alternate && m.delete(null === n.key ? w : n.key), g = f(n, g, w), null === u ? l = n : u.sibling = n, u = n);
    a && m.forEach(function (a) {
      return b(e, a);
    });
    I && tg(e, w);
    return l;
  }
  function J(a, d, f, h) {
    "object" === typeof f && null !== f && f.type === ya && null === f.key && (f = f.props.children);
    if ("object" === typeof f && null !== f) {
      switch (f.$$typeof) {
        case va:
          a: {
            for (var k = f.key, l = d; null !== l;) {
              if (l.key === k) {
                k = f.type;
                if (k === ya) {
                  if (7 === l.tag) {
                    c(a, l.sibling);
                    d = e(l, f.props.children);
                    d.return = a;
                    a = d;
                    break a;
                  }
                } else if (l.elementType === k || "object" === typeof k && null !== k && k.$$typeof === Ha && uh(k) === l.type) {
                  c(a, l.sibling);
                  d = e(l, f.props);
                  d.ref = sh(a, l, f);
                  d.return = a;
                  a = d;
                  break a;
                }
                c(a, l);
                break;
              } else b(a, l);
              l = l.sibling;
            }
            f.type === ya ? (d = Ah(f.props.children, a.mode, h, f.key), d.return = a, a = d) : (h = yh(f.type, f.key, f.props, null, a.mode, h), h.ref = sh(a, d, f), h.return = a, a = h);
          }
          return g(a);
        case wa:
          a: {
            for (l = f.key; null !== d;) {
              if (d.key === l) {
                if (4 === d.tag && d.stateNode.containerInfo === f.containerInfo && d.stateNode.implementation === f.implementation) {
                  c(a, d.sibling);
                  d = e(d, f.children || []);
                  d.return = a;
                  a = d;
                  break a;
                } else {
                  c(a, d);
                  break;
                }
              } else b(a, d);
              d = d.sibling;
            }
            d = zh(f, a.mode, h);
            d.return = a;
            a = d;
          }
          return g(a);
        case Ha:
          return l = f._init, J(a, d, l(f._payload), h);
      }
      if (eb(f)) return n(a, d, f, h);
      if (Ka(f)) return t(a, d, f, h);
      th(a, f);
    }
    return "string" === typeof f && "" !== f || "number" === typeof f ? (f = "" + f, null !== d && 6 === d.tag ? (c(a, d.sibling), d = e(d, f), d.return = a, a = d) : (c(a, d), d = xh(f, a.mode, h), d.return = a, a = d), g(a)) : c(a, d);
  }
  return J;
}
var Bh = vh(!0),
  Ch = vh(!1),
  Dh = {},
  Eh = Uf(Dh),
  Fh = Uf(Dh),
  Gh = Uf(Dh);
function Hh(a) {
  if (a === Dh) throw Error(p(174));
  return a;
}
function Ih(a, b) {
  G(Gh, b);
  G(Fh, a);
  G(Eh, Dh);
  a = b.nodeType;
  switch (a) {
    case 9:
    case 11:
      b = (b = b.documentElement) ? b.namespaceURI : lb(null, "");
      break;
    default:
      a = 8 === a ? b.parentNode : b, b = a.namespaceURI || null, a = a.tagName, b = lb(b, a);
  }
  E(Eh);
  G(Eh, b);
}
function Jh() {
  E(Eh);
  E(Fh);
  E(Gh);
}
function Kh(a) {
  Hh(Gh.current);
  var b = Hh(Eh.current);
  var c = lb(b, a.type);
  b !== c && (G(Fh, a), G(Eh, c));
}
function Lh(a) {
  Fh.current === a && (E(Eh), E(Fh));
}
var M = Uf(0);
function Mh(a) {
  for (var b = a; null !== b;) {
    if (13 === b.tag) {
      var c = b.memoizedState;
      if (null !== c && (c = c.dehydrated, null === c || "$?" === c.data || "$!" === c.data)) return b;
    } else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {
      if (0 !== (b.flags & 128)) return b;
    } else if (null !== b.child) {
      b.child.return = b;
      b = b.child;
      continue;
    }
    if (b === a) break;
    for (; null === b.sibling;) {
      if (null === b.return || b.return === a) return null;
      b = b.return;
    }
    b.sibling.return = b.return;
    b = b.sibling;
  }
  return null;
}
var Nh = [];
function Oh() {
  for (var a = 0; a < Nh.length; a++) Nh[a]._workInProgressVersionPrimary = null;
  Nh.length = 0;
}
var Ph = ua.ReactCurrentDispatcher,
  Qh = ua.ReactCurrentBatchConfig,
  Rh = 0,
  N = null,
  O = null,
  P = null,
  Sh = !1,
  Th = !1,
  Uh = 0,
  Vh = 0;
function Q() {
  throw Error(p(321));
}
function Wh(a, b) {
  if (null === b) return !1;
  for (var c = 0; c < b.length && c < a.length; c++) if (!He(a[c], b[c])) return !1;
  return !0;
}
function Xh(a, b, c, d, e, f) {
  Rh = f;
  N = b;
  b.memoizedState = null;
  b.updateQueue = null;
  b.lanes = 0;
  Ph.current = null === a || null === a.memoizedState ? Yh : Zh;
  a = c(d, e);
  if (Th) {
    f = 0;
    do {
      Th = !1;
      Uh = 0;
      if (25 <= f) throw Error(p(301));
      f += 1;
      P = O = null;
      b.updateQueue = null;
      Ph.current = $h;
      a = c(d, e);
    } while (Th);
  }
  Ph.current = ai;
  b = null !== O && null !== O.next;
  Rh = 0;
  P = O = N = null;
  Sh = !1;
  if (b) throw Error(p(300));
  return a;
}
function bi() {
  var a = 0 !== Uh;
  Uh = 0;
  return a;
}
function ci() {
  var a = {
    memoizedState: null,
    baseState: null,
    baseQueue: null,
    queue: null,
    next: null
  };
  null === P ? N.memoizedState = P = a : P = P.next = a;
  return P;
}
function di() {
  if (null === O) {
    var a = N.alternate;
    a = null !== a ? a.memoizedState : null;
  } else a = O.next;
  var b = null === P ? N.memoizedState : P.next;
  if (null !== b) P = b, O = a;else {
    if (null === a) throw Error(p(310));
    O = a;
    a = {
      memoizedState: O.memoizedState,
      baseState: O.baseState,
      baseQueue: O.baseQueue,
      queue: O.queue,
      next: null
    };
    null === P ? N.memoizedState = P = a : P = P.next = a;
  }
  return P;
}
function ei(a, b) {
  return "function" === typeof b ? b(a) : b;
}
function fi(a) {
  var b = di(),
    c = b.queue;
  if (null === c) throw Error(p(311));
  c.lastRenderedReducer = a;
  var d = O,
    e = d.baseQueue,
    f = c.pending;
  if (null !== f) {
    if (null !== e) {
      var g = e.next;
      e.next = f.next;
      f.next = g;
    }
    d.baseQueue = e = f;
    c.pending = null;
  }
  if (null !== e) {
    f = e.next;
    d = d.baseState;
    var h = g = null,
      k = null,
      l = f;
    do {
      var m = l.lane;
      if ((Rh & m) === m) null !== k && (k = k.next = {
        lane: 0,
        action: l.action,
        hasEagerState: l.hasEagerState,
        eagerState: l.eagerState,
        next: null
      }), d = l.hasEagerState ? l.eagerState : a(d, l.action);else {
        var q = {
          lane: m,
          action: l.action,
          hasEagerState: l.hasEagerState,
          eagerState: l.eagerState,
          next: null
        };
        null === k ? (h = k = q, g = d) : k = k.next = q;
        N.lanes |= m;
        hh |= m;
      }
      l = l.next;
    } while (null !== l && l !== f);
    null === k ? g = d : k.next = h;
    He(d, b.memoizedState) || (Ug = !0);
    b.memoizedState = d;
    b.baseState = g;
    b.baseQueue = k;
    c.lastRenderedState = d;
  }
  a = c.interleaved;
  if (null !== a) {
    e = a;
    do f = e.lane, N.lanes |= f, hh |= f, e = e.next; while (e !== a);
  } else null === e && (c.lanes = 0);
  return [b.memoizedState, c.dispatch];
}
function gi(a) {
  var b = di(),
    c = b.queue;
  if (null === c) throw Error(p(311));
  c.lastRenderedReducer = a;
  var d = c.dispatch,
    e = c.pending,
    f = b.memoizedState;
  if (null !== e) {
    c.pending = null;
    var g = e = e.next;
    do f = a(f, g.action), g = g.next; while (g !== e);
    He(f, b.memoizedState) || (Ug = !0);
    b.memoizedState = f;
    null === b.baseQueue && (b.baseState = f);
    c.lastRenderedState = f;
  }
  return [f, d];
}
function hi() {}
function ii(a, b) {
  var c = N,
    d = di(),
    e = b(),
    f = !He(d.memoizedState, e);
  f && (d.memoizedState = e, Ug = !0);
  d = d.queue;
  ji(ki.bind(null, c, d, a), [a]);
  if (d.getSnapshot !== b || f || null !== P && P.memoizedState.tag & 1) {
    c.flags |= 2048;
    li(9, mi.bind(null, c, d, e, b), void 0, null);
    if (null === R) throw Error(p(349));
    0 !== (Rh & 30) || ni(c, b, e);
  }
  return e;
}
function ni(a, b, c) {
  a.flags |= 16384;
  a = {
    getSnapshot: b,
    value: c
  };
  b = N.updateQueue;
  null === b ? (b = {
    lastEffect: null,
    stores: null
  }, N.updateQueue = b, b.stores = [a]) : (c = b.stores, null === c ? b.stores = [a] : c.push(a));
}
function mi(a, b, c, d) {
  b.value = c;
  b.getSnapshot = d;
  oi(b) && pi(a);
}
function ki(a, b, c) {
  return c(function () {
    oi(b) && pi(a);
  });
}
function oi(a) {
  var b = a.getSnapshot;
  a = a.value;
  try {
    var c = b();
    return !He(a, c);
  } catch (d) {
    return !0;
  }
}
function pi(a) {
  var b = Zg(a, 1);
  null !== b && mh(b, a, 1, -1);
}
function qi(a) {
  var b = ci();
  "function" === typeof a && (a = a());
  b.memoizedState = b.baseState = a;
  a = {
    pending: null,
    interleaved: null,
    lanes: 0,
    dispatch: null,
    lastRenderedReducer: ei,
    lastRenderedState: a
  };
  b.queue = a;
  a = a.dispatch = ri.bind(null, N, a);
  return [b.memoizedState, a];
}
function li(a, b, c, d) {
  a = {
    tag: a,
    create: b,
    destroy: c,
    deps: d,
    next: null
  };
  b = N.updateQueue;
  null === b ? (b = {
    lastEffect: null,
    stores: null
  }, N.updateQueue = b, b.lastEffect = a.next = a) : (c = b.lastEffect, null === c ? b.lastEffect = a.next = a : (d = c.next, c.next = a, a.next = d, b.lastEffect = a));
  return a;
}
function si() {
  return di().memoizedState;
}
function ti(a, b, c, d) {
  var e = ci();
  N.flags |= a;
  e.memoizedState = li(1 | b, c, void 0, void 0 === d ? null : d);
}
function ui(a, b, c, d) {
  var e = di();
  d = void 0 === d ? null : d;
  var f = void 0;
  if (null !== O) {
    var g = O.memoizedState;
    f = g.destroy;
    if (null !== d && Wh(d, g.deps)) {
      e.memoizedState = li(b, c, f, d);
      return;
    }
  }
  N.flags |= a;
  e.memoizedState = li(1 | b, c, f, d);
}
function vi(a, b) {
  return ti(8390656, 8, a, b);
}
function ji(a, b) {
  return ui(2048, 8, a, b);
}
function wi(a, b) {
  return ui(4, 2, a, b);
}
function xi(a, b) {
  return ui(4, 4, a, b);
}
function yi(a, b) {
  if ("function" === typeof b) return a = a(), b(a), function () {
    b(null);
  };
  if (null !== b && void 0 !== b) return a = a(), b.current = a, function () {
    b.current = null;
  };
}
function zi(a, b, c) {
  c = null !== c && void 0 !== c ? c.concat([a]) : null;
  return ui(4, 4, yi.bind(null, b, a), c);
}
function Ai() {}
function Bi(a, b) {
  var c = di();
  b = void 0 === b ? null : b;
  var d = c.memoizedState;
  if (null !== d && null !== b && Wh(b, d[1])) return d[0];
  c.memoizedState = [a, b];
  return a;
}
function Ci(a, b) {
  var c = di();
  b = void 0 === b ? null : b;
  var d = c.memoizedState;
  if (null !== d && null !== b && Wh(b, d[1])) return d[0];
  a = a();
  c.memoizedState = [a, b];
  return a;
}
function Di(a, b, c) {
  if (0 === (Rh & 21)) return a.baseState && (a.baseState = !1, Ug = !0), a.memoizedState = c;
  He(c, b) || (c = yc(), N.lanes |= c, hh |= c, a.baseState = !0);
  return b;
}
function Ei(a, b) {
  var c = C;
  C = 0 !== c && 4 > c ? c : 4;
  a(!0);
  var d = Qh.transition;
  Qh.transition = {};
  try {
    a(!1), b();
  } finally {
    C = c, Qh.transition = d;
  }
}
function Fi() {
  return di().memoizedState;
}
function Gi(a, b, c) {
  var d = lh(a);
  c = {
    lane: d,
    action: c,
    hasEagerState: !1,
    eagerState: null,
    next: null
  };
  if (Hi(a)) Ii(b, c);else if (c = Yg(a, b, c, d), null !== c) {
    var e = L();
    mh(c, a, d, e);
    Ji(c, b, d);
  }
}
function ri(a, b, c) {
  var d = lh(a),
    e = {
      lane: d,
      action: c,
      hasEagerState: !1,
      eagerState: null,
      next: null
    };
  if (Hi(a)) Ii(b, e);else {
    var f = a.alternate;
    if (0 === a.lanes && (null === f || 0 === f.lanes) && (f = b.lastRenderedReducer, null !== f)) try {
      var g = b.lastRenderedState,
        h = f(g, c);
      e.hasEagerState = !0;
      e.eagerState = h;
      if (He(h, g)) {
        var k = b.interleaved;
        null === k ? (e.next = e, Xg(b)) : (e.next = k.next, k.next = e);
        b.interleaved = e;
        return;
      }
    } catch (l) {} finally {}
    c = Yg(a, b, e, d);
    null !== c && (e = L(), mh(c, a, d, e), Ji(c, b, d));
  }
}
function Hi(a) {
  var b = a.alternate;
  return a === N || null !== b && b === N;
}
function Ii(a, b) {
  Th = Sh = !0;
  var c = a.pending;
  null === c ? b.next = b : (b.next = c.next, c.next = b);
  a.pending = b;
}
function Ji(a, b, c) {
  if (0 !== (c & 4194240)) {
    var d = b.lanes;
    d &= a.pendingLanes;
    c |= d;
    b.lanes = c;
    Cc(a, c);
  }
}
var ai = {
    readContext: Vg,
    useCallback: Q,
    useContext: Q,
    useEffect: Q,
    useImperativeHandle: Q,
    useInsertionEffect: Q,
    useLayoutEffect: Q,
    useMemo: Q,
    useReducer: Q,
    useRef: Q,
    useState: Q,
    useDebugValue: Q,
    useDeferredValue: Q,
    useTransition: Q,
    useMutableSource: Q,
    useSyncExternalStore: Q,
    useId: Q,
    unstable_isNewReconciler: !1
  },
  Yh = {
    readContext: Vg,
    useCallback: function (a, b) {
      ci().memoizedState = [a, void 0 === b ? null : b];
      return a;
    },
    useContext: Vg,
    useEffect: vi,
    useImperativeHandle: function (a, b, c) {
      c = null !== c && void 0 !== c ? c.concat([a]) : null;
      return ti(4194308, 4, yi.bind(null, b, a), c);
    },
    useLayoutEffect: function (a, b) {
      return ti(4194308, 4, a, b);
    },
    useInsertionEffect: function (a, b) {
      return ti(4, 2, a, b);
    },
    useMemo: function (a, b) {
      var c = ci();
      b = void 0 === b ? null : b;
      a = a();
      c.memoizedState = [a, b];
      return a;
    },
    useReducer: function (a, b, c) {
      var d = ci();
      b = void 0 !== c ? c(b) : b;
      d.memoizedState = d.baseState = b;
      a = {
        pending: null,
        interleaved: null,
        lanes: 0,
        dispatch: null,
        lastRenderedReducer: a,
        lastRenderedState: b
      };
      d.queue = a;
      a = a.dispatch = Gi.bind(null, N, a);
      return [d.memoizedState, a];
    },
    useRef: function (a) {
      var b = ci();
      a = {
        current: a
      };
      return b.memoizedState = a;
    },
    useState: qi,
    useDebugValue: Ai,
    useDeferredValue: function (a) {
      return ci().memoizedState = a;
    },
    useTransition: function () {
      var a = qi(!1),
        b = a[0];
      a = Ei.bind(null, a[1]);
      ci().memoizedState = a;
      return [b, a];
    },
    useMutableSource: function () {},
    useSyncExternalStore: function (a, b, c) {
      var d = N,
        e = ci();
      if (I) {
        if (void 0 === c) throw Error(p(407));
        c = c();
      } else {
        c = b();
        if (null === R) throw Error(p(349));
        0 !== (Rh & 30) || ni(d, b, c);
      }
      e.memoizedState = c;
      var f = {
        value: c,
        getSnapshot: b
      };
      e.queue = f;
      vi(ki.bind(null, d, f, a), [a]);
      d.flags |= 2048;
      li(9, mi.bind(null, d, f, c, b), void 0, null);
      return c;
    },
    useId: function () {
      var a = ci(),
        b = R.identifierPrefix;
      if (I) {
        var c = sg;
        var d = rg;
        c = (d & ~(1 << 32 - oc(d) - 1)).toString(32) + c;
        b = ":" + b + "R" + c;
        c = Uh++;
        0 < c && (b += "H" + c.toString(32));
        b += ":";
      } else c = Vh++, b = ":" + b + "r" + c.toString(32) + ":";
      return a.memoizedState = b;
    },
    unstable_isNewReconciler: !1
  },
  Zh = {
    readContext: Vg,
    useCallback: Bi,
    useContext: Vg,
    useEffect: ji,
    useImperativeHandle: zi,
    useInsertionEffect: wi,
    useLayoutEffect: xi,
    useMemo: Ci,
    useReducer: fi,
    useRef: si,
    useState: function () {
      return fi(ei);
    },
    useDebugValue: Ai,
    useDeferredValue: function (a) {
      var b = di();
      return Di(b, O.memoizedState, a);
    },
    useTransition: function () {
      var a = fi(ei)[0],
        b = di().memoizedState;
      return [a, b];
    },
    useMutableSource: hi,
    useSyncExternalStore: ii,
    useId: Fi,
    unstable_isNewReconciler: !1
  },
  $h = {
    readContext: Vg,
    useCallback: Bi,
    useContext: Vg,
    useEffect: ji,
    useImperativeHandle: zi,
    useInsertionEffect: wi,
    useLayoutEffect: xi,
    useMemo: Ci,
    useReducer: gi,
    useRef: si,
    useState: function () {
      return gi(ei);
    },
    useDebugValue: Ai,
    useDeferredValue: function (a) {
      var b = di();
      return null === O ? b.memoizedState = a : Di(b, O.memoizedState, a);
    },
    useTransition: function () {
      var a = gi(ei)[0],
        b = di().memoizedState;
      return [a, b];
    },
    useMutableSource: hi,
    useSyncExternalStore: ii,
    useId: Fi,
    unstable_isNewReconciler: !1
  };
function Ki(a, b) {
  try {
    var c = "",
      d = b;
    do c += Pa(d), d = d.return; while (d);
    var e = c;
  } catch (f) {
    e = "\nError generating stack: " + f.message + "\n" + f.stack;
  }
  return {
    value: a,
    source: b,
    stack: e,
    digest: null
  };
}
function Li(a, b, c) {
  return {
    value: a,
    source: null,
    stack: null != c ? c : null,
    digest: null != b ? b : null
  };
}
function Mi(a, b) {
  try {
    console.error(b.value);
  } catch (c) {
    setTimeout(function () {
      throw c;
    });
  }
}
var Ni = "function" === typeof WeakMap ? WeakMap : Map;
function Oi(a, b, c) {
  c = ch(-1, c);
  c.tag = 3;
  c.payload = {
    element: null
  };
  var d = b.value;
  c.callback = function () {
    Pi || (Pi = !0, Qi = d);
    Mi(a, b);
  };
  return c;
}
function Ri(a, b, c) {
  c = ch(-1, c);
  c.tag = 3;
  var d = a.type.getDerivedStateFromError;
  if ("function" === typeof d) {
    var e = b.value;
    c.payload = function () {
      return d(e);
    };
    c.callback = function () {
      Mi(a, b);
    };
  }
  var f = a.stateNode;
  null !== f && "function" === typeof f.componentDidCatch && (c.callback = function () {
    Mi(a, b);
    "function" !== typeof d && (null === Si ? Si = new Set([this]) : Si.add(this));
    var c = b.stack;
    this.componentDidCatch(b.value, {
      componentStack: null !== c ? c : ""
    });
  });
  return c;
}
function Ti(a, b, c) {
  var d = a.pingCache;
  if (null === d) {
    d = a.pingCache = new Ni();
    var e = new Set();
    d.set(b, e);
  } else e = d.get(b), void 0 === e && (e = new Set(), d.set(b, e));
  e.has(c) || (e.add(c), a = Ui.bind(null, a, b, c), b.then(a, a));
}
function Vi(a) {
  do {
    var b;
    if (b = 13 === a.tag) b = a.memoizedState, b = null !== b ? null !== b.dehydrated ? !0 : !1 : !0;
    if (b) return a;
    a = a.return;
  } while (null !== a);
  return null;
}
function Wi(a, b, c, d, e) {
  if (0 === (a.mode & 1)) return a === b ? a.flags |= 65536 : (a.flags |= 128, c.flags |= 131072, c.flags &= -52805, 1 === c.tag && (null === c.alternate ? c.tag = 17 : (b = ch(-1, 1), b.tag = 2, dh(c, b, 1))), c.lanes |= 1), a;
  a.flags |= 65536;
  a.lanes = e;
  return a;
}
var Xi = ua.ReactCurrentOwner,
  Ug = !1;
function Yi(a, b, c, d) {
  b.child = null === a ? Ch(b, null, c, d) : Bh(b, a.child, c, d);
}
function Zi(a, b, c, d, e) {
  c = c.render;
  var f = b.ref;
  Tg(b, e);
  d = Xh(a, b, c, d, f, e);
  c = bi();
  if (null !== a && !Ug) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, $i(a, b, e);
  I && c && vg(b);
  b.flags |= 1;
  Yi(a, b, d, e);
  return b.child;
}
function aj(a, b, c, d, e) {
  if (null === a) {
    var f = c.type;
    if ("function" === typeof f && !bj(f) && void 0 === f.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = f, cj(a, b, f, d, e);
    a = yh(c.type, null, d, b, b.mode, e);
    a.ref = b.ref;
    a.return = b;
    return b.child = a;
  }
  f = a.child;
  if (0 === (a.lanes & e)) {
    var g = f.memoizedProps;
    c = c.compare;
    c = null !== c ? c : Ie;
    if (c(g, d) && a.ref === b.ref) return $i(a, b, e);
  }
  b.flags |= 1;
  a = wh(f, d);
  a.ref = b.ref;
  a.return = b;
  return b.child = a;
}
function cj(a, b, c, d, e) {
  if (null !== a) {
    var f = a.memoizedProps;
    if (Ie(f, d) && a.ref === b.ref) if (Ug = !1, b.pendingProps = d = f, 0 !== (a.lanes & e)) 0 !== (a.flags & 131072) && (Ug = !0);else return b.lanes = a.lanes, $i(a, b, e);
  }
  return dj(a, b, c, d, e);
}
function ej(a, b, c) {
  var d = b.pendingProps,
    e = d.children,
    f = null !== a ? a.memoizedState : null;
  if ("hidden" === d.mode) {
    if (0 === (b.mode & 1)) b.memoizedState = {
      baseLanes: 0,
      cachePool: null,
      transitions: null
    }, G(fj, gj), gj |= c;else {
      if (0 === (c & 1073741824)) return a = null !== f ? f.baseLanes | c : c, b.lanes = b.childLanes = 1073741824, b.memoizedState = {
        baseLanes: a,
        cachePool: null,
        transitions: null
      }, b.updateQueue = null, G(fj, gj), gj |= a, null;
      b.memoizedState = {
        baseLanes: 0,
        cachePool: null,
        transitions: null
      };
      d = null !== f ? f.baseLanes : c;
      G(fj, gj);
      gj |= d;
    }
  } else null !== f ? (d = f.baseLanes | c, b.memoizedState = null) : d = c, G(fj, gj), gj |= d;
  Yi(a, b, e, c);
  return b.child;
}
function hj(a, b) {
  var c = b.ref;
  if (null === a && null !== c || null !== a && a.ref !== c) b.flags |= 512, b.flags |= 2097152;
}
function dj(a, b, c, d, e) {
  var f = Zf(c) ? Xf : H.current;
  f = Yf(b, f);
  Tg(b, e);
  c = Xh(a, b, c, d, f, e);
  d = bi();
  if (null !== a && !Ug) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, $i(a, b, e);
  I && d && vg(b);
  b.flags |= 1;
  Yi(a, b, c, e);
  return b.child;
}
function ij(a, b, c, d, e) {
  if (Zf(c)) {
    var f = !0;
    cg(b);
  } else f = !1;
  Tg(b, e);
  if (null === b.stateNode) jj(a, b), ph(b, c, d), rh(b, c, d, e), d = !0;else if (null === a) {
    var g = b.stateNode,
      h = b.memoizedProps;
    g.props = h;
    var k = g.context,
      l = c.contextType;
    "object" === typeof l && null !== l ? l = Vg(l) : (l = Zf(c) ? Xf : H.current, l = Yf(b, l));
    var m = c.getDerivedStateFromProps,
      q = "function" === typeof m || "function" === typeof g.getSnapshotBeforeUpdate;
    q || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && qh(b, g, d, l);
    $g = !1;
    var r = b.memoizedState;
    g.state = r;
    gh(b, d, g, e);
    k = b.memoizedState;
    h !== d || r !== k || Wf.current || $g ? ("function" === typeof m && (kh(b, c, m, d), k = b.memoizedState), (h = $g || oh(b, c, h, d, r, k, l)) ? (q || "function" !== typeof g.UNSAFE_componentWillMount && "function" !== typeof g.componentWillMount || ("function" === typeof g.componentWillMount && g.componentWillMount(), "function" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), "function" === typeof g.componentDidMount && (b.flags |= 4194308)) : ("function" === typeof g.componentDidMount && (b.flags |= 4194308), b.memoizedProps = d, b.memoizedState = k), g.props = d, g.state = k, g.context = l, d = h) : ("function" === typeof g.componentDidMount && (b.flags |= 4194308), d = !1);
  } else {
    g = b.stateNode;
    bh(a, b);
    h = b.memoizedProps;
    l = b.type === b.elementType ? h : Lg(b.type, h);
    g.props = l;
    q = b.pendingProps;
    r = g.context;
    k = c.contextType;
    "object" === typeof k && null !== k ? k = Vg(k) : (k = Zf(c) ? Xf : H.current, k = Yf(b, k));
    var y = c.getDerivedStateFromProps;
    (m = "function" === typeof y || "function" === typeof g.getSnapshotBeforeUpdate) || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== q || r !== k) && qh(b, g, d, k);
    $g = !1;
    r = b.memoizedState;
    g.state = r;
    gh(b, d, g, e);
    var n = b.memoizedState;
    h !== q || r !== n || Wf.current || $g ? ("function" === typeof y && (kh(b, c, y, d), n = b.memoizedState), (l = $g || oh(b, c, l, d, r, n, k) || !1) ? (m || "function" !== typeof g.UNSAFE_componentWillUpdate && "function" !== typeof g.componentWillUpdate || ("function" === typeof g.componentWillUpdate && g.componentWillUpdate(d, n, k), "function" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, n, k)), "function" === typeof g.componentDidUpdate && (b.flags |= 4), "function" === typeof g.getSnapshotBeforeUpdate && (b.flags |= 1024)) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 1024), b.memoizedProps = d, b.memoizedState = n), g.props = d, g.state = n, g.context = k, d = l) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 1024), d = !1);
  }
  return kj(a, b, c, d, f, e);
}
function kj(a, b, c, d, e, f) {
  hj(a, b);
  var g = 0 !== (b.flags & 128);
  if (!d && !g) return e && dg(b, c, !1), $i(a, b, f);
  d = b.stateNode;
  Xi.current = b;
  var h = g && "function" !== typeof c.getDerivedStateFromError ? null : d.render();
  b.flags |= 1;
  null !== a && g ? (b.child = Bh(b, a.child, null, f), b.child = Bh(b, null, h, f)) : Yi(a, b, h, f);
  b.memoizedState = d.state;
  e && dg(b, c, !0);
  return b.child;
}
function lj(a) {
  var b = a.stateNode;
  b.pendingContext ? ag(a, b.pendingContext, b.pendingContext !== b.context) : b.context && ag(a, b.context, !1);
  Ih(a, b.containerInfo);
}
function mj(a, b, c, d, e) {
  Ig();
  Jg(e);
  b.flags |= 256;
  Yi(a, b, c, d);
  return b.child;
}
var nj = {
  dehydrated: null,
  treeContext: null,
  retryLane: 0
};
function oj(a) {
  return {
    baseLanes: a,
    cachePool: null,
    transitions: null
  };
}
function pj(a, b, c) {
  var d = b.pendingProps,
    e = M.current,
    f = !1,
    g = 0 !== (b.flags & 128),
    h;
  (h = g) || (h = null !== a && null === a.memoizedState ? !1 : 0 !== (e & 2));
  if (h) f = !0, b.flags &= -129;else if (null === a || null !== a.memoizedState) e |= 1;
  G(M, e & 1);
  if (null === a) {
    Eg(b);
    a = b.memoizedState;
    if (null !== a && (a = a.dehydrated, null !== a)) return 0 === (b.mode & 1) ? b.lanes = 1 : "$!" === a.data ? b.lanes = 8 : b.lanes = 1073741824, null;
    g = d.children;
    a = d.fallback;
    return f ? (d = b.mode, f = b.child, g = {
      mode: "hidden",
      children: g
    }, 0 === (d & 1) && null !== f ? (f.childLanes = 0, f.pendingProps = g) : f = qj(g, d, 0, null), a = Ah(a, d, c, null), f.return = b, a.return = b, f.sibling = a, b.child = f, b.child.memoizedState = oj(c), b.memoizedState = nj, a) : rj(b, g);
  }
  e = a.memoizedState;
  if (null !== e && (h = e.dehydrated, null !== h)) return sj(a, b, g, d, h, e, c);
  if (f) {
    f = d.fallback;
    g = b.mode;
    e = a.child;
    h = e.sibling;
    var k = {
      mode: "hidden",
      children: d.children
    };
    0 === (g & 1) && b.child !== e ? (d = b.child, d.childLanes = 0, d.pendingProps = k, b.deletions = null) : (d = wh(e, k), d.subtreeFlags = e.subtreeFlags & 14680064);
    null !== h ? f = wh(h, f) : (f = Ah(f, g, c, null), f.flags |= 2);
    f.return = b;
    d.return = b;
    d.sibling = f;
    b.child = d;
    d = f;
    f = b.child;
    g = a.child.memoizedState;
    g = null === g ? oj(c) : {
      baseLanes: g.baseLanes | c,
      cachePool: null,
      transitions: g.transitions
    };
    f.memoizedState = g;
    f.childLanes = a.childLanes & ~c;
    b.memoizedState = nj;
    return d;
  }
  f = a.child;
  a = f.sibling;
  d = wh(f, {
    mode: "visible",
    children: d.children
  });
  0 === (b.mode & 1) && (d.lanes = c);
  d.return = b;
  d.sibling = null;
  null !== a && (c = b.deletions, null === c ? (b.deletions = [a], b.flags |= 16) : c.push(a));
  b.child = d;
  b.memoizedState = null;
  return d;
}
function rj(a, b) {
  b = qj({
    mode: "visible",
    children: b
  }, a.mode, 0, null);
  b.return = a;
  return a.child = b;
}
function tj(a, b, c, d) {
  null !== d && Jg(d);
  Bh(b, a.child, null, c);
  a = rj(b, b.pendingProps.children);
  a.flags |= 2;
  b.memoizedState = null;
  return a;
}
function sj(a, b, c, d, e, f, g) {
  if (c) {
    if (b.flags & 256) return b.flags &= -257, d = Li(Error(p(422))), tj(a, b, g, d);
    if (null !== b.memoizedState) return b.child = a.child, b.flags |= 128, null;
    f = d.fallback;
    e = b.mode;
    d = qj({
      mode: "visible",
      children: d.children
    }, e, 0, null);
    f = Ah(f, e, g, null);
    f.flags |= 2;
    d.return = b;
    f.return = b;
    d.sibling = f;
    b.child = d;
    0 !== (b.mode & 1) && Bh(b, a.child, null, g);
    b.child.memoizedState = oj(g);
    b.memoizedState = nj;
    return f;
  }
  if (0 === (b.mode & 1)) return tj(a, b, g, null);
  if ("$!" === e.data) {
    d = e.nextSibling && e.nextSibling.dataset;
    if (d) var h = d.dgst;
    d = h;
    f = Error(p(419));
    d = Li(f, d, void 0);
    return tj(a, b, g, d);
  }
  h = 0 !== (g & a.childLanes);
  if (Ug || h) {
    d = R;
    if (null !== d) {
      switch (g & -g) {
        case 4:
          e = 2;
          break;
        case 16:
          e = 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:
          e = 32;
          break;
        case 536870912:
          e = 268435456;
          break;
        default:
          e = 0;
      }
      e = 0 !== (e & (d.suspendedLanes | g)) ? 0 : e;
      0 !== e && e !== f.retryLane && (f.retryLane = e, Zg(a, e), mh(d, a, e, -1));
    }
    uj();
    d = Li(Error(p(421)));
    return tj(a, b, g, d);
  }
  if ("$?" === e.data) return b.flags |= 128, b.child = a.child, b = vj.bind(null, a), e._reactRetry = b, null;
  a = f.treeContext;
  yg = Lf(e.nextSibling);
  xg = b;
  I = !0;
  zg = null;
  null !== a && (og[pg++] = rg, og[pg++] = sg, og[pg++] = qg, rg = a.id, sg = a.overflow, qg = b);
  b = rj(b, d.children);
  b.flags |= 4096;
  return b;
}
function wj(a, b, c) {
  a.lanes |= b;
  var d = a.alternate;
  null !== d && (d.lanes |= b);
  Sg(a.return, b, c);
}
function xj(a, b, c, d, e) {
  var f = a.memoizedState;
  null === f ? a.memoizedState = {
    isBackwards: b,
    rendering: null,
    renderingStartTime: 0,
    last: d,
    tail: c,
    tailMode: e
  } : (f.isBackwards = b, f.rendering = null, f.renderingStartTime = 0, f.last = d, f.tail = c, f.tailMode = e);
}
function yj(a, b, c) {
  var d = b.pendingProps,
    e = d.revealOrder,
    f = d.tail;
  Yi(a, b, d.children, c);
  d = M.current;
  if (0 !== (d & 2)) d = d & 1 | 2, b.flags |= 128;else {
    if (null !== a && 0 !== (a.flags & 128)) a: for (a = b.child; null !== a;) {
      if (13 === a.tag) null !== a.memoizedState && wj(a, c, b);else if (19 === a.tag) wj(a, c, b);else if (null !== a.child) {
        a.child.return = a;
        a = a.child;
        continue;
      }
      if (a === b) break a;
      for (; null === a.sibling;) {
        if (null === a.return || a.return === b) break a;
        a = a.return;
      }
      a.sibling.return = a.return;
      a = a.sibling;
    }
    d &= 1;
  }
  G(M, d);
  if (0 === (b.mode & 1)) b.memoizedState = null;else switch (e) {
    case "forwards":
      c = b.child;
      for (e = null; null !== c;) a = c.alternate, null !== a && null === Mh(a) && (e = c), c = c.sibling;
      c = e;
      null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);
      xj(b, !1, e, c, f);
      break;
    case "backwards":
      c = null;
      e = b.child;
      for (b.child = null; null !== e;) {
        a = e.alternate;
        if (null !== a && null === Mh(a)) {
          b.child = e;
          break;
        }
        a = e.sibling;
        e.sibling = c;
        c = e;
        e = a;
      }
      xj(b, !0, c, null, f);
      break;
    case "together":
      xj(b, !1, null, null, void 0);
      break;
    default:
      b.memoizedState = null;
  }
  return b.child;
}
function jj(a, b) {
  0 === (b.mode & 1) && null !== a && (a.alternate = null, b.alternate = null, b.flags |= 2);
}
function $i(a, b, c) {
  null !== a && (b.dependencies = a.dependencies);
  hh |= b.lanes;
  if (0 === (c & b.childLanes)) return null;
  if (null !== a && b.child !== a.child) throw Error(p(153));
  if (null !== b.child) {
    a = b.child;
    c = wh(a, a.pendingProps);
    b.child = c;
    for (c.return = b; null !== a.sibling;) a = a.sibling, c = c.sibling = wh(a, a.pendingProps), c.return = b;
    c.sibling = null;
  }
  return b.child;
}
function zj(a, b, c) {
  switch (b.tag) {
    case 3:
      lj(b);
      Ig();
      break;
    case 5:
      Kh(b);
      break;
    case 1:
      Zf(b.type) && cg(b);
      break;
    case 4:
      Ih(b, b.stateNode.containerInfo);
      break;
    case 10:
      var d = b.type._context,
        e = b.memoizedProps.value;
      G(Mg, d._currentValue);
      d._currentValue = e;
      break;
    case 13:
      d = b.memoizedState;
      if (null !== d) {
        if (null !== d.dehydrated) return G(M, M.current & 1), b.flags |= 128, null;
        if (0 !== (c & b.child.childLanes)) return pj(a, b, c);
        G(M, M.current & 1);
        a = $i(a, b, c);
        return null !== a ? a.sibling : null;
      }
      G(M, M.current & 1);
      break;
    case 19:
      d = 0 !== (c & b.childLanes);
      if (0 !== (a.flags & 128)) {
        if (d) return yj(a, b, c);
        b.flags |= 128;
      }
      e = b.memoizedState;
      null !== e && (e.rendering = null, e.tail = null, e.lastEffect = null);
      G(M, M.current);
      if (d) break;else return null;
    case 22:
    case 23:
      return b.lanes = 0, ej(a, b, c);
  }
  return $i(a, b, c);
}
var Aj, Bj, Cj, Dj;
Aj = function (a, b) {
  for (var c = b.child; null !== c;) {
    if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);else if (4 !== c.tag && null !== c.child) {
      c.child.return = c;
      c = c.child;
      continue;
    }
    if (c === b) break;
    for (; null === c.sibling;) {
      if (null === c.return || c.return === b) return;
      c = c.return;
    }
    c.sibling.return = c.return;
    c = c.sibling;
  }
};
Bj = function () {};
Cj = function (a, b, c, d) {
  var e = a.memoizedProps;
  if (e !== d) {
    a = b.stateNode;
    Hh(Eh.current);
    var f = null;
    switch (c) {
      case "input":
        e = Ya(a, e);
        d = Ya(a, d);
        f = [];
        break;
      case "select":
        e = A({}, e, {
          value: void 0
        });
        d = A({}, d, {
          value: void 0
        });
        f = [];
        break;
      case "textarea":
        e = gb(a, e);
        d = gb(a, d);
        f = [];
        break;
      default:
        "function" !== typeof e.onClick && "function" === typeof d.onClick && (a.onclick = Bf);
    }
    ub(c, d);
    var g;
    c = null;
    for (l in e) if (!d.hasOwnProperty(l) && e.hasOwnProperty(l) && null != e[l]) if ("style" === l) {
      var h = e[l];
      for (g in h) h.hasOwnProperty(g) && (c || (c = {}), c[g] = "");
    } else "dangerouslySetInnerHTML" !== l && "children" !== l && "suppressContentEditableWarning" !== l && "suppressHydrationWarning" !== l && "autoFocus" !== l && (ea.hasOwnProperty(l) ? f || (f = []) : (f = f || []).push(l, null));
    for (l in d) {
      var k = d[l];
      h = null != e ? e[l] : void 0;
      if (d.hasOwnProperty(l) && k !== h && (null != k || null != h)) if ("style" === l) {
        if (h) {
          for (g in h) !h.hasOwnProperty(g) || k && k.hasOwnProperty(g) || (c || (c = {}), c[g] = "");
          for (g in k) k.hasOwnProperty(g) && h[g] !== k[g] && (c || (c = {}), c[g] = k[g]);
        } else c || (f || (f = []), f.push(l, c)), c = k;
      } else "dangerouslySetInnerHTML" === l ? (k = k ? k.__html : void 0, h = h ? h.__html : void 0, null != k && h !== k && (f = f || []).push(l, k)) : "children" === l ? "string" !== typeof k && "number" !== typeof k || (f = f || []).push(l, "" + k) : "suppressContentEditableWarning" !== l && "suppressHydrationWarning" !== l && (ea.hasOwnProperty(l) ? (null != k && "onScroll" === l && D("scroll", a), f || h === k || (f = [])) : (f = f || []).push(l, k));
    }
    c && (f = f || []).push("style", c);
    var l = f;
    if (b.updateQueue = l) b.flags |= 4;
  }
};
Dj = function (a, b, c, d) {
  c !== d && (b.flags |= 4);
};
function Ej(a, b) {
  if (!I) switch (a.tailMode) {
    case "hidden":
      b = a.tail;
      for (var c = null; null !== b;) null !== b.alternate && (c = b), b = b.sibling;
      null === c ? a.tail = null : c.sibling = null;
      break;
    case "collapsed":
      c = a.tail;
      for (var d = null; null !== c;) null !== c.alternate && (d = c), c = c.sibling;
      null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;
  }
}
function S(a) {
  var b = null !== a.alternate && a.alternate.child === a.child,
    c = 0,
    d = 0;
  if (b) for (var e = a.child; null !== e;) c |= e.lanes | e.childLanes, d |= e.subtreeFlags & 14680064, d |= e.flags & 14680064, e.return = a, e = e.sibling;else for (e = a.child; null !== e;) c |= e.lanes | e.childLanes, d |= e.subtreeFlags, d |= e.flags, e.return = a, e = e.sibling;
  a.subtreeFlags |= d;
  a.childLanes = c;
  return b;
}
function Fj(a, b, c) {
  var d = b.pendingProps;
  wg(b);
  switch (b.tag) {
    case 2:
    case 16:
    case 15:
    case 0:
    case 11:
    case 7:
    case 8:
    case 12:
    case 9:
    case 14:
      return S(b), null;
    case 1:
      return Zf(b.type) && $f(), S(b), null;
    case 3:
      d = b.stateNode;
      Jh();
      E(Wf);
      E(H);
      Oh();
      d.pendingContext && (d.context = d.pendingContext, d.pendingContext = null);
      if (null === a || null === a.child) Gg(b) ? b.flags |= 4 : null === a || a.memoizedState.isDehydrated && 0 === (b.flags & 256) || (b.flags |= 1024, null !== zg && (Gj(zg), zg = null));
      Bj(a, b);
      S(b);
      return null;
    case 5:
      Lh(b);
      var e = Hh(Gh.current);
      c = b.type;
      if (null !== a && null != b.stateNode) Cj(a, b, c, d, e), a.ref !== b.ref && (b.flags |= 512, b.flags |= 2097152);else {
        if (!d) {
          if (null === b.stateNode) throw Error(p(166));
          S(b);
          return null;
        }
        a = Hh(Eh.current);
        if (Gg(b)) {
          d = b.stateNode;
          c = b.type;
          var f = b.memoizedProps;
          d[Of] = b;
          d[Pf] = f;
          a = 0 !== (b.mode & 1);
          switch (c) {
            case "dialog":
              D("cancel", d);
              D("close", d);
              break;
            case "iframe":
            case "object":
            case "embed":
              D("load", d);
              break;
            case "video":
            case "audio":
              for (e = 0; e < lf.length; e++) D(lf[e], d);
              break;
            case "source":
              D("error", d);
              break;
            case "img":
            case "image":
            case "link":
              D("error", d);
              D("load", d);
              break;
            case "details":
              D("toggle", d);
              break;
            case "input":
              Za(d, f);
              D("invalid", d);
              break;
            case "select":
              d._wrapperState = {
                wasMultiple: !!f.multiple
              };
              D("invalid", d);
              break;
            case "textarea":
              hb(d, f), D("invalid", d);
          }
          ub(c, f);
          e = null;
          for (var g in f) if (f.hasOwnProperty(g)) {
            var h = f[g];
            "children" === g ? "string" === typeof h ? d.textContent !== h && (!0 !== f.suppressHydrationWarning && Af(d.textContent, h, a), e = ["children", h]) : "number" === typeof h && d.textContent !== "" + h && (!0 !== f.suppressHydrationWarning && Af(d.textContent, h, a), e = ["children", "" + h]) : ea.hasOwnProperty(g) && null != h && "onScroll" === g && D("scroll", d);
          }
          switch (c) {
            case "input":
              Va(d);
              db(d, f, !0);
              break;
            case "textarea":
              Va(d);
              jb(d);
              break;
            case "select":
            case "option":
              break;
            default:
              "function" === typeof f.onClick && (d.onclick = Bf);
          }
          d = e;
          b.updateQueue = d;
          null !== d && (b.flags |= 4);
        } else {
          g = 9 === e.nodeType ? e : e.ownerDocument;
          "http://www.w3.org/1999/xhtml" === a && (a = kb(c));
          "http://www.w3.org/1999/xhtml" === a ? "script" === c ? (a = g.createElement("div"), a.innerHTML = "<script>\x3c/script>", a = a.removeChild(a.firstChild)) : "string" === typeof d.is ? a = g.createElement(c, {
            is: d.is
          }) : (a = g.createElement(c), "select" === c && (g = a, d.multiple ? g.multiple = !0 : d.size && (g.size = d.size))) : a = g.createElementNS(a, c);
          a[Of] = b;
          a[Pf] = d;
          Aj(a, b, !1, !1);
          b.stateNode = a;
          a: {
            g = vb(c, d);
            switch (c) {
              case "dialog":
                D("cancel", a);
                D("close", a);
                e = d;
                break;
              case "iframe":
              case "object":
              case "embed":
                D("load", a);
                e = d;
                break;
              case "video":
              case "audio":
                for (e = 0; e < lf.length; e++) D(lf[e], a);
                e = d;
                break;
              case "source":
                D("error", a);
                e = d;
                break;
              case "img":
              case "image":
              case "link":
                D("error", a);
                D("load", a);
                e = d;
                break;
              case "details":
                D("toggle", a);
                e = d;
                break;
              case "input":
                Za(a, d);
                e = Ya(a, d);
                D("invalid", a);
                break;
              case "option":
                e = d;
                break;
              case "select":
                a._wrapperState = {
                  wasMultiple: !!d.multiple
                };
                e = A({}, d, {
                  value: void 0
                });
                D("invalid", a);
                break;
              case "textarea":
                hb(a, d);
                e = gb(a, d);
                D("invalid", a);
                break;
              default:
                e = d;
            }
            ub(c, e);
            h = e;
            for (f in h) if (h.hasOwnProperty(f)) {
              var k = h[f];
              "style" === f ? sb(a, k) : "dangerouslySetInnerHTML" === f ? (k = k ? k.__html : void 0, null != k && nb(a, k)) : "children" === f ? "string" === typeof k ? ("textarea" !== c || "" !== k) && ob(a, k) : "number" === typeof k && ob(a, "" + k) : "suppressContentEditableWarning" !== f && "suppressHydrationWarning" !== f && "autoFocus" !== f && (ea.hasOwnProperty(f) ? null != k && "onScroll" === f && D("scroll", a) : null != k && ta(a, f, k, g));
            }
            switch (c) {
              case "input":
                Va(a);
                db(a, d, !1);
                break;
              case "textarea":
                Va(a);
                jb(a);
                break;
              case "option":
                null != d.value && a.setAttribute("value", "" + Sa(d.value));
                break;
              case "select":
                a.multiple = !!d.multiple;
                f = d.value;
                null != f ? fb(a, !!d.multiple, f, !1) : null != d.defaultValue && fb(a, !!d.multiple, d.defaultValue, !0);
                break;
              default:
                "function" === typeof e.onClick && (a.onclick = Bf);
            }
            switch (c) {
              case "button":
              case "input":
              case "select":
              case "textarea":
                d = !!d.autoFocus;
                break a;
              case "img":
                d = !0;
                break a;
              default:
                d = !1;
            }
          }
          d && (b.flags |= 4);
        }
        null !== b.ref && (b.flags |= 512, b.flags |= 2097152);
      }
      S(b);
      return null;
    case 6:
      if (a && null != b.stateNode) Dj(a, b, a.memoizedProps, d);else {
        if ("string" !== typeof d && null === b.stateNode) throw Error(p(166));
        c = Hh(Gh.current);
        Hh(Eh.current);
        if (Gg(b)) {
          d = b.stateNode;
          c = b.memoizedProps;
          d[Of] = b;
          if (f = d.nodeValue !== c) if (a = xg, null !== a) switch (a.tag) {
            case 3:
              Af(d.nodeValue, c, 0 !== (a.mode & 1));
              break;
            case 5:
              !0 !== a.memoizedProps.suppressHydrationWarning && Af(d.nodeValue, c, 0 !== (a.mode & 1));
          }
          f && (b.flags |= 4);
        } else d = (9 === c.nodeType ? c : c.ownerDocument).createTextNode(d), d[Of] = b, b.stateNode = d;
      }
      S(b);
      return null;
    case 13:
      E(M);
      d = b.memoizedState;
      if (null === a || null !== a.memoizedState && null !== a.memoizedState.dehydrated) {
        if (I && null !== yg && 0 !== (b.mode & 1) && 0 === (b.flags & 128)) Hg(), Ig(), b.flags |= 98560, f = !1;else if (f = Gg(b), null !== d && null !== d.dehydrated) {
          if (null === a) {
            if (!f) throw Error(p(318));
            f = b.memoizedState;
            f = null !== f ? f.dehydrated : null;
            if (!f) throw Error(p(317));
            f[Of] = b;
          } else Ig(), 0 === (b.flags & 128) && (b.memoizedState = null), b.flags |= 4;
          S(b);
          f = !1;
        } else null !== zg && (Gj(zg), zg = null), f = !0;
        if (!f) return b.flags & 65536 ? b : null;
      }
      if (0 !== (b.flags & 128)) return b.lanes = c, b;
      d = null !== d;
      d !== (null !== a && null !== a.memoizedState) && d && (b.child.flags |= 8192, 0 !== (b.mode & 1) && (null === a || 0 !== (M.current & 1) ? 0 === T && (T = 3) : uj()));
      null !== b.updateQueue && (b.flags |= 4);
      S(b);
      return null;
    case 4:
      return Jh(), Bj(a, b), null === a && sf(b.stateNode.containerInfo), S(b), null;
    case 10:
      return Rg(b.type._context), S(b), null;
    case 17:
      return Zf(b.type) && $f(), S(b), null;
    case 19:
      E(M);
      f = b.memoizedState;
      if (null === f) return S(b), null;
      d = 0 !== (b.flags & 128);
      g = f.rendering;
      if (null === g) {
        if (d) Ej(f, !1);else {
          if (0 !== T || null !== a && 0 !== (a.flags & 128)) for (a = b.child; null !== a;) {
            g = Mh(a);
            if (null !== g) {
              b.flags |= 128;
              Ej(f, !1);
              d = g.updateQueue;
              null !== d && (b.updateQueue = d, b.flags |= 4);
              b.subtreeFlags = 0;
              d = c;
              for (c = b.child; null !== c;) f = c, a = d, f.flags &= 14680066, g = f.alternate, null === g ? (f.childLanes = 0, f.lanes = a, f.child = null, f.subtreeFlags = 0, f.memoizedProps = null, f.memoizedState = null, f.updateQueue = null, f.dependencies = null, f.stateNode = null) : (f.childLanes = g.childLanes, f.lanes = g.lanes, f.child = g.child, f.subtreeFlags = 0, f.deletions = null, f.memoizedProps = g.memoizedProps, f.memoizedState = g.memoizedState, f.updateQueue = g.updateQueue, f.type = g.type, a = g.dependencies, f.dependencies = null === a ? null : {
                lanes: a.lanes,
                firstContext: a.firstContext
              }), c = c.sibling;
              G(M, M.current & 1 | 2);
              return b.child;
            }
            a = a.sibling;
          }
          null !== f.tail && B() > Hj && (b.flags |= 128, d = !0, Ej(f, !1), b.lanes = 4194304);
        }
      } else {
        if (!d) if (a = Mh(g), null !== a) {
          if (b.flags |= 128, d = !0, c = a.updateQueue, null !== c && (b.updateQueue = c, b.flags |= 4), Ej(f, !0), null === f.tail && "hidden" === f.tailMode && !g.alternate && !I) return S(b), null;
        } else 2 * B() - f.renderingStartTime > Hj && 1073741824 !== c && (b.flags |= 128, d = !0, Ej(f, !1), b.lanes = 4194304);
        f.isBackwards ? (g.sibling = b.child, b.child = g) : (c = f.last, null !== c ? c.sibling = g : b.child = g, f.last = g);
      }
      if (null !== f.tail) return b = f.tail, f.rendering = b, f.tail = b.sibling, f.renderingStartTime = B(), b.sibling = null, c = M.current, G(M, d ? c & 1 | 2 : c & 1), b;
      S(b);
      return null;
    case 22:
    case 23:
      return Ij(), d = null !== b.memoizedState, null !== a && null !== a.memoizedState !== d && (b.flags |= 8192), d && 0 !== (b.mode & 1) ? 0 !== (gj & 1073741824) && (S(b), b.subtreeFlags & 6 && (b.flags |= 8192)) : S(b), null;
    case 24:
      return null;
    case 25:
      return null;
  }
  throw Error(p(156, b.tag));
}
function Jj(a, b) {
  wg(b);
  switch (b.tag) {
    case 1:
      return Zf(b.type) && $f(), a = b.flags, a & 65536 ? (b.flags = a & -65537 | 128, b) : null;
    case 3:
      return Jh(), E(Wf), E(H), Oh(), a = b.flags, 0 !== (a & 65536) && 0 === (a & 128) ? (b.flags = a & -65537 | 128, b) : null;
    case 5:
      return Lh(b), null;
    case 13:
      E(M);
      a = b.memoizedState;
      if (null !== a && null !== a.dehydrated) {
        if (null === b.alternate) throw Error(p(340));
        Ig();
      }
      a = b.flags;
      return a & 65536 ? (b.flags = a & -65537 | 128, b) : null;
    case 19:
      return E(M), null;
    case 4:
      return Jh(), null;
    case 10:
      return Rg(b.type._context), null;
    case 22:
    case 23:
      return Ij(), null;
    case 24:
      return null;
    default:
      return null;
  }
}
var Kj = !1,
  U = !1,
  Lj = "function" === typeof WeakSet ? WeakSet : Set,
  V = null;
function Mj(a, b) {
  var c = a.ref;
  if (null !== c) if ("function" === typeof c) try {
    c(null);
  } catch (d) {
    W(a, b, d);
  } else c.current = null;
}
function Nj(a, b, c) {
  try {
    c();
  } catch (d) {
    W(a, b, d);
  }
}
var Oj = !1;
function Pj(a, b) {
  Cf = dd;
  a = Me();
  if (Ne(a)) {
    if ("selectionStart" in a) var c = {
      start: a.selectionStart,
      end: a.selectionEnd
    };else a: {
      c = (c = a.ownerDocument) && c.defaultView || window;
      var d = c.getSelection && c.getSelection();
      if (d && 0 !== d.rangeCount) {
        c = d.anchorNode;
        var e = d.anchorOffset,
          f = d.focusNode;
        d = d.focusOffset;
        try {
          c.nodeType, f.nodeType;
        } catch (F) {
          c = null;
          break a;
        }
        var g = 0,
          h = -1,
          k = -1,
          l = 0,
          m = 0,
          q = a,
          r = null;
        b: for (;;) {
          for (var y;;) {
            q !== c || 0 !== e && 3 !== q.nodeType || (h = g + e);
            q !== f || 0 !== d && 3 !== q.nodeType || (k = g + d);
            3 === q.nodeType && (g += q.nodeValue.length);
            if (null === (y = q.firstChild)) break;
            r = q;
            q = y;
          }
          for (;;) {
            if (q === a) break b;
            r === c && ++l === e && (h = g);
            r === f && ++m === d && (k = g);
            if (null !== (y = q.nextSibling)) break;
            q = r;
            r = q.parentNode;
          }
          q = y;
        }
        c = -1 === h || -1 === k ? null : {
          start: h,
          end: k
        };
      } else c = null;
    }
    c = c || {
      start: 0,
      end: 0
    };
  } else c = null;
  Df = {
    focusedElem: a,
    selectionRange: c
  };
  dd = !1;
  for (V = b; null !== V;) if (b = V, a = b.child, 0 !== (b.subtreeFlags & 1028) && null !== a) a.return = b, V = a;else for (; null !== V;) {
    b = V;
    try {
      var n = b.alternate;
      if (0 !== (b.flags & 1024)) switch (b.tag) {
        case 0:
        case 11:
        case 15:
          break;
        case 1:
          if (null !== n) {
            var t = n.memoizedProps,
              J = n.memoizedState,
              x = b.stateNode,
              w = x.getSnapshotBeforeUpdate(b.elementType === b.type ? t : Lg(b.type, t), J);
            x.__reactInternalSnapshotBeforeUpdate = w;
          }
          break;
        case 3:
          var u = b.stateNode.containerInfo;
          1 === u.nodeType ? u.textContent = "" : 9 === u.nodeType && u.documentElement && u.removeChild(u.documentElement);
          break;
        case 5:
        case 6:
        case 4:
        case 17:
          break;
        default:
          throw Error(p(163));
      }
    } catch (F) {
      W(b, b.return, F);
    }
    a = b.sibling;
    if (null !== a) {
      a.return = b.return;
      V = a;
      break;
    }
    V = b.return;
  }
  n = Oj;
  Oj = !1;
  return n;
}
function Qj(a, b, c) {
  var d = b.updateQueue;
  d = null !== d ? d.lastEffect : null;
  if (null !== d) {
    var e = d = d.next;
    do {
      if ((e.tag & a) === a) {
        var f = e.destroy;
        e.destroy = void 0;
        void 0 !== f && Nj(b, c, f);
      }
      e = e.next;
    } while (e !== d);
  }
}
function Rj(a, b) {
  b = b.updateQueue;
  b = null !== b ? b.lastEffect : null;
  if (null !== b) {
    var c = b = b.next;
    do {
      if ((c.tag & a) === a) {
        var d = c.create;
        c.destroy = d();
      }
      c = c.next;
    } while (c !== b);
  }
}
function Sj(a) {
  var b = a.ref;
  if (null !== b) {
    var c = a.stateNode;
    switch (a.tag) {
      case 5:
        a = c;
        break;
      default:
        a = c;
    }
    "function" === typeof b ? b(a) : b.current = a;
  }
}
function Tj(a) {
  var b = a.alternate;
  null !== b && (a.alternate = null, Tj(b));
  a.child = null;
  a.deletions = null;
  a.sibling = null;
  5 === a.tag && (b = a.stateNode, null !== b && (delete b[Of], delete b[Pf], delete b[of], delete b[Qf], delete b[Rf]));
  a.stateNode = null;
  a.return = null;
  a.dependencies = null;
  a.memoizedProps = null;
  a.memoizedState = null;
  a.pendingProps = null;
  a.stateNode = null;
  a.updateQueue = null;
}
function Uj(a) {
  return 5 === a.tag || 3 === a.tag || 4 === a.tag;
}
function Vj(a) {
  a: for (;;) {
    for (; null === a.sibling;) {
      if (null === a.return || Uj(a.return)) return null;
      a = a.return;
    }
    a.sibling.return = a.return;
    for (a = a.sibling; 5 !== a.tag && 6 !== a.tag && 18 !== a.tag;) {
      if (a.flags & 2) continue a;
      if (null === a.child || 4 === a.tag) continue a;else a.child.return = a, a = a.child;
    }
    if (!(a.flags & 2)) return a.stateNode;
  }
}
function Wj(a, b, c) {
  var d = a.tag;
  if (5 === d || 6 === d) a = a.stateNode, b ? 8 === c.nodeType ? c.parentNode.insertBefore(a, b) : c.insertBefore(a, b) : (8 === c.nodeType ? (b = c.parentNode, b.insertBefore(a, c)) : (b = c, b.appendChild(a)), c = c._reactRootContainer, null !== c && void 0 !== c || null !== b.onclick || (b.onclick = Bf));else if (4 !== d && (a = a.child, null !== a)) for (Wj(a, b, c), a = a.sibling; null !== a;) Wj(a, b, c), a = a.sibling;
}
function Xj(a, b, c) {
  var d = a.tag;
  if (5 === d || 6 === d) a = a.stateNode, b ? c.insertBefore(a, b) : c.appendChild(a);else if (4 !== d && (a = a.child, null !== a)) for (Xj(a, b, c), a = a.sibling; null !== a;) Xj(a, b, c), a = a.sibling;
}
var X = null,
  Yj = !1;
function Zj(a, b, c) {
  for (c = c.child; null !== c;) ak(a, b, c), c = c.sibling;
}
function ak(a, b, c) {
  if (lc && "function" === typeof lc.onCommitFiberUnmount) try {
    lc.onCommitFiberUnmount(kc, c);
  } catch (h) {}
  switch (c.tag) {
    case 5:
      U || Mj(c, b);
    case 6:
      var d = X,
        e = Yj;
      X = null;
      Zj(a, b, c);
      X = d;
      Yj = e;
      null !== X && (Yj ? (a = X, c = c.stateNode, 8 === a.nodeType ? a.parentNode.removeChild(c) : a.removeChild(c)) : X.removeChild(c.stateNode));
      break;
    case 18:
      null !== X && (Yj ? (a = X, c = c.stateNode, 8 === a.nodeType ? Kf(a.parentNode, c) : 1 === a.nodeType && Kf(a, c), bd(a)) : Kf(X, c.stateNode));
      break;
    case 4:
      d = X;
      e = Yj;
      X = c.stateNode.containerInfo;
      Yj = !0;
      Zj(a, b, c);
      X = d;
      Yj = e;
      break;
    case 0:
    case 11:
    case 14:
    case 15:
      if (!U && (d = c.updateQueue, null !== d && (d = d.lastEffect, null !== d))) {
        e = d = d.next;
        do {
          var f = e,
            g = f.destroy;
          f = f.tag;
          void 0 !== g && (0 !== (f & 2) ? Nj(c, b, g) : 0 !== (f & 4) && Nj(c, b, g));
          e = e.next;
        } while (e !== d);
      }
      Zj(a, b, c);
      break;
    case 1:
      if (!U && (Mj(c, b), d = c.stateNode, "function" === typeof d.componentWillUnmount)) try {
        d.props = c.memoizedProps, d.state = c.memoizedState, d.componentWillUnmount();
      } catch (h) {
        W(c, b, h);
      }
      Zj(a, b, c);
      break;
    case 21:
      Zj(a, b, c);
      break;
    case 22:
      c.mode & 1 ? (U = (d = U) || null !== c.memoizedState, Zj(a, b, c), U = d) : Zj(a, b, c);
      break;
    default:
      Zj(a, b, c);
  }
}
function bk(a) {
  var b = a.updateQueue;
  if (null !== b) {
    a.updateQueue = null;
    var c = a.stateNode;
    null === c && (c = a.stateNode = new Lj());
    b.forEach(function (b) {
      var d = ck.bind(null, a, b);
      c.has(b) || (c.add(b), b.then(d, d));
    });
  }
}
function dk(a, b) {
  var c = b.deletions;
  if (null !== c) for (var d = 0; d < c.length; d++) {
    var e = c[d];
    try {
      var f = a,
        g = b,
        h = g;
      a: for (; null !== h;) {
        switch (h.tag) {
          case 5:
            X = h.stateNode;
            Yj = !1;
            break a;
          case 3:
            X = h.stateNode.containerInfo;
            Yj = !0;
            break a;
          case 4:
            X = h.stateNode.containerInfo;
            Yj = !0;
            break a;
        }
        h = h.return;
      }
      if (null === X) throw Error(p(160));
      ak(f, g, e);
      X = null;
      Yj = !1;
      var k = e.alternate;
      null !== k && (k.return = null);
      e.return = null;
    } catch (l) {
      W(e, b, l);
    }
  }
  if (b.subtreeFlags & 12854) for (b = b.child; null !== b;) ek(b, a), b = b.sibling;
}
function ek(a, b) {
  var c = a.alternate,
    d = a.flags;
  switch (a.tag) {
    case 0:
    case 11:
    case 14:
    case 15:
      dk(b, a);
      fk(a);
      if (d & 4) {
        try {
          Qj(3, a, a.return), Rj(3, a);
        } catch (t) {
          W(a, a.return, t);
        }
        try {
          Qj(5, a, a.return);
        } catch (t) {
          W(a, a.return, t);
        }
      }
      break;
    case 1:
      dk(b, a);
      fk(a);
      d & 512 && null !== c && Mj(c, c.return);
      break;
    case 5:
      dk(b, a);
      fk(a);
      d & 512 && null !== c && Mj(c, c.return);
      if (a.flags & 32) {
        var e = a.stateNode;
        try {
          ob(e, "");
        } catch (t) {
          W(a, a.return, t);
        }
      }
      if (d & 4 && (e = a.stateNode, null != e)) {
        var f = a.memoizedProps,
          g = null !== c ? c.memoizedProps : f,
          h = a.type,
          k = a.updateQueue;
        a.updateQueue = null;
        if (null !== k) try {
          "input" === h && "radio" === f.type && null != f.name && ab(e, f);
          vb(h, g);
          var l = vb(h, f);
          for (g = 0; g < k.length; g += 2) {
            var m = k[g],
              q = k[g + 1];
            "style" === m ? sb(e, q) : "dangerouslySetInnerHTML" === m ? nb(e, q) : "children" === m ? ob(e, q) : ta(e, m, q, l);
          }
          switch (h) {
            case "input":
              bb(e, f);
              break;
            case "textarea":
              ib(e, f);
              break;
            case "select":
              var r = e._wrapperState.wasMultiple;
              e._wrapperState.wasMultiple = !!f.multiple;
              var y = f.value;
              null != y ? fb(e, !!f.multiple, y, !1) : r !== !!f.multiple && (null != f.defaultValue ? fb(e, !!f.multiple, f.defaultValue, !0) : fb(e, !!f.multiple, f.multiple ? [] : "", !1));
          }
          e[Pf] = f;
        } catch (t) {
          W(a, a.return, t);
        }
      }
      break;
    case 6:
      dk(b, a);
      fk(a);
      if (d & 4) {
        if (null === a.stateNode) throw Error(p(162));
        e = a.stateNode;
        f = a.memoizedProps;
        try {
          e.nodeValue = f;
        } catch (t) {
          W(a, a.return, t);
        }
      }
      break;
    case 3:
      dk(b, a);
      fk(a);
      if (d & 4 && null !== c && c.memoizedState.isDehydrated) try {
        bd(b.containerInfo);
      } catch (t) {
        W(a, a.return, t);
      }
      break;
    case 4:
      dk(b, a);
      fk(a);
      break;
    case 13:
      dk(b, a);
      fk(a);
      e = a.child;
      e.flags & 8192 && (f = null !== e.memoizedState, e.stateNode.isHidden = f, !f || null !== e.alternate && null !== e.alternate.memoizedState || (gk = B()));
      d & 4 && bk(a);
      break;
    case 22:
      m = null !== c && null !== c.memoizedState;
      a.mode & 1 ? (U = (l = U) || m, dk(b, a), U = l) : dk(b, a);
      fk(a);
      if (d & 8192) {
        l = null !== a.memoizedState;
        if ((a.stateNode.isHidden = l) && !m && 0 !== (a.mode & 1)) for (V = a, m = a.child; null !== m;) {
          for (q = V = m; null !== V;) {
            r = V;
            y = r.child;
            switch (r.tag) {
              case 0:
              case 11:
              case 14:
              case 15:
                Qj(4, r, r.return);
                break;
              case 1:
                Mj(r, r.return);
                var n = r.stateNode;
                if ("function" === typeof n.componentWillUnmount) {
                  d = r;
                  c = r.return;
                  try {
                    b = d, n.props = b.memoizedProps, n.state = b.memoizedState, n.componentWillUnmount();
                  } catch (t) {
                    W(d, c, t);
                  }
                }
                break;
              case 5:
                Mj(r, r.return);
                break;
              case 22:
                if (null !== r.memoizedState) {
                  hk(q);
                  continue;
                }
            }
            null !== y ? (y.return = r, V = y) : hk(q);
          }
          m = m.sibling;
        }
        a: for (m = null, q = a;;) {
          if (5 === q.tag) {
            if (null === m) {
              m = q;
              try {
                e = q.stateNode, l ? (f = e.style, "function" === typeof f.setProperty ? f.setProperty("display", "none", "important") : f.display = "none") : (h = q.stateNode, k = q.memoizedProps.style, g = void 0 !== k && null !== k && k.hasOwnProperty("display") ? k.display : null, h.style.display = rb("display", g));
              } catch (t) {
                W(a, a.return, t);
              }
            }
          } else if (6 === q.tag) {
            if (null === m) try {
              q.stateNode.nodeValue = l ? "" : q.memoizedProps;
            } catch (t) {
              W(a, a.return, t);
            }
          } else if ((22 !== q.tag && 23 !== q.tag || null === q.memoizedState || q === a) && null !== q.child) {
            q.child.return = q;
            q = q.child;
            continue;
          }
          if (q === a) break a;
          for (; null === q.sibling;) {
            if (null === q.return || q.return === a) break a;
            m === q && (m = null);
            q = q.return;
          }
          m === q && (m = null);
          q.sibling.return = q.return;
          q = q.sibling;
        }
      }
      break;
    case 19:
      dk(b, a);
      fk(a);
      d & 4 && bk(a);
      break;
    case 21:
      break;
    default:
      dk(b, a), fk(a);
  }
}
function fk(a) {
  var b = a.flags;
  if (b & 2) {
    try {
      a: {
        for (var c = a.return; null !== c;) {
          if (Uj(c)) {
            var d = c;
            break a;
          }
          c = c.return;
        }
        throw Error(p(160));
      }
      switch (d.tag) {
        case 5:
          var e = d.stateNode;
          d.flags & 32 && (ob(e, ""), d.flags &= -33);
          var f = Vj(a);
          Xj(a, f, e);
          break;
        case 3:
        case 4:
          var g = d.stateNode.containerInfo,
            h = Vj(a);
          Wj(a, h, g);
          break;
        default:
          throw Error(p(161));
      }
    } catch (k) {
      W(a, a.return, k);
    }
    a.flags &= -3;
  }
  b & 4096 && (a.flags &= -4097);
}
function ik(a, b, c) {
  V = a;
  jk(a, b, c);
}
function jk(a, b, c) {
  for (var d = 0 !== (a.mode & 1); null !== V;) {
    var e = V,
      f = e.child;
    if (22 === e.tag && d) {
      var g = null !== e.memoizedState || Kj;
      if (!g) {
        var h = e.alternate,
          k = null !== h && null !== h.memoizedState || U;
        h = Kj;
        var l = U;
        Kj = g;
        if ((U = k) && !l) for (V = e; null !== V;) g = V, k = g.child, 22 === g.tag && null !== g.memoizedState ? kk(e) : null !== k ? (k.return = g, V = k) : kk(e);
        for (; null !== f;) V = f, jk(f, b, c), f = f.sibling;
        V = e;
        Kj = h;
        U = l;
      }
      lk(a, b, c);
    } else 0 !== (e.subtreeFlags & 8772) && null !== f ? (f.return = e, V = f) : lk(a, b, c);
  }
}
function lk(a) {
  for (; null !== V;) {
    var b = V;
    if (0 !== (b.flags & 8772)) {
      var c = b.alternate;
      try {
        if (0 !== (b.flags & 8772)) switch (b.tag) {
          case 0:
          case 11:
          case 15:
            U || Rj(5, b);
            break;
          case 1:
            var d = b.stateNode;
            if (b.flags & 4 && !U) if (null === c) d.componentDidMount();else {
              var e = b.elementType === b.type ? c.memoizedProps : Lg(b.type, c.memoizedProps);
              d.componentDidUpdate(e, c.memoizedState, d.__reactInternalSnapshotBeforeUpdate);
            }
            var f = b.updateQueue;
            null !== f && ih(b, f, d);
            break;
          case 3:
            var g = b.updateQueue;
            if (null !== g) {
              c = null;
              if (null !== b.child) switch (b.child.tag) {
                case 5:
                  c = b.child.stateNode;
                  break;
                case 1:
                  c = b.child.stateNode;
              }
              ih(b, g, c);
            }
            break;
          case 5:
            var h = b.stateNode;
            if (null === c && b.flags & 4) {
              c = h;
              var k = b.memoizedProps;
              switch (b.type) {
                case "button":
                case "input":
                case "select":
                case "textarea":
                  k.autoFocus && c.focus();
                  break;
                case "img":
                  k.src && (c.src = k.src);
              }
            }
            break;
          case 6:
            break;
          case 4:
            break;
          case 12:
            break;
          case 13:
            if (null === b.memoizedState) {
              var l = b.alternate;
              if (null !== l) {
                var m = l.memoizedState;
                if (null !== m) {
                  var q = m.dehydrated;
                  null !== q && bd(q);
                }
              }
            }
            break;
          case 19:
          case 17:
          case 21:
          case 22:
          case 23:
          case 25:
            break;
          default:
            throw Error(p(163));
        }
        U || b.flags & 512 && Sj(b);
      } catch (r) {
        W(b, b.return, r);
      }
    }
    if (b === a) {
      V = null;
      break;
    }
    c = b.sibling;
    if (null !== c) {
      c.return = b.return;
      V = c;
      break;
    }
    V = b.return;
  }
}
function hk(a) {
  for (; null !== V;) {
    var b = V;
    if (b === a) {
      V = null;
      break;
    }
    var c = b.sibling;
    if (null !== c) {
      c.return = b.return;
      V = c;
      break;
    }
    V = b.return;
  }
}
function kk(a) {
  for (; null !== V;) {
    var b = V;
    try {
      switch (b.tag) {
        case 0:
        case 11:
        case 15:
          var c = b.return;
          try {
            Rj(4, b);
          } catch (k) {
            W(b, c, k);
          }
          break;
        case 1:
          var d = b.stateNode;
          if ("function" === typeof d.componentDidMount) {
            var e = b.return;
            try {
              d.componentDidMount();
            } catch (k) {
              W(b, e, k);
            }
          }
          var f = b.return;
          try {
            Sj(b);
          } catch (k) {
            W(b, f, k);
          }
          break;
        case 5:
          var g = b.return;
          try {
            Sj(b);
          } catch (k) {
            W(b, g, k);
          }
      }
    } catch (k) {
      W(b, b.return, k);
    }
    if (b === a) {
      V = null;
      break;
    }
    var h = b.sibling;
    if (null !== h) {
      h.return = b.return;
      V = h;
      break;
    }
    V = b.return;
  }
}
var mk = Math.ceil,
  nk = ua.ReactCurrentDispatcher,
  ok = ua.ReactCurrentOwner,
  pk = ua.ReactCurrentBatchConfig,
  K = 0,
  R = null,
  Y = null,
  Z = 0,
  gj = 0,
  fj = Uf(0),
  T = 0,
  qk = null,
  hh = 0,
  rk = 0,
  sk = 0,
  tk = null,
  uk = null,
  gk = 0,
  Hj = Infinity,
  vk = null,
  Pi = !1,
  Qi = null,
  Si = null,
  wk = !1,
  xk = null,
  yk = 0,
  zk = 0,
  Ak = null,
  Bk = -1,
  Ck = 0;
function L() {
  return 0 !== (K & 6) ? B() : -1 !== Bk ? Bk : Bk = B();
}
function lh(a) {
  if (0 === (a.mode & 1)) return 1;
  if (0 !== (K & 2) && 0 !== Z) return Z & -Z;
  if (null !== Kg.transition) return 0 === Ck && (Ck = yc()), Ck;
  a = C;
  if (0 !== a) return a;
  a = window.event;
  a = void 0 === a ? 16 : jd(a.type);
  return a;
}
function mh(a, b, c, d) {
  if (50 < zk) throw zk = 0, Ak = null, Error(p(185));
  Ac(a, c, d);
  if (0 === (K & 2) || a !== R) a === R && (0 === (K & 2) && (rk |= c), 4 === T && Dk(a, Z)), Ek(a, d), 1 === c && 0 === K && 0 === (b.mode & 1) && (Hj = B() + 500, fg && jg());
}
function Ek(a, b) {
  var c = a.callbackNode;
  wc(a, b);
  var d = uc(a, a === R ? Z : 0);
  if (0 === d) null !== c && bc(c), a.callbackNode = null, a.callbackPriority = 0;else if (b = d & -d, a.callbackPriority !== b) {
    null != c && bc(c);
    if (1 === b) 0 === a.tag ? ig(Fk.bind(null, a)) : hg(Fk.bind(null, a)), Jf(function () {
      0 === (K & 6) && jg();
    }), c = null;else {
      switch (Dc(d)) {
        case 1:
          c = fc;
          break;
        case 4:
          c = gc;
          break;
        case 16:
          c = hc;
          break;
        case 536870912:
          c = jc;
          break;
        default:
          c = hc;
      }
      c = Gk(c, Hk.bind(null, a));
    }
    a.callbackPriority = b;
    a.callbackNode = c;
  }
}
function Hk(a, b) {
  Bk = -1;
  Ck = 0;
  if (0 !== (K & 6)) throw Error(p(327));
  var c = a.callbackNode;
  if (Ik() && a.callbackNode !== c) return null;
  var d = uc(a, a === R ? Z : 0);
  if (0 === d) return null;
  if (0 !== (d & 30) || 0 !== (d & a.expiredLanes) || b) b = Jk(a, d);else {
    b = d;
    var e = K;
    K |= 2;
    var f = Kk();
    if (R !== a || Z !== b) vk = null, Hj = B() + 500, Lk(a, b);
    do try {
      Mk();
      break;
    } catch (h) {
      Nk(a, h);
    } while (1);
    Qg();
    nk.current = f;
    K = e;
    null !== Y ? b = 0 : (R = null, Z = 0, b = T);
  }
  if (0 !== b) {
    2 === b && (e = xc(a), 0 !== e && (d = e, b = Ok(a, e)));
    if (1 === b) throw c = qk, Lk(a, 0), Dk(a, d), Ek(a, B()), c;
    if (6 === b) Dk(a, d);else {
      e = a.current.alternate;
      if (0 === (d & 30) && !Pk(e) && (b = Jk(a, d), 2 === b && (f = xc(a), 0 !== f && (d = f, b = Ok(a, f))), 1 === b)) throw c = qk, Lk(a, 0), Dk(a, d), Ek(a, B()), c;
      a.finishedWork = e;
      a.finishedLanes = d;
      switch (b) {
        case 0:
        case 1:
          throw Error(p(345));
        case 2:
          Qk(a, uk, vk);
          break;
        case 3:
          Dk(a, d);
          if ((d & 130023424) === d && (b = gk + 500 - B(), 10 < b)) {
            if (0 !== uc(a, 0)) break;
            e = a.suspendedLanes;
            if ((e & d) !== d) {
              L();
              a.pingedLanes |= a.suspendedLanes & e;
              break;
            }
            a.timeoutHandle = Ff(Qk.bind(null, a, uk, vk), b);
            break;
          }
          Qk(a, uk, vk);
          break;
        case 4:
          Dk(a, d);
          if ((d & 4194240) === d) break;
          b = a.eventTimes;
          for (e = -1; 0 < d;) {
            var g = 31 - oc(d);
            f = 1 << g;
            g = b[g];
            g > e && (e = g);
            d &= ~f;
          }
          d = e;
          d = B() - d;
          d = (120 > d ? 120 : 480 > d ? 480 : 1080 > d ? 1080 : 1920 > d ? 1920 : 3E3 > d ? 3E3 : 4320 > d ? 4320 : 1960 * mk(d / 1960)) - d;
          if (10 < d) {
            a.timeoutHandle = Ff(Qk.bind(null, a, uk, vk), d);
            break;
          }
          Qk(a, uk, vk);
          break;
        case 5:
          Qk(a, uk, vk);
          break;
        default:
          throw Error(p(329));
      }
    }
  }
  Ek(a, B());
  return a.callbackNode === c ? Hk.bind(null, a) : null;
}
function Ok(a, b) {
  var c = tk;
  a.current.memoizedState.isDehydrated && (Lk(a, b).flags |= 256);
  a = Jk(a, b);
  2 !== a && (b = uk, uk = c, null !== b && Gj(b));
  return a;
}
function Gj(a) {
  null === uk ? uk = a : uk.push.apply(uk, a);
}
function Pk(a) {
  for (var b = a;;) {
    if (b.flags & 16384) {
      var c = b.updateQueue;
      if (null !== c && (c = c.stores, null !== c)) for (var d = 0; d < c.length; d++) {
        var e = c[d],
          f = e.getSnapshot;
        e = e.value;
        try {
          if (!He(f(), e)) return !1;
        } catch (g) {
          return !1;
        }
      }
    }
    c = b.child;
    if (b.subtreeFlags & 16384 && null !== c) c.return = b, b = c;else {
      if (b === a) break;
      for (; null === b.sibling;) {
        if (null === b.return || b.return === a) return !0;
        b = b.return;
      }
      b.sibling.return = b.return;
      b = b.sibling;
    }
  }
  return !0;
}
function Dk(a, b) {
  b &= ~sk;
  b &= ~rk;
  a.suspendedLanes |= b;
  a.pingedLanes &= ~b;
  for (a = a.expirationTimes; 0 < b;) {
    var c = 31 - oc(b),
      d = 1 << c;
    a[c] = -1;
    b &= ~d;
  }
}
function Fk(a) {
  if (0 !== (K & 6)) throw Error(p(327));
  Ik();
  var b = uc(a, 0);
  if (0 === (b & 1)) return Ek(a, B()), null;
  var c = Jk(a, b);
  if (0 !== a.tag && 2 === c) {
    var d = xc(a);
    0 !== d && (b = d, c = Ok(a, d));
  }
  if (1 === c) throw c = qk, Lk(a, 0), Dk(a, b), Ek(a, B()), c;
  if (6 === c) throw Error(p(345));
  a.finishedWork = a.current.alternate;
  a.finishedLanes = b;
  Qk(a, uk, vk);
  Ek(a, B());
  return null;
}
function Rk(a, b) {
  var c = K;
  K |= 1;
  try {
    return a(b);
  } finally {
    K = c, 0 === K && (Hj = B() + 500, fg && jg());
  }
}
function Sk(a) {
  null !== xk && 0 === xk.tag && 0 === (K & 6) && Ik();
  var b = K;
  K |= 1;
  var c = pk.transition,
    d = C;
  try {
    if (pk.transition = null, C = 1, a) return a();
  } finally {
    C = d, pk.transition = c, K = b, 0 === (K & 6) && jg();
  }
}
function Ij() {
  gj = fj.current;
  E(fj);
}
function Lk(a, b) {
  a.finishedWork = null;
  a.finishedLanes = 0;
  var c = a.timeoutHandle;
  -1 !== c && (a.timeoutHandle = -1, Gf(c));
  if (null !== Y) for (c = Y.return; null !== c;) {
    var d = c;
    wg(d);
    switch (d.tag) {
      case 1:
        d = d.type.childContextTypes;
        null !== d && void 0 !== d && $f();
        break;
      case 3:
        Jh();
        E(Wf);
        E(H);
        Oh();
        break;
      case 5:
        Lh(d);
        break;
      case 4:
        Jh();
        break;
      case 13:
        E(M);
        break;
      case 19:
        E(M);
        break;
      case 10:
        Rg(d.type._context);
        break;
      case 22:
      case 23:
        Ij();
    }
    c = c.return;
  }
  R = a;
  Y = a = wh(a.current, null);
  Z = gj = b;
  T = 0;
  qk = null;
  sk = rk = hh = 0;
  uk = tk = null;
  if (null !== Wg) {
    for (b = 0; b < Wg.length; b++) if (c = Wg[b], d = c.interleaved, null !== d) {
      c.interleaved = null;
      var e = d.next,
        f = c.pending;
      if (null !== f) {
        var g = f.next;
        f.next = e;
        d.next = g;
      }
      c.pending = d;
    }
    Wg = null;
  }
  return a;
}
function Nk(a, b) {
  do {
    var c = Y;
    try {
      Qg();
      Ph.current = ai;
      if (Sh) {
        for (var d = N.memoizedState; null !== d;) {
          var e = d.queue;
          null !== e && (e.pending = null);
          d = d.next;
        }
        Sh = !1;
      }
      Rh = 0;
      P = O = N = null;
      Th = !1;
      Uh = 0;
      ok.current = null;
      if (null === c || null === c.return) {
        T = 1;
        qk = b;
        Y = null;
        break;
      }
      a: {
        var f = a,
          g = c.return,
          h = c,
          k = b;
        b = Z;
        h.flags |= 32768;
        if (null !== k && "object" === typeof k && "function" === typeof k.then) {
          var l = k,
            m = h,
            q = m.tag;
          if (0 === (m.mode & 1) && (0 === q || 11 === q || 15 === q)) {
            var r = m.alternate;
            r ? (m.updateQueue = r.updateQueue, m.memoizedState = r.memoizedState, m.lanes = r.lanes) : (m.updateQueue = null, m.memoizedState = null);
          }
          var y = Vi(g);
          if (null !== y) {
            y.flags &= -257;
            Wi(y, g, h, f, b);
            y.mode & 1 && Ti(f, l, b);
            b = y;
            k = l;
            var n = b.updateQueue;
            if (null === n) {
              var t = new Set();
              t.add(k);
              b.updateQueue = t;
            } else n.add(k);
            break a;
          } else {
            if (0 === (b & 1)) {
              Ti(f, l, b);
              uj();
              break a;
            }
            k = Error(p(426));
          }
        } else if (I && h.mode & 1) {
          var J = Vi(g);
          if (null !== J) {
            0 === (J.flags & 65536) && (J.flags |= 256);
            Wi(J, g, h, f, b);
            Jg(Ki(k, h));
            break a;
          }
        }
        f = k = Ki(k, h);
        4 !== T && (T = 2);
        null === tk ? tk = [f] : tk.push(f);
        f = g;
        do {
          switch (f.tag) {
            case 3:
              f.flags |= 65536;
              b &= -b;
              f.lanes |= b;
              var x = Oi(f, k, b);
              fh(f, x);
              break a;
            case 1:
              h = k;
              var w = f.type,
                u = f.stateNode;
              if (0 === (f.flags & 128) && ("function" === typeof w.getDerivedStateFromError || null !== u && "function" === typeof u.componentDidCatch && (null === Si || !Si.has(u)))) {
                f.flags |= 65536;
                b &= -b;
                f.lanes |= b;
                var F = Ri(f, h, b);
                fh(f, F);
                break a;
              }
          }
          f = f.return;
        } while (null !== f);
      }
      Tk(c);
    } catch (na) {
      b = na;
      Y === c && null !== c && (Y = c = c.return);
      continue;
    }
    break;
  } while (1);
}
function Kk() {
  var a = nk.current;
  nk.current = ai;
  return null === a ? ai : a;
}
function uj() {
  if (0 === T || 3 === T || 2 === T) T = 4;
  null === R || 0 === (hh & 268435455) && 0 === (rk & 268435455) || Dk(R, Z);
}
function Jk(a, b) {
  var c = K;
  K |= 2;
  var d = Kk();
  if (R !== a || Z !== b) vk = null, Lk(a, b);
  do try {
    Uk();
    break;
  } catch (e) {
    Nk(a, e);
  } while (1);
  Qg();
  K = c;
  nk.current = d;
  if (null !== Y) throw Error(p(261));
  R = null;
  Z = 0;
  return T;
}
function Uk() {
  for (; null !== Y;) Vk(Y);
}
function Mk() {
  for (; null !== Y && !cc();) Vk(Y);
}
function Vk(a) {
  var b = Wk(a.alternate, a, gj);
  a.memoizedProps = a.pendingProps;
  null === b ? Tk(a) : Y = b;
  ok.current = null;
}
function Tk(a) {
  var b = a;
  do {
    var c = b.alternate;
    a = b.return;
    if (0 === (b.flags & 32768)) {
      if (c = Fj(c, b, gj), null !== c) {
        Y = c;
        return;
      }
    } else {
      c = Jj(c, b);
      if (null !== c) {
        c.flags &= 32767;
        Y = c;
        return;
      }
      if (null !== a) a.flags |= 32768, a.subtreeFlags = 0, a.deletions = null;else {
        T = 6;
        Y = null;
        return;
      }
    }
    b = b.sibling;
    if (null !== b) {
      Y = b;
      return;
    }
    Y = b = a;
  } while (null !== b);
  0 === T && (T = 5);
}
function Qk(a, b, c) {
  var d = C,
    e = pk.transition;
  try {
    pk.transition = null, C = 1, Xk(a, b, c, d);
  } finally {
    pk.transition = e, C = d;
  }
  return null;
}
function Xk(a, b, c, d) {
  do Ik(); while (null !== xk);
  if (0 !== (K & 6)) throw Error(p(327));
  c = a.finishedWork;
  var e = a.finishedLanes;
  if (null === c) return null;
  a.finishedWork = null;
  a.finishedLanes = 0;
  if (c === a.current) throw Error(p(177));
  a.callbackNode = null;
  a.callbackPriority = 0;
  var f = c.lanes | c.childLanes;
  Bc(a, f);
  a === R && (Y = R = null, Z = 0);
  0 === (c.subtreeFlags & 2064) && 0 === (c.flags & 2064) || wk || (wk = !0, Gk(hc, function () {
    Ik();
    return null;
  }));
  f = 0 !== (c.flags & 15990);
  if (0 !== (c.subtreeFlags & 15990) || f) {
    f = pk.transition;
    pk.transition = null;
    var g = C;
    C = 1;
    var h = K;
    K |= 4;
    ok.current = null;
    Pj(a, c);
    ek(c, a);
    Oe(Df);
    dd = !!Cf;
    Df = Cf = null;
    a.current = c;
    ik(c, a, e);
    dc();
    K = h;
    C = g;
    pk.transition = f;
  } else a.current = c;
  wk && (wk = !1, xk = a, yk = e);
  f = a.pendingLanes;
  0 === f && (Si = null);
  mc(c.stateNode, d);
  Ek(a, B());
  if (null !== b) for (d = a.onRecoverableError, c = 0; c < b.length; c++) e = b[c], d(e.value, {
    componentStack: e.stack,
    digest: e.digest
  });
  if (Pi) throw Pi = !1, a = Qi, Qi = null, a;
  0 !== (yk & 1) && 0 !== a.tag && Ik();
  f = a.pendingLanes;
  0 !== (f & 1) ? a === Ak ? zk++ : (zk = 0, Ak = a) : zk = 0;
  jg();
  return null;
}
function Ik() {
  if (null !== xk) {
    var a = Dc(yk),
      b = pk.transition,
      c = C;
    try {
      pk.transition = null;
      C = 16 > a ? 16 : a;
      if (null === xk) var d = !1;else {
        a = xk;
        xk = null;
        yk = 0;
        if (0 !== (K & 6)) throw Error(p(331));
        var e = K;
        K |= 4;
        for (V = a.current; null !== V;) {
          var f = V,
            g = f.child;
          if (0 !== (V.flags & 16)) {
            var h = f.deletions;
            if (null !== h) {
              for (var k = 0; k < h.length; k++) {
                var l = h[k];
                for (V = l; null !== V;) {
                  var m = V;
                  switch (m.tag) {
                    case 0:
                    case 11:
                    case 15:
                      Qj(8, m, f);
                  }
                  var q = m.child;
                  if (null !== q) q.return = m, V = q;else for (; null !== V;) {
                    m = V;
                    var r = m.sibling,
                      y = m.return;
                    Tj(m);
                    if (m === l) {
                      V = null;
                      break;
                    }
                    if (null !== r) {
                      r.return = y;
                      V = r;
                      break;
                    }
                    V = y;
                  }
                }
              }
              var n = f.alternate;
              if (null !== n) {
                var t = n.child;
                if (null !== t) {
                  n.child = null;
                  do {
                    var J = t.sibling;
                    t.sibling = null;
                    t = J;
                  } while (null !== t);
                }
              }
              V = f;
            }
          }
          if (0 !== (f.subtreeFlags & 2064) && null !== g) g.return = f, V = g;else b: for (; null !== V;) {
            f = V;
            if (0 !== (f.flags & 2048)) switch (f.tag) {
              case 0:
              case 11:
              case 15:
                Qj(9, f, f.return);
            }
            var x = f.sibling;
            if (null !== x) {
              x.return = f.return;
              V = x;
              break b;
            }
            V = f.return;
          }
        }
        var w = a.current;
        for (V = w; null !== V;) {
          g = V;
          var u = g.child;
          if (0 !== (g.subtreeFlags & 2064) && null !== u) u.return = g, V = u;else b: for (g = w; null !== V;) {
            h = V;
            if (0 !== (h.flags & 2048)) try {
              switch (h.tag) {
                case 0:
                case 11:
                case 15:
                  Rj(9, h);
              }
            } catch (na) {
              W(h, h.return, na);
            }
            if (h === g) {
              V = null;
              break b;
            }
            var F = h.sibling;
            if (null !== F) {
              F.return = h.return;
              V = F;
              break b;
            }
            V = h.return;
          }
        }
        K = e;
        jg();
        if (lc && "function" === typeof lc.onPostCommitFiberRoot) try {
          lc.onPostCommitFiberRoot(kc, a);
        } catch (na) {}
        d = !0;
      }
      return d;
    } finally {
      C = c, pk.transition = b;
    }
  }
  return !1;
}
function Yk(a, b, c) {
  b = Ki(c, b);
  b = Oi(a, b, 1);
  a = dh(a, b, 1);
  b = L();
  null !== a && (Ac(a, 1, b), Ek(a, b));
}
function W(a, b, c) {
  if (3 === a.tag) Yk(a, a, c);else for (; null !== b;) {
    if (3 === b.tag) {
      Yk(b, a, c);
      break;
    } else if (1 === b.tag) {
      var d = b.stateNode;
      if ("function" === typeof b.type.getDerivedStateFromError || "function" === typeof d.componentDidCatch && (null === Si || !Si.has(d))) {
        a = Ki(c, a);
        a = Ri(b, a, 1);
        b = dh(b, a, 1);
        a = L();
        null !== b && (Ac(b, 1, a), Ek(b, a));
        break;
      }
    }
    b = b.return;
  }
}
function Ui(a, b, c) {
  var d = a.pingCache;
  null !== d && d.delete(b);
  b = L();
  a.pingedLanes |= a.suspendedLanes & c;
  R === a && (Z & c) === c && (4 === T || 3 === T && (Z & 130023424) === Z && 500 > B() - gk ? Lk(a, 0) : sk |= c);
  Ek(a, b);
}
function Zk(a, b) {
  0 === b && (0 === (a.mode & 1) ? b = 1 : (b = sc, sc <<= 1, 0 === (sc & 130023424) && (sc = 4194304)));
  var c = L();
  a = Zg(a, b);
  null !== a && (Ac(a, b, c), Ek(a, c));
}
function vj(a) {
  var b = a.memoizedState,
    c = 0;
  null !== b && (c = b.retryLane);
  Zk(a, c);
}
function ck(a, b) {
  var c = 0;
  switch (a.tag) {
    case 13:
      var d = a.stateNode;
      var e = a.memoizedState;
      null !== e && (c = e.retryLane);
      break;
    case 19:
      d = a.stateNode;
      break;
    default:
      throw Error(p(314));
  }
  null !== d && d.delete(b);
  Zk(a, c);
}
var Wk;
Wk = function (a, b, c) {
  if (null !== a) {
    if (a.memoizedProps !== b.pendingProps || Wf.current) Ug = !0;else {
      if (0 === (a.lanes & c) && 0 === (b.flags & 128)) return Ug = !1, zj(a, b, c);
      Ug = 0 !== (a.flags & 131072) ? !0 : !1;
    }
  } else Ug = !1, I && 0 !== (b.flags & 1048576) && ug(b, ng, b.index);
  b.lanes = 0;
  switch (b.tag) {
    case 2:
      var d = b.type;
      jj(a, b);
      a = b.pendingProps;
      var e = Yf(b, H.current);
      Tg(b, c);
      e = Xh(null, b, d, a, e, c);
      var f = bi();
      b.flags |= 1;
      "object" === typeof e && null !== e && "function" === typeof e.render && void 0 === e.$$typeof ? (b.tag = 1, b.memoizedState = null, b.updateQueue = null, Zf(d) ? (f = !0, cg(b)) : f = !1, b.memoizedState = null !== e.state && void 0 !== e.state ? e.state : null, ah(b), e.updater = nh, b.stateNode = e, e._reactInternals = b, rh(b, d, a, c), b = kj(null, b, d, !0, f, c)) : (b.tag = 0, I && f && vg(b), Yi(null, b, e, c), b = b.child);
      return b;
    case 16:
      d = b.elementType;
      a: {
        jj(a, b);
        a = b.pendingProps;
        e = d._init;
        d = e(d._payload);
        b.type = d;
        e = b.tag = $k(d);
        a = Lg(d, a);
        switch (e) {
          case 0:
            b = dj(null, b, d, a, c);
            break a;
          case 1:
            b = ij(null, b, d, a, c);
            break a;
          case 11:
            b = Zi(null, b, d, a, c);
            break a;
          case 14:
            b = aj(null, b, d, Lg(d.type, a), c);
            break a;
        }
        throw Error(p(306, d, ""));
      }
      return b;
    case 0:
      return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Lg(d, e), dj(a, b, d, e, c);
    case 1:
      return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Lg(d, e), ij(a, b, d, e, c);
    case 3:
      a: {
        lj(b);
        if (null === a) throw Error(p(387));
        d = b.pendingProps;
        f = b.memoizedState;
        e = f.element;
        bh(a, b);
        gh(b, d, null, c);
        var g = b.memoizedState;
        d = g.element;
        if (f.isDehydrated) {
          if (f = {
            element: d,
            isDehydrated: !1,
            cache: g.cache,
            pendingSuspenseBoundaries: g.pendingSuspenseBoundaries,
            transitions: g.transitions
          }, b.updateQueue.baseState = f, b.memoizedState = f, b.flags & 256) {
            e = Ki(Error(p(423)), b);
            b = mj(a, b, d, c, e);
            break a;
          } else if (d !== e) {
            e = Ki(Error(p(424)), b);
            b = mj(a, b, d, c, e);
            break a;
          } else for (yg = Lf(b.stateNode.containerInfo.firstChild), xg = b, I = !0, zg = null, c = Ch(b, null, d, c), b.child = c; c;) c.flags = c.flags & -3 | 4096, c = c.sibling;
        } else {
          Ig();
          if (d === e) {
            b = $i(a, b, c);
            break a;
          }
          Yi(a, b, d, c);
        }
        b = b.child;
      }
      return b;
    case 5:
      return Kh(b), null === a && Eg(b), d = b.type, e = b.pendingProps, f = null !== a ? a.memoizedProps : null, g = e.children, Ef(d, e) ? g = null : null !== f && Ef(d, f) && (b.flags |= 32), hj(a, b), Yi(a, b, g, c), b.child;
    case 6:
      return null === a && Eg(b), null;
    case 13:
      return pj(a, b, c);
    case 4:
      return Ih(b, b.stateNode.containerInfo), d = b.pendingProps, null === a ? b.child = Bh(b, null, d, c) : Yi(a, b, d, c), b.child;
    case 11:
      return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Lg(d, e), Zi(a, b, d, e, c);
    case 7:
      return Yi(a, b, b.pendingProps, c), b.child;
    case 8:
      return Yi(a, b, b.pendingProps.children, c), b.child;
    case 12:
      return Yi(a, b, b.pendingProps.children, c), b.child;
    case 10:
      a: {
        d = b.type._context;
        e = b.pendingProps;
        f = b.memoizedProps;
        g = e.value;
        G(Mg, d._currentValue);
        d._currentValue = g;
        if (null !== f) if (He(f.value, g)) {
          if (f.children === e.children && !Wf.current) {
            b = $i(a, b, c);
            break a;
          }
        } else for (f = b.child, null !== f && (f.return = b); null !== f;) {
          var h = f.dependencies;
          if (null !== h) {
            g = f.child;
            for (var k = h.firstContext; null !== k;) {
              if (k.context === d) {
                if (1 === f.tag) {
                  k = ch(-1, c & -c);
                  k.tag = 2;
                  var l = f.updateQueue;
                  if (null !== l) {
                    l = l.shared;
                    var m = l.pending;
                    null === m ? k.next = k : (k.next = m.next, m.next = k);
                    l.pending = k;
                  }
                }
                f.lanes |= c;
                k = f.alternate;
                null !== k && (k.lanes |= c);
                Sg(f.return, c, b);
                h.lanes |= c;
                break;
              }
              k = k.next;
            }
          } else if (10 === f.tag) g = f.type === b.type ? null : f.child;else if (18 === f.tag) {
            g = f.return;
            if (null === g) throw Error(p(341));
            g.lanes |= c;
            h = g.alternate;
            null !== h && (h.lanes |= c);
            Sg(g, c, b);
            g = f.sibling;
          } else g = f.child;
          if (null !== g) g.return = f;else for (g = f; null !== g;) {
            if (g === b) {
              g = null;
              break;
            }
            f = g.sibling;
            if (null !== f) {
              f.return = g.return;
              g = f;
              break;
            }
            g = g.return;
          }
          f = g;
        }
        Yi(a, b, e.children, c);
        b = b.child;
      }
      return b;
    case 9:
      return e = b.type, d = b.pendingProps.children, Tg(b, c), e = Vg(e), d = d(e), b.flags |= 1, Yi(a, b, d, c), b.child;
    case 14:
      return d = b.type, e = Lg(d, b.pendingProps), e = Lg(d.type, e), aj(a, b, d, e, c);
    case 15:
      return cj(a, b, b.type, b.pendingProps, c);
    case 17:
      return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Lg(d, e), jj(a, b), b.tag = 1, Zf(d) ? (a = !0, cg(b)) : a = !1, Tg(b, c), ph(b, d, e), rh(b, d, e, c), kj(null, b, d, !0, a, c);
    case 19:
      return yj(a, b, c);
    case 22:
      return ej(a, b, c);
  }
  throw Error(p(156, b.tag));
};
function Gk(a, b) {
  return ac(a, b);
}
function al(a, b, c, d) {
  this.tag = a;
  this.key = c;
  this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;
  this.index = 0;
  this.ref = null;
  this.pendingProps = b;
  this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;
  this.mode = d;
  this.subtreeFlags = this.flags = 0;
  this.deletions = null;
  this.childLanes = this.lanes = 0;
  this.alternate = null;
}
function Bg(a, b, c, d) {
  return new al(a, b, c, d);
}
function bj(a) {
  a = a.prototype;
  return !(!a || !a.isReactComponent);
}
function $k(a) {
  if ("function" === typeof a) return bj(a) ? 1 : 0;
  if (void 0 !== a && null !== a) {
    a = a.$$typeof;
    if (a === Da) return 11;
    if (a === Ga) return 14;
  }
  return 2;
}
function wh(a, b) {
  var c = a.alternate;
  null === c ? (c = Bg(a.tag, b, a.key, a.mode), c.elementType = a.elementType, c.type = a.type, c.stateNode = a.stateNode, c.alternate = a, a.alternate = c) : (c.pendingProps = b, c.type = a.type, c.flags = 0, c.subtreeFlags = 0, c.deletions = null);
  c.flags = a.flags & 14680064;
  c.childLanes = a.childLanes;
  c.lanes = a.lanes;
  c.child = a.child;
  c.memoizedProps = a.memoizedProps;
  c.memoizedState = a.memoizedState;
  c.updateQueue = a.updateQueue;
  b = a.dependencies;
  c.dependencies = null === b ? null : {
    lanes: b.lanes,
    firstContext: b.firstContext
  };
  c.sibling = a.sibling;
  c.index = a.index;
  c.ref = a.ref;
  return c;
}
function yh(a, b, c, d, e, f) {
  var g = 2;
  d = a;
  if ("function" === typeof a) bj(a) && (g = 1);else if ("string" === typeof a) g = 5;else a: switch (a) {
    case ya:
      return Ah(c.children, e, f, b);
    case za:
      g = 8;
      e |= 8;
      break;
    case Aa:
      return a = Bg(12, c, b, e | 2), a.elementType = Aa, a.lanes = f, a;
    case Ea:
      return a = Bg(13, c, b, e), a.elementType = Ea, a.lanes = f, a;
    case Fa:
      return a = Bg(19, c, b, e), a.elementType = Fa, a.lanes = f, a;
    case Ia:
      return qj(c, e, f, b);
    default:
      if ("object" === typeof a && null !== a) switch (a.$$typeof) {
        case Ba:
          g = 10;
          break a;
        case Ca:
          g = 9;
          break a;
        case Da:
          g = 11;
          break a;
        case Ga:
          g = 14;
          break a;
        case Ha:
          g = 16;
          d = null;
          break a;
      }
      throw Error(p(130, null == a ? a : typeof a, ""));
  }
  b = Bg(g, c, b, e);
  b.elementType = a;
  b.type = d;
  b.lanes = f;
  return b;
}
function Ah(a, b, c, d) {
  a = Bg(7, a, d, b);
  a.lanes = c;
  return a;
}
function qj(a, b, c, d) {
  a = Bg(22, a, d, b);
  a.elementType = Ia;
  a.lanes = c;
  a.stateNode = {
    isHidden: !1
  };
  return a;
}
function xh(a, b, c) {
  a = Bg(6, a, null, b);
  a.lanes = c;
  return a;
}
function zh(a, b, c) {
  b = Bg(4, null !== a.children ? a.children : [], a.key, b);
  b.lanes = c;
  b.stateNode = {
    containerInfo: a.containerInfo,
    pendingChildren: null,
    implementation: a.implementation
  };
  return b;
}
function bl(a, b, c, d, e) {
  this.tag = b;
  this.containerInfo = a;
  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(0);
  this.expirationTimes = zc(-1);
  this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;
  this.entanglements = zc(0);
  this.identifierPrefix = d;
  this.onRecoverableError = e;
  this.mutableSourceEagerHydrationData = null;
}
function cl(a, b, c, d, e, f, g, h, k) {
  a = new bl(a, b, c, h, k);
  1 === b ? (b = 1, !0 === f && (b |= 8)) : b = 0;
  f = Bg(3, null, null, b);
  a.current = f;
  f.stateNode = a;
  f.memoizedState = {
    element: d,
    isDehydrated: c,
    cache: null,
    transitions: null,
    pendingSuspenseBoundaries: null
  };
  ah(f);
  return a;
}
function dl(a, b, c) {
  var d = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
  return {
    $$typeof: wa,
    key: null == d ? null : "" + d,
    children: a,
    containerInfo: b,
    implementation: c
  };
}
function el(a) {
  if (!a) return Vf;
  a = a._reactInternals;
  a: {
    if (Vb(a) !== a || 1 !== a.tag) throw Error(p(170));
    var b = a;
    do {
      switch (b.tag) {
        case 3:
          b = b.stateNode.context;
          break a;
        case 1:
          if (Zf(b.type)) {
            b = b.stateNode.__reactInternalMemoizedMergedChildContext;
            break a;
          }
      }
      b = b.return;
    } while (null !== b);
    throw Error(p(171));
  }
  if (1 === a.tag) {
    var c = a.type;
    if (Zf(c)) return bg(a, c, b);
  }
  return b;
}
function fl(a, b, c, d, e, f, g, h, k) {
  a = cl(c, d, !0, a, e, f, g, h, k);
  a.context = el(null);
  c = a.current;
  d = L();
  e = lh(c);
  f = ch(d, e);
  f.callback = void 0 !== b && null !== b ? b : null;
  dh(c, f, e);
  a.current.lanes = e;
  Ac(a, e, d);
  Ek(a, d);
  return a;
}
function gl(a, b, c, d) {
  var e = b.current,
    f = L(),
    g = lh(e);
  c = el(c);
  null === b.context ? b.context = c : b.pendingContext = c;
  b = ch(f, g);
  b.payload = {
    element: a
  };
  d = void 0 === d ? null : d;
  null !== d && (b.callback = d);
  a = dh(e, b, g);
  null !== a && (mh(a, e, g, f), eh(a, e, g));
  return g;
}
function hl(a) {
  a = a.current;
  if (!a.child) return null;
  switch (a.child.tag) {
    case 5:
      return a.child.stateNode;
    default:
      return a.child.stateNode;
  }
}
function il(a, b) {
  a = a.memoizedState;
  if (null !== a && null !== a.dehydrated) {
    var c = a.retryLane;
    a.retryLane = 0 !== c && c < b ? c : b;
  }
}
function jl(a, b) {
  il(a, b);
  (a = a.alternate) && il(a, b);
}
function kl() {
  return null;
}
var ll = "function" === typeof reportError ? reportError : function (a) {
  console.error(a);
};
function ml(a) {
  this._internalRoot = a;
}
nl.prototype.render = ml.prototype.render = function (a) {
  var b = this._internalRoot;
  if (null === b) throw Error(p(409));
  gl(a, b, null, null);
};
nl.prototype.unmount = ml.prototype.unmount = function () {
  var a = this._internalRoot;
  if (null !== a) {
    this._internalRoot = null;
    var b = a.containerInfo;
    Sk(function () {
      gl(null, a, null, null);
    });
    b[uf] = null;
  }
};
function nl(a) {
  this._internalRoot = a;
}
nl.prototype.unstable_scheduleHydration = function (a) {
  if (a) {
    var b = Hc();
    a = {
      blockedOn: null,
      target: a,
      priority: b
    };
    for (var c = 0; c < Qc.length && 0 !== b && b < Qc[c].priority; c++);
    Qc.splice(c, 0, a);
    0 === c && Vc(a);
  }
};
function ol(a) {
  return !(!a || 1 !== a.nodeType && 9 !== a.nodeType && 11 !== a.nodeType);
}
function pl(a) {
  return !(!a || 1 !== a.nodeType && 9 !== a.nodeType && 11 !== a.nodeType && (8 !== a.nodeType || " react-mount-point-unstable " !== a.nodeValue));
}
function ql() {}
function rl(a, b, c, d, e) {
  if (e) {
    if ("function" === typeof d) {
      var f = d;
      d = function () {
        var a = hl(g);
        f.call(a);
      };
    }
    var g = fl(b, d, a, 0, null, !1, !1, "", ql);
    a._reactRootContainer = g;
    a[uf] = g.current;
    sf(8 === a.nodeType ? a.parentNode : a);
    Sk();
    return g;
  }
  for (; e = a.lastChild;) a.removeChild(e);
  if ("function" === typeof d) {
    var h = d;
    d = function () {
      var a = hl(k);
      h.call(a);
    };
  }
  var k = cl(a, 0, !1, null, null, !1, !1, "", ql);
  a._reactRootContainer = k;
  a[uf] = k.current;
  sf(8 === a.nodeType ? a.parentNode : a);
  Sk(function () {
    gl(b, k, c, d);
  });
  return k;
}
function sl(a, b, c, d, e) {
  var f = c._reactRootContainer;
  if (f) {
    var g = f;
    if ("function" === typeof e) {
      var h = e;
      e = function () {
        var a = hl(g);
        h.call(a);
      };
    }
    gl(b, g, a, e);
  } else g = rl(c, b, a, e, d);
  return hl(g);
}
Ec = function (a) {
  switch (a.tag) {
    case 3:
      var b = a.stateNode;
      if (b.current.memoizedState.isDehydrated) {
        var c = tc(b.pendingLanes);
        0 !== c && (Cc(b, c | 1), Ek(b, B()), 0 === (K & 6) && (Hj = B() + 500, jg()));
      }
      break;
    case 13:
      Sk(function () {
        var b = Zg(a, 1);
        if (null !== b) {
          var c = L();
          mh(b, a, 1, c);
        }
      }), jl(a, 1);
  }
};
Fc = function (a) {
  if (13 === a.tag) {
    var b = Zg(a, 134217728);
    if (null !== b) {
      var c = L();
      mh(b, a, 134217728, c);
    }
    jl(a, 134217728);
  }
};
Gc = function (a) {
  if (13 === a.tag) {
    var b = lh(a),
      c = Zg(a, b);
    if (null !== c) {
      var d = L();
      mh(c, a, b, d);
    }
    jl(a, b);
  }
};
Hc = function () {
  return C;
};
Ic = function (a, b) {
  var c = C;
  try {
    return C = a, b();
  } finally {
    C = c;
  }
};
yb = function (a, b, c) {
  switch (b) {
    case "input":
      bb(a, c);
      b = c.name;
      if ("radio" === c.type && null != b) {
        for (c = a; c.parentNode;) c = c.parentNode;
        c = c.querySelectorAll("input[name=" + JSON.stringify("" + b) + '][type="radio"]');
        for (b = 0; b < c.length; b++) {
          var d = c[b];
          if (d !== a && d.form === a.form) {
            var e = Db(d);
            if (!e) throw Error(p(90));
            Wa(d);
            bb(d, e);
          }
        }
      }
      break;
    case "textarea":
      ib(a, c);
      break;
    case "select":
      b = c.value, null != b && fb(a, !!c.multiple, b, !1);
  }
};
Gb = Rk;
Hb = Sk;
var tl = {
    usingClientEntryPoint: !1,
    Events: [Cb, ue, Db, Eb, Fb, Rk]
  },
  ul = {
    findFiberByHostInstance: Wc,
    bundleType: 0,
    version: "18.2.0",
    rendererPackageName: "react-dom"
  };
var vl = {
  bundleType: ul.bundleType,
  version: ul.version,
  rendererPackageName: ul.rendererPackageName,
  rendererConfig: ul.rendererConfig,
  overrideHookState: null,
  overrideHookStateDeletePath: null,
  overrideHookStateRenamePath: null,
  overrideProps: null,
  overridePropsDeletePath: null,
  overridePropsRenamePath: null,
  setErrorHandler: null,
  setSuspenseHandler: null,
  scheduleUpdate: null,
  currentDispatcherRef: ua.ReactCurrentDispatcher,
  findHostInstanceByFiber: function (a) {
    a = Zb(a);
    return null === a ? null : a.stateNode;
  },
  findFiberByHostInstance: ul.findFiberByHostInstance || kl,
  findHostInstancesForRefresh: null,
  scheduleRefresh: null,
  scheduleRoot: null,
  setRefreshHandler: null,
  getCurrentFiber: null,
  reconcilerVersion: "18.2.0-next-9e3b772b8-20220608"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
  var wl = __REACT_DEVTOOLS_GLOBAL_HOOK__;
  if (!wl.isDisabled && wl.supportsFiber) try {
    kc = wl.inject(vl), lc = wl;
  } catch (a) {}
}
exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = tl;
exports.createPortal = function (a, b) {
  var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
  if (!ol(b)) throw Error(p(200));
  return dl(a, b, null, c);
};
exports.createRoot = function (a, b) {
  if (!ol(a)) throw Error(p(299));
  var c = !1,
    d = "",
    e = ll;
  null !== b && void 0 !== b && (!0 === b.unstable_strictMode && (c = !0), void 0 !== b.identifierPrefix && (d = b.identifierPrefix), void 0 !== b.onRecoverableError && (e = b.onRecoverableError));
  b = cl(a, 1, !1, null, null, c, !1, d, e);
  a[uf] = b.current;
  sf(8 === a.nodeType ? a.parentNode : a);
  return new ml(b);
};
exports.findDOMNode = function (a) {
  if (null == a) return null;
  if (1 === a.nodeType) return a;
  var b = a._reactInternals;
  if (void 0 === b) {
    if ("function" === typeof a.render) throw Error(p(188));
    a = Object.keys(a).join(",");
    throw Error(p(268, a));
  }
  a = Zb(b);
  a = null === a ? null : a.stateNode;
  return a;
};
exports.flushSync = function (a) {
  return Sk(a);
};
exports.hydrate = function (a, b, c) {
  if (!pl(b)) throw Error(p(200));
  return sl(null, a, b, !0, c);
};
exports.hydrateRoot = function (a, b, c) {
  if (!ol(a)) throw Error(p(405));
  var d = null != c && c.hydratedSources || null,
    e = !1,
    f = "",
    g = ll;
  null !== c && void 0 !== c && (!0 === c.unstable_strictMode && (e = !0), void 0 !== c.identifierPrefix && (f = c.identifierPrefix), void 0 !== c.onRecoverableError && (g = c.onRecoverableError));
  b = fl(b, null, a, 1, null != c ? c : null, e, !1, f, g);
  a[uf] = b.current;
  sf(a);
  if (d) for (a = 0; a < d.length; a++) c = d[a], e = c._getVersion, e = e(c._source), null == b.mutableSourceEagerHydrationData ? b.mutableSourceEagerHydrationData = [c, e] : b.mutableSourceEagerHydrationData.push(c, e);
  return new nl(b);
};
exports.render = function (a, b, c) {
  if (!pl(b)) throw Error(p(200));
  return sl(null, a, b, !1, c);
};
exports.unmountComponentAtNode = function (a) {
  if (!pl(a)) throw Error(p(40));
  return a._reactRootContainer ? (Sk(function () {
    sl(null, null, a, !1, function () {
      a._reactRootContainer = null;
      a[uf] = null;
    });
  }), !0) : !1;
};
exports.unstable_batchedUpdates = Rk;
exports.unstable_renderSubtreeIntoContainer = function (a, b, c, d) {
  if (!pl(c)) throw Error(p(200));
  if (null == a || void 0 === a._reactInternals) throw Error(p(38));
  return sl(a, b, c, !1, d);
};
exports.version = "18.2.0-next-9e3b772b8-20220608";

/***/ }),

/***/ 3884:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var m = __webpack_require__(7366);
if (true) {
  exports.createRoot = m.createRoot;
  exports.hydrateRoot = m.hydrateRoot;
} else { var i; }

/***/ }),

/***/ 7366:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


function checkDCE() {
  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {
    return;
  }
  if (false) {}
  try {
    // Verify that the code above has been dead code eliminated (DCE'd).
    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
  } catch (err) {
    // DevTools shouldn't crash React, no matter what.
    // We should still report in case we break this code.
    console.error(err);
  }
}
if (true) {
  // DCE check should happen before ReactDOM bundle executes so that
  // DevTools can report bad minification during injection.
  checkDCE();
  module.exports = __webpack_require__(4883);
} else {}

/***/ }),

/***/ 4918:
/***/ ((__unused_webpack_module, exports) => {

"use strict";
/** @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 b = "function" === typeof Symbol && Symbol.for,
  c = b ? Symbol.for("react.element") : 60103,
  d = b ? Symbol.for("react.portal") : 60106,
  e = b ? Symbol.for("react.fragment") : 60107,
  f = b ? Symbol.for("react.strict_mode") : 60108,
  g = b ? Symbol.for("react.profiler") : 60114,
  h = b ? Symbol.for("react.provider") : 60109,
  k = b ? Symbol.for("react.context") : 60110,
  l = b ? Symbol.for("react.async_mode") : 60111,
  m = b ? Symbol.for("react.concurrent_mode") : 60111,
  n = b ? Symbol.for("react.forward_ref") : 60112,
  p = b ? Symbol.for("react.suspense") : 60113,
  q = b ? Symbol.for("react.suspense_list") : 60120,
  r = b ? Symbol.for("react.memo") : 60115,
  t = b ? Symbol.for("react.lazy") : 60116,
  v = b ? Symbol.for("react.block") : 60121,
  w = b ? Symbol.for("react.fundamental") : 60117,
  x = b ? Symbol.for("react.responder") : 60118,
  y = b ? Symbol.for("react.scope") : 60119;
function z(a) {
  if ("object" === typeof a && null !== a) {
    var u = a.$$typeof;
    switch (u) {
      case c:
        switch (a = a.type, a) {
          case l:
          case m:
          case e:
          case g:
          case f:
          case p:
            return a;
          default:
            switch (a = a && a.$$typeof, a) {
              case k:
              case n:
              case t:
              case r:
              case h:
                return a;
              default:
                return u;
            }
        }
      case d:
        return u;
    }
  }
}
function A(a) {
  return z(a) === m;
}
exports.AsyncMode = l;
exports.ConcurrentMode = m;
exports.ContextConsumer = k;
exports.ContextProvider = h;
exports.Element = c;
exports.ForwardRef = n;
exports.Fragment = e;
exports.Lazy = t;
exports.Memo = r;
exports.Portal = d;
exports.Profiler = g;
exports.StrictMode = f;
exports.Suspense = p;
exports.isAsyncMode = function (a) {
  return A(a) || z(a) === l;
};
exports.isConcurrentMode = A;
exports.isContextConsumer = function (a) {
  return z(a) === k;
};
exports.isContextProvider = function (a) {
  return z(a) === h;
};
exports.isElement = function (a) {
  return "object" === typeof a && null !== a && a.$$typeof === c;
};
exports.isForwardRef = function (a) {
  return z(a) === n;
};
exports.isFragment = function (a) {
  return z(a) === e;
};
exports.isLazy = function (a) {
  return z(a) === t;
};
exports.isMemo = function (a) {
  return z(a) === r;
};
exports.isPortal = function (a) {
  return z(a) === d;
};
exports.isProfiler = function (a) {
  return z(a) === g;
};
exports.isStrictMode = function (a) {
  return z(a) === f;
};
exports.isSuspense = function (a) {
  return z(a) === p;
};
exports.isValidElementType = function (a) {
  return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);
};
exports.typeOf = z;

/***/ }),

/***/ 736:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (true) {
  module.exports = __webpack_require__(4918);
} else {}

/***/ }),

/***/ 237:
/***/ ((__unused_webpack_module, exports) => {

"use strict";
var __webpack_unused_export__;
/**
 * @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 b = Symbol.for("react.element"),
  c = Symbol.for("react.portal"),
  d = Symbol.for("react.fragment"),
  e = Symbol.for("react.strict_mode"),
  f = Symbol.for("react.profiler"),
  g = Symbol.for("react.provider"),
  h = Symbol.for("react.context"),
  k = Symbol.for("react.server_context"),
  l = Symbol.for("react.forward_ref"),
  m = Symbol.for("react.suspense"),
  n = Symbol.for("react.suspense_list"),
  p = Symbol.for("react.memo"),
  q = Symbol.for("react.lazy"),
  t = Symbol.for("react.offscreen"),
  u;
u = Symbol.for("react.module.reference");
function v(a) {
  if ("object" === typeof a && null !== a) {
    var r = a.$$typeof;
    switch (r) {
      case b:
        switch (a = a.type, a) {
          case d:
          case f:
          case e:
          case m:
          case n:
            return a;
          default:
            switch (a = a && a.$$typeof, a) {
              case k:
              case h:
              case l:
              case q:
              case p:
              case g:
                return a;
              default:
                return r;
            }
        }
      case c:
        return r;
    }
  }
}
__webpack_unused_export__ = h;
__webpack_unused_export__ = g;
__webpack_unused_export__ = b;
exports.ForwardRef = l;
__webpack_unused_export__ = d;
__webpack_unused_export__ = q;
exports.Memo = p;
__webpack_unused_export__ = c;
__webpack_unused_export__ = f;
__webpack_unused_export__ = e;
__webpack_unused_export__ = m;
__webpack_unused_export__ = n;
__webpack_unused_export__ = function () {
  return !1;
};
__webpack_unused_export__ = function () {
  return !1;
};
__webpack_unused_export__ = function (a) {
  return v(a) === h;
};
__webpack_unused_export__ = function (a) {
  return v(a) === g;
};
__webpack_unused_export__ = function (a) {
  return "object" === typeof a && null !== a && a.$$typeof === b;
};
__webpack_unused_export__ = function (a) {
  return v(a) === l;
};
__webpack_unused_export__ = function (a) {
  return v(a) === d;
};
__webpack_unused_export__ = function (a) {
  return v(a) === q;
};
__webpack_unused_export__ = function (a) {
  return v(a) === p;
};
__webpack_unused_export__ = function (a) {
  return v(a) === c;
};
__webpack_unused_export__ = function (a) {
  return v(a) === f;
};
__webpack_unused_export__ = function (a) {
  return v(a) === e;
};
__webpack_unused_export__ = function (a) {
  return v(a) === m;
};
__webpack_unused_export__ = function (a) {
  return v(a) === n;
};
__webpack_unused_export__ = function (a) {
  return "string" === typeof a || "function" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || "object" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1;
};
__webpack_unused_export__ = v;

/***/ }),

/***/ 8890:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (true) {
  module.exports = __webpack_require__(237);
} else {}

/***/ }),

/***/ 9656:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/**
 * @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 = __webpack_require__(7948),
  k = Symbol.for("react.element"),
  l = Symbol.for("react.fragment"),
  m = Object.prototype.hasOwnProperty,
  n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,
  p = {
    key: !0,
    ref: !0,
    __self: !0,
    __source: !0
  };
function q(c, a, g) {
  var b,
    d = {},
    e = null,
    h = null;
  void 0 !== g && (e = "" + g);
  void 0 !== a.key && (e = "" + a.key);
  void 0 !== a.ref && (h = a.ref);
  for (b in a) m.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]);
  if (c && c.defaultProps) for (b in a = c.defaultProps, a) void 0 === d[b] && (d[b] = a[b]);
  return {
    $$typeof: k,
    type: c,
    key: e,
    ref: h,
    props: d,
    _owner: n.current
  };
}
exports.Fragment = l;
exports.jsx = q;
exports.jsxs = q;

/***/ }),

/***/ 6575:
/***/ ((__unused_webpack_module, exports) => {

"use strict";
/**
 * @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 = Symbol.for("react.element"),
  n = Symbol.for("react.portal"),
  p = Symbol.for("react.fragment"),
  q = Symbol.for("react.strict_mode"),
  r = Symbol.for("react.profiler"),
  t = Symbol.for("react.provider"),
  u = Symbol.for("react.context"),
  v = Symbol.for("react.forward_ref"),
  w = Symbol.for("react.suspense"),
  x = Symbol.for("react.memo"),
  y = Symbol.for("react.lazy"),
  z = Symbol.iterator;
function A(a) {
  if (null === a || "object" !== typeof a) return null;
  a = z && a[z] || a["@@iterator"];
  return "function" === typeof a ? a : null;
}
var B = {
    isMounted: function () {
      return !1;
    },
    enqueueForceUpdate: function () {},
    enqueueReplaceState: function () {},
    enqueueSetState: function () {}
  },
  C = Object.assign,
  D = {};
function E(a, b, e) {
  this.props = a;
  this.context = b;
  this.refs = D;
  this.updater = e || B;
}
E.prototype.isReactComponent = {};
E.prototype.setState = function (a, b) {
  if ("object" !== typeof a && "function" !== typeof a && null != a) 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, a, b, "setState");
};
E.prototype.forceUpdate = function (a) {
  this.updater.enqueueForceUpdate(this, a, "forceUpdate");
};
function F() {}
F.prototype = E.prototype;
function G(a, b, e) {
  this.props = a;
  this.context = b;
  this.refs = D;
  this.updater = e || B;
}
var H = G.prototype = new F();
H.constructor = G;
C(H, E.prototype);
H.isPureReactComponent = !0;
var I = Array.isArray,
  J = Object.prototype.hasOwnProperty,
  K = {
    current: null
  },
  L = {
    key: !0,
    ref: !0,
    __self: !0,
    __source: !0
  };
function M(a, b, e) {
  var d,
    c = {},
    k = null,
    h = null;
  if (null != b) for (d in void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (k = "" + b.key), b) J.call(b, d) && !L.hasOwnProperty(d) && (c[d] = b[d]);
  var g = arguments.length - 2;
  if (1 === g) c.children = e;else if (1 < g) {
    for (var f = Array(g), m = 0; m < g; m++) f[m] = arguments[m + 2];
    c.children = f;
  }
  if (a && a.defaultProps) for (d in g = a.defaultProps, g) void 0 === c[d] && (c[d] = g[d]);
  return {
    $$typeof: l,
    type: a,
    key: k,
    ref: h,
    props: c,
    _owner: K.current
  };
}
function N(a, b) {
  return {
    $$typeof: l,
    type: a.type,
    key: b,
    ref: a.ref,
    props: a.props,
    _owner: a._owner
  };
}
function O(a) {
  return "object" === typeof a && null !== a && a.$$typeof === l;
}
function escape(a) {
  var b = {
    "=": "=0",
    ":": "=2"
  };
  return "$" + a.replace(/[=:]/g, function (a) {
    return b[a];
  });
}
var P = /\/+/g;
function Q(a, b) {
  return "object" === typeof a && null !== a && null != a.key ? escape("" + a.key) : b.toString(36);
}
function R(a, b, e, d, c) {
  var k = typeof a;
  if ("undefined" === k || "boolean" === k) a = null;
  var h = !1;
  if (null === a) h = !0;else switch (k) {
    case "string":
    case "number":
      h = !0;
      break;
    case "object":
      switch (a.$$typeof) {
        case l:
        case n:
          h = !0;
      }
  }
  if (h) return h = a, c = c(h), a = "" === d ? "." + Q(h, 0) : d, I(c) ? (e = "", null != a && (e = a.replace(P, "$&/") + "/"), R(c, b, e, "", function (a) {
    return a;
  })) : null != c && (O(c) && (c = N(c, e + (!c.key || h && h.key === c.key ? "" : ("" + c.key).replace(P, "$&/") + "/") + a)), b.push(c)), 1;
  h = 0;
  d = "" === d ? "." : d + ":";
  if (I(a)) for (var g = 0; g < a.length; g++) {
    k = a[g];
    var f = d + Q(k, g);
    h += R(k, b, e, f, c);
  } else if (f = A(a), "function" === typeof f) for (a = f.call(a), g = 0; !(k = a.next()).done;) k = k.value, f = d + Q(k, g++), h += R(k, b, e, f, c);else if ("object" === k) throw b = String(a), Error("Objects are not valid as a React child (found: " + ("[object Object]" === b ? "object with keys {" + Object.keys(a).join(", ") + "}" : b) + "). If you meant to render a collection of children, use an array instead.");
  return h;
}
function S(a, b, e) {
  if (null == a) return a;
  var d = [],
    c = 0;
  R(a, d, "", "", function (a) {
    return b.call(e, a, c++);
  });
  return d;
}
function T(a) {
  if (-1 === a._status) {
    var b = a._result;
    b = b();
    b.then(function (b) {
      if (0 === a._status || -1 === a._status) a._status = 1, a._result = b;
    }, function (b) {
      if (0 === a._status || -1 === a._status) a._status = 2, a._result = b;
    });
    -1 === a._status && (a._status = 0, a._result = b);
  }
  if (1 === a._status) return a._result.default;
  throw a._result;
}
var U = {
    current: null
  },
  V = {
    transition: null
  },
  W = {
    ReactCurrentDispatcher: U,
    ReactCurrentBatchConfig: V,
    ReactCurrentOwner: K
  };
exports.Children = {
  map: S,
  forEach: function (a, b, e) {
    S(a, function () {
      b.apply(this, arguments);
    }, e);
  },
  count: function (a) {
    var b = 0;
    S(a, function () {
      b++;
    });
    return b;
  },
  toArray: function (a) {
    return S(a, function (a) {
      return a;
    }) || [];
  },
  only: function (a) {
    if (!O(a)) throw Error("React.Children.only expected to receive a single React element child.");
    return a;
  }
};
exports.Component = E;
exports.Fragment = p;
exports.Profiler = r;
exports.PureComponent = G;
exports.StrictMode = q;
exports.Suspense = w;
exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = W;
exports.cloneElement = function (a, b, e) {
  if (null === a || void 0 === a) throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + a + ".");
  var d = C({}, a.props),
    c = a.key,
    k = a.ref,
    h = a._owner;
  if (null != b) {
    void 0 !== b.ref && (k = b.ref, h = K.current);
    void 0 !== b.key && (c = "" + b.key);
    if (a.type && a.type.defaultProps) var g = a.type.defaultProps;
    for (f in b) J.call(b, f) && !L.hasOwnProperty(f) && (d[f] = void 0 === b[f] && void 0 !== g ? g[f] : b[f]);
  }
  var f = arguments.length - 2;
  if (1 === f) d.children = e;else if (1 < f) {
    g = Array(f);
    for (var m = 0; m < f; m++) g[m] = arguments[m + 2];
    d.children = g;
  }
  return {
    $$typeof: l,
    type: a.type,
    key: c,
    ref: k,
    props: d,
    _owner: h
  };
};
exports.createContext = function (a) {
  a = {
    $$typeof: u,
    _currentValue: a,
    _currentValue2: a,
    _threadCount: 0,
    Provider: null,
    Consumer: null,
    _defaultValue: null,
    _globalName: null
  };
  a.Provider = {
    $$typeof: t,
    _context: a
  };
  return a.Consumer = a;
};
exports.createElement = M;
exports.createFactory = function (a) {
  var b = M.bind(null, a);
  b.type = a;
  return b;
};
exports.createRef = function () {
  return {
    current: null
  };
};
exports.forwardRef = function (a) {
  return {
    $$typeof: v,
    render: a
  };
};
exports.isValidElement = O;
exports.lazy = function (a) {
  return {
    $$typeof: y,
    _payload: {
      _status: -1,
      _result: a
    },
    _init: T
  };
};
exports.memo = function (a, b) {
  return {
    $$typeof: x,
    type: a,
    compare: void 0 === b ? null : b
  };
};
exports.startTransition = function (a) {
  var b = V.transition;
  V.transition = {};
  try {
    a();
  } finally {
    V.transition = b;
  }
};
exports.unstable_act = function () {
  throw Error("act(...) is not supported in production builds of React.");
};
exports.useCallback = function (a, b) {
  return U.current.useCallback(a, b);
};
exports.useContext = function (a) {
  return U.current.useContext(a);
};
exports.useDebugValue = function () {};
exports.useDeferredValue = function (a) {
  return U.current.useDeferredValue(a);
};
exports.useEffect = function (a, b) {
  return U.current.useEffect(a, b);
};
exports.useId = function () {
  return U.current.useId();
};
exports.useImperativeHandle = function (a, b, e) {
  return U.current.useImperativeHandle(a, b, e);
};
exports.useInsertionEffect = function (a, b) {
  return U.current.useInsertionEffect(a, b);
};
exports.useLayoutEffect = function (a, b) {
  return U.current.useLayoutEffect(a, b);
};
exports.useMemo = function (a, b) {
  return U.current.useMemo(a, b);
};
exports.useReducer = function (a, b, e) {
  return U.current.useReducer(a, b, e);
};
exports.useRef = function (a) {
  return U.current.useRef(a);
};
exports.useState = function (a) {
  return U.current.useState(a);
};
exports.useSyncExternalStore = function (a, b, e) {
  return U.current.useSyncExternalStore(a, b, e);
};
exports.useTransition = function () {
  return U.current.useTransition();
};
exports.version = "18.2.0";

/***/ }),

/***/ 7948:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (true) {
  module.exports = __webpack_require__(6575);
} else {}

/***/ }),

/***/ 7394:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (true) {
  module.exports = __webpack_require__(9656);
} else {}

/***/ }),

/***/ 6929:
/***/ ((__unused_webpack_module, exports) => {

"use strict";
/**
 * @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 f(a, b) {
  var c = a.length;
  a.push(b);
  a: for (; 0 < c;) {
    var d = c - 1 >>> 1,
      e = a[d];
    if (0 < g(e, b)) a[d] = b, a[c] = e, c = d;else break a;
  }
}
function h(a) {
  return 0 === a.length ? null : a[0];
}
function k(a) {
  if (0 === a.length) return null;
  var b = a[0],
    c = a.pop();
  if (c !== b) {
    a[0] = c;
    a: for (var d = 0, e = a.length, w = e >>> 1; d < w;) {
      var m = 2 * (d + 1) - 1,
        C = a[m],
        n = m + 1,
        x = a[n];
      if (0 > g(C, c)) n < e && 0 > g(x, C) ? (a[d] = x, a[n] = c, d = n) : (a[d] = C, a[m] = c, d = m);else if (n < e && 0 > g(x, c)) a[d] = x, a[n] = c, d = n;else break a;
    }
  }
  return b;
}
function g(a, b) {
  var c = a.sortIndex - b.sortIndex;
  return 0 !== c ? c : a.id - b.id;
}
if ("object" === typeof performance && "function" === typeof performance.now) {
  var l = performance;
  exports.unstable_now = function () {
    return l.now();
  };
} else {
  var p = Date,
    q = p.now();
  exports.unstable_now = function () {
    return p.now() - q;
  };
}
var r = [],
  t = [],
  u = 1,
  v = null,
  y = 3,
  z = !1,
  A = !1,
  B = !1,
  D = "function" === typeof setTimeout ? setTimeout : null,
  E = "function" === typeof clearTimeout ? clearTimeout : null,
  F = "undefined" !== typeof setImmediate ? setImmediate : null;
"undefined" !== typeof navigator && void 0 !== navigator.scheduling && void 0 !== navigator.scheduling.isInputPending && navigator.scheduling.isInputPending.bind(navigator.scheduling);
function G(a) {
  for (var b = h(t); null !== b;) {
    if (null === b.callback) k(t);else if (b.startTime <= a) k(t), b.sortIndex = b.expirationTime, f(r, b);else break;
    b = h(t);
  }
}
function H(a) {
  B = !1;
  G(a);
  if (!A) if (null !== h(r)) A = !0, I(J);else {
    var b = h(t);
    null !== b && K(H, b.startTime - a);
  }
}
function J(a, b) {
  A = !1;
  B && (B = !1, E(L), L = -1);
  z = !0;
  var c = y;
  try {
    G(b);
    for (v = h(r); null !== v && (!(v.expirationTime > b) || a && !M());) {
      var d = v.callback;
      if ("function" === typeof d) {
        v.callback = null;
        y = v.priorityLevel;
        var e = d(v.expirationTime <= b);
        b = exports.unstable_now();
        "function" === typeof e ? v.callback = e : v === h(r) && k(r);
        G(b);
      } else k(r);
      v = h(r);
    }
    if (null !== v) var w = !0;else {
      var m = h(t);
      null !== m && K(H, m.startTime - b);
      w = !1;
    }
    return w;
  } finally {
    v = null, y = c, z = !1;
  }
}
var N = !1,
  O = null,
  L = -1,
  P = 5,
  Q = -1;
function M() {
  return exports.unstable_now() - Q < P ? !1 : !0;
}
function R() {
  if (null !== O) {
    var a = exports.unstable_now();
    Q = a;
    var b = !0;
    try {
      b = O(!0, a);
    } finally {
      b ? S() : (N = !1, O = null);
    }
  } else N = !1;
}
var S;
if ("function" === typeof F) S = function () {
  F(R);
};else if ("undefined" !== typeof MessageChannel) {
  var T = new MessageChannel(),
    U = T.port2;
  T.port1.onmessage = R;
  S = function () {
    U.postMessage(null);
  };
} else S = function () {
  D(R, 0);
};
function I(a) {
  O = a;
  N || (N = !0, S());
}
function K(a, b) {
  L = D(function () {
    a(exports.unstable_now());
  }, b);
}
exports.unstable_IdlePriority = 5;
exports.unstable_ImmediatePriority = 1;
exports.unstable_LowPriority = 4;
exports.unstable_NormalPriority = 3;
exports.unstable_Profiling = null;
exports.unstable_UserBlockingPriority = 2;
exports.unstable_cancelCallback = function (a) {
  a.callback = null;
};
exports.unstable_continueExecution = function () {
  A || z || (A = !0, I(J));
};
exports.unstable_forceFrameRate = function (a) {
  0 > a || 125 < a ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : P = 0 < a ? Math.floor(1E3 / a) : 5;
};
exports.unstable_getCurrentPriorityLevel = function () {
  return y;
};
exports.unstable_getFirstCallbackNode = function () {
  return h(r);
};
exports.unstable_next = function (a) {
  switch (y) {
    case 1:
    case 2:
    case 3:
      var b = 3;
      break;
    default:
      b = y;
  }
  var c = y;
  y = b;
  try {
    return a();
  } finally {
    y = c;
  }
};
exports.unstable_pauseExecution = function () {};
exports.unstable_requestPaint = function () {};
exports.unstable_runWithPriority = function (a, b) {
  switch (a) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      break;
    default:
      a = 3;
  }
  var c = y;
  y = a;
  try {
    return b();
  } finally {
    y = c;
  }
};
exports.unstable_scheduleCallback = function (a, b, c) {
  var d = exports.unstable_now();
  "object" === typeof c && null !== c ? (c = c.delay, c = "number" === typeof c && 0 < c ? d + c : d) : c = d;
  switch (a) {
    case 1:
      var e = -1;
      break;
    case 2:
      e = 250;
      break;
    case 5:
      e = 1073741823;
      break;
    case 4:
      e = 1E4;
      break;
    default:
      e = 5E3;
  }
  e = c + e;
  a = {
    id: u++,
    callback: b,
    priorityLevel: a,
    startTime: c,
    expirationTime: e,
    sortIndex: -1
  };
  c > d ? (a.sortIndex = c, f(t, a), null === h(r) && a === h(t) && (B ? (E(L), L = -1) : B = !0, K(H, c - d))) : (a.sortIndex = e, f(r, a), A || z || (A = !0, I(J)));
  return a;
};
exports.unstable_shouldYield = M;
exports.unstable_wrapCallback = function (a) {
  var b = y;
  return function () {
    var c = y;
    y = b;
    try {
      return a.apply(this, arguments);
    } finally {
      y = c;
    }
  };
};

/***/ }),

/***/ 1935:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (true) {
  module.exports = __webpack_require__(6929);
} else {}

/***/ }),

/***/ 5021:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

(function (global, factory) {
   true ? module.exports = factory(__webpack_require__(6501)) : 0;
})(this, function (acorn) {
  'use strict';

  var statement = /*#__PURE__*/Object.freeze({
    __proto__: null,
    get ExpressionStatement() {
      return ExpressionStatement;
    },
    get BlockStatement() {
      return BlockStatement;
    },
    get EmptyStatement() {
      return EmptyStatement;
    },
    get DebuggerStatement() {
      return DebuggerStatement;
    },
    get ReturnStatement() {
      return ReturnStatement;
    },
    get BreakStatement() {
      return BreakStatement;
    },
    get ContinueStatement() {
      return ContinueStatement;
    },
    get IfStatement() {
      return IfStatement;
    },
    get SwitchStatement() {
      return SwitchStatement;
    },
    get SwitchCase() {
      return SwitchCase;
    },
    get ThrowStatement() {
      return ThrowStatement;
    },
    get TryStatement() {
      return TryStatement;
    },
    get CatchClause() {
      return CatchClause;
    },
    get WhileStatement() {
      return WhileStatement;
    },
    get DoWhileStatement() {
      return DoWhileStatement;
    },
    get ForStatement() {
      return ForStatement;
    },
    get ForInStatement() {
      return ForInStatement;
    },
    get ForOfStatement() {
      return ForOfStatement;
    }
  });
  var declaration = /*#__PURE__*/Object.freeze({
    __proto__: null,
    get FunctionDeclaration() {
      return FunctionDeclaration;
    },
    get VariableDeclaration() {
      return VariableDeclaration;
    },
    get VariableDeclarator() {
      return VariableDeclarator;
    },
    get ClassDeclaration() {
      return ClassDeclaration;
    },
    get ClassBody() {
      return ClassBody;
    },
    get MethodDefinition() {
      return MethodDefinition;
    },
    get PropertyDefinition() {
      return PropertyDefinition;
    },
    get StaticBlock() {
      return StaticBlock;
    },
    get ImportDeclaration() {
      return ImportDeclaration;
    },
    get ExportDefaultDeclaration() {
      return ExportDefaultDeclaration;
    },
    get ExportNamedDeclaration() {
      return ExportNamedDeclaration;
    },
    get ExportAllDeclaration() {
      return ExportAllDeclaration;
    }
  });
  var statement$1 = /*#__PURE__*/Object.freeze({
    __proto__: null,
    get ExpressionStatement() {
      return ExpressionStatement$1;
    },
    get BlockStatement() {
      return BlockStatement$1;
    },
    get EmptyStatement() {
      return EmptyStatement$1;
    },
    get DebuggerStatement() {
      return DebuggerStatement$1;
    },
    get ReturnStatement() {
      return ReturnStatement$1;
    },
    get BreakStatement() {
      return BreakStatement$1;
    },
    get ContinueStatement() {
      return ContinueStatement$1;
    },
    get IfStatement() {
      return IfStatement$1;
    },
    get SwitchStatement() {
      return SwitchStatement$1;
    },
    get SwitchCase() {
      return SwitchCase$1;
    },
    get ThrowStatement() {
      return ThrowStatement$1;
    },
    get TryStatement() {
      return TryStatement$1;
    },
    get CatchClause() {
      return CatchClause$1;
    },
    get WhileStatement() {
      return WhileStatement$1;
    },
    get DoWhileStatement() {
      return DoWhileStatement$1;
    },
    get ForStatement() {
      return ForStatement$1;
    },
    get ForInStatement() {
      return ForInStatement$1;
    },
    get ForOfStatement() {
      return ForOfStatement$1;
    }
  });
  var declaration$1 = /*#__PURE__*/Object.freeze({
    __proto__: null,
    get FunctionDeclaration() {
      return FunctionDeclaration$1;
    },
    get VariableDeclaration() {
      return VariableDeclaration$1;
    },
    get VariableDeclarator() {
      return VariableDeclarator$1;
    },
    get ClassDeclaration() {
      return ClassDeclaration$1;
    },
    get ClassBody() {
      return ClassBody$1;
    },
    get MethodDefinition() {
      return MethodDefinition$1;
    },
    get PropertyDefinition() {
      return PropertyDefinition$1;
    },
    get StaticBlock() {
      return StaticBlock$1;
    },
    get ImportDeclaration() {
      return ImportDeclaration$1;
    },
    get ExportDefaultDeclaration() {
      return ExportDefaultDeclaration$1;
    },
    get ExportNamedDeclaration() {
      return ExportNamedDeclaration$1;
    },
    get ExportAllDeclaration() {
      return ExportAllDeclaration$1;
    }
  });
  var freeze = Object.freeze;
  var define = Object.defineProperty;
  var getDptor = Object.getOwnPropertyDescriptor;
  var hasOwnProperty = Object.prototype.hasOwnProperty;
  function hasOwn(obj, key) {
    return hasOwnProperty.call(obj, key);
  }
  var getOwnNames = Object.getOwnPropertyNames;
  var setPrototypeOf = Object.setPrototypeOf;
  function setProto(obj, proto) {
    setPrototypeOf ? setPrototypeOf(obj, proto) : obj.__proto__ = proto;
  }
  var getPrototypeOf = Object.getPrototypeOf;
  function getProto(obj) {
    return getPrototypeOf ? getPrototypeOf(obj) : obj.__proto__;
  }
  var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
  function getGetterOrSetter(method, obj, key) {
    while (obj) {
      var descriptor = getOwnPropertyDescriptor(obj, key);
      var value = typeof descriptor !== 'undefined' && typeof descriptor.writable === 'undefined' && typeof descriptor[method] === 'function' && descriptor[method];
      if (value) {
        return value;
      } else {
        obj = getProto(obj);
      }
    }
  }
  function getGetter(obj, key) {
    return getGetterOrSetter('get', obj, key);
  }
  function getSetter(obj, key) {
    return getGetterOrSetter('set', obj, key);
  }
  var create = Object.create;
  function inherits(subClass, superClass) {
    setProto(subClass, superClass);
    subClass.prototype = create(superClass.prototype, {
      constructor: {
        value: subClass,
        writable: true
      }
    });
  }
  function _assign(target) {
    for (var i = 1; i < arguments.length; ++i) {
      var source = arguments[i];
      for (var key in source) {
        if (hasOwn(source, key)) {
          target[key] = source[key];
        }
      }
    }
    return target;
  }
  var assign = Object.assign || _assign;
  var names = [];
  var globalObj = create(null);
  try {
    if (!window.Object) throw 0;
    names = getOwnNames(globalObj = window).filter(function (n) {
      return n !== 'webkitStorageInfo';
    });
  } catch (err) {
    try {
      if (!__webpack_require__.g.Object) throw 0;
      names = getOwnNames(globalObj = __webpack_require__.g).filter(function (n) {
        return n !== 'GLOBAL' && n !== 'root';
      });
    } catch (err) {
      try {
        globalObj.Object = Object;
      } catch (err) {}
      try {
        globalObj.Function = Function;
      } catch (err) {}
      try {
        globalObj.Array = Array;
      } catch (err) {}
      try {
        globalObj.Number = Number;
      } catch (err) {}
      try {
        globalObj.parseFloat = parseFloat;
      } catch (err) {}
      try {
        globalObj.parseInt = parseInt;
      } catch (err) {}
      try {
        globalObj.Infinity = Infinity;
      } catch (err) {}
      try {
        globalObj.NaN = NaN;
      } catch (err) {}
      try {
        globalObj.undefined = undefined;
      } catch (err) {}
      try {
        globalObj.Boolean = Boolean;
      } catch (err) {}
      try {
        globalObj.String = String;
      } catch (err) {}
      try {
        globalObj.Symbol = Symbol;
      } catch (err) {}
      try {
        globalObj.Date = Date;
      } catch (err) {}
      try {
        globalObj.Promise = Promise;
      } catch (err) {}
      try {
        globalObj.RegExp = RegExp;
      } catch (err) {}
      try {
        globalObj.Error = Error;
      } catch (err) {}
      try {
        globalObj.EvalError = EvalError;
      } catch (err) {}
      try {
        globalObj.RangeError = RangeError;
      } catch (err) {}
      try {
        globalObj.ReferenceError = ReferenceError;
      } catch (err) {}
      try {
        globalObj.SyntaxError = SyntaxError;
      } catch (err) {}
      try {
        globalObj.TypeError = TypeError;
      } catch (err) {}
      try {
        globalObj.URIError = URIError;
      } catch (err) {}
      try {
        globalObj.JSON = JSON;
      } catch (err) {}
      try {
        globalObj.Math = Math;
      } catch (err) {}
      try {
        globalObj.console = console;
      } catch (err) {}
      try {
        globalObj.Intl = Intl;
      } catch (err) {}
      try {
        globalObj.ArrayBuffer = ArrayBuffer;
      } catch (err) {}
      try {
        globalObj.Uint8Array = Uint8Array;
      } catch (err) {}
      try {
        globalObj.Int8Array = Int8Array;
      } catch (err) {}
      try {
        globalObj.Uint16Array = Uint16Array;
      } catch (err) {}
      try {
        globalObj.Int16Array = Int16Array;
      } catch (err) {}
      try {
        globalObj.Uint32Array = Uint32Array;
      } catch (err) {}
      try {
        globalObj.Int32Array = Int32Array;
      } catch (err) {}
      try {
        globalObj.Float32Array = Float32Array;
      } catch (err) {}
      try {
        globalObj.Float64Array = Float64Array;
      } catch (err) {}
      try {
        globalObj.Uint8ClampedArray = Uint8ClampedArray;
      } catch (err) {}
      try {
        globalObj.DataView = DataView;
      } catch (err) {}
      try {
        globalObj.Map = Map;
      } catch (err) {}
      try {
        globalObj.Set = Set;
      } catch (err) {}
      try {
        globalObj.WeakMap = WeakMap;
      } catch (err) {}
      try {
        globalObj.WeakSet = WeakSet;
      } catch (err) {}
      try {
        globalObj.Proxy = Proxy;
      } catch (err) {}
      try {
        globalObj.Reflect = Reflect;
      } catch (err) {}
      try {
        globalObj.BigInt = BigInt;
      } catch (err) {}
      try {
        globalObj.decodeURI = decodeURI;
      } catch (err) {}
      try {
        globalObj.decodeURIComponent = decodeURIComponent;
      } catch (err) {}
      try {
        globalObj.encodeURI = encodeURI;
      } catch (err) {}
      try {
        globalObj.encodeURIComponent = encodeURIComponent;
      } catch (err) {}
      try {
        globalObj.escape = escape;
      } catch (err) {}
      try {
        globalObj.unescape = unescape;
      } catch (err) {}
      try {
        globalObj.eval = eval;
      } catch (err) {}
      try {
        globalObj.isFinite = isFinite;
      } catch (err) {}
      try {
        globalObj.isNaN = isNaN;
      } catch (err) {}
      try {
        globalObj.SharedArrayBuffer = SharedArrayBuffer;
      } catch (err) {}
      try {
        globalObj.Atomics = Atomics;
      } catch (err) {}
      try {
        globalObj.WebAssembly = WebAssembly;
      } catch (err) {}
      try {
        globalObj.clearInterval = clearInterval;
      } catch (err) {}
      try {
        globalObj.clearTimeout = clearTimeout;
      } catch (err) {}
      try {
        globalObj.setInterval = setInterval;
      } catch (err) {}
      try {
        globalObj.setTimeout = setTimeout;
      } catch (err) {}
      try {
        globalObj.crypto = crypto;
      } catch (err) {}
      names = getOwnNames(globalObj);
    }
  }
  if (globalObj.Symbol) {
    !globalObj.Symbol.iterator && (globalObj.Symbol.iterator = createSymbol('iterator'));
    !globalObj.Symbol.asyncIterator && (globalObj.Symbol.asyncIterator = createSymbol('asynciterator'));
  }
  var win = create({});
  for (var i = 0; i < names.length; i++) {
    var name_1 = names[i];
    try {
      win[name_1] = globalObj[name_1];
    } catch (err) {}
  }
  var WINDOW = createSymbol('window');
  function createSandBox() {
    var _a;
    return assign(create((_a = {}, _a[WINDOW] = globalObj, _a)), win);
  }
  function createSymbol(key) {
    return key + Math.random().toString(36).substring(2);
  }
  function getAsyncIterator(obj) {
    var iterator;
    if (typeof Symbol === 'function') {
      iterator = obj[Symbol.asyncIterator];
      !iterator && (iterator = obj[Symbol.iterator]);
    }
    if (iterator) {
      return iterator.call(obj);
    } else if (typeof obj.next === 'function') {
      return obj;
    } else {
      var i_1 = 0;
      return {
        next: function () {
          if (obj && i_1 >= obj.length) obj = undefined;
          return {
            value: obj && obj[i_1++],
            done: !obj
          };
        }
      };
    }
  }
  var AWAIT = {
    RES: undefined
  };
  var RETURN = {
    RES: undefined
  };
  var CONTINUE = createSymbol('continue');
  var BREAK = createSymbol('break');
  var SUPER = createSymbol('super');
  var SUPERCALL = createSymbol('supercall');
  var NOCTOR = createSymbol('noctor');
  var CLSCTOR = createSymbol('clsctor');
  var NEWTARGET = createSymbol('newtarget');
  var PRIVATE = createSymbol('private');
  var NOINIT = createSymbol('noinit');
  var DEADZONE = createSymbol('deadzone');
  var IMPORT = createSymbol('import');
  var EXPORTS = createSymbol('exports');
  var version = "0.5.2";
  var Var = function () {
    function Var(kind, value) {
      this.kind = kind;
      this.value = value;
    }
    Var.prototype.get = function () {
      return this.value;
    };
    Var.prototype.set = function (value) {
      if (this.kind === 'const') {
        throw new TypeError('Assignment to constant variable');
      } else {
        return this.value = value;
      }
    };
    return Var;
  }();
  var Prop = function () {
    function Prop(object, property) {
      this.object = object;
      this.property = property;
    }
    Prop.prototype.get = function () {
      return this.object[this.property];
    };
    Prop.prototype.set = function (value) {
      this.object[this.property] = value;
      return true;
    };
    Prop.prototype.del = function () {
      return delete this.object[this.property];
    };
    return Prop;
  }();
  var Scope = function () {
    function Scope(parent, isolated) {
      if (parent === void 0) {
        parent = null;
      }
      if (isolated === void 0) {
        isolated = false;
      }
      this.context = create(null);
      this.parent = parent;
      this.isolated = isolated;
    }
    Scope.prototype.global = function () {
      var scope = this;
      while (scope.parent) {
        scope = scope.parent;
      }
      return scope;
    };
    Scope.prototype.clone = function () {
      var cloneScope = new Scope(this.parent, this.isolated);
      for (var name_1 in this.context) {
        var variable = this.context[name_1];
        cloneScope[variable.kind](name_1, variable.get());
      }
      return cloneScope;
    };
    Scope.prototype.find = function (name) {
      if (this.context[name]) {
        return this.context[name];
      } else if (this.parent) {
        return this.parent.find(name);
      } else {
        var win = this.global().find('window').get();
        if (name in win) {
          return new Prop(win, name);
        } else {
          return null;
        }
      }
    };
    Scope.prototype.var = function (name, value) {
      var scope = this;
      while (scope.parent && !scope.isolated) {
        scope = scope.parent;
      }
      var variable = scope.context[name];
      if (!variable) {
        scope.context[name] = new Var('var', value === NOINIT ? undefined : value);
      } else {
        if (variable.kind === 'var') {
          if (value !== NOINIT) {
            variable.set(value);
          }
        } else {
          throw new SyntaxError("Identifier '" + name + "' has already been declared");
        }
      }
      if (!scope.parent) {
        var win = scope.find('window').get();
        if (value !== NOINIT) {
          define(win, name, {
            value: value,
            writable: true,
            enumerable: true
          });
        }
      }
    };
    Scope.prototype.let = function (name, value) {
      var variable = this.context[name];
      if (!variable || variable.get() === DEADZONE) {
        this.context[name] = new Var('let', value);
      } else {
        throw new SyntaxError("Identifier '" + name + "' has already been declared");
      }
    };
    Scope.prototype.const = function (name, value) {
      var variable = this.context[name];
      if (!variable || variable.get() === DEADZONE) {
        this.context[name] = new Var('const', value);
      } else {
        throw new SyntaxError("Identifier '" + name + "' has already been declared");
      }
    };
    Scope.prototype.func = function (name, value) {
      var variable = this.context[name];
      if (!variable || variable.kind === 'var') {
        this.context[name] = new Var('var', value);
      } else {
        throw new SyntaxError("Identifier '" + name + "' has already been declared");
      }
    };
    return Scope;
  }();

  /*! *****************************************************************************
  Copyright (c) Microsoft Corporation. All rights reserved.
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
  this file except in compliance with the License. You may obtain a copy of the
  License at http://www.apache.org/licenses/LICENSE-2.0
    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
  WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
  MERCHANTABLITY OR NON-INFRINGEMENT.
    See the Apache Version 2.0 License for specific language governing permissions
  and limitations under the License.
  ***************************************************************************** */

  function __generator(thisArg, body) {
    var _ = {
        label: 0,
        sent: function () {
          if (t[0] & 1) throw t[1];
          return t[1];
        },
        trys: [],
        ops: []
      },
      f,
      y,
      t,
      g;
    return g = {
      next: verb(0),
      "throw": verb(1),
      "return": verb(2)
    }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
      return this;
    }), g;
    function verb(n) {
      return function (v) {
        return step([n, v]);
      };
    }
    function step(op) {
      if (f) throw new TypeError("Generator is already executing.");
      while (_) try {
        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
        if (y = 0, t) op = [op[0] & 2, t.value];
        switch (op[0]) {
          case 0:
          case 1:
            t = op;
            break;
          case 4:
            _.label++;
            return {
              value: op[1],
              done: false
            };
          case 5:
            _.label++;
            y = op[1];
            op = [0];
            continue;
          case 7:
            op = _.ops.pop();
            _.trys.pop();
            continue;
          default:
            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
              _ = 0;
              continue;
            }
            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
              _.label = op[1];
              break;
            }
            if (op[0] === 6 && _.label < t[1]) {
              _.label = t[1];
              t = op;
              break;
            }
            if (t && _.label < t[2]) {
              _.label = t[2];
              _.ops.push(op);
              break;
            }
            if (t[2]) _.ops.pop();
            _.trys.pop();
            continue;
        }
        op = body.call(thisArg, _);
      } catch (e) {
        op = [6, e];
        y = 0;
      } finally {
        f = t = 0;
      }
      if (op[0] & 5) throw op[1];
      return {
        value: op[0] ? op[1] : void 0,
        done: true
      };
    }
  }
  function __values(o) {
    var m = typeof Symbol === "function" && o[Symbol.iterator],
      i = 0;
    if (m) return m.call(o);
    return {
      next: function () {
        if (o && i >= o.length) o = void 0;
        return {
          value: o && o[i++],
          done: !o
        };
      }
    };
  }
  function __read(o, n) {
    var m = typeof Symbol === "function" && o[Symbol.iterator];
    if (!m) return o;
    var i = m.call(o),
      r,
      ar = [],
      e;
    try {
      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
    } catch (error) {
      e = {
        error: error
      };
    } finally {
      try {
        if (r && !r.done && (m = i["return"])) m.call(i);
      } finally {
        if (e) throw e.error;
      }
    }
    return ar;
  }
  function __spread() {
    for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
    return ar;
  }
  function Identifier(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var _a = options.getVar,
      getVar = _a === void 0 ? false : _a,
      _b = options.throwErr,
      throwErr = _b === void 0 ? true : _b;
    if (node.name === 'undefined') {
      return undefined;
    }
    var variable = scope.find(node.name);
    if (variable) {
      if (getVar) {
        return variable;
      } else {
        var value = variable.get();
        if (value === DEADZONE) {
          throw new ReferenceError(node.name + " is not defined");
        } else {
          return value;
        }
      }
    } else if (throwErr) {
      throw new ReferenceError(node.name + " is not defined");
    } else {
      return undefined;
    }
  }
  var identifier = /*#__PURE__*/Object.freeze({
    __proto__: null,
    Identifier: Identifier
  });
  function Literal(node, scope) {
    return node.value;
  }
  var literal = /*#__PURE__*/Object.freeze({
    __proto__: null,
    Literal: Literal
  });
  function ThisExpression(node, scope) {
    var superCall = scope.find(SUPERCALL);
    if (superCall && !superCall.get()) {
      throw new ReferenceError('Must call super constructor in derived class ' + 'before accessing \'this\' or returning from derived constructor');
    } else {
      return scope.find('this').get();
    }
  }
  function ArrayExpression(node, scope) {
    var results = [];
    for (var i = 0; i < node.elements.length; i++) {
      var item = node.elements[i];
      if (item.type === 'SpreadElement') {
        results = results.concat(SpreadElement(item, scope));
      } else {
        results.push(evaluate(item, scope));
      }
    }
    return results;
  }
  function ObjectExpression(node, scope) {
    var object = {};
    for (var i = 0; i < node.properties.length; i++) {
      var property = node.properties[i];
      if (property.type === 'SpreadElement') {
        assign(object, SpreadElement(property, scope));
      } else {
        var key = void 0;
        var propKey = property.key;
        if (property.computed) {
          key = evaluate(propKey, scope);
        } else {
          if (propKey.type === 'Identifier') {
            key = propKey.name;
          } else {
            key = '' + Literal(propKey);
          }
        }
        var value = evaluate(property.value, scope);
        var propKind = property.kind;
        if (propKind === 'init') {
          object[key] = value;
        } else if (propKind === 'get') {
          var oriDptor = getDptor(object, key);
          define(object, key, {
            get: value,
            set: oriDptor && oriDptor.set,
            enumerable: true,
            configurable: true
          });
        } else {
          var oriDptor = getDptor(object, key);
          define(object, key, {
            get: oriDptor && oriDptor.get,
            set: value,
            enumerable: true,
            configurable: true
          });
        }
      }
    }
    return object;
  }
  function FunctionExpression(node, scope) {
    if (node.id && node.id.name) {
      var tmpScope = new Scope(scope);
      var func = createFunc$1(node, tmpScope);
      tmpScope.const(node.id.name, func);
      return func;
    } else {
      return createFunc$1(node, scope);
    }
  }
  function UnaryExpression(node, scope) {
    var arg = node.argument;
    switch (node.operator) {
      case '+':
        return +evaluate(arg, scope);
      case '-':
        return -evaluate(arg, scope);
      case '!':
        return !evaluate(arg, scope);
      case '~':
        return ~evaluate(arg, scope);
      case 'void':
        return void evaluate(arg, scope);
      case 'typeof':
        if (arg.type === 'Identifier') {
          return typeof Identifier(arg, scope, {
            throwErr: false
          });
        } else {
          return typeof evaluate(arg, scope);
        }
      case 'delete':
        if (arg.type === 'MemberExpression') {
          var variable = MemberExpression(arg, scope, {
            getVar: true
          });
          return variable.del();
        } else if (arg.type === 'Identifier') {
          throw new SyntaxError('Delete of an unqualified identifier in strict mode');
        } else {
          evaluate(arg, scope);
          return true;
        }
      default:
        throw new SyntaxError("Unexpected token " + node.operator);
    }
  }
  function UpdateExpression(node, scope) {
    var arg = node.argument;
    var variable;
    if (arg.type === 'Identifier') {
      variable = Identifier(arg, scope, {
        getVar: true
      });
    } else if (arg.type === 'MemberExpression') {
      variable = MemberExpression(arg, scope, {
        getVar: true
      });
    } else {
      throw new SyntaxError('Unexpected token');
    }
    var value = variable.get();
    if (node.operator === '++') {
      variable.set(value + 1);
      return node.prefix ? variable.get() : value;
    } else if (node.operator === '--') {
      variable.set(value - 1);
      return node.prefix ? variable.get() : value;
    } else {
      throw new SyntaxError("Unexpected token " + node.operator);
    }
  }
  function BinaryExpression(node, scope) {
    var left;
    var right;
    if (node.left.type === 'PrivateIdentifier') {
      left = node.left.name;
      right = evaluate(node.right, scope);
      right = right[PRIVATE];
    } else {
      left = evaluate(node.left, scope);
      right = evaluate(node.right, scope);
    }
    switch (node.operator) {
      case '==':
        return left == right;
      case '!=':
        return left != right;
      case '===':
        return left === right;
      case '!==':
        return left !== right;
      case '<':
        return left < right;
      case '<=':
        return left <= right;
      case '>':
        return left > right;
      case '>=':
        return left >= right;
      case '<<':
        return left << right;
      case '>>':
        return left >> right;
      case '>>>':
        return left >>> right;
      case '+':
        return left + right;
      case '-':
        return left - right;
      case '*':
        return left * right;
      case '**':
        return Math.pow(left, right);
      case '/':
        return left / right;
      case '%':
        return left % right;
      case '|':
        return left | right;
      case '^':
        return left ^ right;
      case '&':
        return left & right;
      case 'in':
        return left in right;
      case 'instanceof':
        return left instanceof right;
      default:
        throw new SyntaxError("Unexpected token " + node.operator);
    }
  }
  function AssignmentExpression(node, scope) {
    var _a;
    var left = node.left;
    var variable;
    if (left.type === 'Identifier') {
      variable = Identifier(left, scope, {
        getVar: true,
        throwErr: false
      });
      if (!variable) {
        var win = scope.global().find('window').get();
        variable = new Prop(win, left.name);
      }
    } else if (left.type === 'MemberExpression') {
      variable = MemberExpression(left, scope, {
        getVar: true
      });
    } else {
      var value_1 = evaluate(node.right, scope);
      return pattern$3(left, scope, {
        feed: value_1
      });
    }
    var value = evaluate(node.right, scope);
    switch (node.operator) {
      case '=':
        variable.set(value);
        return variable.get();
      case '+=':
        variable.set(variable.get() + value);
        return variable.get();
      case '-=':
        variable.set(variable.get() - value);
        return variable.get();
      case '*=':
        variable.set(variable.get() * value);
        return variable.get();
      case '/=':
        variable.set(variable.get() / value);
        return variable.get();
      case '%=':
        variable.set(variable.get() % value);
        return variable.get();
      case '**=':
        variable.set(Math.pow(variable.get(), value));
        return variable.get();
      case '<<=':
        variable.set(variable.get() << value);
        return variable.get();
      case '>>=':
        variable.set(variable.get() >> value);
        return variable.get();
      case '>>>=':
        variable.set(variable.get() >>> value);
        return variable.get();
      case '|=':
        variable.set(variable.get() | value);
        return variable.get();
      case '^=':
        variable.set(variable.get() ^ value);
        return variable.get();
      case '&=':
        variable.set(variable.get() & value);
        return variable.get();
      case '??=':
        variable.set((_a = variable.get()) !== null && _a !== void 0 ? _a : value);
        return variable.get();
      case '&&=':
        variable.set(variable.get() && value);
        return variable.get();
      case '||=':
        variable.set(variable.get() || value);
        return variable.get();
      default:
        throw new SyntaxError("Unexpected token " + node.operator);
    }
  }
  function LogicalExpression(node, scope) {
    var _a;
    switch (node.operator) {
      case '||':
        return evaluate(node.left, scope) || evaluate(node.right, scope);
      case '&&':
        return evaluate(node.left, scope) && evaluate(node.right, scope);
      case '??':
        return (_a = evaluate(node.left, scope)) !== null && _a !== void 0 ? _a : evaluate(node.right, scope);
      default:
        throw new SyntaxError("Unexpected token " + node.operator);
    }
  }
  function MemberExpression(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var _a = options.getObj,
      getObj = _a === void 0 ? false : _a,
      _b = options.getVar,
      getVar = _b === void 0 ? false : _b;
    var object;
    if (node.object.type === 'Super') {
      object = Super(node.object, scope, {
        getProto: true
      });
    } else {
      object = evaluate(node.object, scope);
    }
    if (getObj) return object;
    var key;
    var priv = false;
    if (node.computed) {
      key = evaluate(node.property, scope);
    } else if (node.property.type === 'PrivateIdentifier') {
      key = node.property.name;
      priv = true;
    } else {
      key = node.property.name;
    }
    if (priv) {
      object = object[PRIVATE];
    }
    if (getVar) {
      var setter = getSetter(object, key);
      if (node.object.type === 'Super' && setter) {
        var thisObject = scope.find('this').get();
        var privateKey = createSymbol(key);
        define(thisObject, privateKey, {
          set: setter
        });
        return new Prop(thisObject, privateKey);
      } else {
        return new Prop(object, key);
      }
    } else {
      var getter = getGetter(object, key);
      if (node.object.type === 'Super' && getter) {
        var thisObject = scope.find('this').get();
        if (node.optional && thisObject == null) {
          return undefined;
        }
        return getter.call(thisObject);
      } else {
        if (node.optional && object == null) {
          return undefined;
        }
        return object[key];
      }
    }
  }
  function ConditionalExpression(node, scope) {
    return evaluate(node.test, scope) ? evaluate(node.consequent, scope) : evaluate(node.alternate, scope);
  }
  function CallExpression(node, scope) {
    var func;
    var object;
    if (node.callee.type === 'MemberExpression') {
      object = MemberExpression(node.callee, scope, {
        getObj: true
      });
      if (node.callee.optional && object == null) {
        return undefined;
      }
      var key = void 0;
      var priv = false;
      if (node.callee.computed) {
        key = evaluate(node.callee.property, scope);
      } else if (node.callee.property.type === 'PrivateIdentifier') {
        key = node.callee.property.name;
        priv = true;
      } else {
        key = node.callee.property.name;
      }
      var obj = object;
      if (priv) {
        obj = obj[PRIVATE];
      }
      if (node.callee.object.type === 'Super') {
        var thisObject = scope.find('this').get();
        func = obj[key].bind(thisObject);
      } else {
        func = obj[key];
      }
      if (node.optional && func == null) {
        return undefined;
      }
      if (typeof func !== 'function') {
        throw new TypeError(key + " is not a function");
      } else if (func[CLSCTOR]) {
        throw new TypeError("Class constructor " + key + " cannot be invoked without 'new'");
      }
    } else {
      object = scope.find('this').get();
      func = evaluate(node.callee, scope);
      if (node.optional && func == null) {
        return undefined;
      }
      if (typeof func !== 'function' || node.callee.type !== 'Super' && func[CLSCTOR]) {
        var name_1;
        if (node.callee.type === 'Identifier') {
          name_1 = node.callee.name;
        } else {
          try {
            name_1 = JSON.stringify(func);
          } catch (err) {
            name_1 = '' + func;
          }
        }
        if (typeof func !== 'function') {
          throw new TypeError(name_1 + " is not a function");
        } else {
          throw new TypeError("Class constructor " + name_1 + " cannot be invoked without 'new'");
        }
      }
    }
    var args = [];
    for (var i = 0; i < node.arguments.length; i++) {
      var arg = node.arguments[i];
      if (arg.type === 'SpreadElement') {
        args = args.concat(SpreadElement(arg, scope));
      } else {
        args.push(evaluate(arg, scope));
      }
    }
    if (node.callee.type === 'Super') {
      var superCall = scope.find(SUPERCALL);
      if (superCall.get()) {
        throw new ReferenceError('Super constructor may only be called once');
      } else {
        scope.find(SUPERCALL).set(true);
      }
    }
    if (object && object[WINDOW] && func.toString().indexOf('[native code]') !== -1) {
      return func.apply(object[WINDOW], args);
    }
    return func.apply(object, args);
  }
  function NewExpression(node, scope) {
    var constructor = evaluate(node.callee, scope);
    if (typeof constructor !== 'function') {
      var name_2;
      if (node.callee.type === 'Identifier') {
        name_2 = node.callee.name;
      } else {
        try {
          name_2 = JSON.stringify(constructor);
        } catch (err) {
          name_2 = '' + constructor;
        }
      }
      throw new TypeError(name_2 + " is not a constructor");
    } else if (constructor[NOCTOR]) {
      throw new TypeError((constructor.name || '(intermediate value)') + " is not a constructor");
    }
    var args = [];
    for (var i = 0; i < node.arguments.length; i++) {
      var arg = node.arguments[i];
      if (arg.type === 'SpreadElement') {
        args = args.concat(SpreadElement(arg, scope));
      } else {
        args.push(evaluate(arg, scope));
      }
    }
    return new (constructor.bind.apply(constructor, __spread([void 0], args)))();
  }
  function MetaProperty(node, scope) {
    if (node.meta.name === 'new' && node.property.name === 'target') {
      return scope.find(NEWTARGET).get();
    } else if (node.meta.name === 'import' && node.property.name === 'meta') {
      return {
        url: ''
      };
    }
  }
  function SequenceExpression(node, scope) {
    var result;
    for (var i = 0; i < node.expressions.length; i++) {
      result = evaluate(node.expressions[i], scope);
    }
    return result;
  }
  function ArrowFunctionExpression(node, scope) {
    return createFunc$1(node, scope);
  }
  function TemplateLiteral(node, scope) {
    var quasis = node.quasis.slice();
    var expressions = node.expressions.slice();
    var result = '';
    var temEl;
    var expr;
    while (temEl = quasis.shift()) {
      result += TemplateElement(temEl);
      expr = expressions.shift();
      if (expr) {
        result += evaluate(expr, scope);
      }
    }
    return result;
  }
  function TaggedTemplateExpression(node, scope) {
    var tagFunc = evaluate(node.tag, scope);
    var quasis = node.quasi.quasis;
    var str = quasis.map(function (v) {
      return v.value.cooked;
    });
    var raw = quasis.map(function (v) {
      return v.value.raw;
    });
    define(str, 'raw', {
      value: freeze(raw)
    });
    var expressions = node.quasi.expressions;
    var args = [];
    if (expressions) {
      for (var i = 0; i < expressions.length; i++) {
        args.push(evaluate(expressions[i], scope));
      }
    }
    return tagFunc.apply(void 0, __spread([freeze(str)], args));
  }
  function TemplateElement(node, scope) {
    return node.value.raw;
  }
  function ClassExpression(node, scope) {
    if (node.id && node.id.name) {
      var tmpScope = new Scope(scope);
      var klass = createClass$1(node, tmpScope);
      tmpScope.const(node.id.name, klass);
      return klass;
    } else {
      return createClass$1(node, scope);
    }
  }
  function Super(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var _a = options.getProto,
      getProto = _a === void 0 ? false : _a;
    var superClass = scope.find(SUPER).get();
    return getProto ? superClass.prototype : superClass;
  }
  function SpreadElement(node, scope) {
    var result = evaluate(node.argument, scope);
    return typeof result === 'string' ? __spread(result) : result;
  }
  function ChainExpression(node, scope) {
    return evaluate(node.expression, scope);
  }
  function ImportExpression(node, scope) {
    var globalScope = scope.global();
    var source = evaluate(node.source, scope);
    var module = globalScope.find(IMPORT + source);
    var value;
    if (module) {
      var result = module.get();
      if (result) {
        if (typeof result === 'function') {
          value = result();
        } else if (typeof result === 'object') {
          value = result;
        }
      }
    }
    if (!value || typeof value !== 'object') {
      return Promise.reject(new TypeError("Failed to resolve module specifier \"" + source + "\""));
    }
    return Promise.resolve(value);
  }
  var expression = /*#__PURE__*/Object.freeze({
    __proto__: null,
    ThisExpression: ThisExpression,
    ArrayExpression: ArrayExpression,
    ObjectExpression: ObjectExpression,
    FunctionExpression: FunctionExpression,
    UnaryExpression: UnaryExpression,
    UpdateExpression: UpdateExpression,
    BinaryExpression: BinaryExpression,
    AssignmentExpression: AssignmentExpression,
    LogicalExpression: LogicalExpression,
    MemberExpression: MemberExpression,
    ConditionalExpression: ConditionalExpression,
    CallExpression: CallExpression,
    NewExpression: NewExpression,
    MetaProperty: MetaProperty,
    SequenceExpression: SequenceExpression,
    ArrowFunctionExpression: ArrowFunctionExpression,
    TemplateLiteral: TemplateLiteral,
    TaggedTemplateExpression: TaggedTemplateExpression,
    TemplateElement: TemplateElement,
    ClassExpression: ClassExpression,
    Super: Super,
    SpreadElement: SpreadElement,
    ChainExpression: ChainExpression,
    ImportExpression: ImportExpression
  });
  function ObjectPattern(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var _a = options.kind,
      kind = _a === void 0 ? 'var' : _a,
      _b = options.hoist,
      hoist = _b === void 0 ? false : _b,
      _c = options.onlyBlock,
      onlyBlock = _c === void 0 ? false : _c,
      _d = options.feed,
      feed = _d === void 0 ? {} : _d;
    var fedKeys = [];
    for (var i = 0; i < node.properties.length; i++) {
      var property = node.properties[i];
      if (hoist) {
        if (onlyBlock || kind === 'var') {
          if (property.type === 'Property') {
            var value = property.value;
            if (value.type === 'Identifier') {
              scope[kind](value.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
            } else {
              pattern$3(value, scope, {
                kind: kind,
                hoist: hoist,
                onlyBlock: onlyBlock
              });
            }
          } else {
            RestElement(property, scope, {
              kind: kind,
              hoist: hoist,
              onlyBlock: onlyBlock
            });
          }
        }
      } else if (property.type === 'Property') {
        var key = void 0;
        if (property.computed) {
          key = evaluate(property.key, scope);
        } else {
          key = property.key.name;
        }
        fedKeys.push(key);
        var value = property.value;
        if (value.type === 'Identifier') {
          scope[kind](value.name, feed[key]);
        } else {
          pattern$3(value, scope, {
            kind: kind,
            feed: feed[key]
          });
        }
      } else {
        var rest = assign({}, feed);
        for (var i_1 = 0; i_1 < fedKeys.length; i_1++) delete rest[fedKeys[i_1]];
        RestElement(property, scope, {
          kind: kind,
          feed: rest
        });
      }
    }
  }
  function ArrayPattern(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var kind = options.kind,
      _a = options.hoist,
      hoist = _a === void 0 ? false : _a,
      _b = options.onlyBlock,
      onlyBlock = _b === void 0 ? false : _b,
      _c = options.feed,
      feed = _c === void 0 ? [] : _c;
    var result = [];
    for (var i = 0; i < node.elements.length; i++) {
      var element = node.elements[i];
      if (!element) continue;
      if (hoist) {
        if (onlyBlock || kind === 'var') {
          if (element.type === 'Identifier') {
            scope[kind](element.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
          } else {
            pattern$3(element, scope, {
              kind: kind,
              hoist: hoist,
              onlyBlock: onlyBlock
            });
          }
        }
      } else if (element.type === 'Identifier') {
        if (kind) {
          scope[kind](element.name, feed[i]);
        } else {
          var variable = Identifier(element, scope, {
            getVar: true
          });
          variable.set(feed[i]);
          result.push(variable.get());
        }
      } else if (element.type === 'RestElement') {
        RestElement(element, scope, {
          kind: kind,
          feed: feed.slice(i)
        });
      } else {
        pattern$3(element, scope, {
          kind: kind,
          feed: feed[i]
        });
      }
    }
    if (result.length) {
      return result;
    }
  }
  function RestElement(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var kind = options.kind,
      _a = options.hoist,
      hoist = _a === void 0 ? false : _a,
      _b = options.onlyBlock,
      onlyBlock = _b === void 0 ? false : _b,
      _c = options.feed,
      feed = _c === void 0 ? [] : _c;
    var arg = node.argument;
    if (hoist) {
      if (onlyBlock || kind === 'var') {
        if (arg.type === 'Identifier') {
          scope[kind](arg.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
        } else {
          pattern$3(arg, scope, {
            kind: kind,
            hoist: hoist,
            onlyBlock: onlyBlock
          });
        }
      }
    } else if (arg.type === 'Identifier') {
      if (kind) {
        scope[kind](arg.name, feed);
      } else {
        var variable = Identifier(arg, scope, {
          getVar: true
        });
        variable.set(feed);
      }
    } else {
      pattern$3(arg, scope, {
        kind: kind,
        feed: feed
      });
    }
  }
  function AssignmentPattern(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var _a = options.kind,
      kind = _a === void 0 ? 'var' : _a,
      _b = options.hoist,
      hoist = _b === void 0 ? false : _b,
      _c = options.onlyBlock,
      onlyBlock = _c === void 0 ? false : _c,
      _d = options.feed,
      feed = _d === void 0 ? evaluate(node.right, scope) : _d;
    var left = node.left;
    if (hoist) {
      if (onlyBlock || kind === 'var') {
        if (left.type === 'Identifier') {
          scope[kind](left.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
        } else {
          pattern$3(left, scope, {
            kind: kind,
            hoist: hoist,
            onlyBlock: onlyBlock
          });
        }
      }
    } else if (left.type === 'Identifier') {
      scope[kind](left.name, feed);
    } else {
      pattern$3(left, scope, {
        kind: kind,
        feed: feed
      });
    }
  }
  var pattern = /*#__PURE__*/Object.freeze({
    __proto__: null,
    ObjectPattern: ObjectPattern,
    ArrayPattern: ArrayPattern,
    RestElement: RestElement,
    AssignmentPattern: AssignmentPattern
  });
  function Program(program, scope) {
    for (var i = 0; i < program.body.length; i++) {
      evaluate(program.body[i], scope);
    }
  }
  var program = /*#__PURE__*/Object.freeze({
    __proto__: null,
    Program: Program
  });
  var evaluateOps;
  function evaluate(node, scope) {
    if (!node) return;
    if (!evaluateOps) {
      evaluateOps = assign({}, declaration, expression, identifier, statement, literal, pattern, program);
    }
    var handler = evaluateOps[node.type];
    if (handler) {
      return handler(node, scope);
    } else {
      throw new Error(node.type + " isn't implemented");
    }
  }
  function ExpressionStatement(node, scope) {
    evaluate(node.expression, scope);
  }
  function BlockStatement(block, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var _a = options.invasived,
      invasived = _a === void 0 ? false : _a,
      _b = options.hoisted,
      hoisted = _b === void 0 ? false : _b;
    var subScope = invasived ? scope : new Scope(scope);
    if (!hoisted) {
      hoist$1(block, subScope, {
        onlyBlock: true
      });
    }
    for (var i = 0; i < block.body.length; i++) {
      var result = evaluate(block.body[i], subScope);
      if (result === BREAK || result === CONTINUE || result === RETURN) {
        return result;
      }
    }
  }
  function EmptyStatement() {}
  function DebuggerStatement() {
    debugger;
  }
  function ReturnStatement(node, scope) {
    RETURN.RES = node.argument ? evaluate(node.argument, scope) : undefined;
    return RETURN;
  }
  function BreakStatement() {
    return BREAK;
  }
  function ContinueStatement() {
    return CONTINUE;
  }
  function IfStatement(node, scope) {
    if (evaluate(node.test, scope)) {
      return evaluate(node.consequent, scope);
    } else {
      return evaluate(node.alternate, scope);
    }
  }
  function SwitchStatement(node, scope) {
    var discriminant = evaluate(node.discriminant, scope);
    var matched = false;
    for (var i = 0; i < node.cases.length; i++) {
      var eachCase = node.cases[i];
      if (!matched && (!eachCase.test || evaluate(eachCase.test, scope) === discriminant)) {
        matched = true;
      }
      if (matched) {
        var result = SwitchCase(eachCase, scope);
        if (result === BREAK) {
          break;
        }
        if (result === CONTINUE || result === RETURN) {
          return result;
        }
      }
    }
  }
  function SwitchCase(node, scope) {
    for (var i = 0; i < node.consequent.length; i++) {
      var result = evaluate(node.consequent[i], scope);
      if (result === BREAK || result === CONTINUE || result === RETURN) {
        return result;
      }
    }
  }
  function ThrowStatement(node, scope) {
    throw evaluate(node.argument, scope);
  }
  function TryStatement(node, scope) {
    try {
      return BlockStatement(node.block, scope);
    } catch (err) {
      if (node.handler) {
        var subScope = new Scope(scope);
        var param = node.handler.param;
        if (param) {
          if (param.type === 'Identifier') {
            var name_1 = param.name;
            subScope.var(name_1, err);
          } else {
            pattern$3(param, scope, {
              feed: err
            });
          }
        }
        return CatchClause(node.handler, subScope);
      } else {
        throw err;
      }
    } finally {
      if (node.finalizer) {
        var result = BlockStatement(node.finalizer, scope);
        if (result === BREAK || result === CONTINUE || result === RETURN) {
          return result;
        }
      }
    }
  }
  function CatchClause(node, scope) {
    return BlockStatement(node.body, scope, {
      invasived: true
    });
  }
  function WhileStatement(node, scope) {
    while (evaluate(node.test, scope)) {
      var result = evaluate(node.body, scope);
      if (result === BREAK) {
        break;
      } else if (result === CONTINUE) {
        continue;
      } else if (result === RETURN) {
        return result;
      }
    }
  }
  function DoWhileStatement(node, scope) {
    do {
      var result = evaluate(node.body, scope);
      if (result === BREAK) {
        break;
      } else if (result === CONTINUE) {
        continue;
      } else if (result === RETURN) {
        return result;
      }
    } while (evaluate(node.test, scope));
  }
  function ForStatement(node, scope) {
    var forScope = new Scope(scope);
    for (evaluate(node.init, forScope); node.test ? evaluate(node.test, forScope) : true; evaluate(node.update, forScope)) {
      var subScope = new Scope(forScope);
      var result = void 0;
      if (node.body.type === 'BlockStatement') {
        result = BlockStatement(node.body, subScope, {
          invasived: true
        });
      } else {
        result = evaluate(node.body, subScope);
      }
      if (result === BREAK) {
        break;
      } else if (result === CONTINUE) {
        continue;
      } else if (result === RETURN) {
        return result;
      }
    }
  }
  function ForInStatement(node, scope) {
    for (var value in evaluate(node.right, scope)) {
      var result = ForXHandler$1(node, scope, {
        value: value
      });
      if (result === BREAK) {
        break;
      } else if (result === CONTINUE) {
        continue;
      } else if (result === RETURN) {
        return result;
      }
    }
  }
  function ForOfStatement(node, scope) {
    var e_1, _a;
    var right = evaluate(node.right, scope);
    try {
      for (var right_1 = __values(right), right_1_1 = right_1.next(); !right_1_1.done; right_1_1 = right_1.next()) {
        var value = right_1_1.value;
        var result = ForXHandler$1(node, scope, {
          value: value
        });
        if (result === BREAK) {
          break;
        } else if (result === CONTINUE) {
          continue;
        } else if (result === RETURN) {
          return result;
        }
      }
    } catch (e_1_1) {
      e_1 = {
        error: e_1_1
      };
    } finally {
      try {
        if (right_1_1 && !right_1_1.done && (_a = right_1.return)) _a.call(right_1);
      } finally {
        if (e_1) throw e_1.error;
      }
    }
  }
  function FunctionDeclaration(node, scope) {
    scope.func(node.id.name, createFunc$1(node, scope));
  }
  function VariableDeclaration(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    for (var i = 0; i < node.declarations.length; i++) {
      VariableDeclarator(node.declarations[i], scope, assign({
        kind: node.kind
      }, options));
    }
  }
  function VariableDeclarator(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var _a = options.kind,
      kind = _a === void 0 ? 'var' : _a,
      _b = options.hoist,
      hoist = _b === void 0 ? false : _b,
      _c = options.onlyBlock,
      onlyBlock = _c === void 0 ? false : _c,
      feed = options.feed;
    if (hoist) {
      if (onlyBlock || kind === 'var') {
        if (node.id.type === 'Identifier') {
          scope[kind](node.id.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
        } else {
          pattern$3(node.id, scope, {
            kind: kind,
            hoist: hoist,
            onlyBlock: onlyBlock
          });
        }
      }
    } else {
      var hasFeed = ('feed' in options);
      var value = hasFeed ? feed : evaluate(node.init, scope);
      if (node.id.type === 'Identifier') {
        var name_1 = node.id.name;
        if (kind === 'var' && !node.init && !hasFeed) {
          scope.var(name_1, NOINIT);
        } else {
          scope[kind](name_1, value);
        }
        if (node.init && ['ClassExpression', 'FunctionExpression', 'ArrowFunctionExpression'].indexOf(node.init.type) !== -1 && !value.name) {
          define(value, 'name', {
            value: name_1,
            configurable: true
          });
        }
      } else {
        pattern$3(node.id, scope, {
          kind: kind,
          feed: value
        });
      }
    }
  }
  function ClassDeclaration(node, scope) {
    scope.func(node.id.name, createClass$1(node, scope));
  }
  function ClassBody(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var klass = options.klass,
      superClass = options.superClass;
    for (var i = 0; i < node.body.length; i++) {
      var def = node.body[i];
      if (def.type === 'MethodDefinition') {
        MethodDefinition(def, scope, {
          klass: klass,
          superClass: superClass
        });
      } else if (def.type === 'PropertyDefinition' && def.static) {
        PropertyDefinition(def, scope, {
          klass: klass,
          superClass: superClass
        });
      } else if (def.type === 'StaticBlock') {
        StaticBlock(def, scope, {
          klass: klass,
          superClass: superClass
        });
      }
    }
  }
  function MethodDefinition(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var klass = options.klass,
      superClass = options.superClass;
    var key;
    var priv = false;
    if (node.computed) {
      key = evaluate(node.key, scope);
    } else if (node.key.type === 'Identifier') {
      key = node.key.name;
    } else if (node.key.type === 'PrivateIdentifier') {
      key = node.key.name;
      priv = true;
    } else {
      throw new SyntaxError('Unexpected token');
    }
    var obj = node.static ? klass : klass.prototype;
    if (priv) {
      if (!obj[PRIVATE]) {
        define(obj, PRIVATE, {
          value: {}
        });
      }
      obj = obj[PRIVATE];
    }
    var value = createFunc$1(node.value, scope, {
      superClass: superClass
    });
    switch (node.kind) {
      case 'constructor':
        break;
      case 'method':
        define(obj, key, {
          value: value,
          writable: true,
          configurable: true
        });
        break;
      case 'get':
        {
          var oriDptor = getDptor(obj, key);
          define(obj, key, {
            get: value,
            set: oriDptor && oriDptor.set,
            configurable: true
          });
          break;
        }
      case 'set':
        {
          var oriDptor = getDptor(obj, key);
          define(obj, key, {
            get: oriDptor && oriDptor.get,
            set: value,
            configurable: true
          });
          break;
        }
      default:
        throw new SyntaxError('Unexpected token');
    }
  }
  function PropertyDefinition(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var klass = options.klass,
      superClass = options.superClass;
    var key;
    var priv = false;
    if (node.computed) {
      key = evaluate(node.key, scope);
    } else if (node.key.type === 'Identifier') {
      key = node.key.name;
    } else if (node.key.type === 'PrivateIdentifier') {
      key = node.key.name;
      priv = true;
    } else {
      throw new SyntaxError('Unexpected token');
    }
    var subScope = new Scope(scope, true);
    subScope.const('this', klass);
    var obj = klass;
    if (priv) {
      if (!obj[PRIVATE]) {
        define(obj, PRIVATE, {
          value: {}
        });
      }
      obj = obj[PRIVATE];
    }
    if (node.value.type === 'FunctionExpression' || node.value.type === 'ArrowFunctionExpression') {
      obj[key] = createFunc$1(node.value, subScope, {
        superClass: superClass
      });
    } else {
      obj[key] = evaluate(node.value, subScope);
    }
  }
  function StaticBlock(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var klass = options.klass;
    var subScope = new Scope(scope, true);
    subScope.const('this', klass);
    return BlockStatement(node, subScope, {
      invasived: true
    });
  }
  function ImportDeclaration(node, scope) {
    var globalScope = scope.global();
    var module = globalScope.find(IMPORT + node.source.value);
    var value;
    if (module) {
      var result = module.get();
      if (result) {
        if (typeof result === 'function') {
          value = result();
        } else if (typeof result === 'object') {
          value = result;
        }
      }
    }
    if (!value || typeof value !== 'object') {
      throw new TypeError("Failed to resolve module specifier \"" + node.source.value + "\"");
    }
    for (var i = 0; i < node.specifiers.length; i++) {
      var spec = node.specifiers[i];
      var name_2 = void 0;
      if (spec.type === 'ImportSpecifier') {
        name_2 = spec.imported.type === 'Identifier' ? spec.imported.name : spec.imported.value;
      } else if (spec.type === 'ImportDefaultSpecifier') {
        name_2 = 'default';
      } else if (spec.type === 'ImportNamespaceSpecifier') {
        name_2 = '*';
      }
      if (name_2 !== '*' && !hasOwn(value, name_2)) {
        throw new SyntaxError("The requested module \"" + node.source.value + "\" does not provide an export named \"" + name_2 + "\"");
      }
      scope.var(spec.local.name, name_2 === '*' ? assign({}, value) : value[name_2]);
    }
  }
  function ExportDefaultDeclaration(node, scope) {
    var globalScope = scope.global();
    var value;
    if (node.declaration.type === 'FunctionDeclaration') {
      value = createFunc$1(node.declaration, scope);
      scope.func(node.declaration.id.name, value);
    } else if (node.declaration.type === 'ClassDeclaration') {
      value = createClass$1(node.declaration, scope);
      scope.func(node.declaration.id.name, value);
    } else {
      value = evaluate(node.declaration, scope);
    }
    var variable = globalScope.find(EXPORTS);
    if (variable) {
      var exports_1 = variable.get();
      if (exports_1 && typeof exports_1 === 'object') {
        exports_1.default = value;
      }
    }
  }
  function ExportNamedDeclaration(node, scope) {
    var globalScope = scope.global();
    if (node.declaration) {
      if (node.declaration.type === 'FunctionDeclaration') {
        var value = createFunc$1(node.declaration, scope);
        scope.func(node.declaration.id.name, value);
        var variable = globalScope.find(EXPORTS);
        if (variable) {
          var exports_2 = variable.get();
          if (exports_2 && typeof exports_2 === 'object') {
            exports_2[node.declaration.id.name] = value;
          }
        }
      } else if (node.declaration.type === 'ClassDeclaration') {
        var value = createClass$1(node.declaration, scope);
        scope.func(node.declaration.id.name, value);
        var variable = globalScope.find(EXPORTS);
        if (variable) {
          var exports_3 = variable.get();
          if (exports_3 && typeof exports_3 === 'object') {
            exports_3[node.declaration.id.name] = value;
          }
        }
      } else if (node.declaration.type === 'VariableDeclaration') {
        VariableDeclaration(node.declaration, scope);
        var variable = globalScope.find(EXPORTS);
        if (variable) {
          var exports_4 = variable.get();
          if (exports_4 && typeof exports_4 === 'object') {
            for (var i = 0; i < node.declaration.declarations.length; i++) {
              var name_3 = node.declaration.declarations[i].id.name;
              var item = scope.find(name_3);
              if (item) {
                exports_4[name_3] = item.get();
              }
            }
          }
        }
      }
    } else if (node.specifiers) {
      var variable = globalScope.find(EXPORTS);
      if (variable) {
        var exports_5 = variable.get();
        if (exports_5 && typeof exports_5 === 'object') {
          for (var i = 0; i < node.specifiers.length; i++) {
            var spec = node.specifiers[i];
            var name_4 = spec.local.type === 'Identifier' ? spec.local.name : spec.local.value;
            var item = scope.find(name_4);
            if (item) {
              exports_5[spec.exported.type === 'Identifier' ? spec.exported.name : spec.exported.value] = item.get();
            }
          }
        }
      }
    }
  }
  function ExportAllDeclaration(node, scope) {
    var globalScope = scope.global();
    var module = globalScope.find(IMPORT + node.source.value);
    var value;
    if (module) {
      var result = module.get();
      if (result) {
        if (typeof result === 'function') {
          value = result();
        } else if (typeof result === 'object') {
          value = result;
        }
      }
    }
    if (!value || typeof value !== 'object') {
      throw new TypeError("Failed to resolve module specifier \"" + node.source.value + "\"");
    }
    var variable = globalScope.find(EXPORTS);
    if (variable) {
      var exports_6 = variable.get();
      if (exports_6 && typeof exports_6 === 'object') {
        assign(exports_6, value);
      }
    }
  }
  function Identifier$1(node, scope, options) {
    var _a, getVar, _b, throwErr, variable, value;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_c) {
      _a = options.getVar, getVar = _a === void 0 ? false : _a, _b = options.throwErr, throwErr = _b === void 0 ? true : _b;
      if (node.name === 'undefined') {
        return [2, undefined];
      }
      variable = scope.find(node.name);
      if (variable) {
        if (getVar) {
          return [2, variable];
        } else {
          value = variable.get();
          if (value === DEADZONE) {
            throw new ReferenceError(node.name + " is not defined");
          } else {
            return [2, value];
          }
        }
      } else if (throwErr) {
        throw new ReferenceError(node.name + " is not defined");
      } else {
        return [2, undefined];
      }
    });
  }
  var identifier$1 = /*#__PURE__*/Object.freeze({
    __proto__: null,
    Identifier: Identifier$1
  });
  function Literal$1(node, scope) {
    return __generator(this, function (_a) {
      return [2, node.value];
    });
  }
  var literal$1 = /*#__PURE__*/Object.freeze({
    __proto__: null,
    Literal: Literal$1
  });
  function ThisExpression$1(node, scope) {
    var superCall;
    return __generator(this, function (_a) {
      superCall = scope.find(SUPERCALL);
      if (superCall && !superCall.get()) {
        throw new ReferenceError('Must call super constructor in derived class ' + 'before accessing \'this\' or returning from derived constructor');
      } else {
        return [2, scope.find('this').get()];
      }
    });
  }
  function ArrayExpression$1(node, scope) {
    var results, i, item, _a, _b, _c, _d;
    return __generator(this, function (_e) {
      switch (_e.label) {
        case 0:
          results = [];
          i = 0;
          _e.label = 1;
        case 1:
          if (!(i < node.elements.length)) return [3, 6];
          item = node.elements[i];
          if (!(item.type === 'SpreadElement')) return [3, 3];
          _b = (_a = results).concat;
          return [5, __values(SpreadElement$1(item, scope))];
        case 2:
          results = _b.apply(_a, [_e.sent()]);
          return [3, 5];
        case 3:
          _d = (_c = results).push;
          return [5, __values(evaluate$1(item, scope))];
        case 4:
          _d.apply(_c, [_e.sent()]);
          _e.label = 5;
        case 5:
          i++;
          return [3, 1];
        case 6:
          return [2, results];
      }
    });
  }
  function ObjectExpression$1(node, scope) {
    var object, i, property, _a, _b, key, propKey, _c, value, propKind, oriDptor, oriDptor;
    return __generator(this, function (_d) {
      switch (_d.label) {
        case 0:
          object = {};
          i = 0;
          _d.label = 1;
        case 1:
          if (!(i < node.properties.length)) return [3, 11];
          property = node.properties[i];
          if (!(property.type === 'SpreadElement')) return [3, 3];
          _a = assign;
          _b = [object];
          return [5, __values(SpreadElement$1(property, scope))];
        case 2:
          _a.apply(void 0, _b.concat([_d.sent()]));
          return [3, 10];
        case 3:
          key = void 0;
          propKey = property.key;
          if (!property.computed) return [3, 5];
          return [5, __values(evaluate$1(propKey, scope))];
        case 4:
          key = _d.sent();
          return [3, 8];
        case 5:
          if (!(propKey.type === 'Identifier')) return [3, 6];
          key = propKey.name;
          return [3, 8];
        case 6:
          _c = '';
          return [5, __values(Literal$1(propKey))];
        case 7:
          key = _c + _d.sent();
          _d.label = 8;
        case 8:
          return [5, __values(evaluate$1(property.value, scope))];
        case 9:
          value = _d.sent();
          propKind = property.kind;
          if (propKind === 'init') {
            object[key] = value;
          } else if (propKind === 'get') {
            oriDptor = getDptor(object, key);
            define(object, key, {
              get: value,
              set: oriDptor && oriDptor.set,
              enumerable: true,
              configurable: true
            });
          } else {
            oriDptor = getDptor(object, key);
            define(object, key, {
              get: oriDptor && oriDptor.get,
              set: value,
              enumerable: true,
              configurable: true
            });
          }
          _d.label = 10;
        case 10:
          i++;
          return [3, 1];
        case 11:
          return [2, object];
      }
    });
  }
  function FunctionExpression$1(node, scope) {
    var tmpScope, func;
    return __generator(this, function (_a) {
      if (node.id && node.id.name) {
        tmpScope = new Scope(scope);
        func = createFunc(node, tmpScope);
        tmpScope.const(node.id.name, func);
        return [2, func];
      } else {
        return [2, createFunc(node, scope)];
      }
    });
  }
  function UnaryExpression$1(node, scope) {
    var arg, _a, variable;
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          arg = node.argument;
          _a = node.operator;
          switch (_a) {
            case '+':
              return [3, 1];
            case '-':
              return [3, 3];
            case '!':
              return [3, 5];
            case '~':
              return [3, 7];
            case 'void':
              return [3, 9];
            case 'typeof':
              return [3, 11];
            case 'delete':
              return [3, 15];
          }
          return [3, 20];
        case 1:
          return [5, __values(evaluate$1(arg, scope))];
        case 2:
          return [2, +_b.sent()];
        case 3:
          return [5, __values(evaluate$1(arg, scope))];
        case 4:
          return [2, -_b.sent()];
        case 5:
          return [5, __values(evaluate$1(arg, scope))];
        case 6:
          return [2, !_b.sent()];
        case 7:
          return [5, __values(evaluate$1(arg, scope))];
        case 8:
          return [2, ~_b.sent()];
        case 9:
          return [5, __values(evaluate$1(arg, scope))];
        case 10:
          return [2, void _b.sent()];
        case 11:
          if (!(arg.type === 'Identifier')) return [3, 13];
          return [5, __values(Identifier$1(arg, scope, {
            throwErr: false
          }))];
        case 12:
          return [2, typeof _b.sent()];
        case 13:
          return [5, __values(evaluate$1(arg, scope))];
        case 14:
          return [2, typeof _b.sent()];
        case 15:
          if (!(arg.type === 'MemberExpression')) return [3, 17];
          return [5, __values(MemberExpression$1(arg, scope, {
            getVar: true
          }))];
        case 16:
          variable = _b.sent();
          return [2, variable.del()];
        case 17:
          if (!(arg.type === 'Identifier')) return [3, 18];
          throw new SyntaxError('Delete of an unqualified identifier in strict mode');
        case 18:
          return [5, __values(evaluate$1(arg, scope))];
        case 19:
          _b.sent();
          return [2, true];
        case 20:
          throw new SyntaxError("Unexpected token " + node.operator);
      }
    });
  }
  function UpdateExpression$1(node, scope) {
    var arg, variable, value;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          arg = node.argument;
          if (!(arg.type === 'Identifier')) return [3, 2];
          return [5, __values(Identifier$1(arg, scope, {
            getVar: true
          }))];
        case 1:
          variable = _a.sent();
          return [3, 5];
        case 2:
          if (!(arg.type === 'MemberExpression')) return [3, 4];
          return [5, __values(MemberExpression$1(arg, scope, {
            getVar: true
          }))];
        case 3:
          variable = _a.sent();
          return [3, 5];
        case 4:
          throw new SyntaxError('Unexpected token');
        case 5:
          value = variable.get();
          if (node.operator === '++') {
            variable.set(value + 1);
            return [2, node.prefix ? variable.get() : value];
          } else if (node.operator === '--') {
            variable.set(value - 1);
            return [2, node.prefix ? variable.get() : value];
          } else {
            throw new SyntaxError("Unexpected token " + node.operator);
          }
      }
    });
  }
  function BinaryExpression$1(node, scope) {
    var left, right;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          if (!(node.left.type === 'PrivateIdentifier')) return [3, 2];
          left = node.left.name;
          return [5, __values(evaluate$1(node.right, scope))];
        case 1:
          right = _a.sent();
          right = right[PRIVATE];
          return [3, 5];
        case 2:
          return [5, __values(evaluate$1(node.left, scope))];
        case 3:
          left = _a.sent();
          return [5, __values(evaluate$1(node.right, scope))];
        case 4:
          right = _a.sent();
          _a.label = 5;
        case 5:
          switch (node.operator) {
            case '==':
              return [2, left == right];
            case '!=':
              return [2, left != right];
            case '===':
              return [2, left === right];
            case '!==':
              return [2, left !== right];
            case '<':
              return [2, left < right];
            case '<=':
              return [2, left <= right];
            case '>':
              return [2, left > right];
            case '>=':
              return [2, left >= right];
            case '<<':
              return [2, left << right];
            case '>>':
              return [2, left >> right];
            case '>>>':
              return [2, left >>> right];
            case '+':
              return [2, left + right];
            case '-':
              return [2, left - right];
            case '*':
              return [2, left * right];
            case '**':
              return [2, Math.pow(left, right)];
            case '/':
              return [2, left / right];
            case '%':
              return [2, left % right];
            case '|':
              return [2, left | right];
            case '^':
              return [2, left ^ right];
            case '&':
              return [2, left & right];
            case 'in':
              return [2, left in right];
            case 'instanceof':
              return [2, left instanceof right];
            default:
              throw new SyntaxError("Unexpected token " + node.operator);
          }
      }
    });
  }
  function AssignmentExpression$1(node, scope) {
    var left, variable, win, value_1, value;
    var _a;
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          left = node.left;
          if (!(left.type === 'Identifier')) return [3, 2];
          return [5, __values(Identifier$1(left, scope, {
            getVar: true,
            throwErr: false
          }))];
        case 1:
          variable = _b.sent();
          if (!variable) {
            win = scope.global().find('window').get();
            variable = new Prop(win, left.name);
          }
          return [3, 7];
        case 2:
          if (!(left.type === 'MemberExpression')) return [3, 4];
          return [5, __values(MemberExpression$1(left, scope, {
            getVar: true
          }))];
        case 3:
          variable = _b.sent();
          return [3, 7];
        case 4:
          return [5, __values(evaluate$1(node.right, scope))];
        case 5:
          value_1 = _b.sent();
          return [5, __values(pattern$2(left, scope, {
            feed: value_1
          }))];
        case 6:
          return [2, _b.sent()];
        case 7:
          return [5, __values(evaluate$1(node.right, scope))];
        case 8:
          value = _b.sent();
          switch (node.operator) {
            case '=':
              variable.set(value);
              return [2, variable.get()];
            case '+=':
              variable.set(variable.get() + value);
              return [2, variable.get()];
            case '-=':
              variable.set(variable.get() - value);
              return [2, variable.get()];
            case '*=':
              variable.set(variable.get() * value);
              return [2, variable.get()];
            case '/=':
              variable.set(variable.get() / value);
              return [2, variable.get()];
            case '%=':
              variable.set(variable.get() % value);
              return [2, variable.get()];
            case '**=':
              variable.set(Math.pow(variable.get(), value));
              return [2, variable.get()];
            case '<<=':
              variable.set(variable.get() << value);
              return [2, variable.get()];
            case '>>=':
              variable.set(variable.get() >> value);
              return [2, variable.get()];
            case '>>>=':
              variable.set(variable.get() >>> value);
              return [2, variable.get()];
            case '|=':
              variable.set(variable.get() | value);
              return [2, variable.get()];
            case '^=':
              variable.set(variable.get() ^ value);
              return [2, variable.get()];
            case '&=':
              variable.set(variable.get() & value);
              return [2, variable.get()];
            case '??=':
              variable.set((_a = variable.get()) !== null && _a !== void 0 ? _a : value);
              return [2, variable.get()];
            case '&&=':
              variable.set(variable.get() && value);
              return [2, variable.get()];
            case '||=':
              variable.set(variable.get() || value);
              return [2, variable.get()];
            default:
              throw new SyntaxError("Unexpected token " + node.operator);
          }
      }
    });
  }
  function LogicalExpression$1(node, scope) {
    var _a, _b, _c, _d;
    var _e;
    return __generator(this, function (_f) {
      switch (_f.label) {
        case 0:
          _a = node.operator;
          switch (_a) {
            case '||':
              return [3, 1];
            case '&&':
              return [3, 5];
            case '??':
              return [3, 9];
          }
          return [3, 14];
        case 1:
          return [5, __values(evaluate$1(node.left, scope))];
        case 2:
          _b = _f.sent();
          if (_b) return [3, 4];
          return [5, __values(evaluate$1(node.right, scope))];
        case 3:
          _b = _f.sent();
          _f.label = 4;
        case 4:
          return [2, _b];
        case 5:
          return [5, __values(evaluate$1(node.left, scope))];
        case 6:
          _c = _f.sent();
          if (!_c) return [3, 8];
          return [5, __values(evaluate$1(node.right, scope))];
        case 7:
          _c = _f.sent();
          _f.label = 8;
        case 8:
          return [2, _c];
        case 9:
          return [5, __values(evaluate$1(node.left, scope))];
        case 10:
          if (!((_e = _f.sent()) !== null && _e !== void 0)) return [3, 11];
          _d = _e;
          return [3, 13];
        case 11:
          return [5, __values(evaluate$1(node.right, scope))];
        case 12:
          _d = _f.sent();
          _f.label = 13;
        case 13:
          return [2, _d];
        case 14:
          throw new SyntaxError("Unexpected token " + node.operator);
      }
    });
  }
  function MemberExpression$1(node, scope, options) {
    var _a, getObj, _b, getVar, object, key, priv, setter, thisObject, privateKey, getter, thisObject;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_c) {
      switch (_c.label) {
        case 0:
          _a = options.getObj, getObj = _a === void 0 ? false : _a, _b = options.getVar, getVar = _b === void 0 ? false : _b;
          if (!(node.object.type === 'Super')) return [3, 2];
          return [5, __values(Super$1(node.object, scope, {
            getProto: true
          }))];
        case 1:
          object = _c.sent();
          return [3, 4];
        case 2:
          return [5, __values(evaluate$1(node.object, scope))];
        case 3:
          object = _c.sent();
          _c.label = 4;
        case 4:
          if (getObj) return [2, object];
          priv = false;
          if (!node.computed) return [3, 6];
          return [5, __values(evaluate$1(node.property, scope))];
        case 5:
          key = _c.sent();
          return [3, 7];
        case 6:
          if (node.property.type === 'PrivateIdentifier') {
            key = node.property.name;
            priv = true;
          } else {
            key = node.property.name;
          }
          _c.label = 7;
        case 7:
          if (priv) {
            object = object[PRIVATE];
          }
          if (getVar) {
            setter = getSetter(object, key);
            if (node.object.type === 'Super' && setter) {
              thisObject = scope.find('this').get();
              privateKey = createSymbol(key);
              define(thisObject, privateKey, {
                set: setter
              });
              return [2, new Prop(thisObject, privateKey)];
            } else {
              return [2, new Prop(object, key)];
            }
          } else {
            getter = getGetter(object, key);
            if (node.object.type === 'Super' && getter) {
              thisObject = scope.find('this').get();
              if (node.optional && thisObject == null) {
                return [2, undefined];
              }
              return [2, getter.call(thisObject)];
            } else {
              if (node.optional && object == null) {
                return [2, undefined];
              }
              return [2, object[key]];
            }
          }
      }
    });
  }
  function ConditionalExpression$1(node, scope) {
    var _a;
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          return [5, __values(evaluate$1(node.test, scope))];
        case 1:
          if (!_b.sent()) return [3, 3];
          return [5, __values(evaluate$1(node.consequent, scope))];
        case 2:
          _a = _b.sent();
          return [3, 5];
        case 3:
          return [5, __values(evaluate$1(node.alternate, scope))];
        case 4:
          _a = _b.sent();
          _b.label = 5;
        case 5:
          return [2, _a];
      }
    });
  }
  function CallExpression$1(node, scope) {
    var func, object, key, priv, obj, thisObject, name_1, args, i, arg, _a, _b, _c, _d, superCall;
    return __generator(this, function (_e) {
      switch (_e.label) {
        case 0:
          if (!(node.callee.type === 'MemberExpression')) return [3, 5];
          return [5, __values(MemberExpression$1(node.callee, scope, {
            getObj: true
          }))];
        case 1:
          object = _e.sent();
          if (node.callee.optional && object == null) {
            return [2, undefined];
          }
          key = void 0;
          priv = false;
          if (!node.callee.computed) return [3, 3];
          return [5, __values(evaluate$1(node.callee.property, scope))];
        case 2:
          key = _e.sent();
          return [3, 4];
        case 3:
          if (node.callee.property.type === 'PrivateIdentifier') {
            key = node.callee.property.name;
            priv = true;
          } else {
            key = node.callee.property.name;
          }
          _e.label = 4;
        case 4:
          obj = object;
          if (priv) {
            obj = obj[PRIVATE];
          }
          if (node.callee.object.type === 'Super') {
            thisObject = scope.find('this').get();
            func = obj[key].bind(thisObject);
          } else {
            func = obj[key];
          }
          if (node.optional && func == null) {
            return [2, undefined];
          }
          if (typeof func !== 'function') {
            throw new TypeError(key + " is not a function");
          } else if (func[CLSCTOR]) {
            throw new TypeError("Class constructor " + key + " cannot be invoked without 'new'");
          }
          return [3, 7];
        case 5:
          object = scope.find('this').get();
          return [5, __values(evaluate$1(node.callee, scope))];
        case 6:
          func = _e.sent();
          if (node.optional && func == null) {
            return [2, undefined];
          }
          if (typeof func !== 'function' || node.callee.type !== 'Super' && func[CLSCTOR]) {
            if (node.callee.type === 'Identifier') {
              name_1 = node.callee.name;
            } else {
              try {
                name_1 = JSON.stringify(func);
              } catch (err) {
                name_1 = '' + func;
              }
            }
            if (typeof func !== 'function') {
              throw new TypeError(name_1 + " is not a function");
            } else {
              throw new TypeError("Class constructor " + name_1 + " cannot be invoked without 'new'");
            }
          }
          _e.label = 7;
        case 7:
          args = [];
          i = 0;
          _e.label = 8;
        case 8:
          if (!(i < node.arguments.length)) return [3, 13];
          arg = node.arguments[i];
          if (!(arg.type === 'SpreadElement')) return [3, 10];
          _b = (_a = args).concat;
          return [5, __values(SpreadElement$1(arg, scope))];
        case 9:
          args = _b.apply(_a, [_e.sent()]);
          return [3, 12];
        case 10:
          _d = (_c = args).push;
          return [5, __values(evaluate$1(arg, scope))];
        case 11:
          _d.apply(_c, [_e.sent()]);
          _e.label = 12;
        case 12:
          i++;
          return [3, 8];
        case 13:
          if (node.callee.type === 'Super') {
            superCall = scope.find(SUPERCALL);
            if (superCall.get()) {
              throw new ReferenceError('Super constructor may only be called once');
            } else {
              scope.find(SUPERCALL).set(true);
            }
          }
          if (object && object[WINDOW] && func.toString().indexOf('[native code]') !== -1) {
            return [2, func.apply(object[WINDOW], args)];
          }
          return [2, func.apply(object, args)];
      }
    });
  }
  function NewExpression$1(node, scope) {
    var constructor, name_2, args, i, arg, _a, _b, _c, _d;
    return __generator(this, function (_e) {
      switch (_e.label) {
        case 0:
          return [5, __values(evaluate$1(node.callee, scope))];
        case 1:
          constructor = _e.sent();
          if (typeof constructor !== 'function') {
            if (node.callee.type === 'Identifier') {
              name_2 = node.callee.name;
            } else {
              try {
                name_2 = JSON.stringify(constructor);
              } catch (err) {
                name_2 = '' + constructor;
              }
            }
            throw new TypeError(name_2 + " is not a constructor");
          } else if (constructor[NOCTOR]) {
            throw new TypeError((constructor.name || '(intermediate value)') + " is not a constructor");
          }
          args = [];
          i = 0;
          _e.label = 2;
        case 2:
          if (!(i < node.arguments.length)) return [3, 7];
          arg = node.arguments[i];
          if (!(arg.type === 'SpreadElement')) return [3, 4];
          _b = (_a = args).concat;
          return [5, __values(SpreadElement$1(arg, scope))];
        case 3:
          args = _b.apply(_a, [_e.sent()]);
          return [3, 6];
        case 4:
          _d = (_c = args).push;
          return [5, __values(evaluate$1(arg, scope))];
        case 5:
          _d.apply(_c, [_e.sent()]);
          _e.label = 6;
        case 6:
          i++;
          return [3, 2];
        case 7:
          return [2, new (constructor.bind.apply(constructor, __spread([void 0], args)))()];
      }
    });
  }
  function MetaProperty$1(node, scope) {
    return __generator(this, function (_a) {
      if (node.meta.name === 'new' && node.property.name === 'target') {
        return [2, scope.find(NEWTARGET).get()];
      } else if (node.meta.name === 'import' && node.property.name === 'meta') {
        return [2, {
          url: ''
        }];
      }
      return [2];
    });
  }
  function SequenceExpression$1(node, scope) {
    var result, i;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          i = 0;
          _a.label = 1;
        case 1:
          if (!(i < node.expressions.length)) return [3, 4];
          return [5, __values(evaluate$1(node.expressions[i], scope))];
        case 2:
          result = _a.sent();
          _a.label = 3;
        case 3:
          i++;
          return [3, 1];
        case 4:
          return [2, result];
      }
    });
  }
  function ArrowFunctionExpression$1(node, scope) {
    return __generator(this, function (_a) {
      return [2, createFunc(node, scope)];
    });
  }
  function TemplateLiteral$1(node, scope) {
    var quasis, expressions, result, temEl, expr, _a, _b;
    return __generator(this, function (_c) {
      switch (_c.label) {
        case 0:
          quasis = node.quasis.slice();
          expressions = node.expressions.slice();
          result = '';
          _c.label = 1;
        case 1:
          if (!(temEl = quasis.shift())) return [3, 5];
          _a = result;
          return [5, __values(TemplateElement$1(temEl))];
        case 2:
          result = _a + _c.sent();
          expr = expressions.shift();
          if (!expr) return [3, 4];
          _b = result;
          return [5, __values(evaluate$1(expr, scope))];
        case 3:
          result = _b + _c.sent();
          _c.label = 4;
        case 4:
          return [3, 1];
        case 5:
          return [2, result];
      }
    });
  }
  function TaggedTemplateExpression$1(node, scope) {
    var tagFunc, quasis, str, raw, expressions, args, i, _a, _b;
    return __generator(this, function (_c) {
      switch (_c.label) {
        case 0:
          return [5, __values(evaluate$1(node.tag, scope))];
        case 1:
          tagFunc = _c.sent();
          quasis = node.quasi.quasis;
          str = quasis.map(function (v) {
            return v.value.cooked;
          });
          raw = quasis.map(function (v) {
            return v.value.raw;
          });
          define(str, 'raw', {
            value: freeze(raw)
          });
          expressions = node.quasi.expressions;
          args = [];
          if (!expressions) return [3, 5];
          i = 0;
          _c.label = 2;
        case 2:
          if (!(i < expressions.length)) return [3, 5];
          _b = (_a = args).push;
          return [5, __values(evaluate$1(expressions[i], scope))];
        case 3:
          _b.apply(_a, [_c.sent()]);
          _c.label = 4;
        case 4:
          i++;
          return [3, 2];
        case 5:
          return [2, tagFunc.apply(void 0, __spread([freeze(str)], args))];
      }
    });
  }
  function TemplateElement$1(node, scope) {
    return __generator(this, function (_a) {
      return [2, node.value.raw];
    });
  }
  function ClassExpression$1(node, scope) {
    var tmpScope, klass;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          if (!(node.id && node.id.name)) return [3, 2];
          tmpScope = new Scope(scope);
          return [5, __values(createClass(node, tmpScope))];
        case 1:
          klass = _a.sent();
          tmpScope.const(node.id.name, klass);
          return [2, klass];
        case 2:
          return [5, __values(createClass(node, scope))];
        case 3:
          return [2, _a.sent()];
      }
    });
  }
  function Super$1(node, scope, options) {
    var _a, getProto, superClass;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_b) {
      _a = options.getProto, getProto = _a === void 0 ? false : _a;
      superClass = scope.find(SUPER).get();
      return [2, getProto ? superClass.prototype : superClass];
    });
  }
  function SpreadElement$1(node, scope) {
    var result;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          return [5, __values(evaluate$1(node.argument, scope))];
        case 1:
          result = _a.sent();
          return [2, typeof result === 'string' ? __spread(result) : result];
      }
    });
  }
  function ChainExpression$1(node, scope) {
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          return [5, __values(evaluate$1(node.expression, scope))];
        case 1:
          return [2, _a.sent()];
      }
    });
  }
  function ImportExpression$1(node, scope) {
    var globalScope, source, module, value, result;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          globalScope = scope.global();
          return [5, __values(evaluate$1(node.source, scope))];
        case 1:
          source = _a.sent();
          module = globalScope.find(IMPORT + source);
          if (module) {
            result = module.get();
            if (result) {
              if (typeof result === 'function') {
                value = result();
              } else if (typeof result === 'object') {
                value = result;
              }
            }
          }
          if (!value || typeof value !== 'object') {
            return [2, Promise.reject(new TypeError("Failed to resolve module specifier \"" + source + "\""))];
          }
          return [2, Promise.resolve(value)];
      }
    });
  }
  function YieldExpression(node, scope) {
    var res, _a;
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          return [5, __values(evaluate$1(node.argument, scope))];
        case 1:
          res = _b.sent();
          if (!node.delegate) return [3, 3];
          return [5, __values(res)];
        case 2:
          _a = _b.sent();
          return [3, 5];
        case 3:
          return [4, res];
        case 4:
          _a = _b.sent();
          _b.label = 5;
        case 5:
          return [2, _a];
      }
    });
  }
  function AwaitExpression(node, scope) {
    var _a;
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          _a = AWAIT;
          return [5, __values(evaluate$1(node.argument, scope))];
        case 1:
          _a.RES = _b.sent();
          return [4, AWAIT];
        case 2:
          return [2, _b.sent()];
      }
    });
  }
  var expression$1 = /*#__PURE__*/Object.freeze({
    __proto__: null,
    ThisExpression: ThisExpression$1,
    ArrayExpression: ArrayExpression$1,
    ObjectExpression: ObjectExpression$1,
    FunctionExpression: FunctionExpression$1,
    UnaryExpression: UnaryExpression$1,
    UpdateExpression: UpdateExpression$1,
    BinaryExpression: BinaryExpression$1,
    AssignmentExpression: AssignmentExpression$1,
    LogicalExpression: LogicalExpression$1,
    MemberExpression: MemberExpression$1,
    ConditionalExpression: ConditionalExpression$1,
    CallExpression: CallExpression$1,
    NewExpression: NewExpression$1,
    MetaProperty: MetaProperty$1,
    SequenceExpression: SequenceExpression$1,
    ArrowFunctionExpression: ArrowFunctionExpression$1,
    TemplateLiteral: TemplateLiteral$1,
    TaggedTemplateExpression: TaggedTemplateExpression$1,
    TemplateElement: TemplateElement$1,
    ClassExpression: ClassExpression$1,
    Super: Super$1,
    SpreadElement: SpreadElement$1,
    ChainExpression: ChainExpression$1,
    ImportExpression: ImportExpression$1,
    YieldExpression: YieldExpression,
    AwaitExpression: AwaitExpression
  });
  function ObjectPattern$1(node, scope, options) {
    var _a, kind, _b, hoist, _c, onlyBlock, _d, feed, fedKeys, i, property, value, key, value, rest, i_1;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_e) {
      switch (_e.label) {
        case 0:
          _a = options.kind, kind = _a === void 0 ? 'var' : _a, _b = options.hoist, hoist = _b === void 0 ? false : _b, _c = options.onlyBlock, onlyBlock = _c === void 0 ? false : _c, _d = options.feed, feed = _d === void 0 ? {} : _d;
          fedKeys = [];
          i = 0;
          _e.label = 1;
        case 1:
          if (!(i < node.properties.length)) return [3, 18];
          property = node.properties[i];
          if (!hoist) return [3, 8];
          if (!(onlyBlock || kind === 'var')) return [3, 7];
          if (!(property.type === 'Property')) return [3, 5];
          value = property.value;
          if (!(value.type === 'Identifier')) return [3, 2];
          scope[kind](value.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
          return [3, 4];
        case 2:
          return [5, __values(pattern$2(value, scope, {
            kind: kind,
            hoist: hoist,
            onlyBlock: onlyBlock
          }))];
        case 3:
          _e.sent();
          _e.label = 4;
        case 4:
          return [3, 7];
        case 5:
          return [5, __values(RestElement$1(property, scope, {
            kind: kind,
            hoist: hoist,
            onlyBlock: onlyBlock
          }))];
        case 6:
          _e.sent();
          _e.label = 7;
        case 7:
          return [3, 17];
        case 8:
          if (!(property.type === 'Property')) return [3, 15];
          key = void 0;
          if (!property.computed) return [3, 10];
          return [5, __values(evaluate$1(property.key, scope))];
        case 9:
          key = _e.sent();
          return [3, 11];
        case 10:
          key = property.key.name;
          _e.label = 11;
        case 11:
          fedKeys.push(key);
          value = property.value;
          if (!(value.type === 'Identifier')) return [3, 12];
          scope[kind](value.name, feed[key]);
          return [3, 14];
        case 12:
          return [5, __values(pattern$2(value, scope, {
            kind: kind,
            feed: feed[key]
          }))];
        case 13:
          _e.sent();
          _e.label = 14;
        case 14:
          return [3, 17];
        case 15:
          rest = assign({}, feed);
          for (i_1 = 0; i_1 < fedKeys.length; i_1++) delete rest[fedKeys[i_1]];
          return [5, __values(RestElement$1(property, scope, {
            kind: kind,
            feed: rest
          }))];
        case 16:
          _e.sent();
          _e.label = 17;
        case 17:
          i++;
          return [3, 1];
        case 18:
          return [2];
      }
    });
  }
  function ArrayPattern$1(node, scope, options) {
    var kind, _a, hoist, _b, onlyBlock, _c, feed, result, i, element, variable;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_d) {
      switch (_d.label) {
        case 0:
          kind = options.kind, _a = options.hoist, hoist = _a === void 0 ? false : _a, _b = options.onlyBlock, onlyBlock = _b === void 0 ? false : _b, _c = options.feed, feed = _c === void 0 ? [] : _c;
          result = [];
          i = 0;
          _d.label = 1;
        case 1:
          if (!(i < node.elements.length)) return [3, 14];
          element = node.elements[i];
          if (!element) return [3, 13];
          if (!hoist) return [3, 5];
          if (!(onlyBlock || kind === 'var')) return [3, 4];
          if (!(element.type === 'Identifier')) return [3, 2];
          scope[kind](element.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
          return [3, 4];
        case 2:
          return [5, __values(pattern$2(element, scope, {
            kind: kind,
            hoist: hoist,
            onlyBlock: onlyBlock
          }))];
        case 3:
          _d.sent();
          _d.label = 4;
        case 4:
          return [3, 13];
        case 5:
          if (!(element.type === 'Identifier')) return [3, 9];
          if (!kind) return [3, 6];
          scope[kind](element.name, feed[i]);
          return [3, 8];
        case 6:
          return [5, __values(Identifier$1(element, scope, {
            getVar: true
          }))];
        case 7:
          variable = _d.sent();
          variable.set(feed[i]);
          result.push(variable.get());
          _d.label = 8;
        case 8:
          return [3, 13];
        case 9:
          if (!(element.type === 'RestElement')) return [3, 11];
          return [5, __values(RestElement$1(element, scope, {
            kind: kind,
            feed: feed.slice(i)
          }))];
        case 10:
          _d.sent();
          return [3, 13];
        case 11:
          return [5, __values(pattern$2(element, scope, {
            kind: kind,
            feed: feed[i]
          }))];
        case 12:
          _d.sent();
          _d.label = 13;
        case 13:
          i++;
          return [3, 1];
        case 14:
          if (result.length) {
            return [2, result];
          }
          return [2];
      }
    });
  }
  function RestElement$1(node, scope, options) {
    var kind, _a, hoist, _b, onlyBlock, _c, feed, arg, variable;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_d) {
      switch (_d.label) {
        case 0:
          kind = options.kind, _a = options.hoist, hoist = _a === void 0 ? false : _a, _b = options.onlyBlock, onlyBlock = _b === void 0 ? false : _b, _c = options.feed, feed = _c === void 0 ? [] : _c;
          arg = node.argument;
          if (!hoist) return [3, 4];
          if (!(onlyBlock || kind === 'var')) return [3, 3];
          if (!(arg.type === 'Identifier')) return [3, 1];
          scope[kind](arg.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
          return [3, 3];
        case 1:
          return [5, __values(pattern$2(arg, scope, {
            kind: kind,
            hoist: hoist,
            onlyBlock: onlyBlock
          }))];
        case 2:
          _d.sent();
          _d.label = 3;
        case 3:
          return [3, 10];
        case 4:
          if (!(arg.type === 'Identifier')) return [3, 8];
          if (!kind) return [3, 5];
          scope[kind](arg.name, feed);
          return [3, 7];
        case 5:
          return [5, __values(Identifier$1(arg, scope, {
            getVar: true
          }))];
        case 6:
          variable = _d.sent();
          variable.set(feed);
          _d.label = 7;
        case 7:
          return [3, 10];
        case 8:
          return [5, __values(pattern$2(arg, scope, {
            kind: kind,
            feed: feed
          }))];
        case 9:
          _d.sent();
          _d.label = 10;
        case 10:
          return [2];
      }
    });
  }
  function AssignmentPattern$1(node, scope, options) {
    var _a, kind, _b, hoist, _c, onlyBlock, _d, feed, _e, left;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_f) {
      switch (_f.label) {
        case 0:
          _a = options.kind, kind = _a === void 0 ? 'var' : _a, _b = options.hoist, hoist = _b === void 0 ? false : _b, _c = options.onlyBlock, onlyBlock = _c === void 0 ? false : _c, _d = options.feed;
          if (!(_d === void 0)) return [3, 2];
          return [5, __values(evaluate$1(node.right, scope))];
        case 1:
          _e = _f.sent();
          return [3, 3];
        case 2:
          _e = _d;
          _f.label = 3;
        case 3:
          feed = _e;
          left = node.left;
          if (!hoist) return [3, 7];
          if (!(onlyBlock || kind === 'var')) return [3, 6];
          if (!(left.type === 'Identifier')) return [3, 4];
          scope[kind](left.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
          return [3, 6];
        case 4:
          return [5, __values(pattern$2(left, scope, {
            kind: kind,
            hoist: hoist,
            onlyBlock: onlyBlock
          }))];
        case 5:
          _f.sent();
          _f.label = 6;
        case 6:
          return [3, 10];
        case 7:
          if (!(left.type === 'Identifier')) return [3, 8];
          scope[kind](left.name, feed);
          return [3, 10];
        case 8:
          return [5, __values(pattern$2(left, scope, {
            kind: kind,
            feed: feed
          }))];
        case 9:
          _f.sent();
          _f.label = 10;
        case 10:
          return [2];
      }
    });
  }
  var pattern$1 = /*#__PURE__*/Object.freeze({
    __proto__: null,
    ObjectPattern: ObjectPattern$1,
    ArrayPattern: ArrayPattern$1,
    RestElement: RestElement$1,
    AssignmentPattern: AssignmentPattern$1
  });
  var evaluateOps$1;
  function evaluate$1(node, scope) {
    var handler;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          if (!node) return [2];
          if (!evaluateOps$1) {
            evaluateOps$1 = assign({}, declaration$1, expression$1, identifier$1, statement$1, literal$1, pattern$1);
          }
          handler = evaluateOps$1[node.type];
          if (!handler) return [3, 2];
          return [5, __values(handler(node, scope))];
        case 1:
          return [2, _a.sent()];
        case 2:
          throw new Error(node.type + " isn't implemented");
      }
    });
  }
  function ExpressionStatement$1(node, scope) {
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          return [5, __values(evaluate$1(node.expression, scope))];
        case 1:
          _a.sent();
          return [2];
      }
    });
  }
  function BlockStatement$1(block, scope, options) {
    var _a, invasived, _b, hoisted, subScope, i, result;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_c) {
      switch (_c.label) {
        case 0:
          _a = options.invasived, invasived = _a === void 0 ? false : _a, _b = options.hoisted, hoisted = _b === void 0 ? false : _b;
          subScope = invasived ? scope : new Scope(scope);
          if (!!hoisted) return [3, 2];
          return [5, __values(hoist(block, subScope, {
            onlyBlock: true
          }))];
        case 1:
          _c.sent();
          _c.label = 2;
        case 2:
          i = 0;
          _c.label = 3;
        case 3:
          if (!(i < block.body.length)) return [3, 6];
          return [5, __values(evaluate$1(block.body[i], subScope))];
        case 4:
          result = _c.sent();
          if (result === BREAK || result === CONTINUE || result === RETURN) {
            return [2, result];
          }
          _c.label = 5;
        case 5:
          i++;
          return [3, 3];
        case 6:
          return [2];
      }
    });
  }
  function EmptyStatement$1() {
    return __generator(this, function (_a) {
      return [2];
    });
  }
  function DebuggerStatement$1() {
    return __generator(this, function (_a) {
      debugger;
      return [2];
    });
  }
  function ReturnStatement$1(node, scope) {
    var _a, _b;
    return __generator(this, function (_c) {
      switch (_c.label) {
        case 0:
          _a = RETURN;
          if (!node.argument) return [3, 2];
          return [5, __values(evaluate$1(node.argument, scope))];
        case 1:
          _b = _c.sent();
          return [3, 3];
        case 2:
          _b = undefined;
          _c.label = 3;
        case 3:
          _a.RES = _b;
          return [2, RETURN];
      }
    });
  }
  function BreakStatement$1() {
    return __generator(this, function (_a) {
      return [2, BREAK];
    });
  }
  function ContinueStatement$1() {
    return __generator(this, function (_a) {
      return [2, CONTINUE];
    });
  }
  function IfStatement$1(node, scope) {
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          return [5, __values(evaluate$1(node.test, scope))];
        case 1:
          if (!_a.sent()) return [3, 3];
          return [5, __values(evaluate$1(node.consequent, scope))];
        case 2:
          return [2, _a.sent()];
        case 3:
          return [5, __values(evaluate$1(node.alternate, scope))];
        case 4:
          return [2, _a.sent()];
      }
    });
  }
  function SwitchStatement$1(node, scope) {
    var discriminant, matched, i, eachCase, _a, _b, result;
    return __generator(this, function (_c) {
      switch (_c.label) {
        case 0:
          return [5, __values(evaluate$1(node.discriminant, scope))];
        case 1:
          discriminant = _c.sent();
          matched = false;
          i = 0;
          _c.label = 2;
        case 2:
          if (!(i < node.cases.length)) return [3, 8];
          eachCase = node.cases[i];
          _a = !matched;
          if (!_a) return [3, 5];
          _b = !eachCase.test;
          if (_b) return [3, 4];
          return [5, __values(evaluate$1(eachCase.test, scope))];
        case 3:
          _b = _c.sent() === discriminant;
          _c.label = 4;
        case 4:
          _a = _b;
          _c.label = 5;
        case 5:
          if (_a) {
            matched = true;
          }
          if (!matched) return [3, 7];
          return [5, __values(SwitchCase$1(eachCase, scope))];
        case 6:
          result = _c.sent();
          if (result === BREAK) {
            return [3, 8];
          }
          if (result === CONTINUE || result === RETURN) {
            return [2, result];
          }
          _c.label = 7;
        case 7:
          i++;
          return [3, 2];
        case 8:
          return [2];
      }
    });
  }
  function SwitchCase$1(node, scope) {
    var i, result;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          i = 0;
          _a.label = 1;
        case 1:
          if (!(i < node.consequent.length)) return [3, 4];
          return [5, __values(evaluate$1(node.consequent[i], scope))];
        case 2:
          result = _a.sent();
          if (result === BREAK || result === CONTINUE || result === RETURN) {
            return [2, result];
          }
          _a.label = 3;
        case 3:
          i++;
          return [3, 1];
        case 4:
          return [2];
      }
    });
  }
  function ThrowStatement$1(node, scope) {
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          return [5, __values(evaluate$1(node.argument, scope))];
        case 1:
          throw _a.sent();
      }
    });
  }
  function TryStatement$1(node, scope) {
    var err_1, subScope, param, name_1, result;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          _a.trys.push([0, 2, 9, 12]);
          return [5, __values(BlockStatement$1(node.block, scope))];
        case 1:
          return [2, _a.sent()];
        case 2:
          err_1 = _a.sent();
          if (!node.handler) return [3, 7];
          subScope = new Scope(scope);
          param = node.handler.param;
          if (!param) return [3, 5];
          if (!(param.type === 'Identifier')) return [3, 3];
          name_1 = param.name;
          subScope.var(name_1, err_1);
          return [3, 5];
        case 3:
          return [5, __values(pattern$2(param, scope, {
            feed: err_1
          }))];
        case 4:
          _a.sent();
          _a.label = 5;
        case 5:
          return [5, __values(CatchClause$1(node.handler, subScope))];
        case 6:
          return [2, _a.sent()];
        case 7:
          throw err_1;
        case 8:
          return [3, 12];
        case 9:
          if (!node.finalizer) return [3, 11];
          return [5, __values(BlockStatement$1(node.finalizer, scope))];
        case 10:
          result = _a.sent();
          if (result === BREAK || result === CONTINUE || result === RETURN) {
            return [2, result];
          }
          _a.label = 11;
        case 11:
          return [7];
        case 12:
          return [2];
      }
    });
  }
  function CatchClause$1(node, scope) {
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          return [5, __values(BlockStatement$1(node.body, scope, {
            invasived: true
          }))];
        case 1:
          return [2, _a.sent()];
      }
    });
  }
  function WhileStatement$1(node, scope) {
    var result;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          return [5, __values(evaluate$1(node.test, scope))];
        case 1:
          if (!_a.sent()) return [3, 3];
          return [5, __values(evaluate$1(node.body, scope))];
        case 2:
          result = _a.sent();
          if (result === BREAK) {
            return [3, 3];
          } else if (result === CONTINUE) {
            return [3, 0];
          } else if (result === RETURN) {
            return [2, result];
          }
          return [3, 0];
        case 3:
          return [2];
      }
    });
  }
  function DoWhileStatement$1(node, scope) {
    var result;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          return [5, __values(evaluate$1(node.body, scope))];
        case 1:
          result = _a.sent();
          if (result === BREAK) {
            return [3, 4];
          } else if (result === CONTINUE) {
            return [3, 2];
          } else if (result === RETURN) {
            return [2, result];
          }
          _a.label = 2;
        case 2:
          return [5, __values(evaluate$1(node.test, scope))];
        case 3:
          if (_a.sent()) return [3, 0];
          _a.label = 4;
        case 4:
          return [2];
      }
    });
  }
  function ForStatement$1(node, scope) {
    var forScope, _a, subScope, result;
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          forScope = new Scope(scope);
          return [5, __values(evaluate$1(node.init, forScope))];
        case 1:
          _b.sent();
          _b.label = 2;
        case 2:
          if (!node.test) return [3, 4];
          return [5, __values(evaluate$1(node.test, forScope))];
        case 3:
          _a = _b.sent();
          return [3, 5];
        case 4:
          _a = true;
          _b.label = 5;
        case 5:
          if (!_a) return [3, 12];
          subScope = new Scope(forScope);
          result = void 0;
          if (!(node.body.type === 'BlockStatement')) return [3, 7];
          return [5, __values(BlockStatement$1(node.body, subScope, {
            invasived: true
          }))];
        case 6:
          result = _b.sent();
          return [3, 9];
        case 7:
          return [5, __values(evaluate$1(node.body, subScope))];
        case 8:
          result = _b.sent();
          _b.label = 9;
        case 9:
          if (result === BREAK) {
            return [3, 12];
          } else if (result === CONTINUE) {
            return [3, 10];
          } else if (result === RETURN) {
            return [2, result];
          }
          _b.label = 10;
        case 10:
          return [5, __values(evaluate$1(node.update, forScope))];
        case 11:
          _b.sent();
          return [3, 2];
        case 12:
          return [2];
      }
    });
  }
  function ForInStatement$1(node, scope) {
    var _a, _b, _i, value, result;
    return __generator(this, function (_c) {
      switch (_c.label) {
        case 0:
          _a = [];
          return [5, __values(evaluate$1(node.right, scope))];
        case 1:
          for (_b in _c.sent()) _a.push(_b);
          _i = 0;
          _c.label = 2;
        case 2:
          if (!(_i < _a.length)) return [3, 5];
          value = _a[_i];
          return [5, __values(ForXHandler(node, scope, {
            value: value
          }))];
        case 3:
          result = _c.sent();
          if (result === BREAK) {
            return [3, 5];
          } else if (result === CONTINUE) {
            return [3, 4];
          } else if (result === RETURN) {
            return [2, result];
          }
          _c.label = 4;
        case 4:
          _i++;
          return [3, 2];
        case 5:
          return [2];
      }
    });
  }
  function ForOfStatement$1(node, scope) {
    var right, iterator, ret, result, right_1, right_1_1, value, result, e_1_1;
    var e_1, _a;
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          return [5, __values(evaluate$1(node.right, scope))];
        case 1:
          right = _b.sent();
          if (!node.await) return [3, 8];
          iterator = getAsyncIterator(right);
          ret = void 0;
          AWAIT.RES = iterator.next();
          return [4, AWAIT];
        case 2:
          ret = _b.sent();
          _b.label = 3;
        case 3:
          if (!!ret.done) return [3, 7];
          return [5, __values(ForXHandler(node, scope, {
            value: ret.value
          }))];
        case 4:
          result = _b.sent();
          if (result === BREAK) {
            return [3, 7];
          } else if (result === CONTINUE) {
            return [3, 5];
          } else if (result === RETURN) {
            return [2, result];
          }
          _b.label = 5;
        case 5:
          AWAIT.RES = iterator.next();
          return [4, AWAIT];
        case 6:
          ret = _b.sent();
          return [3, 3];
        case 7:
          return [3, 15];
        case 8:
          _b.trys.push([8, 13, 14, 15]);
          right_1 = __values(right), right_1_1 = right_1.next();
          _b.label = 9;
        case 9:
          if (!!right_1_1.done) return [3, 12];
          value = right_1_1.value;
          return [5, __values(ForXHandler(node, scope, {
            value: value
          }))];
        case 10:
          result = _b.sent();
          if (result === BREAK) {
            return [3, 12];
          } else if (result === CONTINUE) {
            return [3, 11];
          } else if (result === RETURN) {
            return [2, result];
          }
          _b.label = 11;
        case 11:
          right_1_1 = right_1.next();
          return [3, 9];
        case 12:
          return [3, 15];
        case 13:
          e_1_1 = _b.sent();
          e_1 = {
            error: e_1_1
          };
          return [3, 15];
        case 14:
          try {
            if (right_1_1 && !right_1_1.done && (_a = right_1.return)) _a.call(right_1);
          } finally {
            if (e_1) throw e_1.error;
          }
          return [7];
        case 15:
          return [2];
      }
    });
  }
  function FunctionDeclaration$1(node, scope) {
    return __generator(this, function (_a) {
      scope.func(node.id.name, createFunc(node, scope));
      return [2];
    });
  }
  function VariableDeclaration$1(node, scope, options) {
    var i;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          i = 0;
          _a.label = 1;
        case 1:
          if (!(i < node.declarations.length)) return [3, 4];
          return [5, __values(VariableDeclarator$1(node.declarations[i], scope, assign({
            kind: node.kind
          }, options)))];
        case 2:
          _a.sent();
          _a.label = 3;
        case 3:
          i++;
          return [3, 1];
        case 4:
          return [2];
      }
    });
  }
  function VariableDeclarator$1(node, scope, options) {
    var _a, kind, _b, hoist, _c, onlyBlock, feed, hasFeed, value, _d, name_1;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_e) {
      switch (_e.label) {
        case 0:
          _a = options.kind, kind = _a === void 0 ? 'var' : _a, _b = options.hoist, hoist = _b === void 0 ? false : _b, _c = options.onlyBlock, onlyBlock = _c === void 0 ? false : _c, feed = options.feed;
          if (!hoist) return [3, 4];
          if (!(onlyBlock || kind === 'var')) return [3, 3];
          if (!(node.id.type === 'Identifier')) return [3, 1];
          scope[kind](node.id.name, onlyBlock ? DEADZONE : kind === 'var' ? NOINIT : undefined);
          return [3, 3];
        case 1:
          return [5, __values(pattern$2(node.id, scope, {
            kind: kind,
            hoist: hoist,
            onlyBlock: onlyBlock
          }))];
        case 2:
          _e.sent();
          _e.label = 3;
        case 3:
          return [3, 10];
        case 4:
          hasFeed = 'feed' in options;
          if (!hasFeed) return [3, 5];
          _d = feed;
          return [3, 7];
        case 5:
          return [5, __values(evaluate$1(node.init, scope))];
        case 6:
          _d = _e.sent();
          _e.label = 7;
        case 7:
          value = _d;
          if (!(node.id.type === 'Identifier')) return [3, 8];
          name_1 = node.id.name;
          if (kind === 'var' && !node.init && !hasFeed) {
            scope.var(name_1, NOINIT);
          } else {
            scope[kind](name_1, value);
          }
          if (node.init && ['ClassExpression', 'FunctionExpression', 'ArrowFunctionExpression'].indexOf(node.init.type) !== -1 && !value.name) {
            define(value, 'name', {
              value: name_1,
              configurable: true
            });
          }
          return [3, 10];
        case 8:
          return [5, __values(pattern$2(node.id, scope, {
            kind: kind,
            feed: value
          }))];
        case 9:
          _e.sent();
          _e.label = 10;
        case 10:
          return [2];
      }
    });
  }
  function ClassDeclaration$1(node, scope) {
    var _a, _b, _c;
    return __generator(this, function (_d) {
      switch (_d.label) {
        case 0:
          _b = (_a = scope).func;
          _c = [node.id.name];
          return [5, __values(createClass(node, scope))];
        case 1:
          _b.apply(_a, _c.concat([_d.sent()]));
          return [2];
      }
    });
  }
  function ClassBody$1(node, scope, options) {
    var klass, superClass, i, def;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          klass = options.klass, superClass = options.superClass;
          i = 0;
          _a.label = 1;
        case 1:
          if (!(i < node.body.length)) return [3, 8];
          def = node.body[i];
          if (!(def.type === 'MethodDefinition')) return [3, 3];
          return [5, __values(MethodDefinition$1(def, scope, {
            klass: klass,
            superClass: superClass
          }))];
        case 2:
          _a.sent();
          return [3, 7];
        case 3:
          if (!(def.type === 'PropertyDefinition' && def.static)) return [3, 5];
          return [5, __values(PropertyDefinition$1(def, scope, {
            klass: klass,
            superClass: superClass
          }))];
        case 4:
          _a.sent();
          return [3, 7];
        case 5:
          if (!(def.type === 'StaticBlock')) return [3, 7];
          return [5, __values(StaticBlock$1(def, scope, {
            klass: klass,
            superClass: superClass
          }))];
        case 6:
          _a.sent();
          _a.label = 7;
        case 7:
          i++;
          return [3, 1];
        case 8:
          return [2];
      }
    });
  }
  function MethodDefinition$1(node, scope, options) {
    var klass, superClass, key, priv, obj, value, oriDptor, oriDptor;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          klass = options.klass, superClass = options.superClass;
          priv = false;
          if (!node.computed) return [3, 2];
          return [5, __values(evaluate$1(node.key, scope))];
        case 1:
          key = _a.sent();
          return [3, 3];
        case 2:
          if (node.key.type === 'Identifier') {
            key = node.key.name;
          } else if (node.key.type === 'PrivateIdentifier') {
            key = node.key.name;
            priv = true;
          } else {
            throw new SyntaxError('Unexpected token');
          }
          _a.label = 3;
        case 3:
          obj = node.static ? klass : klass.prototype;
          if (priv) {
            if (!obj[PRIVATE]) {
              define(obj, PRIVATE, {
                value: {}
              });
            }
            obj = obj[PRIVATE];
          }
          value = createFunc(node.value, scope, {
            superClass: superClass
          });
          switch (node.kind) {
            case 'constructor':
              break;
            case 'method':
              define(obj, key, {
                value: value,
                writable: true,
                configurable: true
              });
              break;
            case 'get':
              {
                oriDptor = getDptor(obj, key);
                define(obj, key, {
                  get: value,
                  set: oriDptor && oriDptor.set,
                  configurable: true
                });
                break;
              }
            case 'set':
              {
                oriDptor = getDptor(obj, key);
                define(obj, key, {
                  get: oriDptor && oriDptor.get,
                  set: value,
                  configurable: true
                });
                break;
              }
            default:
              throw new SyntaxError('Unexpected token');
          }
          return [2];
      }
    });
  }
  function PropertyDefinition$1(node, scope, options) {
    var klass, superClass, key, priv, subScope, obj, _a, _b;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_c) {
      switch (_c.label) {
        case 0:
          klass = options.klass, superClass = options.superClass;
          priv = false;
          if (!node.computed) return [3, 2];
          return [5, __values(evaluate$1(node.key, scope))];
        case 1:
          key = _c.sent();
          return [3, 3];
        case 2:
          if (node.key.type === 'Identifier') {
            key = node.key.name;
          } else if (node.key.type === 'PrivateIdentifier') {
            key = node.key.name;
            priv = true;
          } else {
            throw new SyntaxError('Unexpected token');
          }
          _c.label = 3;
        case 3:
          subScope = new Scope(scope, true);
          subScope.const('this', klass);
          obj = klass;
          if (priv) {
            if (!obj[PRIVATE]) {
              define(obj, PRIVATE, {
                value: {}
              });
            }
            obj = obj[PRIVATE];
          }
          if (!(node.value.type === 'FunctionExpression' || node.value.type === 'ArrowFunctionExpression')) return [3, 4];
          obj[key] = createFunc(node.value, subScope, {
            superClass: superClass
          });
          return [3, 6];
        case 4:
          _a = obj;
          _b = key;
          return [5, __values(evaluate$1(node.value, subScope))];
        case 5:
          _a[_b] = _c.sent();
          _c.label = 6;
        case 6:
          return [2];
      }
    });
  }
  function StaticBlock$1(node, scope, options) {
    var klass, subScope;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          klass = options.klass;
          subScope = new Scope(scope, true);
          subScope.const('this', klass);
          return [5, __values(BlockStatement$1(node, subScope, {
            invasived: true
          }))];
        case 1:
          return [2, _a.sent()];
      }
    });
  }
  function ImportDeclaration$1(node, scope) {
    var globalScope, module, value, result, i, spec, name_2;
    return __generator(this, function (_a) {
      globalScope = scope.global();
      module = globalScope.find(IMPORT + node.source.value);
      if (module) {
        result = module.get();
        if (result) {
          if (typeof result === 'function') {
            value = result();
          } else if (typeof result === 'object') {
            value = result;
          }
        }
      }
      if (!value || typeof value !== 'object') {
        throw new TypeError("Failed to resolve module specifier \"" + node.source.value + "\"");
      }
      for (i = 0; i < node.specifiers.length; i++) {
        spec = node.specifiers[i];
        name_2 = void 0;
        if (spec.type === 'ImportSpecifier') {
          name_2 = spec.imported.type === 'Identifier' ? spec.imported.name : spec.imported.value;
        } else if (spec.type === 'ImportDefaultSpecifier') {
          name_2 = 'default';
        } else if (spec.type === 'ImportNamespaceSpecifier') {
          name_2 = '*';
        }
        if (name_2 !== '*' && !hasOwn(value, name_2)) {
          throw new SyntaxError("The requested module \"" + node.source.value + "\" does not provide an export named \"" + name_2 + "\"");
        }
        scope.var(spec.local.name, name_2 === '*' ? assign({}, value) : value[name_2]);
      }
      return [2];
    });
  }
  function ExportDefaultDeclaration$1(node, scope) {
    var globalScope, value, variable, exports_1;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          globalScope = scope.global();
          if (!(node.declaration.type === 'FunctionDeclaration')) return [3, 1];
          value = createFunc(node.declaration, scope);
          scope.func(node.declaration.id.name, value);
          return [3, 5];
        case 1:
          if (!(node.declaration.type === 'ClassDeclaration')) return [3, 3];
          return [5, __values(createClass(node.declaration, scope))];
        case 2:
          value = _a.sent();
          scope.func(node.declaration.id.name, value);
          return [3, 5];
        case 3:
          return [5, __values(evaluate$1(node.declaration, scope))];
        case 4:
          value = _a.sent();
          _a.label = 5;
        case 5:
          variable = globalScope.find(EXPORTS);
          if (variable) {
            exports_1 = variable.get();
            if (exports_1 && typeof exports_1 === 'object') {
              exports_1.default = value;
            }
          }
          return [2];
      }
    });
  }
  function ExportNamedDeclaration$1(node, scope) {
    var globalScope, value, variable, exports_2, value, variable, exports_3, variable, exports_4, i, name_3, item, variable, exports_5, i, spec, name_4, item;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          globalScope = scope.global();
          if (!node.declaration) return [3, 6];
          if (!(node.declaration.type === 'FunctionDeclaration')) return [3, 1];
          value = createFunc(node.declaration, scope);
          scope.func(node.declaration.id.name, value);
          variable = globalScope.find(EXPORTS);
          if (variable) {
            exports_2 = variable.get();
            if (exports_2 && typeof exports_2 === 'object') {
              exports_2[node.declaration.id.name] = value;
            }
          }
          return [3, 5];
        case 1:
          if (!(node.declaration.type === 'ClassDeclaration')) return [3, 3];
          return [5, __values(createClass(node.declaration, scope))];
        case 2:
          value = _a.sent();
          scope.func(node.declaration.id.name, value);
          variable = globalScope.find(EXPORTS);
          if (variable) {
            exports_3 = variable.get();
            if (exports_3 && typeof exports_3 === 'object') {
              exports_3[node.declaration.id.name] = value;
            }
          }
          return [3, 5];
        case 3:
          if (!(node.declaration.type === 'VariableDeclaration')) return [3, 5];
          return [5, __values(VariableDeclaration$1(node.declaration, scope))];
        case 4:
          _a.sent();
          variable = globalScope.find(EXPORTS);
          if (variable) {
            exports_4 = variable.get();
            if (exports_4 && typeof exports_4 === 'object') {
              for (i = 0; i < node.declaration.declarations.length; i++) {
                name_3 = node.declaration.declarations[i].id.name;
                item = scope.find(name_3);
                if (item) {
                  exports_4[name_3] = item.get();
                }
              }
            }
          }
          _a.label = 5;
        case 5:
          return [3, 7];
        case 6:
          if (node.specifiers) {
            variable = globalScope.find(EXPORTS);
            if (variable) {
              exports_5 = variable.get();
              if (exports_5 && typeof exports_5 === 'object') {
                for (i = 0; i < node.specifiers.length; i++) {
                  spec = node.specifiers[i];
                  name_4 = spec.local.type === 'Identifier' ? spec.local.name : spec.local.value;
                  item = scope.find(name_4);
                  if (item) {
                    exports_5[spec.exported.type === 'Identifier' ? spec.exported.name : spec.exported.value] = item.get();
                  }
                }
              }
            }
          }
          _a.label = 7;
        case 7:
          return [2];
      }
    });
  }
  function ExportAllDeclaration$1(node, scope) {
    var globalScope, module, value, result, variable, exports_6;
    return __generator(this, function (_a) {
      globalScope = scope.global();
      module = globalScope.find(IMPORT + node.source.value);
      if (module) {
        result = module.get();
        if (result) {
          if (typeof result === 'function') {
            value = result();
          } else if (typeof result === 'object') {
            value = result;
          }
        }
      }
      if (!value || typeof value !== 'object') {
        throw new TypeError("Failed to resolve module specifier \"" + node.source.value + "\"");
      }
      variable = globalScope.find(EXPORTS);
      if (variable) {
        exports_6 = variable.get();
        if (exports_6 && typeof exports_6 === 'object') {
          assign(exports_6, value);
        }
      }
      return [2];
    });
  }
  function runAsync(iterator, options) {
    if (options === void 0) {
      options = {};
    }
    var res = options.res,
      err = options.err,
      ret = options.ret,
      fullRet = options.fullRet;
    return new Promise(function (resolve, reject) {
      if ('ret' in options) {
        return resolve(iterator.return(ret));
      }
      if ('err' in options) {
        onRejected(err);
      } else {
        onFulfilled(res);
      }
      function onFulfilled(res) {
        var ret;
        try {
          ret = iterator.next(res);
        } catch (e) {
          return reject(e);
        }
        next(ret);
        return null;
      }
      function onRejected(err) {
        var ret;
        try {
          ret = iterator.throw(err);
        } catch (e) {
          return reject(e);
        }
        next(ret);
      }
      function next(ret) {
        if (ret.done) return resolve(fullRet ? ret : ret.value);
        if (ret.value !== AWAIT) return resolve(ret);
        var awaitValue = ret.value.RES;
        var value = awaitValue && awaitValue.then === 'function' ? awaitValue : Promise.resolve(awaitValue);
        return value.then(onFulfilled, onRejected);
      }
    });
  }
  function hoist(block, scope, options) {
    var _a, onlyBlock, funcDclrList, funcDclrIdxs, i, statement, i;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          _a = options.onlyBlock, onlyBlock = _a === void 0 ? false : _a;
          funcDclrList = [];
          funcDclrIdxs = [];
          i = 0;
          _b.label = 1;
        case 1:
          if (!(i < block.body.length)) return [3, 7];
          statement = block.body[i];
          if (!(statement.type === 'FunctionDeclaration')) return [3, 2];
          funcDclrList.push(statement);
          funcDclrIdxs.push(i);
          return [3, 6];
        case 2:
          if (!(statement.type === 'VariableDeclaration' && ['const', 'let'].indexOf(statement.kind) !== -1)) return [3, 4];
          return [5, __values(VariableDeclaration$1(statement, scope, {
            hoist: true,
            onlyBlock: true
          }))];
        case 3:
          _b.sent();
          return [3, 6];
        case 4:
          if (!!onlyBlock) return [3, 6];
          return [5, __values(hoistVarRecursion(statement, scope))];
        case 5:
          _b.sent();
          _b.label = 6;
        case 6:
          i++;
          return [3, 1];
        case 7:
          if (funcDclrIdxs.length) {
            for (i = funcDclrIdxs.length - 1; i > -1; i--) {
              block.body.splice(funcDclrIdxs[i], 1);
            }
            block.body = funcDclrList.concat(block.body);
          }
          return [2];
      }
    });
  }
  function hoistVarRecursion(statement, scope) {
    var _a, i, i, j, tryBlock, i, catchBlock, i, finalBlock, i;
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          _a = statement.type;
          switch (_a) {
            case 'VariableDeclaration':
              return [3, 1];
            case 'ForInStatement':
              return [3, 3];
            case 'ForOfStatement':
              return [3, 3];
            case 'ForStatement':
              return [3, 5];
            case 'WhileStatement':
              return [3, 7];
            case 'DoWhileStatement':
              return [3, 7];
            case 'IfStatement':
              return [3, 9];
            case 'BlockStatement':
              return [3, 13];
            case 'SwitchStatement':
              return [3, 18];
            case 'TryStatement':
              return [3, 25];
          }
          return [3, 38];
        case 1:
          return [5, __values(VariableDeclaration$1(statement, scope, {
            hoist: true
          }))];
        case 2:
          _b.sent();
          return [3, 38];
        case 3:
          if (!(statement.left.type === 'VariableDeclaration')) return [3, 5];
          return [5, __values(VariableDeclaration$1(statement.left, scope, {
            hoist: true
          }))];
        case 4:
          _b.sent();
          _b.label = 5;
        case 5:
          if (!(statement.type === 'ForStatement' && statement.init.type === 'VariableDeclaration')) return [3, 7];
          return [5, __values(VariableDeclaration$1(statement.init, scope, {
            hoist: true
          }))];
        case 6:
          _b.sent();
          _b.label = 7;
        case 7:
          return [5, __values(hoistVarRecursion(statement.body, scope))];
        case 8:
          _b.sent();
          return [3, 38];
        case 9:
          return [5, __values(hoistVarRecursion(statement.consequent, scope))];
        case 10:
          _b.sent();
          if (!statement.alternate) return [3, 12];
          return [5, __values(hoistVarRecursion(statement.alternate, scope))];
        case 11:
          _b.sent();
          _b.label = 12;
        case 12:
          return [3, 38];
        case 13:
          i = 0;
          _b.label = 14;
        case 14:
          if (!(i < statement.body.length)) return [3, 17];
          return [5, __values(hoistVarRecursion(statement.body[i], scope))];
        case 15:
          _b.sent();
          _b.label = 16;
        case 16:
          i++;
          return [3, 14];
        case 17:
          return [3, 38];
        case 18:
          i = 0;
          _b.label = 19;
        case 19:
          if (!(i < statement.cases.length)) return [3, 24];
          j = 0;
          _b.label = 20;
        case 20:
          if (!(j < statement.cases[i].consequent.length)) return [3, 23];
          return [5, __values(hoistVarRecursion(statement.cases[i].consequent[j], scope))];
        case 21:
          _b.sent();
          _b.label = 22;
        case 22:
          j++;
          return [3, 20];
        case 23:
          i++;
          return [3, 19];
        case 24:
          return [3, 38];
        case 25:
          tryBlock = statement.block.body;
          i = 0;
          _b.label = 26;
        case 26:
          if (!(i < tryBlock.length)) return [3, 29];
          return [5, __values(hoistVarRecursion(tryBlock[i], scope))];
        case 27:
          _b.sent();
          _b.label = 28;
        case 28:
          i++;
          return [3, 26];
        case 29:
          catchBlock = statement.handler && statement.handler.body.body;
          if (!catchBlock) return [3, 33];
          i = 0;
          _b.label = 30;
        case 30:
          if (!(i < catchBlock.length)) return [3, 33];
          return [5, __values(hoistVarRecursion(catchBlock[i], scope))];
        case 31:
          _b.sent();
          _b.label = 32;
        case 32:
          i++;
          return [3, 30];
        case 33:
          finalBlock = statement.finalizer && statement.finalizer.body;
          if (!finalBlock) return [3, 37];
          i = 0;
          _b.label = 34;
        case 34:
          if (!(i < finalBlock.length)) return [3, 37];
          return [5, __values(hoistVarRecursion(finalBlock[i], scope))];
        case 35:
          _b.sent();
          _b.label = 36;
        case 36:
          i++;
          return [3, 34];
        case 37:
          return [3, 38];
        case 38:
          return [2];
      }
    });
  }
  function pattern$2(node, scope, options) {
    var _a;
    if (options === void 0) {
      options = {};
    }
    return __generator(this, function (_b) {
      switch (_b.label) {
        case 0:
          _a = node.type;
          switch (_a) {
            case 'ObjectPattern':
              return [3, 1];
            case 'ArrayPattern':
              return [3, 3];
            case 'RestElement':
              return [3, 5];
            case 'AssignmentPattern':
              return [3, 7];
          }
          return [3, 9];
        case 1:
          return [5, __values(ObjectPattern$1(node, scope, options))];
        case 2:
          return [2, _b.sent()];
        case 3:
          return [5, __values(ArrayPattern$1(node, scope, options))];
        case 4:
          return [2, _b.sent()];
        case 5:
          return [5, __values(RestElement$1(node, scope, options))];
        case 6:
          return [2, _b.sent()];
        case 7:
          return [5, __values(AssignmentPattern$1(node, scope, options))];
        case 8:
          return [2, _b.sent()];
        case 9:
          throw new SyntaxError('Unexpected token');
      }
    });
  }
  function createFunc(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    if (!node.generator && !node.async) {
      return createFunc$1(node, scope, options);
    }
    var superClass = options.superClass,
      construct = options.construct;
    var params = node.params;
    var tmpFunc = function _a() {
      var _i, subScope, i, param, result;
      var _newTarget = this && this instanceof _a ? this.constructor : void 0;
      var args = [];
      for (_i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
      }
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            subScope = new Scope(scope, true);
            if (!(node.type !== 'ArrowFunctionExpression')) return [3, 3];
            subScope.const('this', this);
            subScope.let('arguments', arguments);
            subScope.const(NEWTARGET, _newTarget);
            if (!construct) return [3, 2];
            return [5, __values(construct(this))];
          case 1:
            _a.sent();
            _a.label = 2;
          case 2:
            if (superClass) {
              subScope.const(SUPER, superClass);
              if (construct) subScope.let(SUPERCALL, false);
            }
            _a.label = 3;
          case 3:
            i = 0;
            _a.label = 4;
          case 4:
            if (!(i < params.length)) return [3, 10];
            param = params[i];
            if (!(param.type === 'Identifier')) return [3, 5];
            subScope.var(param.name, args[i]);
            return [3, 9];
          case 5:
            if (!(param.type === 'RestElement')) return [3, 7];
            return [5, __values(RestElement$1(param, subScope, {
              kind: 'var',
              feed: args.slice(i)
            }))];
          case 6:
            _a.sent();
            return [3, 9];
          case 7:
            return [5, __values(pattern$2(param, subScope, {
              kind: 'var',
              feed: args[i]
            }))];
          case 8:
            _a.sent();
            _a.label = 9;
          case 9:
            i++;
            return [3, 4];
          case 10:
            if (!(node.body.type === 'BlockStatement')) return [3, 13];
            return [5, __values(hoist(node.body, subScope))];
          case 11:
            _a.sent();
            return [5, __values(BlockStatement$1(node.body, subScope, {
              invasived: true,
              hoisted: true
            }))];
          case 12:
            result = _a.sent();
            return [3, 15];
          case 13:
            return [5, __values(evaluate$1(node.body, subScope))];
          case 14:
            result = _a.sent();
            if (node.type === 'ArrowFunctionExpression') {
              RETURN.RES = result;
              result = RETURN;
            }
            _a.label = 15;
          case 15:
            if (result === RETURN) {
              return [2, result.RES];
            }
            return [2];
        }
      });
    };
    var func;
    if (node.async && node.generator) {
      func = function () {
        var iterator = tmpFunc.apply(this, arguments);
        var last = Promise.resolve();
        var hasCatch = false;
        var run = function (opts) {
          return last = last.then(function () {
            return runAsync(iterator, assign({
              fullRet: true
            }, opts));
          }).catch(function (err) {
            if (!hasCatch) {
              hasCatch = true;
              return Promise.reject(err);
            }
          });
        };
        var asyncIterator = {
          next: function (res) {
            return run({
              res: res
            });
          },
          throw: function (err) {
            return run({
              err: err
            });
          },
          return: function (ret) {
            return run({
              ret: ret
            });
          }
        };
        if (typeof Symbol === 'function') {
          asyncIterator[Symbol.iterator] = function () {
            return this;
          };
        }
        return asyncIterator;
      };
    } else if (node.async) {
      func = function () {
        return runAsync(tmpFunc.apply(this, arguments));
      };
    } else {
      func = tmpFunc;
    }
    define(func, NOCTOR, {
      value: true
    });
    define(func, 'name', {
      value: node.id && node.id.name || '',
      configurable: true
    });
    define(func, 'length', {
      value: params.length,
      configurable: true
    });
    return func;
  }
  function createClass(node, scope) {
    var superClass, methodBody, construct, klass, i, method;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          return [5, __values(evaluate$1(node.superClass, scope))];
        case 1:
          superClass = _a.sent();
          methodBody = node.body.body;
          construct = function (object) {
            var i, def;
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  i = 0;
                  _a.label = 1;
                case 1:
                  if (!(i < methodBody.length)) return [3, 4];
                  def = methodBody[i];
                  if (!(def.type === 'PropertyDefinition' && !def.static)) return [3, 3];
                  return [5, __values(PropertyDefinition$1(def, scope, {
                    klass: object,
                    superClass: superClass
                  }))];
                case 2:
                  _a.sent();
                  _a.label = 3;
                case 3:
                  i++;
                  return [3, 1];
                case 4:
                  return [2];
              }
            });
          };
          klass = function () {
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  return [5, __values(construct(this))];
                case 1:
                  _a.sent();
                  if (superClass) {
                    superClass.apply(this);
                  }
                  return [2];
              }
            });
          };
          for (i = 0; i < methodBody.length; i++) {
            method = methodBody[i];
            if (method.type === 'MethodDefinition' && method.kind === 'constructor') {
              klass = createFunc(method.value, scope, {
                superClass: superClass,
                construct: construct
              });
              break;
            }
          }
          if (superClass) {
            inherits(klass, superClass);
          }
          return [5, __values(ClassBody$1(node.body, scope, {
            klass: klass,
            superClass: superClass
          }))];
        case 2:
          _a.sent();
          define(klass, CLSCTOR, {
            value: true
          });
          define(klass, 'name', {
            value: node.id && node.id.name || '',
            configurable: true
          });
          return [2, klass];
      }
    });
  }
  function ForXHandler(node, scope, options) {
    var value, left, subScope, variable, result;
    return __generator(this, function (_a) {
      switch (_a.label) {
        case 0:
          value = options.value;
          left = node.left;
          subScope = new Scope(scope);
          if (!(left.type === 'VariableDeclaration')) return [3, 2];
          return [5, __values(VariableDeclaration$1(left, subScope, {
            feed: value
          }))];
        case 1:
          _a.sent();
          return [3, 6];
        case 2:
          if (!(left.type === 'Identifier')) return [3, 4];
          return [5, __values(Identifier(left, scope, {
            getVar: true
          }))];
        case 3:
          variable = _a.sent();
          variable.set(value);
          return [3, 6];
        case 4:
          return [5, __values(pattern$2(left, scope, {
            feed: value
          }))];
        case 5:
          _a.sent();
          _a.label = 6;
        case 6:
          if (!(node.body.type === 'BlockStatement')) return [3, 8];
          return [5, __values(BlockStatement$1(node.body, subScope, {
            invasived: true
          }))];
        case 7:
          result = _a.sent();
          return [3, 10];
        case 8:
          return [5, __values(evaluate$1(node.body, subScope))];
        case 9:
          result = _a.sent();
          _a.label = 10;
        case 10:
          return [2, result];
      }
    });
  }
  function hoist$1(block, scope, options) {
    if (options === void 0) {
      options = {};
    }
    var _a = options.onlyBlock,
      onlyBlock = _a === void 0 ? false : _a;
    var funcDclrList = [];
    var funcDclrIdxs = [];
    for (var i = 0; i < block.body.length; i++) {
      var statement = block.body[i];
      if (statement.type === 'FunctionDeclaration') {
        funcDclrList.push(statement);
        funcDclrIdxs.push(i);
      } else if (statement.type === 'VariableDeclaration' && ['const', 'let'].indexOf(statement.kind) !== -1) {
        VariableDeclaration(statement, scope, {
          hoist: true,
          onlyBlock: true
        });
      } else if (!onlyBlock) {
        hoistVarRecursion$1(statement, scope);
      }
    }
    if (funcDclrIdxs.length) {
      for (var i = funcDclrIdxs.length - 1; i > -1; i--) {
        block.body.splice(funcDclrIdxs[i], 1);
      }
      block.body = funcDclrList.concat(block.body);
    }
  }
  function hoistVarRecursion$1(statement, scope) {
    switch (statement.type) {
      case 'VariableDeclaration':
        VariableDeclaration(statement, scope, {
          hoist: true
        });
        break;
      case 'ForInStatement':
      case 'ForOfStatement':
        if (statement.left.type === 'VariableDeclaration') {
          VariableDeclaration(statement.left, scope, {
            hoist: true
          });
        }
      case 'ForStatement':
        if (statement.type === 'ForStatement' && statement.init.type === 'VariableDeclaration') {
          VariableDeclaration(statement.init, scope, {
            hoist: true
          });
        }
      case 'WhileStatement':
      case 'DoWhileStatement':
        hoistVarRecursion$1(statement.body, scope);
        break;
      case 'IfStatement':
        hoistVarRecursion$1(statement.consequent, scope);
        if (statement.alternate) {
          hoistVarRecursion$1(statement.alternate, scope);
        }
        break;
      case 'BlockStatement':
        for (var i = 0; i < statement.body.length; i++) {
          hoistVarRecursion$1(statement.body[i], scope);
        }
        break;
      case 'SwitchStatement':
        for (var i = 0; i < statement.cases.length; i++) {
          for (var j = 0; j < statement.cases[i].consequent.length; j++) {
            hoistVarRecursion$1(statement.cases[i].consequent[j], scope);
          }
        }
        break;
      case 'TryStatement':
        {
          var tryBlock = statement.block.body;
          for (var i = 0; i < tryBlock.length; i++) {
            hoistVarRecursion$1(tryBlock[i], scope);
          }
          var catchBlock = statement.handler && statement.handler.body.body;
          if (catchBlock) {
            for (var i = 0; i < catchBlock.length; i++) {
              hoistVarRecursion$1(catchBlock[i], scope);
            }
          }
          var finalBlock = statement.finalizer && statement.finalizer.body;
          if (finalBlock) {
            for (var i = 0; i < finalBlock.length; i++) {
              hoistVarRecursion$1(finalBlock[i], scope);
            }
          }
          break;
        }
    }
  }
  function pattern$3(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    switch (node.type) {
      case 'ObjectPattern':
        return ObjectPattern(node, scope, options);
      case 'ArrayPattern':
        return ArrayPattern(node, scope, options);
      case 'RestElement':
        return RestElement(node, scope, options);
      case 'AssignmentPattern':
        return AssignmentPattern(node, scope, options);
      default:
        throw new SyntaxError('Unexpected token');
    }
  }
  function createFunc$1(node, scope, options) {
    if (options === void 0) {
      options = {};
    }
    if (node.generator || node.async) {
      return createFunc(node, scope, options);
    }
    var superClass = options.superClass,
      construct = options.construct;
    var params = node.params;
    var tmpFunc = function _a() {
      var _newTarget = this && this instanceof _a ? this.constructor : void 0;
      var args = [];
      for (var _i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
      }
      var subScope = new Scope(scope, true);
      if (node.type !== 'ArrowFunctionExpression') {
        subScope.const('this', this);
        subScope.let('arguments', arguments);
        subScope.const(NEWTARGET, _newTarget);
        if (construct) {
          construct(this);
        }
        if (superClass) {
          subScope.const(SUPER, superClass);
          if (construct) subScope.let(SUPERCALL, false);
        }
      }
      for (var i = 0; i < params.length; i++) {
        var param = params[i];
        if (param.type === 'Identifier') {
          subScope.var(param.name, args[i]);
        } else if (param.type === 'RestElement') {
          RestElement(param, subScope, {
            kind: 'var',
            feed: args.slice(i)
          });
        } else {
          pattern$3(param, subScope, {
            kind: 'var',
            feed: args[i]
          });
        }
      }
      var result;
      if (node.body.type === 'BlockStatement') {
        hoist$1(node.body, subScope);
        result = BlockStatement(node.body, subScope, {
          invasived: true,
          hoisted: true
        });
      } else {
        result = evaluate(node.body, subScope);
        if (node.type === 'ArrowFunctionExpression') {
          RETURN.RES = result;
          result = RETURN;
        }
      }
      if (result === RETURN) {
        return result.RES;
      }
    };
    var func = tmpFunc;
    if (node.type === 'ArrowFunctionExpression') {
      define(func, NOCTOR, {
        value: true
      });
    }
    define(func, 'name', {
      value: node.id && node.id.name || '',
      configurable: true
    });
    define(func, 'length', {
      value: params.length,
      configurable: true
    });
    return func;
  }
  function createClass$1(node, scope) {
    var superClass = evaluate(node.superClass, scope);
    var methodBody = node.body.body;
    var construct = function (object) {
      for (var i = 0; i < methodBody.length; i++) {
        var def = methodBody[i];
        if (def.type === 'PropertyDefinition' && !def.static) {
          PropertyDefinition(def, scope, {
            klass: object,
            superClass: superClass
          });
        }
      }
    };
    var klass = function () {
      construct(this);
      if (superClass) {
        superClass.apply(this);
      }
    };
    for (var i = 0; i < methodBody.length; i++) {
      var method = methodBody[i];
      if (method.type === 'MethodDefinition' && method.kind === 'constructor') {
        klass = createFunc$1(method.value, scope, {
          superClass: superClass,
          construct: construct
        });
        break;
      }
    }
    if (superClass) {
      inherits(klass, superClass);
    }
    ClassBody(node.body, scope, {
      klass: klass,
      superClass: superClass
    });
    define(klass, CLSCTOR, {
      value: true
    });
    define(klass, 'name', {
      value: node.id && node.id.name || '',
      configurable: true
    });
    return klass;
  }
  function ForXHandler$1(node, scope, options) {
    var value = options.value;
    var left = node.left;
    var subScope = new Scope(scope);
    if (left.type === 'VariableDeclaration') {
      VariableDeclaration(left, subScope, {
        feed: value
      });
    } else if (left.type === 'Identifier') {
      var variable = Identifier(left, scope, {
        getVar: true
      });
      variable.set(value);
    } else {
      pattern$3(left, scope, {
        feed: value
      });
    }
    var result;
    if (node.body.type === 'BlockStatement') {
      result = BlockStatement(node.body, subScope, {
        invasived: true
      });
    } else {
      result = evaluate(node.body, subScope);
    }
    return result;
  }
  var latestVer = 15;
  var Sval = function () {
    function Sval(options) {
      if (options === void 0) {
        options = {};
      }
      this.options = {
        ecmaVersion: 'latest'
      };
      this.scope = new Scope(null, true);
      this.exports = {};
      var _a = options.ecmaVer,
        ecmaVer = _a === void 0 ? 'latest' : _a,
        _b = options.sandBox,
        sandBox = _b === void 0 ? true : _b,
        _c = options.sourceType,
        sourceType = _c === void 0 ? 'script' : _c;
      if (typeof ecmaVer === 'number') {
        ecmaVer -= ecmaVer < 2015 ? 0 : 2009;
      }
      if (ecmaVer !== 'latest' && ecmaVer !== 3 && (ecmaVer < 5 || ecmaVer > latestVer)) {
        throw new Error("unsupported ecmaVer");
      }
      this.options.ecmaVersion = ecmaVer;
      this.options.sourceType = sourceType;
      if (sandBox) {
        var win = createSandBox();
        this.scope.let('globalThis', win);
        this.scope.let('window', win);
        this.scope.let('this', win);
      } else {
        this.scope.let('globalThis', globalObj);
        this.scope.let('window', globalObj);
        this.scope.let('this', globalObj);
      }
      this.scope.const(sourceType === 'module' ? EXPORTS : 'exports', this.exports = {});
    }
    Sval.prototype.import = function (nameOrModules, mod) {
      var _a;
      if (typeof nameOrModules === 'string') {
        nameOrModules = (_a = {}, _a[nameOrModules] = mod, _a);
      }
      if (typeof nameOrModules !== 'object') return;
      var names = getOwnNames(nameOrModules);
      for (var i = 0; i < names.length; i++) {
        var name_1 = names[i];
        var modName = this.options.sourceType === 'module' ? IMPORT + name_1 : name_1;
        this.scope.var(modName, nameOrModules[name_1]);
      }
    };
    Sval.prototype.parse = function (code, parser) {
      if (typeof parser === 'function') {
        return parser(code, assign({}, this.options));
      }
      return acorn.parse(code, this.options);
    };
    Sval.prototype.run = function (code) {
      var ast = typeof code === 'string' ? acorn.parse(code, this.options) : code;
      hoist$1(ast, this.scope);
      evaluate(ast, this.scope);
    };
    Sval.version = version;
    return Sval;
  }();
  return Sval;
});

/***/ }),

/***/ 2465:
/***/ (function(module, exports) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
  if (true) {
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else { var mod; }
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (module) {
  /* webextension-polyfill - v0.10.0 - Fri Aug 12 2022 19:42:44 */

  /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */

  /* vim: set sts=2 sw=2 et tw=80: */

  /* This Source Code Form is subject to the terms of the Mozilla Public
   * License, v. 2.0. If a copy of the MPL was not distributed with this
   * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  "use strict";

  var _globalThis$chrome;
  if (!((_globalThis$chrome = globalThis.chrome) !== null && _globalThis$chrome !== void 0 && (_globalThis$chrome = _globalThis$chrome.runtime) !== null && _globalThis$chrome !== void 0 && _globalThis$chrome.id)) {
    throw new Error("This script should only be loaded in a browser extension.");
  }
  if (typeof globalThis.browser === "undefined" || Object.getPrototypeOf(globalThis.browser) !== Object.prototype) {
    const CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE = "The message port closed before a response was received."; // Wrapping the bulk of this polyfill in a one-time-use function is a minor
    // optimization for Firefox. Since Spidermonkey does not fully parse the
    // contents of a function until the first time it's called, and since it will
    // never actually need to be called, this allows the polyfill to be included
    // in Firefox nearly for free.

    const wrapAPIs = extensionAPIs => {
      // NOTE: apiMetadata is associated to the content of the api-metadata.json file
      // at build time by replacing the following "include" with the content of the
      // JSON file.
      const apiMetadata = {
        "alarms": {
          "clear": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "clearAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "get": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "bookmarks": {
          "create": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "get": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getChildren": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getRecent": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getSubTree": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getTree": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "move": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeTree": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "search": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "update": {
            "minArgs": 2,
            "maxArgs": 2
          }
        },
        "browserAction": {
          "disable": {
            "minArgs": 0,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "enable": {
            "minArgs": 0,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "getBadgeBackgroundColor": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getBadgeText": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getPopup": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getTitle": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "openPopup": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "setBadgeBackgroundColor": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setBadgeText": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setIcon": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "setPopup": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setTitle": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          }
        },
        "browsingData": {
          "remove": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "removeCache": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeCookies": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeDownloads": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeFormData": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeHistory": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeLocalStorage": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removePasswords": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removePluginData": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "settings": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "commands": {
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "contextMenus": {
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "update": {
            "minArgs": 2,
            "maxArgs": 2
          }
        },
        "cookies": {
          "get": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAll": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAllCookieStores": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "set": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "devtools": {
          "inspectedWindow": {
            "eval": {
              "minArgs": 1,
              "maxArgs": 2,
              "singleCallbackArg": false
            }
          },
          "panels": {
            "create": {
              "minArgs": 3,
              "maxArgs": 3,
              "singleCallbackArg": true
            },
            "elements": {
              "createSidebarPane": {
                "minArgs": 1,
                "maxArgs": 1
              }
            }
          }
        },
        "downloads": {
          "cancel": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "download": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "erase": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getFileIcon": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "open": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "pause": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeFile": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "resume": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "search": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "show": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          }
        },
        "extension": {
          "isAllowedFileSchemeAccess": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "isAllowedIncognitoAccess": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "history": {
          "addUrl": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "deleteAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "deleteRange": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "deleteUrl": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getVisits": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "search": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "i18n": {
          "detectLanguage": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAcceptLanguages": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "identity": {
          "launchWebAuthFlow": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "idle": {
          "queryState": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "management": {
          "get": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "getSelf": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "setEnabled": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "uninstallSelf": {
            "minArgs": 0,
            "maxArgs": 1
          }
        },
        "notifications": {
          "clear": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "create": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "getPermissionLevel": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "update": {
            "minArgs": 2,
            "maxArgs": 2
          }
        },
        "pageAction": {
          "getPopup": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getTitle": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "hide": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setIcon": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "setPopup": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setTitle": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "show": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          }
        },
        "permissions": {
          "contains": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "request": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "runtime": {
          "getBackgroundPage": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "getPlatformInfo": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "openOptionsPage": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "requestUpdateCheck": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "sendMessage": {
            "minArgs": 1,
            "maxArgs": 3
          },
          "sendNativeMessage": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "setUninstallURL": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "sessions": {
          "getDevices": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getRecentlyClosed": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "restore": {
            "minArgs": 0,
            "maxArgs": 1
          }
        },
        "storage": {
          "local": {
            "clear": {
              "minArgs": 0,
              "maxArgs": 0
            },
            "get": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "getBytesInUse": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "remove": {
              "minArgs": 1,
              "maxArgs": 1
            },
            "set": {
              "minArgs": 1,
              "maxArgs": 1
            }
          },
          "managed": {
            "get": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "getBytesInUse": {
              "minArgs": 0,
              "maxArgs": 1
            }
          },
          "sync": {
            "clear": {
              "minArgs": 0,
              "maxArgs": 0
            },
            "get": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "getBytesInUse": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "remove": {
              "minArgs": 1,
              "maxArgs": 1
            },
            "set": {
              "minArgs": 1,
              "maxArgs": 1
            }
          }
        },
        "tabs": {
          "captureVisibleTab": {
            "minArgs": 0,
            "maxArgs": 2
          },
          "create": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "detectLanguage": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "discard": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "duplicate": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "executeScript": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "get": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getCurrent": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "getZoom": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getZoomSettings": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "goBack": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "goForward": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "highlight": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "insertCSS": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "move": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "query": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "reload": {
            "minArgs": 0,
            "maxArgs": 2
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeCSS": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "sendMessage": {
            "minArgs": 2,
            "maxArgs": 3
          },
          "setZoom": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "setZoomSettings": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "update": {
            "minArgs": 1,
            "maxArgs": 2
          }
        },
        "topSites": {
          "get": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "webNavigation": {
          "getAllFrames": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getFrame": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "webRequest": {
          "handlerBehaviorChanged": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "windows": {
          "create": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "get": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getCurrent": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getLastFocused": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "update": {
            "minArgs": 2,
            "maxArgs": 2
          }
        }
      };
      if (Object.keys(apiMetadata).length === 0) {
        throw new Error("api-metadata.json has not been included in browser-polyfill");
      }
      /**
       * A WeakMap subclass which creates and stores a value for any key which does
       * not exist when accessed, but behaves exactly as an ordinary WeakMap
       * otherwise.
       *
       * @param {function} createItem
       *        A function which will be called in order to create the value for any
       *        key which does not exist, the first time it is accessed. The
       *        function receives, as its only argument, the key being created.
       */

      class DefaultWeakMap extends WeakMap {
        constructor(createItem) {
          let items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
          super(items);
          this.createItem = createItem;
        }
        get(key) {
          if (!this.has(key)) {
            this.set(key, this.createItem(key));
          }
          return super.get(key);
        }
      }
      /**
       * Returns true if the given object is an object with a `then` method, and can
       * therefore be assumed to behave as a Promise.
       *
       * @param {*} value The value to test.
       * @returns {boolean} True if the value is thenable.
       */

      const isThenable = value => {
        return value && typeof value === "object" && typeof value.then === "function";
      };
      /**
       * Creates and returns a function which, when called, will resolve or reject
       * the given promise based on how it is called:
       *
       * - If, when called, `chrome.runtime.lastError` contains a non-null object,
       *   the promise is rejected with that value.
       * - If the function is called with exactly one argument, the promise is
       *   resolved to that value.
       * - Otherwise, the promise is resolved to an array containing all of the
       *   function's arguments.
       *
       * @param {object} promise
       *        An object containing the resolution and rejection functions of a
       *        promise.
       * @param {function} promise.resolve
       *        The promise's resolution function.
       * @param {function} promise.reject
       *        The promise's rejection function.
       * @param {object} metadata
       *        Metadata about the wrapped method which has created the callback.
       * @param {boolean} metadata.singleCallbackArg
       *        Whether or not the promise is resolved with only the first
       *        argument of the callback, alternatively an array of all the
       *        callback arguments is resolved. By default, if the callback
       *        function is invoked with only a single argument, that will be
       *        resolved to the promise, while all arguments will be resolved as
       *        an array if multiple are given.
       *
       * @returns {function}
       *        The generated callback function.
       */

      const makeCallback = (promise, metadata) => {
        return function () {
          for (var _len = arguments.length, callbackArgs = new Array(_len), _key = 0; _key < _len; _key++) {
            callbackArgs[_key] = arguments[_key];
          }
          if (extensionAPIs.runtime.lastError) {
            promise.reject(new Error(extensionAPIs.runtime.lastError.message));
          } else if (metadata.singleCallbackArg || callbackArgs.length <= 1 && metadata.singleCallbackArg !== false) {
            promise.resolve(callbackArgs[0]);
          } else {
            promise.resolve(callbackArgs);
          }
        };
      };
      const pluralizeArguments = numArgs => numArgs == 1 ? "argument" : "arguments";
      /**
       * Creates a wrapper function for a method with the given name and metadata.
       *
       * @param {string} name
       *        The name of the method which is being wrapped.
       * @param {object} metadata
       *        Metadata about the method being wrapped.
       * @param {integer} metadata.minArgs
       *        The minimum number of arguments which must be passed to the
       *        function. If called with fewer than this number of arguments, the
       *        wrapper will raise an exception.
       * @param {integer} metadata.maxArgs
       *        The maximum number of arguments which may be passed to the
       *        function. If called with more than this number of arguments, the
       *        wrapper will raise an exception.
       * @param {boolean} metadata.singleCallbackArg
       *        Whether or not the promise is resolved with only the first
       *        argument of the callback, alternatively an array of all the
       *        callback arguments is resolved. By default, if the callback
       *        function is invoked with only a single argument, that will be
       *        resolved to the promise, while all arguments will be resolved as
       *        an array if multiple are given.
       *
       * @returns {function(object, ...*)}
       *       The generated wrapper function.
       */

      const wrapAsyncFunction = (name, metadata) => {
        return function asyncFunctionWrapper(target) {
          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
            args[_key2 - 1] = arguments[_key2];
          }
          if (args.length < metadata.minArgs) {
            throw new Error("Expected at least ".concat(metadata.minArgs, " ").concat(pluralizeArguments(metadata.minArgs), " for ").concat(name, "(), got ").concat(args.length));
          }
          if (args.length > metadata.maxArgs) {
            throw new Error("Expected at most ".concat(metadata.maxArgs, " ").concat(pluralizeArguments(metadata.maxArgs), " for ").concat(name, "(), got ").concat(args.length));
          }
          return new Promise((resolve, reject) => {
            if (metadata.fallbackToNoCallback) {
              // This API method has currently no callback on Chrome, but it return a promise on Firefox,
              // and so the polyfill will try to call it with a callback first, and it will fallback
              // to not passing the callback if the first call fails.
              try {
                target[name](...args, makeCallback({
                  resolve,
                  reject
                }, metadata));
              } catch (cbError) {
                console.warn("".concat(name, " API method doesn't seem to support the callback parameter, ") + "falling back to call it without a callback: ", cbError);
                target[name](...args); // Update the API method metadata, so that the next API calls will not try to
                // use the unsupported callback anymore.

                metadata.fallbackToNoCallback = false;
                metadata.noCallback = true;
                resolve();
              }
            } else if (metadata.noCallback) {
              target[name](...args);
              resolve();
            } else {
              target[name](...args, makeCallback({
                resolve,
                reject
              }, metadata));
            }
          });
        };
      };
      /**
       * Wraps an existing method of the target object, so that calls to it are
       * intercepted by the given wrapper function. The wrapper function receives,
       * as its first argument, the original `target` object, followed by each of
       * the arguments passed to the original method.
       *
       * @param {object} target
       *        The original target object that the wrapped method belongs to.
       * @param {function} method
       *        The method being wrapped. This is used as the target of the Proxy
       *        object which is created to wrap the method.
       * @param {function} wrapper
       *        The wrapper function which is called in place of a direct invocation
       *        of the wrapped method.
       *
       * @returns {Proxy<function>}
       *        A Proxy object for the given method, which invokes the given wrapper
       *        method in its place.
       */

      const wrapMethod = (target, method, wrapper) => {
        return new Proxy(method, {
          apply(targetMethod, thisObj, args) {
            return wrapper.call(thisObj, target, ...args);
          }
        });
      };
      let hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);
      /**
       * Wraps an object in a Proxy which intercepts and wraps certain methods
       * based on the given `wrappers` and `metadata` objects.
       *
       * @param {object} target
       *        The target object to wrap.
       *
       * @param {object} [wrappers = {}]
       *        An object tree containing wrapper functions for special cases. Any
       *        function present in this object tree is called in place of the
       *        method in the same location in the `target` object tree. These
       *        wrapper methods are invoked as described in {@see wrapMethod}.
       *
       * @param {object} [metadata = {}]
       *        An object tree containing metadata used to automatically generate
       *        Promise-based wrapper functions for asynchronous. Any function in
       *        the `target` object tree which has a corresponding metadata object
       *        in the same location in the `metadata` tree is replaced with an
       *        automatically-generated wrapper function, as described in
       *        {@see wrapAsyncFunction}
       *
       * @returns {Proxy<object>}
       */

      const wrapObject = function (target) {
        let wrappers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
        let metadata = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
        let cache = Object.create(null);
        let handlers = {
          has(proxyTarget, prop) {
            return prop in target || prop in cache;
          },
          get(proxyTarget, prop, receiver) {
            if (prop in cache) {
              return cache[prop];
            }
            if (!(prop in target)) {
              return undefined;
            }
            let value = target[prop];
            if (typeof value === "function") {
              // This is a method on the underlying object. Check if we need to do
              // any wrapping.
              if (typeof wrappers[prop] === "function") {
                // We have a special-case wrapper for this method.
                value = wrapMethod(target, target[prop], wrappers[prop]);
              } else if (hasOwnProperty(metadata, prop)) {
                // This is an async method that we have metadata for. Create a
                // Promise wrapper for it.
                let wrapper = wrapAsyncFunction(prop, metadata[prop]);
                value = wrapMethod(target, target[prop], wrapper);
              } else {
                // This is a method that we don't know or care about. Return the
                // original method, bound to the underlying object.
                value = value.bind(target);
              }
            } else if (typeof value === "object" && value !== null && (hasOwnProperty(wrappers, prop) || hasOwnProperty(metadata, prop))) {
              // This is an object that we need to do some wrapping for the children
              // of. Create a sub-object wrapper for it with the appropriate child
              // metadata.
              value = wrapObject(value, wrappers[prop], metadata[prop]);
            } else if (hasOwnProperty(metadata, "*")) {
              // Wrap all properties in * namespace.
              value = wrapObject(value, wrappers[prop], metadata["*"]);
            } else {
              // We don't need to do any wrapping for this property,
              // so just forward all access to the underlying object.
              Object.defineProperty(cache, prop, {
                configurable: true,
                enumerable: true,
                get() {
                  return target[prop];
                },
                set(value) {
                  target[prop] = value;
                }
              });
              return value;
            }
            cache[prop] = value;
            return value;
          },
          set(proxyTarget, prop, value, receiver) {
            if (prop in cache) {
              cache[prop] = value;
            } else {
              target[prop] = value;
            }
            return true;
          },
          defineProperty(proxyTarget, prop, desc) {
            return Reflect.defineProperty(cache, prop, desc);
          },
          deleteProperty(proxyTarget, prop) {
            return Reflect.deleteProperty(cache, prop);
          }
        }; // Per contract of the Proxy API, the "get" proxy handler must return the
        // original value of the target if that value is declared read-only and
        // non-configurable. For this reason, we create an object with the
        // prototype set to `target` instead of using `target` directly.
        // Otherwise we cannot return a custom object for APIs that
        // are declared read-only and non-configurable, such as `chrome.devtools`.
        //
        // The proxy handlers themselves will still use the original `target`
        // instead of the `proxyTarget`, so that the methods and properties are
        // dereferenced via the original targets.

        let proxyTarget = Object.create(target);
        return new Proxy(proxyTarget, handlers);
      };
      /**
       * Creates a set of wrapper functions for an event object, which handles
       * wrapping of listener functions that those messages are passed.
       *
       * A single wrapper is created for each listener function, and stored in a
       * map. Subsequent calls to `addListener`, `hasListener`, or `removeListener`
       * retrieve the original wrapper, so that  attempts to remove a
       * previously-added listener work as expected.
       *
       * @param {DefaultWeakMap<function, function>} wrapperMap
       *        A DefaultWeakMap object which will create the appropriate wrapper
       *        for a given listener function when one does not exist, and retrieve
       *        an existing one when it does.
       *
       * @returns {object}
       */

      const wrapEvent = wrapperMap => ({
        addListener(target, listener) {
          for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
            args[_key3 - 2] = arguments[_key3];
          }
          target.addListener(wrapperMap.get(listener), ...args);
        },
        hasListener(target, listener) {
          return target.hasListener(wrapperMap.get(listener));
        },
        removeListener(target, listener) {
          target.removeListener(wrapperMap.get(listener));
        }
      });
      const onRequestFinishedWrappers = new DefaultWeakMap(listener => {
        if (typeof listener !== "function") {
          return listener;
        }
        /**
         * Wraps an onRequestFinished listener function so that it will return a
         * `getContent()` property which returns a `Promise` rather than using a
         * callback API.
         *
         * @param {object} req
         *        The HAR entry object representing the network request.
         */

        return function onRequestFinished(req) {
          const wrappedReq = wrapObject(req, {}
          /* wrappers */, {
            getContent: {
              minArgs: 0,
              maxArgs: 0
            }
          });
          listener(wrappedReq);
        };
      });
      const onMessageWrappers = new DefaultWeakMap(listener => {
        if (typeof listener !== "function") {
          return listener;
        }
        /**
         * Wraps a message listener function so that it may send responses based on
         * its return value, rather than by returning a sentinel value and calling a
         * callback. If the listener function returns a Promise, the response is
         * sent when the promise either resolves or rejects.
         *
         * @param {*} message
         *        The message sent by the other end of the channel.
         * @param {object} sender
         *        Details about the sender of the message.
         * @param {function(*)} sendResponse
         *        A callback which, when called with an arbitrary argument, sends
         *        that value as a response.
         * @returns {boolean}
         *        True if the wrapped listener returned a Promise, which will later
         *        yield a response. False otherwise.
         */

        return function onMessage(message, sender, sendResponse) {
          let didCallSendResponse = false;
          let wrappedSendResponse;
          let sendResponsePromise = new Promise(resolve => {
            wrappedSendResponse = function (response) {
              didCallSendResponse = true;
              resolve(response);
            };
          });
          let result;
          try {
            result = listener(message, sender, wrappedSendResponse);
          } catch (err) {
            result = Promise.reject(err);
          }
          const isResultThenable = result !== true && isThenable(result); // If the listener didn't returned true or a Promise, or called
          // wrappedSendResponse synchronously, we can exit earlier
          // because there will be no response sent from this listener.

          if (result !== true && !isResultThenable && !didCallSendResponse) {
            return false;
          } // A small helper to send the message if the promise resolves
          // and an error if the promise rejects (a wrapped sendMessage has
          // to translate the message into a resolved promise or a rejected
          // promise).

          const sendPromisedResult = promise => {
            promise.then(msg => {
              // send the message value.
              sendResponse(msg);
            }, error => {
              // Send a JSON representation of the error if the rejected value
              // is an instance of error, or the object itself otherwise.
              let message;
              if (error && (error instanceof Error || typeof error.message === "string")) {
                message = error.message;
              } else {
                message = "An unexpected error occurred";
              }
              sendResponse({
                __mozWebExtensionPolyfillReject__: true,
                message
              });
            }).catch(err => {
              // Print an error on the console if unable to send the response.
              console.error("Failed to send onMessage rejected reply", err);
            });
          }; // If the listener returned a Promise, send the resolved value as a
          // result, otherwise wait the promise related to the wrappedSendResponse
          // callback to resolve and send it as a response.

          if (isResultThenable) {
            sendPromisedResult(result);
          } else {
            sendPromisedResult(sendResponsePromise);
          } // Let Chrome know that the listener is replying.

          return true;
        };
      });
      const wrappedSendMessageCallback = (_ref, reply) => {
        let {
          reject,
          resolve
        } = _ref;
        if (extensionAPIs.runtime.lastError) {
          // Detect when none of the listeners replied to the sendMessage call and resolve
          // the promise to undefined as in Firefox.
          // See https://github.com/mozilla/webextension-polyfill/issues/130
          if (extensionAPIs.runtime.lastError.message === CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE) {
            resolve();
          } else {
            reject(new Error(extensionAPIs.runtime.lastError.message));
          }
        } else if (reply && reply.__mozWebExtensionPolyfillReject__) {
          // Convert back the JSON representation of the error into
          // an Error instance.
          reject(new Error(reply.message));
        } else {
          resolve(reply);
        }
      };
      const wrappedSendMessage = function (name, metadata, apiNamespaceObj) {
        for (var _len4 = arguments.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) {
          args[_key4 - 3] = arguments[_key4];
        }
        if (args.length < metadata.minArgs) {
          throw new Error("Expected at least ".concat(metadata.minArgs, " ").concat(pluralizeArguments(metadata.minArgs), " for ").concat(name, "(), got ").concat(args.length));
        }
        if (args.length > metadata.maxArgs) {
          throw new Error("Expected at most ".concat(metadata.maxArgs, " ").concat(pluralizeArguments(metadata.maxArgs), " for ").concat(name, "(), got ").concat(args.length));
        }
        return new Promise((resolve, reject) => {
          const wrappedCb = wrappedSendMessageCallback.bind(null, {
            resolve,
            reject
          });
          args.push(wrappedCb);
          apiNamespaceObj.sendMessage(...args);
        });
      };
      const staticWrappers = {
        devtools: {
          network: {
            onRequestFinished: wrapEvent(onRequestFinishedWrappers)
          }
        },
        runtime: {
          onMessage: wrapEvent(onMessageWrappers),
          onMessageExternal: wrapEvent(onMessageWrappers),
          sendMessage: wrappedSendMessage.bind(null, "sendMessage", {
            minArgs: 1,
            maxArgs: 3
          })
        },
        tabs: {
          sendMessage: wrappedSendMessage.bind(null, "sendMessage", {
            minArgs: 2,
            maxArgs: 3
          })
        }
      };
      const settingMetadata = {
        clear: {
          minArgs: 1,
          maxArgs: 1
        },
        get: {
          minArgs: 1,
          maxArgs: 1
        },
        set: {
          minArgs: 1,
          maxArgs: 1
        }
      };
      apiMetadata.privacy = {
        network: {
          "*": settingMetadata
        },
        services: {
          "*": settingMetadata
        },
        websites: {
          "*": settingMetadata
        }
      };
      return wrapObject(extensionAPIs, staticWrappers, apiMetadata);
    }; // The build process adds a UMD wrapper around this file, which makes the
    // `module` variable available.

    module.exports = wrapAPIs(chrome);
  } else {
    module.exports = globalThis.browser;
  }
});
//# sourceMappingURL=browser-polyfill.js.map

/***/ }),

/***/ 4708:
/***/ ((module) => {

function _extends() {
  module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];
      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }
    return target;
  }, module.exports.__esModule = true, module.exports["default"] = module.exports;
  return _extends.apply(this, arguments);
}
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ 3894:
/***/ ((module) => {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ 3364:
/***/ ((module) => {

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;
  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }
  return target;
}
module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ 1010:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ _extends)
/* harmony export */ });
function _extends() {
  _extends = Object.assign ? Object.assign.bind() : function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];
      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }
    return target;
  };
  return _extends.apply(this, arguments);
}

/***/ }),

/***/ 3031:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (/* binding */ _objectWithoutPropertiesLoose)
/* harmony export */ });
function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;
  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }
  return target;
}

/***/ }),

/***/ 8152:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Z: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* unused harmony export clsx */
function r(e) {
  var t,
    f,
    n = "";
  if ("string" == typeof e || "number" == typeof e) n += e;else if ("object" == typeof e) if (Array.isArray(e)) {
    var o = e.length;
    for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
  } else for (f in e) e[f] && (n && (n += " "), n += f);
  return n;
}
function clsx() {
  for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
  return n;
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clsx);

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/create fake namespace object */
/******/ 	(() => {
/******/ 		var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
/******/ 		var leafPrototypes;
/******/ 		// create a fake namespace object
/******/ 		// mode & 1: value is a module id, require it
/******/ 		// mode & 2: merge all properties of value into the ns
/******/ 		// mode & 4: return value when already ns object
/******/ 		// mode & 16: return value when it's Promise-like
/******/ 		// mode & 8|1: behave like require
/******/ 		__webpack_require__.t = function(value, mode) {
/******/ 			if(mode & 1) value = this(value);
/******/ 			if(mode & 8) return value;
/******/ 			if(typeof value === 'object' && value) {
/******/ 				if((mode & 4) && value.__esModule) return value;
/******/ 				if((mode & 16) && typeof value.then === 'function') return value;
/******/ 			}
/******/ 			var ns = Object.create(null);
/******/ 			__webpack_require__.r(ns);
/******/ 			var def = {};
/******/ 			leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
/******/ 			for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {
/******/ 				Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
/******/ 			}
/******/ 			def['default'] = () => (value);
/******/ 			__webpack_require__.d(ns, def);
/******/ 			return ns;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
(() => {
"use strict";

// NAMESPACE OBJECT: ./node_modules/.pnpm/query-string@8.1.0/node_modules/query-string/base.js
var base_namespaceObject = {};
__webpack_require__.r(base_namespaceObject);
__webpack_require__.d(base_namespaceObject, {
  exclude: () => (exclude),
  extract: () => (extract),
  parse: () => (parse),
  parseUrl: () => (parseUrl),
  pick: () => (pick),
  stringify: () => (stringify),
  stringifyUrl: () => (stringifyUrl)
});

// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/index.js
var react = __webpack_require__(7948);
// EXTERNAL MODULE: ./node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/client.js
var client = __webpack_require__(3884);
// EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
var objectWithoutPropertiesLoose = __webpack_require__(3031);
// EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(1010);
// EXTERNAL MODULE: ./node_modules/.pnpm/clsx@2.1.0/node_modules/clsx/dist/clsx.mjs
var clsx = __webpack_require__(8152);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/composeClasses/composeClasses.js
var composeClasses = __webpack_require__(5923);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/styled.js
var styled = __webpack_require__(1535);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/useThemeProps.js
var useThemeProps = __webpack_require__(1778);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useForkRef.js
var useForkRef = __webpack_require__(6490);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useEventCallback.js
var useEventCallback = __webpack_require__(4505);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useIsFocusVisible.js
var useIsFocusVisible = __webpack_require__(1511);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js
function _taggedTemplateLiteral(strings, raw) {
  if (!raw) {
    raw = strings.slice(0);
  }
  return Object.freeze(Object.defineProperties(strings, {
    raw: {
      value: Object.freeze(raw)
    }
  }));
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }
  return self;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
function _setPrototypeOf(o, p) {
  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };
  return _setPrototypeOf(o, p);
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js

function _inheritsLoose(subClass, superClass) {
  subClass.prototype = Object.create(superClass.prototype);
  subClass.prototype.constructor = subClass;
  _setPrototypeOf(subClass, superClass);
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/TransitionGroupContext.js

/* harmony default export */ const TransitionGroupContext = (react.createContext(null));
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/utils/ChildMapping.js

/**
 * Given `this.props.children`, return an object mapping key to child.
 *
 * @param {*} children `this.props.children`
 * @return {object} Mapping of key to child
 */

function getChildMapping(children, mapFn) {
  var mapper = function mapper(child) {
    return mapFn && (0,react.isValidElement)(child) ? mapFn(child) : child;
  };
  var result = Object.create(null);
  if (children) react.Children.map(children, function (c) {
    return c;
  }).forEach(function (child) {
    // run the map function here instead so that the key is the computed one
    result[child.key] = mapper(child);
  });
  return result;
}
/**
 * When you're adding or removing children some may be added or removed in the
 * same render pass. We want to show *both* since we want to simultaneously
 * animate elements in and out. This function takes a previous set of keys
 * and a new set of keys and merges them with its best guess of the correct
 * ordering. In the future we may expose some of the utilities in
 * ReactMultiChild to make this easy, but for now React itself does not
 * directly have this concept of the union of prevChildren and nextChildren
 * so we implement it here.
 *
 * @param {object} prev prev children as returned from
 * `ReactTransitionChildMapping.getChildMapping()`.
 * @param {object} next next children as returned from
 * `ReactTransitionChildMapping.getChildMapping()`.
 * @return {object} a key set that contains all keys in `prev` and all keys
 * in `next` in a reasonable order.
 */

function mergeChildMappings(prev, next) {
  prev = prev || {};
  next = next || {};
  function getValueForKey(key) {
    return key in next ? next[key] : prev[key];
  } // For each key of `next`, the list of keys to insert before that key in
  // the combined list

  var nextKeysPending = Object.create(null);
  var pendingKeys = [];
  for (var prevKey in prev) {
    if (prevKey in next) {
      if (pendingKeys.length) {
        nextKeysPending[prevKey] = pendingKeys;
        pendingKeys = [];
      }
    } else {
      pendingKeys.push(prevKey);
    }
  }
  var i;
  var childMapping = {};
  for (var nextKey in next) {
    if (nextKeysPending[nextKey]) {
      for (i = 0; i < nextKeysPending[nextKey].length; i++) {
        var pendingNextKey = nextKeysPending[nextKey][i];
        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
      }
    }
    childMapping[nextKey] = getValueForKey(nextKey);
  } // Finally, add the keys which didn't appear before any key in `next`

  for (i = 0; i < pendingKeys.length; i++) {
    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
  }
  return childMapping;
}
function getProp(child, prop, props) {
  return props[prop] != null ? props[prop] : child.props[prop];
}
function getInitialChildMapping(props, onExited) {
  return getChildMapping(props.children, function (child) {
    return (0,react.cloneElement)(child, {
      onExited: onExited.bind(null, child),
      in: true,
      appear: getProp(child, 'appear', props),
      enter: getProp(child, 'enter', props),
      exit: getProp(child, 'exit', props)
    });
  });
}
function getNextChildMapping(nextProps, prevChildMapping, onExited) {
  var nextChildMapping = getChildMapping(nextProps.children);
  var children = mergeChildMappings(prevChildMapping, nextChildMapping);
  Object.keys(children).forEach(function (key) {
    var child = children[key];
    if (!(0,react.isValidElement)(child)) return;
    var hasPrev = (key in prevChildMapping);
    var hasNext = (key in nextChildMapping);
    var prevChild = prevChildMapping[key];
    var isLeaving = (0,react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)

    if (hasNext && (!hasPrev || isLeaving)) {
      // console.log('entering', key)
      children[key] = (0,react.cloneElement)(child, {
        onExited: onExited.bind(null, child),
        in: true,
        exit: getProp(child, 'exit', nextProps),
        enter: getProp(child, 'enter', nextProps)
      });
    } else if (!hasNext && hasPrev && !isLeaving) {
      // item is old (exiting)
      // console.log('leaving', key)
      children[key] = (0,react.cloneElement)(child, {
        in: false
      });
    } else if (hasNext && hasPrev && (0,react.isValidElement)(prevChild)) {
      // item hasn't changed transition states
      // copy over the last transition props;
      // console.log('unchanged', key)
      children[key] = (0,react.cloneElement)(child, {
        onExited: onExited.bind(null, child),
        in: prevChild.props.in,
        exit: getProp(child, 'exit', nextProps),
        enter: getProp(child, 'enter', nextProps)
      });
    }
  });
  return children;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/TransitionGroup.js








var values = Object.values || function (obj) {
  return Object.keys(obj).map(function (k) {
    return obj[k];
  });
};
var defaultProps = {
  component: 'div',
  childFactory: function childFactory(child) {
    return child;
  }
};
/**
 * The `<TransitionGroup>` component manages a set of transition components
 * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
 * components, `<TransitionGroup>` is a state machine for managing the mounting
 * and unmounting of components over time.
 *
 * Consider the example below. As items are removed or added to the TodoList the
 * `in` prop is toggled automatically by the `<TransitionGroup>`.
 *
 * Note that `<TransitionGroup>`  does not define any animation behavior!
 * Exactly _how_ a list item animates is up to the individual transition
 * component. This means you can mix and match animations across different list
 * items.
 */

var TransitionGroup = /*#__PURE__*/function (_React$Component) {
  _inheritsLoose(TransitionGroup, _React$Component);
  function TransitionGroup(props, context) {
    var _this;
    _this = _React$Component.call(this, props, context) || this;
    var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear

    _this.state = {
      contextValue: {
        isMounting: true
      },
      handleExited: handleExited,
      firstRender: true
    };
    return _this;
  }
  var _proto = TransitionGroup.prototype;
  _proto.componentDidMount = function componentDidMount() {
    this.mounted = true;
    this.setState({
      contextValue: {
        isMounting: false
      }
    });
  };
  _proto.componentWillUnmount = function componentWillUnmount() {
    this.mounted = false;
  };
  TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
    var prevChildMapping = _ref.children,
      handleExited = _ref.handleExited,
      firstRender = _ref.firstRender;
    return {
      children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),
      firstRender: false
    };
  } // node is `undefined` when user provided `nodeRef` prop
  ;

  _proto.handleExited = function handleExited(child, node) {
    var currentChildMapping = getChildMapping(this.props.children);
    if (child.key in currentChildMapping) return;
    if (child.props.onExited) {
      child.props.onExited(node);
    }
    if (this.mounted) {
      this.setState(function (state) {
        var children = (0,esm_extends/* default */.Z)({}, state.children);
        delete children[child.key];
        return {
          children: children
        };
      });
    }
  };
  _proto.render = function render() {
    var _this$props = this.props,
      Component = _this$props.component,
      childFactory = _this$props.childFactory,
      props = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, ["component", "childFactory"]);
    var contextValue = this.state.contextValue;
    var children = values(this.state.children).map(childFactory);
    delete props.appear;
    delete props.enter;
    delete props.exit;
    if (Component === null) {
      return /*#__PURE__*/react.createElement(TransitionGroupContext.Provider, {
        value: contextValue
      }, children);
    }
    return /*#__PURE__*/react.createElement(TransitionGroupContext.Provider, {
      value: contextValue
    }, /*#__PURE__*/react.createElement(Component, props, children));
  };
  return TransitionGroup;
}(react.Component);
TransitionGroup.propTypes =  false ? 0 : {};
TransitionGroup.defaultProps = defaultProps;
/* harmony default export */ const esm_TransitionGroup = (TransitionGroup);
// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0/node_modules/@emotion/react/dist/emotion-react.browser.esm.js
var emotion_react_browser_esm = __webpack_require__(2150);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/useTimeout/useTimeout.js
var useTimeout = __webpack_require__(5859);
// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(7394);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/Ripple.js
'use client';





/**
 * @ignore - internal component.
 */

function Ripple(props) {
  const {
    className,
    classes,
    pulsate = false,
    rippleX,
    rippleY,
    rippleSize,
    in: inProp,
    onExited,
    timeout
  } = props;
  const [leaving, setLeaving] = react.useState(false);
  const rippleClassName = (0,clsx/* default */.Z)(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);
  const rippleStyles = {
    width: rippleSize,
    height: rippleSize,
    top: -(rippleSize / 2) + rippleY,
    left: -(rippleSize / 2) + rippleX
  };
  const childClassName = (0,clsx/* default */.Z)(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);
  if (!inProp && !leaving) {
    setLeaving(true);
  }
  react.useEffect(() => {
    if (!inProp && onExited != null) {
      // react-transition-group#onExited
      const timeoutId = setTimeout(onExited, timeout);
      return () => {
        clearTimeout(timeoutId);
      };
    }
    return undefined;
  }, [onExited, inProp, timeout]);
  return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
    className: rippleClassName,
    style: rippleStyles,
    children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
      className: childClassName
    })
  });
}
 false ? 0 : void 0;
/* harmony default export */ const ButtonBase_Ripple = (Ripple);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js
var generateUtilityClasses = __webpack_require__(3453);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/touchRippleClasses.js


function getTouchRippleUtilityClass(slot) {
  return generateUtilityClass('MuiTouchRipple', slot);
}
const touchRippleClasses = (0,generateUtilityClasses/* default */.Z)('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);
/* harmony default export */ const ButtonBase_touchRippleClasses = (touchRippleClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/TouchRipple.js
'use client';


var _templateObject, _templateObject2, _templateObject3, _templateObject4;


const _excluded = ["center", "classes", "className"];
let _ = t => t,
  _t,
  _t2,
  _t3,
  _t4;











const DURATION = 550;
const DELAY_RIPPLE = 80;
const enterKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(_t || (_t = _(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n  0% {\n    transform: scale(0);\n    opacity: 0.1;\n  }\n\n  100% {\n    transform: scale(1);\n    opacity: 0.3;\n  }\n"])))));
const exitKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(_t2 || (_t2 = _(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n  0% {\n    opacity: 1;\n  }\n\n  100% {\n    opacity: 0;\n  }\n"])))));
const pulsateKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(_t3 || (_t3 = _(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n  0% {\n    transform: scale(1);\n  }\n\n  50% {\n    transform: scale(0.92);\n  }\n\n  100% {\n    transform: scale(1);\n  }\n"])))));
const TouchRippleRoot = (0,styled/* default */.ZP)('span', {
  name: 'MuiTouchRipple',
  slot: 'Root'
})({
  overflow: 'hidden',
  pointerEvents: 'none',
  position: 'absolute',
  zIndex: 0,
  top: 0,
  right: 0,
  bottom: 0,
  left: 0,
  borderRadius: 'inherit'
});

// This `styled()` function invokes keyframes. `styled-components` only supports keyframes
// in string templates. Do not convert these styles in JS object as it will break.
const TouchRippleRipple = (0,styled/* default */.ZP)(ButtonBase_Ripple, {
  name: 'MuiTouchRipple',
  slot: 'Ripple'
})(_t4 || (_t4 = _(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n  opacity: 0;\n  position: absolute;\n\n  &.", " {\n    opacity: 0.3;\n    transform: scale(1);\n    animation-name: ", ";\n    animation-duration: ", "ms;\n    animation-timing-function: ", ";\n  }\n\n  &.", " {\n    animation-duration: ", "ms;\n  }\n\n  & .", " {\n    opacity: 1;\n    display: block;\n    width: 100%;\n    height: 100%;\n    border-radius: 50%;\n    background-color: currentColor;\n  }\n\n  & .", " {\n    opacity: 0;\n    animation-name: ", ";\n    animation-duration: ", "ms;\n    animation-timing-function: ", ";\n  }\n\n  & .", " {\n    position: absolute;\n    /* @noflip */\n    left: 0px;\n    top: 0;\n    animation-name: ", ";\n    animation-duration: 2500ms;\n    animation-timing-function: ", ";\n    animation-iteration-count: infinite;\n    animation-delay: 200ms;\n  }\n"])), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), ButtonBase_touchRippleClasses.rippleVisible, enterKeyframe, DURATION, _ref => {
  let {
    theme
  } = _ref;
  return theme.transitions.easing.easeInOut;
}, ButtonBase_touchRippleClasses.ripplePulsate, _ref2 => {
  let {
    theme
  } = _ref2;
  return theme.transitions.duration.shorter;
}, ButtonBase_touchRippleClasses.child, ButtonBase_touchRippleClasses.childLeaving, exitKeyframe, DURATION, _ref3 => {
  let {
    theme
  } = _ref3;
  return theme.transitions.easing.easeInOut;
}, ButtonBase_touchRippleClasses.childPulsate, pulsateKeyframe, _ref4 => {
  let {
    theme
  } = _ref4;
  return theme.transitions.easing.easeInOut;
});

/**
 * @ignore - internal component.
 *
 * TODO v5: Make private
 */
const TouchRipple = /*#__PURE__*/react.forwardRef(function TouchRipple(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiTouchRipple'
  });
  const {
      center: centerProp = false,
      classes = {},
      className
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded);
  const [ripples, setRipples] = react.useState([]);
  const nextKey = react.useRef(0);
  const rippleCallback = react.useRef(null);
  react.useEffect(() => {
    if (rippleCallback.current) {
      rippleCallback.current();
      rippleCallback.current = null;
    }
  }, [ripples]);

  // Used to filter out mouse emulated events on mobile.
  const ignoringMouseDown = react.useRef(false);
  // We use a timer in order to only show the ripples for touch "click" like events.
  // We don't want to display the ripple for touch scroll events.
  const startTimer = (0,useTimeout/* default */.Z)();

  // This is the hook called once the previous timeout is ready.
  const startTimerCommit = react.useRef(null);
  const container = react.useRef(null);
  const startCommit = react.useCallback(params => {
    const {
      pulsate,
      rippleX,
      rippleY,
      rippleSize,
      cb
    } = params;
    setRipples(oldRipples => [...oldRipples, /*#__PURE__*/(0,jsx_runtime.jsx)(TouchRippleRipple, {
      classes: {
        ripple: (0,clsx/* default */.Z)(classes.ripple, ButtonBase_touchRippleClasses.ripple),
        rippleVisible: (0,clsx/* default */.Z)(classes.rippleVisible, ButtonBase_touchRippleClasses.rippleVisible),
        ripplePulsate: (0,clsx/* default */.Z)(classes.ripplePulsate, ButtonBase_touchRippleClasses.ripplePulsate),
        child: (0,clsx/* default */.Z)(classes.child, ButtonBase_touchRippleClasses.child),
        childLeaving: (0,clsx/* default */.Z)(classes.childLeaving, ButtonBase_touchRippleClasses.childLeaving),
        childPulsate: (0,clsx/* default */.Z)(classes.childPulsate, ButtonBase_touchRippleClasses.childPulsate)
      },
      timeout: DURATION,
      pulsate: pulsate,
      rippleX: rippleX,
      rippleY: rippleY,
      rippleSize: rippleSize
    }, nextKey.current)]);
    nextKey.current += 1;
    rippleCallback.current = cb;
  }, [classes]);
  const start = react.useCallback(function () {
    let event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    let cb = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : () => {};
    const {
      pulsate = false,
      center = centerProp || options.pulsate,
      fakeElement = false // For test purposes
    } = options;
    if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {
      ignoringMouseDown.current = false;
      return;
    }
    if ((event == null ? void 0 : event.type) === 'touchstart') {
      ignoringMouseDown.current = true;
    }
    const element = fakeElement ? null : container.current;
    const rect = element ? element.getBoundingClientRect() : {
      width: 0,
      height: 0,
      left: 0,
      top: 0
    };

    // Get the size of the ripple
    let rippleX;
    let rippleY;
    let rippleSize;
    if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {
      rippleX = Math.round(rect.width / 2);
      rippleY = Math.round(rect.height / 2);
    } else {
      const {
        clientX,
        clientY
      } = event.touches && event.touches.length > 0 ? event.touches[0] : event;
      rippleX = Math.round(clientX - rect.left);
      rippleY = Math.round(clientY - rect.top);
    }
    if (center) {
      rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);

      // For some reason the animation is broken on Mobile Chrome if the size is even.
      if (rippleSize % 2 === 0) {
        rippleSize += 1;
      }
    } else {
      const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;
      const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;
      rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);
    }

    // Touche devices
    if (event != null && event.touches) {
      // check that this isn't another touchstart due to multitouch
      // otherwise we will only clear a single timer when unmounting while two
      // are running
      if (startTimerCommit.current === null) {
        // Prepare the ripple effect.
        startTimerCommit.current = () => {
          startCommit({
            pulsate,
            rippleX,
            rippleY,
            rippleSize,
            cb
          });
        };
        // Delay the execution of the ripple effect.
        // We have to make a tradeoff with this delay value.
        startTimer.start(DELAY_RIPPLE, () => {
          if (startTimerCommit.current) {
            startTimerCommit.current();
            startTimerCommit.current = null;
          }
        });
      }
    } else {
      startCommit({
        pulsate,
        rippleX,
        rippleY,
        rippleSize,
        cb
      });
    }
  }, [centerProp, startCommit, startTimer]);
  const pulsate = react.useCallback(() => {
    start({}, {
      pulsate: true
    });
  }, [start]);
  const stop = react.useCallback((event, cb) => {
    startTimer.clear();

    // The touch interaction occurs too quickly.
    // We still want to show ripple effect.
    if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {
      startTimerCommit.current();
      startTimerCommit.current = null;
      startTimer.start(0, () => {
        stop(event, cb);
      });
      return;
    }
    startTimerCommit.current = null;
    setRipples(oldRipples => {
      if (oldRipples.length > 0) {
        return oldRipples.slice(1);
      }
      return oldRipples;
    });
    rippleCallback.current = cb;
  }, [startTimer]);
  react.useImperativeHandle(ref, () => ({
    pulsate,
    start,
    stop
  }), [pulsate, start, stop]);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(TouchRippleRoot, (0,esm_extends/* default */.Z)({
    className: (0,clsx/* default */.Z)(ButtonBase_touchRippleClasses.root, classes.root, className),
    ref: container
  }, other, {
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(esm_TransitionGroup, {
      component: null,
      exit: true,
      children: ripples
    })
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const ButtonBase_TouchRipple = (TouchRipple);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js
var generateUtilityClass_generateUtilityClass = __webpack_require__(8092);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/buttonBaseClasses.js


function getButtonBaseUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiButtonBase', slot);
}
const buttonBaseClasses = (0,generateUtilityClasses/* default */.Z)('MuiButtonBase', ['root', 'disabled', 'focusVisible']);
/* harmony default export */ const ButtonBase_buttonBaseClasses = (buttonBaseClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/ButtonBase.js
'use client';



const ButtonBase_excluded = ["action", "centerRipple", "children", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "LinkComponent", "onBlur", "onClick", "onContextMenu", "onDragLeave", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "tabIndex", "TouchRippleProps", "touchRippleRef", "type"];















const useUtilityClasses = ownerState => {
  const {
    disabled,
    focusVisible,
    focusVisibleClassName,
    classes
  } = ownerState;
  const slots = {
    root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']
  };
  const composedClasses = (0,composeClasses/* default */.Z)(slots, getButtonBaseUtilityClass, classes);
  if (focusVisible && focusVisibleClassName) {
    composedClasses.root += " ".concat(focusVisibleClassName);
  }
  return composedClasses;
};
const ButtonBaseRoot = (0,styled/* default */.ZP)('button', {
  name: 'MuiButtonBase',
  slot: 'Root',
  overridesResolver: (props, styles) => styles.root
})({
  display: 'inline-flex',
  alignItems: 'center',
  justifyContent: 'center',
  position: 'relative',
  boxSizing: 'border-box',
  WebkitTapHighlightColor: 'transparent',
  backgroundColor: 'transparent',
  // Reset default value
  // We disable the focus ring for mouse, touch and keyboard users.
  outline: 0,
  border: 0,
  margin: 0,
  // Remove the margin in Safari
  borderRadius: 0,
  padding: 0,
  // Remove the padding in Firefox
  cursor: 'pointer',
  userSelect: 'none',
  verticalAlign: 'middle',
  MozAppearance: 'none',
  // Reset
  WebkitAppearance: 'none',
  // Reset
  textDecoration: 'none',
  // So we take precedent over the style of a native <a /> element.
  color: 'inherit',
  '&::-moz-focus-inner': {
    borderStyle: 'none' // Remove Firefox dotted outline.
  },

  ["&.".concat(ButtonBase_buttonBaseClasses.disabled)]: {
    pointerEvents: 'none',
    // Disable link interactions
    cursor: 'default'
  },
  '@media print': {
    colorAdjust: 'exact'
  }
});

/**
 * `ButtonBase` contains as few styles as possible.
 * It aims to be a simple building block for creating a button.
 * It contains a load of style reset and some focus/ripple logic.
 */
const ButtonBase = /*#__PURE__*/react.forwardRef(function ButtonBase(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiButtonBase'
  });
  const {
      action,
      centerRipple = false,
      children,
      className,
      component = 'button',
      disabled = false,
      disableRipple = false,
      disableTouchRipple = false,
      focusRipple = false,
      LinkComponent = 'a',
      onBlur,
      onClick,
      onContextMenu,
      onDragLeave,
      onFocus,
      onFocusVisible,
      onKeyDown,
      onKeyUp,
      onMouseDown,
      onMouseLeave,
      onMouseUp,
      onTouchEnd,
      onTouchMove,
      onTouchStart,
      tabIndex = 0,
      TouchRippleProps,
      touchRippleRef,
      type
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, ButtonBase_excluded);
  const buttonRef = react.useRef(null);
  const rippleRef = react.useRef(null);
  const handleRippleRef = (0,useForkRef/* default */.Z)(rippleRef, touchRippleRef);
  const {
    isFocusVisibleRef,
    onFocus: handleFocusVisible,
    onBlur: handleBlurVisible,
    ref: focusVisibleRef
  } = (0,useIsFocusVisible/* default */.Z)();
  const [focusVisible, setFocusVisible] = react.useState(false);
  if (disabled && focusVisible) {
    setFocusVisible(false);
  }
  react.useImperativeHandle(action, () => ({
    focusVisible: () => {
      setFocusVisible(true);
      buttonRef.current.focus();
    }
  }), []);
  const [mountedState, setMountedState] = react.useState(false);
  react.useEffect(() => {
    setMountedState(true);
  }, []);
  const enableTouchRipple = mountedState && !disableRipple && !disabled;
  react.useEffect(() => {
    if (focusVisible && focusRipple && !disableRipple && mountedState) {
      rippleRef.current.pulsate();
    }
  }, [disableRipple, focusRipple, focusVisible, mountedState]);
  function useRippleHandler(rippleAction, eventCallback) {
    let skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;
    return (0,useEventCallback/* default */.Z)(event => {
      if (eventCallback) {
        eventCallback(event);
      }
      const ignore = skipRippleAction;
      if (!ignore && rippleRef.current) {
        rippleRef.current[rippleAction](event);
      }
      return true;
    });
  }
  const handleMouseDown = useRippleHandler('start', onMouseDown);
  const handleContextMenu = useRippleHandler('stop', onContextMenu);
  const handleDragLeave = useRippleHandler('stop', onDragLeave);
  const handleMouseUp = useRippleHandler('stop', onMouseUp);
  const handleMouseLeave = useRippleHandler('stop', event => {
    if (focusVisible) {
      event.preventDefault();
    }
    if (onMouseLeave) {
      onMouseLeave(event);
    }
  });
  const handleTouchStart = useRippleHandler('start', onTouchStart);
  const handleTouchEnd = useRippleHandler('stop', onTouchEnd);
  const handleTouchMove = useRippleHandler('stop', onTouchMove);
  const handleBlur = useRippleHandler('stop', event => {
    handleBlurVisible(event);
    if (isFocusVisibleRef.current === false) {
      setFocusVisible(false);
    }
    if (onBlur) {
      onBlur(event);
    }
  }, false);
  const handleFocus = (0,useEventCallback/* default */.Z)(event => {
    // Fix for https://github.com/facebook/react/issues/7769
    if (!buttonRef.current) {
      buttonRef.current = event.currentTarget;
    }
    handleFocusVisible(event);
    if (isFocusVisibleRef.current === true) {
      setFocusVisible(true);
      if (onFocusVisible) {
        onFocusVisible(event);
      }
    }
    if (onFocus) {
      onFocus(event);
    }
  });
  const isNonNativeButton = () => {
    const button = buttonRef.current;
    return component && component !== 'button' && !(button.tagName === 'A' && button.href);
  };

  /**
   * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat
   */
  const keydownRef = react.useRef(false);
  const handleKeyDown = (0,useEventCallback/* default */.Z)(event => {
    // Check if key is already down to avoid repeats being counted as multiple activations
    if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {
      keydownRef.current = true;
      rippleRef.current.stop(event, () => {
        rippleRef.current.start(event);
      });
    }
    if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {
      event.preventDefault();
    }
    if (onKeyDown) {
      onKeyDown(event);
    }

    // Keyboard accessibility for non interactive elements
    if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {
      event.preventDefault();
      if (onClick) {
        onClick(event);
      }
    }
  });
  const handleKeyUp = (0,useEventCallback/* default */.Z)(event => {
    // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed
    // https://codesandbox.io/p/sandbox/button-keyup-preventdefault-dn7f0
    if (focusRipple && event.key === ' ' && rippleRef.current && focusVisible && !event.defaultPrevented) {
      keydownRef.current = false;
      rippleRef.current.stop(event, () => {
        rippleRef.current.pulsate(event);
      });
    }
    if (onKeyUp) {
      onKeyUp(event);
    }

    // Keyboard accessibility for non interactive elements
    if (onClick && event.target === event.currentTarget && isNonNativeButton() && event.key === ' ' && !event.defaultPrevented) {
      onClick(event);
    }
  });
  let ComponentProp = component;
  if (ComponentProp === 'button' && (other.href || other.to)) {
    ComponentProp = LinkComponent;
  }
  const buttonProps = {};
  if (ComponentProp === 'button') {
    buttonProps.type = type === undefined ? 'button' : type;
    buttonProps.disabled = disabled;
  } else {
    if (!other.href && !other.to) {
      buttonProps.role = 'button';
    }
    if (disabled) {
      buttonProps['aria-disabled'] = disabled;
    }
  }
  const handleRef = (0,useForkRef/* default */.Z)(ref, focusVisibleRef, buttonRef);
  if (false) {}
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    centerRipple,
    component,
    disabled,
    disableRipple,
    disableTouchRipple,
    focusRipple,
    tabIndex,
    focusVisible
  });
  const classes = useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(ButtonBaseRoot, (0,esm_extends/* default */.Z)({
    as: ComponentProp,
    className: (0,clsx/* default */.Z)(classes.root, className),
    ownerState: ownerState,
    onBlur: handleBlur,
    onClick: onClick,
    onContextMenu: handleContextMenu,
    onFocus: handleFocus,
    onKeyDown: handleKeyDown,
    onKeyUp: handleKeyUp,
    onMouseDown: handleMouseDown,
    onMouseLeave: handleMouseLeave,
    onMouseUp: handleMouseUp,
    onDragLeave: handleDragLeave,
    onTouchEnd: handleTouchEnd,
    onTouchMove: handleTouchMove,
    onTouchStart: handleTouchStart,
    ref: handleRef,
    tabIndex: disabled ? -1 : tabIndex,
    type: type
  }, buttonProps, other, {
    children: [children, enableTouchRipple ? /*#__PURE__*/
    /* TouchRipple is only needed client-side, x2 boost on the server. */
    (0,jsx_runtime.jsx)(ButtonBase_TouchRipple, (0,esm_extends/* default */.Z)({
      ref: handleRippleRef,
      center: centerRipple
    }, TouchRippleProps)) : null]
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const ButtonBase_ButtonBase = (ButtonBase);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/capitalize.js
var capitalize = __webpack_require__(7593);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Fab/fabClasses.js


function getFabUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiFab', slot);
}
const fabClasses = (0,generateUtilityClasses/* default */.Z)('MuiFab', ['root', 'primary', 'secondary', 'extended', 'circular', 'focusVisible', 'disabled', 'colorInherit', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'info', 'error', 'warning', 'success']);
/* harmony default export */ const Fab_fabClasses = (fabClasses);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/rootShouldForwardProp.js
var rootShouldForwardProp = __webpack_require__(2243);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Fab/Fab.js
'use client';



const Fab_excluded = ["children", "className", "color", "component", "disabled", "disableFocusRipple", "focusVisibleClassName", "size", "variant"];










const Fab_useUtilityClasses = ownerState => {
  const {
    color,
    variant,
    classes,
    size
  } = ownerState;
  const slots = {
    root: ['root', variant, "size".concat((0,capitalize/* default */.Z)(size)), color === 'inherit' ? 'colorInherit' : color]
  };
  const composedClasses = (0,composeClasses/* default */.Z)(slots, getFabUtilityClass, classes);
  return (0,esm_extends/* default */.Z)({}, classes, composedClasses);
};
const FabRoot = (0,styled/* default */.ZP)(ButtonBase_ButtonBase, {
  name: 'MuiFab',
  slot: 'Root',
  shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) || prop === 'classes',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, styles[ownerState.variant], styles["size".concat((0,capitalize/* default */.Z)(ownerState.size))], ownerState.color === 'inherit' && styles.colorInherit, styles[(0,capitalize/* default */.Z)(ownerState.size)], styles[ownerState.color]];
  }
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  var _theme$palette$getCon, _theme$palette;
  return (0,esm_extends/* default */.Z)({}, theme.typography.button, {
    minHeight: 36,
    transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color'], {
      duration: theme.transitions.duration.short
    }),
    borderRadius: '50%',
    padding: 0,
    minWidth: 0,
    width: 56,
    height: 56,
    zIndex: (theme.vars || theme).zIndex.fab,
    boxShadow: (theme.vars || theme).shadows[6],
    '&:active': {
      boxShadow: (theme.vars || theme).shadows[12]
    },
    color: theme.vars ? theme.vars.palette.text.primary : (_theme$palette$getCon = (_theme$palette = theme.palette).getContrastText) == null ? void 0 : _theme$palette$getCon.call(_theme$palette, theme.palette.grey[300]),
    backgroundColor: (theme.vars || theme).palette.grey[300],
    '&:hover': {
      backgroundColor: (theme.vars || theme).palette.grey.A100,
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: (theme.vars || theme).palette.grey[300]
      },
      textDecoration: 'none'
    },
    ["&.".concat(Fab_fabClasses.focusVisible)]: {
      boxShadow: (theme.vars || theme).shadows[6]
    }
  }, ownerState.size === 'small' && {
    width: 40,
    height: 40
  }, ownerState.size === 'medium' && {
    width: 48,
    height: 48
  }, ownerState.variant === 'extended' && {
    borderRadius: 48 / 2,
    padding: '0 16px',
    width: 'auto',
    minHeight: 'auto',
    minWidth: 48,
    height: 48
  }, ownerState.variant === 'extended' && ownerState.size === 'small' && {
    width: 'auto',
    padding: '0 8px',
    borderRadius: 34 / 2,
    minWidth: 34,
    height: 34
  }, ownerState.variant === 'extended' && ownerState.size === 'medium' && {
    width: 'auto',
    padding: '0 16px',
    borderRadius: 40 / 2,
    minWidth: 40,
    height: 40
  }, ownerState.color === 'inherit' && {
    color: 'inherit'
  });
}, _ref2 => {
  let {
    theme,
    ownerState
  } = _ref2;
  return (0,esm_extends/* default */.Z)({}, ownerState.color !== 'inherit' && ownerState.color !== 'default' && (theme.vars || theme).palette[ownerState.color] != null && {
    color: (theme.vars || theme).palette[ownerState.color].contrastText,
    backgroundColor: (theme.vars || theme).palette[ownerState.color].main,
    '&:hover': {
      backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: (theme.vars || theme).palette[ownerState.color].main
      }
    }
  });
}, _ref3 => {
  let {
    theme
  } = _ref3;
  return {
    ["&.".concat(Fab_fabClasses.disabled)]: {
      color: (theme.vars || theme).palette.action.disabled,
      boxShadow: (theme.vars || theme).shadows[0],
      backgroundColor: (theme.vars || theme).palette.action.disabledBackground
    }
  };
});
const Fab = /*#__PURE__*/react.forwardRef(function Fab(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiFab'
  });
  const {
      children,
      className,
      color = 'default',
      component = 'button',
      disabled = false,
      disableFocusRipple = false,
      focusVisibleClassName,
      size = 'large',
      variant = 'circular'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Fab_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color,
    component,
    disabled,
    disableFocusRipple,
    size,
    variant
  });
  const classes = Fab_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(FabRoot, (0,esm_extends/* default */.Z)({
    className: (0,clsx/* default */.Z)(classes.root, className),
    component: component,
    disabled: disabled,
    focusRipple: !disableFocusRipple,
    focusVisibleClassName: (0,clsx/* default */.Z)(classes.focusVisible, focusVisibleClassName),
    ownerState: ownerState,
    ref: ref
  }, other, {
    classes: classes,
    children: children
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const Fab_Fab = (Fab);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/Translate.js
var Translate = __webpack_require__(9055);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/createTheme.js
var createTheme = __webpack_require__(1126);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+private-theming@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/private-theming/useTheme/ThemeContext.js

const ThemeContext = /*#__PURE__*/react.createContext(null);
if (false) {}
/* harmony default export */ const useTheme_ThemeContext = (ThemeContext);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+private-theming@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/private-theming/useTheme/useTheme.js


function useTheme() {
  const theme = react.useContext(useTheme_ThemeContext);
  if (false) {}
  return theme;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+private-theming@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/private-theming/ThemeProvider/nested.js
const hasSymbol = typeof Symbol === 'function' && Symbol.for;
/* harmony default export */ const nested = (hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__');
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+private-theming@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js








// To support composition of theme.

function mergeOuterLocalTheme(outerTheme, localTheme) {
  if (typeof localTheme === 'function') {
    const mergedTheme = localTheme(outerTheme);
    if (false) {}
    return mergedTheme;
  }
  return (0,esm_extends/* default */.Z)({}, outerTheme, localTheme);
}

/**
 * This component takes a `theme` prop.
 * It makes the `theme` available down the React tree thanks to React context.
 * This component should preferably be used at **the root of your component tree**.
 */
function ThemeProvider(props) {
  const {
    children,
    theme: localTheme
  } = props;
  const outerTheme = useTheme();
  if (false) {}
  const theme = react.useMemo(() => {
    const output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);
    if (output != null) {
      output[nested] = outerTheme !== null;
    }
    return output;
  }, [localTheme, outerTheme]);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(useTheme_ThemeContext.Provider, {
    value: theme,
    children: children
  });
}
 false ? 0 : void 0;
if (false) {}
/* harmony default export */ const ThemeProvider_ThemeProvider = (ThemeProvider);
// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0/node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js
var emotion_element_c39617d8_browser_esm = __webpack_require__(2412);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/useThemeWithoutDefault.js
var useThemeWithoutDefault = __webpack_require__(4601);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/RtlProvider/index.js


const RtlProvider_excluded = ["value"];



const RtlContext = /*#__PURE__*/react.createContext();
function RtlProvider(_ref) {
  let {
      value
    } = _ref,
    props = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref, RtlProvider_excluded);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(RtlContext.Provider, (0,esm_extends/* default */.Z)({
    value: value != null ? value : true
  }, props));
}
 false ? 0 : void 0;
const useRtl = () => {
  const value = react.useContext(RtlContext);
  return value != null ? value : false;
};
/* harmony default export */ const esm_RtlProvider = (RtlProvider);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js
'use client';










const EMPTY_THEME = {};
function useThemeScoping(themeId, upperTheme, localTheme) {
  let isPrivate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
  return react.useMemo(() => {
    const resolvedTheme = themeId ? upperTheme[themeId] || upperTheme : upperTheme;
    if (typeof localTheme === 'function') {
      const mergedTheme = localTheme(resolvedTheme);
      const result = themeId ? (0,esm_extends/* default */.Z)({}, upperTheme, {
        [themeId]: mergedTheme
      }) : mergedTheme;
      // must return a function for the private theme to NOT merge with the upper theme.
      // see the test case "use provided theme from a callback" in ThemeProvider.test.js
      if (isPrivate) {
        return () => result;
      }
      return result;
    }
    return themeId ? (0,esm_extends/* default */.Z)({}, upperTheme, {
      [themeId]: localTheme
    }) : (0,esm_extends/* default */.Z)({}, upperTheme, localTheme);
  }, [themeId, upperTheme, localTheme, isPrivate]);
}

/**
 * This component makes the `theme` available down the React tree.
 * It should preferably be used at **the root of your component tree**.
 *
 * <ThemeProvider theme={theme}> // existing use case
 * <ThemeProvider theme={{ id: theme }}> // theme scoping
 */
function ThemeProvider_ThemeProvider_ThemeProvider(props) {
  const {
    children,
    theme: localTheme,
    themeId
  } = props;
  const upperTheme = (0,useThemeWithoutDefault/* default */.Z)(EMPTY_THEME);
  const upperPrivateTheme = useTheme() || EMPTY_THEME;
  if (false) {}
  const engineTheme = useThemeScoping(themeId, upperTheme, localTheme);
  const privateTheme = useThemeScoping(themeId, upperPrivateTheme, localTheme, true);
  const rtlValue = engineTheme.direction === 'rtl';
  return /*#__PURE__*/(0,jsx_runtime.jsx)(ThemeProvider_ThemeProvider, {
    theme: privateTheme,
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(emotion_element_c39617d8_browser_esm.T.Provider, {
      value: engineTheme,
      children: /*#__PURE__*/(0,jsx_runtime.jsx)(esm_RtlProvider, {
        value: rtlValue,
        children: children
      })
    })
  });
}
 false ? 0 : void 0;
if (false) {}
/* harmony default export */ const esm_ThemeProvider_ThemeProvider = (ThemeProvider_ThemeProvider_ThemeProvider);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/identifier.js
var identifier = __webpack_require__(4876);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/ThemeProvider.js
'use client';



const ThemeProvider_excluded = ["theme"];





function styles_ThemeProvider_ThemeProvider(_ref) {
  let {
      theme: themeInput
    } = _ref,
    props = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref, ThemeProvider_excluded);
  const scopedTheme = themeInput[identifier/* default */.Z];
  return /*#__PURE__*/(0,jsx_runtime.jsx)(esm_ThemeProvider_ThemeProvider, (0,esm_extends/* default */.Z)({}, props, {
    themeId: scopedTheme ? identifier/* default */.Z : undefined,
    theme: scopedTheme || themeInput
  }));
}
 false ? 0 : void 0;
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+styled-engine@5.15.14_@emotion+react@11.11.1_@emotion+styled@11.11.0_react@18.2.0/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js
var GlobalStyles = __webpack_require__(8732);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/useTheme.js
var esm_useTheme = __webpack_require__(234);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js
'use client';






function GlobalStyles_GlobalStyles(_ref) {
  let {
    styles,
    themeId,
    defaultTheme = {}
  } = _ref;
  const upperTheme = (0,esm_useTheme/* default */.Z)(defaultTheme);
  const globalStyles = typeof styles === 'function' ? styles(themeId ? upperTheme[themeId] || upperTheme : upperTheme) : styles;
  return /*#__PURE__*/(0,jsx_runtime.jsx)(GlobalStyles/* default */.Z, {
    styles: globalStyles
  });
}
 false ? 0 : void 0;
/* harmony default export */ const esm_GlobalStyles_GlobalStyles = (GlobalStyles_GlobalStyles);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/defaultTheme.js
var defaultTheme = __webpack_require__(1315);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/GlobalStyles/GlobalStyles.js
'use client';








function GlobalStyles_GlobalStyles_GlobalStyles(props) {
  return /*#__PURE__*/(0,jsx_runtime.jsx)(esm_GlobalStyles_GlobalStyles, (0,esm_extends/* default */.Z)({}, props, {
    defaultTheme: defaultTheme/* default */.Z,
    themeId: identifier/* default */.Z
  }));
}
 false ? 0 : void 0;
/* harmony default export */ const material_GlobalStyles_GlobalStyles = (GlobalStyles_GlobalStyles_GlobalStyles);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/CssBaseline/CssBaseline.js
'use client';








const html = (theme, enableColorScheme) => (0,esm_extends/* default */.Z)({
  WebkitFontSmoothing: 'antialiased',
  // Antialiasing.
  MozOsxFontSmoothing: 'grayscale',
  // Antialiasing.
  // Change from `box-sizing: content-box` so that `width`
  // is not affected by `padding` or `border`.
  boxSizing: 'border-box',
  // Fix font resize problem in iOS
  WebkitTextSizeAdjust: '100%'
}, enableColorScheme && !theme.vars && {
  colorScheme: theme.palette.mode
});
const body = theme => (0,esm_extends/* default */.Z)({
  color: (theme.vars || theme).palette.text.primary
}, theme.typography.body1, {
  backgroundColor: (theme.vars || theme).palette.background.default,
  '@media print': {
    // Save printer ink.
    backgroundColor: (theme.vars || theme).palette.common.white
  }
});
const styles = function (theme) {
  let enableColorScheme = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  var _theme$components;
  const colorSchemeStyles = {};
  if (enableColorScheme && theme.colorSchemes) {
    Object.entries(theme.colorSchemes).forEach(_ref => {
      let [key, scheme] = _ref;
      var _scheme$palette;
      colorSchemeStyles[theme.getColorSchemeSelector(key).replace(/\s*&/, '')] = {
        colorScheme: (_scheme$palette = scheme.palette) == null ? void 0 : _scheme$palette.mode
      };
    });
  }
  let defaultStyles = (0,esm_extends/* default */.Z)({
    html: html(theme, enableColorScheme),
    '*, *::before, *::after': {
      boxSizing: 'inherit'
    },
    'strong, b': {
      fontWeight: theme.typography.fontWeightBold
    },
    body: (0,esm_extends/* default */.Z)({
      margin: 0
    }, body(theme), {
      // Add support for document.body.requestFullScreen().
      // Other elements, if background transparent, are not supported.
      '&::backdrop': {
        backgroundColor: (theme.vars || theme).palette.background.default
      }
    })
  }, colorSchemeStyles);
  const themeOverrides = (_theme$components = theme.components) == null || (_theme$components = _theme$components.MuiCssBaseline) == null ? void 0 : _theme$components.styleOverrides;
  if (themeOverrides) {
    defaultStyles = [defaultStyles, themeOverrides];
  }
  return defaultStyles;
};

/**
 * Kickstart an elegant, consistent, and simple baseline to build upon.
 */
function CssBaseline(inProps) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiCssBaseline'
  });
  const {
    children,
    enableColorScheme = false
  } = props;
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
    children: [/*#__PURE__*/(0,jsx_runtime.jsx)(material_GlobalStyles_GlobalStyles, {
      styles: theme => styles(theme, enableColorScheme)
    }), children]
  });
}
 false ? 0 : void 0;
/* harmony default export */ const CssBaseline_CssBaseline = (CssBaseline);
;// CONCATENATED MODULE: ./src/libs/webfix.js
/**
 * 修复程序类型
 */const FIXER_NONE="-";const FIXER_BR="br";const FIXER_BN="bn";const FIXER_BR_DIV="brToDiv";const FIXER_BN_DIV="bnToDiv";const FIXER_ALL=[FIXER_NONE,FIXER_BR,FIXER_BN,FIXER_BR_DIV,FIXER_BN_DIV];/**
 * 修复过的标记
 */const fixedSign="kiss-fixed";/**
 * 采用 `br` 换行网站的修复函数
 * 目标是将 `br` 替换成 `p`
 * @param {*} node
 * @returns
 */function brFixer(node){let tag=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"p";if(node.hasAttribute(fixedSign)){return;}node.setAttribute(fixedSign,"true");const gapTags=["BR","WBR"];const newlineTags=["DIV","UL","OL","LI","H1","H2","H3","H4","H5","H6","P","HR","PRE","TABLE","BLOCKQUOTE"];let html="";node.childNodes.forEach(function(child,index){if(index===0){html+="<".concat(tag," class=\"kiss-p\">");}if(gapTags.indexOf(child.nodeName)!==-1){html+="</".concat(tag,"><").concat(tag," class=\"kiss-p\">");}else if(newlineTags.indexOf(child.nodeName)!==-1){html+="</".concat(tag,">").concat(child.outerHTML,"<").concat(tag," class=\"kiss-p\">");}else if(child.outerHTML){html+=child.outerHTML;}else if(child.textContent){html+=child.textContent;}if(index===node.childNodes.length-1){html+="</".concat(tag,">");}});node.innerHTML=html;}function brDivFixer(node){return brFixer(node,"div");}/**
 * 目标是将 `\n` 替换成 `p`
 * @param {*} node
 * @returns
 */function bnFixer(node){let tag=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"p";if(node.hasAttribute(fixedSign)){return;}node.setAttribute(fixedSign,"true");node.innerHTML=node.innerHTML.split("\n").map(item=>"<".concat(tag," class=\"kiss-p\">").concat(item||"&nbsp;","</").concat(tag,">")).join("");}function bnDivFixer(node){return bnFixer(node,"div");}/**
 * 查找、监听节点,并执行修复函数
 * @param {*} selector
 * @param {*} fixer
 * @param {*} rootSelector
 */function run(selector,fixer,rootSelector){const mutaObserver=new MutationObserver(function(mutations){mutations.forEach(function(mutation){mutation.addedNodes.forEach(function(addNode){if(addNode&&addNode.querySelectorAll){addNode.querySelectorAll(selector).forEach(function(node){fixer(node);});}});});});let rootNodes=[document];if(rootSelector){rootNodes=document.querySelectorAll(rootSelector);}rootNodes.forEach(function(rootNode){rootNode.querySelectorAll(selector).forEach(function(node){fixer(node);});mutaObserver.observe(rootNode,{childList:true,subtree:true});});}/**
 * 修复程序映射
 */const fixerMap={[FIXER_BR]:brFixer,[FIXER_BN]:bnFixer,[FIXER_BR_DIV]:brDivFixer,[FIXER_BN_DIV]:bnDivFixer};/**
 * 执行fixer
 * @param {*} param0
 */function runFixer(selector){let fixer=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"-";let rootSelector=arguments.length>2?arguments[2]:undefined;try{if(Object.keys(fixerMap).includes(fixer)){run(selector,fixerMap[fixer],rootSelector);}}catch(err){console.error("[kiss-webfix run]: ".concat(err.message));}}
;// CONCATENATED MODULE: ./src/config/rules.js
const GLOBAL_KEY="*";const REMAIN_KEY="-";const SHADOW_KEY=">>>";const DEFAULT_SELECTOR=":is(li, p, h1, h2, h3, h4, h5, h6, dd, blockquote, .kiss-p)";const DEFAULT_KEEP_SELECTOR="code, img, svg, pre";const DEFAULT_RULE={pattern:"",// 匹配网址
selector:"",// 选择器
keepSelector:"",// 保留元素选择器
terms:"",// 专业术语
translator:GLOBAL_KEY,// 翻译服务
fromLang:GLOBAL_KEY,// 源语言
toLang:GLOBAL_KEY,// 目标语言
textStyle:GLOBAL_KEY,// 译文样式
transOpen:GLOBAL_KEY,// 开启翻译
bgColor:"",// 译文颜色
textDiyStyle:"",// 自定义译文样式
selectStyle:"",// 选择器节点样式
parentStyle:"",// 选择器父节点样式
injectJs:"",// 注入JS
injectCss:"",// 注入CSS
transOnly:GLOBAL_KEY,// 是否仅显示译文
transTiming:GLOBAL_KEY,// 翻译时机/鼠标悬停翻译
transTag:GLOBAL_KEY,// 译文元素标签
transTitle:GLOBAL_KEY,// 是否同时翻译页面标题
detectRemote:GLOBAL_KEY,// 是否使用远程语言检测
skipLangs:[],// 不翻译的语言
fixerSelector:"",// 修复函数选择器
fixerFunc:GLOBAL_KEY,// 修复函数
transStartHook:"",// 钩子函数
transEndHook:"",// 钩子函数
transRemoveHook:""// 钩子函数
};const DEFAULT_DIY_STYLE="color: #666;\nbackground: linear-gradient(\n  45deg,\n  LightGreen 20%,\n  LightPink 20% 40%,\n  LightSalmon 40% 60%,\n  LightSeaGreen 60% 80%,\n  LightSkyBlue 80%\n);\n&:hover {\n  color: #333;\n};";const DEFAULT_OW_RULE={translator:REMAIN_KEY,fromLang:REMAIN_KEY,toLang:REMAIN_KEY,textStyle:REMAIN_KEY,transOpen:REMAIN_KEY,bgColor:"",textDiyStyle:DEFAULT_DIY_STYLE};const RULES_MAP={"www.google.com/search":{selector:"h3, .IsZvec, .VwiC3b"},"news.google.com":{selector:"[data-n-tid], ".concat(DEFAULT_SELECTOR)},"www.foxnews.com":{selector:"h1, h2, .title, .sidebar [data-type=\"Title\"], .article-content ".concat(DEFAULT_SELECTOR,"; [data-spotim-module=\"conversation\"]>div >>> [data-spot-im-class=\"message-text\"] p,  [data-spot-im-class=\"message-text\"]")},"bearblog.dev, www.theverge.com, www.tampermonkey.net/documentation.php":{selector:"".concat(DEFAULT_SELECTOR)},"themessenger.com":{selector:".leading-tight, .leading-tighter, .my-2 p, .font-body p, article ".concat(DEFAULT_SELECTOR)},"www.telegraph.co.uk, go.dev/doc/":{selector:"article ".concat(DEFAULT_SELECTOR)},"www.theguardian.com":{selector:".show-underline, .dcr-hup5wm div, .dcr-7vl6y8 div, .dcr-12evv1c, figcaption, article ".concat(DEFAULT_SELECTOR,", [data-cy=\"mostviewed-footer\"] h4")},"www.semafor.com":{selector:"".concat(DEFAULT_SELECTOR,", .styles_intro__IYj__, [class*=\"styles_description\"]")},"www.noemamag.com":{selector:".splash__title, .single-card__title, .single-card__type, .single-card__topic, .highlighted-content__title, .single-card__author, article ".concat(DEFAULT_SELECTOR,", .quote__text, .wp-caption-text div")},"restofworld.org":{selector:"".concat(DEFAULT_SELECTOR,", .recirc-story__headline, .recirc-story__dek")},"www.axios.com":{selector:".h7, ".concat(DEFAULT_SELECTOR)},"www.newyorker.com":{selector:".summary-item__hed, .summary-item__dek, .summary-collection-grid__dek, .dqtvfu, .rubric__link, .caption, article ".concat(DEFAULT_SELECTOR,", .HEhan ").concat(DEFAULT_SELECTOR,", .ContributorBioBio-fBolsO, .BaseText-ewhhUZ")},"time.com":{selector:"h1, h3, .summary, .video-title, #article-body ".concat(DEFAULT_SELECTOR,", .image-wrap-container .credit.body-caption, .media-heading")},"www.dw.com":{selector:".ts-teaser-title a, .news-title a, .title a, .teaser-description a, .hbudab h3, .hbudab p, figcaption ,article ".concat(DEFAULT_SELECTOR)},"www.bbc.com":{selector:"h1, h2, .media__link, .media__summary, article ".concat(DEFAULT_SELECTOR,", .ssrcss-y7krbn-Stack, .ssrcss-17zglt8-PromoHeadline, .ssrcss-18cjaf3-Headline, .gs-c-promo-heading__title, .gs-c-promo-summary, .media__content h3, .article__intro, .lx-c-summary-points>li")},"www.chinadaily.com.cn":{selector:"h1, .tMain [shape=\"rect\"], .cMain [shape=\"rect\"], .photo_art [shape=\"rect\"], .mai_r [shape=\"rect\"], .lisBox li, #Content ".concat(DEFAULT_SELECTOR)},"www.facebook.com":{selector:"[role=\"main\"] [dir=\"auto\"]"},"www.reddit.com, new.reddit.com, sh.reddit.com":{selector:":is(#AppRouter-main-content, #overlayScrollContainer) :is([class^=tbIA],[class^=_1zP],[class^=ULWj],[class^=_2Jj], [class^=_334],[class^=_2Gr],[class^=_7T4],[class^=_1WO], ".concat(DEFAULT_SELECTOR,"); [id^=\"post-title\"], :is([slot=\"text-body\"], [slot=\"comment\"]) ").concat(DEFAULT_SELECTOR,", recent-posts h3, aside :is(span:has(>h2), p); shreddit-subreddit-header >>> :is(#title, #description)")},"www.quora.com":{selector:".qu-wordBreak--break-word"},"edition.cnn.com":{selector:".container__title, .container__headline, .headline__text, .image__caption, [data-type=\"Title\"], .article__content ".concat(DEFAULT_SELECTOR)},"www.reuters.com":{selector:"#main-content [data-testid=\"Heading\"], #main-content [data-testid=\"Body\"], .article-body__content__17Yit ".concat(DEFAULT_SELECTOR)},"www.bloomberg.com":{selector:"[data-component=\"headline\"], [data-component=\"related-item-headline\"], [data-component=\"title\"], article ".concat(DEFAULT_SELECTOR)},"deno.land, docs.github.com":{selector:"main ".concat(DEFAULT_SELECTOR),keepSelector:DEFAULT_KEEP_SELECTOR},"doc.rust-lang.org":{selector:".content ".concat(DEFAULT_SELECTOR),keepSelector:DEFAULT_KEEP_SELECTOR},"www.indiehackers.com":{selector:"h1, h3, .content ".concat(DEFAULT_SELECTOR,", .feed-item__title-link")},"platform.openai.com/docs":{selector:".docs-body ".concat(DEFAULT_SELECTOR),keepSelector:DEFAULT_KEEP_SELECTOR},"en.wikipedia.org":{selector:"h1, .mw-parser-output ".concat(DEFAULT_SELECTOR),keepSelector:".mwe-math-element"},"stackoverflow.com, serverfault.com, superuser.com, stackexchange.com, askubuntu.com, stackapps.com, mathoverflow.net":{selector:".s-prose ".concat(DEFAULT_SELECTOR,", .comment-copy, .question-hyperlink, .s-post-summary--content-title, .s-post-summary--content-excerpt"),keepSelector:"".concat(DEFAULT_KEEP_SELECTOR,", .math-container")},"www.npmjs.com/package, developer.chrome.com/docs, medium.com, react.dev, create-react-app.dev, pytorch.org":{selector:"article ".concat(DEFAULT_SELECTOR)},"news.ycombinator.com":{selector:".title, p",fixerSelector:".toptext, .commtext",fixerFunc:FIXER_BR},"github.com":{selector:".markdown-body ".concat(DEFAULT_SELECTOR,", .repo-description p, .Layout-sidebar .f4, .container-lg .py-4 .f5, .container-lg .my-4 .f5, .Box-row .pr-4, .Box-row article .mt-1, [itemprop=\"description\"], .markdown-title, bdi, .ws-pre-wrap, .status-meta, span.status-meta, .col-10.color-fg-muted, .TimelineItem-body, .pinned-item-list-item-content .color-fg-muted, .markdown-body td, .markdown-body th"),keepSelector:DEFAULT_KEEP_SELECTOR},"twitter.com":{selector:"[data-testid=\"tweetText\"], [data-testid=\"birdwatch-pivot\"]>div.css-1rynq56",keepSelector:"img, a, .r-18u37iz, .css-175oi2r"},"m.youtube.com":{selector:".slim-video-information-title .yt-core-attributed-string, .media-item-headline .yt-core-attributed-string, .comment-text .yt-core-attributed-string, .typography-body-2b .yt-core-attributed-string, #ytp-caption-window-container .ytp-caption-segment",selectStyle:"-webkit-line-clamp: unset; max-height: none; height: auto;",parentStyle:"-webkit-line-clamp: unset; max-height: none; height: auto;",keepSelector:"img, #content-text>a"},"www.youtube.com":{selector:"h1, #video-title, #content-text, #title, yt-attributed-string>span>span, #ytp-caption-window-container .ytp-caption-segment",selectStyle:"-webkit-line-clamp: unset; max-height: none; height: auto;",parentStyle:"-webkit-line-clamp: unset; max-height: none; height: auto;",keepSelector:"img, #content-text>a"},"bard.google.com":{selector:".query-content ".concat(DEFAULT_SELECTOR,", message-content ").concat(DEFAULT_SELECTOR)},"www.bing.com, copilot.microsoft.com":{selector:".b_algoSlug, .rwrl_padref; .cib-serp-main >>> .ac-textBlock ".concat(DEFAULT_SELECTOR,", .text-message-content div")},"www.phoronix.com":{selector:"article ".concat(DEFAULT_SELECTOR),fixerSelector:".content",fixerFunc:FIXER_BR},"wx2.qq.com":{selector:".js_message_plain"},"app.slack.com/client/":{selector:".p-rich_text_section, .c-message_attachment__text, .p-rich_text_list li"},"discord.com/channels/":{selector:"div[class^=message], div[class^=headerText], div[class^=name_], section[aria-label='Search Results'] div[id^=message-content], div[id^=message]",keepSelector:"li[class^='card'] div[class^='message'], [class^='embedFieldValue'], [data-list-item-id^='forum-channel-list'] div[class^='headerText']"},"t.me/s/":{selector:".js-message_text ".concat(DEFAULT_SELECTOR),fixerSelector:".tgme_widget_message_text",fixerFunc:FIXER_BR},"web.telegram.org/k":{selector:"div.kiss-p",keepSelector:"div[class^=time], .peer-title, .document-wrapper, .message.spoilers-container custom-emoji-element, reactions-element",fixerSelector:".message",fixerFunc:FIXER_BN_DIV},"web.telegram.org/a":{selector:".text-content > .kiss-p",keepSelector:".Reactions, .time, .peer-title, .document-wrapper, .message.spoilers-container custom-emoji-element",fixerSelector:".text-content",fixerFunc:FIXER_BR_DIV},"www.instagram.com/":{selector:"h1, article span[dir=auto] > span[dir=auto], ._ab1y"},"www.instagram.com/p/,www.instagram.com/reels/":{selector:"h1, div[class='x9f619 xjbqb8w x78zum5 x168nmei x13lgxp2 x5pf9jr xo71vjh x1uhb9sk x1plvlek xryxfnj x1c4vz4f x2lah0s xdt5ytf xqjyukv x1cy8zhl x1oa3qoh x1nhvcw1'] > span[class='x1lliihq x1plvlek xryxfnj x1n2onr6 x193iq5w xeuugli x1fj9vlw x13faqbe x1vvkbs x1s928wv xhkezso x1gmr53x x1cpjm7i x1fgarty x1943h6x x1i0vuye xvs91rp xo1l8bm x5n08af x10wh9bi x1wdrske x8viiok x18hxmgj'], span[class='x193iq5w xeuugli x1fj9vlw x13faqbe x1vvkbs xt0psk2 x1i0vuye xvs91rp xo1l8bm x5n08af x10wh9bi x1wdrske x8viiok x18hxmgj']"},"mail.google.com":{selector:".a3s.aiL ".concat(DEFAULT_SELECTOR,", span[data-thread-id]"),fixerSelector:".a3s.aiL",fixerFunc:FIXER_BR},"web.whatsapp.com":{selector:".copyable-text > span"},"chat.openai.com":{selector:"div[data-message-author-role] > div ".concat(DEFAULT_SELECTOR),fixerSelector:"div[data-message-author-role='user'] > div",fixerFunc:FIXER_BN},"forum.ru-board.com":{selector:".tit, .dats, .kiss-p, .lgf ".concat(DEFAULT_SELECTOR),fixerSelector:"span.post",fixerFunc:FIXER_BR},"education.github.com":{selector:"".concat(DEFAULT_SELECTOR,", a, summary, span.Button-content")},"blogs.windows.com":{selector:"".concat(DEFAULT_SELECTOR,", .c-uhf-nav-link, figcaption"),fixerSelector:".t-content>div>ul>li",fixerFunc:FIXER_BR},"developer.apple.com/documentation/":{selector:"#main ".concat(DEFAULT_SELECTOR,", #main .abstract .content, #main .abstract.content, #main .link span"),keepSelector:DEFAULT_KEEP_SELECTOR},"greasyfork.org":{selector:"h2, .script-link, .script-description, #additional-info ".concat(DEFAULT_SELECTOR)},"www.fmkorea.com":{selector:"#container ".concat(DEFAULT_SELECTOR)},"forum.arduino.cc":{selector:".top-row>.title, .featured-topic>.title, .link-top-line>.title, .category-description, .topic-excerpt, .fancy-title, .cooked ".concat(DEFAULT_SELECTOR)},"docs.arduino.cc":{selector:"[class^=\"tutorial-module--left\"] ".concat(DEFAULT_SELECTOR)},"www.historydefined.net":{selector:".wp-element-caption, ".concat(DEFAULT_SELECTOR)},"gobyexample.com":{selector:".docs p",keepSelector:"code"},"go.dev/tour":{selector:"#left-side ".concat(DEFAULT_SELECTOR),keepSelector:"code, img, svg >>> code"},"pkg.go.dev":{selector:".Documentation-content ".concat(DEFAULT_SELECTOR),keepSelector:"".concat(DEFAULT_KEEP_SELECTOR,", a, span")},"docs.rs":{selector:".docblock ".concat(DEFAULT_SELECTOR,", .docblock-short"),keepSelector:"code >>> code"},"randomnerdtutorials.com":{selector:"article ".concat(DEFAULT_SELECTOR)},"notebooks.githubusercontent.com/view/ipynb":{selector:"#notebook-container ".concat(DEFAULT_SELECTOR),keepSelector:DEFAULT_KEEP_SELECTOR},"developers.cloudflare.com":{selector:"article ".concat(DEFAULT_SELECTOR,", .WorkerStarter--description"),keepSelector:"a[rel='noopener'], code"},"ubuntuforums.org":{fixerSelector:".postcontent",fixerFunc:FIXER_BR},"play.google.com/store/apps/details":{fixerSelector:"[data-g-id=\"description\"]",fixerFunc:FIXER_BR},"news.yahoo.co.jp/articles/":{fixerSelector:".sc-cTsKDU",fixerFunc:FIXER_BN},"chromereleases.googleblog.com":{fixerSelector:".post-content, .post-content > span, li > span",fixerFunc:FIXER_BR}};const rules_BUILTIN_RULES=Object.entries(RULES_MAP).sort((a,b)=>a[0].localeCompare(b[0])).map(_ref=>{let[pattern,rule]=_ref;return{...DEFAULT_RULE,...rule,pattern};});
;// CONCATENATED MODULE: ./src/config/app.js
const APP_NAME="KISS Translator".trim().split(/\s+/).join("-");const APP_LCNAME=APP_NAME.toLowerCase();
;// CONCATENATED MODULE: ./src/config/i18n.js
const UI_LANGS=(/* unused pure expression or super */ null && ([["en","English"],["zh","中文"]]));const customApiLangs="[\"en\", \"English - English\"],\n[\"zh-CN\", \"Simplified Chinese - \u7B80\u4F53\u4E2D\u6587\"],\n[\"zh-TW\", \"Traditional Chinese - \u7E41\u9AD4\u4E2D\u6587\"],\n[\"ar\", \"Arabic - \u0627\u0644\u0639\u0631\u0628\u064A\u0629\"],\n[\"bg\", \"Bulgarian - \u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438\"],\n[\"ca\", \"Catalan - Catal\xE0\"],\n[\"hr\", \"Croatian - Hrvatski\"],\n[\"cs\", \"Czech - \u010Ce\u0161tina\"],\n[\"da\", \"Danish - Dansk\"],\n[\"nl\", \"Dutch - Nederlands\"],\n[\"fi\", \"Finnish - Suomi\"],\n[\"fr\", \"French - Fran\xE7ais\"],\n[\"de\", \"German - Deutsch\"],\n[\"el\", \"Greek - \u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC\"],\n[\"hi\", \"Hindi - \u0939\u093F\u0928\u094D\u0926\u0940\"],\n[\"hu\", \"Hungarian - Magyar\"],\n[\"id\", \"Indonesian - Indonesia\"],\n[\"it\", \"Italian - Italiano\"],\n[\"ja\", \"Japanese - \u65E5\u672C\u8A9E\"],\n[\"ko\", \"Korean - \uD55C\uAD6D\uC5B4\"],\n[\"ms\", \"Malay - Melayu\"],\n[\"mt\", \"Maltese - Malti\"],\n[\"nb\", \"Norwegian - Norsk Bokm\xE5l\"],\n[\"pl\", \"Polish - Polski\"],\n[\"pt\", \"Portuguese - Portugu\xEAs\"],\n[\"ro\", \"Romanian - Rom\xE2n\u0103\"],\n[\"ru\", \"Russian - \u0420\u0443\u0441\u0441\u043A\u0438\u0439\"],\n[\"sk\", \"Slovak - Sloven\u010Dina\"],\n[\"sl\", \"Slovenian - Sloven\u0161\u010Dina\"],\n[\"es\", \"Spanish - Espa\xF1ol\"],\n[\"sv\", \"Swedish - Svenska\"],\n[\"ta\", \"Tamil - \u0BA4\u0BAE\u0BBF\u0BB4\u0BCD\"],\n[\"te\", \"Telugu - \u0C24\u0C46\u0C32\u0C41\u0C17\u0C41\"],\n[\"th\", \"Thai - \u0E44\u0E17\u0E22\"],\n[\"tr\", \"Turkish - T\xFCrk\xE7e\"],\n[\"uk\", \"Ukrainian - \u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430\"],\n[\"vi\", \"Vietnamese - Ti\u1EBFng Vi\u1EC7t\"],\n";const hookExample="// URL\nhttps://translate.googleapis.com/translate_a/single?client=gtx&dj=1&dt=t&ie=UTF-8&q={{text}}&sl=en&tl=zh-CN\n\n// Request Hook\n(text, from, to, url, key) => [url, {\n  headers: {\n      \"Content-type\": \"application/json\",\n  },\n  method: \"GET\",\n  body: null,\n}]\n\n// Response Hook\n(res, text, from, to) => [res.sentences.map((item) => item.trans).join(\" \"), to === res.src]";const customApiHelpZH="// \u8BF7\u6C42\u6570\u636E\u9ED8\u8BA4\u683C\u5F0F\n{\n  \"url\": \"{{url}}\",\n  \"method\": \"POST\",\n  \"headers\": {\n    \"Content-type\": \"application/json\",\n    \"Authorization\": \"Bearer {{key}}\"\n  },\n  \"body\": {\n    \"text\": \"{{text}}\", // \u5F85\u7FFB\u8BD1\u6587\u5B57\n    \"from\": \"{{from}}\", // \u6587\u5B57\u7684\u8BED\u8A00\uFF08\u53EF\u80FD\u4E3A\u7A7A\uFF09\n    \"to\": \"{{to}}\",     // \u76EE\u6807\u8BED\u8A00\n  },\n}\n\n\n// \u8FD4\u56DE\u6570\u636E\u9ED8\u8BA4\u683C\u5F0F\n{\n  text: \"\", // \u7FFB\u8BD1\u540E\u7684\u6587\u5B57\n  from: \"\", // \u8BC6\u522B\u7684\u6E90\u8BED\u8A00\n  to: \"\",   // \u76EE\u6807\u8BED\u8A00\uFF08\u53EF\u9009\uFF09\n}\n\n\n// Hook \u8303\u4F8B\n".concat(hookExample,"\n\n\n// \u652F\u6301\u7684\u8BED\u8A00\u4EE3\u7801\u5982\u4E0B\n").concat(customApiLangs,"\n");const customApiHelpEN="// Default request\n{\n  \"url\": \"{{url}}\",\n  \"method\": \"POST\",\n  \"headers\": {\n    \"Content-type\": \"application/json\",\n    \"Authorization\": \"Bearer {{key}}\"\n  },\n  \"body\": {\n    \"text\": \"{{text}}\", // Text to be translated\n    \"from\": \"{{from}}\", // The language of the text (may be empty)\n    \"to\": \"{{to}}\",     // Target language\n  },\n}\n\n\n// Default response\n{\n  text: \"\", // translated text\n  from: \"\", // Recognized source language\n  to: \"\",   // Target language (optional)\n}\n\n\n/// Hook Example\n".concat(hookExample,"\n\n\n// The supported language codes are as follows\n").concat(customApiLangs,"\n");const I18N={app_name:{zh:"\u7B80\u7EA6\u7FFB\u8BD1",en:"KISS Translator"},translate:{zh:"\u7FFB\u8BD1",en:"Translate"},custom_api_help:{zh:customApiHelpZH,en:customApiHelpEN},translate_alt:{zh:"\u7FFB\u8BD1",en:"Translate"},basic_setting:{zh:"\u57FA\u672C\u8BBE\u7F6E",en:"Basic Setting"},rules_setting:{zh:"\u89C4\u5219\u8BBE\u7F6E",en:"Rules Setting"},apis_setting:{zh:"\u63A5\u53E3\u8BBE\u7F6E",en:"Apis Setting"},sync_setting:{zh:"\u540C\u6B65\u8BBE\u7F6E",en:"Sync Setting"},patch_setting:{zh:"\u8865\u4E01\u8BBE\u7F6E",en:"Patch Setting"},patch_setting_help:{zh:"\u9488\u5BF9\u4E00\u4E9B\u7279\u6B8A\u7F51\u7AD9\u7684\u4FEE\u6B63\u811A\u672C\uFF0C\u4EE5\u4FBF\u7FFB\u8BD1\u8F6F\u4EF6\u5F97\u5230\u66F4\u597D\u7684\u5C55\u793A\u6548\u679C\u3002",en:"Corrected scripts for some special websites so that the translation software can get better display results."},inject_webfix:{zh:"\u6CE8\u5165\u4FEE\u590D\u8865\u4E01",en:"Inject Webfix"},about:{zh:"\u5173\u4E8E",en:"About"},about_md:{zh:"README.md",en:"README.en.md"},about_md_local:{zh:"\u8BF7 [\u70B9\u51FB\u8FD9\u91CC](".concat("https://github.com/fishjar/kiss-translator",") \u67E5\u770B\u8BE6\u60C5\u3002"),en:"Please [click here](".concat("https://github.com/fishjar/kiss-translator",") for details.")},ui_lang:{zh:"\u754C\u9762\u8BED\u8A00",en:"Interface Language"},fetch_limit:{zh:"\u6700\u5927\u5E76\u53D1\u8BF7\u6C42\u6570\u91CF (1-100)",en:"Maximum Number Of Concurrent Requests (1-100)"},fetch_interval:{zh:"\u6BCF\u6B21\u8BF7\u6C42\u95F4\u9694\u65F6\u95F4 (0-5000ms)",en:"Time Between Requests (0-5000ms)"},translate_interval:{zh:"\u91CD\u65B0\u7FFB\u8BD1\u95F4\u9694\u65F6\u95F4 (100-5000ms)",en:"Retranslation Interval (100-5000ms)"},min_translate_length:{zh:"\u6700\u5C0F\u7FFB\u8BD1\u5B57\u7B26\u6570 (1-100)",en:"Minimum number Of Translated Characters (1-100)"},max_translate_length:{zh:"\u6700\u5927\u7FFB\u8BD1\u5B57\u7B26\u6570 (100-10000)",en:"Maximum number Of Translated Characters (100-10000)"},num_of_newline_characters:{zh:"\u6362\u884C\u5B57\u7B26\u6570 (1-1000)",en:"Number of Newline Characters (1-1000)"},translate_service:{zh:"\u7FFB\u8BD1\u670D\u52A1",en:"Translate Service"},translate_timing:{zh:"\u7FFB\u8BD1\u65F6\u673A",en:"Translate Timing"},mk_pagescroll:{zh:"\u6EDA\u52A8\u52A0\u8F7D\u7FFB\u8BD1\uFF08\u63A8\u8350\uFF09",en:"Rolling Loading (Suggested)"},mk_pageopen:{zh:"\u9875\u9762\u6253\u5F00\u5168\u90E8\u7FFB\u8BD1",en:"Page Open"},mk_mouseover:{zh:"\u9F20\u6807\u60AC\u505C\u7FFB\u8BD1",en:"Mouseover"},mk_ctrlKey:{zh:"Control + \u9F20\u6807\u60AC\u505C",en:"Control + Mouseover"},mk_shiftKey:{zh:"Shift + \u9F20\u6807\u60AC\u505C",en:"Shift + Mouseover"},mk_altKey:{zh:"Alt + \u9F20\u6807\u60AC\u505C",en:"Alt + Mouseover"},from_lang:{zh:"\u539F\u6587\u8BED\u8A00",en:"Source Language"},to_lang:{zh:"\u76EE\u6807\u8BED\u8A00",en:"Target Language"},to_lang2:{zh:"\u7B2C\u4E8C\u76EE\u6807\u8BED\u8A00",en:"Target Language 2"},to_lang2_helper:{zh:"\u8BBE\u5B9A\u540E\uFF0C\u4E0E\u76EE\u6807\u8BED\u8A00\u4EA7\u751F\u4E92\u8BD1\u6548\u679C\uFF0C\u4F46\u4F9D\u8D56\u8FDC\u7A0B\u8BED\u8A00\u8BC6\u522B\u3002",en:"After setting, it will produce mutual translation effect with the target language, but it relies on remote language recognition."},text_style:{zh:"\u8BD1\u6587\u6837\u5F0F",en:"Text Style"},text_style_alt:{zh:"\u8BD1\u6587\u6837\u5F0F",en:"Text Style"},bg_color:{zh:"\u6837\u5F0F\u989C\u8272",en:"Style Color"},remain_unchanged:{zh:"\u4FDD\u7559\u4E0D\u53D8",en:"Remain Unchanged"},google_api:{zh:"\u8C37\u6B4C\u7FFB\u8BD1\u63A5\u53E3",en:"Google Translate API"},default_selector:{zh:"\u9ED8\u8BA4\u9009\u62E9\u5668",en:"Default selector"},selector_rules:{zh:"\u9009\u62E9\u5668\u89C4\u5219",en:"Selector Rules"},save:{zh:"\u4FDD\u5B58",en:"Save"},edit:{zh:"\u7F16\u8F91",en:"Edit"},cancel:{zh:"\u53D6\u6D88",en:"Cancel"},delete:{zh:"\u5220\u9664",en:"Delete"},reset:{zh:"\u91CD\u7F6E",en:"Reset"},add:{zh:"\u6DFB\u52A0",en:"Add"},inject_rules:{zh:"\u6CE8\u5165\u8BA2\u9605\u89C4\u5219",en:"Inject Subscribe Rules"},personal_rules:{zh:"\u4E2A\u4EBA\u89C4\u5219",en:"Rules"},subscribe_rules:{zh:"\u8BA2\u9605\u89C4\u5219",en:"Subscribe"},overwrite_subscribe_rules:{zh:"\u8986\u5199\u8BA2\u9605\u89C4\u5219",en:"Overwrite"},subscribe_url:{zh:"\u8BA2\u9605\u5730\u5740",en:"Subscribe URL"},rules_warn_1:{zh:"1\u3001\u201C\u4E2A\u4EBA\u89C4\u5219\u201D\u4E00\u76F4\u751F\u6548\uFF0C\u9009\u62E9\u201C\u6CE8\u5165\u8BA2\u9605\u89C4\u5219\u201D\u540E\uFF0C\u201C\u8BA2\u9605\u89C4\u5219\u201D\u624D\u4F1A\u751F\u6548\u3002",en:"1. The \"Personal Rules\" are always in effect. After selecting \"Inject Subscription Rules\", the \"Subscription Rules\" will take effect."},rules_warn_2:{zh:"2\u3001\u201C\u8BA2\u9605\u89C4\u5219\u201D\u7684\u6CE8\u5165\u4F4D\u7F6E\u662F\u5012\u6570\u7B2C\u4E8C\u7684\u4F4D\u7F6E\uFF0C\u56E0\u6B64\u9664\u5168\u5C40\u89C4\u5219(*)\u5916\uFF0C\u201C\u4E2A\u4EBA\u89C4\u5219\u201D\u4F18\u5148\u7EA7\u6BD4\u201C\u8BA2\u9605\u89C4\u5219\u201D\u9AD8\uFF0C\u201C\u4E2A\u4EBA\u89C4\u5219\u201D\u586B\u5199\u540C\u6837\u7684\u7F51\u5740\u4F1A\u8986\u76D6\u201D\u8BA2\u9605\u89C4\u5219\u201C\u7684\u6761\u76EE\u3002",en:"2. The injection position of \"Subscription Rules\" is the penultimate position. Therefore, except for the global rules (*), the priority of \"Personal Rules\" is higher than that of \"Subscription Rules\". Filling in the same url in \"Personal Rules\" will overwrite \"Subscription Rules\" entry."},rules_warn_3:{zh:"3\u3001\u5173\u4E8E\u89C4\u5219\u586B\u5199\uFF1A\u8F93\u5165\u6846\u7559\u7A7A\u6216\u4E0B\u62C9\u6846\u9009\u201C*\u201D\u8868\u793A\u91C7\u7528\u5168\u5C40\u89C4\u5219\u3002",en:"3. Regarding filling in the rules: Leave the input box blank or select \"*\" in the drop-down box to use global rule."},sync_warn:{zh:"\u5982\u679C\u670D\u52A1\u5668\u5B58\u5728\u5176\u4ED6\u5BA2\u6237\u7AEF\u540C\u6B65\u7684\u6570\u636E\uFF0C\u7B2C\u4E00\u6B21\u540C\u6B65\u5C06\u76F4\u63A5\u8986\u76D6\u672C\u5730\u914D\u7F6E\uFF0C\u540E\u9762\u5219\u6839\u636E\u4FEE\u6539\u65F6\u95F4\uFF0C\u65B0\u7684\u8986\u76D6\u65E7\u7684\u3002",en:"If the server has data synchronized by other clients, the first synchronization will directly overwrite the local configuration, and later, according to the modification time, the new one will overwrite the old one."},about_sync_api:{zh:"\u67E5\u770B\u5173\u4E8E\u6570\u636E\u540C\u6B65\u63A5\u53E3\u90E8\u7F72",en:"View About Data Synchronization Interface Deployment"},about_api_proxy:{zh:"\u67E5\u770B\u81EA\u5EFA\u4E00\u4E2A\u7FFB\u8BD1\u63A5\u53E3\u4EE3\u7406",en:"Check out the self-built translation interface proxy"},style_none:{zh:"\u65E0",en:"None"},under_line:{zh:"\u4E0B\u5212\u76F4\u7EBF",en:"Underline"},dot_line:{zh:"\u4E0B\u5212\u70B9\u72B6\u7EBF",en:"Dotted Underline"},dash_line:{zh:"\u4E0B\u5212\u865A\u7EBF",en:"Dashed Underline"},wavy_line:{zh:"\u4E0B\u5212\u6CE2\u6D6A\u7EBF",en:"Wavy Underline"},fuzzy:{zh:"\u6A21\u7CCA",en:"Fuzzy"},highlight:{zh:"\u9AD8\u4EAE",en:"Highlight"},blockquote:{zh:"\u5F15\u7528",en:"Blockquote"},diy_style:{zh:"\u81EA\u5B9A\u4E49\u6837\u5F0F",en:"Custom Style"},diy_style_helper:{zh:"\u9075\u5FAA\u201CCSS\u201D\u7684\u8BED\u6CD5",en:"Follow the syntax of \"CSS\""},setting:{zh:"\u8BBE\u7F6E",en:"Setting"},pattern:{zh:"\u5339\u914D\u7F51\u5740",en:"URL pattern"},pattern_helper:{zh:"1\u3001\u652F\u6301\u661F\u53F7(*)\u901A\u914D\u7B26\u30022\u3001\u591A\u4E2AURL\u7528\u6362\u884C\u6216\u82F1\u6587\u9017\u53F7\u201C,\u201D\u5206\u9694\u3002",en:"1. Supports the asterisk (*) wildcard character. 2. Separate multiple URLs with newlines or English commas \",\"."},selector_helper:{zh:"1\u3001\u9075\u5FAACSS\u9009\u62E9\u5668\u8BED\u6CD5\u30022\u3001\u591A\u4E2ACSS\u9009\u62E9\u5668\u4E4B\u95F4\u7528\u201C;\u201D\u9694\u5F00\u30023\u3001\u201Cshadow root\u201D\u9009\u62E9\u5668\u548C\u5185\u90E8\u9009\u62E9\u5668\u7528\u201C>>>\u201D\u9694\u5F00\u3002",en:"1. Follow CSS selector syntax. 2. Separate multiple CSS selectors with \";\". 3. The \"shadow root\" selector and the internal selector are separated by \">>>\"."},translate_switch:{zh:"\u5F00\u542F\u7FFB\u8BD1",en:"Translate Switch"},default_enabled:{zh:"\u9ED8\u8BA4\u5F00\u542F",en:"Enabled"},default_disabled:{zh:"\u9ED8\u8BA4\u5173\u95ED",en:"Disabled"},selector:{zh:"\u9009\u62E9\u5668",en:"Selector"},keep_selector:{zh:"\u4FDD\u7559\u5143\u7D20\u9009\u62E9\u5668",en:"Keep unchanged selector"},keep_selector_helper:{zh:"1\u3001\u9075\u5FAACSS\u9009\u62E9\u5668\u8BED\u6CD5\u30022\u3001\u5B50\u5143\u7D20\u9009\u62E9\u5668\u7528\u201C>>>\u201D\u9694\u5F00\u3002",en:"1. Follow CSS selector syntax. 2. Sub-element selectors are separated by \">>>\"."},terms:{zh:"\u4E13\u4E1A\u672F\u8BED",en:"Terms"},terms_helper:{zh:"1\u3001\u652F\u6301\u6B63\u5219\u8868\u8FBE\u5F0F\u5339\u914D\uFF0C\u65E0\u9700\u659C\u6746\uFF0C\u4E0D\u652F\u6301\u4FEE\u9970\u7B26\u30022\u3001\u591A\u6761\u672F\u8BED\u7528\u6362\u884C\u6216\u5206\u53F7\u201C;\u201D\u9694\u5F00\u30023\u3001\u672F\u8BED\u548C\u8BD1\u6587\u7528\u82F1\u6587\u9017\u53F7\u201C,\u201D\u9694\u5F00\u30024\u3001\u6CA1\u6709\u8BD1\u6587\u89C6\u4E3A\u4E0D\u7FFB\u8BD1\u672F\u8BED\u3002",en:"1. Supports regular expression matching, no slash required, and no modifiers are supported. 2. Separate multiple terms with newlines or semicolons \";\". 3. Terms and translations are separated by English commas \",\". 4. If there is no translation, the term will be deemed not to be translated."},selector_style:{zh:"\u9009\u62E9\u5668\u8282\u70B9\u6837\u5F0F",en:"Selector Style"},selector_style_helper:{zh:"\u5F00\u542F\u7FFB\u8BD1\u65F6\u6CE8\u5165\uFF0C\u5173\u95ED\u7FFB\u8BD1\u65F6\u4E0D\u4F1A\u79FB\u9664\u3002",en:"It is injected when translation is turned on and will not be removed when translation is turned off."},selector_parent_style:{zh:"\u9009\u62E9\u5668\u7236\u8282\u70B9\u6837\u5F0F",en:"Selector Parent Style"},inject_js:{zh:"\u6CE8\u5165JS",en:"Inject JS"},inject_js_helper:{zh:"1\u3001\u5F00\u542F\u7FFB\u8BD1\u65F6\u6CE8\u5165\u8FD0\u884C\uFF0C\u5173\u95ED\u7FFB\u8BD1\u65F6\u79FB\u9664\u30022\u3001\u968F\u7740\u9875\u9762\u53D8\u5316\uFF0C\u53EF\u80FD\u4F1A\u591A\u6B21\u6CE8\u5165\u8FD0\u884C\u3002",en:"1. Inject and run when translation is turned on, and removed when translation is turned off. 2. As the page changes, it may be injected and run multiple times."},inject_css:{zh:"\u6CE8\u5165CSS",en:"Inject CSS"},inject_css_helper:{zh:"\u5F00\u542F\u7FFB\u8BD1\u65F6\u6CE8\u5165\uFF0C\u5173\u95ED\u7FFB\u8BD1\u65F6\u5C06\u79FB\u9664\u3002",en:"Injected when translation is enabled and removed when translation is disabled."},root_selector:{zh:"\u6839\u9009\u62E9\u5668",en:"Root Selector"},fixer_function:{zh:"\u4FEE\u590D\u51FD\u6570",en:"Fixer Function"},fixer_function_helper:{zh:"1\u3001br\u662F\u5C06<br>\u6362\u884C\u66FF\u6362\u6210<p \"kiss-p\">\u30022\u3001bn\u662F\u5C06\\n\u6362\u884C\u66FF\u6362\u6210<p \"kiss-p\">\u30023\u3001brToDiv\u548CbnToDiv\u662F\u66FF\u6362\u6210<div class=\"kiss-p\">\u3002",en:"1. br replaces <br> line breaks with <p \"kiss-p\">. 2. bn replaces \\n newline with <p \"kiss-p\">. 3. brToDiv and bnToDiv are replaced with <div class=\"kiss-p\">."},import:{zh:"\u5BFC\u5165",en:"Import"},export:{zh:"\u5BFC\u51FA",en:"Export"},export_translation:{zh:"\u5BFC\u51FA\u91CA\u4E49",en:"Export Translation"},error_cant_be_blank:{zh:"\u4E0D\u80FD\u4E3A\u7A7A",en:"Can not be blank"},error_duplicate_values:{zh:"\u5B58\u5728\u91CD\u590D\u7684\u503C",en:"There are duplicate values"},error_wrong_file_type:{zh:"\u9519\u8BEF\u7684\u6587\u4EF6\u7C7B\u578B",en:"Wrong file type"},error_fetch_url:{zh:"\u8BF7\u68C0\u67E5url\u5730\u5740\u662F\u5426\u6B63\u786E\u6216\u7A0D\u540E\u518D\u8BD5\u3002",en:"Please check if the url address is correct or try again later."},deepl_api:{zh:"DeepL \u63A5\u53E3",en:"DeepL API"},deepl_key:{zh:"DeepL \u5BC6\u94A5",en:"DeepL Key"},openai_api:{zh:"OpenAI \u63A5\u53E3",en:"OpenAI API"},openai_key:{zh:"OpenAI \u5BC6\u94A5",en:"OpenAI Key"},openai_model:{zh:"OpenAI \u6A21\u578B",en:"OpenAI Model"},openai_prompt:{zh:"OpenAI \u63D0\u793A\u8BCD",en:"OpenAI Prompt"},if_clear_cache:{zh:"\u662F\u5426\u6E05\u9664\u7F13\u5B58",en:"Whether clear cache"},clear_cache_never:{zh:"\u4E0D\u6E05\u9664\u7F13\u5B58",en:"Never clear cache"},clear_cache_restart:{zh:"\u91CD\u542F\u6D4F\u89C8\u5668\u65F6\u6E05\u9664\u7F13\u5B58",en:"Clear cache when restarting browser"},data_sync_type:{zh:"\u6570\u636E\u540C\u6B65\u65B9\u5F0F",en:"Data Sync Type"},data_sync_url:{zh:"\u6570\u636E\u540C\u6B65\u63A5\u53E3",en:"Data Sync API"},data_sync_user:{zh:"\u6570\u636E\u540C\u6B65\u8D26\u6237",en:"Data Sync User"},data_sync_key:{zh:"\u6570\u636E\u540C\u6B65\u5BC6\u94A5",en:"Data Sync Key"},sync_now:{zh:"\u7ACB\u5373\u540C\u6B65",en:"Sync Now"},sync_success:{zh:"\u540C\u6B65\u6210\u529F\uFF01",en:"Sync Success"},sync_failed:{zh:"\u540C\u6B65\u5931\u8D25\uFF01",en:"Sync Error"},error_got_some_wrong:{zh:"\u62B1\u6B49\uFF0C\u51FA\u9519\u4E86\uFF01",en:"Sorry, something went wrong!"},error_sync_setting:{zh:"\u60A8\u7684\u540C\u6B65\u7C7B\u578B\u5FC5\u987B\u4E3A\u201CKISS-Worker\u201D\uFF0C\u4E14\u9700\u586B\u5199\u5B8C\u6574",en:"Your sync type must be \"KISS-Worker\" and must be filled in completely"},click_test:{zh:"\u70B9\u51FB\u6D4B\u8BD5",en:"Click Test"},test_success:{zh:"\u6D4B\u8BD5\u6210\u529F",en:"Test success"},test_failed:{zh:"\u6D4B\u8BD5\u5931\u8D25",en:"Test failed"},clear_all_cache_now:{zh:"\u7ACB\u5373\u6E05\u9664\u5168\u90E8\u7F13\u5B58",en:"Clear all cache now"},clear_cache:{zh:"\u6E05\u9664\u7F13\u5B58",en:"Clear Cache"},clear_success:{zh:"\u6E05\u9664\u6210\u529F",en:"Clear success"},clear_failed:{zh:"\u6E05\u9664\u5931\u8D25",en:"Clear failed"},share:{zh:"\u5206\u4EAB",en:"Share"},clear_all:{zh:"\u6E05\u7A7A",en:"Clear All"},help:{zh:"\u6C42\u52A9",en:"Help"},restore_default:{zh:"\u6062\u590D\u9ED8\u8BA4",en:"Restore Default"},shortcuts_setting:{zh:"\u5FEB\u6377\u952E\u8BBE\u7F6E",en:"Shortcuts Setting"},toggle_translate_shortcut:{zh:"\"\u5F00\u542F\u7FFB\u8BD1\"\u5FEB\u6377\u952E",en:"\"Toggle Translate\" Shortcut"},toggle_style_shortcut:{zh:"\"\u5207\u6362\u6837\u5F0F\"\u5FEB\u6377\u952E",en:"\"Toggle Style\" Shortcut"},toggle_popup_shortcut:{zh:"\"\u6253\u5F00\u5F39\u7A97\"\u5FEB\u6377\u952E",en:"\"Open Popup\" Shortcut"},open_setting_shortcut:{zh:"\"\u6253\u5F00\u8BBE\u7F6E\"\u5FEB\u6377\u952E",en:"\"Open Setting\" Shortcut"},hide_fab_button:{zh:"\u9690\u85CF\u60AC\u6D6E\u6309\u94AE",en:"Hide Fab Button"},hide_tran_button:{zh:"\u9690\u85CF\u7FFB\u8BD1\u6309\u94AE",en:"Hide Translate Button"},hide_click_away:{zh:"\u70B9\u51FB\u5916\u90E8\u5173\u95ED\u5F39\u7A97",en:"Click outside to close the pop-up window"},use_simple_style:{zh:"\u4F7F\u7528\u7B80\u6D01\u754C\u9762",en:"Use a simple interface"},show:{zh:"\u663E\u793A",en:"Show"},hide:{zh:"\u9690\u85CF",en:"Hide"},save_rule:{zh:"\u4FDD\u5B58\u89C4\u5219",en:"Save Rule"},global_rule:{zh:"\u5168\u5C40\u89C4\u5219",en:"Global Rule"},input_translate:{zh:"\u8F93\u5165\u6846\u7FFB\u8BD1",en:"Input Box Translation"},use_input_box_translation:{zh:"\u542F\u7528\u8F93\u5165\u6846\u7FFB\u8BD1",en:"Input Box Translation"},input_selector:{zh:"\u8F93\u5165\u6846\u9009\u62E9\u5668",en:"Input Selector"},input_selector_helper:{zh:"\u7528\u4E8E\u8F93\u5165\u6846\u7FFB\u8BD1\u3002",en:"Used for input box translation."},trigger_trans_shortcut:{zh:"\u89E6\u53D1\u7FFB\u8BD1\u5FEB\u6377\u952E",en:"Trigger Translation Shortcut Keys"},trigger_trans_shortcut_help:{zh:"\u9ED8\u8BA4\u4E3A\u5355\u51FB\u201CAltLeft+KeyI\u201D",en:"Default is \"AltLeft+KeyI\""},shortcut_press_count:{zh:"\u5FEB\u6377\u952E\u8FDE\u51FB\u6B21\u6570",en:"Shortcut Press Number"},combo_timeout:{zh:"\u8FDE\u51FB\u8D85\u65F6\u65F6\u95F4 (10-1000ms)",en:"Combo Timeout (10-1000ms)"},input_trans_start_sign:{zh:"\u7FFB\u8BD1\u8D77\u59CB\u6807\u8BC6",en:"Translation Start Sign"},input_trans_start_sign_help:{zh:"\u6807\u8BC6\u540E\u9762\u53EF\u4EE5\u52A0\u76EE\u6807\u8BED\u8A00\u4EE3\u7801\uFF0C\u5982\uFF1A \u201C/en \u4F60\u597D\u201D\u3001\u201C/zh hello\u201D",en:"The target language code can be added after the sign, such as: \"/en \u4F60\u597D\", \"/zh hello\""},detect_lang_remote:{zh:"\u8FDC\u7A0B\u8BED\u8A00\u68C0\u6D4B",en:"Remote language detection"},detect_lang_remote_help:{zh:"\u542F\u7528\u540E\u68C0\u6D4B\u51C6\u786E\u5EA6\u589E\u52A0\uFF0C\u4F46\u4F1A\u964D\u4F4E\u7FFB\u8BD1\u901F\u5EA6\uFF0C\u8BF7\u914C\u60C5\u5F00\u542F",en:"After enabling, the detection accuracy will increase, but it will reduce the translation speed. Please enable it as appropriate."},disable:{zh:"\u7981\u7528",en:"Disable"},enable:{zh:"\u542F\u7528",en:"Enable"},selection_translate:{zh:"\u5212\u8BCD\u7FFB\u8BD1",en:"Selection Translate"},toggle_selection_translate:{zh:"\u542F\u7528\u5212\u8BCD\u7FFB\u8BD1",en:"Use Selection Translate"},trigger_tranbox_shortcut:{zh:"\u663E\u793A\u7FFB\u8BD1\u6846/\u7FFB\u8BD1\u9009\u4E2D\u6587\u5B57\u5FEB\u6377\u952E",en:"Open Translate Popup/Translate Selected Shortcut"},tranbtn_offset_x:{zh:"\u7FFB\u8BD1\u6309\u94AE\u504F\u79FBX\uFF08\xB1200\uFF09",en:"Translate Button Offset X (\xB1200)"},tranbtn_offset_y:{zh:"\u7FFB\u8BD1\u6309\u94AE\u504F\u79FBY\uFF08\xB1200\uFF09",en:"Translate Button Offset Y (\xB1200)"},tranbox_offset_x:{zh:"\u7FFB\u8BD1\u6846\u504F\u79FBX\uFF08\xB1200\uFF09",en:"Translate Box Offset X (\xB1200)"},tranbox_offset_y:{zh:"\u7FFB\u8BD1\u6846\u504F\u79FBY\uFF08\xB1200\uFF09",en:"Translate Box Offset Y (\xB1200)"},translated_text:{zh:"\u8BD1\u6587",en:"Translated Text"},original_text:{zh:"\u539F\u6587",en:"Original Text"},favorite_words:{zh:"\u6536\u85CF\u8BCD\u6C47",en:"Favorite Words"},touch_setting:{zh:"\u89E6\u5C4F\u8BBE\u7F6E",en:"Touch Setting"},touch_translate_shortcut:{zh:"\u89E6\u5C4F\u7FFB\u8BD1\u5FEB\u6377\u65B9\u5F0F",en:"Touch Translate Shortcut"},touch_tap_0:{zh:"\u7981\u7528",en:"Disable"},touch_tap_2:{zh:"\u53CC\u6307\u8F7B\u89E6",en:"Two finger tap"},touch_tap_3:{zh:"\u4E09\u6307\u8F7B\u89E6",en:"Three finger tap"},touch_tap_4:{zh:"\u56DB\u6307\u8F7B\u89E6",en:"Four finger tap"},translate_blacklist:{zh:"\u7981\u7528\u7FFB\u8BD1\u540D\u5355",en:"Translate Blacklist"},disabled_csplist:{zh:"\u7981\u7528CSP\u540D\u5355",en:"Disabled CSP List"},disabled_csplist_helper:{zh:"3\u3001\u901A\u8FC7\u8C03\u6574CSP\u7B56\u7565\uFF0C\u4F7F\u5F97\u67D0\u4E9B\u9875\u9762\u80FD\u591F\u6CE8\u5165JS/CSS/Media\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528\uFF0C\u9664\u975E\u60A8\u5DF2\u77E5\u6653\u76F8\u5173\u98CE\u9669\u3002",en:"3. By adjusting the CSP policy, some pages can inject JS/CSS/Media. Please use it with caution unless you are aware of the related risks."},skip_langs:{zh:"\u4E0D\u7FFB\u8BD1\u7684\u8BED\u8A00",en:"Disable Languages"},skip_langs_helper:{zh:"\u6B64\u529F\u80FD\u4F9D\u8D56\u51C6\u786E\u7684\u8BED\u8A00\u68C0\u6D4B\uFF0C\u5EFA\u8BAE\u542F\u7528\u8FDC\u7A0B\u8BED\u8A00\u68C0\u6D4B\u3002",en:"This feature relies on accurate language detection. It is recommended to enable remote language detection."},context_menus:{zh:"\u53F3\u952E\u83DC\u5355",en:"Context Menus"},hide_context_menus:{zh:"\u9690\u85CF\u53F3\u952E\u83DC\u5355",en:"Hide Context Menus"},simple_context_menus:{zh:"\u7B80\u5355\u53F3\u952E\u83DC\u5355",en:"Simple_context_menus Context Menus"},secondary_context_menus:{zh:"\u4E8C\u7EA7\u53F3\u952E\u83DC\u5355",en:"Secondary Context Menus"},mulkeys_help:{zh:"\u652F\u6301\u7528\u6362\u884C\u6216\u82F1\u6587\u9017\u53F7\u201C,\u201D\u5206\u9694\uFF0C\u8F6E\u8BE2\u8C03\u7528\u3002",en:"Supports polling calls separated by newlines or English commas \",\"."},translation_element_tag:{zh:"\u8BD1\u6587\u5143\u7D20\u6807\u7B7E",en:"Translation Element Tag"},show_only_translations:{zh:"\u4EC5\u663E\u793A\u8BD1\u6587",en:"Show Only Translations"},show_only_translations_help:{zh:"\u975E\u5B8C\u7F8E\u5B9E\u73B0\uFF0C\u67D0\u4E9B\u9875\u9762\u53EF\u80FD\u6709\u6837\u5F0F\u7B49\u95EE\u9898\u3002",en:"It is not a perfect implementation and some pages may have style issues."},translate_page_title:{zh:"\u662F\u5426\u7FFB\u8BD1\u9875\u9762\u6807\u9898",en:"Translate Page Title"},more:{zh:"\u66F4\u591A",en:"More"},fixer_selector:{zh:"\u7F51\u9875\u4FEE\u590D\u9009\u62E9\u5668",en:"Fixer Selector"},reg_niutrans:{zh:"\u83B7\u53D6\u5C0F\u725B\u7FFB\u8BD1\u5BC6\u94A5\u3010\u7B80\u7EA6\u7FFB\u8BD1\u4E13\u5C5E\u65B0\u7528\u6237\u6CE8\u518C\u8D60\u9001300\u4E07\u5B57\u7B26\u3011",en:"Get NiuTrans APIKey [KISS Translator Exclusive New User Registration Free 3 Million Characters]"},trigger_mode:{zh:"\u89E6\u53D1\u65B9\u5F0F",en:"Trigger Mode"},trigger_click:{zh:"\u70B9\u51FB\u89E6\u53D1",en:"Click Trigger"},trigger_hover:{zh:"\u9F20\u6807\u60AC\u505C\u89E6\u53D1",en:"Hover Trigger"},trigger_select:{zh:"\u9009\u4E2D\u89E6\u53D1",en:"Select Trigger"},extend_styles:{zh:"\u9644\u52A0\u6837\u5F0F",en:"Extend Styles"},custom_option:{zh:"\u81EA\u5B9A\u4E49\u9009\u9879",en:"Custom Option"},translate_selected_text:{zh:"\u7FFB\u8BD1\u9009\u4E2D\u6587\u5B57",en:"Translate Selected Text"},toggle_style:{zh:"\u5207\u6362\u6837\u5F0F",en:"Toggle Style"},open_menu:{zh:"\u6253\u5F00\u5F39\u7A97\u83DC\u5355",en:"Open Popup Menu"},open_setting:{zh:"\u6253\u5F00\u8BBE\u7F6E",en:"Open Setting"},follow_selection:{zh:"\u7FFB\u8BD1\u6846\u8DDF\u968F\u9009\u4E2D\u6587\u672C",en:"Transbox Follow Selection"},translate_start_hook:{zh:"\u7FFB\u8BD1\u5F00\u59CB\u94A9\u5B50\u51FD\u6570",en:"Translate Start Hook"},translate_start_hook_helper:{zh:"\u7FFB\u8BD1\u5F00\u59CB\u65F6\u8FD0\u884C\uFF0C\u5165\u53C2\u4E3A\uFF1A \u7FFB\u8BD1\u8282\u70B9\uFF0C\u539F\u6587\u6587\u672C\u3002",en:"Run when translation starts, the input parameters are: translation node, original text."},translate_end_hook:{zh:"\u7FFB\u8BD1\u5B8C\u6210\u94A9\u5B50\u51FD\u6570",en:"Translate End Hook"},translate_end_hook_helper:{zh:"\u7FFB\u8BD1\u5B8C\u6210\u65F6\u8FD0\u884C\uFF0C\u5165\u53C2\u4E3A\uFF1A \u7FFB\u8BD1\u8282\u70B9\uFF0C\u539F\u6587\u6587\u672C\uFF0C\u8BD1\u6587\u6587\u672C\uFF0C\u4FDD\u7559\u5143\u7D20\u3002",en:"Run when the translation is completed, the input parameters are: translation node, original text, translation text, retained elements."},translate_remove_hook:{zh:"\u7FFB\u8BD1\u79FB\u9664\u94A9\u5B50\u51FD\u6570",en:"Translate Removed Hook"},translate_remove_hook_helper:{zh:"\u7FFB\u8BD1\u79FB\u9664\u65F6\u8FD0\u884C\uFF0C\u5165\u53C2\u4E3A\uFF1A \u7FFB\u8BD1\u8282\u70B9\u3002",en:"Run when translation is removed, the input parameters are: translation node."},english_dict:{zh:"\u82F1\u6587\u8BCD\u5178",en:"English Dictionary"}};
;// CONCATENATED MODULE: ./src/config/index.js
const STOKEY_MSAUTH="".concat(APP_NAME,"_msauth");const config_STOKEY_BDAUTH="".concat(APP_NAME,"_bdauth");const config_STOKEY_SETTING="".concat(APP_NAME,"_setting");const config_STOKEY_RULES="".concat(APP_NAME,"_rules");const STOKEY_WORDS="".concat(APP_NAME,"_words");const config_STOKEY_SYNC="".concat(APP_NAME,"_sync");const config_STOKEY_FAB="".concat(APP_NAME,"_fab");const config_STOKEY_RULESCACHE_PREFIX="".concat(APP_NAME,"_rulescache_");const CMD_TOGGLE_TRANSLATE="toggleTranslate";const CMD_TOGGLE_STYLE="toggleStyle";const CMD_OPEN_OPTIONS="openOptions";const CMD_OPEN_TRANBOX="openTranbox";const CLIENT_WEB="web";const CLIENT_CHROME="chrome";const CLIENT_EDGE="edge";const CLIENT_FIREFOX="firefox";const CLIENT_USERSCRIPT="userscript";const CLIENT_EXTS=[CLIENT_CHROME,CLIENT_EDGE,CLIENT_FIREFOX];const KV_RULES_KEY="kiss-rules.json";const KV_WORDS_KEY="kiss-words.json";const config_KV_RULES_SHARE_KEY="kiss-rules-share.json";const KV_SETTING_KEY="kiss-setting.json";const KV_SALT_SYNC="KISS-Translator-SYNC";const config_KV_SALT_SHARE="KISS-Translator-SHARE";const CACHE_NAME="".concat(APP_NAME,"_cache");const MSG_FETCH="fetch";const MSG_GET_HTTPCACHE="get_httpcache";const MSG_OPEN_OPTIONS="open_options";const MSG_SAVE_RULE="save_rule";const MSG_TRANS_TOGGLE="trans_toggle";const MSG_TRANS_TOGGLE_STYLE="trans_toggle_style";const MSG_OPEN_TRANBOX="open_tranbox";const MSG_TRANS_GETRULE="trans_getrule";const MSG_TRANS_PUTRULE="trans_putrule";const MSG_TRANS_CURRULE="trans_currule";const MSG_CONTEXT_MENUS="context_menus";const MSG_COMMAND_SHORTCUTS="command_shortcuts";const MSG_INJECT_JS="inject_js";const MSG_INJECT_CSS="inject_css";const MSG_UPDATE_CSP="update_csp";const THEME_LIGHT="light";const THEME_DARK="dark";const URL_KISS_WORKER="https://github.com/fishjar/kiss-worker";const URL_KISS_PROXY="https://github.com/fishjar/kiss-proxy";const URL_KISS_RULES="https://github.com/fishjar/kiss-rules";const URL_KISS_RULES_NEW_ISSUE="https://github.com/fishjar/kiss-rules/issues/new";const config_URL_RAW_PREFIX="https://raw.githubusercontent.com/fishjar/kiss-translator/master";const URL_CACHE_TRAN="https://".concat(APP_LCNAME,"/translate");// api.cognitive.microsofttranslator.com
const URL_MICROSOFT_TRAN="https://api-edge.cognitive.microsofttranslator.com/translate";const URL_MICROSOFT_AUTH="https://edge.microsoft.com/translate/auth";const URL_MICROSOFT_LANGDETECT="https://api-edge.cognitive.microsofttranslator.com/detect?api-version=3.0";const URL_GOOGLE_TRAN="https://translate.googleapis.com/translate_a/single";const URL_BAIDU_LANGDETECT="https://fanyi.baidu.com/langdetect";const URL_BAIDU_SUGGEST="https://fanyi.baidu.com/sug";const URL_BAIDU_TTS="https://fanyi.baidu.com/gettts";const URL_BAIDU_WEB="https://fanyi.baidu.com/";const URL_BAIDU_TRANSAPI="https://fanyi.baidu.com/transapi";const URL_BAIDU_TRANSAPI_V2="https://fanyi.baidu.com/v2transapi";const URL_DEEPLFREE_TRAN="https://www2.deepl.com/jsonrpc";const URL_TENCENT_TRANSMART="https://transmart.qq.com/api/imt";const URL_NIUTRANS_REG="https://niutrans.com/login?active=3&userSource=kiss-translator";const DEFAULT_USER_AGENT="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36";const OPT_DICT_BAIDU="Baidu";const OPT_TRANS_GOOGLE="Google";const OPT_TRANS_MICROSOFT="Microsoft";const OPT_TRANS_DEEPL="DeepL";const OPT_TRANS_DEEPLX="DeepLX";const OPT_TRANS_DEEPLFREE="DeepLFree";const OPT_TRANS_NIUTRANS="NiuTrans";const OPT_TRANS_BAIDU="Baidu";const OPT_TRANS_TENCENT="Tencent";const OPT_TRANS_OPENAI="OpenAI";const OPT_TRANS_OPENAI_2="OpenAI2";const OPT_TRANS_OPENAI_3="OpenAI3";const OPT_TRANS_GEMINI="Gemini";const OPT_TRANS_CLOUDFLAREAI="CloudflareAI";const OPT_TRANS_OLLAMA="Ollama";const OPT_TRANS_OLLAMA_2="Ollama2";const OPT_TRANS_OLLAMA_3="Ollama3";const OPT_TRANS_CUSTOMIZE="Custom";const OPT_TRANS_CUSTOMIZE_2="Custom2";const OPT_TRANS_CUSTOMIZE_3="Custom3";const OPT_TRANS_CUSTOMIZE_4="Custom4";const OPT_TRANS_CUSTOMIZE_5="Custom5";const OPT_TRANS_ALL=[OPT_TRANS_GOOGLE,OPT_TRANS_MICROSOFT,OPT_TRANS_BAIDU,OPT_TRANS_TENCENT,OPT_TRANS_DEEPL,OPT_TRANS_DEEPLFREE,OPT_TRANS_DEEPLX,OPT_TRANS_NIUTRANS,OPT_TRANS_OPENAI,OPT_TRANS_OPENAI_2,OPT_TRANS_OPENAI_3,OPT_TRANS_GEMINI,OPT_TRANS_CLOUDFLAREAI,OPT_TRANS_OLLAMA,OPT_TRANS_OLLAMA_2,OPT_TRANS_OLLAMA_3,OPT_TRANS_CUSTOMIZE,OPT_TRANS_CUSTOMIZE_2,OPT_TRANS_CUSTOMIZE_3,OPT_TRANS_CUSTOMIZE_4,OPT_TRANS_CUSTOMIZE_5];const OPT_LANGDETECTOR_ALL=[OPT_TRANS_GOOGLE,OPT_TRANS_MICROSOFT,OPT_TRANS_BAIDU,OPT_TRANS_TENCENT];const OPT_LANGS_TO=[["en","English - English"],["zh-CN","Simplified Chinese - 简体中文"],["zh-TW","Traditional Chinese - 繁體中文"],["ar","Arabic - العربية"],["bg","Bulgarian - Български"],["ca","Catalan - Català"],["hr","Croatian - Hrvatski"],["cs","Czech - Čeština"],["da","Danish - Dansk"],["nl","Dutch - Nederlands"],["fi","Finnish - Suomi"],["fr","French - Français"],["de","German - Deutsch"],["el","Greek - Ελληνικά"],["hi","Hindi - हिन्दी"],["hu","Hungarian - Magyar"],["id","Indonesian - Indonesia"],["it","Italian - Italiano"],["ja","Japanese - 日本語"],["ko","Korean - 한국어"],["ms","Malay - Melayu"],["mt","Maltese - Malti"],["nb","Norwegian - Norsk Bokmål"],["pl","Polish - Polski"],["pt","Portuguese - Português"],["ro","Romanian - Română"],["ru","Russian - Русский"],["sk","Slovak - Slovenčina"],["sl","Slovenian - Slovenščina"],["es","Spanish - Español"],["sv","Swedish - Svenska"],["ta","Tamil - தமிழ்"],["te","Telugu - తెలుగు"],["th","Thai - ไทย"],["tr","Turkish - Türkçe"],["uk","Ukrainian - Українська"],["vi","Vietnamese - Tiếng Việt"]];const OPT_LANGS_FROM=[["auto","Auto-detect"],...OPT_LANGS_TO];const OPT_LANGS_SPECIAL={[OPT_TRANS_GOOGLE]:new Map(OPT_LANGS_FROM.map(_ref=>{let[key]=_ref;return[key,key];})),[OPT_TRANS_MICROSOFT]:new Map([...OPT_LANGS_FROM.map(_ref2=>{let[key]=_ref2;return[key,key];}),["auto",""],["zh-CN","zh-Hans"],["zh-TW","zh-Hant"]]),[OPT_TRANS_DEEPL]:new Map([...OPT_LANGS_FROM.map(_ref3=>{let[key]=_ref3;return[key,key.toUpperCase()];}),["auto",""],["zh-CN","ZH"],["zh-TW","ZH"]]),[OPT_TRANS_DEEPLFREE]:new Map([...OPT_LANGS_FROM.map(_ref4=>{let[key]=_ref4;return[key,key.toUpperCase()];}),["auto","auto"],["zh-CN","ZH"],["zh-TW","ZH"]]),[OPT_TRANS_DEEPLX]:new Map([...OPT_LANGS_FROM.map(_ref5=>{let[key]=_ref5;return[key,key.toUpperCase()];}),["auto","auto"],["zh-CN","ZH"],["zh-TW","ZH"]]),[OPT_TRANS_NIUTRANS]:new Map([...OPT_LANGS_FROM.map(_ref6=>{let[key]=_ref6;return[key,key];}),["auto","auto"],["zh-CN","zh"],["zh-TW","cht"]]),[OPT_TRANS_BAIDU]:new Map([...OPT_LANGS_FROM.map(_ref7=>{let[key]=_ref7;return[key,key];}),["zh-CN","zh"],["zh-TW","cht"],["ar","ara"],["bg","bul"],["ca","cat"],["hr","hrv"],["da","dan"],["fi","fin"],["fr","fra"],["hi","mai"],["ja","jp"],["ko","kor"],["ms","may"],["mt","mlt"],["nb","nor"],["ro","rom"],["ru","ru"],["sl","slo"],["es","spa"],["sv","swe"],["ta","tam"],["te","tel"],["uk","ukr"],["vi","vie"]]),[OPT_TRANS_TENCENT]:new Map([["auto","auto"],["zh-CN","zh"],["zh-TW","zh"],["en","en"],["ar","ar"],["de","de"],["ru","ru"],["fr","fr"],["fi","fil"],["ko","ko"],["ms","ms"],["pt","pt"],["ja","ja"],["th","th"],["tr","tr"],["es","es"],["it","it"],["hi","hi"],["id","id"],["vi","vi"]]),[OPT_TRANS_OPENAI]:new Map(OPT_LANGS_FROM.map(_ref8=>{let[key,val]=_ref8;return[key,val.split(" - ")[0]];})),[OPT_TRANS_OPENAI_2]:new Map(OPT_LANGS_FROM.map(_ref9=>{let[key,val]=_ref9;return[key,val.split(" - ")[0]];})),[OPT_TRANS_OPENAI_3]:new Map(OPT_LANGS_FROM.map(_ref10=>{let[key,val]=_ref10;return[key,val.split(" - ")[0]];})),[OPT_TRANS_GEMINI]:new Map(OPT_LANGS_FROM.map(_ref11=>{let[key,val]=_ref11;return[key,val.split(" - ")[0]];})),[OPT_TRANS_OLLAMA]:new Map(OPT_LANGS_FROM.map(_ref12=>{let[key,val]=_ref12;return[key,val.split(" - ")[0]];})),[OPT_TRANS_OLLAMA_2]:new Map(OPT_LANGS_FROM.map(_ref13=>{let[key,val]=_ref13;return[key,val.split(" - ")[0]];})),[OPT_TRANS_OLLAMA_3]:new Map(OPT_LANGS_FROM.map(_ref14=>{let[key,val]=_ref14;return[key,val.split(" - ")[0]];})),[OPT_TRANS_CLOUDFLAREAI]:new Map([["auto",""],["zh-CN","chinese"],["zh-TW","chinese"],["en","english"],["ar","arabic"],["de","german"],["ru","russian"],["fr","french"],["pt","portuguese"],["ja","japanese"],["es","spanish"],["hi","hindi"]]),[OPT_TRANS_CUSTOMIZE]:new Map([...OPT_LANGS_FROM.map(_ref15=>{let[key]=_ref15;return[key,key];}),["auto",""]]),[OPT_TRANS_CUSTOMIZE_2]:new Map([...OPT_LANGS_FROM.map(_ref16=>{let[key]=_ref16;return[key,key];}),["auto",""]]),[OPT_TRANS_CUSTOMIZE_3]:new Map([...OPT_LANGS_FROM.map(_ref17=>{let[key]=_ref17;return[key,key];}),["auto",""]]),[OPT_TRANS_CUSTOMIZE_4]:new Map([...OPT_LANGS_FROM.map(_ref18=>{let[key]=_ref18;return[key,key];}),["auto",""]]),[OPT_TRANS_CUSTOMIZE_5]:new Map([...OPT_LANGS_FROM.map(_ref19=>{let[key]=_ref19;return[key,key];}),["auto",""]])};const OPT_LANGS_LIST=OPT_LANGS_TO.map(_ref20=>{let[lang]=_ref20;return lang;});const OPT_LANGS_MICROSOFT=new Map(Array.from(OPT_LANGS_SPECIAL[OPT_TRANS_MICROSOFT].entries()).map(_ref21=>{let[k,v]=_ref21;return[v,k];}));const OPT_LANGS_BAIDU=new Map(Array.from(OPT_LANGS_SPECIAL[OPT_TRANS_BAIDU].entries()).map(_ref22=>{let[k,v]=_ref22;return[v,k];}));const OPT_LANGS_TENCENT=new Map(Array.from(OPT_LANGS_SPECIAL[OPT_TRANS_TENCENT].entries()).map(_ref23=>{let[k,v]=_ref23;return[v,k];}));OPT_LANGS_TENCENT.set("zh","zh-CN");const OPT_STYLE_NONE="style_none";// 无
const OPT_STYLE_LINE="under_line";// 下划线
const OPT_STYLE_DOTLINE="dot_line";// 点状线
const OPT_STYLE_DASHLINE="dash_line";// 虚线
const OPT_STYLE_WAVYLINE="wavy_line";// 波浪线
const OPT_STYLE_FUZZY="fuzzy";// 模糊
const OPT_STYLE_HIGHLIGHT="highlight";// 高亮
const OPT_STYLE_BLOCKQUOTE="blockquote";// 引用
const OPT_STYLE_DIY="diy_style";// 自定义样式
const OPT_STYLE_ALL=[OPT_STYLE_NONE,OPT_STYLE_LINE,OPT_STYLE_DOTLINE,OPT_STYLE_DASHLINE,OPT_STYLE_WAVYLINE,OPT_STYLE_FUZZY,OPT_STYLE_HIGHLIGHT,OPT_STYLE_BLOCKQUOTE,OPT_STYLE_DIY];const OPT_STYLE_USE_COLOR=[OPT_STYLE_LINE,OPT_STYLE_DOTLINE,OPT_STYLE_DASHLINE,OPT_STYLE_WAVYLINE,OPT_STYLE_HIGHLIGHT,OPT_STYLE_BLOCKQUOTE];const OPT_TIMING_PAGESCROLL="mk_pagescroll";// 滚动加载翻译
const OPT_TIMING_PAGEOPEN="mk_pageopen";// 直接翻译到底
const OPT_TIMING_MOUSEOVER="mk_mouseover";const OPT_TIMING_CONTROL="mk_ctrlKey";const OPT_TIMING_SHIFT="mk_shiftKey";const OPT_TIMING_ALT="mk_altKey";const OPT_TIMING_ALL=[OPT_TIMING_PAGESCROLL,OPT_TIMING_PAGEOPEN,OPT_TIMING_MOUSEOVER,OPT_TIMING_CONTROL,OPT_TIMING_SHIFT,OPT_TIMING_ALT];const DEFAULT_FETCH_LIMIT=10;// 默认最大任务数量
const DEFAULT_FETCH_INTERVAL=100;// 默认任务间隔时间
const INPUT_PLACE_URL="{{url}}";// 占位符
const INPUT_PLACE_FROM="{{from}}";// 占位符
const INPUT_PLACE_TO="{{to}}";// 占位符
const INPUT_PLACE_TEXT="{{text}}";// 占位符
const INPUT_PLACE_KEY="{{key}}";// 占位符
const INPUT_PLACE_MODEL="{{model}}";// 占位符
const DEFAULT_COLOR="#209CEE";// 默认高亮背景色/线条颜色
const DEFAULT_TRANS_TAG="span";const DEFAULT_SELECT_STYLE="-webkit-line-clamp: unset; max-height: none; height: auto;";// 全局规则
const GLOBLA_RULE={pattern:"*",// 匹配网址
selector:DEFAULT_SELECTOR,// 选择器
keepSelector:DEFAULT_KEEP_SELECTOR,// 保留元素选择器
terms:"",// 专业术语
translator:OPT_TRANS_MICROSOFT,// 翻译服务
fromLang:"auto",// 源语言
toLang:"zh-CN",// 目标语言
textStyle:OPT_STYLE_DASHLINE,// 译文样式
transOpen:"false",// 开启翻译
bgColor:"",// 译文颜色
textDiyStyle:"",// 自定义译文样式
selectStyle:DEFAULT_SELECT_STYLE,// 选择器节点样式
parentStyle:DEFAULT_SELECT_STYLE,// 选择器父节点样式
injectJs:"",// 注入JS
injectCss:"",// 注入CSS
transOnly:"false",// 是否仅显示译文
transTiming:OPT_TIMING_PAGESCROLL,// 翻译时机/鼠标悬停翻译
transTag:DEFAULT_TRANS_TAG,// 译文元素标签
transTitle:"false",// 是否同时翻译页面标题
detectRemote:"false",// 是否使用远程语言检测
skipLangs:[],// 不翻译的语言
fixerSelector:"",// 修复函数选择器
fixerFunc:"-",// 修复函数
transStartHook:"",// 钩子函数
transEndHook:"",// 钩子函数
transRemoveHook:""// 钩子函数
};// 输入框翻译
const OPT_INPUT_TRANS_SIGNS=["/","//","\\","\\\\",">",">>"];const DEFAULT_INPUT_SHORTCUT=["AltLeft","KeyI"];const DEFAULT_INPUT_RULE={transOpen:true,translator:OPT_TRANS_MICROSOFT,fromLang:"auto",toLang:"en",triggerShortcut:DEFAULT_INPUT_SHORTCUT,triggerCount:1,triggerTime:200,transSign:OPT_INPUT_TRANS_SIGNS[0]};// 划词翻译
const PHONIC_MAP={en_phonic:["英","uk"],us_phonic:["美","en"]};const OPT_TRANBOX_TRIGGER_CLICK="click";const OPT_TRANBOX_TRIGGER_HOVER="hover";const OPT_TRANBOX_TRIGGER_SELECT="select";const OPT_TRANBOX_TRIGGER_ALL=[OPT_TRANBOX_TRIGGER_CLICK,OPT_TRANBOX_TRIGGER_HOVER,OPT_TRANBOX_TRIGGER_SELECT];const DEFAULT_TRANBOX_SHORTCUT=["AltLeft","KeyS"];const DEFAULT_TRANBOX_SETTING={transOpen:true,translator:OPT_TRANS_MICROSOFT,fromLang:"auto",toLang:"zh-CN",toLang2:"en",tranboxShortcut:DEFAULT_TRANBOX_SHORTCUT,btnOffsetX:10,btnOffsetY:10,boxOffsetX:0,boxOffsetY:10,hideTranBtn:false,// 是否隐藏翻译按钮
hideClickAway:false,// 是否点击外部关闭弹窗
simpleStyle:false,// 是否简洁界面
followSelection:false,// 翻译框是否跟随选中文本
triggerMode:OPT_TRANBOX_TRIGGER_CLICK,// 触发翻译方式
extStyles:"",// 附加样式
enDict:OPT_DICT_BAIDU// 英文词典
};// 订阅列表
const DEFAULT_SUBRULES_LIST=[{url:"https://fishjar.github.io/kiss-rules/kiss-rules.json",selected:false},{url:"https://fishjar.github.io/kiss-rules/kiss-rules-on.json",selected:true},{url:"https://fishjar.github.io/kiss-rules/kiss-rules-off.json",selected:false}];// 翻译接口
const defaultCustomApi={url:"",key:"",customOption:"",// (作废)
reqHook:"",// request 钩子函数
resHook:"",// response 钩子函数
fetchLimit:DEFAULT_FETCH_LIMIT,fetchInterval:DEFAULT_FETCH_INTERVAL};const defaultOpenaiApi={url:"https://api.openai.com/v1/chat/completions",key:"",model:"gpt-4",prompt:"You will be provided with a sentence in ".concat(INPUT_PLACE_FROM,", and your task is to translate it into ").concat(INPUT_PLACE_TO,"."),temperature:0,maxTokens:256,fetchLimit:1,fetchInterval:500};const defaultOllamaApi={url:"http://localhost:11434/api/generate",key:"",model:"llama3",prompt:"Translate the following text from ".concat(INPUT_PLACE_FROM," to ").concat(INPUT_PLACE_TO,":\n\n").concat(INPUT_PLACE_TEXT),fetchLimit:1,fetchInterval:500};const DEFAULT_TRANS_APIS={[OPT_TRANS_GOOGLE]:{url:URL_GOOGLE_TRAN,key:"",fetchLimit:DEFAULT_FETCH_LIMIT,// 最大任务数量
fetchInterval:DEFAULT_FETCH_INTERVAL// 任务间隔时间
},[OPT_TRANS_MICROSOFT]:{fetchLimit:DEFAULT_FETCH_LIMIT,fetchInterval:DEFAULT_FETCH_INTERVAL},[OPT_TRANS_BAIDU]:{fetchLimit:DEFAULT_FETCH_LIMIT,fetchInterval:DEFAULT_FETCH_INTERVAL},[OPT_TRANS_TENCENT]:{fetchLimit:DEFAULT_FETCH_LIMIT,fetchInterval:DEFAULT_FETCH_INTERVAL},[OPT_TRANS_DEEPL]:{url:"https://api-free.deepl.com/v2/translate",key:"",fetchLimit:1,fetchInterval:500},[OPT_TRANS_DEEPLFREE]:{fetchLimit:1,fetchInterval:500},[OPT_TRANS_DEEPLX]:{url:"http://localhost:1188/translate",key:"",fetchLimit:1,fetchInterval:500},[OPT_TRANS_NIUTRANS]:{url:"https://api.niutrans.com/NiuTransServer/translation",key:"",dictNo:"",memoryNo:"",fetchLimit:DEFAULT_FETCH_LIMIT,fetchInterval:DEFAULT_FETCH_INTERVAL},[OPT_TRANS_OPENAI]:defaultOpenaiApi,[OPT_TRANS_OPENAI_2]:defaultOpenaiApi,[OPT_TRANS_OPENAI_3]:defaultOpenaiApi,[OPT_TRANS_GEMINI]:{url:"https://generativelanguage.googleapis.com/v1/models/".concat(INPUT_PLACE_MODEL,":generateContent?key=").concat(INPUT_PLACE_KEY),key:"",model:"gemini-pro",prompt:"Translate the following text from ".concat(INPUT_PLACE_FROM," to ").concat(INPUT_PLACE_TO,":\n\n").concat(INPUT_PLACE_TEXT),fetchLimit:1,fetchInterval:500},[OPT_TRANS_CLOUDFLAREAI]:{url:"https://api.cloudflare.com/client/v4/accounts/{{ACCOUNT_ID}}/ai/run/@cf/meta/m2m100-1.2b",key:"",fetchLimit:1,fetchInterval:500},[OPT_TRANS_OLLAMA]:defaultOllamaApi,[OPT_TRANS_OLLAMA_2]:defaultOllamaApi,[OPT_TRANS_OLLAMA_3]:defaultOllamaApi,[OPT_TRANS_CUSTOMIZE]:defaultCustomApi,[OPT_TRANS_CUSTOMIZE_2]:defaultCustomApi,[OPT_TRANS_CUSTOMIZE_3]:defaultCustomApi,[OPT_TRANS_CUSTOMIZE_4]:defaultCustomApi,[OPT_TRANS_CUSTOMIZE_5]:defaultCustomApi};// 默认快捷键
const OPT_SHORTCUT_TRANSLATE="toggleTranslate";const OPT_SHORTCUT_STYLE="toggleStyle";const OPT_SHORTCUT_POPUP="togglePopup";const OPT_SHORTCUT_SETTING="openSetting";const DEFAULT_SHORTCUTS={[OPT_SHORTCUT_TRANSLATE]:["AltLeft","KeyQ"],[OPT_SHORTCUT_STYLE]:["AltLeft","KeyC"],[OPT_SHORTCUT_POPUP]:["AltLeft","KeyK"],[OPT_SHORTCUT_SETTING]:["AltLeft","KeyO"]};const TRANS_MIN_LENGTH=5;// 最短翻译长度
const TRANS_MAX_LENGTH=5000;// 最长翻译长度
const TRANS_NEWLINE_LENGTH=20;// 换行字符数
const DEFAULT_BLACKLIST=["https://fishjar.github.io/kiss-translator/options.html","https://translate.google.com","https://www.deepl.com/translator","oapi.dingtalk.com","login.dingtalk.com"];// 禁用翻译名单
const DEFAULT_CSPLIST=["https://github.com"];// 禁用CSP名单
const config_DEFAULT_SETTING={darkMode:false,// 深色模式
uiLang:"en",// 界面语言
// fetchLimit: DEFAULT_FETCH_LIMIT, // 最大任务数量(移至transApis,作废)
// fetchInterval: DEFAULT_FETCH_INTERVAL, // 任务间隔时间(移至transApis,作废)
minLength:TRANS_MIN_LENGTH,maxLength:TRANS_MAX_LENGTH,newlineLength:TRANS_NEWLINE_LENGTH,clearCache:false,// 是否在浏览器下次启动时清除缓存
injectRules:true,// 是否注入订阅规则
// injectWebfix: true, // 是否注入修复补丁(作废)
// detectRemote: false, // 是否使用远程语言检测(移至rule,作废)
// contextMenus: true, // 是否添加右键菜单(作废)
contextMenuType:1,// 右键菜单类型(0不显示,1简单菜单,2多级菜单)
// transTag: DEFAULT_TRANS_TAG, // 译文元素标签(移至rule,作废)
// transOnly: false, // 是否仅显示译文(移至rule,作废)
// transTitle: false, // 是否同时翻译页面标题(移至rule,作废)
subrulesList:DEFAULT_SUBRULES_LIST,// 订阅列表
owSubrule:DEFAULT_OW_RULE,// 覆写订阅规则
transApis:DEFAULT_TRANS_APIS,// 翻译接口
// mouseKey: OPT_TIMING_PAGESCROLL, // 翻译时机/鼠标悬停翻译(移至rule,作废)
shortcuts:DEFAULT_SHORTCUTS,// 快捷键
inputRule:DEFAULT_INPUT_RULE,// 输入框设置
tranboxSetting:DEFAULT_TRANBOX_SETTING,// 划词翻译设置
touchTranslate:2,// 触屏翻译
blacklist:DEFAULT_BLACKLIST.join(",\n"),// 禁用翻译名单
csplist:DEFAULT_CSPLIST.join(",\n"),// 禁用CSP名单
// disableLangs: [], // 不翻译的语言(移至rule,作废)
transInterval:500,// 翻译间隔时间
langDetector:OPT_TRANS_MICROSOFT// 远程语言识别服务
};const config_DEFAULT_RULES=[GLOBLA_RULE];const OPT_SYNCTYPE_WORKER="KISS-Worker";const OPT_SYNCTYPE_WEBDAV="WebDAV";const OPT_SYNCTYPE_ALL=[OPT_SYNCTYPE_WORKER,OPT_SYNCTYPE_WEBDAV];const config_DEFAULT_SYNC={syncType:OPT_SYNCTYPE_WORKER,// 同步方式
syncUrl:"",// 数据同步接口
syncUser:"",// 数据同步用户名
syncKey:"",// 数据同步密钥
syncMeta:{},// 数据更新及同步信息
subRulesSyncAt:0,// 订阅规则同步时间
dataCaches:{}// 缓存同步时间
};
;// CONCATENATED MODULE: ./src/libs/client.js
const client_client="userscript";const isExt=CLIENT_EXTS.includes(client_client);const isGm=client_client===CLIENT_USERSCRIPT;const isWeb=client_client===CLIENT_WEB;
;// CONCATENATED MODULE: ./src/libs/browser.js
// import { CLIENT_EXTS, CLIENT_USERSCRIPT, CLIENT_WEB } from "../config";
/**
 * 浏览器兼容插件,另可用于判断是插件模式还是网页模式,方便开发
 * @returns
 */function _browser(){try{return __webpack_require__(2465);}catch(err){// kissLog(err, "browser");
}}const browser=_browser();const isBg=()=>(globalThis===null||globalThis===void 0?void 0:globalThis.ContextType)==="BACKGROUND";
;// CONCATENATED MODULE: ./src/libs/storage.js
async function set(key,val){if(isExt){await browser.storage.local.set({[key]:val});}else if(isGm){await(window.KISS_GM||GM).setValue(key,val);}else{window.localStorage.setItem(key,val);}}async function get(key){if(isExt){const val=await browser.storage.local.get([key]);return val[key];}else if(isGm){const val=await(window.KISS_GM||GM).getValue(key);return val;}return window.localStorage.getItem(key);}async function del(key){if(isExt){await browser.storage.local.remove([key]);}else if(isGm){await(window.KISS_GM||GM).deleteValue(key);}else{window.localStorage.removeItem(key);}}async function setObj(key,obj){await set(key,JSON.stringify(obj));}async function trySetObj(key,obj){if(!(await get(key))){await setObj(key,obj);}}async function getObj(key){const val=await get(key);return val&&JSON.parse(val);}async function putObj(key,obj){var _await$getObj;const cur=(_await$getObj=await getObj(key))!==null&&_await$getObj!==void 0?_await$getObj:{};await setObj(key,{...cur,...obj});}/**
 * 对storage的封装
 */const storage={get,set,del,setObj,trySetObj,getObj,putObj// onChanged,
};/**
 * 设置信息
 */const getSetting=()=>getObj(config_STOKEY_SETTING);const getSettingWithDefault=async()=>({...config_DEFAULT_SETTING,...((await getSetting())||{})});const setSetting=val=>setObj(config_STOKEY_SETTING,val);const updateSetting=obj=>putObj(STOKEY_SETTING,obj);/**
 * 规则列表
 */const getRules=()=>getObj(config_STOKEY_RULES);const getRulesWithDefault=async()=>(await getRules())||config_DEFAULT_RULES;const setRules=val=>setObj(config_STOKEY_RULES,val);/**
 * 词汇列表
 */const getWords=()=>getObj(STOKEY_WORDS);const getWordsWithDefault=async()=>(await getWords())||{};const setWords=val=>setObj(STOKEY_WORDS,val);/**
 * 订阅规则
 */const getSubRules=url=>getObj(config_STOKEY_RULESCACHE_PREFIX+url);const getSubRulesWithDefault=async()=>(await getSubRules())||[];const delSubRules=url=>del(STOKEY_RULESCACHE_PREFIX+url);const setSubRules=(url,val)=>setObj(config_STOKEY_RULESCACHE_PREFIX+url,val);/**
 * fab位置
 */const getFab=()=>getObj(config_STOKEY_FAB);const getFabWithDefault=async()=>(await getFab())||{};const setFab=obj=>setObj(STOKEY_FAB,obj);const updateFab=obj=>putObj(config_STOKEY_FAB,obj);/**
 * 数据同步
 */const getSync=()=>getObj(config_STOKEY_SYNC);const getSyncWithDefault=async()=>(await getSync())||config_DEFAULT_SYNC;const updateSync=obj=>putObj(config_STOKEY_SYNC,obj);/**
 * ms auth
 */const getMsauth=()=>getObj(STOKEY_MSAUTH);const setMsauth=val=>setObj(STOKEY_MSAUTH,val);/**
 * baidu auth
 */const getBdauth=()=>getObj(STOKEY_BDAUTH);const setBdauth=val=>setObj(STOKEY_BDAUTH,val);/**
 * 存入默认数据
 */const tryInitDefaultData=async()=>{try{await trySetObj(STOKEY_SETTING,DEFAULT_SETTING);await trySetObj(STOKEY_RULES,DEFAULT_RULES);await trySetObj(STOKEY_SYNC,DEFAULT_SYNC);await trySetObj("".concat(STOKEY_RULESCACHE_PREFIX).concat("https://fishjar.github.io/kiss-rules/kiss-rules.json"),BUILTIN_RULES);}catch(err){kissLog(err,"init default");}};
;// CONCATENATED MODULE: ./src/libs/log.js
/**
 * 日志函数
 * @param {*} msg
 * @param {*} type
 */const log_kissLog=(msg,type)=>{let prefix="[KISS-Translator]";if(type){prefix+="[".concat(type,"]");}console.log("".concat(prefix," ").concat(msg));};
;// CONCATENATED MODULE: ./src/hooks/Storage.js
/**
 *
 * @param {*} key
 * @param {*} defaultVal 需为调用hook外的常量
 * @returns
 */function useStorage(key,defaultVal){const[loading,setLoading]=(0,react.useState)(false);const[data,setData]=(0,react.useState)(null);const save=(0,react.useCallback)(async val=>{setData(val);await storage.setObj(key,val);},[key]);const update=(0,react.useCallback)(async obj=>{setData(function(){let pre=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return{...pre,...obj};});await storage.putObj(key,obj);},[key]);const remove=(0,react.useCallback)(async()=>{setData(null);await storage.del(key);},[key]);const reload=(0,react.useCallback)(async()=>{try{setLoading(true);const val=await storage.getObj(key);if(val){setData(val);}}catch(err){log_kissLog(err,"storage reload");}finally{setLoading(false);}},[key]);(0,react.useEffect)(()=>{(async()=>{try{setLoading(true);const val=await storage.getObj(key);if(val){setData(val);}else if(defaultVal){setData(defaultVal);await storage.setObj(key,defaultVal);}}catch(err){log_kissLog(err,"storage load");}finally{setLoading(false);}})();},[key,defaultVal]);return{data,save,update,remove,reload,loading};}
;// CONCATENATED MODULE: ./node_modules/.pnpm/decode-uri-component@0.4.1/node_modules/decode-uri-component/index.js
const token = '%[a-f0-9]{2}';
const singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');
const multiMatcher = new RegExp('(' + token + ')+', 'gi');
function decodeComponents(components, split) {
  try {
    // Try to decode the entire string first
    return [decodeURIComponent(components.join(''))];
  } catch {
    // Do nothing
  }
  if (components.length === 1) {
    return components;
  }
  split = split || 1;

  // Split the array in 2 parts
  const left = components.slice(0, split);
  const right = components.slice(split);
  return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));
}
function decode(input) {
  try {
    return decodeURIComponent(input);
  } catch {
    let tokens = input.match(singleMatcher) || [];
    for (let i = 1; i < tokens.length; i++) {
      input = decodeComponents(tokens, i).join('');
      tokens = input.match(singleMatcher) || [];
    }
    return input;
  }
}
function customDecodeURIComponent(input) {
  // Keep track of all the replacements and prefill the map with the `BOM`
  const replaceMap = {
    '%FE%FF': '\uFFFD\uFFFD',
    '%FF%FE': '\uFFFD\uFFFD'
  };
  let match = multiMatcher.exec(input);
  while (match) {
    try {
      // Decode as big chunks as possible
      replaceMap[match[0]] = decodeURIComponent(match[0]);
    } catch {
      const result = decode(match[0]);
      if (result !== match[0]) {
        replaceMap[match[0]] = result;
      }
    }
    match = multiMatcher.exec(input);
  }

  // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else
  replaceMap['%C2'] = '\uFFFD';
  const entries = Object.keys(replaceMap);
  for (const key of entries) {
    // Replace all decoded components
    input = input.replace(new RegExp(key, 'g'), replaceMap[key]);
  }
  return input;
}
function decodeUriComponent(encodedURI) {
  if (typeof encodedURI !== 'string') {
    throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');
  }
  try {
    // Try the built in decoder first
    return decodeURIComponent(encodedURI);
  } catch {
    // Fallback to a more advanced decoder
    return customDecodeURIComponent(encodedURI);
  }
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/split-on-first@3.0.0/node_modules/split-on-first/index.js
function splitOnFirst(string, separator) {
  if (!(typeof string === 'string' && typeof separator === 'string')) {
    throw new TypeError('Expected the arguments to be of type `string`');
  }
  if (string === '' || separator === '') {
    return [];
  }
  const separatorIndex = string.indexOf(separator);
  if (separatorIndex === -1) {
    return [];
  }
  return [string.slice(0, separatorIndex), string.slice(separatorIndex + separator.length)];
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/filter-obj@5.1.0/node_modules/filter-obj/index.js
function includeKeys(object, predicate) {
  const result = {};
  if (Array.isArray(predicate)) {
    for (const key of predicate) {
      const descriptor = Object.getOwnPropertyDescriptor(object, key);
      if (descriptor !== null && descriptor !== void 0 && descriptor.enumerable) {
        Object.defineProperty(result, key, descriptor);
      }
    }
  } else {
    // `Reflect.ownKeys()` is required to retrieve symbol properties
    for (const key of Reflect.ownKeys(object)) {
      const descriptor = Object.getOwnPropertyDescriptor(object, key);
      if (descriptor.enumerable) {
        const value = object[key];
        if (predicate(key, value, object)) {
          Object.defineProperty(result, key, descriptor);
        }
      }
    }
  }
  return result;
}
function excludeKeys(object, predicate) {
  if (Array.isArray(predicate)) {
    const set = new Set(predicate);
    return includeKeys(object, key => !set.has(key));
  }
  return includeKeys(object, (key, value, object) => !predicate(key, value, object));
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/query-string@8.1.0/node_modules/query-string/base.js



const isNullOrUndefined = value => value === null || value === undefined;

// eslint-disable-next-line unicorn/prefer-code-point
const strictUriEncode = string => encodeURIComponent(string).replace(/[!'()*]/g, x => "%".concat(x.charCodeAt(0).toString(16).toUpperCase()));
const encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');
function encoderForArrayFormat(options) {
  switch (options.arrayFormat) {
    case 'index':
      {
        return key => (result, value) => {
          const index = result.length;
          if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {
            return result;
          }
          if (value === null) {
            return [...result, [encode(key, options), '[', index, ']'].join('')];
          }
          return [...result, [encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')];
        };
      }
    case 'bracket':
      {
        return key => (result, value) => {
          if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {
            return result;
          }
          if (value === null) {
            return [...result, [encode(key, options), '[]'].join('')];
          }
          return [...result, [encode(key, options), '[]=', encode(value, options)].join('')];
        };
      }
    case 'colon-list-separator':
      {
        return key => (result, value) => {
          if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {
            return result;
          }
          if (value === null) {
            return [...result, [encode(key, options), ':list='].join('')];
          }
          return [...result, [encode(key, options), ':list=', encode(value, options)].join('')];
        };
      }
    case 'comma':
    case 'separator':
    case 'bracket-separator':
      {
        const keyValueSep = options.arrayFormat === 'bracket-separator' ? '[]=' : '=';
        return key => (result, value) => {
          if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {
            return result;
          }

          // Translate null to an empty string so that it doesn't serialize as 'null'
          value = value === null ? '' : value;
          if (result.length === 0) {
            return [[encode(key, options), keyValueSep, encode(value, options)].join('')];
          }
          return [[result, encode(value, options)].join(options.arrayFormatSeparator)];
        };
      }
    default:
      {
        return key => (result, value) => {
          if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {
            return result;
          }
          if (value === null) {
            return [...result, encode(key, options)];
          }
          return [...result, [encode(key, options), '=', encode(value, options)].join('')];
        };
      }
  }
}
function parserForArrayFormat(options) {
  let result;
  switch (options.arrayFormat) {
    case 'index':
      {
        return (key, value, accumulator) => {
          result = /\[(\d*)]$/.exec(key);
          key = key.replace(/\[\d*]$/, '');
          if (!result) {
            accumulator[key] = value;
            return;
          }
          if (accumulator[key] === undefined) {
            accumulator[key] = {};
          }
          accumulator[key][result[1]] = value;
        };
      }
    case 'bracket':
      {
        return (key, value, accumulator) => {
          result = /(\[])$/.exec(key);
          key = key.replace(/\[]$/, '');
          if (!result) {
            accumulator[key] = value;
            return;
          }
          if (accumulator[key] === undefined) {
            accumulator[key] = [value];
            return;
          }
          accumulator[key] = [...accumulator[key], value];
        };
      }
    case 'colon-list-separator':
      {
        return (key, value, accumulator) => {
          result = /(:list)$/.exec(key);
          key = key.replace(/:list$/, '');
          if (!result) {
            accumulator[key] = value;
            return;
          }
          if (accumulator[key] === undefined) {
            accumulator[key] = [value];
            return;
          }
          accumulator[key] = [...accumulator[key], value];
        };
      }
    case 'comma':
    case 'separator':
      {
        return (key, value, accumulator) => {
          const isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);
          const isEncodedArray = typeof value === 'string' && !isArray && base_decode(value, options).includes(options.arrayFormatSeparator);
          value = isEncodedArray ? base_decode(value, options) : value;
          const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => base_decode(item, options)) : value === null ? value : base_decode(value, options);
          accumulator[key] = newValue;
        };
      }
    case 'bracket-separator':
      {
        return (key, value, accumulator) => {
          const isArray = /(\[])$/.test(key);
          key = key.replace(/\[]$/, '');
          if (!isArray) {
            accumulator[key] = value ? base_decode(value, options) : value;
            return;
          }
          const arrayValue = value === null ? [] : value.split(options.arrayFormatSeparator).map(item => base_decode(item, options));
          if (accumulator[key] === undefined) {
            accumulator[key] = arrayValue;
            return;
          }
          accumulator[key] = [...accumulator[key], ...arrayValue];
        };
      }
    default:
      {
        return (key, value, accumulator) => {
          if (accumulator[key] === undefined) {
            accumulator[key] = value;
            return;
          }
          accumulator[key] = [...[accumulator[key]].flat(), value];
        };
      }
  }
}
function validateArrayFormatSeparator(value) {
  if (typeof value !== 'string' || value.length !== 1) {
    throw new TypeError('arrayFormatSeparator must be single character string');
  }
}
function encode(value, options) {
  if (options.encode) {
    return options.strict ? strictUriEncode(value) : encodeURIComponent(value);
  }
  return value;
}
function base_decode(value, options) {
  if (options.decode) {
    return decodeUriComponent(value);
  }
  return value;
}
function keysSorter(input) {
  if (Array.isArray(input)) {
    return input.sort();
  }
  if (typeof input === 'object') {
    return keysSorter(Object.keys(input)).sort((a, b) => Number(a) - Number(b)).map(key => input[key]);
  }
  return input;
}
function removeHash(input) {
  const hashStart = input.indexOf('#');
  if (hashStart !== -1) {
    input = input.slice(0, hashStart);
  }
  return input;
}
function getHash(url) {
  let hash = '';
  const hashStart = url.indexOf('#');
  if (hashStart !== -1) {
    hash = url.slice(hashStart);
  }
  return hash;
}
function parseValue(value, options) {
  if (options.parseNumbers && !Number.isNaN(Number(value)) && typeof value === 'string' && value.trim() !== '') {
    value = Number(value);
  } else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {
    value = value.toLowerCase() === 'true';
  }
  return value;
}
function extract(input) {
  input = removeHash(input);
  const queryStart = input.indexOf('?');
  if (queryStart === -1) {
    return '';
  }
  return input.slice(queryStart + 1);
}
function parse(query, options) {
  options = {
    decode: true,
    sort: true,
    arrayFormat: 'none',
    arrayFormatSeparator: ',',
    parseNumbers: false,
    parseBooleans: false,
    ...options
  };
  validateArrayFormatSeparator(options.arrayFormatSeparator);
  const formatter = parserForArrayFormat(options);

  // Create an object with no prototype
  const returnValue = Object.create(null);
  if (typeof query !== 'string') {
    return returnValue;
  }
  query = query.trim().replace(/^[?#&]/, '');
  if (!query) {
    return returnValue;
  }
  for (const parameter of query.split('&')) {
    if (parameter === '') {
      continue;
    }
    const parameter_ = options.decode ? parameter.replace(/\+/g, ' ') : parameter;
    let [key, value] = splitOnFirst(parameter_, '=');
    if (key === undefined) {
      key = parameter_;
    }

    // Missing `=` should be `null`:
    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters
    value = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : base_decode(value, options);
    formatter(base_decode(key, options), value, returnValue);
  }
  for (const [key, value] of Object.entries(returnValue)) {
    if (typeof value === 'object' && value !== null) {
      for (const [key2, value2] of Object.entries(value)) {
        value[key2] = parseValue(value2, options);
      }
    } else {
      returnValue[key] = parseValue(value, options);
    }
  }
  if (options.sort === false) {
    return returnValue;
  }

  // TODO: Remove the use of `reduce`.
  // eslint-disable-next-line unicorn/no-array-reduce
  return (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {
    const value = returnValue[key];
    if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {
      // Sort object keys, not values
      result[key] = keysSorter(value);
    } else {
      result[key] = value;
    }
    return result;
  }, Object.create(null));
}
function stringify(object, options) {
  if (!object) {
    return '';
  }
  options = {
    encode: true,
    strict: true,
    arrayFormat: 'none',
    arrayFormatSeparator: ',',
    ...options
  };
  validateArrayFormatSeparator(options.arrayFormatSeparator);
  const shouldFilter = key => options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === '';
  const formatter = encoderForArrayFormat(options);
  const objectCopy = {};
  for (const [key, value] of Object.entries(object)) {
    if (!shouldFilter(key)) {
      objectCopy[key] = value;
    }
  }
  const keys = Object.keys(objectCopy);
  if (options.sort !== false) {
    keys.sort(options.sort);
  }
  return keys.map(key => {
    const value = object[key];
    if (value === undefined) {
      return '';
    }
    if (value === null) {
      return encode(key, options);
    }
    if (Array.isArray(value)) {
      if (value.length === 0 && options.arrayFormat === 'bracket-separator') {
        return encode(key, options) + '[]';
      }
      return value.reduce(formatter(key), []).join('&');
    }
    return encode(key, options) + '=' + encode(value, options);
  }).filter(x => x.length > 0).join('&');
}
function parseUrl(url, options) {
  var _url_$split$, _url_;
  options = {
    decode: true,
    ...options
  };
  let [url_, hash] = splitOnFirst(url, '#');
  if (url_ === undefined) {
    url_ = url;
  }
  return {
    url: (_url_$split$ = (_url_ = url_) === null || _url_ === void 0 || (_url_ = _url_.split('?')) === null || _url_ === void 0 ? void 0 : _url_[0]) !== null && _url_$split$ !== void 0 ? _url_$split$ : '',
    query: parse(extract(url), options),
    ...(options && options.parseFragmentIdentifier && hash ? {
      fragmentIdentifier: base_decode(hash, options)
    } : {})
  };
}
function stringifyUrl(object, options) {
  options = {
    encode: true,
    strict: true,
    [encodeFragmentIdentifier]: true,
    ...options
  };
  const url = removeHash(object.url).split('?')[0] || '';
  const queryFromUrl = extract(object.url);
  const query = {
    ...parse(queryFromUrl, {
      sort: false
    }),
    ...object.query
  };
  let queryString = stringify(query, options);
  if (queryString) {
    queryString = "?".concat(queryString);
  }
  let hash = getHash(object.url);
  if (object.fragmentIdentifier) {
    const urlObjectForFragmentEncode = new URL(url);
    urlObjectForFragmentEncode.hash = object.fragmentIdentifier;
    hash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : "#".concat(object.fragmentIdentifier);
  }
  return "".concat(url).concat(queryString).concat(hash);
}
function pick(input, filter, options) {
  options = {
    parseFragmentIdentifier: true,
    [encodeFragmentIdentifier]: false,
    ...options
  };
  const {
    url,
    query,
    fragmentIdentifier
  } = parseUrl(input, options);
  return stringifyUrl({
    url,
    query: includeKeys(query, filter),
    fragmentIdentifier
  }, options);
}
function exclude(input, filter, options) {
  const exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);
  return pick(input, exclusionFilter, options);
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/query-string@8.1.0/node_modules/query-string/index.js

/* harmony default export */ const query_string = (base_namespaceObject);
;// CONCATENATED MODULE: ./src/libs/msg.js
/**
 * 获取当前tab信息
 * @returns
 */const getCurTab=async()=>{const[tab]=await browser.tabs.query({active:true,lastFocusedWindow:true});return tab;};const getCurTabId=async()=>{const tab=await getCurTab();return tab.id;};/**
 * 发送消息给background
 * @param {*} action
 * @param {*} args
 * @returns
 */const sendBgMsg=(action,args)=>browser.runtime.sendMessage({action,args});/**
 * 发送消息给当前页面
 * @param {*} action
 * @param {*} args
 * @returns
 */const sendTabMsg=async(action,args)=>{const tabId=await getCurTabId();return browser.tabs.sendMessage(tabId,{action,args});};
;// CONCATENATED MODULE: ./src/libs/pool.js
/**
 * 任务池
 * @param {*} fn
 * @param {*} preFn
 * @param {*} _interval
 * @param {*} _limit
 * @returns
 */const taskPool=function(fn,preFn){let _interval=arguments.length>2&&arguments[2]!==undefined?arguments[2]:100;let _limit=arguments.length>3&&arguments[3]!==undefined?arguments[3]:100;let _retryInteral=arguments.length>4&&arguments[4]!==undefined?arguments[4]:1000;const pool=[];const maxRetry=2;// 最大重试次数
let maxCount=_limit;// 最大数量
let curCount=0;// 当前数量
let interval=_interval;// 间隔时间
let timer=null;const run=async()=>{// console.log("timer", timer);
timer&&clearTimeout(timer);timer=setTimeout(run,interval);if(curCount<maxCount){const item=pool.shift();if(item){curCount++;const{args,resolve,reject,retry}=item;try{const preArgs=preFn?await preFn(item.args):{};const res=await fn({...args,...preArgs});resolve(res);}catch(err){log_kissLog(err,"task");if(retry<maxRetry){const retryTimer=setTimeout(()=>{clearTimeout(retryTimer);pool.push({args,resolve,reject,retry:retry+1});},_retryInteral);}else{reject(err);}}finally{curCount--;}}}};return{push:async args=>{if(!timer){run();}return new Promise((resolve,reject)=>{pool.push({args,resolve,reject,retry:0});});},update:function(){let _interval=arguments.length>0&&arguments[0]!==undefined?arguments[0]:100;let _limit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:100;if(_interval>=0&&_interval<=5000&&_interval!==interval){interval=_interval;}if(_limit>=1&&_limit<=100&&_limit!==maxCount){maxCount=_limit;}},clear:()=>{pool.length=0;curCount=0;timer&&clearTimeout(timer);timer=null;}};};
;// CONCATENATED MODULE: ./src/libs/auth.js
const parseMSToken=token=>{try{return JSON.parse(atob(token.split(".")[1])).exp;}catch(err){log_kissLog(err,"parseMSToken");}return 0;};/**
 * 闭包缓存token,减少对storage查询
 * @returns
 */const _msAuth=()=>{let{token,exp}={};return async()=>{// 查询内存缓存
const now=Date.now();if(token&&exp*1000>now+1000){return[token,exp];}// 查询storage缓存
const res=await getMsauth();token=res===null||res===void 0?void 0:res.token;exp=res===null||res===void 0?void 0:res.exp;if(token&&exp*1000>now+1000){return[token,exp];}// 缓存没有或失效,查询接口
token=await fetchHandle({input:URL_MICROSOFT_AUTH});exp=parseMSToken(token);await setMsauth({token,exp});return[token,exp];};};const msAuth=_msAuth();
;// CONCATENATED MODULE: ./src/apis/deepl.js
let id=1e4*Math.round(1e4*Math.random());const genDeeplFree=_ref=>{let{text,from,to}=_ref;const iCount=(text.match(/[i]/g)||[]).length+1;let timestamp=Date.now();timestamp=timestamp+(iCount-timestamp%iCount);id++;let body=JSON.stringify({jsonrpc:"2.0",method:"LMT_handle_texts",params:{splitting:"newlines",lang:{target_lang:to,source_lang_user_selected:from},commonJobParams:{wasSpoken:false,transcribe_as:""},id,timestamp,texts:[{text,requestAlternatives:3}]}});body=body.replace('method":"',(id+3)%13===0||(id+5)%29===0?'method" : "':'method": "');const init={headers:{"Content-Type":"application/json",Accept:"*/*","x-app-os-name":"iOS","x-app-os-version":"16.3.0","Accept-Language":"en-US,en;q=0.9","Accept-Encoding":"gzip, deflate, br","x-app-device":"iPhone13,2","User-Agent":"DeepL-iOS/2.9.1 iOS 16.3.0 (iPhone13,2)","x-app-build":"510265","x-app-version":"2.9.1"},method:"POST",body};return[URL_DEEPLFREE_TRAN,init];};
;// CONCATENATED MODULE: ./src/apis/baidu.js
const genBaidu=async _ref=>{let{text,from,to}=_ref;const data={from,to,query:text,source:"txt"};const init={headers:{// Origin: "https://fanyi.baidu.com",
"content-type":"application/x-www-form-urlencoded; charset=UTF-8","User-Agent":DEFAULT_USER_AGENT},method:"POST",body:query_string.stringify(data)};return[URL_BAIDU_TRANSAPI,init];};
// EXTERNAL MODULE: ./node_modules/.pnpm/sval@0.5.2/node_modules/sval/dist/sval.js
var sval = __webpack_require__(5021);
var sval_default = /*#__PURE__*/__webpack_require__.n(sval);
;// CONCATENATED MODULE: ./src/libs/interpreter.js
const interpreter=new (sval_default())({// ECMA Version of the code
// 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15
// or 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024
// or "latest"
ecmaVer:"latest",// Code source type
// "script" or "module"
sourceType:"script",// Whether the code runs in a sandbox
sandBox:true});/* harmony default export */ const libs_interpreter = (interpreter);
;// CONCATENATED MODULE: ./src/apis/trans.js
const keyMap=new Map();const urlMap=new Map();// 轮询key/url
const keyPick=function(translator){var _cacheMap$get;let key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";let cacheMap=arguments.length>2?arguments[2]:undefined;const keys=key.split(/\n|,/).map(item=>item.trim()).filter(Boolean);if(keys.length===0){return"";}const preIndex=(_cacheMap$get=cacheMap.get(translator))!==null&&_cacheMap$get!==void 0?_cacheMap$get:-1;const curIndex=(preIndex+1)%keys.length;cacheMap.set(translator,curIndex);return keys[curIndex];};const genGoogle=_ref=>{let{text,from,to,url,key}=_ref;const params={client:"gtx",dt:"t",dj:1,ie:"UTF-8",sl:from,tl:to,q:text};const input="".concat(url,"?").concat(query_string.stringify(params));const init={headers:{"Content-type":"application/json"}};if(key){init.headers.Authorization="Bearer ".concat(key);}return[input,init];};const genMicrosoft=async _ref2=>{let{text,from,to}=_ref2;const[token]=await msAuth();const params={from,to,"api-version":"3.0"};const input="".concat(URL_MICROSOFT_TRAN,"?").concat(query_string.stringify(params));const init={headers:{"Content-type":"application/json",Authorization:"Bearer ".concat(token)},method:"POST",body:JSON.stringify([{Text:text}])};return[input,init];};const genDeepl=_ref3=>{let{text,from,to,url,key}=_ref3;const data={text:[text],target_lang:to,source_lang:from// split_sentences: "0",
};const init={headers:{"Content-type":"application/json",Authorization:"DeepL-Auth-Key ".concat(key)},method:"POST",body:JSON.stringify(data)};return[url,init];};const genDeeplX=_ref4=>{let{text,from,to,url,key}=_ref4;const data={text,target_lang:to,source_lang:from};const init={headers:{"Content-type":"application/json"},method:"POST",body:JSON.stringify(data)};if(key){init.headers.Authorization="Bearer ".concat(key);}return[url,init];};const genNiuTrans=_ref5=>{let{text,from,to,url,key,dictNo,memoryNo}=_ref5;const data={from,to,apikey:key,src_text:text,dictNo,memoryNo};const init={headers:{"Content-type":"application/json"},method:"POST",body:JSON.stringify(data)};return[url,init];};const genTencent=_ref6=>{let{text,from,to}=_ref6;const data={header:{fn:"auto_translation_block"},source:{text_block:text,lang:from},target:{lang:to}};const init={headers:{"Content-Type":"application/json"},method:"POST",body:JSON.stringify(data)};return[URL_TENCENT_TRANSMART,init];};const genOpenAI=_ref7=>{let{text,from,to,url,key,prompt,model,temperature,maxTokens}=_ref7;prompt=prompt.replaceAll(INPUT_PLACE_FROM,from).replaceAll(INPUT_PLACE_TO,to);const data={model,messages:[{role:"system",content:prompt},{role:"user",content:text}],temperature,max_tokens:maxTokens};const init={headers:{"Content-type":"application/json",Authorization:"Bearer ".concat(key),// OpenAI
"api-key":key// Azure OpenAI
},method:"POST",body:JSON.stringify(data)};return[url,init];};const genGemini=_ref8=>{let{text,from,to,url,key,prompt,model}=_ref8;url=url.replaceAll(INPUT_PLACE_MODEL,model).replaceAll(INPUT_PLACE_KEY,key);prompt=prompt.replaceAll(INPUT_PLACE_FROM,from).replaceAll(INPUT_PLACE_TO,to).replaceAll(INPUT_PLACE_TEXT,text);const data={contents:[{// role: "user",
parts:[{text:prompt}]}]};const init={headers:{"Content-type":"application/json"},method:"POST",body:JSON.stringify(data)};return[url,init];};const genOllama=_ref9=>{let{text,from,to,url,key,prompt,model}=_ref9;prompt=prompt.replaceAll(INPUT_PLACE_FROM,from).replaceAll(INPUT_PLACE_TO,to).replaceAll(INPUT_PLACE_TEXT,text);const data={model,prompt,stream:false};const init={headers:{"Content-type":"application/json"},method:"POST",body:JSON.stringify(data)};if(key){init.headers.Authorization="Bearer ".concat(key);}return[url,init];};const genCloudflareAI=_ref10=>{let{text,from,to,url,key}=_ref10;const data={text,source_lang:from,target_lang:to};const init={headers:{"Content-type":"application/json",Authorization:"Bearer ".concat(key)},method:"POST",body:JSON.stringify(data)};return[url,init];};const genCustom=_ref11=>{let{text,from,to,url,key,reqHook}=_ref11;url=url.replaceAll(INPUT_PLACE_URL,url).replaceAll(INPUT_PLACE_FROM,from).replaceAll(INPUT_PLACE_TO,to).replaceAll(INPUT_PLACE_TEXT,text).replaceAll(INPUT_PLACE_KEY,key);let init={};if(reqHook!==null&&reqHook!==void 0&&reqHook.trim()){libs_interpreter.run("exports.reqHook = ".concat(reqHook));[url,init]=libs_interpreter.exports.reqHook(text,from,to,url,key);return[url,init];}const data={text,from,to};init={headers:{"Content-type":"application/json"},method:"POST",body:JSON.stringify(data)};if(key){init.headers.Authorization="Bearer ".concat(key);}return[url,init];};/**
 * 构造翻译接口请求参数
 * @param {*}
 * @returns
 */const genTransReq=(_ref12,apiSetting)=>{let{translator,text,from,to}=_ref12;const args={text,from,to,...apiSetting};switch(translator){case OPT_TRANS_DEEPL:case OPT_TRANS_OPENAI:case OPT_TRANS_OPENAI_2:case OPT_TRANS_OPENAI_3:case OPT_TRANS_GEMINI:case OPT_TRANS_CLOUDFLAREAI:case OPT_TRANS_OLLAMA:case OPT_TRANS_OLLAMA_2:case OPT_TRANS_OLLAMA_3:case OPT_TRANS_NIUTRANS:args.key=keyPick(translator,args.key,keyMap);break;case OPT_TRANS_DEEPLX:args.url=keyPick(translator,args.url,urlMap);break;default:}switch(translator){case OPT_TRANS_GOOGLE:return genGoogle(args);case OPT_TRANS_MICROSOFT:return genMicrosoft(args);case OPT_TRANS_DEEPL:return genDeepl(args);case OPT_TRANS_DEEPLFREE:return genDeeplFree(args);case OPT_TRANS_DEEPLX:return genDeeplX(args);case OPT_TRANS_NIUTRANS:return genNiuTrans(args);case OPT_TRANS_BAIDU:return genBaidu(args);case OPT_TRANS_TENCENT:return genTencent(args);case OPT_TRANS_OPENAI:case OPT_TRANS_OPENAI_2:case OPT_TRANS_OPENAI_3:return genOpenAI(args);case OPT_TRANS_GEMINI:return genGemini(args);case OPT_TRANS_CLOUDFLAREAI:return genCloudflareAI(args);case OPT_TRANS_OLLAMA:case OPT_TRANS_OLLAMA_2:case OPT_TRANS_OLLAMA_3:return genOllama(args);case OPT_TRANS_CUSTOMIZE:case OPT_TRANS_CUSTOMIZE_2:case OPT_TRANS_CUSTOMIZE_3:case OPT_TRANS_CUSTOMIZE_4:case OPT_TRANS_CUSTOMIZE_5:return genCustom(args);default:throw new Error("[trans] translator: ".concat(translator," not support"));}};
;// CONCATENATED MODULE: ./src/libs/utils.js
/**
 * 限制数字大小
 * @param {*} num
 * @param {*} min
 * @param {*} max
 * @returns
 */const limitNumber=function(num){let min=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;let max=arguments.length>2&&arguments[2]!==undefined?arguments[2]:100;const number=parseInt(num);if(Number.isNaN(number)||number<min){return min;}else if(number>max){return max;}return number;};const limitFloat=function(num){let min=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;let max=arguments.length>2&&arguments[2]!==undefined?arguments[2]:100;const number=parseFloat(num);if(Number.isNaN(number)||number<min){return min;}else if(number>max){return max;}return number;};/**
 * 匹配是否为数组中的值
 * @param {*} arr
 * @param {*} val
 * @returns
 */const matchValue=(arr,val)=>{if(arr.length===0||arr.includes(val)){return val;}return arr[0];};/**
 * 等待
 * @param {*} delay
 * @returns
 */const sleep=delay=>new Promise(resolve=>{const timer=setTimeout(()=>{clearTimeout(timer);resolve();},delay);});/**
 * 防抖函数
 * @param {*} func
 * @param {*} delay
 * @returns
 */const debounce=function(func){let delay=arguments.length>1&&arguments[1]!==undefined?arguments[1]:200;let timer=null;return function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}timer&&clearTimeout(timer);timer=setTimeout(()=>{func(...args);clearTimeout(timer);timer=null;},delay);};};/**
 * 节流函数
 * @param {*} func
 * @param {*} delay
 * @returns
 */const throttle=function(func){let delay=arguments.length>1&&arguments[1]!==undefined?arguments[1]:200;let timer=null;let cache=null;return function(){for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2];}if(!timer){func(...args);cache=null;timer=setTimeout(()=>{if(cache){func(...cache);cache=null;}clearTimeout(timer);timer=null;},delay);}else{cache=args;}};};/**
 * 判断字符串全是某个字符
 * @param {*} s
 * @param {*} c
 * @param {*} i
 * @returns
 */const isAllchar=function(s,c){let i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;while(i<s.length){if(s[i]!==c){return false;}i++;}return true;};/**
 * 字符串通配符(*)匹配
 * @param {*} s
 * @param {*} p
 * @returns
 */const isMatch=(s,p)=>{if(s.length===0||p.length===0){return false;}p="*"+p+"*";let[sIndex,pIndex]=[0,0];let[sRecord,pRecord]=[-1,-1];while(sIndex<s.length&&pRecord<p.length){if(p[pIndex]==="*"){pIndex++;[sRecord,pRecord]=[sIndex,pIndex];}else if(s[sIndex]===p[pIndex]){sIndex++;pIndex++;}else if(sRecord+1<s.length){sRecord++;[sIndex,pIndex]=[sRecord,pRecord];}else{return false;}}if(p.length===pIndex){return true;}return isAllchar(p,"*",pIndex);};/**
 * 类型检查
 * @param {*} o
 * @returns
 */const type=o=>{const s=Object.prototype.toString.call(o);return s.match(/\[object (.*?)\]/)[1].toLowerCase();};/**
 * sha256
 * @param {*} text
 * @returns
 */const utils_sha256=async(text,salt)=>{const data=new TextEncoder().encode(text+salt);const digest=await crypto.subtle.digest({name:"SHA-256"},data);return[...new Uint8Array(digest)].map(b=>b.toString(16).padStart(2,"0")).join("");};/**
 * 生成随机事件名称
 * @returns
 */const utils_genEventName=()=>btoa(Math.random()).slice(3,11);/**
 * 判断两个 Set 是否相同
 * @param {*} a
 * @param {*} b
 * @returns
 */const isSameSet=(a,b)=>{const s=new Set([...a,...b]);return s.size===a.size&&s.size===b.size;};/**
 * 去掉字符串末尾某个字符
 * @param {*} s
 * @param {*} c
 * @param {*} count
 * @returns
 */const removeEndchar=function(s,c){let count=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;let i=s.length;while(i>s.length-count&&s[i-1]===c){i--;}return s.slice(0,i);};/**
 * 匹配字符串及语言标识
 * @param {*} str
 * @param {*} sign
 * @returns
 */const matchInputStr=(str,sign)=>{switch(sign){case"//":return str.match(/\/\/([\w-]+)\s+([^]+)/);case"\\":return str.match(/\\([\w-]+)\s+([^]+)/);case"\\\\":return str.match(/\\\\([\w-]+)\s+([^]+)/);case">":return str.match(/>([\w-]+)\s+([^]+)/);case">>":return str.match(/>>([\w-]+)\s+([^]+)/);default:}return str.match(/\/([\w-]+)\s+([^]+)/);};/**
 * 判断是否英文单词
 * @param {*} str
 * @returns
 */const isValidWord=str=>{const regex=/^[a-zA-Z-]+$/;return regex.test(str);};/**
 * blob转为base64
 * @param {*} blob
 * @returns
 */const blobToBase64=blob=>{return new Promise(resolve=>{const reader=new FileReader();reader.onloadend=()=>resolve(reader.result);reader.readAsDataURL(blob);});};
;// CONCATENATED MODULE: ./src/libs/fetch.js
const TIMEOUT=5000;/**
 * 构造缓存 request
 * @param {*} input
 * @param {*} init
 * @returns
 */const newCacheReq=async(input,init)=>{let request=new Request(input,init);if(request.method!=="GET"){const body=await request.text();const cacheUrl=new URL(request.url);cacheUrl.pathname+=body;request=new Request(cacheUrl.toString(),{method:"GET"});}return request;};/**
 * 油猴脚本的请求封装
 * @param {*} input
 * @param {*} init
 * @returns
 */const fetchGM=async function(input){let{method="GET",headers,body}=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return new Promise((resolve,reject)=>{GM.xmlHttpRequest({method,url:input,headers,data:body,// withCredentials: true,
timeout:TIMEOUT,onload:_ref=>{let{response,responseHeaders,status,statusText}=_ref;const headers={};responseHeaders.split("\n").forEach(line=>{const[name,value]=line.split(":").map(item=>item.trim());if(name&&value){headers[name]=value;}});resolve({body:response,headers,status,statusText});},onerror:reject});});};/**
 * 发起请求
 * @param {*} param0
 * @returns
 */const fetchPatcher=async(input,init,transOpts,apiSetting)=>{var _AbortSignal;if(transOpts!==null&&transOpts!==void 0&&transOpts.translator){[input,init]=await genTransReq(transOpts,apiSetting);}if(!input){throw new Error("url is empty");}if(isGm){var _info,_info$script,_info2,_info2$script;let info;if(window.KISS_GM){info=await window.KISS_GM.getInfo();}else{info=GM.info;}// Tampermonkey --> .connects
// Violentmonkey --> .connect
const connects=((_info=info)===null||_info===void 0?void 0:(_info$script=_info.script)===null||_info$script===void 0?void 0:_info$script.connects)||((_info2=info)===null||_info2===void 0?void 0:(_info2$script=_info2.script)===null||_info2$script===void 0?void 0:_info2$script.connect)||[];const url=new URL(input);const isSafe=connects.find(item=>url.hostname.endsWith(item));if(isSafe){const{body,headers,status,statusText}=window.KISS_GM?await window.KISS_GM.fetch(input,init):await fetchGM(input,init);return new Response(body,{headers:new Headers(headers),status,statusText});}}if((_AbortSignal=AbortSignal)!==null&&_AbortSignal!==void 0&&_AbortSignal.timeout){Object.assign(init,{signal:AbortSignal.timeout(TIMEOUT)});}return fetch(input,init);};/**
 * 解析 response
 * @param {*} res
 * @returns
 */const parseResponse=async res=>{if(!res){return null;}const contentType=res.headers.get("Content-Type");if(contentType!==null&&contentType!==void 0&&contentType.includes("json")){return await res.json();}else if(contentType!==null&&contentType!==void 0&&contentType.includes("audio")){const blob=await res.blob();return await blobToBase64(blob);}return await res.text();};/**
 * 查询 caches
 * @param {*} input
 * @param {*} param1
 * @returns
 */const getHttpCache=async(input,_ref2)=>{let{method,headers,body}=_ref2;try{const req=await newCacheReq(input,{method,headers,body});const cache=await caches.open(CACHE_NAME);const res=await cache.match(req);return parseResponse(res);}catch(err){log_kissLog(err,"get cache");}return null;};/**
 * 插入 caches
 * @param {*} input
 * @param {*} param1
 * @param {*} res
 */const putHttpCache=async(input,_ref3,res)=>{let{method,headers,body}=_ref3;try{const req=await newCacheReq(input,{method,headers,body});const cache=await caches.open(CACHE_NAME);await cache.put(req,res);}catch(err){log_kissLog(err,"put cache");}};/**
 * 处理请求
 * @param {*} param0
 * @returns
 */const fetchHandle=async _ref4=>{let{input,useCache,transOpts,apiSetting,...init}=_ref4;// 发送请求
const res=await fetchPatcher(input,init,transOpts,apiSetting);if(!res){throw new Error("Unknow error");}else if(!res.ok){var _res$headers$get;const msg={url:res.url,status:res.status};if((_res$headers$get=res.headers.get("Content-Type"))!==null&&_res$headers$get!==void 0&&_res$headers$get.includes("json")){msg.response=await res.json();}throw new Error(JSON.stringify(msg));}// 插入缓存
if(useCache){await putHttpCache(input,init,res.clone());}return parseResponse(res);};/**
 * fetch 兼容性封装
 * @param {*} args
 * @returns
 */const fetchPolyfill=args=>{// 插件
if(isExt&&!isBg()){return sendBgMsg(MSG_FETCH,args);}// 油猴/网页/BackgroundPage
return fetchHandle(args);};/**
 * getHttpCache 兼容性封装
 * @param {*} input
 * @param {*} init
 * @returns
 */const getHttpCachePolyfill=(input,init)=>{// 插件
if(isExt&&!isBg()){return sendBgMsg(MSG_GET_HTTPCACHE,{input,init});}// 油猴/网页/BackgroundPage
return getHttpCache(input,init);};/**
 * 请求池实例
 */const fetchPool=taskPool(fetchPolyfill,null,DEFAULT_FETCH_INTERVAL,DEFAULT_FETCH_LIMIT);/**
 * 数据请求
 * @param {*} input
 * @param {*} param1
 * @returns
 */const fetchData=async function(input){let{useCache,usePool,...args}=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!(input!==null&&input!==void 0&&input.trim())){throw new Error("URL is empty");}// 查询缓存
if(useCache){const cache=await getHttpCachePolyfill(input,args);if(cache){return cache;}}// 通过任务池发送请求
if(usePool){return fetchPool.push({input,useCache,...args});}// 直接请求
return fetchPolyfill({input,useCache,...args});};/**
 * 更新 fetch pool 参数
 * @param {*} interval
 * @param {*} limit
 */const updateFetchPool=(interval,limit)=>{fetchPool.update(interval,limit);};/**
 * 清空任务池
 */const clearFetchPool=()=>{fetchPool.clear();};
;// CONCATENATED MODULE: ./src/apis/index.js
/**
 * 同步数据
 * @param {*} url
 * @param {*} key
 * @param {*} data
 * @returns
 */const apiSyncData=async(url,key,data)=>fetchData(url,{headers:{"Content-type":"application/json",Authorization:"Bearer ".concat(await utils_sha256(key,KV_SALT_SYNC))},method:"POST",body:JSON.stringify(data)});/**
 * 下载数据
 * @param {*} url
 * @returns
 */const apiFetch=url=>fetchData(url);/**
 * Google语言识别
 * @param {*} text
 * @returns
 */const apiGoogleLangdetect=async text=>{const params={client:"gtx",dt:"t",dj:1,ie:"UTF-8",sl:"auto",tl:"zh-CN",q:text};const input="".concat(URL_GOOGLE_TRAN,"?").concat(query_string.stringify(params));const res=await fetchData(input,{headers:{"Content-type":"application/json"},useCache:true});return res.src;};/**
 * Microsoft语言识别
 * @param {*} text
 * @returns
 */const apiMicrosoftLangdetect=async text=>{var _OPT_LANGS_MICROSOFT$;const[token]=await msAuth();const res=await fetchData(URL_MICROSOFT_LANGDETECT,{headers:{"Content-type":"application/json",Authorization:"Bearer ".concat(token)},method:"POST",body:JSON.stringify([{Text:text}]),useCache:true});return(_OPT_LANGS_MICROSOFT$=OPT_LANGS_MICROSOFT.get(res[0].language))!==null&&_OPT_LANGS_MICROSOFT$!==void 0?_OPT_LANGS_MICROSOFT$:res[0].language;};/**
 * 百度语言识别
 * @param {*} text
 * @returns
 */const apiBaiduLangdetect=async text=>{const res=await fetchData(URL_BAIDU_LANGDETECT,{headers:{"Content-type":"application/json"},method:"POST",body:JSON.stringify({query:text}),useCache:true});if(res.error===0){var _OPT_LANGS_BAIDU$get;return(_OPT_LANGS_BAIDU$get=OPT_LANGS_BAIDU.get(res.lan))!==null&&_OPT_LANGS_BAIDU$get!==void 0?_OPT_LANGS_BAIDU$get:res.lan;}return"";};/**
 * 百度翻译建议
 * @param {*} text
 * @returns
 */const apiBaiduSuggest=async text=>{const res=await fetchData(URL_BAIDU_SUGGEST,{headers:{"Content-type":"application/json"},method:"POST",body:JSON.stringify({kw:text}),useCache:true});if(res.errno===0){return res.data;}return[];};/**
 * 百度语音
 * @param {*} text
 * @param {*} lan
 * @param {*} spd
 * @returns
 */const apiBaiduTTS=function(text){let lan=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"uk";let spd=arguments.length>2&&arguments[2]!==undefined?arguments[2]:3;const url="".concat(URL_BAIDU_TTS,"?").concat(query_string.stringify({lan,text,spd}));return fetchData(url,{useCache:false// 为避免缓存过快增长,禁用缓存语音数据
});};/**
 * 腾讯语言识别
 * @param {*} text
 * @returns
 */const apiTencentLangdetect=async text=>{var _OPT_LANGS_TENCENT$ge;const body=JSON.stringify({header:{fn:"text_analysis"},text});const res=await fetchData(URL_TENCENT_TRANSMART,{headers:{"Content-type":"application/json"},method:"POST",body,useCache:true});return(_OPT_LANGS_TENCENT$ge=OPT_LANGS_TENCENT.get(res.language))!==null&&_OPT_LANGS_TENCENT$ge!==void 0?_OPT_LANGS_TENCENT$ge:res.language;};/**
 * 统一翻译接口
 * @param {*} param0
 * @returns
 */const apiTranslate=async _ref=>{var _OPT_LANGS_SPECIAL$tr,_res$result,_res$result2,_res$choices,_res$candidates,_res$result3;let{translator,text,fromLang,toLang,apiSetting={},useCache=true,usePool=true}=_ref;let trText="";let isSame=false;if(!text){return[trText,true];}const from=(_OPT_LANGS_SPECIAL$tr=OPT_LANGS_SPECIAL[translator].get(fromLang))!==null&&_OPT_LANGS_SPECIAL$tr!==void 0?_OPT_LANGS_SPECIAL$tr:OPT_LANGS_SPECIAL[translator].get("auto");const to=OPT_LANGS_SPECIAL[translator].get(toLang);if(!to){console.log("[trans] target lang: ".concat(toLang," not support"));return[trText,isSame];}// 版本号一/二位升级,旧缓存失效
const[v1,v2]="1.8.11".split(".");const cacheOpts={translator,text,fromLang,toLang,version:[v1,v2].join(".")};const transOpts={translator,text,from,to};const res=await fetchData("".concat(URL_CACHE_TRAN,"?").concat(query_string.stringify(cacheOpts)),{useCache,usePool,transOpts,apiSetting});switch(translator){case OPT_TRANS_GOOGLE:trText=res.sentences.map(item=>item.trans).join(" ");isSame=to===res.src;break;case OPT_TRANS_MICROSOFT:trText=res.map(item=>item.translations.map(item=>item.text).join(" ")).join(" ");isSame=text===trText;break;case OPT_TRANS_DEEPL:trText=res.translations.map(item=>item.text).join(" ");isSame=to===res.translations[0].detected_source_language;break;case OPT_TRANS_DEEPLFREE:trText=(_res$result=res.result)===null||_res$result===void 0?void 0:_res$result.texts.map(item=>item.text).join(" ");isSame=to===((_res$result2=res.result)===null||_res$result2===void 0?void 0:_res$result2.lang);break;case OPT_TRANS_DEEPLX:trText=res.data;isSame=to===res.source_lang;break;case OPT_TRANS_NIUTRANS:const json=JSON.parse(res);if(json.error_msg){throw new Error(json.error_msg);}trText=json.tgt_text;isSame=to===json.from;break;case OPT_TRANS_BAIDU:// trText = res.trans_result?.data.map((item) => item.dst).join(" ");
// isSame = res.trans_result?.to === res.trans_result?.from;
if(res.type===1){trText=Object.keys(JSON.parse(res.result).content[0].mean[0].cont)[0];isSame=to===res.from;}else if(res.type===2){trText=res.data.map(item=>item.dst).join(" ");isSame=to===res.from;}break;case OPT_TRANS_TENCENT:trText=res.auto_translation;isSame=text===trText;break;case OPT_TRANS_OPENAI:case OPT_TRANS_OPENAI_2:case OPT_TRANS_OPENAI_3:trText=res===null||res===void 0?void 0:(_res$choices=res.choices)===null||_res$choices===void 0?void 0:_res$choices.map(item=>item.message.content).join(" ");isSame=text===trText;break;case OPT_TRANS_GEMINI:trText=res===null||res===void 0?void 0:(_res$candidates=res.candidates)===null||_res$candidates===void 0?void 0:_res$candidates.map(item=>{var _item$content;return(_item$content=item.content)===null||_item$content===void 0?void 0:_item$content.parts.map(item=>item.text).join(" ");}).join(" ");isSame=text===trText;break;case OPT_TRANS_CLOUDFLAREAI:trText=res===null||res===void 0?void 0:(_res$result3=res.result)===null||_res$result3===void 0?void 0:_res$result3.translated_text;isSame=text===trText;break;case OPT_TRANS_OLLAMA:case OPT_TRANS_OLLAMA_2:case OPT_TRANS_OLLAMA_3:trText=res===null||res===void 0?void 0:res.response;isSame=text===trText;break;case OPT_TRANS_CUSTOMIZE:case OPT_TRANS_CUSTOMIZE_2:case OPT_TRANS_CUSTOMIZE_3:case OPT_TRANS_CUSTOMIZE_4:case OPT_TRANS_CUSTOMIZE_5:const{resHook}=apiSetting;if(resHook!==null&&resHook!==void 0&&resHook.trim()){libs_interpreter.run("exports.resHook = ".concat(resHook));[trText,isSame]=libs_interpreter.exports.resHook(res,text,from,to);}else{trText=res.text;isSame=to===res.from;}break;default:}return[trText,isSame,res];};
;// CONCATENATED MODULE: ./node_modules/.pnpm/webdav@5.3.0/node_modules/webdav/dist/web/index.js
/*! For license information please see index.js.LICENSE.txt */
var t = {
    584: t => {
      function e(t, e, o) {
        t instanceof RegExp && (t = r(t, o)), e instanceof RegExp && (e = r(e, o));
        var i = n(t, e, o);
        return i && {
          start: i[0],
          end: i[1],
          pre: o.slice(0, i[0]),
          body: o.slice(i[0] + t.length, i[1]),
          post: o.slice(i[1] + e.length)
        };
      }
      function r(t, e) {
        var r = e.match(t);
        return r ? r[0] : null;
      }
      function n(t, e, r) {
        var n,
          o,
          i,
          a,
          s,
          u = r.indexOf(t),
          c = r.indexOf(e, u + 1),
          l = u;
        if (u >= 0 && c > 0) {
          for (n = [], i = r.length; l >= 0 && !s;) l == u ? (n.push(l), u = r.indexOf(t, l + 1)) : 1 == n.length ? s = [n.pop(), c] : ((o = n.pop()) < i && (i = o, a = c), c = r.indexOf(e, l + 1)), l = u < c && u >= 0 ? u : c;
          n.length && (s = [i, a]);
        }
        return s;
      }
      t.exports = e, e.range = n;
    },
    146: function (t, e, r) {
      var n;
      function o(t) {
        return o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
          return typeof t;
        } : function (t) {
          return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
        }, o(t);
      }
      t = r.nmd(t), function (i) {
        var a = "object" == o(e) && e,
          s = "object" == o(t) && t && t.exports == a && t,
          u = "object" == ("undefined" == typeof global ? "undefined" : o(global)) && global;
        u.global !== u && u.window !== u || (i = u);
        var c = function (t) {
          this.message = t;
        };
        (c.prototype = new Error()).name = "InvalidCharacterError";
        var l = function (t) {
            throw new c(t);
          },
          f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
          h = /[\t\n\f\r ]/g,
          p = {
            encode: function (t) {
              t = String(t), /[^\0-\xFF]/.test(t) && l("The string to be encoded contains characters outside of the Latin1 range.");
              for (var e, r, n, o, i = t.length % 3, a = "", s = -1, u = t.length - i; ++s < u;) e = t.charCodeAt(s) << 16, r = t.charCodeAt(++s) << 8, n = t.charCodeAt(++s), a += f.charAt((o = e + r + n) >> 18 & 63) + f.charAt(o >> 12 & 63) + f.charAt(o >> 6 & 63) + f.charAt(63 & o);
              return 2 == i ? (e = t.charCodeAt(s) << 8, r = t.charCodeAt(++s), a += f.charAt((o = e + r) >> 10) + f.charAt(o >> 4 & 63) + f.charAt(o << 2 & 63) + "=") : 1 == i && (o = t.charCodeAt(s), a += f.charAt(o >> 2) + f.charAt(o << 4 & 63) + "=="), a;
            },
            decode: function (t) {
              var e = (t = String(t).replace(h, "")).length;
              e % 4 == 0 && (e = (t = t.replace(/==?$/, "")).length), (e % 4 == 1 || /[^+a-zA-Z0-9/]/.test(t)) && l("Invalid character: the string to be decoded is not correctly encoded.");
              for (var r, n, o = 0, i = "", a = -1; ++a < e;) n = f.indexOf(t.charAt(a)), r = o % 4 ? 64 * r + n : n, o++ % 4 && (i += String.fromCharCode(255 & r >> (-2 * o & 6)));
              return i;
            },
            version: "1.0.0"
          };
        if ("object" == o(r.amdO) && r.amdO) void 0 === (n = function () {
          return p;
        }.call(e, r, e, t)) || (t.exports = n);else if (a && !a.nodeType) {
          if (s) s.exports = p;else for (var d in p) p.hasOwnProperty(d) && (a[d] = p[d]);
        } else i.base64 = p;
      }(this);
    },
    918: (t, e) => {
      e.k = function (t) {
        if (!t) return 0;
        for (var e = (t = t.toString()).length, r = t.length; r--;) {
          var n = t.charCodeAt(r);
          56320 <= n && n <= 57343 && r--, 127 < n && n <= 2047 ? e++ : 2047 < n && n <= 65535 && (e += 2);
        }
        return e;
      };
    },
    106: t => {
      var e = {
        utf8: {
          stringToBytes: function (t) {
            return e.bin.stringToBytes(unescape(encodeURIComponent(t)));
          },
          bytesToString: function (t) {
            return decodeURIComponent(escape(e.bin.bytesToString(t)));
          }
        },
        bin: {
          stringToBytes: function (t) {
            for (var e = [], r = 0; r < t.length; r++) e.push(255 & t.charCodeAt(r));
            return e;
          },
          bytesToString: function (t) {
            for (var e = [], r = 0; r < t.length; r++) e.push(String.fromCharCode(t[r]));
            return e.join("");
          }
        }
      };
      t.exports = e;
    },
    718: t => {
      var e, r;
      e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", r = {
        rotl: function (t, e) {
          return t << e | t >>> 32 - e;
        },
        rotr: function (t, e) {
          return t << 32 - e | t >>> e;
        },
        endian: function (t) {
          if (t.constructor == Number) return 16711935 & r.rotl(t, 8) | 4278255360 & r.rotl(t, 24);
          for (var e = 0; e < t.length; e++) t[e] = r.endian(t[e]);
          return t;
        },
        randomBytes: function (t) {
          for (var e = []; t > 0; t--) e.push(Math.floor(256 * Math.random()));
          return e;
        },
        bytesToWords: function (t) {
          for (var e = [], r = 0, n = 0; r < t.length; r++, n += 8) e[n >>> 5] |= t[r] << 24 - n % 32;
          return e;
        },
        wordsToBytes: function (t) {
          for (var e = [], r = 0; r < 32 * t.length; r += 8) e.push(t[r >>> 5] >>> 24 - r % 32 & 255);
          return e;
        },
        bytesToHex: function (t) {
          for (var e = [], r = 0; r < t.length; r++) e.push((t[r] >>> 4).toString(16)), e.push((15 & t[r]).toString(16));
          return e.join("");
        },
        hexToBytes: function (t) {
          for (var e = [], r = 0; r < t.length; r += 2) e.push(parseInt(t.substr(r, 2), 16));
          return e;
        },
        bytesToBase64: function (t) {
          for (var r = [], n = 0; n < t.length; n += 3) for (var o = t[n] << 16 | t[n + 1] << 8 | t[n + 2], i = 0; i < 4; i++) 8 * n + 6 * i <= 8 * t.length ? r.push(e.charAt(o >>> 6 * (3 - i) & 63)) : r.push("=");
          return r.join("");
        },
        base64ToBytes: function (t) {
          t = t.replace(/[^A-Z0-9+\/]/gi, "");
          for (var r = [], n = 0, o = 0; n < t.length; o = ++n % 4) 0 != o && r.push((e.indexOf(t.charAt(n - 1)) & Math.pow(2, -2 * o + 8) - 1) << 2 * o | e.indexOf(t.charAt(n)) >>> 6 - 2 * o);
          return r;
        }
      }, t.exports = r;
    },
    5: (t, e, r) => {
      var n = r(135),
        o = r(586),
        i = r(39);
      t.exports = {
        XMLParser: o,
        XMLValidator: n,
        XMLBuilder: i
      };
    },
    410: (t, e) => {
      var r = ":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",
        n = "[" + r + "][" + r + "\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",
        o = new RegExp("^" + n + "$");
      e.isExist = function (t) {
        return void 0 !== t;
      }, e.isEmptyObject = function (t) {
        return 0 === Object.keys(t).length;
      }, e.merge = function (t, e, r) {
        if (e) for (var n = Object.keys(e), o = n.length, i = 0; i < o; i++) t[n[i]] = "strict" === r ? [e[n[i]]] : e[n[i]];
      }, e.getValue = function (t) {
        return e.isExist(t) ? t : "";
      }, e.isName = function (t) {
        return !(null == o.exec(t));
      }, e.getAllMatches = function (t, e) {
        for (var r = [], n = e.exec(t); n;) {
          var o = [];
          o.startIndex = e.lastIndex - n[0].length;
          for (var i = n.length, a = 0; a < i; a++) o.push(n[a]);
          r.push(o), n = e.exec(t);
        }
        return r;
      }, e.nameRegexp = n;
    },
    135: (t, e, r) => {
      var n = r(410),
        o = {
          allowBooleanAttributes: !1,
          unpairedTags: []
        };
      function i(t) {
        return " " === t || "\t" === t || "\n" === t || "\r" === t;
      }
      function a(t, e) {
        for (var r = e; e < t.length; e++) if ("?" != t[e] && " " != t[e]) ;else {
          var n = t.substr(r, e - r);
          if (e > 5 && "xml" === n) return d("InvalidXml", "XML declaration allowed only at the start of the document.", v(t, e));
          if ("?" == t[e] && ">" == t[e + 1]) {
            e++;
            break;
          }
        }
        return e;
      }
      function s(t, e) {
        if (t.length > e + 5 && "-" === t[e + 1] && "-" === t[e + 2]) {
          for (e += 3; e < t.length; e++) if ("-" === t[e] && "-" === t[e + 1] && ">" === t[e + 2]) {
            e += 2;
            break;
          }
        } else if (t.length > e + 8 && "D" === t[e + 1] && "O" === t[e + 2] && "C" === t[e + 3] && "T" === t[e + 4] && "Y" === t[e + 5] && "P" === t[e + 6] && "E" === t[e + 7]) {
          var r = 1;
          for (e += 8; e < t.length; e++) if ("<" === t[e]) r++;else if (">" === t[e] && 0 == --r) break;
        } else if (t.length > e + 9 && "[" === t[e + 1] && "C" === t[e + 2] && "D" === t[e + 3] && "A" === t[e + 4] && "T" === t[e + 5] && "A" === t[e + 6] && "[" === t[e + 7]) for (e += 8; e < t.length; e++) if ("]" === t[e] && "]" === t[e + 1] && ">" === t[e + 2]) {
          e += 2;
          break;
        }
        return e;
      }
      e.validate = function (t, e) {
        e = Object.assign({}, o, e);
        var r,
          u = [],
          c = !1,
          f = !1;
        "\ufeff" === t[0] && (t = t.substr(1));
        for (var g = 0; g < t.length; g++) if ("<" === t[g] && "?" === t[g + 1]) {
          if ((g = a(t, g += 2)).err) return g;
        } else {
          if ("<" !== t[g]) {
            if (i(t[g])) continue;
            return d("InvalidChar", "char '" + t[g] + "' is not expected.", v(t, g));
          }
          var y = g;
          if ("!" === t[++g]) {
            g = s(t, g);
            continue;
          }
          var m = !1;
          "/" === t[g] && (m = !0, g++);
          for (var b = ""; g < t.length && ">" !== t[g] && " " !== t[g] && "\t" !== t[g] && "\n" !== t[g] && "\r" !== t[g]; g++) b += t[g];
          if ("/" === (b = b.trim())[b.length - 1] && (b = b.substring(0, b.length - 1), g--), r = b, !n.isName(r)) return d("InvalidTag", 0 === b.trim().length ? "Invalid space after '<'." : "Tag '" + b + "' is an invalid name.", v(t, g));
          var w = l(t, g);
          if (!1 === w) return d("InvalidAttr", "Attributes for '" + b + "' have open quote.", v(t, g));
          var x = w.value;
          if (g = w.index, "/" === x[x.length - 1]) {
            var O = g - x.length,
              A = h(x = x.substring(0, x.length - 1), e);
            if (!0 !== A) return d(A.err.code, A.err.msg, v(t, O + A.err.line));
            c = !0;
          } else if (m) {
            if (!w.tagClosed) return d("InvalidTag", "Closing tag '" + b + "' doesn't have proper closing.", v(t, g));
            if (x.trim().length > 0) return d("InvalidTag", "Closing tag '" + b + "' can't have attributes or invalid starting.", v(t, y));
            var j = u.pop();
            if (b !== j.tagName) {
              var P = v(t, j.tagStartPos);
              return d("InvalidTag", "Expected closing tag '" + j.tagName + "' (opened in line " + P.line + ", col " + P.col + ") instead of closing tag '" + b + "'.", v(t, y));
            }
            0 == u.length && (f = !0);
          } else {
            var S = h(x, e);
            if (!0 !== S) return d(S.err.code, S.err.msg, v(t, g - x.length + S.err.line));
            if (!0 === f) return d("InvalidXml", "Multiple possible root nodes found.", v(t, g));
            -1 !== e.unpairedTags.indexOf(b) || u.push({
              tagName: b,
              tagStartPos: y
            }), c = !0;
          }
          for (g++; g < t.length; g++) if ("<" === t[g]) {
            if ("!" === t[g + 1]) {
              g = s(t, ++g);
              continue;
            }
            if ("?" !== t[g + 1]) break;
            if ((g = a(t, ++g)).err) return g;
          } else if ("&" === t[g]) {
            var E = p(t, g);
            if (-1 == E) return d("InvalidChar", "char '&' is not expected.", v(t, g));
            g = E;
          } else if (!0 === f && !i(t[g])) return d("InvalidXml", "Extra text at the end", v(t, g));
          "<" === t[g] && g--;
        }
        return c ? 1 == u.length ? d("InvalidTag", "Unclosed tag '" + u[0].tagName + "'.", v(t, u[0].tagStartPos)) : !(u.length > 0) || d("InvalidXml", "Invalid '" + JSON.stringify(u.map(function (t) {
          return t.tagName;
        }), null, 4).replace(/\r?\n/g, "") + "' found.", {
          line: 1,
          col: 1
        }) : d("InvalidXml", "Start tag expected.", 1);
      };
      var u = '"',
        c = "'";
      function l(t, e) {
        for (var r = "", n = "", o = !1; e < t.length; e++) {
          if (t[e] === u || t[e] === c) "" === n ? n = t[e] : n !== t[e] || (n = "");else if (">" === t[e] && "" === n) {
            o = !0;
            break;
          }
          r += t[e];
        }
        return "" === n && {
          value: r,
          index: e,
          tagClosed: o
        };
      }
      var f = new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?", "g");
      function h(t, e) {
        for (var r = n.getAllMatches(t, f), o = {}, i = 0; i < r.length; i++) {
          if (0 === r[i][1].length) return d("InvalidAttr", "Attribute '" + r[i][2] + "' has no space in starting.", y(r[i]));
          if (void 0 !== r[i][3] && void 0 === r[i][4]) return d("InvalidAttr", "Attribute '" + r[i][2] + "' is without value.", y(r[i]));
          if (void 0 === r[i][3] && !e.allowBooleanAttributes) return d("InvalidAttr", "boolean attribute '" + r[i][2] + "' is not allowed.", y(r[i]));
          var a = r[i][2];
          if (!g(a)) return d("InvalidAttr", "Attribute '" + a + "' is an invalid name.", y(r[i]));
          if (o.hasOwnProperty(a)) return d("InvalidAttr", "Attribute '" + a + "' is repeated.", y(r[i]));
          o[a] = 1;
        }
        return !0;
      }
      function p(t, e) {
        if (";" === t[++e]) return -1;
        if ("#" === t[e]) return function (t, e) {
          var r = /\d/;
          for ("x" === t[e] && (e++, r = /[\da-fA-F]/); e < t.length; e++) {
            if (";" === t[e]) return e;
            if (!t[e].match(r)) break;
          }
          return -1;
        }(t, ++e);
        for (var r = 0; e < t.length; e++, r++) if (!(t[e].match(/\w/) && r < 20)) {
          if (";" === t[e]) break;
          return -1;
        }
        return e;
      }
      function d(t, e, r) {
        return {
          err: {
            code: t,
            msg: e,
            line: r.line || r,
            col: r.col
          }
        };
      }
      function g(t) {
        return n.isName(t);
      }
      function v(t, e) {
        var r = t.substring(0, e).split(/\r?\n/);
        return {
          line: r.length,
          col: r[r.length - 1].length + 1
        };
      }
      function y(t) {
        return t.startIndex + t[1].length;
      }
    },
    39: (t, e, r) => {
      function n(t) {
        return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
          return typeof t;
        } : function (t) {
          return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
        }, n(t);
      }
      var o = r(354),
        i = {
          attributeNamePrefix: "@_",
          attributesGroupName: !1,
          textNodeName: "#text",
          ignoreAttributes: !0,
          cdataPropName: !1,
          format: !1,
          indentBy: "  ",
          suppressEmptyNode: !1,
          suppressUnpairedNode: !0,
          suppressBooleanAttributes: !0,
          tagValueProcessor: function (t, e) {
            return e;
          },
          attributeValueProcessor: function (t, e) {
            return e;
          },
          preserveOrder: !1,
          commentPropName: !1,
          unpairedTags: [],
          entities: [{
            regex: new RegExp("&", "g"),
            val: "&amp;"
          }, {
            regex: new RegExp(">", "g"),
            val: "&gt;"
          }, {
            regex: new RegExp("<", "g"),
            val: "&lt;"
          }, {
            regex: new RegExp("'", "g"),
            val: "&apos;"
          }, {
            regex: new RegExp('"', "g"),
            val: "&quot;"
          }],
          processEntities: !0,
          stopNodes: [],
          oneListGroup: !1
        };
      function a(t) {
        this.options = Object.assign({}, i, t), this.options.ignoreAttributes || this.options.attributesGroupName ? this.isAttribute = function () {
          return !1;
        } : (this.attrPrefixLen = this.options.attributeNamePrefix.length, this.isAttribute = c), this.processTextOrObjNode = s, this.options.format ? (this.indentate = u, this.tagEndChar = ">\n", this.newLine = "\n") : (this.indentate = function () {
          return "";
        }, this.tagEndChar = ">", this.newLine = "");
      }
      function s(t, e, r) {
        var n = this.j2x(t, r + 1);
        return void 0 !== t[this.options.textNodeName] && 1 === Object.keys(t).length ? this.buildTextValNode(t[this.options.textNodeName], e, n.attrStr, r) : this.buildObjectNode(n.val, e, n.attrStr, r);
      }
      function u(t) {
        return this.options.indentBy.repeat(t);
      }
      function c(t) {
        return !(!t.startsWith(this.options.attributeNamePrefix) || t === this.options.textNodeName) && t.substr(this.attrPrefixLen);
      }
      a.prototype.build = function (t) {
        return this.options.preserveOrder ? o(t, this.options) : (Array.isArray(t) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1 && (e = {}, n = t, (r = this.options.arrayNodeName) in e ? Object.defineProperty(e, r, {
          value: n,
          enumerable: !0,
          configurable: !0,
          writable: !0
        }) : e[r] = n, t = e), this.j2x(t, 0).val);
        var e, r, n;
      }, a.prototype.j2x = function (t, e) {
        var r = "",
          o = "";
        for (var i in t) if (void 0 === t[i]) this.isAttribute(i) && (o += "");else if (null === t[i]) this.isAttribute(i) ? o += "" : "?" === i[0] ? o += this.indentate(e) + "<" + i + "?" + this.tagEndChar : o += this.indentate(e) + "<" + i + "/" + this.tagEndChar;else if (t[i] instanceof Date) o += this.buildTextValNode(t[i], i, "", e);else if ("object" !== n(t[i])) {
          var a = this.isAttribute(i);
          if (a) r += this.buildAttrPairStr(a, "" + t[i]);else if (i === this.options.textNodeName) {
            var s = this.options.tagValueProcessor(i, "" + t[i]);
            o += this.replaceEntitiesValue(s);
          } else o += this.buildTextValNode(t[i], i, "", e);
        } else if (Array.isArray(t[i])) {
          for (var u = t[i].length, c = "", l = 0; l < u; l++) {
            var f = t[i][l];
            void 0 === f || (null === f ? "?" === i[0] ? o += this.indentate(e) + "<" + i + "?" + this.tagEndChar : o += this.indentate(e) + "<" + i + "/" + this.tagEndChar : "object" === n(f) ? this.options.oneListGroup ? c += this.j2x(f, e + 1).val : c += this.processTextOrObjNode(f, i, e) : c += this.buildTextValNode(f, i, "", e));
          }
          this.options.oneListGroup && (c = this.buildObjectNode(c, i, "", e)), o += c;
        } else if (this.options.attributesGroupName && i === this.options.attributesGroupName) for (var h = Object.keys(t[i]), p = h.length, d = 0; d < p; d++) r += this.buildAttrPairStr(h[d], "" + t[i][h[d]]);else o += this.processTextOrObjNode(t[i], i, e);
        return {
          attrStr: r,
          val: o
        };
      }, a.prototype.buildAttrPairStr = function (t, e) {
        return e = this.options.attributeValueProcessor(t, "" + e), e = this.replaceEntitiesValue(e), this.options.suppressBooleanAttributes && "true" === e ? " " + t : " " + t + '="' + e + '"';
      }, a.prototype.buildObjectNode = function (t, e, r, n) {
        if ("" === t) return "?" === e[0] ? this.indentate(n) + "<" + e + r + "?" + this.tagEndChar : this.indentate(n) + "<" + e + r + this.closeTag(e) + this.tagEndChar;
        var o = "</" + e + this.tagEndChar,
          i = "";
        return "?" === e[0] && (i = "?", o = ""), !r && "" !== r || -1 !== t.indexOf("<") ? !1 !== this.options.commentPropName && e === this.options.commentPropName && 0 === i.length ? this.indentate(n) + "\x3c!--".concat(t, "--\x3e") + this.newLine : this.indentate(n) + "<" + e + r + i + this.tagEndChar + t + this.indentate(n) + o : this.indentate(n) + "<" + e + r + i + ">" + t + o;
      }, a.prototype.closeTag = function (t) {
        var e = "";
        return -1 !== this.options.unpairedTags.indexOf(t) ? this.options.suppressUnpairedNode || (e = "/") : e = this.options.suppressEmptyNode ? "/" : "></".concat(t), e;
      }, a.prototype.buildTextValNode = function (t, e, r, n) {
        if (!1 !== this.options.cdataPropName && e === this.options.cdataPropName) return this.indentate(n) + "<![CDATA[".concat(t, "]]>") + this.newLine;
        if (!1 !== this.options.commentPropName && e === this.options.commentPropName) return this.indentate(n) + "\x3c!--".concat(t, "--\x3e") + this.newLine;
        if ("?" === e[0]) return this.indentate(n) + "<" + e + r + "?" + this.tagEndChar;
        var o = this.options.tagValueProcessor(e, t);
        return "" === (o = this.replaceEntitiesValue(o)) ? this.indentate(n) + "<" + e + r + this.closeTag(e) + this.tagEndChar : this.indentate(n) + "<" + e + r + ">" + o + "</" + e + this.tagEndChar;
      }, a.prototype.replaceEntitiesValue = function (t) {
        if (t && t.length > 0 && this.options.processEntities) for (var e = 0; e < this.options.entities.length; e++) {
          var r = this.options.entities[e];
          t = t.replace(r.regex, r.val);
        }
        return t;
      }, t.exports = a;
    },
    354: t => {
      function e(t, a, s, u) {
        for (var c = "", l = !1, f = 0; f < t.length; f++) {
          var h,
            p = t[f],
            d = r(p);
          if (h = 0 === s.length ? d : "".concat(s, ".").concat(d), d !== a.textNodeName) {
            if (d !== a.cdataPropName) {
              if (d !== a.commentPropName) {
                if ("?" !== d[0]) {
                  var g = u;
                  "" !== g && (g += a.indentBy);
                  var v = n(p[":@"], a),
                    y = u + "<".concat(d).concat(v),
                    m = e(p[d], a, h, g);
                  -1 !== a.unpairedTags.indexOf(d) ? a.suppressUnpairedNode ? c += y + ">" : c += y + "/>" : m && 0 !== m.length || !a.suppressEmptyNode ? m && m.endsWith(">") ? c += y + ">".concat(m).concat(u, "</").concat(d, ">") : (c += y + ">", m && "" !== u && (m.includes("/>") || m.includes("</")) ? c += u + a.indentBy + m + u : c += m, c += "</".concat(d, ">")) : c += y + "/>", l = !0;
                } else {
                  var b = n(p[":@"], a),
                    w = "?xml" === d ? "" : u,
                    x = p[d][0][a.textNodeName];
                  x = 0 !== x.length ? " " + x : "", c += w + "<".concat(d).concat(x).concat(b, "?>"), l = !0;
                }
              } else c += u + "\x3c!--".concat(p[d][0][a.textNodeName], "--\x3e"), l = !0;
            } else l && (c += u), c += "<![CDATA[".concat(p[d][0][a.textNodeName], "]]>"), l = !1;
          } else {
            var O = p[d];
            o(h, a) || (O = i(O = a.tagValueProcessor(d, O), a)), l && (c += u), c += O, l = !1;
          }
        }
        return c;
      }
      function r(t) {
        for (var e = Object.keys(t), r = 0; r < e.length; r++) {
          var n = e[r];
          if (":@" !== n) return n;
        }
      }
      function n(t, e) {
        var r = "";
        if (t && !e.ignoreAttributes) for (var n in t) {
          var o = e.attributeValueProcessor(n, t[n]);
          !0 === (o = i(o, e)) && e.suppressBooleanAttributes ? r += " ".concat(n.substr(e.attributeNamePrefix.length)) : r += " ".concat(n.substr(e.attributeNamePrefix.length), '="').concat(o, '"');
        }
        return r;
      }
      function o(t, e) {
        var r = (t = t.substr(0, t.length - e.textNodeName.length - 1)).substr(t.lastIndexOf(".") + 1);
        for (var n in e.stopNodes) if (e.stopNodes[n] === t || e.stopNodes[n] === "*." + r) return !0;
        return !1;
      }
      function i(t, e) {
        if (t && t.length > 0 && e.processEntities) for (var r = 0; r < e.entities.length; r++) {
          var n = e.entities[r];
          t = t.replace(n.regex, n.val);
        }
        return t;
      }
      t.exports = function (t, r) {
        var n = "";
        return r.format && r.indentBy.length > 0 && (n = "\n"), e(t, r, "", n);
      };
    },
    895: (t, e, r) => {
      function n(t, e) {
        return function (t) {
          if (Array.isArray(t)) return t;
        }(t) || function (t, e) {
          var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
          if (null != r) {
            var n,
              o,
              i = [],
              a = !0,
              s = !1;
            try {
              for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0);
            } catch (t) {
              s = !0, o = t;
            } finally {
              try {
                a || null == r.return || r.return();
              } finally {
                if (s) throw o;
              }
            }
            return i;
          }
        }(t, e) || function (t, e) {
          if (t) {
            if ("string" == typeof t) return o(t, e);
            var r = Object.prototype.toString.call(t).slice(8, -1);
            return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? o(t, e) : void 0;
          }
        }(t, e) || function () {
          throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
        }();
      }
      function o(t, e) {
        (null == e || e > t.length) && (e = t.length);
        for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
        return n;
      }
      var i = r(410);
      function a(t, e) {
        for (var r = ""; e < t.length && "'" !== t[e] && '"' !== t[e]; e++) r += t[e];
        if (-1 !== (r = r.trim()).indexOf(" ")) throw new Error("External entites are not supported");
        for (var n = t[e++], o = ""; e < t.length && t[e] !== n; e++) o += t[e];
        return [r, o, e];
      }
      function s(t, e) {
        return "!" === t[e + 1] && "-" === t[e + 2] && "-" === t[e + 3];
      }
      function u(t, e) {
        return "!" === t[e + 1] && "E" === t[e + 2] && "N" === t[e + 3] && "T" === t[e + 4] && "I" === t[e + 5] && "T" === t[e + 6] && "Y" === t[e + 7];
      }
      function c(t, e) {
        return "!" === t[e + 1] && "E" === t[e + 2] && "L" === t[e + 3] && "E" === t[e + 4] && "M" === t[e + 5] && "E" === t[e + 6] && "N" === t[e + 7] && "T" === t[e + 8];
      }
      function l(t, e) {
        return "!" === t[e + 1] && "A" === t[e + 2] && "T" === t[e + 3] && "T" === t[e + 4] && "L" === t[e + 5] && "I" === t[e + 6] && "S" === t[e + 7] && "T" === t[e + 8];
      }
      function f(t, e) {
        return "!" === t[e + 1] && "N" === t[e + 2] && "O" === t[e + 3] && "T" === t[e + 4] && "A" === t[e + 5] && "T" === t[e + 6] && "I" === t[e + 7] && "O" === t[e + 8] && "N" === t[e + 9];
      }
      function h(t) {
        if (i.isName(t)) return t;
        throw new Error("Invalid entity name ".concat(t));
      }
      t.exports = function (t, e) {
        var r = {};
        if ("O" !== t[e + 3] || "C" !== t[e + 4] || "T" !== t[e + 5] || "Y" !== t[e + 6] || "P" !== t[e + 7] || "E" !== t[e + 8]) throw new Error("Invalid Tag instead of DOCTYPE");
        e += 9;
        for (var o = 1, i = !1, p = !1; e < t.length; e++) if ("<" !== t[e] || p) {
          if (">" === t[e]) {
            if (p ? "-" === t[e - 1] && "-" === t[e - 2] && (p = !1, o--) : o--, 0 === o) break;
          } else "[" === t[e] ? i = !0 : t[e];
        } else {
          if (i && u(t, e)) {
            var d = n(a(t, (e += 7) + 1), 3);
            entityName = d[0], val = d[1], e = d[2], -1 === val.indexOf("&") && (r[h(entityName)] = {
              regx: RegExp("&".concat(entityName, ";"), "g"),
              val
            });
          } else if (i && c(t, e)) e += 8;else if (i && l(t, e)) e += 8;else if (i && f(t, e)) e += 9;else {
            if (!s) throw new Error("Invalid DOCTYPE");
            p = !0;
          }
          o++;
        }
        if (0 !== o) throw new Error("Unclosed DOCTYPE");
        return {
          entities: r,
          i: e
        };
      };
    },
    282: (t, e) => {
      var r = {
        preserveOrder: !1,
        attributeNamePrefix: "@_",
        attributesGroupName: !1,
        textNodeName: "#text",
        ignoreAttributes: !0,
        removeNSPrefix: !1,
        allowBooleanAttributes: !1,
        parseTagValue: !0,
        parseAttributeValue: !1,
        trimValues: !0,
        cdataPropName: !1,
        numberParseOptions: {
          hex: !0,
          leadingZeros: !0,
          eNotation: !0
        },
        tagValueProcessor: function (t, e) {
          return e;
        },
        attributeValueProcessor: function (t, e) {
          return e;
        },
        stopNodes: [],
        alwaysCreateTextNode: !1,
        isArray: function () {
          return !1;
        },
        commentPropName: !1,
        unpairedTags: [],
        processEntities: !0,
        htmlEntities: !1,
        ignoreDeclaration: !1,
        ignorePiTags: !1,
        transformTagName: !1,
        transformAttributeName: !1,
        updateTag: function (t, e, r) {
          return t;
        }
      };
      e.buildOptions = function (t) {
        return Object.assign({}, r, t);
      }, e.defaultOptions = r;
    },
    502: (t, e, r) => {
      function n(t, e, r) {
        return e in t ? Object.defineProperty(t, e, {
          value: r,
          enumerable: !0,
          configurable: !0,
          writable: !0
        }) : t[e] = r, t;
      }
      function o(t) {
        return o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
          return typeof t;
        } : function (t) {
          return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
        }, o(t);
      }
      function i(t, e) {
        for (var r = 0; r < e.length; r++) {
          var n = e[r];
          n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);
        }
      }
      function a(t, e, r) {
        return e && i(t.prototype, e), r && i(t, r), Object.defineProperty(t, "prototype", {
          writable: !1
        }), t;
      }
      var s = r(410),
        u = r(961),
        c = r(895),
        l = r(512),
        f = ("<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g, s.nameRegexp), a(function t(e) {
          !function (t, e) {
            if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function");
          }(this, t), this.options = e, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, this.lastEntities = {
            apos: {
              regex: /&(apos|#39|#x27);/g,
              val: "'"
            },
            gt: {
              regex: /&(gt|#62|#x3E);/g,
              val: ">"
            },
            lt: {
              regex: /&(lt|#60|#x3C);/g,
              val: "<"
            },
            quot: {
              regex: /&(quot|#34|#x22);/g,
              val: '"'
            }
          }, this.ampEntity = {
            regex: /&(amp|#38|#x26);/g,
            val: "&"
          }, this.htmlEntities = {
            space: {
              regex: /&(nbsp|#160);/g,
              val: " "
            },
            cent: {
              regex: /&(cent|#162);/g,
              val: "¢"
            },
            pound: {
              regex: /&(pound|#163);/g,
              val: "£"
            },
            yen: {
              regex: /&(yen|#165);/g,
              val: "¥"
            },
            euro: {
              regex: /&(euro|#8364);/g,
              val: "€"
            },
            copyright: {
              regex: /&(copy|#169);/g,
              val: "©"
            },
            reg: {
              regex: /&(reg|#174);/g,
              val: "®"
            },
            inr: {
              regex: /&(inr|#8377);/g,
              val: "₹"
            }
          }, this.addExternalEntities = h, this.parseXml = y, this.parseTextData = p, this.resolveNameSpace = d, this.buildAttributesMap = v, this.isItStopNode = x, this.replaceEntitiesValue = b, this.readStopNodeData = j, this.saveTextToParentTag = w, this.addChild = m;
        }));
      function h(t) {
        for (var e = Object.keys(t), r = 0; r < e.length; r++) {
          var n = e[r];
          this.lastEntities[n] = {
            regex: new RegExp("&" + n + ";", "g"),
            val: t[n]
          };
        }
      }
      function p(t, e, r, n, i, a, s) {
        if (void 0 !== t && (this.options.trimValues && !n && (t = t.trim()), t.length > 0)) {
          s || (t = this.replaceEntitiesValue(t));
          var u = this.options.tagValueProcessor(e, t, r, i, a);
          return null == u ? t : o(u) !== o(t) || u !== t ? u : this.options.trimValues || t.trim() === t ? P(t, this.options.parseTagValue, this.options.numberParseOptions) : t;
        }
      }
      function d(t) {
        if (this.options.removeNSPrefix) {
          var e = t.split(":"),
            r = "/" === t.charAt(0) ? "/" : "";
          if ("xmlns" === e[0]) return "";
          2 === e.length && (t = r + e[1]);
        }
        return t;
      }
      var g = new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?", "gm");
      function v(t, e, r) {
        if (!this.options.ignoreAttributes && "string" == typeof t) {
          for (var n = s.getAllMatches(t, g), i = n.length, a = {}, u = 0; u < i; u++) {
            var c = this.resolveNameSpace(n[u][1]),
              l = n[u][4],
              f = this.options.attributeNamePrefix + c;
            if (c.length) if (this.options.transformAttributeName && (f = this.options.transformAttributeName(f)), "__proto__" === f && (f = "#__proto__"), void 0 !== l) {
              this.options.trimValues && (l = l.trim()), l = this.replaceEntitiesValue(l);
              var h = this.options.attributeValueProcessor(c, l, e);
              null == h ? a[f] = l : o(h) !== o(l) || h !== l ? a[f] = h : a[f] = P(l, this.options.parseAttributeValue, this.options.numberParseOptions);
            } else this.options.allowBooleanAttributes && (a[f] = !0);
          }
          if (!Object.keys(a).length) return;
          if (this.options.attributesGroupName) {
            var p = {};
            return p[this.options.attributesGroupName] = a, p;
          }
          return a;
        }
      }
      var y = function (t) {
        t = t.replace(/\r\n?/g, "\n");
        for (var e = new u("!xml"), r = e, o = "", i = "", a = 0; a < t.length; a++) if ("<" === t[a]) {
          if ("/" === t[a + 1]) {
            var s = O(t, ">", a, "Closing Tag is not closed."),
              l = t.substring(a + 2, s).trim();
            if (this.options.removeNSPrefix) {
              var f = l.indexOf(":");
              -1 !== f && (l = l.substr(f + 1));
            }
            this.options.transformTagName && (l = this.options.transformTagName(l)), r && (o = this.saveTextToParentTag(o, r, i));
            var h = i.substring(i.lastIndexOf(".") + 1);
            if (l && -1 !== this.options.unpairedTags.indexOf(l)) throw new Error("Unpaired tag can not be used as closing tag: </".concat(l, ">"));
            var p = 0;
            h && -1 !== this.options.unpairedTags.indexOf(h) ? (p = i.lastIndexOf(".", i.lastIndexOf(".") - 1), this.tagsNodeStack.pop()) : p = i.lastIndexOf("."), i = i.substring(0, p), r = this.tagsNodeStack.pop(), o = "", a = s;
          } else if ("?" === t[a + 1]) {
            var d = A(t, a, !1, "?>");
            if (!d) throw new Error("Pi Tag is not closed.");
            if (o = this.saveTextToParentTag(o, r, i), this.options.ignoreDeclaration && "?xml" === d.tagName || this.options.ignorePiTags) ;else {
              var g = new u(d.tagName);
              g.add(this.options.textNodeName, ""), d.tagName !== d.tagExp && d.attrExpPresent && (g[":@"] = this.buildAttributesMap(d.tagExp, i, d.tagName)), this.addChild(r, g, i);
            }
            a = d.closeIndex + 1;
          } else if ("!--" === t.substr(a + 1, 3)) {
            var v = O(t, "--\x3e", a + 4, "Comment is not closed.");
            if (this.options.commentPropName) {
              var y = t.substring(a + 4, v - 2);
              o = this.saveTextToParentTag(o, r, i), r.add(this.options.commentPropName, [n({}, this.options.textNodeName, y)]);
            }
            a = v;
          } else if ("!D" === t.substr(a + 1, 2)) {
            var m = c(t, a);
            this.docTypeEntities = m.entities, a = m.i;
          } else if ("![" === t.substr(a + 1, 2)) {
            var b = O(t, "]]>", a, "CDATA is not closed.") - 2,
              w = t.substring(a + 9, b);
            if (o = this.saveTextToParentTag(o, r, i), this.options.cdataPropName) r.add(this.options.cdataPropName, [n({}, this.options.textNodeName, w)]);else {
              var x = this.parseTextData(w, r.tagname, i, !0, !1, !0);
              null == x && (x = ""), r.add(this.options.textNodeName, x);
            }
            a = b + 2;
          } else {
            var j = A(t, a, this.options.removeNSPrefix),
              P = j.tagName,
              S = j.tagExp,
              E = j.attrExpPresent,
              N = j.closeIndex;
            this.options.transformTagName && (P = this.options.transformTagName(P)), r && o && "!xml" !== r.tagname && (o = this.saveTextToParentTag(o, r, i, !1));
            var T = r;
            if (T && -1 !== this.options.unpairedTags.indexOf(T.tagname) && (r = this.tagsNodeStack.pop(), i = i.substring(0, i.lastIndexOf("."))), P !== e.tagname && (i += i ? "." + P : P), this.isItStopNode(this.options.stopNodes, i, P)) {
              var k = "";
              if (S.length > 0 && S.lastIndexOf("/") === S.length - 1) a = j.closeIndex;else if (-1 !== this.options.unpairedTags.indexOf(P)) a = j.closeIndex;else {
                var C = this.readStopNodeData(t, P, N + 1);
                if (!C) throw new Error("Unexpected end of ".concat(P));
                a = C.i, k = C.tagContent;
              }
              var I = new u(P);
              P !== S && E && (I[":@"] = this.buildAttributesMap(S, i, P)), k && (k = this.parseTextData(k, P, i, !0, E, !0, !0)), i = i.substr(0, i.lastIndexOf(".")), I.add(this.options.textNodeName, k), this.addChild(r, I, i);
            } else {
              if (S.length > 0 && S.lastIndexOf("/") === S.length - 1) {
                "/" === P[P.length - 1] ? (P = P.substr(0, P.length - 1), i = i.substr(0, i.length - 1), S = P) : S = S.substr(0, S.length - 1), this.options.transformTagName && (P = this.options.transformTagName(P));
                var _ = new u(P);
                P !== S && E && (_[":@"] = this.buildAttributesMap(S, i, P)), this.addChild(r, _, i), i = i.substr(0, i.lastIndexOf("."));
              } else {
                var R = new u(P);
                this.tagsNodeStack.push(r), P !== S && E && (R[":@"] = this.buildAttributesMap(S, i, P)), this.addChild(r, R, i), r = R;
              }
              o = "", a = N;
            }
          }
        } else o += t[a];
        return e.child;
      };
      function m(t, e, r) {
        var n = this.options.updateTag(e.tagname, r, e[":@"]);
        !1 === n || ("string" == typeof n ? (e.tagname = n, t.addChild(e)) : t.addChild(e));
      }
      var b = function (t) {
        if (this.options.processEntities) {
          for (var e in this.docTypeEntities) {
            var r = this.docTypeEntities[e];
            t = t.replace(r.regx, r.val);
          }
          for (var n in this.lastEntities) {
            var o = this.lastEntities[n];
            t = t.replace(o.regex, o.val);
          }
          if (this.options.htmlEntities) for (var i in this.htmlEntities) {
            var a = this.htmlEntities[i];
            t = t.replace(a.regex, a.val);
          }
          t = t.replace(this.ampEntity.regex, this.ampEntity.val);
        }
        return t;
      };
      function w(t, e, r, n) {
        return t && (void 0 === n && (n = 0 === Object.keys(e.child).length), void 0 !== (t = this.parseTextData(t, e.tagname, r, !1, !!e[":@"] && 0 !== Object.keys(e[":@"]).length, n)) && "" !== t && e.add(this.options.textNodeName, t), t = ""), t;
      }
      function x(t, e, r) {
        var n = "*." + r;
        for (var o in t) {
          var i = t[o];
          if (n === i || e === i) return !0;
        }
        return !1;
      }
      function O(t, e, r, n) {
        var o = t.indexOf(e, r);
        if (-1 === o) throw new Error(n);
        return o + e.length - 1;
      }
      function A(t, e, r) {
        var n = function (t, e) {
          for (var r, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ">", o = "", i = e; i < t.length; i++) {
            var a = t[i];
            if (r) a === r && (r = "");else if ('"' === a || "'" === a) r = a;else if (a === n[0]) {
              if (!n[1]) return {
                data: o,
                index: i
              };
              if (t[i + 1] === n[1]) return {
                data: o,
                index: i
              };
            } else "\t" === a && (a = " ");
            o += a;
          }
        }(t, e + 1, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : ">");
        if (n) {
          var o = n.data,
            i = n.index,
            a = o.search(/\s/),
            s = o,
            u = !0;
          if (-1 !== a && (s = o.substr(0, a).replace(/\s\s*$/, ""), o = o.substr(a + 1)), r) {
            var c = s.indexOf(":");
            -1 !== c && (u = (s = s.substr(c + 1)) !== n.data.substr(c + 1));
          }
          return {
            tagName: s,
            tagExp: o,
            closeIndex: i,
            attrExpPresent: u
          };
        }
      }
      function j(t, e, r) {
        for (var n = r, o = 1; r < t.length; r++) if ("<" === t[r]) if ("/" === t[r + 1]) {
          var i = O(t, ">", r, "".concat(e, " is not closed"));
          if (t.substring(r + 2, i).trim() === e && 0 == --o) return {
            tagContent: t.substring(n, r),
            i
          };
          r = i;
        } else if ("?" === t[r + 1]) r = O(t, "?>", r + 1, "StopNode is not closed.");else if ("!--" === t.substr(r + 1, 3)) r = O(t, "--\x3e", r + 3, "StopNode is not closed.");else if ("![" === t.substr(r + 1, 2)) r = O(t, "]]>", r, "StopNode is not closed.") - 2;else {
          var a = A(t, r, ">");
          a && ((a && a.tagName) === e && "/" !== a.tagExp[a.tagExp.length - 1] && o++, r = a.closeIndex);
        }
      }
      function P(t, e, r) {
        if (e && "string" == typeof t) {
          var n = t.trim();
          return "true" === n || "false" !== n && l(t, r);
        }
        return s.isExist(t) ? t : "";
      }
      t.exports = f;
    },
    586: (t, e, r) => {
      function n(t, e) {
        for (var r = 0; r < e.length; r++) {
          var n = e[r];
          n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);
        }
      }
      var o = r(282).buildOptions,
        i = r(502),
        a = r(869).prettify,
        s = r(135),
        u = function () {
          function t(e) {
            !function (t, e) {
              if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function");
            }(this, t), this.externalEntities = {}, this.options = o(e);
          }
          var e, r;
          return e = t, (r = [{
            key: "parse",
            value: function (t, e) {
              if ("string" == typeof t) ;else {
                if (!t.toString) throw new Error("XML data is accepted in String or Bytes[] form.");
                t = t.toString();
              }
              if (e) {
                !0 === e && (e = {});
                var r = s.validate(t, e);
                if (!0 !== r) throw Error("".concat(r.err.msg, ":").concat(r.err.line, ":").concat(r.err.col));
              }
              var n = new i(this.options);
              n.addExternalEntities(this.externalEntities);
              var o = n.parseXml(t);
              return this.options.preserveOrder || void 0 === o ? o : a(o, this.options);
            }
          }, {
            key: "addEntity",
            value: function (t, e) {
              if (-1 !== e.indexOf("&")) throw new Error("Entity value can't have '&'");
              if (-1 !== t.indexOf("&") || -1 !== t.indexOf(";")) throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");
              if ("&" === e) throw new Error("An entity with value '&' is not permitted");
              this.externalEntities[t] = e;
            }
          }]) && n(e.prototype, r), Object.defineProperty(e, "prototype", {
            writable: !1
          }), t;
        }();
      t.exports = u;
    },
    869: (t, e) => {
      function r(t, e, a) {
        for (var s, u = {}, c = 0; c < t.length; c++) {
          var l,
            f = t[c],
            h = n(f);
          if (l = void 0 === a ? h : a + "." + h, h === e.textNodeName) void 0 === s ? s = f[h] : s += "" + f[h];else {
            if (void 0 === h) continue;
            if (f[h]) {
              var p = r(f[h], e, l),
                d = i(p, e);
              f[":@"] ? o(p, f[":@"], l, e) : 1 !== Object.keys(p).length || void 0 === p[e.textNodeName] || e.alwaysCreateTextNode ? 0 === Object.keys(p).length && (e.alwaysCreateTextNode ? p[e.textNodeName] = "" : p = "") : p = p[e.textNodeName], void 0 !== u[h] && u.hasOwnProperty(h) ? (Array.isArray(u[h]) || (u[h] = [u[h]]), u[h].push(p)) : e.isArray(h, l, d) ? u[h] = [p] : u[h] = p;
            }
          }
        }
        return "string" == typeof s ? s.length > 0 && (u[e.textNodeName] = s) : void 0 !== s && (u[e.textNodeName] = s), u;
      }
      function n(t) {
        for (var e = Object.keys(t), r = 0; r < e.length; r++) {
          var n = e[r];
          if (":@" !== n) return n;
        }
      }
      function o(t, e, r, n) {
        if (e) for (var o = Object.keys(e), i = o.length, a = 0; a < i; a++) {
          var s = o[a];
          n.isArray(s, r + "." + s, !0, !0) ? t[s] = [e[s]] : t[s] = e[s];
        }
      }
      function i(t, e) {
        var r = e.textNodeName,
          n = Object.keys(t).length;
        return 0 === n || !(1 !== n || !t[r] && "boolean" != typeof t[r] && 0 !== t[r]);
      }
      e.prettify = function (t, e) {
        return r(t, e);
      };
    },
    961: t => {
      function e(t, e, r) {
        return e in t ? Object.defineProperty(t, e, {
          value: r,
          enumerable: !0,
          configurable: !0,
          writable: !0
        }) : t[e] = r, t;
      }
      function r(t, e) {
        for (var r = 0; r < e.length; r++) {
          var n = e[r];
          n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);
        }
      }
      var n = function () {
        function t(e) {
          !function (t, e) {
            if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function");
          }(this, t), this.tagname = e, this.child = [], this[":@"] = {};
        }
        var n, o;
        return n = t, (o = [{
          key: "add",
          value: function (t, r) {
            "__proto__" === t && (t = "#__proto__"), this.child.push(e({}, t, r));
          }
        }, {
          key: "addChild",
          value: function (t) {
            var r;
            "__proto__" === t.tagname && (t.tagname = "#__proto__"), t[":@"] && Object.keys(t[":@"]).length > 0 ? this.child.push((e(r = {}, t.tagname, t.child), e(r, ":@", t[":@"]), r)) : this.child.push(e({}, t.tagname, t.child));
          }
        }]) && r(n.prototype, o), Object.defineProperty(n, "prototype", {
          writable: !1
        }), t;
      }();
      t.exports = n;
    },
    163: t => {
      function e(t) {
        return !!t.constructor && "function" == typeof t.constructor.isBuffer && t.constructor.isBuffer(t);
      }
      t.exports = function (t) {
        return null != t && (e(t) || function (t) {
          return "function" == typeof t.readFloatLE && "function" == typeof t.slice && e(t.slice(0, 0));
        }(t) || !!t._isBuffer);
      };
    },
    243: (t, e, r) => {
      var n, o, i, a, s;
      n = r(718), o = r(106).utf8, i = r(163), a = r(106).bin, (s = function t(e, r) {
        e.constructor == String ? e = r && "binary" === r.encoding ? a.stringToBytes(e) : o.stringToBytes(e) : i(e) ? e = Array.prototype.slice.call(e, 0) : Array.isArray(e) || e.constructor === Uint8Array || (e = e.toString());
        for (var s = n.bytesToWords(e), u = 8 * e.length, c = 1732584193, l = -271733879, f = -1732584194, h = 271733878, p = 0; p < s.length; p++) s[p] = 16711935 & (s[p] << 8 | s[p] >>> 24) | 4278255360 & (s[p] << 24 | s[p] >>> 8);
        s[u >>> 5] |= 128 << u % 32, s[14 + (u + 64 >>> 9 << 4)] = u;
        var d = t._ff,
          g = t._gg,
          v = t._hh,
          y = t._ii;
        for (p = 0; p < s.length; p += 16) {
          var m = c,
            b = l,
            w = f,
            x = h;
          c = d(c, l, f, h, s[p + 0], 7, -680876936), h = d(h, c, l, f, s[p + 1], 12, -389564586), f = d(f, h, c, l, s[p + 2], 17, 606105819), l = d(l, f, h, c, s[p + 3], 22, -1044525330), c = d(c, l, f, h, s[p + 4], 7, -176418897), h = d(h, c, l, f, s[p + 5], 12, 1200080426), f = d(f, h, c, l, s[p + 6], 17, -1473231341), l = d(l, f, h, c, s[p + 7], 22, -45705983), c = d(c, l, f, h, s[p + 8], 7, 1770035416), h = d(h, c, l, f, s[p + 9], 12, -1958414417), f = d(f, h, c, l, s[p + 10], 17, -42063), l = d(l, f, h, c, s[p + 11], 22, -1990404162), c = d(c, l, f, h, s[p + 12], 7, 1804603682), h = d(h, c, l, f, s[p + 13], 12, -40341101), f = d(f, h, c, l, s[p + 14], 17, -1502002290), c = g(c, l = d(l, f, h, c, s[p + 15], 22, 1236535329), f, h, s[p + 1], 5, -165796510), h = g(h, c, l, f, s[p + 6], 9, -1069501632), f = g(f, h, c, l, s[p + 11], 14, 643717713), l = g(l, f, h, c, s[p + 0], 20, -373897302), c = g(c, l, f, h, s[p + 5], 5, -701558691), h = g(h, c, l, f, s[p + 10], 9, 38016083), f = g(f, h, c, l, s[p + 15], 14, -660478335), l = g(l, f, h, c, s[p + 4], 20, -405537848), c = g(c, l, f, h, s[p + 9], 5, 568446438), h = g(h, c, l, f, s[p + 14], 9, -1019803690), f = g(f, h, c, l, s[p + 3], 14, -187363961), l = g(l, f, h, c, s[p + 8], 20, 1163531501), c = g(c, l, f, h, s[p + 13], 5, -1444681467), h = g(h, c, l, f, s[p + 2], 9, -51403784), f = g(f, h, c, l, s[p + 7], 14, 1735328473), c = v(c, l = g(l, f, h, c, s[p + 12], 20, -1926607734), f, h, s[p + 5], 4, -378558), h = v(h, c, l, f, s[p + 8], 11, -2022574463), f = v(f, h, c, l, s[p + 11], 16, 1839030562), l = v(l, f, h, c, s[p + 14], 23, -35309556), c = v(c, l, f, h, s[p + 1], 4, -1530992060), h = v(h, c, l, f, s[p + 4], 11, 1272893353), f = v(f, h, c, l, s[p + 7], 16, -155497632), l = v(l, f, h, c, s[p + 10], 23, -1094730640), c = v(c, l, f, h, s[p + 13], 4, 681279174), h = v(h, c, l, f, s[p + 0], 11, -358537222), f = v(f, h, c, l, s[p + 3], 16, -722521979), l = v(l, f, h, c, s[p + 6], 23, 76029189), c = v(c, l, f, h, s[p + 9], 4, -640364487), h = v(h, c, l, f, s[p + 12], 11, -421815835), f = v(f, h, c, l, s[p + 15], 16, 530742520), c = y(c, l = v(l, f, h, c, s[p + 2], 23, -995338651), f, h, s[p + 0], 6, -198630844), h = y(h, c, l, f, s[p + 7], 10, 1126891415), f = y(f, h, c, l, s[p + 14], 15, -1416354905), l = y(l, f, h, c, s[p + 5], 21, -57434055), c = y(c, l, f, h, s[p + 12], 6, 1700485571), h = y(h, c, l, f, s[p + 3], 10, -1894986606), f = y(f, h, c, l, s[p + 10], 15, -1051523), l = y(l, f, h, c, s[p + 1], 21, -2054922799), c = y(c, l, f, h, s[p + 8], 6, 1873313359), h = y(h, c, l, f, s[p + 15], 10, -30611744), f = y(f, h, c, l, s[p + 6], 15, -1560198380), l = y(l, f, h, c, s[p + 13], 21, 1309151649), c = y(c, l, f, h, s[p + 4], 6, -145523070), h = y(h, c, l, f, s[p + 11], 10, -1120210379), f = y(f, h, c, l, s[p + 2], 15, 718787259), l = y(l, f, h, c, s[p + 9], 21, -343485551), c = c + m >>> 0, l = l + b >>> 0, f = f + w >>> 0, h = h + x >>> 0;
        }
        return n.endian([c, l, f, h]);
      })._ff = function (t, e, r, n, o, i, a) {
        var s = t + (e & r | ~e & n) + (o >>> 0) + a;
        return (s << i | s >>> 32 - i) + e;
      }, s._gg = function (t, e, r, n, o, i, a) {
        var s = t + (e & n | r & ~n) + (o >>> 0) + a;
        return (s << i | s >>> 32 - i) + e;
      }, s._hh = function (t, e, r, n, o, i, a) {
        var s = t + (e ^ r ^ n) + (o >>> 0) + a;
        return (s << i | s >>> 32 - i) + e;
      }, s._ii = function (t, e, r, n, o, i, a) {
        var s = t + (r ^ (e | ~n)) + (o >>> 0) + a;
        return (s << i | s >>> 32 - i) + e;
      }, s._blocksize = 16, s._digestsize = 16, t.exports = function (t, e) {
        if (null == t) throw new Error("Illegal argument " + t);
        var r = n.wordsToBytes(s(t, e));
        return e && e.asBytes ? r : e && e.asString ? a.bytesToString(r) : n.bytesToHex(r);
      };
    },
    637: (t, e, r) => {
      var n = r(584);
      t.exports = function (t) {
        return t ? ("{}" === t.substr(0, 2) && (t = "\\{\\}" + t.substr(2)), v(function (t) {
          return t.split("\\\\").join(o).split("\\{").join(i).split("\\}").join(a).split("\\,").join(s).split("\\.").join(u);
        }(t), !0).map(l)) : [];
      };
      var o = "\0SLASH" + Math.random() + "\0",
        i = "\0OPEN" + Math.random() + "\0",
        a = "\0CLOSE" + Math.random() + "\0",
        s = "\0COMMA" + Math.random() + "\0",
        u = "\0PERIOD" + Math.random() + "\0";
      function c(t) {
        return parseInt(t, 10) == t ? parseInt(t, 10) : t.charCodeAt(0);
      }
      function l(t) {
        return t.split(o).join("\\").split(i).join("{").split(a).join("}").split(s).join(",").split(u).join(".");
      }
      function f(t) {
        if (!t) return [""];
        var e = [],
          r = n("{", "}", t);
        if (!r) return t.split(",");
        var o = r.pre,
          i = r.body,
          a = r.post,
          s = o.split(",");
        s[s.length - 1] += "{" + i + "}";
        var u = f(a);
        return a.length && (s[s.length - 1] += u.shift(), s.push.apply(s, u)), e.push.apply(e, s), e;
      }
      function h(t) {
        return "{" + t + "}";
      }
      function p(t) {
        return /^-?0\d/.test(t);
      }
      function d(t, e) {
        return t <= e;
      }
      function g(t, e) {
        return t >= e;
      }
      function v(t, e) {
        var r = [],
          o = n("{", "}", t);
        if (!o) return [t];
        var i = o.pre,
          s = o.post.length ? v(o.post, !1) : [""];
        if (/\$$/.test(o.pre)) for (var u = 0; u < s.length; u++) {
          var l = i + "{" + o.body + "}" + s[u];
          r.push(l);
        } else {
          var y,
            m,
            b = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(o.body),
            w = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(o.body),
            x = b || w,
            O = o.body.indexOf(",") >= 0;
          if (!x && !O) return o.post.match(/,.*\}/) ? v(t = o.pre + "{" + o.body + a + o.post) : [t];
          if (x) y = o.body.split(/\.\./);else if (1 === (y = f(o.body)).length && 1 === (y = v(y[0], !1).map(h)).length) return s.map(function (t) {
            return o.pre + y[0] + t;
          });
          if (x) {
            var A = c(y[0]),
              j = c(y[1]),
              P = Math.max(y[0].length, y[1].length),
              S = 3 == y.length ? Math.abs(c(y[2])) : 1,
              E = d;
            j < A && (S *= -1, E = g);
            var N = y.some(p);
            m = [];
            for (var T = A; E(T, j); T += S) {
              var k;
              if (w) "\\" === (k = String.fromCharCode(T)) && (k = "");else if (k = String(T), N) {
                var C = P - k.length;
                if (C > 0) {
                  var I = new Array(C + 1).join("0");
                  k = T < 0 ? "-" + I + k.slice(1) : I + k;
                }
              }
              m.push(k);
            }
          } else {
            m = [];
            for (var _ = 0; _ < y.length; _++) m.push.apply(m, v(y[_], !1));
          }
          for (_ = 0; _ < m.length; _++) for (u = 0; u < s.length; u++) l = i + m[_] + s[u], (!e || x || l) && r.push(l);
        }
        return r;
      }
    },
    421: t => {
      function e(t) {
        return e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
          return typeof t;
        } : function (t) {
          return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
        }, e(t);
      }
      function r(t) {
        var e = "function" == typeof Map ? new Map() : void 0;
        return r = function (t) {
          if (null === t || (r = t, -1 === Function.toString.call(r).indexOf("[native code]"))) return t;
          var r;
          if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
          if (void 0 !== e) {
            if (e.has(t)) return e.get(t);
            e.set(t, a);
          }
          function a() {
            return n(t, arguments, i(this).constructor);
          }
          return a.prototype = Object.create(t.prototype, {
            constructor: {
              value: a,
              enumerable: !1,
              writable: !0,
              configurable: !0
            }
          }), o(a, t);
        }, r(t);
      }
      function n(t, e, r) {
        return n = function () {
          if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
          if (Reflect.construct.sham) return !1;
          if ("function" == typeof Proxy) return !0;
          try {
            return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0;
          } catch (t) {
            return !1;
          }
        }() ? Reflect.construct : function (t, e, r) {
          var n = [null];
          n.push.apply(n, e);
          var i = new (Function.bind.apply(t, n))();
          return r && o(i, r.prototype), i;
        }, n.apply(null, arguments);
      }
      function o(t, e) {
        return o = Object.setPrototypeOf || function (t, e) {
          return t.__proto__ = e, t;
        }, o(t, e);
      }
      function i(t) {
        return i = Object.setPrototypeOf ? Object.getPrototypeOf : function (t) {
          return t.__proto__ || Object.getPrototypeOf(t);
        }, i(t);
      }
      var a = "+",
        s = function (t) {
          function r(t) {
            var n;
            return function (t, e) {
              if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function");
            }(this, r), (n = function (t, r) {
              return !r || "object" !== e(r) && "function" != typeof r ? function (t) {
                if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return t;
              }(t) : r;
            }(this, i(r).call(this, t))).name = "ObjectPrototypeMutationError", n;
          }
          return function (t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
            t.prototype = Object.create(e && e.prototype, {
              constructor: {
                value: t,
                writable: !0,
                configurable: !0
              }
            }), e && o(t, e);
          }(r, t), r;
        }(r(Error));
      function u(t, r) {
        for (var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : function () {}, o = r.split("."), i = o.length, s = function (e) {
            var r = o[e];
            if (!t) return {
              v: void 0
            };
            if (r === a) {
              if (Array.isArray(t)) return {
                v: t.map(function (r, i) {
                  var a = o.slice(e + 1);
                  return a.length > 0 ? u(r, a.join("."), n) : n(t, i, o, e);
                })
              };
              var i = o.slice(0, e).join(".");
              throw new Error("Object at wildcard (".concat(i, ") is not an array"));
            }
            t = n(t, r, o, e);
          }, c = 0; c < i; c++) {
          var l = s(c);
          if ("object" === e(l)) return l.v;
        }
        return t;
      }
      function c(t, e) {
        return t.length === e + 1;
      }
      t.exports = {
        set: function (t, r, n) {
          if ("object" != e(t) || null === t) return t;
          if (void 0 === r) return t;
          if ("number" == typeof r) return t[r] = n, t[r];
          try {
            return u(t, r, function (t, e, r, o) {
              if (t === Reflect.getPrototypeOf({})) throw new s("Attempting to mutate Object.prototype");
              if (!t[e]) {
                var i = Number.isInteger(Number(r[o + 1])),
                  u = r[o + 1] === a;
                t[e] = i || u ? [] : {};
              }
              return c(r, o) && (t[e] = n), t[e];
            });
          } catch (e) {
            if (e instanceof s) throw e;
            return t;
          }
        },
        get: function (t, r) {
          if ("object" != e(t) || null === t) return t;
          if (void 0 === r) return t;
          if ("number" == typeof r) return t[r];
          try {
            return u(t, r, function (t, e) {
              return t[e];
            });
          } catch (e) {
            return t;
          }
        },
        has: function (t, r) {
          var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
          if ("object" != e(t) || null === t) return !1;
          if (void 0 === r) return !1;
          if ("number" == typeof r) return r in t;
          try {
            var o = !1;
            return u(t, r, function (t, e, r, i) {
              if (!c(r, i)) return t && t[e];
              o = n.own ? t.hasOwnProperty(e) : e in t;
            }), o;
          } catch (t) {
            return !1;
          }
        },
        hasOwn: function (t, e, r) {
          return this.has(t, e, r || {
            own: !0
          });
        },
        isIn: function (t, r, n) {
          var o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};
          if ("object" != e(t) || null === t) return !1;
          if (void 0 === r) return !1;
          try {
            var i = !1,
              a = !1;
            return u(t, r, function (t, r, o, s) {
              return i = i || t === n || !!t && t[r] === n, a = c(o, s) && "object" === e(t) && r in t, t && t[r];
            }), o.validPath ? i && a : i;
          } catch (t) {
            return !1;
          }
        },
        ObjectPrototypeMutationError: s
      };
    },
    441: (t, e, r) => {
      function n(t) {
        return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
          return typeof t;
        } : function (t) {
          return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
        }, n(t);
      }
      var o = r(930),
        i = function (t) {
          return "string" == typeof t;
        };
      function a(t, e) {
        for (var r = [], n = 0; n < t.length; n++) {
          var o = t[n];
          o && "." !== o && (".." === o ? r.length && ".." !== r[r.length - 1] ? r.pop() : e && r.push("..") : r.push(o));
        }
        return r;
      }
      var s = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,
        u = {};
      function c(t) {
        return s.exec(t).slice(1);
      }
      u.resolve = function () {
        for (var t = "", e = !1, r = arguments.length - 1; r >= -1 && !e; r--) {
          var n = r >= 0 ? arguments[r] : process.cwd();
          if (!i(n)) throw new TypeError("Arguments to path.resolve must be strings");
          n && (t = n + "/" + t, e = "/" === n.charAt(0));
        }
        return (e ? "/" : "") + (t = a(t.split("/"), !e).join("/")) || ".";
      }, u.normalize = function (t) {
        var e = u.isAbsolute(t),
          r = "/" === t.substr(-1);
        return (t = a(t.split("/"), !e).join("/")) || e || (t = "."), t && r && (t += "/"), (e ? "/" : "") + t;
      }, u.isAbsolute = function (t) {
        return "/" === t.charAt(0);
      }, u.join = function () {
        for (var t = "", e = 0; e < arguments.length; e++) {
          var r = arguments[e];
          if (!i(r)) throw new TypeError("Arguments to path.join must be strings");
          r && (t += t ? "/" + r : r);
        }
        return u.normalize(t);
      }, u.relative = function (t, e) {
        function r(t) {
          for (var e = 0; e < t.length && "" === t[e]; e++);
          for (var r = t.length - 1; r >= 0 && "" === t[r]; r--);
          return e > r ? [] : t.slice(e, r + 1);
        }
        t = u.resolve(t).substr(1), e = u.resolve(e).substr(1);
        for (var n = r(t.split("/")), o = r(e.split("/")), i = Math.min(n.length, o.length), a = i, s = 0; s < i; s++) if (n[s] !== o[s]) {
          a = s;
          break;
        }
        var c = [];
        for (s = a; s < n.length; s++) c.push("..");
        return (c = c.concat(o.slice(a))).join("/");
      }, u._makeLong = function (t) {
        return t;
      }, u.dirname = function (t) {
        var e = c(t),
          r = e[0],
          n = e[1];
        return r || n ? (n && (n = n.substr(0, n.length - 1)), r + n) : ".";
      }, u.basename = function (t, e) {
        var r = c(t)[2];
        return e && r.substr(-1 * e.length) === e && (r = r.substr(0, r.length - e.length)), r;
      }, u.extname = function (t) {
        return c(t)[3];
      }, u.format = function (t) {
        if (!o.isObject(t)) throw new TypeError("Parameter 'pathObject' must be an object, not " + n(t));
        var e = t.root || "";
        if (!i(e)) throw new TypeError("'pathObject.root' must be a string or undefined, not " + n(t.root));
        return (t.dir ? t.dir + u.sep : "") + (t.base || "");
      }, u.parse = function (t) {
        if (!i(t)) throw new TypeError("Parameter 'pathString' must be a string, not " + n(t));
        var e = c(t);
        if (!e || 4 !== e.length) throw new TypeError("Invalid path '" + t + "'");
        return e[1] = e[1] || "", e[2] = e[2] || "", e[3] = e[3] || "", {
          root: e[0],
          dir: e[0] + e[1].slice(0, e[1].length - 1),
          base: e[2],
          ext: e[3],
          name: e[2].slice(0, e[2].length - e[3].length)
        };
      }, u.sep = "/", u.delimiter = ":", t.exports = u;
    },
    361: (t, e) => {
      var r = Object.prototype.hasOwnProperty;
      function n(t) {
        try {
          return decodeURIComponent(t.replace(/\+/g, " "));
        } catch (t) {
          return null;
        }
      }
      function o(t) {
        try {
          return encodeURIComponent(t);
        } catch (t) {
          return null;
        }
      }
      e.stringify = function (t, e) {
        e = e || "";
        var n,
          i,
          a = [];
        for (i in "string" != typeof e && (e = "?"), t) if (r.call(t, i)) {
          if ((n = t[i]) || null != n && !isNaN(n) || (n = ""), i = o(i), n = o(n), null === i || null === n) continue;
          a.push(i + "=" + n);
        }
        return a.length ? e + a.join("&") : "";
      }, e.parse = function (t) {
        for (var e, r = /([^=?#&]+)=?([^&]*)/g, o = {}; e = r.exec(t);) {
          var i = n(e[1]),
            a = n(e[2]);
          null === i || null === a || i in o || (o[i] = a);
        }
        return o;
      };
    },
    620: t => {
      t.exports = function (t, e) {
        if (e = e.split(":")[0], !(t = +t)) return !1;
        switch (e) {
          case "http":
          case "ws":
            return 80 !== t;
          case "https":
          case "wss":
            return 443 !== t;
          case "ftp":
            return 21 !== t;
          case "gopher":
            return 70 !== t;
          case "file":
            return !1;
        }
        return 0 !== t;
      };
    },
    512: t => {
      var e = /^[-+]?0x[a-fA-F0-9]+$/,
        r = /^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;
      !Number.parseInt && window.parseInt && (Number.parseInt = window.parseInt), !Number.parseFloat && window.parseFloat && (Number.parseFloat = window.parseFloat);
      var n = {
        hex: !0,
        leadingZeros: !0,
        decimalPoint: ".",
        eNotation: !0
      };
      t.exports = function (t) {
        var o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        if (o = Object.assign({}, n, o), !t || "string" != typeof t) return t;
        var i = t.trim();
        if (void 0 !== o.skipLike && o.skipLike.test(i)) return t;
        if (o.hex && e.test(i)) return Number.parseInt(i, 16);
        var a = r.exec(i);
        if (a) {
          var s = a[1],
            u = a[2],
            c = function (t) {
              return t && -1 !== t.indexOf(".") ? ("." === (t = t.replace(/0+$/, "")) ? t = "0" : "." === t[0] ? t = "0" + t : "." === t[t.length - 1] && (t = t.substr(0, t.length - 1)), t) : t;
            }(a[3]),
            l = a[4] || a[6];
          if (!o.leadingZeros && u.length > 0 && s && "." !== i[2]) return t;
          if (!o.leadingZeros && u.length > 0 && !s && "." !== i[1]) return t;
          var f = Number(i),
            h = "" + f;
          return -1 !== h.search(/[eE]/) || l ? o.eNotation ? f : t : -1 !== i.indexOf(".") ? "0" === h && "" === c || h === c || s && h === "-" + c ? f : t : u ? c === h || s + c === h ? f : t : i === h || i === s + h ? f : t;
        }
        return t;
      };
    },
    95: (t, e, r) => {
      function n(t) {
        return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
          return typeof t;
        } : function (t) {
          return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
        }, n(t);
      }
      var o = r(620),
        i = r(361),
        a = /^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,
        s = /[\n\r\t]/g,
        u = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//,
        c = /:\d+$/,
        l = /^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,
        f = /^[a-zA-Z]:/;
      function h(t) {
        return (t || "").toString().replace(a, "");
      }
      var p = [["#", "hash"], ["?", "query"], function (t, e) {
          return v(e.protocol) ? t.replace(/\\/g, "/") : t;
        }, ["/", "pathname"], ["@", "auth", 1], [NaN, "host", void 0, 1, 1], [/:(\d*)$/, "port", void 0, 1], [NaN, "hostname", void 0, 1, 1]],
        d = {
          hash: 1,
          query: 1
        };
      function g(t) {
        var e,
          r = ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}).location || {},
          o = {},
          i = n(t = t || r);
        if ("blob:" === t.protocol) o = new m(unescape(t.pathname), {});else if ("string" === i) for (e in o = new m(t, {}), d) delete o[e];else if ("object" === i) {
          for (e in t) e in d || (o[e] = t[e]);
          void 0 === o.slashes && (o.slashes = u.test(t.href));
        }
        return o;
      }
      function v(t) {
        return "file:" === t || "ftp:" === t || "http:" === t || "https:" === t || "ws:" === t || "wss:" === t;
      }
      function y(t, e) {
        t = (t = h(t)).replace(s, ""), e = e || {};
        var r,
          n = l.exec(t),
          o = n[1] ? n[1].toLowerCase() : "",
          i = !!n[2],
          a = !!n[3],
          u = 0;
        return i ? a ? (r = n[2] + n[3] + n[4], u = n[2].length + n[3].length) : (r = n[2] + n[4], u = n[2].length) : a ? (r = n[3] + n[4], u = n[3].length) : r = n[4], "file:" === o ? u >= 2 && (r = r.slice(2)) : v(o) ? r = n[4] : o ? i && (r = r.slice(2)) : u >= 2 && v(e.protocol) && (r = n[4]), {
          protocol: o,
          slashes: i || v(o),
          slashesCount: u,
          rest: r
        };
      }
      function m(t, e, r) {
        if (t = (t = h(t)).replace(s, ""), !(this instanceof m)) return new m(t, e, r);
        var a,
          u,
          c,
          l,
          d,
          b,
          w = p.slice(),
          x = n(e),
          O = this,
          A = 0;
        for ("object" !== x && "string" !== x && (r = e, e = null), r && "function" != typeof r && (r = i.parse), a = !(u = y(t || "", e = g(e))).protocol && !u.slashes, O.slashes = u.slashes || a && e.slashes, O.protocol = u.protocol || e.protocol || "", t = u.rest, ("file:" === u.protocol && (2 !== u.slashesCount || f.test(t)) || !u.slashes && (u.protocol || u.slashesCount < 2 || !v(O.protocol))) && (w[3] = [/(.*)/, "pathname"]); A < w.length; A++) "function" != typeof (l = w[A]) ? (c = l[0], b = l[1], c != c ? O[b] = t : "string" == typeof c ? ~(d = "@" === c ? t.lastIndexOf(c) : t.indexOf(c)) && ("number" == typeof l[2] ? (O[b] = t.slice(0, d), t = t.slice(d + l[2])) : (O[b] = t.slice(d), t = t.slice(0, d))) : (d = c.exec(t)) && (O[b] = d[1], t = t.slice(0, d.index)), O[b] = O[b] || a && l[3] && e[b] || "", l[4] && (O[b] = O[b].toLowerCase())) : t = l(t, O);
        r && (O.query = r(O.query)), a && e.slashes && "/" !== O.pathname.charAt(0) && ("" !== O.pathname || "" !== e.pathname) && (O.pathname = function (t, e) {
          if ("" === t) return e;
          for (var r = (e || "/").split("/").slice(0, -1).concat(t.split("/")), n = r.length, o = r[n - 1], i = !1, a = 0; n--;) "." === r[n] ? r.splice(n, 1) : ".." === r[n] ? (r.splice(n, 1), a++) : a && (0 === n && (i = !0), r.splice(n, 1), a--);
          return i && r.unshift(""), "." !== o && ".." !== o || r.push(""), r.join("/");
        }(O.pathname, e.pathname)), "/" !== O.pathname.charAt(0) && v(O.protocol) && (O.pathname = "/" + O.pathname), o(O.port, O.protocol) || (O.host = O.hostname, O.port = ""), O.username = O.password = "", O.auth && (~(d = O.auth.indexOf(":")) ? (O.username = O.auth.slice(0, d), O.username = encodeURIComponent(decodeURIComponent(O.username)), O.password = O.auth.slice(d + 1), O.password = encodeURIComponent(decodeURIComponent(O.password))) : O.username = encodeURIComponent(decodeURIComponent(O.auth)), O.auth = O.password ? O.username + ":" + O.password : O.username), O.origin = "file:" !== O.protocol && v(O.protocol) && O.host ? O.protocol + "//" + O.host : "null", O.href = O.toString();
      }
      m.prototype = {
        set: function (t, e, r) {
          var n = this;
          switch (t) {
            case "query":
              "string" == typeof e && e.length && (e = (r || i.parse)(e)), n[t] = e;
              break;
            case "port":
              n[t] = e, o(e, n.protocol) ? e && (n.host = n.hostname + ":" + e) : (n.host = n.hostname, n[t] = "");
              break;
            case "hostname":
              n[t] = e, n.port && (e += ":" + n.port), n.host = e;
              break;
            case "host":
              n[t] = e, c.test(e) ? (e = e.split(":"), n.port = e.pop(), n.hostname = e.join(":")) : (n.hostname = e, n.port = "");
              break;
            case "protocol":
              n.protocol = e.toLowerCase(), n.slashes = !r;
              break;
            case "pathname":
            case "hash":
              if (e) {
                var a = "pathname" === t ? "/" : "#";
                n[t] = e.charAt(0) !== a ? a + e : e;
              } else n[t] = e;
              break;
            case "username":
            case "password":
              n[t] = encodeURIComponent(e);
              break;
            case "auth":
              var s = e.indexOf(":");
              ~s ? (n.username = e.slice(0, s), n.username = encodeURIComponent(decodeURIComponent(n.username)), n.password = e.slice(s + 1), n.password = encodeURIComponent(decodeURIComponent(n.password))) : n.username = encodeURIComponent(decodeURIComponent(e));
          }
          for (var u = 0; u < p.length; u++) {
            var l = p[u];
            l[4] && (n[l[1]] = n[l[1]].toLowerCase());
          }
          return n.auth = n.password ? n.username + ":" + n.password : n.username, n.origin = "file:" !== n.protocol && v(n.protocol) && n.host ? n.protocol + "//" + n.host : "null", n.href = n.toString(), n;
        },
        toString: function (t) {
          t && "function" == typeof t || (t = i.stringify);
          var e,
            r = this,
            o = r.host,
            a = r.protocol;
          a && ":" !== a.charAt(a.length - 1) && (a += ":");
          var s = a + (r.protocol && r.slashes || v(r.protocol) ? "//" : "");
          return r.username ? (s += r.username, r.password && (s += ":" + r.password), s += "@") : r.password ? (s += ":" + r.password, s += "@") : "file:" !== r.protocol && v(r.protocol) && !o && "/" !== r.pathname && (s += "@"), (":" === o[o.length - 1] || c.test(r.hostname) && !r.port) && (o += ":"), s += o + r.pathname, (e = "object" === n(r.query) ? t(r.query) : r.query) && (s += "?" !== e.charAt(0) ? "?" + e : e), r.hash && (s += r.hash), s;
        }
      }, m.extractProtocol = y, m.location = g, m.trimLeft = h, m.qs = i, t.exports = m;
    },
    930: () => {},
    227: () => {},
    347: () => {},
    724: () => {}
  },
  e = {};
function r(n) {
  var o = e[n];
  if (void 0 !== o) return o.exports;
  var i = e[n] = {
    id: n,
    loaded: !1,
    exports: {}
  };
  return t[n].call(i.exports, i, i.exports, r), i.loaded = !0, i.exports;
}
r.amdO = {}, r.n = t => {
  var e = t && t.__esModule ? () => t.default : () => t;
  return r.d(e, {
    a: e
  }), e;
}, r.d = (t, e) => {
  for (var n in e) r.o(e, n) && !r.o(t, n) && Object.defineProperty(t, n, {
    enumerable: !0,
    get: e[n]
  });
}, r.o = (t, e) => Object.prototype.hasOwnProperty.call(t, e), r.nmd = t => (t.paths = [], t.children || (t.children = []), t);
var n = {};
(() => {
  r.d(n, {
    Gr: () => I,
    jK: () => _,
    cf: () => M,
    HM: () => U,
    eI: () => Pr,
    lD: () => G,
    yY: () => Ee,
    sw: () => Pe,
    np: () => ve,
    _M: () => Ne
  });
  var t = r(95),
    e = r.n(t);
  function o(t) {
    if (!i(t)) throw new Error("Parameter was not an error");
  }
  function i(t) {
    return "[object Error]" === (e = t, Object.prototype.toString.call(e)) || t instanceof Error;
    var e;
  }
  function a(t) {
    return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
      return typeof t;
    } : function (t) {
      return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
    }, a(t);
  }
  function s(t) {
    return s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
      return typeof t;
    } : function (t) {
      return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
    }, s(t);
  }
  function u(t, e) {
    for (var r = 0; r < e.length; r++) {
      var n = e[r];
      n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);
    }
  }
  function c(t) {
    if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    return t;
  }
  function l(t) {
    var e = "function" == typeof Map ? new Map() : void 0;
    return l = function (t) {
      if (null === t || (r = t, -1 === Function.toString.call(r).indexOf("[native code]"))) return t;
      var r;
      if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
      if (void 0 !== e) {
        if (e.has(t)) return e.get(t);
        e.set(t, n);
      }
      function n() {
        return f(t, arguments, d(this).constructor);
      }
      return n.prototype = Object.create(t.prototype, {
        constructor: {
          value: n,
          enumerable: !1,
          writable: !0,
          configurable: !0
        }
      }), p(n, t);
    }, l(t);
  }
  function f(t, e, r) {
    return f = h() ? Reflect.construct.bind() : function (t, e, r) {
      var n = [null];
      n.push.apply(n, e);
      var o = new (Function.bind.apply(t, n))();
      return r && p(o, r.prototype), o;
    }, f.apply(null, arguments);
  }
  function h() {
    if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
    if (Reflect.construct.sham) return !1;
    if ("function" == typeof Proxy) return !0;
    try {
      return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;
    } catch (t) {
      return !1;
    }
  }
  function p(t, e) {
    return p = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
      return t.__proto__ = e, t;
    }, p(t, e);
  }
  function d(t) {
    return d = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
      return t.__proto__ || Object.getPrototypeOf(t);
    }, d(t);
  }
  var g = function (t) {
    !function (t, e) {
      if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
      t.prototype = Object.create(e && e.prototype, {
        constructor: {
          value: t,
          writable: !0,
          configurable: !0
        }
      }), Object.defineProperty(t, "prototype", {
        writable: !1
      }), e && p(t, e);
    }(v, t);
    var e,
      r,
      n,
      l,
      f,
      g = (l = v, f = h(), function () {
        var t,
          e = d(l);
        if (f) {
          var r = d(this).constructor;
          t = Reflect.construct(e, arguments, r);
        } else t = e.apply(this, arguments);
        return function (t, e) {
          if (e && ("object" === s(e) || "function" == typeof e)) return e;
          if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
          return c(t);
        }(this, t);
      });
    function v(t, e) {
      var r;
      !function (t, e) {
        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function");
      }(this, v);
      var n = function (t) {
          var e,
            r = "";
          if (0 === t.length) e = {};else if (i(t[0])) e = {
            cause: t[0]
          }, r = t.slice(1).join(" ") || "";else if (t[0] && "object" === a(t[0])) e = Object.assign({}, t[0]), r = t.slice(1).join(" ") || "";else {
            if ("string" != typeof t[0]) throw new Error("Invalid arguments passed to Layerr");
            e = {}, r = r = t.join(" ") || "";
          }
          return {
            options: e,
            shortMessage: r
          };
        }(Array.prototype.slice.call(arguments)),
        o = n.options,
        u = n.shortMessage;
      if (o.cause && (u = "".concat(u, ": ").concat(o.cause.message)), (r = g.call(this, u)).message = u, o.name && "string" == typeof o.name ? r.name = o.name : r.name = "Layerr", o.cause && Object.defineProperty(c(r), "_cause", {
        value: o.cause
      }), Object.defineProperty(c(r), "_info", {
        value: {}
      }), o.info && "object" === s(o.info) && Object.assign(r._info, o.info), Error.captureStackTrace) {
        var l = o.constructorOpt || r.constructor;
        Error.captureStackTrace(c(r), l);
      }
      return r;
    }
    return e = v, n = [{
      key: "cause",
      value: function (t) {
        return o(t), t._cause && i(t._cause) ? t._cause : null;
      }
    }, {
      key: "fullStack",
      value: function (t) {
        o(t);
        var e = v.cause(t);
        return e ? "".concat(t.stack, "\ncaused by: ").concat(v.fullStack(e)) : t.stack;
      }
    }, {
      key: "info",
      value: function (t) {
        o(t);
        var e = {},
          r = v.cause(t);
        return r && Object.assign(e, v.info(r)), t._info && Object.assign(e, t._info), e;
      }
    }], (r = [{
      key: "cause",
      value: function () {
        return v.cause(this);
      }
    }, {
      key: "toString",
      value: function () {
        var t = this.name || this.constructor.name || this.constructor.prototype.name;
        return this.message && (t = "".concat(t, ": ").concat(this.message)), t;
      }
    }]) && u(e.prototype, r), n && u(e, n), Object.defineProperty(e, "prototype", {
      writable: !1
    }), v;
  }(l(Error));
  function v(t) {
    return v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
      return typeof t;
    } : function (t) {
      return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
    }, v(t);
  }
  var y = r(441),
    m = r.n(y),
    b = "__PATH_SEPARATOR_POSIX__",
    w = "__PATH_SEPARATOR_WINDOWS__";
  function x(t) {
    try {
      var e = t.replace(/\//g, b).replace(/\\\\/g, w);
      return encodeURIComponent(e).split(w).join("\\\\").split(b).join("/");
    } catch (t) {
      throw new g(t, "Failed encoding path");
    }
  }
  function O(t) {
    return t.startsWith("/") ? t : "/" + t;
  }
  function A(t) {
    var e = t;
    return "/" !== e[0] && (e = "/" + e), /^.+\/$/.test(e) && (e = e.substr(0, e.length - 1)), e;
  }
  function j() {
    for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r];
    return function () {
      return function (t) {
        var e = [];
        if (0 === t.length) return "";
        if ("string" != typeof t[0]) throw new TypeError("Url must be a string. Received " + t[0]);
        if (t[0].match(/^[^/:]+:\/*$/) && t.length > 1) {
          var r = t.shift();
          t[0] = r + t[0];
        }
        t[0].match(/^file:\/\/\//) ? t[0] = t[0].replace(/^([^/:]+):\/*/, "$1:///") : t[0] = t[0].replace(/^([^/:]+):\/*/, "$1://");
        for (var n = 0; n < t.length; n++) {
          var o = t[n];
          if ("string" != typeof o) throw new TypeError("Url must be a string. Received " + o);
          "" !== o && (n > 0 && (o = o.replace(/^[\/]+/, "")), o = n < t.length - 1 ? o.replace(/[\/]+$/, "") : o.replace(/[\/]+$/, "/"), e.push(o));
        }
        var i = e.join("/"),
          a = (i = i.replace(/\/(\?|&|#[^!])/g, "$1")).split("?");
        return a.shift() + (a.length > 0 ? "?" : "") + a.join("&");
      }("object" === v(arguments[0]) ? arguments[0] : [].slice.call(arguments));
    }(e.reduce(function (t, e, r) {
      return (0 === r || "/" !== e || "/" === e && "/" !== t[t.length - 1]) && t.push(e), t;
    }, []));
  }
  var P = r(243),
    S = r.n(P),
    E = "abcdef0123456789";
  function N(t, e) {
    var r = t.url.replace("//", ""),
      n = -1 == r.indexOf("/") ? "/" : r.slice(r.indexOf("/")),
      o = t.method ? t.method.toUpperCase() : "GET",
      i = !!/(^|,)\s*auth\s*($|,)/.test(e.qop) && "auth",
      a = "00000000".concat(e.nc).slice(-8),
      s = function (t, e, r, n, o, i, a) {
        var s = a || S()("".concat(e, ":").concat(r, ":").concat(n));
        return t && "md5-sess" === t.toLowerCase() ? S()("".concat(s, ":").concat(o, ":").concat(i)) : s;
      }(e.algorithm, e.username, e.realm, e.password, e.nonce, e.cnonce, e.ha1),
      u = S()("".concat(o, ":").concat(n)),
      c = i ? S()("".concat(s, ":").concat(e.nonce, ":").concat(a, ":").concat(e.cnonce, ":").concat(i, ":").concat(u)) : S()("".concat(s, ":").concat(e.nonce, ":").concat(u)),
      l = {
        username: e.username,
        realm: e.realm,
        nonce: e.nonce,
        uri: n,
        qop: i,
        response: c,
        nc: a,
        cnonce: e.cnonce,
        algorithm: e.algorithm,
        opaque: e.opaque
      },
      f = [];
    for (var h in l) l[h] && ("qop" === h || "nc" === h || "algorithm" === h ? f.push("".concat(h, "=").concat(l[h])) : f.push("".concat(h, '="').concat(l[h], '"')));
    return "Digest ".concat(f.join(", "));
  }
  var T = r(146),
    k = r.n(T);
  function C(t) {
    return k().decode(t);
  }
  var I,
    _,
    R = "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ? self : "undefined" != typeof window ? window : globalThis,
    L = R.fetch.bind(R),
    M = (R.Headers, R.Request),
    U = R.Response;
  function D() {
    for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r];
    if (0 === e.length) throw new Error("Failed creating sequence: No functions provided");
    return function () {
      for (var t = arguments.length, r = new Array(t), n = 0; n < t; n++) r[n] = arguments[n];
      for (var o = r; e.length > 0;) o = [e.shift().apply(this, o)];
      return o[0];
    };
  }
  function F(t, e) {
    (null == e || e > t.length) && (e = t.length);
    for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
    return n;
  }
  function $(t, e) {
    for (var r = 0; r < e.length; r++) {
      var n = e[r];
      n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);
    }
  }
  !function (t) {
    t.Digest = "digest", t.None = "none", t.Password = "password", t.Token = "token";
  }(I || (I = {})), function (t) {
    t.DataTypeNoLength = "data-type-no-length", t.InvalidAuthType = "invalid-auth-type", t.InvalidOutputFormat = "invalid-output-format", t.LinkUnsupportedAuthType = "link-unsupported-auth";
  }(_ || (_ = {})), r(724);
  var B = "@@HOTPATCHER",
    W = function () {};
  function V(t) {
    return {
      original: t,
      methods: [t],
      final: !1
    };
  }
  var z = function () {
      function t() {
        !function (t, e) {
          if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function");
        }(this, t), this._configuration = {
          registry: {},
          getEmptyAction: "null"
        }, this.__type__ = B;
      }
      var e, r;
      return e = t, r = [{
        key: "configuration",
        get: function () {
          return this._configuration;
        }
      }, {
        key: "getEmptyAction",
        get: function () {
          return this.configuration.getEmptyAction;
        },
        set: function (t) {
          this.configuration.getEmptyAction = t;
        }
      }, {
        key: "control",
        value: function (t) {
          var e = this,
            r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
          if (!t || t.__type__ !== B) throw new Error("Failed taking control of target HotPatcher instance: Invalid type or object");
          return Object.keys(t.configuration.registry).forEach(function (n) {
            e.configuration.registry.hasOwnProperty(n) ? r && (e.configuration.registry[n] = Object.assign({}, t.configuration.registry[n])) : e.configuration.registry[n] = Object.assign({}, t.configuration.registry[n]);
          }), t._configuration = this.configuration, this;
        }
      }, {
        key: "execute",
        value: function (t) {
          for (var e = this.get(t) || W, r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), o = 1; o < r; o++) n[o - 1] = arguments[o];
          return e.apply(void 0, n);
        }
      }, {
        key: "get",
        value: function (t) {
          var e,
            r = this.configuration.registry[t];
          if (!r) switch (this.getEmptyAction) {
            case "null":
              return null;
            case "throw":
              throw new Error("Failed handling method request: No method provided for override: ".concat(t));
            default:
              throw new Error("Failed handling request which resulted in an empty method: Invalid empty-action specified: ".concat(this.getEmptyAction));
          }
          return D.apply(void 0, function (t) {
            if (Array.isArray(t)) return F(t);
          }(e = r.methods) || function (t) {
            if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t);
          }(e) || function (t, e) {
            if (t) {
              if ("string" == typeof t) return F(t, e);
              var r = Object.prototype.toString.call(t).slice(8, -1);
              return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? F(t, e) : void 0;
            }
          }(e) || function () {
            throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
          }());
        }
      }, {
        key: "isPatched",
        value: function (t) {
          return !!this.configuration.registry[t];
        }
      }, {
        key: "patch",
        value: function (t, e) {
          var r = (arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}).chain,
            n = void 0 !== r && r;
          if (this.configuration.registry[t] && this.configuration.registry[t].final) throw new Error("Failed patching '".concat(t, "': Method marked as being final"));
          if ("function" != typeof e) throw new Error("Failed patching '".concat(t, "': Provided method is not a function"));
          if (n) this.configuration.registry[t] ? this.configuration.registry[t].methods.push(e) : this.configuration.registry[t] = V(e);else if (this.isPatched(t)) {
            var o = this.configuration.registry[t].original;
            this.configuration.registry[t] = Object.assign(V(e), {
              original: o
            });
          } else this.configuration.registry[t] = V(e);
          return this;
        }
      }, {
        key: "patchInline",
        value: function (t, e) {
          this.isPatched(t) || this.patch(t, e);
          for (var r = arguments.length, n = new Array(r > 2 ? r - 2 : 0), o = 2; o < r; o++) n[o - 2] = arguments[o];
          return this.execute.apply(this, [t].concat(n));
        }
      }, {
        key: "plugin",
        value: function (t) {
          for (var e = this, r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), o = 1; o < r; o++) n[o - 1] = arguments[o];
          return n.forEach(function (r) {
            e.patch(t, r, {
              chain: !0
            });
          }), this;
        }
      }, {
        key: "restore",
        value: function (t) {
          if (!this.isPatched(t)) throw new Error("Failed restoring method: No method present for key: ".concat(t));
          if ("function" != typeof this.configuration.registry[t].original) throw new Error("Failed restoring method: Original method not found or of invalid type for key: ".concat(t));
          return this.configuration.registry[t].methods = [this.configuration.registry[t].original], this;
        }
      }, {
        key: "setFinal",
        value: function (t) {
          if (!this.configuration.registry.hasOwnProperty(t)) throw new Error("Failed marking '".concat(t, "' as final: No method found for key"));
          return this.configuration.registry[t].final = !0, this;
        }
      }], r && $(e.prototype, r), Object.defineProperty(e, "prototype", {
        writable: !1
      }), t;
    }(),
    q = null;
  function G() {
    return q || (q = new z()), q;
  }
  function H(t) {
    return function (t) {
      if (Array.isArray(t)) return X(t);
    }(t) || function (t) {
      if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t);
    }(t) || function (t, e) {
      if (t) {
        if ("string" == typeof t) return X(t, e);
        var r = Object.prototype.toString.call(t).slice(8, -1);
        return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? X(t, e) : void 0;
      }
    }(t) || function () {
      throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }();
  }
  function X(t, e) {
    (null == e || e > t.length) && (e = t.length);
    for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
    return n;
  }
  function Z(t) {
    return Z = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
      return typeof t;
    } : function (t) {
      return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
    }, Z(t);
  }
  function Y(t) {
    return function (t) {
      if ("object" !== Z(t) || null === t || "[object Object]" != Object.prototype.toString.call(t)) return !1;
      if (null === Object.getPrototypeOf(t)) return !0;
      for (var e = t; null !== Object.getPrototypeOf(e);) e = Object.getPrototypeOf(e);
      return Object.getPrototypeOf(t) === e;
    }(t) ? Object.assign({}, t) : Object.setPrototypeOf(Object.assign({}, t), Object.getPrototypeOf(t));
  }
  function K() {
    for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r];
    for (var n = null, o = [].concat(e); o.length > 0;) {
      var i = o.shift();
      n = n ? J(n, i) : Y(i);
    }
    return n;
  }
  function J(t, e) {
    var r = Y(t);
    return Object.keys(e).forEach(function (t) {
      r.hasOwnProperty(t) ? Array.isArray(e[t]) ? r[t] = Array.isArray(r[t]) ? [].concat(H(r[t]), H(e[t])) : H(e[t]) : "object" === Z(e[t]) && e[t] ? r[t] = "object" === Z(r[t]) && r[t] ? J(r[t], e[t]) : Y(e[t]) : r[t] = e[t] : r[t] = e[t];
    }), r;
  }
  function Q(t, e) {
    (null == e || e > t.length) && (e = t.length);
    for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
    return n;
  }
  function tt(t) {
    var e,
      r = {},
      n = function (t, e) {
        var r = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
        if (!r) {
          if (Array.isArray(t) || (r = function (t, e) {
            if (t) {
              if ("string" == typeof t) return Q(t, e);
              var r = Object.prototype.toString.call(t).slice(8, -1);
              return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? Q(t, e) : void 0;
            }
          }(t)) || e && t && "number" == typeof t.length) {
            r && (t = r);
            var n = 0,
              o = function () {};
            return {
              s: o,
              n: function () {
                return n >= t.length ? {
                  done: !0
                } : {
                  done: !1,
                  value: t[n++]
                };
              },
              e: function (t) {
                throw t;
              },
              f: o
            };
          }
          throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
        }
        var i,
          a = !0,
          s = !1;
        return {
          s: function () {
            r = r.call(t);
          },
          n: function () {
            var t = r.next();
            return a = t.done, t;
          },
          e: function (t) {
            s = !0, i = t;
          },
          f: function () {
            try {
              a || null == r.return || r.return();
            } finally {
              if (s) throw i;
            }
          }
        };
      }(t.keys());
    try {
      for (n.s(); !(e = n.n()).done;) {
        var o = e.value;
        r[o] = t.get(o);
      }
    } catch (t) {
      n.e(t);
    } finally {
      n.f();
    }
    return r;
  }
  function et() {
    for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r];
    if (0 === e.length) return {};
    var n = {};
    return e.reduce(function (t, e) {
      return Object.keys(e).forEach(function (r) {
        var o = r.toLowerCase();
        n.hasOwnProperty(o) ? t[n[o]] = e[r] : (n[o] = r, t[r] = e[r]);
      }), t;
    }, {});
  }
  r(347);
  var rt = "function" == typeof ArrayBuffer,
    nt = Object.prototype.toString;
  function ot(t) {
    return rt && (t instanceof ArrayBuffer || "[object ArrayBuffer]" === nt.call(t));
  }
  function it(t) {
    return null != t && null != t.constructor && "function" == typeof t.constructor.isBuffer && t.constructor.isBuffer(t);
  }
  function at(t) {
    return at = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
      return typeof t;
    } : function (t) {
      return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
    }, at(t);
  }
  function st(t, e, r) {
    return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t);
  }
  function ut(t, e) {
    (null == e || e > t.length) && (e = t.length);
    for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
    return n;
  }
  function ct(t) {
    var e = G();
    return e.patchInline("request", function (t) {
      return e.patchInline("fetch", L, t.url, function (t) {
        var e,
          r,
          n = {},
          o = {
            method: t.method
          };
        if (t.headers && (n = et(n, t.headers)), void 0 !== t.data) {
          var i = (e = function (t) {
              if ("string" == typeof t) return [t, {}];
              if (it(t)) return [t, {}];
              if (ot(t)) return [t, {}];
              if (t && "object" === at(t)) return [JSON.stringify(t), {
                "content-type": "application/json"
              }];
              throw new Error("Unable to convert request body: Unexpected body type: ".concat(at(t)));
            }(t.data), r = 2, function (t) {
              if (Array.isArray(t)) return t;
            }(e) || function (t, e) {
              var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
              if (null != r) {
                var n,
                  o,
                  i = [],
                  a = !0,
                  s = !1;
                try {
                  for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0);
                } catch (t) {
                  s = !0, o = t;
                } finally {
                  try {
                    a || null == r.return || r.return();
                  } finally {
                    if (s) throw o;
                  }
                }
                return i;
              }
            }(e, r) || function (t, e) {
              if (t) {
                if ("string" == typeof t) return ut(t, e);
                var r = Object.prototype.toString.call(t).slice(8, -1);
                return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? ut(t, e) : void 0;
              }
            }(e, r) || function () {
              throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
            }()),
            a = i[0],
            s = i[1];
          o.body = a, n = et(n, s);
        }
        return t.signal && (o.signal = t.signal), t.withCredentials && (o.credentials = "include"), o.headers = n, o;
      }(t));
    }, t);
  }
  var lt,
    ft = (lt = function (t) {
      if (!t._digest) return ct(t);
      var e = t._digest;
      return delete t._digest, e.hasDigestAuth && (t = K(t, {
        headers: {
          Authorization: N(t, e)
        }
      })), st(ct(t), function (r) {
        var n,
          o,
          i = !1;
        return n = function (t) {
          return i ? t : r;
        }, (o = function () {
          if (401 == r.status) return e.hasDigestAuth = function (t, e) {
            var r = t.headers && t.headers.get("www-authenticate") || "";
            if ("digest" !== r.split(/\s/)[0].toLowerCase()) return !1;
            for (var n = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;;) {
              var o = n.exec(r);
              if (!o) break;
              e[o[1]] = o[2] || o[3];
            }
            return e.nc += 1, e.cnonce = function () {
              for (var t = "", e = 0; e < 32; ++e) t = "".concat(t).concat(E[Math.floor(16 * Math.random())]);
              return t;
            }(), !0;
          }(r, e), function () {
            if (e.hasDigestAuth) return st(ct(t = K(t, {
              headers: {
                Authorization: N(t, e)
              }
            })), function (t) {
              return 401 == t.status ? e.hasDigestAuth = !1 : e.nc++, i = !0, t;
            });
          }();
          e.nc++;
        }()) && o.then ? o.then(n) : n(o);
      });
    }, function () {
      for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
      try {
        return Promise.resolve(lt.apply(this, t));
      } catch (t) {
        return Promise.reject(t);
      }
    });
  function ht(t, e, r) {
    var n = Y(t);
    return n.headers = et(e.headers, n.headers || {}, r.headers || {}), void 0 !== r.data && (n.data = r.data), r.signal && (n.signal = r.signal), e.httpAgent && (n.httpAgent = e.httpAgent), e.httpsAgent && (n.httpsAgent = e.httpsAgent), e.digest && (n._digest = e.digest), "boolean" == typeof e.withCredentials && (n.withCredentials = e.withCredentials), n;
  }
  var pt = r(637);
  function dt(t, e) {
    return function (t) {
      if (Array.isArray(t)) return t;
    }(t) || function (t, e) {
      var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
      if (null != r) {
        var n,
          o,
          i = [],
          a = !0,
          s = !1;
        try {
          for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0);
        } catch (t) {
          s = !0, o = t;
        } finally {
          try {
            a || null == r.return || r.return();
          } finally {
            if (s) throw o;
          }
        }
        return i;
      }
    }(t, e) || function (t, e) {
      if (t) {
        if ("string" == typeof t) return gt(t, e);
        var r = Object.prototype.toString.call(t).slice(8, -1);
        return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? gt(t, e) : void 0;
      }
    }(t, e) || function () {
      throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }();
  }
  function gt(t, e) {
    (null == e || e > t.length) && (e = t.length);
    for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
    return n;
  }
  var vt = {
      "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", !0],
      "[:alpha:]": ["\\p{L}\\p{Nl}", !0],
      "[:ascii:]": ["\\x00-\\x7f", !1],
      "[:blank:]": ["\\p{Zs}\\t", !0],
      "[:cntrl:]": ["\\p{Cc}", !0],
      "[:digit:]": ["\\p{Nd}", !0],
      "[:graph:]": ["\\p{Z}\\p{C}", !0, !0],
      "[:lower:]": ["\\p{Ll}", !0],
      "[:print:]": ["\\p{C}", !0],
      "[:punct:]": ["\\p{P}", !0],
      "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", !0],
      "[:upper:]": ["\\p{Lu}", !0],
      "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", !0],
      "[:xdigit:]": ["A-Fa-f0-9", !1]
    },
    yt = function (t) {
      return t.replace(/[[\]\\-]/g, "\\$&");
    },
    mt = function (t) {
      return t.join("");
    },
    bt = function (t, e) {
      var r = e;
      if ("[" !== t.charAt(r)) throw new Error("not in a brace expression");
      var n,
        o = [],
        i = [],
        a = r + 1,
        s = !1,
        u = !1,
        c = !1,
        l = !1,
        f = r,
        h = "";
      t: for (; a < t.length;) {
        var p = t.charAt(a);
        if ("!" !== p && "^" !== p || a !== r + 1) {
          if ("]" === p && s && !c) {
            f = a + 1;
            break;
          }
          if (s = !0, "\\" !== p || c) {
            if ("[" === p && !c) for (var d = 0, g = Object.entries(vt); d < g.length; d++) {
              var v = dt(g[d], 2),
                y = v[0],
                m = dt(v[1], 3),
                b = m[0],
                w = m[1],
                x = m[2];
              if (t.startsWith(y, a)) {
                if (h) return ["$.", !1, t.length - r, !0];
                a += y.length, x ? i.push(b) : o.push(b), u = u || w;
                continue t;
              }
            }
            c = !1, h ? (p > h ? o.push(yt(h) + "-" + yt(p)) : p === h && o.push(yt(p)), h = "", a++) : t.startsWith("-]", a + 1) ? (o.push(yt(p + "-")), a += 2) : t.startsWith("-", a + 1) ? (h = p, a += 2) : (o.push(yt(p)), a++);
          } else c = !0, a++;
        } else l = !0, a++;
      }
      if (f < a) return ["", !1, 0, !1];
      if (!o.length && !i.length) return ["$.", !1, t.length - r, !0];
      if (0 === i.length && 1 === o.length && /^\\?.$/.test(o[0]) && !l) return [(n = 2 === o[0].length ? o[0].slice(-1) : o[0], n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")), !1, f - r, !1];
      var O = "[" + (l ? "^" : "") + mt(o) + "]",
        A = "[" + (l ? "" : "^") + mt(i) + "]";
      return [o.length && i.length ? "(" + O + "|" + A + ")" : o.length ? O : A, u, f - r, !0];
    };
  function wt(t) {
    return function (t) {
      if (Array.isArray(t)) return Ct(t);
    }(t) || function (t) {
      if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t);
    }(t) || kt(t) || function () {
      throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }();
  }
  function xt(t, e) {
    var r = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
    if (!r) {
      if (Array.isArray(t) || (r = kt(t)) || e && t && "number" == typeof t.length) {
        r && (t = r);
        var n = 0,
          o = function () {};
        return {
          s: o,
          n: function () {
            return n >= t.length ? {
              done: !0
            } : {
              done: !1,
              value: t[n++]
            };
          },
          e: function (t) {
            throw t;
          },
          f: o
        };
      }
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
    var i,
      a = !0,
      s = !1;
    return {
      s: function () {
        r = r.call(t);
      },
      n: function () {
        var t = r.next();
        return a = t.done, t;
      },
      e: function (t) {
        s = !0, i = t;
      },
      f: function () {
        try {
          a || null == r.return || r.return();
        } finally {
          if (s) throw i;
        }
      }
    };
  }
  function Ot(t, e, r) {
    return e in t ? Object.defineProperty(t, e, {
      value: r,
      enumerable: !0,
      configurable: !0,
      writable: !0
    }) : t[e] = r, t;
  }
  function At(t, e) {
    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function");
  }
  function jt(t, e) {
    for (var r = 0; r < e.length; r++) {
      var n = e[r];
      n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);
    }
  }
  function Pt(t, e, r) {
    return e && jt(t.prototype, e), r && jt(t, r), Object.defineProperty(t, "prototype", {
      writable: !1
    }), t;
  }
  function St(t, e) {
    return St = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
      return t.__proto__ = e, t;
    }, St(t, e);
  }
  function Et(t) {
    return Et = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
      return t.__proto__ || Object.getPrototypeOf(t);
    }, Et(t);
  }
  function Nt(t) {
    return Nt = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
      return typeof t;
    } : function (t) {
      return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
    }, Nt(t);
  }
  function Tt(t, e) {
    return function (t) {
      if (Array.isArray(t)) return t;
    }(t) || function (t, e) {
      var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
      if (null != r) {
        var n,
          o,
          i = [],
          a = !0,
          s = !1;
        try {
          for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0);
        } catch (t) {
          s = !0, o = t;
        } finally {
          try {
            a || null == r.return || r.return();
          } finally {
            if (s) throw o;
          }
        }
        return i;
      }
    }(t, e) || kt(t, e) || function () {
      throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }();
  }
  function kt(t, e) {
    if (t) {
      if ("string" == typeof t) return Ct(t, e);
      var r = Object.prototype.toString.call(t).slice(8, -1);
      return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? Ct(t, e) : void 0;
    }
  }
  function Ct(t, e) {
    (null == e || e > t.length) && (e = t.length);
    for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
    return n;
  }
  var It = function (t, e) {
    var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
    return le(e), !(!r.nocomment && "#" === e.charAt(0)) && new pe(e, r).match(t);
  };
  const _t = It;
  var Rt = /^\*+([^+@!?\*\[\(]*)$/,
    Lt = function (t) {
      return function (e) {
        return !e.startsWith(".") && e.endsWith(t);
      };
    },
    Mt = function (t) {
      return function (e) {
        return e.endsWith(t);
      };
    },
    Ut = function (t) {
      return t = t.toLowerCase(), function (e) {
        return !e.startsWith(".") && e.toLowerCase().endsWith(t);
      };
    },
    Dt = function (t) {
      return t = t.toLowerCase(), function (e) {
        return e.toLowerCase().endsWith(t);
      };
    },
    Ft = /^\*+\.\*+$/,
    $t = function (t) {
      return !t.startsWith(".") && t.includes(".");
    },
    Bt = function (t) {
      return "." !== t && ".." !== t && t.includes(".");
    },
    Wt = /^\.\*+$/,
    Vt = function (t) {
      return "." !== t && ".." !== t && t.startsWith(".");
    },
    zt = /^\*+$/,
    qt = function (t) {
      return 0 !== t.length && !t.startsWith(".");
    },
    Gt = function (t) {
      return 0 !== t.length && "." !== t && ".." !== t;
    },
    Ht = /^\?+([^+@!?\*\[\(]*)?$/,
    Xt = function (t) {
      var e = Tt(t, 2),
        r = e[0],
        n = e[1],
        o = void 0 === n ? "" : n,
        i = Jt([r]);
      return o ? (o = o.toLowerCase(), function (t) {
        return i(t) && t.toLowerCase().endsWith(o);
      }) : i;
    },
    Zt = function (t) {
      var e = Tt(t, 2),
        r = e[0],
        n = e[1],
        o = void 0 === n ? "" : n,
        i = Qt([r]);
      return o ? (o = o.toLowerCase(), function (t) {
        return i(t) && t.toLowerCase().endsWith(o);
      }) : i;
    },
    Yt = function (t) {
      var e = Tt(t, 2),
        r = e[0],
        n = e[1],
        o = void 0 === n ? "" : n,
        i = Qt([r]);
      return o ? function (t) {
        return i(t) && t.endsWith(o);
      } : i;
    },
    Kt = function (t) {
      var e = Tt(t, 2),
        r = e[0],
        n = e[1],
        o = void 0 === n ? "" : n,
        i = Jt([r]);
      return o ? function (t) {
        return i(t) && t.endsWith(o);
      } : i;
    },
    Jt = function (t) {
      var e = Tt(t, 1)[0].length;
      return function (t) {
        return t.length === e && !t.startsWith(".");
      };
    },
    Qt = function (t) {
      var e = Tt(t, 1)[0].length;
      return function (t) {
        return t.length === e && "." !== t && ".." !== t;
      };
    },
    te = "object" === ("undefined" == typeof process ? "undefined" : Nt(process)) && process ? "object" === Nt(({"NODE_ENV":"production","PUBLIC_URL":"","WDS_SOCKET_HOST":undefined,"WDS_SOCKET_PATH":undefined,"WDS_SOCKET_PORT":undefined,"FAST_REFRESH":true,"REACT_APP_CLIENT":"userscript","REACT_APP_NAME":"KISS Translator","REACT_APP_NAME_CN":"简约翻译","REACT_APP_VERSION":"1.8.11","REACT_APP_HOMEPAGE":"https://github.com/fishjar/kiss-translator","REACT_APP_OPTIONSPAGE":"https://fishjar.github.io/kiss-translator/options.html","REACT_APP_OPTIONSPAGE_DEV":"http://localhost:3000/options.html","REACT_APP_LOGOURL":"https://fishjar.github.io/kiss-translator/images/logo192.png","REACT_APP_RULESURL":"https://fishjar.github.io/kiss-rules/kiss-rules.json","REACT_APP_RULESURL_ON":"https://fishjar.github.io/kiss-rules/kiss-rules-on.json","REACT_APP_RULESURL_OFF":"https://fishjar.github.io/kiss-rules/kiss-rules-off.json","REACT_APP_USERSCRIPT_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator.user.js","REACT_APP_USERSCRIPT_IOS_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator-ios-safari.user.js"})) && ({"NODE_ENV":"production","PUBLIC_URL":"","WDS_SOCKET_HOST":undefined,"WDS_SOCKET_PATH":undefined,"WDS_SOCKET_PORT":undefined,"FAST_REFRESH":true,"REACT_APP_CLIENT":"userscript","REACT_APP_NAME":"KISS Translator","REACT_APP_NAME_CN":"简约翻译","REACT_APP_VERSION":"1.8.11","REACT_APP_HOMEPAGE":"https://github.com/fishjar/kiss-translator","REACT_APP_OPTIONSPAGE":"https://fishjar.github.io/kiss-translator/options.html","REACT_APP_OPTIONSPAGE_DEV":"http://localhost:3000/options.html","REACT_APP_LOGOURL":"https://fishjar.github.io/kiss-translator/images/logo192.png","REACT_APP_RULESURL":"https://fishjar.github.io/kiss-rules/kiss-rules.json","REACT_APP_RULESURL_ON":"https://fishjar.github.io/kiss-rules/kiss-rules-on.json","REACT_APP_RULESURL_OFF":"https://fishjar.github.io/kiss-rules/kiss-rules-off.json","REACT_APP_USERSCRIPT_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator.user.js","REACT_APP_USERSCRIPT_IOS_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator-ios-safari.user.js"}) && ({"NODE_ENV":"production","PUBLIC_URL":"","WDS_SOCKET_HOST":undefined,"WDS_SOCKET_PATH":undefined,"WDS_SOCKET_PORT":undefined,"FAST_REFRESH":true,"REACT_APP_CLIENT":"userscript","REACT_APP_NAME":"KISS Translator","REACT_APP_NAME_CN":"简约翻译","REACT_APP_VERSION":"1.8.11","REACT_APP_HOMEPAGE":"https://github.com/fishjar/kiss-translator","REACT_APP_OPTIONSPAGE":"https://fishjar.github.io/kiss-translator/options.html","REACT_APP_OPTIONSPAGE_DEV":"http://localhost:3000/options.html","REACT_APP_LOGOURL":"https://fishjar.github.io/kiss-translator/images/logo192.png","REACT_APP_RULESURL":"https://fishjar.github.io/kiss-rules/kiss-rules.json","REACT_APP_RULESURL_ON":"https://fishjar.github.io/kiss-rules/kiss-rules-on.json","REACT_APP_RULESURL_OFF":"https://fishjar.github.io/kiss-rules/kiss-rules-off.json","REACT_APP_USERSCRIPT_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator.user.js","REACT_APP_USERSCRIPT_IOS_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator-ios-safari.user.js"}).__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix";
  It.sep = "win32" === te ? "\\" : "/";
  var ee = Symbol("globstar **");
  It.GLOBSTAR = ee;
  var re = {
      "!": {
        open: "(?:(?!(?:",
        close: "))[^/]*?)"
      },
      "?": {
        open: "(?:",
        close: ")?"
      },
      "+": {
        open: "(?:",
        close: ")+"
      },
      "*": {
        open: "(?:",
        close: ")*"
      },
      "@": {
        open: "(?:",
        close: ")"
      }
    },
    ne = "[^/]",
    oe = ne + "*?",
    ie = function (t) {
      return t.split("").reduce(function (t, e) {
        return t[e] = !0, t;
      }, {});
    },
    ae = ie("().*{}+?[]^$\\!"),
    se = ie("[.(");
  It.filter = function (t) {
    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
    return function (r) {
      return It(r, t, e);
    };
  };
  var ue = function (t) {
    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
    return Object.assign({}, t, e);
  };
  It.defaults = function (t) {
    if (!t || "object" !== Nt(t) || !Object.keys(t).length) return It;
    var e = It;
    return Object.assign(function (r, n) {
      return e(r, n, ue(t, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}));
    }, {
      Minimatch: function (r) {
        !function (t, e) {
          if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
          t.prototype = Object.create(e && e.prototype, {
            constructor: {
              value: t,
              writable: !0,
              configurable: !0
            }
          }), Object.defineProperty(t, "prototype", {
            writable: !1
          }), e && St(t, e);
        }(a, r);
        var n,
          o,
          i = (n = a, o = function () {
            if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
            if (Reflect.construct.sham) return !1;
            if ("function" == typeof Proxy) return !0;
            try {
              return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;
            } catch (t) {
              return !1;
            }
          }(), function () {
            var t,
              e = Et(n);
            if (o) {
              var r = Et(this).constructor;
              t = Reflect.construct(e, arguments, r);
            } else t = e.apply(this, arguments);
            return function (t, e) {
              if (e && ("object" === Nt(e) || "function" == typeof e)) return e;
              if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
              return function (t) {
                if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return t;
              }(t);
            }(this, t);
          });
        function a(e) {
          var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
          return At(this, a), i.call(this, e, ue(t, r));
        }
        return Pt(a, null, [{
          key: "defaults",
          value: function (r) {
            return e.defaults(ue(t, r)).Minimatch;
          }
        }]), a;
      }(e.Minimatch),
      unescape: function (r) {
        var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        return e.unescape(r, ue(t, n));
      },
      escape: function (r) {
        var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        return e.escape(r, ue(t, n));
      },
      filter: function (r) {
        var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        return e.filter(r, ue(t, n));
      },
      defaults: function (r) {
        return e.defaults(ue(t, r));
      },
      makeRe: function (r) {
        var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        return e.makeRe(r, ue(t, n));
      },
      braceExpand: function (r) {
        var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        return e.braceExpand(r, ue(t, n));
      },
      match: function (r, n) {
        var o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
        return e.match(r, n, ue(t, o));
      },
      sep: e.sep,
      GLOBSTAR: ee
    });
  };
  var ce = function (t) {
    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
    return le(t), e.nobrace || !/\{(?:(?!\{).)*\}/.test(t) ? [t] : pt(t);
  };
  It.braceExpand = ce;
  var le = function (t) {
    if ("string" != typeof t) throw new TypeError("invalid pattern");
    if (t.length > 65536) throw new TypeError("pattern is too long");
  };
  It.makeRe = function (t) {
    return new pe(t, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}).makeRe();
  }, It.match = function (t, e) {
    var r = new pe(e, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {});
    return t = t.filter(function (t) {
      return r.match(t);
    }), r.options.nonull && !t.length && t.push(e), t;
  };
  var fe = /[?*]|[+@!]\(.*?\)|\[|\]/,
    he = function (t) {
      return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    },
    pe = function () {
      function t(e) {
        var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        At(this, t), Ot(this, "options", void 0), Ot(this, "set", void 0), Ot(this, "pattern", void 0), Ot(this, "windowsPathsNoEscape", void 0), Ot(this, "nonegate", void 0), Ot(this, "negate", void 0), Ot(this, "comment", void 0), Ot(this, "empty", void 0), Ot(this, "preserveMultipleSlashes", void 0), Ot(this, "partial", void 0), Ot(this, "globSet", void 0), Ot(this, "globParts", void 0), Ot(this, "nocase", void 0), Ot(this, "isWindows", void 0), Ot(this, "platform", void 0), Ot(this, "windowsNoMagicRoot", void 0), Ot(this, "regexp", void 0), le(e), r = r || {}, this.options = r, this.pattern = e, this.platform = r.platform || te, this.isWindows = "win32" === this.platform, this.windowsPathsNoEscape = !!r.windowsPathsNoEscape || !1 === r.allowWindowsEscape, this.windowsPathsNoEscape && (this.pattern = this.pattern.replace(/\\/g, "/")), this.preserveMultipleSlashes = !!r.preserveMultipleSlashes, this.regexp = null, this.negate = !1, this.nonegate = !!r.nonegate, this.comment = !1, this.empty = !1, this.partial = !!r.partial, this.nocase = !!this.options.nocase, this.windowsNoMagicRoot = void 0 !== r.windowsNoMagicRoot ? r.windowsNoMagicRoot : !(!this.isWindows || !this.nocase), this.globSet = [], this.globParts = [], this.set = [], this.make();
      }
      return Pt(t, [{
        key: "hasMagic",
        value: function () {
          if (this.options.magicalBraces && this.set.length > 1) return !0;
          var t,
            e = xt(this.set);
          try {
            for (e.s(); !(t = e.n()).done;) {
              var r,
                n = xt(t.value);
              try {
                for (n.s(); !(r = n.n()).done;) if ("string" != typeof r.value) return !0;
              } catch (t) {
                n.e(t);
              } finally {
                n.f();
              }
            }
          } catch (t) {
            e.e(t);
          } finally {
            e.f();
          }
          return !1;
        }
      }, {
        key: "debug",
        value: function () {}
      }, {
        key: "make",
        value: function () {
          var t = this,
            e = this.pattern,
            r = this.options;
          if (r.nocomment || "#" !== e.charAt(0)) {
            if (e) {
              this.parseNegate(), this.globSet = wt(new Set(this.braceExpand())), r.debug && (this.debug = function () {
                var t;
                return (t = console).error.apply(t, arguments);
              }), this.debug(this.pattern, this.globSet);
              var n = this.globSet.map(function (e) {
                return t.slashSplit(e);
              });
              this.globParts = this.preprocess(n), this.debug(this.pattern, this.globParts);
              var o = this.globParts.map(function (e, r, n) {
                if (t.isWindows && t.windowsNoMagicRoot) {
                  var o = !("" !== e[0] || "" !== e[1] || "?" !== e[2] && fe.test(e[2]) || fe.test(e[3])),
                    i = /^[a-z]:/i.test(e[0]);
                  if (o) return [].concat(wt(e.slice(0, 4)), wt(e.slice(4).map(function (e) {
                    return t.parse(e);
                  })));
                  if (i) return [e[0]].concat(wt(e.slice(1).map(function (e) {
                    return t.parse(e);
                  })));
                }
                return e.map(function (e) {
                  return t.parse(e);
                });
              });
              if (this.debug(this.pattern, o), this.set = o.filter(function (t) {
                return -1 === t.indexOf(!1);
              }), this.isWindows) for (var i = 0; i < this.set.length; i++) {
                var a = this.set[i];
                "" === a[0] && "" === a[1] && "?" === this.globParts[i][2] && "string" == typeof a[3] && /^[a-z]:$/i.test(a[3]) && (a[2] = "?");
              }
              this.debug(this.pattern, this.set);
            } else this.empty = !0;
          } else this.comment = !0;
        }
      }, {
        key: "preprocess",
        value: function (t) {
          if (this.options.noglobstar) for (var e = 0; e < t.length; e++) for (var r = 0; r < t[e].length; r++) "**" === t[e][r] && (t[e][r] = "*");
          var n = this.options.optimizationLevel,
            o = void 0 === n ? 1 : n;
          return o >= 2 ? (t = this.firstPhasePreProcess(t), t = this.secondPhasePreProcess(t)) : t = o >= 1 ? this.levelOneOptimize(t) : this.adjascentGlobstarOptimize(t), t;
        }
      }, {
        key: "adjascentGlobstarOptimize",
        value: function (t) {
          return t.map(function (t) {
            for (var e = -1; -1 !== (e = t.indexOf("**", e + 1));) {
              for (var r = e; "**" === t[r + 1];) r++;
              r !== e && t.splice(e, r - e);
            }
            return t;
          });
        }
      }, {
        key: "levelOneOptimize",
        value: function (t) {
          return t.map(function (t) {
            return 0 === (t = t.reduce(function (t, e) {
              var r = t[t.length - 1];
              return "**" === e && "**" === r ? t : ".." === e && r && ".." !== r && "." !== r && "**" !== r ? (t.pop(), t) : (t.push(e), t);
            }, [])).length ? [""] : t;
          });
        }
      }, {
        key: "levelTwoFileOptimize",
        value: function (t) {
          Array.isArray(t) || (t = this.slashSplit(t));
          var e = !1;
          do {
            if (e = !1, !this.preserveMultipleSlashes) {
              for (var r = 1; r < t.length - 1; r++) {
                var n = t[r];
                1 === r && "" === n && "" === t[0] || "." !== n && "" !== n || (e = !0, t.splice(r, 1), r--);
              }
              "." !== t[0] || 2 !== t.length || "." !== t[1] && "" !== t[1] || (e = !0, t.pop());
            }
            for (var o = 0; -1 !== (o = t.indexOf("..", o + 1));) {
              var i = t[o - 1];
              i && "." !== i && ".." !== i && "**" !== i && (e = !0, t.splice(o - 1, 2), o -= 2);
            }
          } while (e);
          return 0 === t.length ? [""] : t;
        }
      }, {
        key: "firstPhasePreProcess",
        value: function (t) {
          var e = !1;
          do {
            e = !1;
            var r,
              n = xt(t);
            try {
              for (n.s(); !(r = n.n()).done;) {
                for (var o = r.value, i = -1; -1 !== (i = o.indexOf("**", i + 1));) {
                  for (var a = i; "**" === o[a + 1];) a++;
                  a > i && o.splice(i + 1, a - i);
                  var s = o[i + 1],
                    u = o[i + 2],
                    c = o[i + 3];
                  if (".." === s && u && "." !== u && ".." !== u && c && "." !== c && ".." !== c) {
                    e = !0, o.splice(i, 1);
                    var l = o.slice(0);
                    l[i] = "**", t.push(l), i--;
                  }
                }
                if (!this.preserveMultipleSlashes) {
                  for (var f = 1; f < o.length - 1; f++) {
                    var h = o[f];
                    1 === f && "" === h && "" === o[0] || "." !== h && "" !== h || (e = !0, o.splice(f, 1), f--);
                  }
                  "." !== o[0] || 2 !== o.length || "." !== o[1] && "" !== o[1] || (e = !0, o.pop());
                }
                for (var p = 0; -1 !== (p = o.indexOf("..", p + 1));) {
                  var d = o[p - 1];
                  if (d && "." !== d && ".." !== d && "**" !== d) {
                    e = !0;
                    var g = 1 === p && "**" === o[p + 1] ? ["."] : [];
                    o.splice.apply(o, [p - 1, 2].concat(g)), 0 === o.length && o.push(""), p -= 2;
                  }
                }
              }
            } catch (t) {
              n.e(t);
            } finally {
              n.f();
            }
          } while (e);
          return t;
        }
      }, {
        key: "secondPhasePreProcess",
        value: function (t) {
          for (var e = 0; e < t.length - 1; e++) for (var r = e + 1; r < t.length; r++) {
            var n = this.partsMatch(t[e], t[r], !this.preserveMultipleSlashes);
            n && (t[e] = n, t[r] = []);
          }
          return t.filter(function (t) {
            return t.length;
          });
        }
      }, {
        key: "partsMatch",
        value: function (t, e) {
          for (var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n = 0, o = 0, i = [], a = ""; n < t.length && o < e.length;) if (t[n] === e[o]) i.push("b" === a ? e[o] : t[n]), n++, o++;else if (r && "**" === t[n] && e[o] === t[n + 1]) i.push(t[n]), n++;else if (r && "**" === e[o] && t[n] === e[o + 1]) i.push(e[o]), o++;else if ("*" !== t[n] || !e[o] || !this.options.dot && e[o].startsWith(".") || "**" === e[o]) {
            if ("*" !== e[o] || !t[n] || !this.options.dot && t[n].startsWith(".") || "**" === t[n]) return !1;
            if ("a" === a) return !1;
            a = "b", i.push(e[o]), n++, o++;
          } else {
            if ("b" === a) return !1;
            a = "a", i.push(t[n]), n++, o++;
          }
          return t.length === e.length && i;
        }
      }, {
        key: "parseNegate",
        value: function () {
          if (!this.nonegate) {
            for (var t = this.pattern, e = !1, r = 0, n = 0; n < t.length && "!" === t.charAt(n); n++) e = !e, r++;
            r && (this.pattern = t.slice(r)), this.negate = e;
          }
        }
      }, {
        key: "matchOne",
        value: function (t, e) {
          var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
            n = this.options;
          if (this.isWindows) {
            var o = "" === t[0] && "" === t[1] && "?" === t[2] && "string" == typeof t[3] && /^[a-z]:$/i.test(t[3]),
              i = "" === e[0] && "" === e[1] && "?" === e[2] && "string" == typeof e[3] && /^[a-z]:$/i.test(e[3]);
            if (o && i) {
              var a = t[3],
                s = e[3];
              a.toLowerCase() === s.toLowerCase() && (t[3] = s);
            } else if (i && "string" == typeof t[0]) {
              var u = e[3],
                c = t[0];
              u.toLowerCase() === c.toLowerCase() && (e[3] = c, e = e.slice(3));
            } else if (o && "string" == typeof e[0]) {
              var l = t[3];
              l.toLowerCase() === e[0].toLowerCase() && (e[0] = l, t = t.slice(3));
            }
          }
          var f = this.options.optimizationLevel;
          (void 0 === f ? 1 : f) >= 2 && (t = this.levelTwoFileOptimize(t)), this.debug("matchOne", this, {
            file: t,
            pattern: e
          }), this.debug("matchOne", t.length, e.length);
          for (var h = 0, p = 0, d = t.length, g = e.length; h < d && p < g; h++, p++) {
            this.debug("matchOne loop");
            var v = e[p],
              y = t[h];
            if (this.debug(e, v, y), !1 === v) return !1;
            if (v === ee) {
              this.debug("GLOBSTAR", [e, v, y]);
              var m = h,
                b = p + 1;
              if (b === g) {
                for (this.debug("** at the end"); h < d; h++) if ("." === t[h] || ".." === t[h] || !n.dot && "." === t[h].charAt(0)) return !1;
                return !0;
              }
              for (; m < d;) {
                var w = t[m];
                if (this.debug("\nglobstar while", t, m, e, b, w), this.matchOne(t.slice(m), e.slice(b), r)) return this.debug("globstar found match!", m, d, w), !0;
                if ("." === w || ".." === w || !n.dot && "." === w.charAt(0)) {
                  this.debug("dot detected!", t, m, e, b);
                  break;
                }
                this.debug("globstar swallow a segment, and continue"), m++;
              }
              return !(!r || (this.debug("\n>>> no match, partial?", t, m, e, b), m !== d));
            }
            var x = void 0;
            if ("string" == typeof v ? (x = y === v, this.debug("string match", v, y, x)) : (x = v.test(y), this.debug("pattern match", v, y, x)), !x) return !1;
          }
          if (h === d && p === g) return !0;
          if (h === d) return r;
          if (p === g) return h === d - 1 && "" === t[h];
          throw new Error("wtf?");
        }
      }, {
        key: "braceExpand",
        value: function () {
          return ce(this.pattern, this.options);
        }
      }, {
        key: "parse",
        value: function (t) {
          var e = this;
          le(t);
          var r,
            n = this.options;
          if ("**" === t) return ee;
          if ("" === t) return "";
          var o = null;
          (r = t.match(zt)) ? o = n.dot ? Gt : qt : (r = t.match(Rt)) ? o = (n.nocase ? n.dot ? Dt : Ut : n.dot ? Mt : Lt)(r[1]) : (r = t.match(Ht)) ? o = (n.nocase ? n.dot ? Zt : Xt : n.dot ? Yt : Kt)(r) : (r = t.match(Ft)) ? o = n.dot ? Bt : $t : (r = t.match(Wt)) && (o = Vt);
          for (var i, a, s = "", u = !1, c = !1, l = [], f = [], h = !1, p = !1, d = "." === t.charAt(0), g = n.dot || d, v = function (t) {
              return "." === t.charAt(0) ? "" : n.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)";
            }, y = function () {
              if (h) {
                switch (h) {
                  case "*":
                    s += oe, u = !0;
                    break;
                  case "?":
                    s += ne, u = !0;
                    break;
                  default:
                    s += "\\" + h;
                }
                e.debug("clearStateChar %j %j", h, s), h = !1;
              }
            }, m = 0; m < t.length && (a = t.charAt(m)); m++) if (this.debug("%s\t%s %s %j", t, m, s, a), c) {
            if ("/" === a) return !1;
            ae[a] && (s += "\\"), s += a, c = !1;
          } else switch (a) {
            case "/":
              return !1;
            case "\\":
              y(), c = !0;
              continue;
            case "?":
            case "*":
            case "+":
            case "@":
            case "!":
              this.debug("%s\t%s %s %j <-- stateChar", t, m, s, a), this.debug("call clearStateChar %j", h), y(), h = a, n.noext && y();
              continue;
            case "(":
              if (!h) {
                s += "\\(";
                continue;
              }
              var b = {
                type: h,
                start: m - 1,
                reStart: s.length,
                open: re[h].open,
                close: re[h].close
              };
              this.debug(this.pattern, "\t", b), l.push(b), s += b.open, 0 === b.start && "!" !== b.type && (d = !0, s += v(t.slice(m + 1))), this.debug("plType %j %j", h, s), h = !1;
              continue;
            case ")":
              var w = l[l.length - 1];
              if (!w) {
                s += "\\)";
                continue;
              }
              l.pop(), y(), u = !0, s += (i = w).close, "!" === i.type && f.push(Object.assign(i, {
                reEnd: s.length
              }));
              continue;
            case "|":
              var x = l[l.length - 1];
              if (!x) {
                s += "\\|";
                continue;
              }
              y(), s += "|", 0 === x.start && "!" !== x.type && (d = !0, s += v(t.slice(m + 1)));
              continue;
            case "[":
              y();
              var O = Tt(bt(t, m), 4),
                A = O[0],
                j = O[1],
                P = O[2],
                S = O[3];
              P ? (s += A, p = p || j, m += P - 1, u = u || S) : s += "\\[";
              continue;
            case "]":
              s += "\\" + a;
              continue;
            default:
              y(), s += he(a);
          }
          for (i = l.pop(); i; i = l.pop()) {
            var E = void 0;
            E = s.slice(i.reStart + i.open.length), this.debug(this.pattern, "setting tail", s, i), E = E.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (t, e, r) {
              return r || (r = "\\"), e + e + r + "|";
            }), this.debug("tail=%j\n   %s", E, E, i, s);
            var N = "*" === i.type ? oe : "?" === i.type ? ne : "\\" + i.type;
            u = !0, s = s.slice(0, i.reStart) + N + "\\(" + E;
          }
          y(), c && (s += "\\\\");
          for (var T = se[s.charAt(0)], k = f.length - 1; k > -1; k--) {
            for (var C = f[k], I = s.slice(0, C.reStart), _ = s.slice(C.reStart, C.reEnd - 8), R = s.slice(C.reEnd), L = s.slice(C.reEnd - 8, C.reEnd) + R, M = I.split(")").length, U = I.split("(").length - M, D = R, F = 0; F < U; F++) D = D.replace(/\)[+*?]?/, "");
            s = I + _ + (R = D) + ("" === R ? "(?:$|\\/)" : "") + L;
          }
          if ("" !== s && u && (s = "(?=.)" + s), T && (s = (d ? "" : g ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)") + s), !n.nocase || u || n.nocaseMagicOnly || (u = t.toUpperCase() !== t.toLowerCase()), !u) return s.replace(/\\(.)/g, "$1");
          var $ = (n.nocase ? "i" : "") + (p ? "u" : "");
          try {
            var B = o ? {
              _glob: t,
              _src: s,
              test: o
            } : {
              _glob: t,
              _src: s
            };
            return Object.assign(new RegExp("^" + s + "$", $), B);
          } catch (t) {
            return this.debug("invalid regexp", t), new RegExp("$.");
          }
        }
      }, {
        key: "makeRe",
        value: function () {
          if (this.regexp || !1 === this.regexp) return this.regexp;
          var t = this.set;
          if (!t.length) return this.regexp = !1, this.regexp;
          var e = this.options,
            r = e.noglobstar ? oe : e.dot ? "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?" : "(?:(?!(?:\\/|^)\\.).)*?",
            n = e.nocase ? "i" : "",
            o = t.map(function (t) {
              var e = t.map(function (t) {
                return "string" == typeof t ? he(t) : t === ee ? ee : t._src;
              });
              return e.forEach(function (t, n) {
                var o = e[n + 1],
                  i = e[n - 1];
                t === ee && i !== ee && (void 0 === i ? void 0 !== o && o !== ee ? e[n + 1] = "(?:\\/|" + r + "\\/)?" + o : e[n] = r : void 0 === o ? e[n - 1] = i + "(?:\\/|" + r + ")?" : o !== ee && (e[n - 1] = i + "(?:\\/|\\/" + r + "\\/)" + o, e[n + 1] = ee));
              }), e.filter(function (t) {
                return t !== ee;
              }).join("/");
            }).join("|");
          o = "^(?:" + o + ")$", this.negate && (o = "^(?!" + o + ").*$");
          try {
            this.regexp = new RegExp(o, n);
          } catch (t) {
            this.regexp = !1;
          }
          return this.regexp;
        }
      }, {
        key: "slashSplit",
        value: function (t) {
          return this.preserveMultipleSlashes ? t.split("/") : this.isWindows && /^\/\/[^\/]+/.test(t) ? [""].concat(wt(t.split(/\/+/))) : t.split(/\/+/);
        }
      }, {
        key: "match",
        value: function (t) {
          var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.partial;
          if (this.debug("match", t, this.pattern), this.comment) return !1;
          if (this.empty) return "" === t;
          if ("/" === t && e) return !0;
          var r = this.options;
          this.isWindows && (t = t.split("\\").join("/"));
          var n = this.slashSplit(t);
          this.debug(this.pattern, "split", n);
          var o = this.set;
          this.debug(this.pattern, "set", o);
          var i = n[n.length - 1];
          if (!i) for (var a = n.length - 2; !i && a >= 0; a--) i = n[a];
          for (var s = 0; s < o.length; s++) {
            var u = o[s],
              c = n;
            if (r.matchBase && 1 === u.length && (c = [i]), this.matchOne(c, u, e)) return !!r.flipNegate || !this.negate;
          }
          return !r.flipNegate && this.negate;
        }
      }], [{
        key: "defaults",
        value: function (t) {
          return It.defaults(t).Minimatch;
        }
      }]), t;
    }();
  function de(t) {
    var e = new Error("".concat(arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", "Invalid response: ").concat(t.status, " ").concat(t.statusText));
    return e.status = t.status, e.response = t, e;
  }
  function ge(t, e) {
    var r = e.status;
    if (401 === r && t.digest) return e;
    if (r >= 400) throw de(e);
    return e;
  }
  function ve(t, e) {
    return arguments.length > 2 && void 0 !== arguments[2] && arguments[2] ? {
      data: e,
      headers: t.headers ? tt(t.headers) : {},
      status: t.status,
      statusText: t.statusText
    } : e;
  }
  It.Minimatch = pe, It.escape = function (t) {
    var e = (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}).windowsPathsNoEscape;
    return void 0 !== e && e ? t.replace(/[?*()[\]]/g, "[$&]") : t.replace(/[?*()[\]\\]/g, "\\$&");
  }, It.unescape = function (t) {
    var e = (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}).windowsPathsNoEscape;
    return void 0 !== e && e ? t.replace(/\[([^\/\\])\]/g, "$1") : t.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1");
  };
  var ye,
    me = function (t) {
      return function () {
        for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
        try {
          return Promise.resolve(t.apply(this, e));
        } catch (t) {
          return Promise.reject(t);
        }
      };
    }(function (t, e, r) {
      var n,
        o,
        i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {},
        a = ht({
          url: j(t.remoteURL, x(e)),
          method: "COPY",
          headers: {
            Destination: j(t.remoteURL, x(r))
          }
        }, t, i);
      return o = function (e) {
        ge(t, e);
      }, (n = ft(a)) && n.then || (n = Promise.resolve(n)), o ? n.then(o) : n;
    }),
    be = r(5),
    we = r(421),
    xe = r.n(we);
  function Oe(t, e) {
    (null == e || e > t.length) && (e = t.length);
    for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
    return n;
  }
  function Ae(t) {
    return Ae = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
      return typeof t;
    } : function (t) {
      return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
    }, Ae(t);
  }
  function je(t, e) {
    var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ye.Original,
      n = xe().get(t, e);
    return "array" === r && !1 === Array.isArray(n) ? [n] : "object" === r && Array.isArray(n) ? n[0] : n;
  }
  function Pe(t) {
    return new Promise(function (e) {
      e(function (t) {
        var e = t.multistatus;
        if ("" === e) return {
          multistatus: {
            response: []
          }
        };
        if (!e) throw new Error("Invalid response: No root multistatus found");
        var r = {
          multistatus: Array.isArray(e) ? e[0] : e
        };
        return xe().set(r, "multistatus.response", je(r, "multistatus.response", ye.Array)), xe().set(r, "multistatus.response", xe().get(r, "multistatus.response").map(function (t) {
          return function (t) {
            var e = Object.assign({}, t);
            return e.status ? xe().set(e, "status", je(e, "status", ye.Object)) : (xe().set(e, "propstat", je(e, "propstat", ye.Object)), xe().set(e, "propstat.prop", je(e, "propstat.prop", ye.Object))), e;
          }(t);
        })), r;
      }(new be.XMLParser({
        removeNSPrefix: !0,
        numberParseOptions: {
          hex: !0,
          leadingZeros: !1
        }
      }).parse(t)));
    });
  }
  function Se(t, e) {
    var r,
      n,
      o = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
      i = t.getlastmodified,
      a = void 0 === i ? null : i,
      s = t.getcontentlength,
      u = void 0 === s ? "0" : s,
      c = t.resourcetype,
      l = void 0 === c ? null : c,
      f = t.getcontenttype,
      h = void 0 === f ? null : f,
      p = t.getetag,
      d = void 0 === p ? null : p,
      g = l && "object" === Ae(l) && void 0 !== l.collection ? "directory" : "file",
      v = (r = e, (n = document.createElement("textarea")).innerHTML = r, n.value),
      y = {
        filename: v,
        basename: m().basename(v),
        lastmod: a,
        size: parseInt(u, 10),
        type: g,
        etag: "string" == typeof d ? d.replace(/"/g, "") : null
      };
    return "file" === g && (y.mime = h && "string" == typeof h ? h.split(";")[0] : ""), o && (y.props = t), y;
  }
  function Ee(t, e) {
    var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
      n = null;
    try {
      t.multistatus.response[0].propstat && (n = t.multistatus.response[0]);
    } catch (t) {}
    if (!n) throw new Error("Failed getting item stat: bad response");
    var o,
      i,
      a = n.propstat,
      s = a.prop,
      u = (o = a.status.split(" ", 3), i = 3, function (t) {
        if (Array.isArray(t)) return t;
      }(o) || function (t, e) {
        var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
        if (null != r) {
          var n,
            o,
            i = [],
            a = !0,
            s = !1;
          try {
            for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0);
          } catch (t) {
            s = !0, o = t;
          } finally {
            try {
              a || null == r.return || r.return();
            } finally {
              if (s) throw o;
            }
          }
          return i;
        }
      }(o, i) || function (t, e) {
        if (t) {
          if ("string" == typeof t) return Oe(t, e);
          var r = Object.prototype.toString.call(t).slice(8, -1);
          return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? Oe(t, e) : void 0;
        }
      }(o, i) || function () {
        throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
      }()),
      c = (u[0], u[1]),
      l = u[2],
      f = parseInt(c, 10);
    if (f >= 400) {
      var h = new Error("Invalid response: ".concat(f, " ").concat(l));
      throw h.status = f, h;
    }
    return Se(s, A(e), r);
  }
  function Ne(t) {
    switch (t.toString()) {
      case "-3":
        return "unlimited";
      case "-2":
      case "-1":
        return "unknown";
      default:
        return parseInt(t, 10);
    }
  }
  function Te(t, e, r) {
    return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t);
  }
  !function (t) {
    t.Array = "array", t.Object = "object", t.Original = "original";
  }(ye || (ye = {}));
  var ke = function (t) {
    return function () {
      for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
      try {
        return Promise.resolve(t.apply(this, e));
      } catch (t) {
        return Promise.reject(t);
      }
    };
  }(function (t, e) {
    var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
      n = r.details,
      o = void 0 !== n && n,
      i = ht({
        url: j(t.remoteURL, x(e)),
        method: "PROPFIND",
        headers: {
          Accept: "text/plain,application/xml",
          Depth: "0"
        }
      }, t, r);
    return Te(ft(i), function (r) {
      return ge(t, r), Te(r.text(), function (t) {
        return Te(Pe(t), function (t) {
          var n = Ee(t, e, o);
          return ve(r, n, o);
        });
      });
    });
  });
  function Ce(t, e, r) {
    return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t);
  }
  function Ie(t) {
    return function () {
      for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
      try {
        return Promise.resolve(t.apply(this, e));
      } catch (t) {
        return Promise.reject(t);
      }
    };
  }
  function _e() {}
  function Re(t, e) {
    if (!e) return t && t.then ? t.then(_e) : Promise.resolve();
  }
  var Le = "undefined" != typeof Symbol ? Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator")) : "@@iterator";
  function Me(t, e, r) {
    if (!t.s) {
      if (r instanceof Ue) {
        if (!r.s) return void (r.o = Me.bind(null, t, e));
        1 & e && (e = r.s), r = r.v;
      }
      if (r && r.then) return void r.then(Me.bind(null, t, e), Me.bind(null, t, 2));
      t.s = e, t.v = r;
      var n = t.o;
      n && n(t);
    }
  }
  var Ue = function () {
    function t() {}
    return t.prototype.then = function (e, r) {
      var n = new t(),
        o = this.s;
      if (o) {
        var i = 1 & o ? e : r;
        if (i) {
          try {
            Me(n, 1, i(this.v));
          } catch (t) {
            Me(n, 2, t);
          }
          return n;
        }
        return this;
      }
      return this.o = function (t) {
        try {
          var o = t.v;
          1 & t.s ? Me(n, 1, e ? e(o) : o) : r ? Me(n, 1, r(o)) : Me(n, 2, o);
        } catch (t) {
          Me(n, 2, t);
        }
      }, n;
    }, t;
  }();
  function De(t) {
    return t instanceof Ue && 1 & t.s;
  }
  function Fe(t, e) {
    var r = Object.keys(t);
    if (Object.getOwnPropertySymbols) {
      var n = Object.getOwnPropertySymbols(t);
      e && (n = n.filter(function (e) {
        return Object.getOwnPropertyDescriptor(t, e).enumerable;
      })), r.push.apply(r, n);
    }
    return r;
  }
  function $e(t) {
    for (var e = 1; e < arguments.length; e++) {
      var r = null != arguments[e] ? arguments[e] : {};
      e % 2 ? Fe(Object(r), !0).forEach(function (e) {
        Be(t, e, r[e]);
      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(r)) : Fe(Object(r)).forEach(function (e) {
        Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(r, e));
      });
    }
    return t;
  }
  function Be(t, e, r) {
    return e in t ? Object.defineProperty(t, e, {
      value: r,
      enumerable: !0,
      configurable: !0,
      writable: !0
    }) : t[e] = r, t;
  }
  var We = Ie(function (t, e) {
      var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
        n = function (t) {
          if (!t || "/" === t) return [];
          var e = t,
            r = [];
          do {
            r.push(e), e = m().dirname(e);
          } while (e && "/" !== e);
          return r;
        }(A(e));
      n.sort(function (t, e) {
        return t.length > e.length ? 1 : e.length > t.length ? -1 : 0;
      });
      var o = !1;
      return function (t, e, r) {
        if ("function" == typeof t[Le]) {
          var n,
            o,
            i,
            a = t[Le]();
          if (function t(s) {
            try {
              for (; !((n = a.next()).done || r && r());) if ((s = e(n.value)) && s.then) {
                if (!De(s)) return void s.then(t, i || (i = Me.bind(null, o = new Ue(), 2)));
                s = s.v;
              }
              o ? Me(o, 1, s) : o = s;
            } catch (t) {
              Me(o || (o = new Ue()), 2, t);
            }
          }(), a.return) {
            var s = function (t) {
              try {
                n.done || a.return();
              } catch (t) {}
              return t;
            };
            if (o && o.then) return o.then(s, function (t) {
              throw s(t);
            });
            s();
          }
          return o;
        }
        if (!("length" in t)) throw new TypeError("Object is not iterable");
        for (var u = [], c = 0; c < t.length; c++) u.push(t[c]);
        return function (t, e, r) {
          var n,
            o,
            i = -1;
          return function a(s) {
            try {
              for (; ++i < t.length && (!r || !r());) if ((s = e(i)) && s.then) {
                if (!De(s)) return void s.then(a, o || (o = Me.bind(null, n = new Ue(), 2)));
                s = s.v;
              }
              n ? Me(n, 1, s) : n = s;
            } catch (t) {
              Me(n || (n = new Ue()), 2, t);
            }
          }(), n;
        }(u, function (t) {
          return e(u[t]);
        }, r);
      }(n, function (n) {
        return i = function () {
          return function (r, o) {
            try {
              var i = Ce(ke(t, n), function (t) {
                if ("directory" !== t.type) throw new Error("Path includes a file: ".concat(e));
              });
            } catch (t) {
              return o(t);
            }
            return i && i.then ? i.then(void 0, o) : i;
          }(0, function (e) {
            var i = e;
            return function () {
              if (404 === i.status) return o = !0, Re(Ve(t, n, $e($e({}, r), {}, {
                recursive: !1
              })));
              throw e;
            }();
          });
        }, (a = function () {
          if (o) return Re(Ve(t, n, $e($e({}, r), {}, {
            recursive: !1
          })));
        }()) && a.then ? a.then(i) : i();
        var i, a;
      }, function () {
        return !1;
      });
    }),
    Ve = Ie(function (t, e) {
      var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
      if (!0 === r.recursive) return We(t, e, r);
      var n,
        o = ht({
          url: j(t.remoteURL, (n = x(e), n.endsWith("/") ? n : n + "/")),
          method: "MKCOL"
        }, t, r);
      return Ce(ft(o), function (e) {
        ge(t, e);
      });
    });
  var ze = r(227),
    qe = r.n(ze);
  function Ge(t) {
    return Ge = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
      return typeof t;
    } : function (t) {
      return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
    }, Ge(t);
  }
  var He = function (t) {
      return function () {
        for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
        try {
          return Promise.resolve(t.apply(this, e));
        } catch (t) {
          return Promise.reject(t);
        }
      };
    }(function (t, e) {
      var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
        n = {};
      if ("object" === Ge(r.range) && "number" == typeof r.range.start) {
        var o = "bytes=".concat(r.range.start, "-");
        "number" == typeof r.range.end && (o = "".concat(o).concat(r.range.end)), n.Range = o;
      }
      var i,
        a,
        s = ht({
          url: j(t.remoteURL, x(e)),
          method: "GET",
          headers: n
        }, t, r);
      return a = function (e) {
        if (ge(t, e), n.Range && 206 !== e.status) {
          var o = new Error("Invalid response code for partial request: ".concat(e.status));
          throw o.status = e.status, o;
        }
        return r.callback && setTimeout(function () {
          r.callback(e);
        }, 0), e.body;
      }, (i = ft(s)) && i.then || (i = Promise.resolve(i)), a ? i.then(a) : i;
    }),
    Xe = function () {},
    Ze = function (t) {
      return function () {
        for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
        try {
          return Promise.resolve(t.apply(this, e));
        } catch (t) {
          return Promise.reject(t);
        }
      };
    }(function (t, e, r) {
      r.url || (r.url = j(t.remoteURL, x(e)));
      var n,
        o,
        i = ht(r, t, {});
      return o = function (e) {
        return ge(t, e), e;
      }, (n = ft(i)) && n.then || (n = Promise.resolve(n)), o ? n.then(o) : n;
    }),
    Ye = function (t) {
      return function () {
        for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
        try {
          return Promise.resolve(t.apply(this, e));
        } catch (t) {
          return Promise.reject(t);
        }
      };
    }(function (t, e) {
      var r,
        n,
        o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
        i = ht({
          url: j(t.remoteURL, x(e)),
          method: "DELETE"
        }, t, o);
      return n = function (e) {
        ge(t, e);
      }, (r = ft(i)) && r.then || (r = Promise.resolve(r)), n ? r.then(n) : r;
    }),
    Ke = function (t) {
      return function () {
        for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
        try {
          return Promise.resolve(t.apply(this, e));
        } catch (t) {
          return Promise.reject(t);
        }
      };
    }(function (t, e) {
      var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
      return function (n, o) {
        try {
          var i = (a = ke(t, e, r), s = function () {
            return !0;
          }, u ? s ? s(a) : a : (a && a.then || (a = Promise.resolve(a)), s ? a.then(s) : a));
        } catch (t) {
          return o(t);
        }
        var a, s, u;
        return i && i.then ? i.then(void 0, o) : i;
      }(0, function (t) {
        if (404 === t.status) return !1;
        throw t;
      });
    });
  function Je(t, e, r) {
    return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t);
  }
  var Qe = function (t) {
    return function () {
      for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
      try {
        return Promise.resolve(t.apply(this, e));
      } catch (t) {
        return Promise.reject(t);
      }
    };
  }(function (t, e) {
    var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
      n = ht({
        url: j(t.remoteURL, x(e), "/"),
        method: "PROPFIND",
        headers: {
          Accept: "text/plain,application/xml",
          Depth: r.deep ? "infinity" : "1"
        }
      }, t, r);
    return Je(ft(n), function (n) {
      return ge(t, n), Je(n.text(), function (o) {
        if (!o) throw new Error("Failed parsing directory contents: Empty response");
        return Je(Pe(o), function (o) {
          var i = O(e),
            a = function (t, e, r) {
              var n = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],
                o = arguments.length > 4 && void 0 !== arguments[4] && arguments[4],
                i = m().join(e, "/"),
                a = t.multistatus.response.map(function (t) {
                  var e = function (t) {
                    try {
                      return t.replace(/^https?:\/\/[^\/]+/, "");
                    } catch (t) {
                      throw new g(t, "Failed normalising HREF");
                    }
                  }(t.href);
                  return Se(t.propstat.prop, "/" === i ? decodeURIComponent(A(e)) : decodeURIComponent(A(m().relative(i, e))), n);
                });
              return o ? a : a.filter(function (t) {
                return t.basename && ("file" === t.type || t.filename !== r.replace(/\/$/, ""));
              });
            }(o, O(t.remoteBasePath || t.remotePath), i, r.details, r.includeSelf);
          return r.glob && (a = function (t, e) {
            return t.filter(function (t) {
              return _t(t.filename, e, {
                matchBase: !0
              });
            });
          }(a, r.glob)), ve(n, a, r.details);
        });
      });
    });
  });
  function tr(t) {
    return function () {
      for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
      try {
        return Promise.resolve(t.apply(this, e));
      } catch (t) {
        return Promise.reject(t);
      }
    };
  }
  var er = tr(function (t, e) {
    var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
      n = ht({
        url: j(t.remoteURL, x(e)),
        method: "GET",
        headers: {
          Accept: "text/plain"
        },
        transformResponse: [ir]
      }, t, r);
    return rr(ft(n), function (e) {
      return ge(t, e), rr(e.text(), function (t) {
        return ve(e, t, r.details);
      });
    });
  });
  function rr(t, e, r) {
    return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t);
  }
  var nr = tr(function (t, e) {
      var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
        n = ht({
          url: j(t.remoteURL, x(e)),
          method: "GET"
        }, t, r);
      return rr(ft(n), function (e) {
        var n;
        return ge(t, e), function (t, e) {
          var r = t();
          return r && r.then ? r.then(e) : e();
        }(function () {
          return rr(e.arrayBuffer(), function (t) {
            n = t;
          });
        }, function () {
          return ve(e, n, r.details);
        });
      });
    }),
    or = tr(function (t, e) {
      var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
        n = r.format,
        o = void 0 === n ? "binary" : n;
      if ("binary" !== o && "text" !== o) throw new g({
        info: {
          code: _.InvalidOutputFormat
        }
      }, "Invalid output format: ".concat(o));
      return "text" === o ? er(t, e, r) : nr(t, e, r);
    }),
    ir = function (t) {
      return t;
    };
  function ar(t) {
    return ar = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
      return typeof t;
    } : function (t) {
      return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
    }, ar(t);
  }
  function sr(t, e) {
    var r = Object.keys(t);
    if (Object.getOwnPropertySymbols) {
      var n = Object.getOwnPropertySymbols(t);
      e && (n = n.filter(function (e) {
        return Object.getOwnPropertyDescriptor(t, e).enumerable;
      })), r.push.apply(r, n);
    }
    return r;
  }
  function ur(t, e, r) {
    return e in t ? Object.defineProperty(t, e, {
      value: r,
      enumerable: !0,
      configurable: !0,
      writable: !0
    }) : t[e] = r, t;
  }
  function cr(t) {
    return new be.XMLBuilder({
      attributeNamePrefix: "@_",
      format: !0,
      ignoreAttributes: !1,
      suppressEmptyNode: !0
    }).build(lr({
      lockinfo: {
        "@_xmlns:d": "DAV:",
        lockscope: {
          exclusive: {}
        },
        locktype: {
          write: {}
        },
        owner: {
          href: t
        }
      }
    }, "d"));
  }
  function lr(t, e) {
    var r = function (t) {
      for (var e = 1; e < arguments.length; e++) {
        var r = null != arguments[e] ? arguments[e] : {};
        e % 2 ? sr(Object(r), !0).forEach(function (e) {
          ur(t, e, r[e]);
        }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(r)) : sr(Object(r)).forEach(function (e) {
          Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(r, e));
        });
      }
      return t;
    }({}, t);
    for (var n in r) r.hasOwnProperty(n) && (r[n] && "object" === ar(r[n]) && -1 === n.indexOf(":") ? (r["".concat(e, ":").concat(n)] = lr(r[n], e), delete r[n]) : !1 === /^@_/.test(n) && (r["".concat(e, ":").concat(n)] = r[n], delete r[n]));
    return r;
  }
  function fr(t, e, r) {
    return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t);
  }
  function hr(t) {
    return function () {
      for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
      try {
        return Promise.resolve(t.apply(this, e));
      } catch (t) {
        return Promise.reject(t);
      }
    };
  }
  var pr = hr(function (t, e, r) {
      var n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {},
        o = ht({
          url: j(t.remoteURL, x(e)),
          method: "UNLOCK",
          headers: {
            "Lock-Token": r
          }
        }, t, n);
      return fr(ft(o), function (e) {
        if (ge(t, e), 204 !== e.status && 200 !== e.status) throw de(e);
      });
    }),
    dr = hr(function (t, e) {
      var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
        n = r.refreshToken,
        o = r.timeout,
        i = {
          Accept: "text/plain,application/xml",
          Timeout: void 0 === o ? gr : o
        };
      n && (i.If = n);
      var a = ht({
        url: j(t.remoteURL, x(e)),
        method: "LOCK",
        headers: i,
        data: cr(t.contactHref)
      }, t, r);
      return fr(ft(a), function (e) {
        return ge(t, e), fr(e.text(), function (t) {
          var r,
            n = (r = t, new be.XMLParser({
              removeNSPrefix: !0,
              parseAttributeValue: !0,
              parseTagValue: !0
            }).parse(r)),
            o = xe().get(n, "prop.lockdiscovery.activelock.locktoken.href"),
            i = xe().get(n, "prop.lockdiscovery.activelock.timeout");
          if (!o) throw de(e, "No lock token received: ");
          return {
            token: o,
            serverTimeout: i
          };
        });
      });
    }),
    gr = "Infinite, Second-4100000000";
  function vr(t, e) {
    (null == e || e > t.length) && (e = t.length);
    for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
    return n;
  }
  function yr(t, e, r) {
    return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t);
  }
  var mr = function (t) {
    return function () {
      for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
      try {
        return Promise.resolve(t.apply(this, e));
      } catch (t) {
        return Promise.reject(t);
      }
    };
  }(function (t) {
    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
      r = e.path || "/",
      n = ht({
        url: j(t.remoteURL, r),
        method: "PROPFIND",
        headers: {
          Accept: "text/plain,application/xml",
          Depth: "0"
        }
      }, t, e);
    return yr(ft(n), function (r) {
      return ge(t, r), yr(r.text(), function (t) {
        return yr(Pe(t), function (t) {
          var n = function (t) {
            try {
              var e = (o = t.multistatus.response, i = 1, function (t) {
                  if (Array.isArray(t)) return t;
                }(o) || function (t, e) {
                  var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
                  if (null != r) {
                    var n,
                      o,
                      i = [],
                      a = !0,
                      s = !1;
                    try {
                      for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0);
                    } catch (t) {
                      s = !0, o = t;
                    } finally {
                      try {
                        a || null == r.return || r.return();
                      } finally {
                        if (s) throw o;
                      }
                    }
                    return i;
                  }
                }(o, i) || function (t, e) {
                  if (t) {
                    if ("string" == typeof t) return vr(t, e);
                    var r = Object.prototype.toString.call(t).slice(8, -1);
                    return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? vr(t, e) : void 0;
                  }
                }(o, i) || function () {
                  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
                }())[0].propstat.prop,
                r = e["quota-used-bytes"],
                n = e["quota-available-bytes"];
              return void 0 !== r && void 0 !== n ? {
                used: parseInt(r, 10),
                available: Ne(n)
              } : null;
            } catch (t) {}
            var o, i;
            return null;
          }(t);
          return ve(r, n, e.details);
        });
      });
    });
  });
  function br(t, e, r) {
    return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t);
  }
  var wr = function (t) {
      return function () {
        for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
        try {
          return Promise.resolve(t.apply(this, e));
        } catch (t) {
          return Promise.reject(t);
        }
      };
    }(function (t, e) {
      var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
        n = r.details,
        o = void 0 !== n && n,
        i = ht({
          url: j(t.remoteURL, x(e)),
          method: "SEARCH",
          headers: {
            Accept: "text/plain,application/xml",
            "Content-Type": t.headers["Content-Type"] || "application/xml; charset=utf-8"
          }
        }, t, r);
      return br(ft(i), function (r) {
        return ge(t, r), br(r.text(), function (t) {
          return br(Pe(t), function (t) {
            var n = function (t, e, r) {
              var n = {
                truncated: !1,
                results: []
              };
              return n.truncated = t.multistatus.response.some(function (t) {
                var r, n;
                return "507" === (null === (r = (t.status || (null === (n = t.propstat) || void 0 === n ? void 0 : n.status)).split(" ", 3)) || void 0 === r ? void 0 : r[1]) && t.href.replace(/\/$/, "").endsWith(x(e).replace(/\/$/, ""));
              }), t.multistatus.response.forEach(function (t) {
                if (void 0 !== t.propstat) {
                  var e = t.href.split("/").map(decodeURIComponent).join("/");
                  n.results.push(Se(t.propstat.prop, e, r));
                }
              }), n;
            }(t, e, o);
            return ve(r, n, o);
          });
        });
      });
    }),
    xr = function (t) {
      return function () {
        for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
        try {
          return Promise.resolve(t.apply(this, e));
        } catch (t) {
          return Promise.reject(t);
        }
      };
    }(function (t, e, r) {
      var n,
        o,
        i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {},
        a = ht({
          url: j(t.remoteURL, x(e)),
          method: "MOVE",
          headers: {
            Destination: j(t.remoteURL, x(r))
          }
        }, t, i);
      return o = function (e) {
        ge(t, e);
      }, (n = ft(a)) && n.then || (n = Promise.resolve(n)), o ? n.then(o) : n;
    }),
    Or = r(918),
    Ar = function (t) {
      return function () {
        for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
        try {
          return Promise.resolve(t.apply(this, e));
        } catch (t) {
          return Promise.reject(t);
        }
      };
    }(function (t, e, r) {
      var n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {},
        o = n.contentLength,
        i = void 0 === o || o,
        a = n.overwrite,
        s = void 0 === a || a,
        u = {
          "Content-Type": "application/octet-stream"
        };
      !1 === i || (u["Content-Length"] = "".concat("number" == typeof i ? i : function (t) {
        if (ot(t)) return t.byteLength;
        if (it(t)) return t.length;
        if ("string" == typeof t) return (0, Or.k)(t);
        throw new g({
          info: {
            code: _.DataTypeNoLength
          }
        }, "Cannot calculate data length: Invalid type");
      }(r))), s || (u["If-None-Match"] = "*");
      var c,
        l,
        f = ht({
          url: j(t.remoteURL, x(e)),
          method: "PUT",
          headers: u,
          data: r
        }, t, n);
      return l = function (e) {
        try {
          ge(t, e);
        } catch (t) {
          var r = t;
          if (412 !== r.status || s) throw r;
          return !1;
        }
        return !0;
      }, (c = ft(f)) && c.then || (c = Promise.resolve(c)), l ? c.then(l) : c;
    }),
    jr = "https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md";
  function Pr(t) {
    var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
      n = r.authType,
      o = void 0 === n ? null : n,
      i = r.remoteBasePath,
      a = r.contactHref,
      s = void 0 === a ? jr : a,
      u = r.ha1,
      c = r.headers,
      l = void 0 === c ? {} : c,
      f = r.httpAgent,
      h = r.httpsAgent,
      p = r.password,
      d = r.token,
      v = r.username,
      y = r.withCredentials,
      m = o;
    m || (m = v || p ? I.Password : I.None);
    var b,
      w,
      O = {
        authType: m,
        remoteBasePath: i,
        contactHref: s,
        ha1: u,
        headers: Object.assign({}, l),
        httpAgent: f,
        httpsAgent: h,
        password: p,
        remotePath: (b = t, w = new (e())(b).pathname, w.length <= 0 && (w = "/"), A(w)),
        remoteURL: t,
        token: d,
        username: v,
        withCredentials: y
      };
    return function (t, e, r, n, o) {
      switch (t.authType) {
        case I.Digest:
          t.digest = function (t, e, r) {
            return {
              username: t,
              password: e,
              ha1: r,
              nc: 0,
              algorithm: "md5",
              hasDigestAuth: !1
            };
          }(e, r, o);
          break;
        case I.None:
          break;
        case I.Password:
          t.headers.Authorization = function (t, e) {
            var r,
              n = (r = "".concat(t, ":").concat(e), k().encode(r));
            return "Basic ".concat(n);
          }(e, r);
          break;
        case I.Token:
          t.headers.Authorization = "".concat((i = n).token_type, " ").concat(i.access_token);
          break;
        default:
          throw new g({
            info: {
              code: _.InvalidAuthType
            }
          }, "Invalid auth type: ".concat(t.authType));
      }
      var i;
    }(O, v, p, d, u), {
      copyFile: function (t, e, r) {
        return me(O, t, e, r);
      },
      createDirectory: function (t, e) {
        return Ve(O, t, e);
      },
      createReadStream: function (t, e) {
        return function (t, e) {
          var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
            n = new (0, qe().PassThrough)();
          return He(t, e, r).then(function (t) {
            t.pipe(n);
          }).catch(function (t) {
            n.emit("error", t);
          }), n;
        }(O, t, e);
      },
      createWriteStream: function (t, e, r) {
        return function (t, e) {
          var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
            n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : Xe,
            o = new (0, qe().PassThrough)(),
            i = {};
          !1 === r.overwrite && (i["If-None-Match"] = "*");
          var a = ht({
            url: j(t.remoteURL, x(e)),
            method: "PUT",
            headers: i,
            data: o,
            maxRedirects: 0
          }, t, r);
          return ft(a).then(function (e) {
            return ge(t, e);
          }).then(function (t) {
            setTimeout(function () {
              n(t);
            }, 0);
          }).catch(function (t) {
            o.emit("error", t);
          }), o;
        }(O, t, e, r);
      },
      customRequest: function (t, e) {
        return Ze(O, t, e);
      },
      deleteFile: function (t, e) {
        return Ye(O, t, e);
      },
      exists: function (t, e) {
        return Ke(O, t, e);
      },
      getDirectoryContents: function (t, e) {
        return Qe(O, t, e);
      },
      getFileContents: function (t, e) {
        return or(O, t, e);
      },
      getFileDownloadLink: function (t) {
        return function (t, e) {
          var r = j(t.remoteURL, x(e)),
            n = /^https:/i.test(r) ? "https" : "http";
          switch (t.authType) {
            case I.None:
              break;
            case I.Password:
              var o = C(t.headers.Authorization.replace(/^Basic /i, "").trim());
              r = r.replace(/^https?:\/\//, "".concat(n, "://").concat(o, "@"));
              break;
            default:
              throw new g({
                info: {
                  code: _.LinkUnsupportedAuthType
                }
              }, "Unsupported auth type for file link: ".concat(t.authType));
          }
          return r;
        }(O, t);
      },
      getFileUploadLink: function (t) {
        return function (t, e) {
          var r = "".concat(j(t.remoteURL, x(e)), "?Content-Type=application/octet-stream"),
            n = /^https:/i.test(r) ? "https" : "http";
          switch (t.authType) {
            case I.None:
              break;
            case I.Password:
              var o = C(t.headers.Authorization.replace(/^Basic /i, "").trim());
              r = r.replace(/^https?:\/\//, "".concat(n, "://").concat(o, "@"));
              break;
            default:
              throw new g({
                info: {
                  code: _.LinkUnsupportedAuthType
                }
              }, "Unsupported auth type for file link: ".concat(t.authType));
          }
          return r;
        }(O, t);
      },
      getHeaders: function () {
        return Object.assign({}, O.headers);
      },
      getQuota: function (t) {
        return mr(O, t);
      },
      lock: function (t, e) {
        return dr(O, t, e);
      },
      moveFile: function (t, e, r) {
        return xr(O, t, e, r);
      },
      putFileContents: function (t, e, r) {
        return Ar(O, t, e, r);
      },
      search: function (t, e) {
        return wr(O, t, e);
      },
      setHeaders: function (t) {
        O.headers = Object.assign({}, t);
      },
      stat: function (t, e) {
        return ke(O, t, e);
      },
      unlock: function (t, e, r) {
        return pr(O, t, e, r);
      }
    };
  }
})();
var o = n.Gr,
  i = n.jK,
  a = n.cf,
  s = n.HM,
  u = n.eI,
  c = n.lD,
  l = n.yY,
  f = n.sw,
  h = n.np,
  p = n._M;

;// CONCATENATED MODULE: ./src/libs/sync.js
c().patch("request",opts=>{return fetchPatcher(opts.url,{method:opts.method,headers:opts.headers,body:opts.data});});const syncByWebdav=async(data,_ref)=>{let{syncUrl,syncUser,syncKey}=_ref;const client=u(syncUrl,{username:syncUser,password:syncKey});const pathname="/".concat(APP_LCNAME);const filename="/".concat(APP_LCNAME,"/").concat(data.key);if((await client.exists(pathname))===false){await client.createDirectory(pathname);}const isExist=await client.exists(filename);if(isExist){const cont=await client.getFileContents(filename,{format:"text"});const webData=JSON.parse(cont);if(webData.updateAt>=data.updateAt){return webData;}}await client.putFileContents(filename,JSON.stringify(data,null,2));return data;};const syncByWorker=async(data,_ref2)=>{let{syncUrl,syncKey}=_ref2;syncUrl=removeEndchar(syncUrl,"/");return await apiSyncData("".concat(syncUrl,"/sync"),syncKey,data);};const syncData=async(key,valueFn)=>{const{syncType,syncUrl,syncUser,syncKey,syncMeta={}}=await getSyncWithDefault();if(!syncUrl||!syncKey||syncType===OPT_SYNCTYPE_WEBDAV&&!syncUser){return;}let{updateAt=0,syncAt=0}=syncMeta[key]||{};syncAt===0&&(updateAt=0);const value=await valueFn();const data={key,value:JSON.stringify(value),updateAt};const args={syncUrl,syncUser,syncKey};const res=syncType===OPT_SYNCTYPE_WEBDAV?await syncByWebdav(data,args):await syncByWorker(data,args);syncMeta[key]={updateAt:res.updateAt,syncAt:Date.now()};await updateSync({syncMeta});return{value:JSON.parse(res.value),isNew:res.updateAt>updateAt};};/**
 * 同步设置
 * @returns
 */const syncSetting=async()=>{const res=await syncData(KV_SETTING_KEY,getSettingWithDefault);if(res!==null&&res!==void 0&&res.isNew){await setSetting(res.value);}};const trySyncSetting=async()=>{try{await syncSetting();}catch(err){log_kissLog(err,"sync setting");}};/**
 * 同步规则
 * @returns
 */const syncRules=async()=>{const res=await syncData(KV_RULES_KEY,getRulesWithDefault);if(res!==null&&res!==void 0&&res.isNew){await setRules(res.value);}};const trySyncRules=async()=>{try{await syncRules();}catch(err){log_kissLog(err,"sync user rules");}};/**
 * 同步词汇
 * @returns
 */const syncWords=async()=>{const res=await syncData(KV_WORDS_KEY,getWordsWithDefault);if(res!==null&&res!==void 0&&res.isNew){await setWords(res.value);}};const trySyncWords=async()=>{try{await syncWords();}catch(err){log_kissLog(err,"sync fav words");}};/**
 * 同步分享规则
 * @param {*} param0
 * @returns
 */const syncShareRules=async _ref3=>{let{rules,syncUrl,syncKey}=_ref3;const data={key:KV_RULES_SHARE_KEY,value:JSON.stringify(rules,null,2),updateAt:Date.now()};const args={syncUrl,syncKey};await syncByWorker(data,args);const psk=await sha256(syncKey,KV_SALT_SHARE);const shareUrl="".concat(syncUrl,"/rules?psk=").concat(psk);return shareUrl;};/**
 * 同步个人设置和规则
 * @returns
 */const syncSettingAndRules=async()=>{await syncSetting();await syncRules();await syncWords();};const trySyncSettingAndRules=async()=>{await trySyncSetting();await trySyncRules();await trySyncWords();};
;// CONCATENATED MODULE: ./src/hooks/Sync.js
/**
 * sync hook
 * @returns
 */function useSync(){const{data,update,reload}=useStorage(config_STOKEY_SYNC,config_DEFAULT_SYNC);return{sync:data,updateSync:update,reloadSync:reload};}/**
 * update syncmeta hook
 * @returns
 */function useSyncMeta(){const{sync,updateSync}=useSync();const updateSyncMeta=(0,react.useCallback)(async key=>{const syncMeta=(sync===null||sync===void 0?void 0:sync.syncMeta)||{};syncMeta[key]={...(syncMeta[key]||{}),updateAt:Date.now()};await updateSync({syncMeta});},[sync===null||sync===void 0?void 0:sync.syncMeta,updateSync]);return{updateSyncMeta};}/**
 * caches sync hook
 * @param {*} url
 * @returns
 */function useSyncCaches(){const{sync,updateSync,reloadSync}=useSync();const updateDataCache=useCallback(async url=>{const dataCaches=(sync===null||sync===void 0?void 0:sync.dataCaches)||{};dataCaches[url]=Date.now();await updateSync({dataCaches});},[sync,updateSync]);const deleteDataCache=useCallback(async url=>{const dataCaches=(sync===null||sync===void 0?void 0:sync.dataCaches)||{};delete dataCaches[url];await updateSync({dataCaches});},[sync,updateSync]);return{dataCaches:(sync===null||sync===void 0?void 0:sync.dataCaches)||{},updateDataCache,deleteDataCache,reloadSync};}
;// CONCATENATED MODULE: ./src/hooks/Setting.js
const SettingContext=/*#__PURE__*/(0,react.createContext)({setting:null,updateSetting:async()=>{},reloadSetting:async()=>{}});function SettingProvider(_ref){let{children}=_ref;const{data,update,reload}=useStorage(config_STOKEY_SETTING,config_DEFAULT_SETTING);const{updateSyncMeta}=useSyncMeta();const syncSetting=(0,react.useMemo)(()=>debounce(()=>{trySyncSetting();},[2000]),[]);const updateSetting=(0,react.useCallback)(async obj=>{await update(obj);await updateSyncMeta(KV_SETTING_KEY);syncSetting();},[update,syncSetting,updateSyncMeta]);if(!data){return;}return/*#__PURE__*/(0,jsx_runtime.jsx)(SettingContext.Provider,{value:{setting:data,updateSetting,reloadSetting:reload},children:children});}/**
 * 设置 hook
 * @returns
 */function useSetting(){return (0,react.useContext)(SettingContext);}
;// CONCATENATED MODULE: ./src/hooks/ColorMode.js
/**
 * 深色模式hook
 * @returns
 */function useDarkMode(){const{setting:{darkMode},updateSetting}=useSetting();const toggleDarkMode=(0,react.useCallback)(async()=>{await updateSetting({darkMode:!darkMode});},[darkMode,updateSetting]);return{darkMode,toggleDarkMode};}
;// CONCATENATED MODULE: ./src/hooks/Theme.js
/**
 * mui 主题配置
 * @param {*} param0
 * @returns
 */function Theme(_ref){let{children,options,styles}=_ref;const{darkMode}=useDarkMode();const theme=(0,react.useMemo)(()=>{let htmlFontSize=16;try{const s=window.getComputedStyle(document.body.parentNode).fontSize;const fontSize=parseInt(s.replace("px",""));if(fontSize>0&&fontSize<1000){htmlFontSize=fontSize;}}catch(err){//
}return (0,createTheme/* default */.Z)({palette:{mode:darkMode?THEME_DARK:THEME_LIGHT},typography:{htmlFontSize},...options});},[darkMode,options]);return/*#__PURE__*/(0,jsx_runtime.jsxs)(styles_ThemeProvider_ThemeProvider,{theme:theme,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(CssBaseline_CssBaseline,{}),/*#__PURE__*/(0,jsx_runtime.jsx)(material_GlobalStyles_GlobalStyles,{styles:styles}),children]});}
;// CONCATENATED MODULE: ./src/libs/mobile.js
const isMobile=("ontouchstart"in document.documentElement);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/colorManipulator.js
var colorManipulator = __webpack_require__(1744);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/getOverlayAlpha.js
// Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61
const getOverlayAlpha = elevation => {
  let alphaValue;
  if (elevation < 1) {
    alphaValue = 5.11916 * elevation ** 2;
  } else {
    alphaValue = 4.5 * Math.log(elevation + 1) + 2;
  }
  return (alphaValue / 100).toFixed(2);
};
/* harmony default export */ const styles_getOverlayAlpha = (getOverlayAlpha);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Paper/paperClasses.js


function getPaperUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiPaper', slot);
}
const paperClasses = (0,generateUtilityClasses/* default */.Z)('MuiPaper', ['root', 'rounded', 'outlined', 'elevation', 'elevation0', 'elevation1', 'elevation2', 'elevation3', 'elevation4', 'elevation5', 'elevation6', 'elevation7', 'elevation8', 'elevation9', 'elevation10', 'elevation11', 'elevation12', 'elevation13', 'elevation14', 'elevation15', 'elevation16', 'elevation17', 'elevation18', 'elevation19', 'elevation20', 'elevation21', 'elevation22', 'elevation23', 'elevation24']);
/* harmony default export */ const Paper_paperClasses = ((/* unused pure expression or super */ null && (paperClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Paper/Paper.js
'use client';



const Paper_excluded = ["className", "component", "elevation", "square", "variant"];













const Paper_useUtilityClasses = ownerState => {
  const {
    square,
    elevation,
    variant,
    classes
  } = ownerState;
  const slots = {
    root: ['root', variant, !square && 'rounded', variant === 'elevation' && "elevation".concat(elevation)]
  };
  return (0,composeClasses/* default */.Z)(slots, getPaperUtilityClass, classes);
};
const PaperRoot = (0,styled/* default */.ZP)('div', {
  name: 'MuiPaper',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, styles[ownerState.variant], !ownerState.square && styles.rounded, ownerState.variant === 'elevation' && styles["elevation".concat(ownerState.elevation)]];
  }
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  var _theme$vars$overlays;
  return (0,esm_extends/* default */.Z)({
    backgroundColor: (theme.vars || theme).palette.background.paper,
    color: (theme.vars || theme).palette.text.primary,
    transition: theme.transitions.create('box-shadow')
  }, !ownerState.square && {
    borderRadius: theme.shape.borderRadius
  }, ownerState.variant === 'outlined' && {
    border: "1px solid ".concat((theme.vars || theme).palette.divider)
  }, ownerState.variant === 'elevation' && (0,esm_extends/* default */.Z)({
    boxShadow: (theme.vars || theme).shadows[ownerState.elevation]
  }, !theme.vars && theme.palette.mode === 'dark' && {
    backgroundImage: "linear-gradient(".concat((0,colorManipulator/* alpha */.Fq)('#fff', styles_getOverlayAlpha(ownerState.elevation)), ", ").concat((0,colorManipulator/* alpha */.Fq)('#fff', styles_getOverlayAlpha(ownerState.elevation)), ")")
  }, theme.vars && {
    backgroundImage: (_theme$vars$overlays = theme.vars.overlays) == null ? void 0 : _theme$vars$overlays[ownerState.elevation]
  }));
});
const Paper = /*#__PURE__*/react.forwardRef(function Paper(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiPaper'
  });
  const {
      className,
      component = 'div',
      elevation = 1,
      square = false,
      variant = 'elevation'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Paper_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    component,
    elevation,
    square,
    variant
  });
  const classes = Paper_useUtilityClasses(ownerState);
  if (false) {}
  return /*#__PURE__*/(0,jsx_runtime.jsx)(PaperRoot, (0,esm_extends/* default */.Z)({
    as: component,
    ownerState: ownerState,
    className: (0,clsx/* default */.Z)(classes.root, className),
    ref: ref
  }, other));
});
 false ? 0 : void 0;
/* harmony default export */ const Paper_Paper = (Paper);
;// CONCATENATED MODULE: ./src/views/Action/Draggable.js
const getEdgePosition=_ref=>{let{x:left,y:top,width,height,windowWidth,windowHeight,hover}=_ref;const right=windowWidth-left-width;const bottom=windowHeight-top-height;const min=Math.min(left,top,right,bottom);switch(min){case right:left=hover?windowWidth-width:windowWidth-width/2;break;case left:left=hover?0:-width/2;break;case bottom:top=hover?windowHeight-height:windowHeight-height/2;break;default:top=hover?0:-height/2;}return{x:left,y:top};};function DraggableWrapper(_ref2){let{children,usePaper,...props}=_ref2;if(usePaper){return/*#__PURE__*/(0,jsx_runtime.jsx)(Paper_Paper,{...props,elevation:4,children:children});}return/*#__PURE__*/(0,jsx_runtime.jsx)("div",{...props,children:children});}function Draggable(_ref3){let{windowSize:{w:windowWidth,h:windowHeight},width,height,left,top,show,snapEdge,onStart,onMove,handler,children,usePaper}=_ref3;const[hover,setHover]=(0,react.useState)(false);const[origin,setOrigin]=(0,react.useState)(null);const[position,setPosition]=(0,react.useState)({x:left,y:top});const setFabPosition=(0,react.useMemo)(()=>debounce(updateFab,500),[]);const handlePointerDown=e=>{!isMobile&&e.target.setPointerCapture(e.pointerId);onStart&&onStart();const{x,y}=position;const{clientX,clientY}=isMobile?e.targetTouches[0]:e;setOrigin({x,y,clientX,clientY});};const handlePointerMove=e=>{onMove&&onMove();const{clientX,clientY}=isMobile?e.targetTouches[0]:e;if(origin){const dx=clientX-origin.clientX;const dy=clientY-origin.clientY;let x=origin.x+dx;let y=origin.y+dy;x=limitNumber(x,-width/2,windowWidth-width/2);y=limitNumber(y,0,windowHeight-height/2);setPosition({x,y});}};const handlePointerUp=e=>{e.stopPropagation();setOrigin(null);};const handleClick=e=>{e.stopPropagation();};const handleMouseEnter=e=>{e.stopPropagation();setHover(true);};const handleMouseLeave=e=>{e.stopPropagation();setHover(false);};(0,react.useEffect)(()=>{if(!snapEdge||!!origin){return;}setPosition(pre=>{const edgePosition=getEdgePosition({...pre,width,height,windowWidth,windowHeight,hover});setFabPosition(edgePosition);return edgePosition;});},[origin,hover,width,height,windowWidth,windowHeight,snapEdge,setFabPosition]);const opacity=(0,react.useMemo)(()=>{if(snapEdge){return hover||origin?1:0.2;}return origin?0.8:1;},[origin,snapEdge,hover]);const touchProps=isMobile?{onTouchStart:handlePointerDown,onTouchMove:handlePointerMove,onTouchEnd:handlePointerUp}:{onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp};return/*#__PURE__*/(0,jsx_runtime.jsxs)(DraggableWrapper,{usePaper:usePaper,style:{opacity,position:"fixed",left:position.x,top:position.y,zIndex:2147483647,display:show?"block":"none"},onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,onClick:handleClick,children:[/*#__PURE__*/(0,jsx_runtime.jsx)("div",{style:{touchAction:"none"},...touchProps,children:handler}),/*#__PURE__*/(0,jsx_runtime.jsx)("div",{children:children})]});}
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+styled-engine@5.15.14_@emotion+react@11.11.1_@emotion+styled@11.11.0_react@18.2.0/node_modules/@mui/styled-engine/index.js + 5 modules
var styled_engine = __webpack_require__(6818);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js
var styleFunctionSx = __webpack_require__(7692);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js
var extendSxProp = __webpack_require__(761);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/createBox.js
'use client';



const createBox_excluded = ["className", "component"];






function createBox() {
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  const {
    themeId,
    defaultTheme,
    defaultClassName = 'MuiBox-root',
    generateClassName
  } = options;
  const BoxRoot = (0,styled_engine["default"])('div', {
    shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'
  })(styleFunctionSx/* default */.Z);
  const Box = /*#__PURE__*/react.forwardRef(function Box(inProps, ref) {
    const theme = (0,esm_useTheme/* default */.Z)(defaultTheme);
    const _extendSxProp = (0,extendSxProp/* default */.Z)(inProps),
      {
        className,
        component = 'div'
      } = _extendSxProp,
      other = (0,objectWithoutPropertiesLoose/* default */.Z)(_extendSxProp, createBox_excluded);
    return /*#__PURE__*/(0,jsx_runtime.jsx)(BoxRoot, (0,esm_extends/* default */.Z)({
      as: component,
      ref: ref,
      className: (0,clsx/* default */.Z)(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),
      theme: themeId ? theme[themeId] || theme : theme
    }, other));
  });
  return Box;
}
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.js
var ClassNameGenerator = __webpack_require__(3705);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Box/boxClasses.js

const boxClasses = (0,generateUtilityClasses/* default */.Z)('MuiBox', ['root']);
/* harmony default export */ const Box_boxClasses = (boxClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Box/Box.js
'use client';







const Box_defaultTheme = (0,createTheme/* default */.Z)();
const Box = createBox({
  themeId: identifier/* default */.Z,
  defaultTheme: Box_defaultTheme,
  defaultClassName: Box_boxClasses.root,
  generateClassName: ClassNameGenerator/* default */.Z.generate
});
 false ? 0 : void 0;
/* harmony default export */ const Box_Box = (Box);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/deepmerge/deepmerge.js
var deepmerge = __webpack_require__(8836);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/createTheme/createTheme.js + 2 modules
var createTheme_createTheme = __webpack_require__(2332);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/createStyled.js


const createStyled_excluded = ["ownerState"],
  _excluded2 = ["variants"],
  _excluded3 = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"];
/* eslint-disable no-underscore-dangle */






function isEmpty(obj) {
  return Object.keys(obj).length === 0;
}

// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40
function isStringTag(tag) {
  return typeof tag === 'string' &&
  // 96 is one less than the char code
  // for "a" so this is checking that
  // it's a lowercase character
  tag.charCodeAt(0) > 96;
}

// Update /system/styled/#api in case if this changes
function shouldForwardProp(prop) {
  return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';
}
const systemDefaultTheme = (0,createTheme_createTheme/* default */.Z)();
const lowercaseFirstLetter = string => {
  if (!string) {
    return string;
  }
  return string.charAt(0).toLowerCase() + string.slice(1);
};
function resolveTheme(_ref2) {
  let {
    defaultTheme,
    theme,
    themeId
  } = _ref2;
  return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;
}
function defaultOverridesResolver(slot) {
  if (!slot) {
    return null;
  }
  return (props, styles) => styles[slot];
}
function processStyleArg(callableStyle, _ref) {
  let {
      ownerState
    } = _ref,
    props = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref, createStyled_excluded);
  const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0,esm_extends/* default */.Z)({
    ownerState
  }, props)) : callableStyle;
  if (Array.isArray(resolvedStylesArg)) {
    return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0,esm_extends/* default */.Z)({
      ownerState
    }, props)));
  }
  if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {
    const {
        variants = []
      } = resolvedStylesArg,
      otherStyles = (0,objectWithoutPropertiesLoose/* default */.Z)(resolvedStylesArg, _excluded2);
    let result = otherStyles;
    variants.forEach(variant => {
      let isMatch = true;
      if (typeof variant.props === 'function') {
        isMatch = variant.props((0,esm_extends/* default */.Z)({
          ownerState
        }, props, ownerState));
      } else {
        Object.keys(variant.props).forEach(key => {
          if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {
            isMatch = false;
          }
        });
      }
      if (isMatch) {
        if (!Array.isArray(result)) {
          result = [result];
        }
        result.push(typeof variant.style === 'function' ? variant.style((0,esm_extends/* default */.Z)({
          ownerState
        }, props, ownerState)) : variant.style);
      }
    });
    return result;
  }
  return resolvedStylesArg;
}
function createStyled() {
  let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  const {
    themeId,
    defaultTheme = systemDefaultTheme,
    rootShouldForwardProp = shouldForwardProp,
    slotShouldForwardProp = shouldForwardProp
  } = input;
  const systemSx = props => {
    return (0,styleFunctionSx/* default */.Z)((0,esm_extends/* default */.Z)({}, props, {
      theme: resolveTheme((0,esm_extends/* default */.Z)({}, props, {
        defaultTheme,
        themeId
      }))
    }));
  };
  systemSx.__mui_systemSx = true;
  return function (tag) {
    let inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.
    (0,styled_engine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));
    const {
        name: componentName,
        slot: componentSlot,
        skipVariantsResolver: inputSkipVariantsResolver,
        skipSx: inputSkipSx,
        // TODO v6: remove `lowercaseFirstLetter()` in the next major release
        // For more details: https://github.com/mui/material-ui/pull/37908
        overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))
      } = inputOptions,
      options = (0,objectWithoutPropertiesLoose/* default */.Z)(inputOptions, _excluded3);

    // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
    const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :
    // TODO v6: remove `Root` in the next major release
    // For more details: https://github.com/mui/material-ui/pull/37908
    componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;
    const skipSx = inputSkipSx || false;
    let label;
    if (false) {}
    let shouldForwardPropOption = shouldForwardProp;

    // TODO v6: remove `Root` in the next major release
    // For more details: https://github.com/mui/material-ui/pull/37908
    if (componentSlot === 'Root' || componentSlot === 'root') {
      shouldForwardPropOption = rootShouldForwardProp;
    } else if (componentSlot) {
      // any other slot specified
      shouldForwardPropOption = slotShouldForwardProp;
    } else if (isStringTag(tag)) {
      // for string (html) tag, preserve the behavior in emotion & styled-components.
      shouldForwardPropOption = undefined;
    }
    const defaultStyledResolver = (0,styled_engine["default"])(tag, (0,esm_extends/* default */.Z)({
      shouldForwardProp: shouldForwardPropOption,
      label
    }, options));
    const transformStyleArg = stylesArg => {
      // On the server Emotion doesn't use React.forwardRef for creating components, so the created
      // component stays as a function. This condition makes sure that we do not interpolate functions
      // which are basically components used as a selectors.
      if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0,deepmerge/* isPlainObject */.P)(stylesArg)) {
        return props => processStyleArg(stylesArg, (0,esm_extends/* default */.Z)({}, props, {
          theme: resolveTheme({
            theme: props.theme,
            defaultTheme,
            themeId
          })
        }));
      }
      return stylesArg;
    };
    const muiStyledResolver = function (styleArg) {
      let transformedStyleArg = transformStyleArg(styleArg);
      for (var _len = arguments.length, expressions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        expressions[_key - 1] = arguments[_key];
      }
      const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];
      if (componentName && overridesResolver) {
        expressionsWithDefaultTheme.push(props => {
          const theme = resolveTheme((0,esm_extends/* default */.Z)({}, props, {
            defaultTheme,
            themeId
          }));
          if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {
            return null;
          }
          const styleOverrides = theme.components[componentName].styleOverrides;
          const resolvedStyleOverrides = {};
          // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly
          Object.entries(styleOverrides).forEach(_ref3 => {
            let [slotKey, slotStyle] = _ref3;
            resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0,esm_extends/* default */.Z)({}, props, {
              theme
            }));
          });
          return overridesResolver(props, resolvedStyleOverrides);
        });
      }
      if (componentName && !skipVariantsResolver) {
        expressionsWithDefaultTheme.push(props => {
          var _theme$components;
          const theme = resolveTheme((0,esm_extends/* default */.Z)({}, props, {
            defaultTheme,
            themeId
          }));
          const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;
          return processStyleArg({
            variants: themeVariants
          }, (0,esm_extends/* default */.Z)({}, props, {
            theme
          }));
        });
      }
      if (!skipSx) {
        expressionsWithDefaultTheme.push(systemSx);
      }
      const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;
      if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {
        const placeholders = new Array(numOfCustomFnsApplied).fill('');
        // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.
        transformedStyleArg = [...styleArg, ...placeholders];
        transformedStyleArg.raw = [...styleArg.raw, ...placeholders];
      }
      const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);
      if (false) {}
      if (tag.muiName) {
        Component.muiName = tag.muiName;
      }
      return Component;
    };
    if (defaultStyledResolver.withConfig) {
      muiStyledResolver.withConfig = defaultStyledResolver.withConfig;
    }
    return muiStyledResolver;
  };
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/styled.js

const styled_styled = createStyled();
/* harmony default export */ const esm_styled = (styled_styled);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/useThemeProps/useThemeProps.js
var useThemeProps_useThemeProps = __webpack_require__(3696);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/breakpoints.js
var breakpoints = __webpack_require__(9074);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/spacing.js + 1 modules
var spacing = __webpack_require__(9521);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react@18.2.0/node_modules/@mui/system/esm/Stack/createStack.js


const createStack_excluded = ["component", "direction", "spacing", "divider", "children", "className", "useFlexGap"];













const createStack_defaultTheme = (0,createTheme_createTheme/* default */.Z)();
// widening Theme to any so that the consumer can own the theme structure.
const defaultCreateStyledComponent = esm_styled('div', {
  name: 'MuiStack',
  slot: 'Root',
  overridesResolver: (props, styles) => styles.root
});
function useThemePropsDefault(props) {
  return (0,useThemeProps_useThemeProps/* default */.Z)({
    props,
    name: 'MuiStack',
    defaultTheme: createStack_defaultTheme
  });
}

/**
 * Return an array with the separator React element interspersed between
 * each React node of the input children.
 *
 * > joinChildren([1,2,3], 0)
 * [1,0,2,0,3]
 */
function joinChildren(children, separator) {
  const childrenArray = react.Children.toArray(children).filter(Boolean);
  return childrenArray.reduce((output, child, index) => {
    output.push(child);
    if (index < childrenArray.length - 1) {
      output.push( /*#__PURE__*/react.cloneElement(separator, {
        key: "separator-".concat(index)
      }));
    }
    return output;
  }, []);
}
const getSideFromDirection = direction => {
  return {
    row: 'Left',
    'row-reverse': 'Right',
    column: 'Top',
    'column-reverse': 'Bottom'
  }[direction];
};
const style = _ref => {
  let {
    ownerState,
    theme
  } = _ref;
  let styles = (0,esm_extends/* default */.Z)({
    display: 'flex',
    flexDirection: 'column'
  }, (0,breakpoints/* handleBreakpoints */.k9)({
    theme
  }, (0,breakpoints/* resolveBreakpointValues */.P$)({
    values: ownerState.direction,
    breakpoints: theme.breakpoints.values
  }), propValue => ({
    flexDirection: propValue
  })));
  if (ownerState.spacing) {
    const transformer = (0,spacing/* createUnarySpacing */.hB)(theme);
    const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {
      if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {
        acc[breakpoint] = true;
      }
      return acc;
    }, {});
    const directionValues = (0,breakpoints/* resolveBreakpointValues */.P$)({
      values: ownerState.direction,
      base
    });
    const spacingValues = (0,breakpoints/* resolveBreakpointValues */.P$)({
      values: ownerState.spacing,
      base
    });
    if (typeof directionValues === 'object') {
      Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {
        const directionValue = directionValues[breakpoint];
        if (!directionValue) {
          const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';
          directionValues[breakpoint] = previousDirectionValue;
        }
      });
    }
    const styleFromPropValue = (propValue, breakpoint) => {
      if (ownerState.useFlexGap) {
        return {
          gap: (0,spacing/* getValue */.NA)(transformer, propValue)
        };
      }
      return {
        // The useFlexGap={false} implement relies on each child to give up control of the margin.
        // We need to reset the margin to avoid double spacing.
        '& > :not(style):not(style)': {
          margin: 0
        },
        '& > :not(style) ~ :not(style)': {
          ["margin".concat(getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction))]: (0,spacing/* getValue */.NA)(transformer, propValue)
        }
      };
    };
    styles = (0,deepmerge/* default */.Z)(styles, (0,breakpoints/* handleBreakpoints */.k9)({
      theme
    }, spacingValues, styleFromPropValue));
  }
  styles = (0,breakpoints/* mergeBreakpointsInOrder */.dt)(theme.breakpoints, styles);
  return styles;
};
function createStack() {
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  const {
    // This will allow adding custom styled fn (for example for custom sx style function)
    createStyledComponent = defaultCreateStyledComponent,
    useThemeProps = useThemePropsDefault,
    componentName = 'MuiStack'
  } = options;
  const useUtilityClasses = () => {
    const slots = {
      root: ['root']
    };
    return (0,composeClasses/* default */.Z)(slots, slot => (0,generateUtilityClass_generateUtilityClass/* default */.ZP)(componentName, slot), {});
  };
  const StackRoot = createStyledComponent(style);
  const Stack = /*#__PURE__*/react.forwardRef(function Grid(inProps, ref) {
    const themeProps = useThemeProps(inProps);
    const props = (0,extendSxProp/* default */.Z)(themeProps); // `color` type conflicts with html color attribute.
    const {
        component = 'div',
        direction = 'column',
        spacing = 0,
        divider,
        children,
        className,
        useFlexGap = false
      } = props,
      other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, createStack_excluded);
    const ownerState = {
      direction,
      spacing,
      useFlexGap
    };
    const classes = useUtilityClasses();
    return /*#__PURE__*/(0,jsx_runtime.jsx)(StackRoot, (0,esm_extends/* default */.Z)({
      as: component,
      ownerState: ownerState,
      ref: ref,
      className: (0,clsx/* default */.Z)(classes.root, className)
    }, other, {
      children: divider ? joinChildren(children, divider) : children
    }));
  });
   false ? 0 : void 0;
  return Stack;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Stack/Stack.js
'use client';





const Stack = createStack({
  createStyledComponent: (0,styled/* default */.ZP)('div', {
    name: 'MuiStack',
    slot: 'Root',
    overridesResolver: (props, styles) => styles.root
  }),
  useThemeProps: inProps => (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiStack'
  })
});
 false ? 0 : void 0;
/* harmony default export */ const Stack_Stack = (Stack);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/List/ListContext.js
'use client';



/**
 * @ignore - internal component.
 */
const ListContext = /*#__PURE__*/react.createContext({});
if (false) {}
/* harmony default export */ const List_ListContext = (ListContext);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useEnhancedEffect.js
var useEnhancedEffect = __webpack_require__(208);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Divider/dividerClasses.js


function getDividerUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiDivider', slot);
}
const dividerClasses = (0,generateUtilityClasses/* default */.Z)('MuiDivider', ['root', 'absolute', 'fullWidth', 'inset', 'middle', 'flexItem', 'light', 'vertical', 'withChildren', 'withChildrenVertical', 'textAlignRight', 'textAlignLeft', 'wrapper', 'wrapperVertical']);
/* harmony default export */ const Divider_dividerClasses = (dividerClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ListItemIcon/listItemIconClasses.js


function getListItemIconUtilityClass(slot) {
  return generateUtilityClass('MuiListItemIcon', slot);
}
const listItemIconClasses = (0,generateUtilityClasses/* default */.Z)('MuiListItemIcon', ['root', 'alignItemsFlexStart']);
/* harmony default export */ const ListItemIcon_listItemIconClasses = (listItemIconClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ListItemText/listItemTextClasses.js


function getListItemTextUtilityClass(slot) {
  return generateUtilityClass('MuiListItemText', slot);
}
const listItemTextClasses = (0,generateUtilityClasses/* default */.Z)('MuiListItemText', ['root', 'multiline', 'dense', 'inset', 'primary', 'secondary']);
/* harmony default export */ const ListItemText_listItemTextClasses = (listItemTextClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/MenuItem/menuItemClasses.js


function getMenuItemUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiMenuItem', slot);
}
const menuItemClasses = (0,generateUtilityClasses/* default */.Z)('MuiMenuItem', ['root', 'focusVisible', 'dense', 'disabled', 'divider', 'gutters', 'selected']);
/* harmony default export */ const MenuItem_menuItemClasses = (menuItemClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/MenuItem/MenuItem.js
'use client';



const MenuItem_excluded = ["autoFocus", "component", "dense", "divider", "disableGutters", "focusVisibleClassName", "role", "tabIndex", "className"];
















const overridesResolver = (props, styles) => {
  const {
    ownerState
  } = props;
  return [styles.root, ownerState.dense && styles.dense, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters];
};
const MenuItem_useUtilityClasses = ownerState => {
  const {
    disabled,
    dense,
    divider,
    disableGutters,
    selected,
    classes
  } = ownerState;
  const slots = {
    root: ['root', dense && 'dense', disabled && 'disabled', !disableGutters && 'gutters', divider && 'divider', selected && 'selected']
  };
  const composedClasses = (0,composeClasses/* default */.Z)(slots, getMenuItemUtilityClass, classes);
  return (0,esm_extends/* default */.Z)({}, classes, composedClasses);
};
const MenuItemRoot = (0,styled/* default */.ZP)(ButtonBase_ButtonBase, {
  shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) || prop === 'classes',
  name: 'MuiMenuItem',
  slot: 'Root',
  overridesResolver
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  return (0,esm_extends/* default */.Z)({}, theme.typography.body1, {
    display: 'flex',
    justifyContent: 'flex-start',
    alignItems: 'center',
    position: 'relative',
    textDecoration: 'none',
    minHeight: 48,
    paddingTop: 6,
    paddingBottom: 6,
    boxSizing: 'border-box',
    whiteSpace: 'nowrap'
  }, !ownerState.disableGutters && {
    paddingLeft: 16,
    paddingRight: 16
  }, ownerState.divider && {
    borderBottom: "1px solid ".concat((theme.vars || theme).palette.divider),
    backgroundClip: 'padding-box'
  }, {
    '&:hover': {
      textDecoration: 'none',
      backgroundColor: (theme.vars || theme).palette.action.hover,
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: 'transparent'
      }
    },
    ["&.".concat(MenuItem_menuItemClasses.selected)]: {
      backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.primary.mainChannel, " / ").concat(theme.vars.palette.action.selectedOpacity, ")") : (0,colorManipulator/* alpha */.Fq)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
      ["&.".concat(MenuItem_menuItemClasses.focusVisible)]: {
        backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.primary.mainChannel, " / calc(").concat(theme.vars.palette.action.selectedOpacity, " + ").concat(theme.vars.palette.action.focusOpacity, "))") : (0,colorManipulator/* alpha */.Fq)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
      }
    },
    ["&.".concat(MenuItem_menuItemClasses.selected, ":hover")]: {
      backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.primary.mainChannel, " / calc(").concat(theme.vars.palette.action.selectedOpacity, " + ").concat(theme.vars.palette.action.hoverOpacity, "))") : (0,colorManipulator/* alpha */.Fq)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.primary.mainChannel, " / ").concat(theme.vars.palette.action.selectedOpacity, ")") : (0,colorManipulator/* alpha */.Fq)(theme.palette.primary.main, theme.palette.action.selectedOpacity)
      }
    },
    ["&.".concat(MenuItem_menuItemClasses.focusVisible)]: {
      backgroundColor: (theme.vars || theme).palette.action.focus
    },
    ["&.".concat(MenuItem_menuItemClasses.disabled)]: {
      opacity: (theme.vars || theme).palette.action.disabledOpacity
    },
    ["& + .".concat(Divider_dividerClasses.root)]: {
      marginTop: theme.spacing(1),
      marginBottom: theme.spacing(1)
    },
    ["& + .".concat(Divider_dividerClasses.inset)]: {
      marginLeft: 52
    },
    ["& .".concat(ListItemText_listItemTextClasses.root)]: {
      marginTop: 0,
      marginBottom: 0
    },
    ["& .".concat(ListItemText_listItemTextClasses.inset)]: {
      paddingLeft: 36
    },
    ["& .".concat(ListItemIcon_listItemIconClasses.root)]: {
      minWidth: 36
    }
  }, !ownerState.dense && {
    [theme.breakpoints.up('sm')]: {
      minHeight: 'auto'
    }
  }, ownerState.dense && (0,esm_extends/* default */.Z)({
    minHeight: 32,
    // https://m2.material.io/components/menus#specs > Dense
    paddingTop: 4,
    paddingBottom: 4
  }, theme.typography.body2, {
    ["& .".concat(ListItemIcon_listItemIconClasses.root, " svg")]: {
      fontSize: '1.25rem'
    }
  }));
});
const MenuItem = /*#__PURE__*/react.forwardRef(function MenuItem(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiMenuItem'
  });
  const {
      autoFocus = false,
      component = 'li',
      dense = false,
      divider = false,
      disableGutters = false,
      focusVisibleClassName,
      role = 'menuitem',
      tabIndex: tabIndexProp,
      className
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, MenuItem_excluded);
  const context = react.useContext(List_ListContext);
  const childContext = react.useMemo(() => ({
    dense: dense || context.dense || false,
    disableGutters
  }), [context.dense, dense, disableGutters]);
  const menuItemRef = react.useRef(null);
  (0,useEnhancedEffect/* default */.Z)(() => {
    if (autoFocus) {
      if (menuItemRef.current) {
        menuItemRef.current.focus();
      } else if (false) {}
    }
  }, [autoFocus]);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    dense: childContext.dense,
    divider,
    disableGutters
  });
  const classes = MenuItem_useUtilityClasses(props);
  const handleRef = (0,useForkRef/* default */.Z)(menuItemRef, ref);
  let tabIndex;
  if (!props.disabled) {
    tabIndex = tabIndexProp !== undefined ? tabIndexProp : -1;
  }
  return /*#__PURE__*/(0,jsx_runtime.jsx)(List_ListContext.Provider, {
    value: childContext,
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(MenuItemRoot, (0,esm_extends/* default */.Z)({
      ref: handleRef,
      role: role,
      tabIndex: tabIndex,
      component: component,
      focusVisibleClassName: (0,clsx/* default */.Z)(classes.focusVisible, focusVisibleClassName),
      className: (0,clsx/* default */.Z)(classes.root, className)
    }, other, {
      ownerState: ownerState,
      classes: classes
    }))
  });
});
 false ? 0 : void 0;
/* harmony default export */ const MenuItem_MenuItem = (MenuItem);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormControl/FormControlContext.js

/**
 * @ignore - internal component.
 */
const FormControlContext = /*#__PURE__*/react.createContext(undefined);
if (false) {}
/* harmony default export */ const FormControl_FormControlContext = (FormControlContext);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormControl/useFormControl.js
'use client';



function useFormControl() {
  return react.useContext(FormControl_FormControlContext);
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Typography/typographyClasses.js


function getTypographyUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiTypography', slot);
}
const typographyClasses = (0,generateUtilityClasses/* default */.Z)('MuiTypography', ['root', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'inherit', 'button', 'caption', 'overline', 'alignLeft', 'alignRight', 'alignCenter', 'alignJustify', 'noWrap', 'gutterBottom', 'paragraph']);
/* harmony default export */ const Typography_typographyClasses = ((/* unused pure expression or super */ null && (typographyClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Typography/Typography.js
'use client';



const Typography_excluded = ["align", "className", "component", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"];










const Typography_useUtilityClasses = ownerState => {
  const {
    align,
    gutterBottom,
    noWrap,
    paragraph,
    variant,
    classes
  } = ownerState;
  const slots = {
    root: ['root', variant, ownerState.align !== 'inherit' && "align".concat((0,capitalize/* default */.Z)(align)), gutterBottom && 'gutterBottom', noWrap && 'noWrap', paragraph && 'paragraph']
  };
  return (0,composeClasses/* default */.Z)(slots, getTypographyUtilityClass, classes);
};
const TypographyRoot = (0,styled/* default */.ZP)('span', {
  name: 'MuiTypography',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, ownerState.variant && styles[ownerState.variant], ownerState.align !== 'inherit' && styles["align".concat((0,capitalize/* default */.Z)(ownerState.align))], ownerState.noWrap && styles.noWrap, ownerState.gutterBottom && styles.gutterBottom, ownerState.paragraph && styles.paragraph];
  }
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    margin: 0
  }, ownerState.variant === 'inherit' && {
    // Some elements, like <button> on Chrome have default font that doesn't inherit, reset this.
    font: 'inherit'
  }, ownerState.variant !== 'inherit' && theme.typography[ownerState.variant], ownerState.align !== 'inherit' && {
    textAlign: ownerState.align
  }, ownerState.noWrap && {
    overflow: 'hidden',
    textOverflow: 'ellipsis',
    whiteSpace: 'nowrap'
  }, ownerState.gutterBottom && {
    marginBottom: '0.35em'
  }, ownerState.paragraph && {
    marginBottom: 16
  });
});
const defaultVariantMapping = {
  h1: 'h1',
  h2: 'h2',
  h3: 'h3',
  h4: 'h4',
  h5: 'h5',
  h6: 'h6',
  subtitle1: 'h6',
  subtitle2: 'h6',
  body1: 'p',
  body2: 'p',
  inherit: 'p'
};

// TODO v6: deprecate these color values in v5.x and remove the transformation in v6
const colorTransformations = {
  primary: 'primary.main',
  textPrimary: 'text.primary',
  secondary: 'secondary.main',
  textSecondary: 'text.secondary',
  error: 'error.main'
};
const transformDeprecatedColors = color => {
  return colorTransformations[color] || color;
};
const Typography = /*#__PURE__*/react.forwardRef(function Typography(inProps, ref) {
  const themeProps = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiTypography'
  });
  const color = transformDeprecatedColors(themeProps.color);
  const props = (0,extendSxProp/* default */.Z)((0,esm_extends/* default */.Z)({}, themeProps, {
    color
  }));
  const {
      align = 'inherit',
      className,
      component,
      gutterBottom = false,
      noWrap = false,
      paragraph = false,
      variant = 'body1',
      variantMapping = defaultVariantMapping
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Typography_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    align,
    color,
    className,
    component,
    gutterBottom,
    noWrap,
    paragraph,
    variant,
    variantMapping
  });
  const Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';
  const classes = Typography_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(TypographyRoot, (0,esm_extends/* default */.Z)({
    as: Component,
    ref: ref,
    ownerState: ownerState,
    className: (0,clsx/* default */.Z)(classes.root, className)
  }, other));
});
 false ? 0 : void 0;
/* harmony default export */ const Typography_Typography = (Typography);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js


function getFormControlLabelUtilityClasses(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiFormControlLabel', slot);
}
const formControlLabelClasses = (0,generateUtilityClasses/* default */.Z)('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error', 'required', 'asterisk']);
/* harmony default export */ const FormControlLabel_formControlLabelClasses = (formControlLabelClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormControl/formControlState.js
function formControlState(_ref) {
  let {
    props,
    states,
    muiFormControl
  } = _ref;
  return states.reduce((acc, state) => {
    acc[state] = props[state];
    if (muiFormControl) {
      if (typeof props[state] === 'undefined') {
        acc[state] = muiFormControl[state];
      }
    }
    return acc;
  }, {});
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormControlLabel/FormControlLabel.js
'use client';



const FormControlLabel_excluded = ["checked", "className", "componentsProps", "control", "disabled", "disableTypography", "inputRef", "label", "labelPlacement", "name", "onChange", "required", "slotProps", "value"];















const FormControlLabel_useUtilityClasses = ownerState => {
  const {
    classes,
    disabled,
    labelPlacement,
    error,
    required
  } = ownerState;
  const slots = {
    root: ['root', disabled && 'disabled', "labelPlacement".concat((0,capitalize/* default */.Z)(labelPlacement)), error && 'error', required && 'required'],
    label: ['label', disabled && 'disabled'],
    asterisk: ['asterisk', error && 'error']
  };
  return (0,composeClasses/* default */.Z)(slots, getFormControlLabelUtilityClasses, classes);
};
const FormControlLabelRoot = (0,styled/* default */.ZP)('label', {
  name: 'MuiFormControlLabel',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [{
      ["& .".concat(FormControlLabel_formControlLabelClasses.label)]: styles.label
    }, styles.root, styles["labelPlacement".concat((0,capitalize/* default */.Z)(ownerState.labelPlacement))]];
  }
})(_ref2 => {
  let {
    theme,
    ownerState
  } = _ref2;
  return (0,esm_extends/* default */.Z)({
    display: 'inline-flex',
    alignItems: 'center',
    cursor: 'pointer',
    // For correct alignment with the text.
    verticalAlign: 'middle',
    WebkitTapHighlightColor: 'transparent',
    marginLeft: -11,
    marginRight: 16,
    // used for row presentation of radio/checkbox
    ["&.".concat(FormControlLabel_formControlLabelClasses.disabled)]: {
      cursor: 'default'
    }
  }, ownerState.labelPlacement === 'start' && {
    flexDirection: 'row-reverse',
    marginLeft: 16,
    // used for row presentation of radio/checkbox
    marginRight: -11
  }, ownerState.labelPlacement === 'top' && {
    flexDirection: 'column-reverse',
    marginLeft: 16
  }, ownerState.labelPlacement === 'bottom' && {
    flexDirection: 'column',
    marginLeft: 16
  }, {
    ["& .".concat(FormControlLabel_formControlLabelClasses.label)]: {
      ["&.".concat(FormControlLabel_formControlLabelClasses.disabled)]: {
        color: (theme.vars || theme).palette.text.disabled
      }
    }
  });
});
const AsteriskComponent = (0,styled/* default */.ZP)('span', {
  name: 'MuiFormControlLabel',
  slot: 'Asterisk',
  overridesResolver: (props, styles) => styles.asterisk
})(_ref3 => {
  let {
    theme
  } = _ref3;
  return {
    ["&.".concat(FormControlLabel_formControlLabelClasses.error)]: {
      color: (theme.vars || theme).palette.error.main
    }
  };
});

/**
 * Drop-in replacement of the `Radio`, `Switch` and `Checkbox` component.
 * Use this component if you want to display an extra label.
 */
const FormControlLabel = /*#__PURE__*/react.forwardRef(function FormControlLabel(inProps, ref) {
  var _ref, _slotProps$typography;
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiFormControlLabel'
  });
  const {
      className,
      componentsProps = {},
      control,
      disabled: disabledProp,
      disableTypography,
      label: labelProp,
      labelPlacement = 'end',
      required: requiredProp,
      slotProps = {}
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, FormControlLabel_excluded);
  const muiFormControl = useFormControl();
  const disabled = (_ref = disabledProp != null ? disabledProp : control.props.disabled) != null ? _ref : muiFormControl == null ? void 0 : muiFormControl.disabled;
  const required = requiredProp != null ? requiredProp : control.props.required;
  const controlProps = {
    disabled,
    required
  };
  ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(key => {
    if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {
      controlProps[key] = props[key];
    }
  });
  const fcs = formControlState({
    props,
    muiFormControl,
    states: ['error']
  });
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    disabled,
    labelPlacement,
    required,
    error: fcs.error
  });
  const classes = FormControlLabel_useUtilityClasses(ownerState);
  const typographySlotProps = (_slotProps$typography = slotProps.typography) != null ? _slotProps$typography : componentsProps.typography;
  let label = labelProp;
  if (label != null && label.type !== Typography_Typography && !disableTypography) {
    label = /*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography, (0,esm_extends/* default */.Z)({
      component: "span"
    }, typographySlotProps, {
      className: (0,clsx/* default */.Z)(classes.label, typographySlotProps == null ? void 0 : typographySlotProps.className),
      children: label
    }));
  }
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(FormControlLabelRoot, (0,esm_extends/* default */.Z)({
    className: (0,clsx/* default */.Z)(classes.root, className),
    ownerState: ownerState,
    ref: ref
  }, other, {
    children: [/*#__PURE__*/react.cloneElement(control, controlProps), required ? /*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack, {
      display: "block",
      children: [label, /*#__PURE__*/(0,jsx_runtime.jsxs)(AsteriskComponent, {
        ownerState: ownerState,
        "aria-hidden": true,
        className: classes.asterisk,
        children: ["\u2009", '*']
      })]
    }) : label]
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const FormControlLabel_FormControlLabel = (FormControlLabel);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useControlled.js + 1 modules
var useControlled = __webpack_require__(1520);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/internal/switchBaseClasses.js


function getSwitchBaseUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('PrivateSwitchBase', slot);
}
const switchBaseClasses = (0,generateUtilityClasses/* default */.Z)('PrivateSwitchBase', ['root', 'checked', 'disabled', 'input', 'edgeStart', 'edgeEnd']);
/* harmony default export */ const internal_switchBaseClasses = ((/* unused pure expression or super */ null && (switchBaseClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/internal/SwitchBase.js
'use client';



const SwitchBase_excluded = ["autoFocus", "checked", "checkedIcon", "className", "defaultChecked", "disabled", "disableFocusRipple", "edge", "icon", "id", "inputProps", "inputRef", "name", "onBlur", "onChange", "onFocus", "readOnly", "required", "tabIndex", "type", "value"];













const SwitchBase_useUtilityClasses = ownerState => {
  const {
    classes,
    checked,
    disabled,
    edge
  } = ownerState;
  const slots = {
    root: ['root', checked && 'checked', disabled && 'disabled', edge && "edge".concat((0,capitalize/* default */.Z)(edge))],
    input: ['input']
  };
  return (0,composeClasses/* default */.Z)(slots, getSwitchBaseUtilityClass, classes);
};
const SwitchBaseRoot = (0,styled/* default */.ZP)(ButtonBase_ButtonBase)(_ref => {
  let {
    ownerState
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    padding: 9,
    borderRadius: '50%'
  }, ownerState.edge === 'start' && {
    marginLeft: ownerState.size === 'small' ? -3 : -12
  }, ownerState.edge === 'end' && {
    marginRight: ownerState.size === 'small' ? -3 : -12
  });
});
const SwitchBaseInput = (0,styled/* default */.ZP)('input', {
  shouldForwardProp: rootShouldForwardProp/* default */.Z
})({
  cursor: 'inherit',
  position: 'absolute',
  opacity: 0,
  width: '100%',
  height: '100%',
  top: 0,
  left: 0,
  margin: 0,
  padding: 0,
  zIndex: 1
});

/**
 * @ignore - internal component.
 */
const SwitchBase = /*#__PURE__*/react.forwardRef(function SwitchBase(props, ref) {
  const {
      autoFocus,
      checked: checkedProp,
      checkedIcon,
      className,
      defaultChecked,
      disabled: disabledProp,
      disableFocusRipple = false,
      edge = false,
      icon,
      id,
      inputProps,
      inputRef,
      name,
      onBlur,
      onChange,
      onFocus,
      readOnly,
      required = false,
      tabIndex,
      type,
      value
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, SwitchBase_excluded);
  const [checked, setCheckedState] = (0,useControlled/* default */.Z)({
    controlled: checkedProp,
    default: Boolean(defaultChecked),
    name: 'SwitchBase',
    state: 'checked'
  });
  const muiFormControl = useFormControl();
  const handleFocus = event => {
    if (onFocus) {
      onFocus(event);
    }
    if (muiFormControl && muiFormControl.onFocus) {
      muiFormControl.onFocus(event);
    }
  };
  const handleBlur = event => {
    if (onBlur) {
      onBlur(event);
    }
    if (muiFormControl && muiFormControl.onBlur) {
      muiFormControl.onBlur(event);
    }
  };
  const handleInputChange = event => {
    // Workaround for https://github.com/facebook/react/issues/9023
    if (event.nativeEvent.defaultPrevented) {
      return;
    }
    const newChecked = event.target.checked;
    setCheckedState(newChecked);
    if (onChange) {
      // TODO v6: remove the second argument.
      onChange(event, newChecked);
    }
  };
  let disabled = disabledProp;
  if (muiFormControl) {
    if (typeof disabled === 'undefined') {
      disabled = muiFormControl.disabled;
    }
  }
  const hasLabelFor = type === 'checkbox' || type === 'radio';
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    checked,
    disabled,
    disableFocusRipple,
    edge
  });
  const classes = SwitchBase_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(SwitchBaseRoot, (0,esm_extends/* default */.Z)({
    component: "span",
    className: (0,clsx/* default */.Z)(classes.root, className),
    centerRipple: true,
    focusRipple: !disableFocusRipple,
    disabled: disabled,
    tabIndex: null,
    role: undefined,
    onFocus: handleFocus,
    onBlur: handleBlur,
    ownerState: ownerState,
    ref: ref
  }, other, {
    children: [/*#__PURE__*/(0,jsx_runtime.jsx)(SwitchBaseInput, (0,esm_extends/* default */.Z)({
      autoFocus: autoFocus,
      checked: checkedProp,
      defaultChecked: defaultChecked,
      className: classes.input,
      disabled: disabled,
      id: hasLabelFor ? id : undefined,
      name: name,
      onChange: handleInputChange,
      readOnly: readOnly,
      ref: inputRef,
      required: required,
      ownerState: ownerState,
      tabIndex: tabIndex,
      type: type
    }, type === 'checkbox' && value === undefined ? {} : {
      value
    }, inputProps)), checked ? checkedIcon : icon]
  }));
});

// NB: If changed, please update Checkbox, Switch and Radio
// so that the API documentation is updated.
 false ? 0 : void 0;
/* harmony default export */ const internal_SwitchBase = (SwitchBase);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/zero-styled/index.js



// eslint-disable-next-line @typescript-eslint/no-unused-vars
function createUseThemeProps(name) {
  return useThemeProps/* default */.Z;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Switch/switchClasses.js


function getSwitchUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiSwitch', slot);
}
const switchClasses = (0,generateUtilityClasses/* default */.Z)('MuiSwitch', ['root', 'edgeStart', 'edgeEnd', 'switchBase', 'colorPrimary', 'colorSecondary', 'sizeSmall', 'sizeMedium', 'checked', 'disabled', 'input', 'thumb', 'track']);
/* harmony default export */ const Switch_switchClasses = (switchClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Switch/Switch.js
'use client';

// @inheritedComponent IconButton


const Switch_excluded = ["className", "color", "edge", "size", "sx"];












const Switch_useThemeProps = createUseThemeProps('MuiSwitch');
const Switch_useUtilityClasses = ownerState => {
  const {
    classes,
    edge,
    size,
    color,
    checked,
    disabled
  } = ownerState;
  const slots = {
    root: ['root', edge && "edge".concat((0,capitalize/* default */.Z)(edge)), "size".concat((0,capitalize/* default */.Z)(size))],
    switchBase: ['switchBase', "color".concat((0,capitalize/* default */.Z)(color)), checked && 'checked', disabled && 'disabled'],
    thumb: ['thumb'],
    track: ['track'],
    input: ['input']
  };
  const composedClasses = (0,composeClasses/* default */.Z)(slots, getSwitchUtilityClass, classes);
  return (0,esm_extends/* default */.Z)({}, classes, composedClasses);
};
const SwitchRoot = (0,styled/* default */.ZP)('span', {
  name: 'MuiSwitch',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, ownerState.edge && styles["edge".concat((0,capitalize/* default */.Z)(ownerState.edge))], styles["size".concat((0,capitalize/* default */.Z)(ownerState.size))]];
  }
})({
  display: 'inline-flex',
  width: 34 + 12 * 2,
  height: 14 + 12 * 2,
  overflow: 'hidden',
  padding: 12,
  boxSizing: 'border-box',
  position: 'relative',
  flexShrink: 0,
  zIndex: 0,
  // Reset the stacking context.
  verticalAlign: 'middle',
  // For correct alignment with the text.
  '@media print': {
    colorAdjust: 'exact'
  },
  variants: [{
    props: {
      edge: 'start'
    },
    style: {
      marginLeft: -8
    }
  }, {
    props: {
      edge: 'end'
    },
    style: {
      marginRight: -8
    }
  }, {
    props: {
      size: 'small'
    },
    style: {
      width: 40,
      height: 24,
      padding: 7,
      ["& .".concat(Switch_switchClasses.thumb)]: {
        width: 16,
        height: 16
      },
      ["& .".concat(Switch_switchClasses.switchBase)]: {
        padding: 4,
        ["&.".concat(Switch_switchClasses.checked)]: {
          transform: 'translateX(16px)'
        }
      }
    }
  }]
});
const SwitchSwitchBase = (0,styled/* default */.ZP)(internal_SwitchBase, {
  name: 'MuiSwitch',
  slot: 'SwitchBase',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.switchBase, {
      ["& .".concat(Switch_switchClasses.input)]: styles.input
    }, ownerState.color !== 'default' && styles["color".concat((0,capitalize/* default */.Z)(ownerState.color))]];
  }
})(_ref => {
  let {
    theme
  } = _ref;
  return {
    position: 'absolute',
    top: 0,
    left: 0,
    zIndex: 1,
    // Render above the focus ripple.
    color: theme.vars ? theme.vars.palette.Switch.defaultColor : "".concat(theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.grey[300]),
    transition: theme.transitions.create(['left', 'transform'], {
      duration: theme.transitions.duration.shortest
    }),
    ["&.".concat(Switch_switchClasses.checked)]: {
      transform: 'translateX(20px)'
    },
    ["&.".concat(Switch_switchClasses.disabled)]: {
      color: theme.vars ? theme.vars.palette.Switch.defaultDisabledColor : "".concat(theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[600])
    },
    ["&.".concat(Switch_switchClasses.checked, " + .").concat(Switch_switchClasses.track)]: {
      opacity: 0.5
    },
    ["&.".concat(Switch_switchClasses.disabled, " + .").concat(Switch_switchClasses.track)]: {
      opacity: theme.vars ? theme.vars.opacity.switchTrackDisabled : "".concat(theme.palette.mode === 'light' ? 0.12 : 0.2)
    },
    ["& .".concat(Switch_switchClasses.input)]: {
      left: '-100%',
      width: '300%'
    }
  };
}, _ref2 => {
  let {
    theme
  } = _ref2;
  return {
    '&:hover': {
      backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.action.activeChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : (0,colorManipulator/* alpha */.Fq)(theme.palette.action.active, theme.palette.action.hoverOpacity),
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: 'transparent'
      }
    },
    variants: [...Object.entries(theme.palette).filter(_ref3 => {
      let [, value] = _ref3;
      return value.main && value.light;
    }) // check all the used fields in the style below
    .map(_ref4 => {
      let [color] = _ref4;
      return {
        props: {
          color
        },
        style: {
          ["&.".concat(Switch_switchClasses.checked)]: {
            color: (theme.vars || theme).palette[color].main,
            '&:hover': {
              backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette[color].mainChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : (0,colorManipulator/* alpha */.Fq)(theme.palette[color].main, theme.palette.action.hoverOpacity),
              '@media (hover: none)': {
                backgroundColor: 'transparent'
              }
            },
            ["&.".concat(Switch_switchClasses.disabled)]: {
              color: theme.vars ? theme.vars.palette.Switch["".concat(color, "DisabledColor")] : "".concat(theme.palette.mode === 'light' ? (0,colorManipulator/* lighten */.$n)(theme.palette[color].main, 0.62) : (0,colorManipulator/* darken */._j)(theme.palette[color].main, 0.55))
            }
          },
          ["&.".concat(Switch_switchClasses.checked, " + .").concat(Switch_switchClasses.track)]: {
            backgroundColor: (theme.vars || theme).palette[color].main
          }
        }
      };
    })]
  };
});
const SwitchTrack = (0,styled/* default */.ZP)('span', {
  name: 'MuiSwitch',
  slot: 'Track',
  overridesResolver: (props, styles) => styles.track
})(_ref5 => {
  let {
    theme
  } = _ref5;
  return {
    height: '100%',
    width: '100%',
    borderRadius: 14 / 2,
    zIndex: -1,
    transition: theme.transitions.create(['opacity', 'background-color'], {
      duration: theme.transitions.duration.shortest
    }),
    backgroundColor: theme.vars ? theme.vars.palette.common.onBackground : "".concat(theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white),
    opacity: theme.vars ? theme.vars.opacity.switchTrack : "".concat(theme.palette.mode === 'light' ? 0.38 : 0.3)
  };
});
const SwitchThumb = (0,styled/* default */.ZP)('span', {
  name: 'MuiSwitch',
  slot: 'Thumb',
  overridesResolver: (props, styles) => styles.thumb
})(_ref6 => {
  let {
    theme
  } = _ref6;
  return {
    boxShadow: (theme.vars || theme).shadows[1],
    backgroundColor: 'currentColor',
    width: 20,
    height: 20,
    borderRadius: '50%'
  };
});
const Switch = /*#__PURE__*/react.forwardRef(function Switch(inProps, ref) {
  const props = Switch_useThemeProps({
    props: inProps,
    name: 'MuiSwitch'
  });
  const {
      className,
      color = 'primary',
      edge = false,
      size = 'medium',
      sx
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Switch_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color,
    edge,
    size
  });
  const classes = Switch_useUtilityClasses(ownerState);
  const icon = /*#__PURE__*/(0,jsx_runtime.jsx)(SwitchThumb, {
    className: classes.thumb,
    ownerState: ownerState
  });
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(SwitchRoot, {
    className: (0,clsx/* default */.Z)(classes.root, className),
    sx: sx,
    ownerState: ownerState,
    children: [/*#__PURE__*/(0,jsx_runtime.jsx)(SwitchSwitchBase, (0,esm_extends/* default */.Z)({
      type: "checkbox",
      icon: icon,
      checkedIcon: icon,
      ref: ref,
      ownerState: ownerState
    }, other, {
      classes: (0,esm_extends/* default */.Z)({}, classes, {
        root: classes.switchBase
      })
    })), /*#__PURE__*/(0,jsx_runtime.jsx)(SwitchTrack, {
      className: classes.track,
      ownerState: ownerState
    })]
  });
});
 false ? 0 : void 0;
/* harmony default export */ const Switch_Switch = (Switch);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/resolveProps/resolveProps.js
var resolveProps = __webpack_require__(3928);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Button/buttonClasses.js


function getButtonUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiButton', slot);
}
const buttonClasses = (0,generateUtilityClasses/* default */.Z)('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorError', 'colorInfo', 'colorWarning', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'icon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
/* harmony default export */ const Button_buttonClasses = (buttonClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js

/**
 * @ignore - internal component.
 */
const ButtonGroupContext = /*#__PURE__*/react.createContext({});
if (false) {}
/* harmony default export */ const ButtonGroup_ButtonGroupContext = (ButtonGroupContext);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js

/**
 * @ignore - internal component.
 */
const ButtonGroupButtonContext = /*#__PURE__*/react.createContext(undefined);
if (false) {}
/* harmony default export */ const ButtonGroup_ButtonGroupButtonContext = (ButtonGroupButtonContext);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Button/Button.js
'use client';



const Button_excluded = ["children", "color", "component", "className", "disabled", "disableElevation", "disableFocusRipple", "endIcon", "focusVisibleClassName", "fullWidth", "size", "startIcon", "type", "variant"];















const Button_useUtilityClasses = ownerState => {
  const {
    color,
    disableElevation,
    fullWidth,
    size,
    variant,
    classes
  } = ownerState;
  const slots = {
    root: ['root', variant, "".concat(variant).concat((0,capitalize/* default */.Z)(color)), "size".concat((0,capitalize/* default */.Z)(size)), "".concat(variant, "Size").concat((0,capitalize/* default */.Z)(size)), "color".concat((0,capitalize/* default */.Z)(color)), disableElevation && 'disableElevation', fullWidth && 'fullWidth'],
    label: ['label'],
    startIcon: ['icon', 'startIcon', "iconSize".concat((0,capitalize/* default */.Z)(size))],
    endIcon: ['icon', 'endIcon', "iconSize".concat((0,capitalize/* default */.Z)(size))]
  };
  const composedClasses = (0,composeClasses/* default */.Z)(slots, getButtonUtilityClass, classes);
  return (0,esm_extends/* default */.Z)({}, classes, composedClasses);
};
const commonIconStyles = ownerState => (0,esm_extends/* default */.Z)({}, ownerState.size === 'small' && {
  '& > *:nth-of-type(1)': {
    fontSize: 18
  }
}, ownerState.size === 'medium' && {
  '& > *:nth-of-type(1)': {
    fontSize: 20
  }
}, ownerState.size === 'large' && {
  '& > *:nth-of-type(1)': {
    fontSize: 22
  }
});
const ButtonRoot = (0,styled/* default */.ZP)(ButtonBase_ButtonBase, {
  shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) || prop === 'classes',
  name: 'MuiButton',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, styles[ownerState.variant], styles["".concat(ownerState.variant).concat((0,capitalize/* default */.Z)(ownerState.color))], styles["size".concat((0,capitalize/* default */.Z)(ownerState.size))], styles["".concat(ownerState.variant, "Size").concat((0,capitalize/* default */.Z)(ownerState.size))], ownerState.color === 'inherit' && styles.colorInherit, ownerState.disableElevation && styles.disableElevation, ownerState.fullWidth && styles.fullWidth];
  }
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  var _theme$palette$getCon, _theme$palette;
  const inheritContainedBackgroundColor = theme.palette.mode === 'light' ? theme.palette.grey[300] : theme.palette.grey[800];
  const inheritContainedHoverBackgroundColor = theme.palette.mode === 'light' ? theme.palette.grey.A100 : theme.palette.grey[700];
  return (0,esm_extends/* default */.Z)({}, theme.typography.button, {
    minWidth: 64,
    padding: '6px 16px',
    borderRadius: (theme.vars || theme).shape.borderRadius,
    transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color', 'color'], {
      duration: theme.transitions.duration.short
    }),
    '&:hover': (0,esm_extends/* default */.Z)({
      textDecoration: 'none',
      backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.text.primaryChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : (0,colorManipulator/* alpha */.Fq)(theme.palette.text.primary, theme.palette.action.hoverOpacity),
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: 'transparent'
      }
    }, ownerState.variant === 'text' && ownerState.color !== 'inherit' && {
      backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette[ownerState.color].mainChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : (0,colorManipulator/* alpha */.Fq)(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: 'transparent'
      }
    }, ownerState.variant === 'outlined' && ownerState.color !== 'inherit' && {
      border: "1px solid ".concat((theme.vars || theme).palette[ownerState.color].main),
      backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette[ownerState.color].mainChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : (0,colorManipulator/* alpha */.Fq)(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: 'transparent'
      }
    }, ownerState.variant === 'contained' && {
      backgroundColor: theme.vars ? theme.vars.palette.Button.inheritContainedHoverBg : inheritContainedHoverBackgroundColor,
      boxShadow: (theme.vars || theme).shadows[4],
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        boxShadow: (theme.vars || theme).shadows[2],
        backgroundColor: (theme.vars || theme).palette.grey[300]
      }
    }, ownerState.variant === 'contained' && ownerState.color !== 'inherit' && {
      backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: (theme.vars || theme).palette[ownerState.color].main
      }
    }),
    '&:active': (0,esm_extends/* default */.Z)({}, ownerState.variant === 'contained' && {
      boxShadow: (theme.vars || theme).shadows[8]
    }),
    ["&.".concat(Button_buttonClasses.focusVisible)]: (0,esm_extends/* default */.Z)({}, ownerState.variant === 'contained' && {
      boxShadow: (theme.vars || theme).shadows[6]
    }),
    ["&.".concat(Button_buttonClasses.disabled)]: (0,esm_extends/* default */.Z)({
      color: (theme.vars || theme).palette.action.disabled
    }, ownerState.variant === 'outlined' && {
      border: "1px solid ".concat((theme.vars || theme).palette.action.disabledBackground)
    }, ownerState.variant === 'contained' && {
      color: (theme.vars || theme).palette.action.disabled,
      boxShadow: (theme.vars || theme).shadows[0],
      backgroundColor: (theme.vars || theme).palette.action.disabledBackground
    })
  }, ownerState.variant === 'text' && {
    padding: '6px 8px'
  }, ownerState.variant === 'text' && ownerState.color !== 'inherit' && {
    color: (theme.vars || theme).palette[ownerState.color].main
  }, ownerState.variant === 'outlined' && {
    padding: '5px 15px',
    border: '1px solid currentColor'
  }, ownerState.variant === 'outlined' && ownerState.color !== 'inherit' && {
    color: (theme.vars || theme).palette[ownerState.color].main,
    border: theme.vars ? "1px solid rgba(".concat(theme.vars.palette[ownerState.color].mainChannel, " / 0.5)") : "1px solid ".concat((0,colorManipulator/* alpha */.Fq)(theme.palette[ownerState.color].main, 0.5))
  }, ownerState.variant === 'contained' && {
    color: theme.vars ?
    // this is safe because grey does not change between default light/dark mode
    theme.vars.palette.text.primary : (_theme$palette$getCon = (_theme$palette = theme.palette).getContrastText) == null ? void 0 : _theme$palette$getCon.call(_theme$palette, theme.palette.grey[300]),
    backgroundColor: theme.vars ? theme.vars.palette.Button.inheritContainedBg : inheritContainedBackgroundColor,
    boxShadow: (theme.vars || theme).shadows[2]
  }, ownerState.variant === 'contained' && ownerState.color !== 'inherit' && {
    color: (theme.vars || theme).palette[ownerState.color].contrastText,
    backgroundColor: (theme.vars || theme).palette[ownerState.color].main
  }, ownerState.color === 'inherit' && {
    color: 'inherit',
    borderColor: 'currentColor'
  }, ownerState.size === 'small' && ownerState.variant === 'text' && {
    padding: '4px 5px',
    fontSize: theme.typography.pxToRem(13)
  }, ownerState.size === 'large' && ownerState.variant === 'text' && {
    padding: '8px 11px',
    fontSize: theme.typography.pxToRem(15)
  }, ownerState.size === 'small' && ownerState.variant === 'outlined' && {
    padding: '3px 9px',
    fontSize: theme.typography.pxToRem(13)
  }, ownerState.size === 'large' && ownerState.variant === 'outlined' && {
    padding: '7px 21px',
    fontSize: theme.typography.pxToRem(15)
  }, ownerState.size === 'small' && ownerState.variant === 'contained' && {
    padding: '4px 10px',
    fontSize: theme.typography.pxToRem(13)
  }, ownerState.size === 'large' && ownerState.variant === 'contained' && {
    padding: '8px 22px',
    fontSize: theme.typography.pxToRem(15)
  }, ownerState.fullWidth && {
    width: '100%'
  });
}, _ref2 => {
  let {
    ownerState
  } = _ref2;
  return ownerState.disableElevation && {
    boxShadow: 'none',
    '&:hover': {
      boxShadow: 'none'
    },
    ["&.".concat(Button_buttonClasses.focusVisible)]: {
      boxShadow: 'none'
    },
    '&:active': {
      boxShadow: 'none'
    },
    ["&.".concat(Button_buttonClasses.disabled)]: {
      boxShadow: 'none'
    }
  };
});
const ButtonStartIcon = (0,styled/* default */.ZP)('span', {
  name: 'MuiButton',
  slot: 'StartIcon',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.startIcon, styles["iconSize".concat((0,capitalize/* default */.Z)(ownerState.size))]];
  }
})(_ref3 => {
  let {
    ownerState
  } = _ref3;
  return (0,esm_extends/* default */.Z)({
    display: 'inherit',
    marginRight: 8,
    marginLeft: -4
  }, ownerState.size === 'small' && {
    marginLeft: -2
  }, commonIconStyles(ownerState));
});
const ButtonEndIcon = (0,styled/* default */.ZP)('span', {
  name: 'MuiButton',
  slot: 'EndIcon',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.endIcon, styles["iconSize".concat((0,capitalize/* default */.Z)(ownerState.size))]];
  }
})(_ref4 => {
  let {
    ownerState
  } = _ref4;
  return (0,esm_extends/* default */.Z)({
    display: 'inherit',
    marginRight: -4,
    marginLeft: 8
  }, ownerState.size === 'small' && {
    marginRight: -2
  }, commonIconStyles(ownerState));
});
const Button = /*#__PURE__*/react.forwardRef(function Button(inProps, ref) {
  // props priority: `inProps` > `contextProps` > `themeDefaultProps`
  const contextProps = react.useContext(ButtonGroup_ButtonGroupContext);
  const buttonGroupButtonContextPositionClassName = react.useContext(ButtonGroup_ButtonGroupButtonContext);
  const resolvedProps = (0,resolveProps/* default */.Z)(contextProps, inProps);
  const props = (0,useThemeProps/* default */.Z)({
    props: resolvedProps,
    name: 'MuiButton'
  });
  const {
      children,
      color = 'primary',
      component = 'button',
      className,
      disabled = false,
      disableElevation = false,
      disableFocusRipple = false,
      endIcon: endIconProp,
      focusVisibleClassName,
      fullWidth = false,
      size = 'medium',
      startIcon: startIconProp,
      type,
      variant = 'text'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Button_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color,
    component,
    disabled,
    disableElevation,
    disableFocusRipple,
    fullWidth,
    size,
    type,
    variant
  });
  const classes = Button_useUtilityClasses(ownerState);
  const startIcon = startIconProp && /*#__PURE__*/(0,jsx_runtime.jsx)(ButtonStartIcon, {
    className: classes.startIcon,
    ownerState: ownerState,
    children: startIconProp
  });
  const endIcon = endIconProp && /*#__PURE__*/(0,jsx_runtime.jsx)(ButtonEndIcon, {
    className: classes.endIcon,
    ownerState: ownerState,
    children: endIconProp
  });
  const positionClassName = buttonGroupButtonContextPositionClassName || '';
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(ButtonRoot, (0,esm_extends/* default */.Z)({
    ownerState: ownerState,
    className: (0,clsx/* default */.Z)(contextProps.className, classes.root, className, positionClassName),
    component: component,
    disabled: disabled,
    focusRipple: !disableFocusRipple,
    focusVisibleClassName: (0,clsx/* default */.Z)(classes.focusVisible, focusVisibleClassName),
    ref: ref,
    type: type
  }, other, {
    classes: classes,
    children: [startIcon, children, endIcon]
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const Button_Button = (Button);
;// CONCATENATED MODULE: ./src/hooks/Fetch.js
/**
 * fetch data hook
 * @returns
 */const Fetch_useFetch=url=>{const[data,setData]=useState(null);const[loading,setLoading]=useState(false);const[error,setError]=useState(null);useEffect(()=>{if(!url){return;}(async()=>{setLoading(true);try{var _res$headers$get;const res=await fetch(url);if(!res.ok){throw new Error("[".concat(res.status,"] ").concat(res.statusText));}let data;if((_res$headers$get=res.headers.get("Content-Type"))!==null&&_res$headers$get!==void 0&&_res$headers$get.includes("json")){data=await res.json();}else{data=await res.text();}setData(data);}catch(err){setError(err);}finally{setLoading(false);}})();},[url]);return[data,loading,error];};
;// CONCATENATED MODULE: ./src/hooks/I18n.js
const getI18n=function(uiLang,key){var _I18N$key$uiLang,_I18N$key;let defaultText=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"";return(_I18N$key$uiLang=I18N===null||I18N===void 0?void 0:(_I18N$key=I18N[key])===null||_I18N$key===void 0?void 0:_I18N$key[uiLang])!==null&&_I18N$key$uiLang!==void 0?_I18N$key$uiLang:defaultText;};const useLangMap=uiLang=>{return function(key){let defaultText=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";return getI18n(uiLang,key,defaultText);};};/**
 * 多语言 hook
 * @returns
 */const useI18n=()=>{const{setting:{uiLang}}=useSetting();return useLangMap(uiLang);};const useI18nMd=key=>{const i18n=useI18n();const fileName=i18n(key);const url=fileName?"".concat(URL_RAW_PREFIX,"/").concat(fileName):"";return useFetch(url);};
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/useId/useId.js
var useId = __webpack_require__(2179);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/formatMuiErrorMessage/formatMuiErrorMessage.js
var formatMuiErrorMessage = __webpack_require__(4451);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/useForkRef/useForkRef.js
var useForkRef_useForkRef = __webpack_require__(4114);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/ownerWindow/ownerWindow.js
var ownerWindow = __webpack_require__(6029);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/useEnhancedEffect/useEnhancedEffect.js
var useEnhancedEffect_useEnhancedEffect = __webpack_require__(4536);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/debounce/debounce.js
var debounce_debounce = __webpack_require__(9082);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js
'use client';



const TextareaAutosize_excluded = ["onChange", "maxRows", "minRows", "style", "value"];





function getStyleValue(value) {
  return parseInt(value, 10) || 0;
}
const TextareaAutosize_styles = {
  shadow: {
    // Visibility needed to hide the extra text area on iPads
    visibility: 'hidden',
    // Remove from the content flow
    position: 'absolute',
    // Ignore the scrollbar width
    overflow: 'hidden',
    height: 0,
    top: 0,
    left: 0,
    // Create a new layer, increase the isolation of the computed values
    transform: 'translateZ(0)'
  }
};
function TextareaAutosize_isEmpty(obj) {
  return obj === undefined || obj === null || Object.keys(obj).length === 0 || obj.outerHeightStyle === 0 && !obj.overflowing;
}

/**
 *
 * Demos:
 *
 * - [Textarea Autosize](https://mui.com/base-ui/react-textarea-autosize/)
 * - [Textarea Autosize](https://mui.com/material-ui/react-textarea-autosize/)
 *
 * API:
 *
 * - [TextareaAutosize API](https://mui.com/base-ui/react-textarea-autosize/components-api/#textarea-autosize)
 */
const TextareaAutosize = /*#__PURE__*/react.forwardRef(function TextareaAutosize(props, forwardedRef) {
  const {
      onChange,
      maxRows,
      minRows = 1,
      style,
      value
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, TextareaAutosize_excluded);
  const {
    current: isControlled
  } = react.useRef(value != null);
  const inputRef = react.useRef(null);
  const handleRef = (0,useForkRef_useForkRef/* default */.Z)(forwardedRef, inputRef);
  const shadowRef = react.useRef(null);
  const calculateTextareaStyles = react.useCallback(() => {
    const input = inputRef.current;
    const containerWindow = (0,ownerWindow/* default */.Z)(input);
    const computedStyle = containerWindow.getComputedStyle(input);

    // If input's width is shrunk and it's not visible, don't sync height.
    if (computedStyle.width === '0px') {
      return {
        outerHeightStyle: 0,
        overflowing: false
      };
    }
    const inputShallow = shadowRef.current;
    inputShallow.style.width = computedStyle.width;
    inputShallow.value = input.value || props.placeholder || 'x';
    if (inputShallow.value.slice(-1) === '\n') {
      // Certain fonts which overflow the line height will cause the textarea
      // to report a different scrollHeight depending on whether the last line
      // is empty. Make it non-empty to avoid this issue.
      inputShallow.value += ' ';
    }
    const boxSizing = computedStyle.boxSizing;
    const padding = getStyleValue(computedStyle.paddingBottom) + getStyleValue(computedStyle.paddingTop);
    const border = getStyleValue(computedStyle.borderBottomWidth) + getStyleValue(computedStyle.borderTopWidth);

    // The height of the inner content
    const innerHeight = inputShallow.scrollHeight;

    // Measure height of a textarea with a single row
    inputShallow.value = 'x';
    const singleRowHeight = inputShallow.scrollHeight;

    // The height of the outer content
    let outerHeight = innerHeight;
    if (minRows) {
      outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);
    }
    if (maxRows) {
      outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);
    }
    outerHeight = Math.max(outerHeight, singleRowHeight);

    // Take the box sizing into account for applying this value as a style.
    const outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);
    const overflowing = Math.abs(outerHeight - innerHeight) <= 1;
    return {
      outerHeightStyle,
      overflowing
    };
  }, [maxRows, minRows, props.placeholder]);
  const syncHeight = react.useCallback(() => {
    const textareaStyles = calculateTextareaStyles();
    if (TextareaAutosize_isEmpty(textareaStyles)) {
      return;
    }
    const input = inputRef.current;
    input.style.height = "".concat(textareaStyles.outerHeightStyle, "px");
    input.style.overflow = textareaStyles.overflowing ? 'hidden' : '';
  }, [calculateTextareaStyles]);
  (0,useEnhancedEffect_useEnhancedEffect/* default */.Z)(() => {
    const handleResize = () => {
      syncHeight();
    };
    // Workaround a "ResizeObserver loop completed with undelivered notifications" error
    // in test.
    // Note that we might need to use this logic in production per https://github.com/WICG/resize-observer/issues/38
    // Also see https://github.com/mui/mui-x/issues/8733
    let rAF;
    const rAFHandleResize = () => {
      cancelAnimationFrame(rAF);
      rAF = requestAnimationFrame(() => {
        handleResize();
      });
    };
    const debounceHandleResize = (0,debounce_debounce/* default */.Z)(handleResize);
    const input = inputRef.current;
    const containerWindow = (0,ownerWindow/* default */.Z)(input);
    containerWindow.addEventListener('resize', debounceHandleResize);
    let resizeObserver;
    if (typeof ResizeObserver !== 'undefined') {
      resizeObserver = new ResizeObserver( false ? 0 : handleResize);
      resizeObserver.observe(input);
    }
    return () => {
      debounceHandleResize.clear();
      cancelAnimationFrame(rAF);
      containerWindow.removeEventListener('resize', debounceHandleResize);
      if (resizeObserver) {
        resizeObserver.disconnect();
      }
    };
  }, [calculateTextareaStyles, syncHeight]);
  (0,useEnhancedEffect_useEnhancedEffect/* default */.Z)(() => {
    syncHeight();
  });
  const handleChange = event => {
    if (!isControlled) {
      syncHeight();
    }
    if (onChange) {
      onChange(event);
    }
  };
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
    children: [/*#__PURE__*/(0,jsx_runtime.jsx)("textarea", (0,esm_extends/* default */.Z)({
      value: value,
      onChange: handleChange,
      ref: handleRef
      // Apply the rows prop to get a "correct" first SSR paint
      ,

      rows: minRows,
      style: style
    }, other)), /*#__PURE__*/(0,jsx_runtime.jsx)("textarea", {
      "aria-hidden": true,
      className: props.className,
      readOnly: true,
      ref: shadowRef,
      tabIndex: -1,
      style: (0,esm_extends/* default */.Z)({}, TextareaAutosize_styles.shadow, style, {
        paddingTop: 0,
        paddingBottom: 0
      })
    })]
  });
});
 false ? 0 : void 0;

;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/utils/isHostComponent.js
/**
 * Determines if a given element is a DOM element name (i.e. not a React component).
 */
function isHostComponent(element) {
  return typeof element === 'string';
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/InputBase/utils.js
// Supports determination of isControlled().
// Controlled input accepts its current value as a prop.
//
// @see https://facebook.github.io/react/docs/forms.html#controlled-components
// @param value
// @returns {boolean} true if string (including '') or number (including zero)
function hasValue(value) {
  return value != null && !(Array.isArray(value) && value.length === 0);
}

// Determine if field is empty or filled.
// Response determines if label is presented above field or as placeholder.
//
// @param obj
// @param SSR
// @returns {boolean} False when not present or empty string.
//                    True when any number or string with length.
function isFilled(obj) {
  let SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');
}

// Determine if an Input is adorned on start.
// It's corresponding to the left with LTR.
//
// @param obj
// @returns {boolean} False when no adornments.
//                    True when adorned at the start.
function isAdornedStart(obj) {
  return obj.startAdornment;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/InputBase/inputBaseClasses.js


function getInputBaseUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiInputBase', slot);
}
const inputBaseClasses = (0,generateUtilityClasses/* default */.Z)('MuiInputBase', ['root', 'formControl', 'focused', 'disabled', 'adornedStart', 'adornedEnd', 'error', 'sizeSmall', 'multiline', 'colorSecondary', 'fullWidth', 'hiddenLabel', 'readOnly', 'input', 'inputSizeSmall', 'inputMultiline', 'inputTypeSearch', 'inputAdornedStart', 'inputAdornedEnd', 'inputHiddenLabel']);
/* harmony default export */ const InputBase_inputBaseClasses = (inputBaseClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/InputBase/InputBase.js
'use client';




const InputBase_excluded = ["aria-describedby", "autoComplete", "autoFocus", "className", "color", "components", "componentsProps", "defaultValue", "disabled", "disableInjectingGlobalStyles", "endAdornment", "error", "fullWidth", "id", "inputComponent", "inputProps", "inputRef", "margin", "maxRows", "minRows", "multiline", "name", "onBlur", "onChange", "onClick", "onFocus", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "renderSuffix", "rows", "size", "slotProps", "slots", "startAdornment", "type", "value"];





















const rootOverridesResolver = (props, styles) => {
  const {
    ownerState
  } = props;
  return [styles.root, ownerState.formControl && styles.formControl, ownerState.startAdornment && styles.adornedStart, ownerState.endAdornment && styles.adornedEnd, ownerState.error && styles.error, ownerState.size === 'small' && styles.sizeSmall, ownerState.multiline && styles.multiline, ownerState.color && styles["color".concat((0,capitalize/* default */.Z)(ownerState.color))], ownerState.fullWidth && styles.fullWidth, ownerState.hiddenLabel && styles.hiddenLabel];
};
const inputOverridesResolver = (props, styles) => {
  const {
    ownerState
  } = props;
  return [styles.input, ownerState.size === 'small' && styles.inputSizeSmall, ownerState.multiline && styles.inputMultiline, ownerState.type === 'search' && styles.inputTypeSearch, ownerState.startAdornment && styles.inputAdornedStart, ownerState.endAdornment && styles.inputAdornedEnd, ownerState.hiddenLabel && styles.inputHiddenLabel];
};
const InputBase_useUtilityClasses = ownerState => {
  const {
    classes,
    color,
    disabled,
    error,
    endAdornment,
    focused,
    formControl,
    fullWidth,
    hiddenLabel,
    multiline,
    readOnly,
    size,
    startAdornment,
    type
  } = ownerState;
  const slots = {
    root: ['root', "color".concat((0,capitalize/* default */.Z)(color)), disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', focused && 'focused', formControl && 'formControl', size && size !== 'medium' && "size".concat((0,capitalize/* default */.Z)(size)), multiline && 'multiline', startAdornment && 'adornedStart', endAdornment && 'adornedEnd', hiddenLabel && 'hiddenLabel', readOnly && 'readOnly'],
    input: ['input', disabled && 'disabled', type === 'search' && 'inputTypeSearch', multiline && 'inputMultiline', size === 'small' && 'inputSizeSmall', hiddenLabel && 'inputHiddenLabel', startAdornment && 'inputAdornedStart', endAdornment && 'inputAdornedEnd', readOnly && 'readOnly']
  };
  return (0,composeClasses/* default */.Z)(slots, getInputBaseUtilityClass, classes);
};
const InputBaseRoot = (0,styled/* default */.ZP)('div', {
  name: 'MuiInputBase',
  slot: 'Root',
  overridesResolver: rootOverridesResolver
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  return (0,esm_extends/* default */.Z)({}, theme.typography.body1, {
    color: (theme.vars || theme).palette.text.primary,
    lineHeight: '1.4375em',
    // 23px
    boxSizing: 'border-box',
    // Prevent padding issue with fullWidth.
    position: 'relative',
    cursor: 'text',
    display: 'inline-flex',
    alignItems: 'center',
    ["&.".concat(InputBase_inputBaseClasses.disabled)]: {
      color: (theme.vars || theme).palette.text.disabled,
      cursor: 'default'
    }
  }, ownerState.multiline && (0,esm_extends/* default */.Z)({
    padding: '4px 0 5px'
  }, ownerState.size === 'small' && {
    paddingTop: 1
  }), ownerState.fullWidth && {
    width: '100%'
  });
});
const InputBaseComponent = (0,styled/* default */.ZP)('input', {
  name: 'MuiInputBase',
  slot: 'Input',
  overridesResolver: inputOverridesResolver
})(_ref2 => {
  let {
    theme,
    ownerState
  } = _ref2;
  const light = theme.palette.mode === 'light';
  const placeholder = (0,esm_extends/* default */.Z)({
    color: 'currentColor'
  }, theme.vars ? {
    opacity: theme.vars.opacity.inputPlaceholder
  } : {
    opacity: light ? 0.42 : 0.5
  }, {
    transition: theme.transitions.create('opacity', {
      duration: theme.transitions.duration.shorter
    })
  });
  const placeholderHidden = {
    opacity: '0 !important'
  };
  const placeholderVisible = theme.vars ? {
    opacity: theme.vars.opacity.inputPlaceholder
  } : {
    opacity: light ? 0.42 : 0.5
  };
  return (0,esm_extends/* default */.Z)({
    font: 'inherit',
    letterSpacing: 'inherit',
    color: 'currentColor',
    padding: '4px 0 5px',
    border: 0,
    boxSizing: 'content-box',
    background: 'none',
    height: '1.4375em',
    // Reset 23pxthe native input line-height
    margin: 0,
    // Reset for Safari
    WebkitTapHighlightColor: 'transparent',
    display: 'block',
    // Make the flex item shrink with Firefox
    minWidth: 0,
    width: '100%',
    // Fix IE11 width issue
    animationName: 'mui-auto-fill-cancel',
    animationDuration: '10ms',
    '&::-webkit-input-placeholder': placeholder,
    '&::-moz-placeholder': placeholder,
    // Firefox 19+
    '&:-ms-input-placeholder': placeholder,
    // IE11
    '&::-ms-input-placeholder': placeholder,
    // Edge
    '&:focus': {
      outline: 0
    },
    // Reset Firefox invalid required input style
    '&:invalid': {
      boxShadow: 'none'
    },
    '&::-webkit-search-decoration': {
      // Remove the padding when type=search.
      WebkitAppearance: 'none'
    },
    // Show and hide the placeholder logic
    ["label[data-shrink=false] + .".concat(InputBase_inputBaseClasses.formControl, " &")]: {
      '&::-webkit-input-placeholder': placeholderHidden,
      '&::-moz-placeholder': placeholderHidden,
      // Firefox 19+
      '&:-ms-input-placeholder': placeholderHidden,
      // IE11
      '&::-ms-input-placeholder': placeholderHidden,
      // Edge
      '&:focus::-webkit-input-placeholder': placeholderVisible,
      '&:focus::-moz-placeholder': placeholderVisible,
      // Firefox 19+
      '&:focus:-ms-input-placeholder': placeholderVisible,
      // IE11
      '&:focus::-ms-input-placeholder': placeholderVisible // Edge
    },

    ["&.".concat(InputBase_inputBaseClasses.disabled)]: {
      opacity: 1,
      // Reset iOS opacity
      WebkitTextFillColor: (theme.vars || theme).palette.text.disabled // Fix opacity Safari bug
    },

    '&:-webkit-autofill': {
      animationDuration: '5000s',
      animationName: 'mui-auto-fill'
    }
  }, ownerState.size === 'small' && {
    paddingTop: 1
  }, ownerState.multiline && {
    height: 'auto',
    resize: 'none',
    padding: 0,
    paddingTop: 0
  }, ownerState.type === 'search' && {
    // Improve type search style.
    MozAppearance: 'textfield'
  });
});
const inputGlobalStyles = /*#__PURE__*/(0,jsx_runtime.jsx)(material_GlobalStyles_GlobalStyles, {
  styles: {
    '@keyframes mui-auto-fill': {
      from: {
        display: 'block'
      }
    },
    '@keyframes mui-auto-fill-cancel': {
      from: {
        display: 'block'
      }
    }
  }
});

/**
 * `InputBase` contains as few styles as possible.
 * It aims to be a simple building block for creating an input.
 * It contains a load of style reset and some state logic.
 */
const InputBase = /*#__PURE__*/react.forwardRef(function InputBase(inProps, ref) {
  var _slotProps$input;
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiInputBase'
  });
  const {
      'aria-describedby': ariaDescribedby,
      autoComplete,
      autoFocus,
      className,
      components = {},
      componentsProps = {},
      defaultValue,
      disabled,
      disableInjectingGlobalStyles,
      endAdornment,
      fullWidth = false,
      id,
      inputComponent = 'input',
      inputProps: inputPropsProp = {},
      inputRef: inputRefProp,
      maxRows,
      minRows,
      multiline = false,
      name,
      onBlur,
      onChange,
      onClick,
      onFocus,
      onKeyDown,
      onKeyUp,
      placeholder,
      readOnly,
      renderSuffix,
      rows,
      slotProps = {},
      slots = {},
      startAdornment,
      type = 'text',
      value: valueProp
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, InputBase_excluded);
  const value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;
  const {
    current: isControlled
  } = react.useRef(value != null);
  const inputRef = react.useRef();
  const handleInputRefWarning = react.useCallback(instance => {
    if (false) {}
  }, []);
  const handleInputRef = (0,useForkRef/* default */.Z)(inputRef, inputRefProp, inputPropsProp.ref, handleInputRefWarning);
  const [focused, setFocused] = react.useState(false);
  const muiFormControl = useFormControl();
  if (false) {}
  const fcs = formControlState({
    props,
    muiFormControl,
    states: ['color', 'disabled', 'error', 'hiddenLabel', 'size', 'required', 'filled']
  });
  fcs.focused = muiFormControl ? muiFormControl.focused : focused;

  // The blur won't fire when the disabled state is set on a focused input.
  // We need to book keep the focused state manually.
  react.useEffect(() => {
    if (!muiFormControl && disabled && focused) {
      setFocused(false);
      if (onBlur) {
        onBlur();
      }
    }
  }, [muiFormControl, disabled, focused, onBlur]);
  const onFilled = muiFormControl && muiFormControl.onFilled;
  const onEmpty = muiFormControl && muiFormControl.onEmpty;
  const checkDirty = react.useCallback(obj => {
    if (isFilled(obj)) {
      if (onFilled) {
        onFilled();
      }
    } else if (onEmpty) {
      onEmpty();
    }
  }, [onFilled, onEmpty]);
  (0,useEnhancedEffect/* default */.Z)(() => {
    if (isControlled) {
      checkDirty({
        value
      });
    }
  }, [value, checkDirty, isControlled]);
  const handleFocus = event => {
    // Fix a bug with IE11 where the focus/blur events are triggered
    // while the component is disabled.
    if (fcs.disabled) {
      event.stopPropagation();
      return;
    }
    if (onFocus) {
      onFocus(event);
    }
    if (inputPropsProp.onFocus) {
      inputPropsProp.onFocus(event);
    }
    if (muiFormControl && muiFormControl.onFocus) {
      muiFormControl.onFocus(event);
    } else {
      setFocused(true);
    }
  };
  const handleBlur = event => {
    if (onBlur) {
      onBlur(event);
    }
    if (inputPropsProp.onBlur) {
      inputPropsProp.onBlur(event);
    }
    if (muiFormControl && muiFormControl.onBlur) {
      muiFormControl.onBlur(event);
    } else {
      setFocused(false);
    }
  };
  const handleChange = function (event) {
    if (!isControlled) {
      const element = event.target || inputRef.current;
      if (element == null) {
        throw new Error( false ? 0 : (0,formatMuiErrorMessage/* default */.Z)(1));
      }
      checkDirty({
        value: element.value
      });
    }
    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      args[_key - 1] = arguments[_key];
    }
    if (inputPropsProp.onChange) {
      inputPropsProp.onChange(event, ...args);
    }

    // Perform in the willUpdate
    if (onChange) {
      onChange(event, ...args);
    }
  };

  // Check the input state on mount, in case it was filled by the user
  // or auto filled by the browser before the hydration (for SSR).
  react.useEffect(() => {
    checkDirty(inputRef.current);
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, []);
  const handleClick = event => {
    if (inputRef.current && event.currentTarget === event.target) {
      inputRef.current.focus();
    }
    if (onClick) {
      onClick(event);
    }
  };
  let InputComponent = inputComponent;
  let inputProps = inputPropsProp;
  if (multiline && InputComponent === 'input') {
    if (rows) {
      if (false) {}
      inputProps = (0,esm_extends/* default */.Z)({
        type: undefined,
        minRows: rows,
        maxRows: rows
      }, inputProps);
    } else {
      inputProps = (0,esm_extends/* default */.Z)({
        type: undefined,
        maxRows,
        minRows
      }, inputProps);
    }
    InputComponent = TextareaAutosize;
  }
  const handleAutoFill = event => {
    // Provide a fake value as Chrome might not let you access it for security reasons.
    checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {
      value: 'x'
    });
  };
  react.useEffect(() => {
    if (muiFormControl) {
      muiFormControl.setAdornedStart(Boolean(startAdornment));
    }
  }, [muiFormControl, startAdornment]);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color: fcs.color || 'primary',
    disabled: fcs.disabled,
    endAdornment,
    error: fcs.error,
    focused: fcs.focused,
    formControl: muiFormControl,
    fullWidth,
    hiddenLabel: fcs.hiddenLabel,
    multiline,
    size: fcs.size,
    startAdornment,
    type
  });
  const classes = InputBase_useUtilityClasses(ownerState);
  const Root = slots.root || components.Root || InputBaseRoot;
  const rootProps = slotProps.root || componentsProps.root || {};
  const Input = slots.input || components.Input || InputBaseComponent;
  inputProps = (0,esm_extends/* default */.Z)({}, inputProps, (_slotProps$input = slotProps.input) != null ? _slotProps$input : componentsProps.input);
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
    children: [!disableInjectingGlobalStyles && inputGlobalStyles, /*#__PURE__*/(0,jsx_runtime.jsxs)(Root, (0,esm_extends/* default */.Z)({}, rootProps, !isHostComponent(Root) && {
      ownerState: (0,esm_extends/* default */.Z)({}, ownerState, rootProps.ownerState)
    }, {
      ref: ref,
      onClick: handleClick
    }, other, {
      className: (0,clsx/* default */.Z)(classes.root, rootProps.className, className, readOnly && 'MuiInputBase-readOnly'),
      children: [startAdornment, /*#__PURE__*/(0,jsx_runtime.jsx)(FormControl_FormControlContext.Provider, {
        value: null,
        children: /*#__PURE__*/(0,jsx_runtime.jsx)(Input, (0,esm_extends/* default */.Z)({
          ownerState: ownerState,
          "aria-invalid": fcs.error,
          "aria-describedby": ariaDescribedby,
          autoComplete: autoComplete,
          autoFocus: autoFocus,
          defaultValue: defaultValue,
          disabled: fcs.disabled,
          id: id,
          onAnimationStart: handleAutoFill,
          name: name,
          placeholder: placeholder,
          readOnly: readOnly,
          required: fcs.required,
          rows: rows,
          value: value,
          onKeyDown: onKeyDown,
          onKeyUp: onKeyUp,
          type: type
        }, inputProps, !isHostComponent(Input) && {
          as: InputComponent,
          ownerState: (0,esm_extends/* default */.Z)({}, ownerState, inputProps.ownerState)
        }, {
          ref: handleInputRef,
          className: (0,clsx/* default */.Z)(classes.input, inputProps.className, readOnly && 'MuiInputBase-readOnly'),
          onBlur: handleBlur,
          onChange: handleChange,
          onFocus: handleFocus
        }))
      }), endAdornment, renderSuffix ? renderSuffix((0,esm_extends/* default */.Z)({}, fcs, {
        startAdornment
      })) : null]
    }))]
  });
});
 false ? 0 : void 0;
/* harmony default export */ const InputBase_InputBase = (InputBase);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Input/inputClasses.js




function getInputUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiInput', slot);
}
const inputClasses = (0,esm_extends/* default */.Z)({}, InputBase_inputBaseClasses, (0,generateUtilityClasses/* default */.Z)('MuiInput', ['root', 'underline', 'input']));
/* harmony default export */ const Input_inputClasses = (inputClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Input/Input.js
'use client';



const Input_excluded = ["disableUnderline", "components", "componentsProps", "fullWidth", "inputComponent", "multiline", "slotProps", "slots", "type"];











const Input_useUtilityClasses = ownerState => {
  const {
    classes,
    disableUnderline
  } = ownerState;
  const slots = {
    root: ['root', !disableUnderline && 'underline'],
    input: ['input']
  };
  const composedClasses = (0,composeClasses/* default */.Z)(slots, getInputUtilityClass, classes);
  return (0,esm_extends/* default */.Z)({}, classes, composedClasses);
};
const InputRoot = (0,styled/* default */.ZP)(InputBaseRoot, {
  shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) || prop === 'classes',
  name: 'MuiInput',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [...rootOverridesResolver(props, styles), !ownerState.disableUnderline && styles.underline];
  }
})(_ref3 => {
  let {
    theme,
    ownerState
  } = _ref3;
  const light = theme.palette.mode === 'light';
  let bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
  if (theme.vars) {
    bottomLineColor = "rgba(".concat(theme.vars.palette.common.onBackgroundChannel, " / ").concat(theme.vars.opacity.inputUnderline, ")");
  }
  return (0,esm_extends/* default */.Z)({
    position: 'relative'
  }, ownerState.formControl && {
    'label + &': {
      marginTop: 16
    }
  }, !ownerState.disableUnderline && {
    '&::after': {
      borderBottom: "2px solid ".concat((theme.vars || theme).palette[ownerState.color].main),
      left: 0,
      bottom: 0,
      // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
      content: '""',
      position: 'absolute',
      right: 0,
      transform: 'scaleX(0)',
      transition: theme.transitions.create('transform', {
        duration: theme.transitions.duration.shorter,
        easing: theme.transitions.easing.easeOut
      }),
      pointerEvents: 'none' // Transparent to the hover style.
    },

    ["&.".concat(Input_inputClasses.focused, ":after")]: {
      // translateX(0) is a workaround for Safari transform scale bug
      // See https://github.com/mui/material-ui/issues/31766
      transform: 'scaleX(1) translateX(0)'
    },
    ["&.".concat(Input_inputClasses.error)]: {
      '&::before, &::after': {
        borderBottomColor: (theme.vars || theme).palette.error.main
      }
    },
    '&::before': {
      borderBottom: "1px solid ".concat(bottomLineColor),
      left: 0,
      bottom: 0,
      // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
      content: '"\\00a0"',
      position: 'absolute',
      right: 0,
      transition: theme.transitions.create('border-bottom-color', {
        duration: theme.transitions.duration.shorter
      }),
      pointerEvents: 'none' // Transparent to the hover style.
    },

    ["&:hover:not(.".concat(Input_inputClasses.disabled, ", .").concat(Input_inputClasses.error, "):before")]: {
      borderBottom: "2px solid ".concat((theme.vars || theme).palette.text.primary),
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        borderBottom: "1px solid ".concat(bottomLineColor)
      }
    },
    ["&.".concat(Input_inputClasses.disabled, ":before")]: {
      borderBottomStyle: 'dotted'
    }
  });
});
const InputInput = (0,styled/* default */.ZP)(InputBaseComponent, {
  name: 'MuiInput',
  slot: 'Input',
  overridesResolver: inputOverridesResolver
})({});
const Input = /*#__PURE__*/react.forwardRef(function Input(inProps, ref) {
  var _ref, _slots$root, _ref2, _slots$input;
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiInput'
  });
  const {
      disableUnderline,
      components = {},
      componentsProps: componentsPropsProp,
      fullWidth = false,
      inputComponent = 'input',
      multiline = false,
      slotProps,
      slots = {},
      type = 'text'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Input_excluded);
  const classes = Input_useUtilityClasses(props);
  const ownerState = {
    disableUnderline
  };
  const inputComponentsProps = {
    root: {
      ownerState
    }
  };
  const componentsProps = (slotProps != null ? slotProps : componentsPropsProp) ? (0,deepmerge/* default */.Z)(slotProps != null ? slotProps : componentsPropsProp, inputComponentsProps) : inputComponentsProps;
  const RootSlot = (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : InputRoot;
  const InputSlot = (_ref2 = (_slots$input = slots.input) != null ? _slots$input : components.Input) != null ? _ref2 : InputInput;
  return /*#__PURE__*/(0,jsx_runtime.jsx)(InputBase_InputBase, (0,esm_extends/* default */.Z)({
    slots: {
      root: RootSlot,
      input: InputSlot
    },
    slotProps: componentsProps,
    fullWidth: fullWidth,
    inputComponent: inputComponent,
    multiline: multiline,
    ref: ref,
    type: type
  }, other, {
    classes: classes
  }));
});
 false ? 0 : void 0;
Input.muiName = 'Input';
/* harmony default export */ const Input_Input = (Input);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FilledInput/filledInputClasses.js




function getFilledInputUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiFilledInput', slot);
}
const filledInputClasses = (0,esm_extends/* default */.Z)({}, InputBase_inputBaseClasses, (0,generateUtilityClasses/* default */.Z)('MuiFilledInput', ['root', 'underline', 'input']));
/* harmony default export */ const FilledInput_filledInputClasses = (filledInputClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FilledInput/FilledInput.js
'use client';



const FilledInput_excluded = ["disableUnderline", "components", "componentsProps", "fullWidth", "hiddenLabel", "inputComponent", "multiline", "slotProps", "slots", "type"];











const FilledInput_useUtilityClasses = ownerState => {
  const {
    classes,
    disableUnderline
  } = ownerState;
  const slots = {
    root: ['root', !disableUnderline && 'underline'],
    input: ['input']
  };
  const composedClasses = (0,composeClasses/* default */.Z)(slots, getFilledInputUtilityClass, classes);
  return (0,esm_extends/* default */.Z)({}, classes, composedClasses);
};
const FilledInputRoot = (0,styled/* default */.ZP)(InputBaseRoot, {
  shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) || prop === 'classes',
  name: 'MuiFilledInput',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [...rootOverridesResolver(props, styles), !ownerState.disableUnderline && styles.underline];
  }
})(_ref3 => {
  let {
    theme,
    ownerState
  } = _ref3;
  var _palette;
  const light = theme.palette.mode === 'light';
  const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
  const backgroundColor = light ? 'rgba(0, 0, 0, 0.06)' : 'rgba(255, 255, 255, 0.09)';
  const hoverBackground = light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.13)';
  const disabledBackground = light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)';
  return (0,esm_extends/* default */.Z)({
    position: 'relative',
    backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor,
    borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,
    borderTopRightRadius: (theme.vars || theme).shape.borderRadius,
    transition: theme.transitions.create('background-color', {
      duration: theme.transitions.duration.shorter,
      easing: theme.transitions.easing.easeOut
    }),
    '&:hover': {
      backgroundColor: theme.vars ? theme.vars.palette.FilledInput.hoverBg : hoverBackground,
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor
      }
    },
    ["&.".concat(FilledInput_filledInputClasses.focused)]: {
      backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor
    },
    ["&.".concat(FilledInput_filledInputClasses.disabled)]: {
      backgroundColor: theme.vars ? theme.vars.palette.FilledInput.disabledBg : disabledBackground
    }
  }, !ownerState.disableUnderline && {
    '&::after': {
      borderBottom: "2px solid ".concat((_palette = (theme.vars || theme).palette[ownerState.color || 'primary']) == null ? void 0 : _palette.main),
      left: 0,
      bottom: 0,
      // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
      content: '""',
      position: 'absolute',
      right: 0,
      transform: 'scaleX(0)',
      transition: theme.transitions.create('transform', {
        duration: theme.transitions.duration.shorter,
        easing: theme.transitions.easing.easeOut
      }),
      pointerEvents: 'none' // Transparent to the hover style.
    },

    ["&.".concat(FilledInput_filledInputClasses.focused, ":after")]: {
      // translateX(0) is a workaround for Safari transform scale bug
      // See https://github.com/mui/material-ui/issues/31766
      transform: 'scaleX(1) translateX(0)'
    },
    ["&.".concat(FilledInput_filledInputClasses.error)]: {
      '&::before, &::after': {
        borderBottomColor: (theme.vars || theme).palette.error.main
      }
    },
    '&::before': {
      borderBottom: "1px solid ".concat(theme.vars ? "rgba(".concat(theme.vars.palette.common.onBackgroundChannel, " / ").concat(theme.vars.opacity.inputUnderline, ")") : bottomLineColor),
      left: 0,
      bottom: 0,
      // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
      content: '"\\00a0"',
      position: 'absolute',
      right: 0,
      transition: theme.transitions.create('border-bottom-color', {
        duration: theme.transitions.duration.shorter
      }),
      pointerEvents: 'none' // Transparent to the hover style.
    },

    ["&:hover:not(.".concat(FilledInput_filledInputClasses.disabled, ", .").concat(FilledInput_filledInputClasses.error, "):before")]: {
      borderBottom: "1px solid ".concat((theme.vars || theme).palette.text.primary)
    },
    ["&.".concat(FilledInput_filledInputClasses.disabled, ":before")]: {
      borderBottomStyle: 'dotted'
    }
  }, ownerState.startAdornment && {
    paddingLeft: 12
  }, ownerState.endAdornment && {
    paddingRight: 12
  }, ownerState.multiline && (0,esm_extends/* default */.Z)({
    padding: '25px 12px 8px'
  }, ownerState.size === 'small' && {
    paddingTop: 21,
    paddingBottom: 4
  }, ownerState.hiddenLabel && {
    paddingTop: 16,
    paddingBottom: 17
  }, ownerState.hiddenLabel && ownerState.size === 'small' && {
    paddingTop: 8,
    paddingBottom: 9
  }));
});
const FilledInputInput = (0,styled/* default */.ZP)(InputBaseComponent, {
  name: 'MuiFilledInput',
  slot: 'Input',
  overridesResolver: inputOverridesResolver
})(_ref4 => {
  let {
    theme,
    ownerState
  } = _ref4;
  return (0,esm_extends/* default */.Z)({
    paddingTop: 25,
    paddingRight: 12,
    paddingBottom: 8,
    paddingLeft: 12
  }, !theme.vars && {
    '&:-webkit-autofill': {
      WebkitBoxShadow: theme.palette.mode === 'light' ? null : '0 0 0 100px #266798 inset',
      WebkitTextFillColor: theme.palette.mode === 'light' ? null : '#fff',
      caretColor: theme.palette.mode === 'light' ? null : '#fff',
      borderTopLeftRadius: 'inherit',
      borderTopRightRadius: 'inherit'
    }
  }, theme.vars && {
    '&:-webkit-autofill': {
      borderTopLeftRadius: 'inherit',
      borderTopRightRadius: 'inherit'
    },
    [theme.getColorSchemeSelector('dark')]: {
      '&:-webkit-autofill': {
        WebkitBoxShadow: '0 0 0 100px #266798 inset',
        WebkitTextFillColor: '#fff',
        caretColor: '#fff'
      }
    }
  }, ownerState.size === 'small' && {
    paddingTop: 21,
    paddingBottom: 4
  }, ownerState.hiddenLabel && {
    paddingTop: 16,
    paddingBottom: 17
  }, ownerState.startAdornment && {
    paddingLeft: 0
  }, ownerState.endAdornment && {
    paddingRight: 0
  }, ownerState.hiddenLabel && ownerState.size === 'small' && {
    paddingTop: 8,
    paddingBottom: 9
  }, ownerState.multiline && {
    paddingTop: 0,
    paddingBottom: 0,
    paddingLeft: 0,
    paddingRight: 0
  });
});
const FilledInput = /*#__PURE__*/react.forwardRef(function FilledInput(inProps, ref) {
  var _ref, _slots$root, _ref2, _slots$input;
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiFilledInput'
  });
  const {
      components = {},
      componentsProps: componentsPropsProp,
      fullWidth = false,
      // declare here to prevent spreading to DOM
      inputComponent = 'input',
      multiline = false,
      slotProps,
      slots = {},
      type = 'text'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, FilledInput_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    fullWidth,
    inputComponent,
    multiline,
    type
  });
  const classes = FilledInput_useUtilityClasses(props);
  const filledInputComponentsProps = {
    root: {
      ownerState
    },
    input: {
      ownerState
    }
  };
  const componentsProps = (slotProps != null ? slotProps : componentsPropsProp) ? (0,deepmerge/* default */.Z)(filledInputComponentsProps, slotProps != null ? slotProps : componentsPropsProp) : filledInputComponentsProps;
  const RootSlot = (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : FilledInputRoot;
  const InputSlot = (_ref2 = (_slots$input = slots.input) != null ? _slots$input : components.Input) != null ? _ref2 : FilledInputInput;
  return /*#__PURE__*/(0,jsx_runtime.jsx)(InputBase_InputBase, (0,esm_extends/* default */.Z)({
    slots: {
      root: RootSlot,
      input: InputSlot
    },
    componentsProps: componentsProps,
    fullWidth: fullWidth,
    inputComponent: inputComponent,
    multiline: multiline,
    ref: ref,
    type: type
  }, other, {
    classes: classes
  }));
});
 false ? 0 : void 0;
FilledInput.muiName = 'Input';
/* harmony default export */ const FilledInput_FilledInput = (FilledInput);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/OutlinedInput/NotchedOutline.js
'use client';



var _span;
const NotchedOutline_excluded = ["children", "classes", "className", "label", "notched"];




const NotchedOutlineRoot = (0,styled/* default */.ZP)('fieldset', {
  shouldForwardProp: rootShouldForwardProp/* default */.Z
})({
  textAlign: 'left',
  position: 'absolute',
  bottom: 0,
  right: 0,
  top: -5,
  left: 0,
  margin: 0,
  padding: '0 8px',
  pointerEvents: 'none',
  borderRadius: 'inherit',
  borderStyle: 'solid',
  borderWidth: 1,
  overflow: 'hidden',
  minWidth: '0%'
});
const NotchedOutlineLegend = (0,styled/* default */.ZP)('legend', {
  shouldForwardProp: rootShouldForwardProp/* default */.Z
})(_ref => {
  let {
    ownerState,
    theme
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    float: 'unset',
    // Fix conflict with bootstrap
    width: 'auto',
    // Fix conflict with bootstrap
    overflow: 'hidden'
  }, !ownerState.withLabel && {
    padding: 0,
    lineHeight: '11px',
    // sync with `height` in `legend` styles
    transition: theme.transitions.create('width', {
      duration: 150,
      easing: theme.transitions.easing.easeOut
    })
  }, ownerState.withLabel && (0,esm_extends/* default */.Z)({
    display: 'block',
    // Fix conflict with normalize.css and sanitize.css
    padding: 0,
    height: 11,
    // sync with `lineHeight` in `legend` styles
    fontSize: '0.75em',
    visibility: 'hidden',
    maxWidth: 0.01,
    transition: theme.transitions.create('max-width', {
      duration: 50,
      easing: theme.transitions.easing.easeOut
    }),
    whiteSpace: 'nowrap',
    '& > span': {
      paddingLeft: 5,
      paddingRight: 5,
      display: 'inline-block',
      opacity: 0,
      visibility: 'visible'
    }
  }, ownerState.notched && {
    maxWidth: '100%',
    transition: theme.transitions.create('max-width', {
      duration: 100,
      easing: theme.transitions.easing.easeOut,
      delay: 50
    })
  }));
});

/**
 * @ignore - internal component.
 */
function NotchedOutline(props) {
  const {
      className,
      label,
      notched
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, NotchedOutline_excluded);
  const withLabel = label != null && label !== '';
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    notched,
    withLabel
  });
  return /*#__PURE__*/(0,jsx_runtime.jsx)(NotchedOutlineRoot, (0,esm_extends/* default */.Z)({
    "aria-hidden": true,
    className: className,
    ownerState: ownerState
  }, other, {
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(NotchedOutlineLegend, {
      ownerState: ownerState,
      children: withLabel ? /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
        children: label
      }) :
      // notranslate needed while Google Translate will not fix zero-width space issue
      _span || (_span = /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
        className: "notranslate",
        children: "\u200B"
      }))
    })
  }));
}
 false ? 0 : void 0;
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js




function getOutlinedInputUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiOutlinedInput', slot);
}
const outlinedInputClasses = (0,esm_extends/* default */.Z)({}, InputBase_inputBaseClasses, (0,generateUtilityClasses/* default */.Z)('MuiOutlinedInput', ['root', 'notchedOutline', 'input']));
/* harmony default export */ const OutlinedInput_outlinedInputClasses = (outlinedInputClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/OutlinedInput/OutlinedInput.js
'use client';



const OutlinedInput_excluded = ["components", "fullWidth", "inputComponent", "label", "multiline", "notched", "slots", "type"];













const OutlinedInput_useUtilityClasses = ownerState => {
  const {
    classes
  } = ownerState;
  const slots = {
    root: ['root'],
    notchedOutline: ['notchedOutline'],
    input: ['input']
  };
  const composedClasses = (0,composeClasses/* default */.Z)(slots, getOutlinedInputUtilityClass, classes);
  return (0,esm_extends/* default */.Z)({}, classes, composedClasses);
};
const OutlinedInputRoot = (0,styled/* default */.ZP)(InputBaseRoot, {
  shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) || prop === 'classes',
  name: 'MuiOutlinedInput',
  slot: 'Root',
  overridesResolver: rootOverridesResolver
})(_ref3 => {
  let {
    theme,
    ownerState
  } = _ref3;
  const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
  return (0,esm_extends/* default */.Z)({
    position: 'relative',
    borderRadius: (theme.vars || theme).shape.borderRadius,
    ["&:hover .".concat(OutlinedInput_outlinedInputClasses.notchedOutline)]: {
      borderColor: (theme.vars || theme).palette.text.primary
    },
    // Reset on touch devices, it doesn't add specificity
    '@media (hover: none)': {
      ["&:hover .".concat(OutlinedInput_outlinedInputClasses.notchedOutline)]: {
        borderColor: theme.vars ? "rgba(".concat(theme.vars.palette.common.onBackgroundChannel, " / 0.23)") : borderColor
      }
    },
    ["&.".concat(OutlinedInput_outlinedInputClasses.focused, " .").concat(OutlinedInput_outlinedInputClasses.notchedOutline)]: {
      borderColor: (theme.vars || theme).palette[ownerState.color].main,
      borderWidth: 2
    },
    ["&.".concat(OutlinedInput_outlinedInputClasses.error, " .").concat(OutlinedInput_outlinedInputClasses.notchedOutline)]: {
      borderColor: (theme.vars || theme).palette.error.main
    },
    ["&.".concat(OutlinedInput_outlinedInputClasses.disabled, " .").concat(OutlinedInput_outlinedInputClasses.notchedOutline)]: {
      borderColor: (theme.vars || theme).palette.action.disabled
    }
  }, ownerState.startAdornment && {
    paddingLeft: 14
  }, ownerState.endAdornment && {
    paddingRight: 14
  }, ownerState.multiline && (0,esm_extends/* default */.Z)({
    padding: '16.5px 14px'
  }, ownerState.size === 'small' && {
    padding: '8.5px 14px'
  }));
});
const OutlinedInput_NotchedOutlineRoot = (0,styled/* default */.ZP)(NotchedOutline, {
  name: 'MuiOutlinedInput',
  slot: 'NotchedOutline',
  overridesResolver: (props, styles) => styles.notchedOutline
})(_ref4 => {
  let {
    theme
  } = _ref4;
  const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
  return {
    borderColor: theme.vars ? "rgba(".concat(theme.vars.palette.common.onBackgroundChannel, " / 0.23)") : borderColor
  };
});
const OutlinedInputInput = (0,styled/* default */.ZP)(InputBaseComponent, {
  name: 'MuiOutlinedInput',
  slot: 'Input',
  overridesResolver: inputOverridesResolver
})(_ref5 => {
  let {
    theme,
    ownerState
  } = _ref5;
  return (0,esm_extends/* default */.Z)({
    padding: '16.5px 14px'
  }, !theme.vars && {
    '&:-webkit-autofill': {
      WebkitBoxShadow: theme.palette.mode === 'light' ? null : '0 0 0 100px #266798 inset',
      WebkitTextFillColor: theme.palette.mode === 'light' ? null : '#fff',
      caretColor: theme.palette.mode === 'light' ? null : '#fff',
      borderRadius: 'inherit'
    }
  }, theme.vars && {
    '&:-webkit-autofill': {
      borderRadius: 'inherit'
    },
    [theme.getColorSchemeSelector('dark')]: {
      '&:-webkit-autofill': {
        WebkitBoxShadow: '0 0 0 100px #266798 inset',
        WebkitTextFillColor: '#fff',
        caretColor: '#fff'
      }
    }
  }, ownerState.size === 'small' && {
    padding: '8.5px 14px'
  }, ownerState.multiline && {
    padding: 0
  }, ownerState.startAdornment && {
    paddingLeft: 0
  }, ownerState.endAdornment && {
    paddingRight: 0
  });
});
const OutlinedInput = /*#__PURE__*/react.forwardRef(function OutlinedInput(inProps, ref) {
  var _ref, _slots$root, _ref2, _slots$input, _React$Fragment;
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiOutlinedInput'
  });
  const {
      components = {},
      fullWidth = false,
      inputComponent = 'input',
      label,
      multiline = false,
      notched,
      slots = {},
      type = 'text'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, OutlinedInput_excluded);
  const classes = OutlinedInput_useUtilityClasses(props);
  const muiFormControl = useFormControl();
  const fcs = formControlState({
    props,
    muiFormControl,
    states: ['color', 'disabled', 'error', 'focused', 'hiddenLabel', 'size', 'required']
  });
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color: fcs.color || 'primary',
    disabled: fcs.disabled,
    error: fcs.error,
    focused: fcs.focused,
    formControl: muiFormControl,
    fullWidth,
    hiddenLabel: fcs.hiddenLabel,
    multiline,
    size: fcs.size,
    type
  });
  const RootSlot = (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : OutlinedInputRoot;
  const InputSlot = (_ref2 = (_slots$input = slots.input) != null ? _slots$input : components.Input) != null ? _ref2 : OutlinedInputInput;
  return /*#__PURE__*/(0,jsx_runtime.jsx)(InputBase_InputBase, (0,esm_extends/* default */.Z)({
    slots: {
      root: RootSlot,
      input: InputSlot
    },
    renderSuffix: state => /*#__PURE__*/(0,jsx_runtime.jsx)(OutlinedInput_NotchedOutlineRoot, {
      ownerState: ownerState,
      className: classes.notchedOutline,
      label: label != null && label !== '' && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
        children: [label, "\u2009", '*']
      })) : label,
      notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)
    }),
    fullWidth: fullWidth,
    inputComponent: inputComponent,
    multiline: multiline,
    ref: ref,
    type: type
  }, other, {
    classes: (0,esm_extends/* default */.Z)({}, classes, {
      notchedOutline: null
    })
  }));
});
 false ? 0 : void 0;
OutlinedInput.muiName = 'Input';
/* harmony default export */ const OutlinedInput_OutlinedInput = (OutlinedInput);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormLabel/formLabelClasses.js


function getFormLabelUtilityClasses(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiFormLabel', slot);
}
const formLabelClasses = (0,generateUtilityClasses/* default */.Z)('MuiFormLabel', ['root', 'colorSecondary', 'focused', 'disabled', 'error', 'filled', 'required', 'asterisk']);
/* harmony default export */ const FormLabel_formLabelClasses = (formLabelClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormLabel/FormLabel.js
'use client';



const FormLabel_excluded = ["children", "className", "color", "component", "disabled", "error", "filled", "focused", "required"];











const FormLabel_useUtilityClasses = ownerState => {
  const {
    classes,
    color,
    focused,
    disabled,
    error,
    filled,
    required
  } = ownerState;
  const slots = {
    root: ['root', "color".concat((0,capitalize/* default */.Z)(color)), disabled && 'disabled', error && 'error', filled && 'filled', focused && 'focused', required && 'required'],
    asterisk: ['asterisk', error && 'error']
  };
  return (0,composeClasses/* default */.Z)(slots, getFormLabelUtilityClasses, classes);
};
const FormLabelRoot = (0,styled/* default */.ZP)('label', {
  name: 'MuiFormLabel',
  slot: 'Root',
  overridesResolver: (_ref, styles) => {
    let {
      ownerState
    } = _ref;
    return (0,esm_extends/* default */.Z)({}, styles.root, ownerState.color === 'secondary' && styles.colorSecondary, ownerState.filled && styles.filled);
  }
})(_ref2 => {
  let {
    theme,
    ownerState
  } = _ref2;
  return (0,esm_extends/* default */.Z)({
    color: (theme.vars || theme).palette.text.secondary
  }, theme.typography.body1, {
    lineHeight: '1.4375em',
    padding: 0,
    position: 'relative',
    ["&.".concat(FormLabel_formLabelClasses.focused)]: {
      color: (theme.vars || theme).palette[ownerState.color].main
    },
    ["&.".concat(FormLabel_formLabelClasses.disabled)]: {
      color: (theme.vars || theme).palette.text.disabled
    },
    ["&.".concat(FormLabel_formLabelClasses.error)]: {
      color: (theme.vars || theme).palette.error.main
    }
  });
});
const FormLabel_AsteriskComponent = (0,styled/* default */.ZP)('span', {
  name: 'MuiFormLabel',
  slot: 'Asterisk',
  overridesResolver: (props, styles) => styles.asterisk
})(_ref3 => {
  let {
    theme
  } = _ref3;
  return {
    ["&.".concat(FormLabel_formLabelClasses.error)]: {
      color: (theme.vars || theme).palette.error.main
    }
  };
});
const FormLabel = /*#__PURE__*/react.forwardRef(function FormLabel(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiFormLabel'
  });
  const {
      children,
      className,
      component = 'label'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, FormLabel_excluded);
  const muiFormControl = useFormControl();
  const fcs = formControlState({
    props,
    muiFormControl,
    states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']
  });
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color: fcs.color || 'primary',
    component,
    disabled: fcs.disabled,
    error: fcs.error,
    filled: fcs.filled,
    focused: fcs.focused,
    required: fcs.required
  });
  const classes = FormLabel_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(FormLabelRoot, (0,esm_extends/* default */.Z)({
    as: component,
    ownerState: ownerState,
    className: (0,clsx/* default */.Z)(classes.root, className),
    ref: ref
  }, other, {
    children: [children, fcs.required && /*#__PURE__*/(0,jsx_runtime.jsxs)(FormLabel_AsteriskComponent, {
      ownerState: ownerState,
      "aria-hidden": true,
      className: classes.asterisk,
      children: ["\u2009", '*']
    })]
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const FormLabel_FormLabel = (FormLabel);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/InputLabel/inputLabelClasses.js


function getInputLabelUtilityClasses(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiInputLabel', slot);
}
const inputLabelClasses = (0,generateUtilityClasses/* default */.Z)('MuiInputLabel', ['root', 'focused', 'disabled', 'error', 'required', 'asterisk', 'formControl', 'sizeSmall', 'shrink', 'animated', 'standard', 'filled', 'outlined']);
/* harmony default export */ const InputLabel_inputLabelClasses = ((/* unused pure expression or super */ null && (inputLabelClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/InputLabel/InputLabel.js
'use client';



const InputLabel_excluded = ["disableAnimation", "margin", "shrink", "variant", "className"];












const InputLabel_useUtilityClasses = ownerState => {
  const {
    classes,
    formControl,
    size,
    shrink,
    disableAnimation,
    variant,
    required
  } = ownerState;
  const slots = {
    root: ['root', formControl && 'formControl', !disableAnimation && 'animated', shrink && 'shrink', size && size !== 'normal' && "size".concat((0,capitalize/* default */.Z)(size)), variant],
    asterisk: [required && 'asterisk']
  };
  const composedClasses = (0,composeClasses/* default */.Z)(slots, getInputLabelUtilityClasses, classes);
  return (0,esm_extends/* default */.Z)({}, classes, composedClasses);
};
const InputLabelRoot = (0,styled/* default */.ZP)(FormLabel_FormLabel, {
  shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) || prop === 'classes',
  name: 'MuiInputLabel',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [{
      ["& .".concat(FormLabel_formLabelClasses.asterisk)]: styles.asterisk
    }, styles.root, ownerState.formControl && styles.formControl, ownerState.size === 'small' && styles.sizeSmall, ownerState.shrink && styles.shrink, !ownerState.disableAnimation && styles.animated, ownerState.focused && styles.focused, styles[ownerState.variant]];
  }
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    display: 'block',
    transformOrigin: 'top left',
    whiteSpace: 'nowrap',
    overflow: 'hidden',
    textOverflow: 'ellipsis',
    maxWidth: '100%'
  }, ownerState.formControl && {
    position: 'absolute',
    left: 0,
    top: 0,
    // slight alteration to spec spacing to match visual spec result
    transform: 'translate(0, 20px) scale(1)'
  }, ownerState.size === 'small' && {
    // Compensation for the `Input.inputSizeSmall` style.
    transform: 'translate(0, 17px) scale(1)'
  }, ownerState.shrink && {
    transform: 'translate(0, -1.5px) scale(0.75)',
    transformOrigin: 'top left',
    maxWidth: '133%'
  }, !ownerState.disableAnimation && {
    transition: theme.transitions.create(['color', 'transform', 'max-width'], {
      duration: theme.transitions.duration.shorter,
      easing: theme.transitions.easing.easeOut
    })
  }, ownerState.variant === 'filled' && (0,esm_extends/* default */.Z)({
    // Chrome's autofill feature gives the input field a yellow background.
    // Since the input field is behind the label in the HTML tree,
    // the input field is drawn last and hides the label with an opaque background color.
    // zIndex: 1 will raise the label above opaque background-colors of input.
    zIndex: 1,
    pointerEvents: 'none',
    transform: 'translate(12px, 16px) scale(1)',
    maxWidth: 'calc(100% - 24px)'
  }, ownerState.size === 'small' && {
    transform: 'translate(12px, 13px) scale(1)'
  }, ownerState.shrink && (0,esm_extends/* default */.Z)({
    userSelect: 'none',
    pointerEvents: 'auto',
    transform: 'translate(12px, 7px) scale(0.75)',
    maxWidth: 'calc(133% - 24px)'
  }, ownerState.size === 'small' && {
    transform: 'translate(12px, 4px) scale(0.75)'
  })), ownerState.variant === 'outlined' && (0,esm_extends/* default */.Z)({
    // see comment above on filled.zIndex
    zIndex: 1,
    pointerEvents: 'none',
    transform: 'translate(14px, 16px) scale(1)',
    maxWidth: 'calc(100% - 24px)'
  }, ownerState.size === 'small' && {
    transform: 'translate(14px, 9px) scale(1)'
  }, ownerState.shrink && {
    userSelect: 'none',
    pointerEvents: 'auto',
    // Theoretically, we should have (8+5)*2/0.75 = 34px
    // but it feels a better when it bleeds a bit on the left, so 32px.
    maxWidth: 'calc(133% - 32px)',
    transform: 'translate(14px, -9px) scale(0.75)'
  }));
});
const InputLabel = /*#__PURE__*/react.forwardRef(function InputLabel(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    name: 'MuiInputLabel',
    props: inProps
  });
  const {
      disableAnimation = false,
      shrink: shrinkProp,
      className
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, InputLabel_excluded);
  const muiFormControl = useFormControl();
  let shrink = shrinkProp;
  if (typeof shrink === 'undefined' && muiFormControl) {
    shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;
  }
  const fcs = formControlState({
    props,
    muiFormControl,
    states: ['size', 'variant', 'required', 'focused']
  });
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    disableAnimation,
    formControl: muiFormControl,
    shrink,
    size: fcs.size,
    variant: fcs.variant,
    required: fcs.required,
    focused: fcs.focused
  });
  const classes = InputLabel_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(InputLabelRoot, (0,esm_extends/* default */.Z)({
    "data-shrink": shrink,
    ownerState: ownerState,
    ref: ref,
    className: (0,clsx/* default */.Z)(classes.root, className)
  }, other, {
    classes: classes
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const InputLabel_InputLabel = (InputLabel);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/isMuiElement.js + 1 modules
var isMuiElement = __webpack_require__(3272);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormControl/formControlClasses.js


function getFormControlUtilityClasses(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiFormControl', slot);
}
const formControlClasses = (0,generateUtilityClasses/* default */.Z)('MuiFormControl', ['root', 'marginNone', 'marginNormal', 'marginDense', 'fullWidth', 'disabled']);
/* harmony default export */ const FormControl_formControlClasses = ((/* unused pure expression or super */ null && (formControlClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormControl/FormControl.js
'use client';



const FormControl_excluded = ["children", "className", "color", "component", "disabled", "error", "focused", "fullWidth", "hiddenLabel", "margin", "required", "size", "variant"];












const FormControl_useUtilityClasses = ownerState => {
  const {
    classes,
    margin,
    fullWidth
  } = ownerState;
  const slots = {
    root: ['root', margin !== 'none' && "margin".concat((0,capitalize/* default */.Z)(margin)), fullWidth && 'fullWidth']
  };
  return (0,composeClasses/* default */.Z)(slots, getFormControlUtilityClasses, classes);
};
const FormControlRoot = (0,styled/* default */.ZP)('div', {
  name: 'MuiFormControl',
  slot: 'Root',
  overridesResolver: (_ref, styles) => {
    let {
      ownerState
    } = _ref;
    return (0,esm_extends/* default */.Z)({}, styles.root, styles["margin".concat((0,capitalize/* default */.Z)(ownerState.margin))], ownerState.fullWidth && styles.fullWidth);
  }
})(_ref2 => {
  let {
    ownerState
  } = _ref2;
  return (0,esm_extends/* default */.Z)({
    display: 'inline-flex',
    flexDirection: 'column',
    position: 'relative',
    // Reset fieldset default style.
    minWidth: 0,
    padding: 0,
    margin: 0,
    border: 0,
    verticalAlign: 'top'
  }, ownerState.margin === 'normal' && {
    marginTop: 16,
    marginBottom: 8
  }, ownerState.margin === 'dense' && {
    marginTop: 8,
    marginBottom: 4
  }, ownerState.fullWidth && {
    width: '100%'
  });
});

/**
 * Provides context such as filled/focused/error/required for form inputs.
 * Relying on the context provides high flexibility and ensures that the state always stays
 * consistent across the children of the `FormControl`.
 * This context is used by the following components:
 *
 *  - FormLabel
 *  - FormHelperText
 *  - Input
 *  - InputLabel
 *
 * You can find one composition example below and more going to [the demos](/material-ui/react-text-field/#components).
 *
 * ```jsx
 * <FormControl>
 *   <InputLabel htmlFor="my-input">Email address</InputLabel>
 *   <Input id="my-input" aria-describedby="my-helper-text" />
 *   <FormHelperText id="my-helper-text">We'll never share your email.</FormHelperText>
 * </FormControl>
 * ```
 *
 * ⚠️ Only one `InputBase` can be used within a FormControl because it creates visual inconsistencies.
 * For instance, only one input can be focused at the same time, the state shouldn't be shared.
 */
const FormControl = /*#__PURE__*/react.forwardRef(function FormControl(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiFormControl'
  });
  const {
      children,
      className,
      color = 'primary',
      component = 'div',
      disabled = false,
      error = false,
      focused: visuallyFocused,
      fullWidth = false,
      hiddenLabel = false,
      margin = 'none',
      required = false,
      size = 'medium',
      variant = 'outlined'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, FormControl_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color,
    component,
    disabled,
    error,
    fullWidth,
    hiddenLabel,
    margin,
    required,
    size,
    variant
  });
  const classes = FormControl_useUtilityClasses(ownerState);
  const [adornedStart, setAdornedStart] = react.useState(() => {
    // We need to iterate through the children and find the Input in order
    // to fully support server-side rendering.
    let initialAdornedStart = false;
    if (children) {
      react.Children.forEach(children, child => {
        if (!(0,isMuiElement/* default */.Z)(child, ['Input', 'Select'])) {
          return;
        }
        const input = (0,isMuiElement/* default */.Z)(child, ['Select']) ? child.props.input : child;
        if (input && isAdornedStart(input.props)) {
          initialAdornedStart = true;
        }
      });
    }
    return initialAdornedStart;
  });
  const [filled, setFilled] = react.useState(() => {
    // We need to iterate through the children and find the Input in order
    // to fully support server-side rendering.
    let initialFilled = false;
    if (children) {
      react.Children.forEach(children, child => {
        if (!(0,isMuiElement/* default */.Z)(child, ['Input', 'Select'])) {
          return;
        }
        if (isFilled(child.props, true) || isFilled(child.props.inputProps, true)) {
          initialFilled = true;
        }
      });
    }
    return initialFilled;
  });
  const [focusedState, setFocused] = react.useState(false);
  if (disabled && focusedState) {
    setFocused(false);
  }
  const focused = visuallyFocused !== undefined && !disabled ? visuallyFocused : focusedState;
  let registerEffect;
  if (false) {}
  const childContext = react.useMemo(() => {
    return {
      adornedStart,
      setAdornedStart,
      color,
      disabled,
      error,
      filled,
      focused,
      fullWidth,
      hiddenLabel,
      size,
      onBlur: () => {
        setFocused(false);
      },
      onEmpty: () => {
        setFilled(false);
      },
      onFilled: () => {
        setFilled(true);
      },
      onFocus: () => {
        setFocused(true);
      },
      registerEffect,
      required,
      variant
    };
  }, [adornedStart, color, disabled, error, filled, focused, fullWidth, hiddenLabel, registerEffect, required, size, variant]);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(FormControl_FormControlContext.Provider, {
    value: childContext,
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(FormControlRoot, (0,esm_extends/* default */.Z)({
      as: component,
      ownerState: ownerState,
      className: (0,clsx/* default */.Z)(classes.root, className),
      ref: ref
    }, other, {
      children: children
    }))
  });
});
 false ? 0 : void 0;
/* harmony default export */ const FormControl_FormControl = (FormControl);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormHelperText/formHelperTextClasses.js


function getFormHelperTextUtilityClasses(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiFormHelperText', slot);
}
const formHelperTextClasses = (0,generateUtilityClasses/* default */.Z)('MuiFormHelperText', ['root', 'error', 'disabled', 'sizeSmall', 'sizeMedium', 'contained', 'focused', 'filled', 'required']);
/* harmony default export */ const FormHelperText_formHelperTextClasses = (formHelperTextClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/FormHelperText/FormHelperText.js
'use client';



var FormHelperText_span;
const FormHelperText_excluded = ["children", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"];











const FormHelperText_useUtilityClasses = ownerState => {
  const {
    classes,
    contained,
    size,
    disabled,
    error,
    filled,
    focused,
    required
  } = ownerState;
  const slots = {
    root: ['root', disabled && 'disabled', error && 'error', size && "size".concat((0,capitalize/* default */.Z)(size)), contained && 'contained', focused && 'focused', filled && 'filled', required && 'required']
  };
  return (0,composeClasses/* default */.Z)(slots, getFormHelperTextUtilityClasses, classes);
};
const FormHelperTextRoot = (0,styled/* default */.ZP)('p', {
  name: 'MuiFormHelperText',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, ownerState.size && styles["size".concat((0,capitalize/* default */.Z)(ownerState.size))], ownerState.contained && styles.contained, ownerState.filled && styles.filled];
  }
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    color: (theme.vars || theme).palette.text.secondary
  }, theme.typography.caption, {
    textAlign: 'left',
    marginTop: 3,
    marginRight: 0,
    marginBottom: 0,
    marginLeft: 0,
    ["&.".concat(FormHelperText_formHelperTextClasses.disabled)]: {
      color: (theme.vars || theme).palette.text.disabled
    },
    ["&.".concat(FormHelperText_formHelperTextClasses.error)]: {
      color: (theme.vars || theme).palette.error.main
    }
  }, ownerState.size === 'small' && {
    marginTop: 4
  }, ownerState.contained && {
    marginLeft: 14,
    marginRight: 14
  });
});
const FormHelperText = /*#__PURE__*/react.forwardRef(function FormHelperText(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiFormHelperText'
  });
  const {
      children,
      className,
      component = 'p'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, FormHelperText_excluded);
  const muiFormControl = useFormControl();
  const fcs = formControlState({
    props,
    muiFormControl,
    states: ['variant', 'size', 'disabled', 'error', 'filled', 'focused', 'required']
  });
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    component,
    contained: fcs.variant === 'filled' || fcs.variant === 'outlined',
    variant: fcs.variant,
    size: fcs.size,
    disabled: fcs.disabled,
    error: fcs.error,
    filled: fcs.filled,
    focused: fcs.focused,
    required: fcs.required
  });
  const classes = FormHelperText_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(FormHelperTextRoot, (0,esm_extends/* default */.Z)({
    as: component,
    ownerState: ownerState,
    className: (0,clsx/* default */.Z)(classes.root, className),
    ref: ref
  }, other, {
    children: children === ' ' ?
    // notranslate needed while Google Translate will not fix zero-width space issue
    FormHelperText_span || (FormHelperText_span = /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
      className: "notranslate",
      children: "\u200B"
    })) : children
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const FormHelperText_FormHelperText = (FormHelperText);
// EXTERNAL MODULE: ./node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/index.js
var react_is = __webpack_require__(8890);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/ownerDocument.js
var ownerDocument = __webpack_require__(1704);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/utils/appendOwnerState.js



/**
 * Type of the ownerState based on the type of an element it applies to.
 * This resolves to the provided OwnerState for React components and `undefined` for host components.
 * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.
 */

/**
 * Appends the ownerState object to the props, merging with the existing one if necessary.
 *
 * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.
 * @param otherProps Props of the element.
 * @param ownerState
 */
function appendOwnerState(elementType, otherProps, ownerState) {
  if (elementType === undefined || isHostComponent(elementType)) {
    return otherProps;
  }
  return (0,esm_extends/* default */.Z)({}, otherProps, {
    ownerState: (0,esm_extends/* default */.Z)({}, otherProps.ownerState, ownerState)
  });
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/utils/extractEventHandlers.js
/**
 * Extracts event handlers from a given object.
 * A prop is considered an event handler if it is a function and its name starts with `on`.
 *
 * @param object An object to extract event handlers from.
 * @param excludeKeys An array of keys to exclude from the returned object.
 */
function extractEventHandlers(object) {
  let excludeKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  if (object === undefined) {
    return {};
  }
  const result = {};
  Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {
    result[prop] = object[prop];
  });
  return result;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/utils/omitEventHandlers.js
/**
 * Removes event handlers from the given object.
 * A field is considered an event handler if it is a function with a name beginning with `on`.
 *
 * @param object Object to remove event handlers from.
 * @returns Object with event handlers removed.
 */
function omitEventHandlers(object) {
  if (object === undefined) {
    return {};
  }
  const result = {};
  Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {
    result[prop] = object[prop];
  });
  return result;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/utils/mergeSlotProps.js




/**
 * Merges the slot component internal props (usually coming from a hook)
 * with the externally provided ones.
 *
 * The merge order is (the latter overrides the former):
 * 1. The internal props (specified as a getter function to work with get*Props hook result)
 * 2. Additional props (specified internally on a Base UI component)
 * 3. External props specified on the owner component. These should only be used on a root slot.
 * 4. External props specified in the `slotProps.*` prop.
 * 5. The `className` prop - combined from all the above.
 * @param parameters
 * @returns
 */
function mergeSlotProps(parameters) {
  const {
    getSlotProps,
    additionalProps,
    externalSlotProps,
    externalForwardedProps,
    className
  } = parameters;
  if (!getSlotProps) {
    // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,
    // so we can simply merge all the props without having to worry about extracting event handlers.
    const joinedClasses = (0,clsx/* default */.Z)(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);
    const mergedStyle = (0,esm_extends/* default */.Z)({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);
    const props = (0,esm_extends/* default */.Z)({}, additionalProps, externalForwardedProps, externalSlotProps);
    if (joinedClasses.length > 0) {
      props.className = joinedClasses;
    }
    if (Object.keys(mergedStyle).length > 0) {
      props.style = mergedStyle;
    }
    return {
      props,
      internalRef: undefined
    };
  }

  // In this case, getSlotProps is responsible for calling the external event handlers.
  // We don't need to include them in the merged props because of this.

  const eventHandlers = extractEventHandlers((0,esm_extends/* default */.Z)({}, externalForwardedProps, externalSlotProps));
  const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);
  const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);
  const internalSlotProps = getSlotProps(eventHandlers);

  // The order of classes is important here.
  // Emotion (that we use in libraries consuming Base UI) depends on this order
  // to properly override style. It requires the most important classes to be last
  // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.
  const joinedClasses = (0,clsx/* default */.Z)(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);
  const mergedStyle = (0,esm_extends/* default */.Z)({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);
  const props = (0,esm_extends/* default */.Z)({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);
  if (joinedClasses.length > 0) {
    props.className = joinedClasses;
  }
  if (Object.keys(mergedStyle).length > 0) {
    props.style = mergedStyle;
  }
  return {
    props,
    internalRef: internalSlotProps.ref
  };
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/utils/resolveComponentProps.js
/**
 * If `componentProps` is a function, calls it with the provided `ownerState`.
 * Otherwise, just returns `componentProps`.
 */
function resolveComponentProps(componentProps, ownerState, slotState) {
  if (typeof componentProps === 'function') {
    return componentProps(ownerState, slotState);
  }
  return componentProps;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/utils/useSlotProps.js
'use client';



const useSlotProps_excluded = ["elementType", "externalSlotProps", "ownerState", "skipResolvingSlotProps"];




/**
 * @ignore - do not document.
 * Builds the props to be passed into the slot of an unstyled component.
 * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.
 * If the slot component is not a host component, it also merges in the `ownerState`.
 *
 * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.
 */
function useSlotProps(parameters) {
  var _parameters$additiona;
  const {
      elementType,
      externalSlotProps,
      ownerState,
      skipResolvingSlotProps = false
    } = parameters,
    rest = (0,objectWithoutPropertiesLoose/* default */.Z)(parameters, useSlotProps_excluded);
  const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);
  const {
    props: mergedProps,
    internalRef
  } = mergeSlotProps((0,esm_extends/* default */.Z)({}, rest, {
    externalSlotProps: resolvedComponentsProps
  }));
  const ref = (0,useForkRef_useForkRef/* default */.Z)(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, (_parameters$additiona = parameters.additionalProps) == null ? void 0 : _parameters$additiona.ref);
  const props = appendOwnerState(elementType, (0,esm_extends/* default */.Z)({}, mergedProps, {
    ref
  }), ownerState);
  return props;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/List/listClasses.js


function getListUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiList', slot);
}
const listClasses = (0,generateUtilityClasses/* default */.Z)('MuiList', ['root', 'padding', 'dense', 'subheader']);
/* harmony default export */ const List_listClasses = ((/* unused pure expression or super */ null && (listClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/List/List.js
'use client';



const List_excluded = ["children", "className", "component", "dense", "disablePadding", "subheader"];










const List_useUtilityClasses = ownerState => {
  const {
    classes,
    disablePadding,
    dense,
    subheader
  } = ownerState;
  const slots = {
    root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']
  };
  return (0,composeClasses/* default */.Z)(slots, getListUtilityClass, classes);
};
const ListRoot = (0,styled/* default */.ZP)('ul', {
  name: 'MuiList',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];
  }
})(_ref => {
  let {
    ownerState
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    listStyle: 'none',
    margin: 0,
    padding: 0,
    position: 'relative'
  }, !ownerState.disablePadding && {
    paddingTop: 8,
    paddingBottom: 8
  }, ownerState.subheader && {
    paddingTop: 0
  });
});
const List = /*#__PURE__*/react.forwardRef(function List(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiList'
  });
  const {
      children,
      className,
      component = 'ul',
      dense = false,
      disablePadding = false,
      subheader
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, List_excluded);
  const context = react.useMemo(() => ({
    dense
  }), [dense]);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    component,
    dense,
    disablePadding
  });
  const classes = List_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(List_ListContext.Provider, {
    value: context,
    children: /*#__PURE__*/(0,jsx_runtime.jsxs)(ListRoot, (0,esm_extends/* default */.Z)({
      as: component,
      className: (0,clsx/* default */.Z)(classes.root, className),
      ref: ref,
      ownerState: ownerState
    }, other, {
      children: [subheader, children]
    }))
  });
});
 false ? 0 : void 0;
/* harmony default export */ const List_List = (List);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/getScrollbarSize/getScrollbarSize.js
// A change of the browser zoom change the scrollbar size.
// Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18
function getScrollbarSize(doc) {
  // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
  const documentWidth = doc.documentElement.clientWidth;
  return Math.abs(window.innerWidth - documentWidth);
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/getScrollbarSize.js

/* harmony default export */ const utils_getScrollbarSize = (getScrollbarSize);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/MenuList/MenuList.js
'use client';



const MenuList_excluded = ["actions", "autoFocus", "autoFocusItem", "children", "className", "disabledItemsFocusable", "disableListWrap", "onKeyDown", "variant"];









function nextItem(list, item, disableListWrap) {
  if (list === item) {
    return list.firstChild;
  }
  if (item && item.nextElementSibling) {
    return item.nextElementSibling;
  }
  return disableListWrap ? null : list.firstChild;
}
function previousItem(list, item, disableListWrap) {
  if (list === item) {
    return disableListWrap ? list.firstChild : list.lastChild;
  }
  if (item && item.previousElementSibling) {
    return item.previousElementSibling;
  }
  return disableListWrap ? null : list.lastChild;
}
function textCriteriaMatches(nextFocus, textCriteria) {
  if (textCriteria === undefined) {
    return true;
  }
  let text = nextFocus.innerText;
  if (text === undefined) {
    // jsdom doesn't support innerText
    text = nextFocus.textContent;
  }
  text = text.trim().toLowerCase();
  if (text.length === 0) {
    return false;
  }
  if (textCriteria.repeating) {
    return text[0] === textCriteria.keys[0];
  }
  return text.indexOf(textCriteria.keys.join('')) === 0;
}
function moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {
  let wrappedOnce = false;
  let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);
  while (nextFocus) {
    // Prevent infinite loop.
    if (nextFocus === list.firstChild) {
      if (wrappedOnce) {
        return false;
      }
      wrappedOnce = true;
    }

    // Same logic as useAutocomplete.js
    const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';
    if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {
      // Move to the next element.
      nextFocus = traversalFunction(list, nextFocus, disableListWrap);
    } else {
      nextFocus.focus();
      return true;
    }
  }
  return false;
}

/**
 * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/.
 * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you
 * use it separately you need to move focus into the component manually. Once
 * the focus is placed inside the component it is fully keyboard accessible.
 */
const MenuList = /*#__PURE__*/react.forwardRef(function MenuList(props, ref) {
  const {
      // private
      // eslint-disable-next-line react/prop-types
      actions,
      autoFocus = false,
      autoFocusItem = false,
      children,
      className,
      disabledItemsFocusable = false,
      disableListWrap = false,
      onKeyDown,
      variant = 'selectedMenu'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, MenuList_excluded);
  const listRef = react.useRef(null);
  const textCriteriaRef = react.useRef({
    keys: [],
    repeating: true,
    previousKeyMatched: true,
    lastTime: null
  });
  (0,useEnhancedEffect/* default */.Z)(() => {
    if (autoFocus) {
      listRef.current.focus();
    }
  }, [autoFocus]);
  react.useImperativeHandle(actions, () => ({
    adjustStyleForScrollbar: (containerElement, _ref) => {
      let {
        direction
      } = _ref;
      // Let's ignore that piece of logic if users are already overriding the width
      // of the menu.
      const noExplicitWidth = !listRef.current.style.width;
      if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {
        const scrollbarSize = "".concat(utils_getScrollbarSize((0,ownerDocument/* default */.Z)(containerElement)), "px");
        listRef.current.style[direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;
        listRef.current.style.width = "calc(100% + ".concat(scrollbarSize, ")");
      }
      return listRef.current;
    }
  }), []);
  const handleKeyDown = event => {
    const list = listRef.current;
    const key = event.key;
    /**
     * @type {Element} - will always be defined since we are in a keydown handler
     * attached to an element. A keydown event is either dispatched to the activeElement
     * or document.body or document.documentElement. Only the first case will
     * trigger this specific handler.
     */
    const currentFocus = (0,ownerDocument/* default */.Z)(list).activeElement;
    if (key === 'ArrowDown') {
      // Prevent scroll of the page
      event.preventDefault();
      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);
    } else if (key === 'ArrowUp') {
      event.preventDefault();
      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);
    } else if (key === 'Home') {
      event.preventDefault();
      moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);
    } else if (key === 'End') {
      event.preventDefault();
      moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);
    } else if (key.length === 1) {
      const criteria = textCriteriaRef.current;
      const lowerKey = key.toLowerCase();
      const currTime = performance.now();
      if (criteria.keys.length > 0) {
        // Reset
        if (currTime - criteria.lastTime > 500) {
          criteria.keys = [];
          criteria.repeating = true;
          criteria.previousKeyMatched = true;
        } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {
          criteria.repeating = false;
        }
      }
      criteria.lastTime = currTime;
      criteria.keys.push(lowerKey);
      const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);
      if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {
        event.preventDefault();
      } else {
        criteria.previousKeyMatched = false;
      }
    }
    if (onKeyDown) {
      onKeyDown(event);
    }
  };
  const handleRef = (0,useForkRef/* default */.Z)(listRef, ref);

  /**
   * the index of the item should receive focus
   * in a `variant="selectedMenu"` it's the first `selected` item
   * otherwise it's the very first item.
   */
  let activeItemIndex = -1;
  // since we inject focus related props into children we have to do a lookahead
  // to check if there is a `selected` item. We're looking for the last `selected`
  // item and use the first valid item as a fallback
  react.Children.forEach(children, (child, index) => {
    if (! /*#__PURE__*/react.isValidElement(child)) {
      if (activeItemIndex === index) {
        activeItemIndex += 1;
        if (activeItemIndex >= children.length) {
          // there are no focusable items within the list.
          activeItemIndex = -1;
        }
      }
      return;
    }
    if (false) {}
    if (!child.props.disabled) {
      if (variant === 'selectedMenu' && child.props.selected) {
        activeItemIndex = index;
      } else if (activeItemIndex === -1) {
        activeItemIndex = index;
      }
    }
    if (activeItemIndex === index && (child.props.disabled || child.props.muiSkipListHighlight || child.type.muiSkipListHighlight)) {
      activeItemIndex += 1;
      if (activeItemIndex >= children.length) {
        // there are no focusable items within the list.
        activeItemIndex = -1;
      }
    }
  });
  const items = react.Children.map(children, (child, index) => {
    if (index === activeItemIndex) {
      const newChildProps = {};
      if (autoFocusItem) {
        newChildProps.autoFocus = true;
      }
      if (child.props.tabIndex === undefined && variant === 'selectedMenu') {
        newChildProps.tabIndex = 0;
      }
      return /*#__PURE__*/react.cloneElement(child, newChildProps);
    }
    return child;
  });
  return /*#__PURE__*/(0,jsx_runtime.jsx)(List_List, (0,esm_extends/* default */.Z)({
    role: "menu",
    ref: handleRef,
    className: className,
    onKeyDown: handleKeyDown,
    tabIndex: autoFocus ? 0 : -1
  }, other, {
    children: items
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const MenuList_MenuList = (MenuList);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/debounce.js
var utils_debounce = __webpack_require__(5036);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/ownerWindow.js
var utils_ownerWindow = __webpack_require__(5329);
// EXTERNAL MODULE: ./node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/index.js
var react_dom = __webpack_require__(7366);
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/config.js
/* harmony default export */ const config = ({
  disabled: false
});
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/utils/reflow.js
var forceReflow = function forceReflow(node) {
  return node.scrollTop;
};
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/Transition.js









var UNMOUNTED = 'unmounted';
var EXITED = 'exited';
var ENTERING = 'entering';
var ENTERED = 'entered';
var EXITING = 'exiting';
/**
 * The Transition component lets you describe a transition from one component
 * state to another _over time_ with a simple declarative API. Most commonly
 * it's used to animate the mounting and unmounting of a component, but can also
 * be used to describe in-place transition states as well.
 *
 * ---
 *
 * **Note**: `Transition` is a platform-agnostic base component. If you're using
 * transitions in CSS, you'll probably want to use
 * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
 * instead. It inherits all the features of `Transition`, but contains
 * additional features necessary to play nice with CSS transitions (hence the
 * name of the component).
 *
 * ---
 *
 * By default the `Transition` component does not alter the behavior of the
 * component it renders, it only tracks "enter" and "exit" states for the
 * components. It's up to you to give meaning and effect to those states. For
 * example we can add styles to a component when it enters or exits:
 *
 * ```jsx
 * import { Transition } from 'react-transition-group';
 *
 * const duration = 300;
 *
 * const defaultStyle = {
 *   transition: `opacity ${duration}ms ease-in-out`,
 *   opacity: 0,
 * }
 *
 * const transitionStyles = {
 *   entering: { opacity: 1 },
 *   entered:  { opacity: 1 },
 *   exiting:  { opacity: 0 },
 *   exited:  { opacity: 0 },
 * };
 *
 * const Fade = ({ in: inProp }) => (
 *   <Transition in={inProp} timeout={duration}>
 *     {state => (
 *       <div style={{
 *         ...defaultStyle,
 *         ...transitionStyles[state]
 *       }}>
 *         I'm a fade Transition!
 *       </div>
 *     )}
 *   </Transition>
 * );
 * ```
 *
 * There are 4 main states a Transition can be in:
 *  - `'entering'`
 *  - `'entered'`
 *  - `'exiting'`
 *  - `'exited'`
 *
 * Transition state is toggled via the `in` prop. When `true` the component
 * begins the "Enter" stage. During this stage, the component will shift from
 * its current transition state, to `'entering'` for the duration of the
 * transition and then to the `'entered'` stage once it's complete. Let's take
 * the following example (we'll use the
 * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
 *
 * ```jsx
 * function App() {
 *   const [inProp, setInProp] = useState(false);
 *   return (
 *     <div>
 *       <Transition in={inProp} timeout={500}>
 *         {state => (
 *           // ...
 *         )}
 *       </Transition>
 *       <button onClick={() => setInProp(true)}>
 *         Click to Enter
 *       </button>
 *     </div>
 *   );
 * }
 * ```
 *
 * When the button is clicked the component will shift to the `'entering'` state
 * and stay there for 500ms (the value of `timeout`) before it finally switches
 * to `'entered'`.
 *
 * When `in` is `false` the same thing happens except the state moves from
 * `'exiting'` to `'exited'`.
 */

var Transition = /*#__PURE__*/function (_React$Component) {
  _inheritsLoose(Transition, _React$Component);
  function Transition(props, context) {
    var _this;
    _this = _React$Component.call(this, props, context) || this;
    var parentGroup = context; // In the context of a TransitionGroup all enters are really appears

    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
    var initialStatus;
    _this.appearStatus = null;
    if (props.in) {
      if (appear) {
        initialStatus = EXITED;
        _this.appearStatus = ENTERING;
      } else {
        initialStatus = ENTERED;
      }
    } else {
      if (props.unmountOnExit || props.mountOnEnter) {
        initialStatus = UNMOUNTED;
      } else {
        initialStatus = EXITED;
      }
    }
    _this.state = {
      status: initialStatus
    };
    _this.nextCallback = null;
    return _this;
  }
  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
    var nextIn = _ref.in;
    if (nextIn && prevState.status === UNMOUNTED) {
      return {
        status: EXITED
      };
    }
    return null;
  } // getSnapshotBeforeUpdate(prevProps) {
  //   let nextStatus = null
  //   if (prevProps !== this.props) {
  //     const { status } = this.state
  //     if (this.props.in) {
  //       if (status !== ENTERING && status !== ENTERED) {
  //         nextStatus = ENTERING
  //       }
  //     } else {
  //       if (status === ENTERING || status === ENTERED) {
  //         nextStatus = EXITING
  //       }
  //     }
  //   }
  //   return { nextStatus }
  // }
  ;

  var _proto = Transition.prototype;
  _proto.componentDidMount = function componentDidMount() {
    this.updateStatus(true, this.appearStatus);
  };
  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
    var nextStatus = null;
    if (prevProps !== this.props) {
      var status = this.state.status;
      if (this.props.in) {
        if (status !== ENTERING && status !== ENTERED) {
          nextStatus = ENTERING;
        }
      } else {
        if (status === ENTERING || status === ENTERED) {
          nextStatus = EXITING;
        }
      }
    }
    this.updateStatus(false, nextStatus);
  };
  _proto.componentWillUnmount = function componentWillUnmount() {
    this.cancelNextCallback();
  };
  _proto.getTimeouts = function getTimeouts() {
    var timeout = this.props.timeout;
    var exit, enter, appear;
    exit = enter = appear = timeout;
    if (timeout != null && typeof timeout !== 'number') {
      exit = timeout.exit;
      enter = timeout.enter; // TODO: remove fallback for next major

      appear = timeout.appear !== undefined ? timeout.appear : enter;
    }
    return {
      exit: exit,
      enter: enter,
      appear: appear
    };
  };
  _proto.updateStatus = function updateStatus(mounting, nextStatus) {
    if (mounting === void 0) {
      mounting = false;
    }
    if (nextStatus !== null) {
      // nextStatus will always be ENTERING or EXITING.
      this.cancelNextCallback();
      if (nextStatus === ENTERING) {
        if (this.props.unmountOnExit || this.props.mountOnEnter) {
          var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749
          // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.
          // To make the animation happen,  we have to separate each rendering and avoid being processed as batched.

          if (node) forceReflow(node);
        }
        this.performEnter(mounting);
      } else {
        this.performExit();
      }
    } else if (this.props.unmountOnExit && this.state.status === EXITED) {
      this.setState({
        status: UNMOUNTED
      });
    }
  };
  _proto.performEnter = function performEnter(mounting) {
    var _this2 = this;
    var enter = this.props.enter;
    var appearing = this.context ? this.context.isMounting : mounting;
    var _ref2 = this.props.nodeRef ? [appearing] : [react_dom.findDOMNode(this), appearing],
      maybeNode = _ref2[0],
      maybeAppearing = _ref2[1];
    var timeouts = this.getTimeouts();
    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
    // if we are mounting and running this it means appear _must_ be set

    if (!mounting && !enter || config.disabled) {
      this.safeSetState({
        status: ENTERED
      }, function () {
        _this2.props.onEntered(maybeNode);
      });
      return;
    }
    this.props.onEnter(maybeNode, maybeAppearing);
    this.safeSetState({
      status: ENTERING
    }, function () {
      _this2.props.onEntering(maybeNode, maybeAppearing);
      _this2.onTransitionEnd(enterTimeout, function () {
        _this2.safeSetState({
          status: ENTERED
        }, function () {
          _this2.props.onEntered(maybeNode, maybeAppearing);
        });
      });
    });
  };
  _proto.performExit = function performExit() {
    var _this3 = this;
    var exit = this.props.exit;
    var timeouts = this.getTimeouts();
    var maybeNode = this.props.nodeRef ? undefined : react_dom.findDOMNode(this); // no exit animation skip right to EXITED

    if (!exit || config.disabled) {
      this.safeSetState({
        status: EXITED
      }, function () {
        _this3.props.onExited(maybeNode);
      });
      return;
    }
    this.props.onExit(maybeNode);
    this.safeSetState({
      status: EXITING
    }, function () {
      _this3.props.onExiting(maybeNode);
      _this3.onTransitionEnd(timeouts.exit, function () {
        _this3.safeSetState({
          status: EXITED
        }, function () {
          _this3.props.onExited(maybeNode);
        });
      });
    });
  };
  _proto.cancelNextCallback = function cancelNextCallback() {
    if (this.nextCallback !== null) {
      this.nextCallback.cancel();
      this.nextCallback = null;
    }
  };
  _proto.safeSetState = function safeSetState(nextState, callback) {
    // This shouldn't be necessary, but there are weird race conditions with
    // setState callbacks and unmounting in testing, so always make sure that
    // we can cancel any pending setState callbacks after we unmount.
    callback = this.setNextCallback(callback);
    this.setState(nextState, callback);
  };
  _proto.setNextCallback = function setNextCallback(callback) {
    var _this4 = this;
    var active = true;
    this.nextCallback = function (event) {
      if (active) {
        active = false;
        _this4.nextCallback = null;
        callback(event);
      }
    };
    this.nextCallback.cancel = function () {
      active = false;
    };
    return this.nextCallback;
  };
  _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {
    this.setNextCallback(handler);
    var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this);
    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
    if (!node || doesNotHaveTimeoutOrListener) {
      setTimeout(this.nextCallback, 0);
      return;
    }
    if (this.props.addEndListener) {
      var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],
        maybeNode = _ref3[0],
        maybeNextCallback = _ref3[1];
      this.props.addEndListener(maybeNode, maybeNextCallback);
    }
    if (timeout != null) {
      setTimeout(this.nextCallback, timeout);
    }
  };
  _proto.render = function render() {
    var status = this.state.status;
    if (status === UNMOUNTED) {
      return null;
    }
    var _this$props = this.props,
      children = _this$props.children,
      _in = _this$props.in,
      _mountOnEnter = _this$props.mountOnEnter,
      _unmountOnExit = _this$props.unmountOnExit,
      _appear = _this$props.appear,
      _enter = _this$props.enter,
      _exit = _this$props.exit,
      _timeout = _this$props.timeout,
      _addEndListener = _this$props.addEndListener,
      _onEnter = _this$props.onEnter,
      _onEntering = _this$props.onEntering,
      _onEntered = _this$props.onEntered,
      _onExit = _this$props.onExit,
      _onExiting = _this$props.onExiting,
      _onExited = _this$props.onExited,
      _nodeRef = _this$props.nodeRef,
      childProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
    return /*#__PURE__*/(
      // allows for nested Transitions
      react.createElement(TransitionGroupContext.Provider, {
        value: null
      }, typeof children === 'function' ? children(status, childProps) : react.cloneElement(react.Children.only(children), childProps))
    );
  };
  return Transition;
}(react.Component);
Transition.contextType = TransitionGroupContext;
Transition.propTypes =  false ? 0 : {}; // Name the function so it is clearer in the documentation

function noop() {}
Transition.defaultProps = {
  in: false,
  mountOnEnter: false,
  unmountOnExit: false,
  appear: false,
  enter: true,
  exit: true,
  onEnter: noop,
  onEntering: noop,
  onEntered: noop,
  onExit: noop,
  onExiting: noop,
  onExited: noop
};
Transition.UNMOUNTED = UNMOUNTED;
Transition.EXITED = EXITED;
Transition.ENTERING = ENTERING;
Transition.ENTERED = ENTERED;
Transition.EXITING = EXITING;
/* harmony default export */ const esm_Transition = (Transition);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/useTheme.js
'use client';





function useTheme_useTheme() {
  const theme = (0,esm_useTheme/* default */.Z)(defaultTheme/* default */.Z);
  if (false) {}
  return theme[identifier/* default */.Z] || theme;
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/transitions/utils.js
const reflow = node => node.scrollTop;
function getTransitionProps(props, options) {
  var _style$transitionDura, _style$transitionTimi;
  const {
    timeout,
    easing,
    style = {}
  } = props;
  return {
    duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,
    easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,
    delay: style.transitionDelay
  };
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Grow/Grow.js
'use client';



const Grow_excluded = ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"];









function getScale(value) {
  return "scale(".concat(value, ", ").concat(value ** 2, ")");
}
const Grow_styles = {
  entering: {
    opacity: 1,
    transform: getScale(1)
  },
  entered: {
    opacity: 1,
    transform: 'none'
  }
};

/*
 TODO v6: remove
 Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.
 */
const isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\/)15(.|_)4/i.test(navigator.userAgent);

/**
 * The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and
 * [Popover](/material-ui/react-popover/) components.
 * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
 */
const Grow = /*#__PURE__*/react.forwardRef(function Grow(props, ref) {
  const {
      addEndListener,
      appear = true,
      children,
      easing,
      in: inProp,
      onEnter,
      onEntered,
      onEntering,
      onExit,
      onExited,
      onExiting,
      style,
      timeout = 'auto',
      // eslint-disable-next-line react/prop-types
      TransitionComponent = esm_Transition
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Grow_excluded);
  const timer = (0,useTimeout/* default */.Z)();
  const autoTimeout = react.useRef();
  const theme = useTheme_useTheme();
  const nodeRef = react.useRef(null);
  const handleRef = (0,useForkRef/* default */.Z)(nodeRef, children.ref, ref);
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
    if (callback) {
      const node = nodeRef.current;

      // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
      if (maybeIsAppearing === undefined) {
        callback(node);
      } else {
        callback(node, maybeIsAppearing);
      }
    }
  };
  const handleEntering = normalizedTransitionCallback(onEntering);
  const handleEnter = normalizedTransitionCallback((node, isAppearing) => {
    reflow(node); // So the animation always start from the start.

    const {
      duration: transitionDuration,
      delay,
      easing: transitionTimingFunction
    } = getTransitionProps({
      style,
      timeout,
      easing
    }, {
      mode: 'enter'
    });
    let duration;
    if (timeout === 'auto') {
      duration = theme.transitions.getAutoHeightDuration(node.clientHeight);
      autoTimeout.current = duration;
    } else {
      duration = transitionDuration;
    }
    node.style.transition = [theme.transitions.create('opacity', {
      duration,
      delay
    }), theme.transitions.create('transform', {
      duration: isWebKit154 ? duration : duration * 0.666,
      delay,
      easing: transitionTimingFunction
    })].join(',');
    if (onEnter) {
      onEnter(node, isAppearing);
    }
  });
  const handleEntered = normalizedTransitionCallback(onEntered);
  const handleExiting = normalizedTransitionCallback(onExiting);
  const handleExit = normalizedTransitionCallback(node => {
    const {
      duration: transitionDuration,
      delay,
      easing: transitionTimingFunction
    } = getTransitionProps({
      style,
      timeout,
      easing
    }, {
      mode: 'exit'
    });
    let duration;
    if (timeout === 'auto') {
      duration = theme.transitions.getAutoHeightDuration(node.clientHeight);
      autoTimeout.current = duration;
    } else {
      duration = transitionDuration;
    }
    node.style.transition = [theme.transitions.create('opacity', {
      duration,
      delay
    }), theme.transitions.create('transform', {
      duration: isWebKit154 ? duration : duration * 0.666,
      delay: isWebKit154 ? delay : delay || duration * 0.333,
      easing: transitionTimingFunction
    })].join(',');
    node.style.opacity = 0;
    node.style.transform = getScale(0.75);
    if (onExit) {
      onExit(node);
    }
  });
  const handleExited = normalizedTransitionCallback(onExited);
  const handleAddEndListener = next => {
    if (timeout === 'auto') {
      timer.start(autoTimeout.current || 0, next);
    }
    if (addEndListener) {
      // Old call signature before `react-transition-group` implemented `nodeRef`
      addEndListener(nodeRef.current, next);
    }
  };
  return /*#__PURE__*/(0,jsx_runtime.jsx)(TransitionComponent, (0,esm_extends/* default */.Z)({
    appear: appear,
    in: inProp,
    nodeRef: nodeRef,
    onEnter: handleEnter,
    onEntered: handleEntered,
    onEntering: handleEntering,
    onExit: handleExit,
    onExited: handleExited,
    onExiting: handleExiting,
    addEndListener: handleAddEndListener,
    timeout: timeout === 'auto' ? null : timeout
  }, other, {
    children: (state, childProps) => {
      return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({
        style: (0,esm_extends/* default */.Z)({
          opacity: 0,
          transform: getScale(0.75),
          visibility: state === 'exited' && !inProp ? 'hidden' : undefined
        }, Grow_styles[state], style, children.props.style),
        ref: handleRef
      }, childProps));
    }
  }));
});
 false ? 0 : void 0;
Grow.muiSupportAuto = true;
/* harmony default export */ const Grow_Grow = (Grow);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/ownerDocument/ownerDocument.js
var ownerDocument_ownerDocument = __webpack_require__(1563);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/useEventCallback/useEventCallback.js
var useEventCallback_useEventCallback = __webpack_require__(9210);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/createChainedFunction/createChainedFunction.js
var createChainedFunction = __webpack_require__(3444);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/unstable_useModal/ModalManager.js

// Is a vertical scrollbar displayed?
function isOverflowing(container) {
  const doc = (0,ownerDocument_ownerDocument/* default */.Z)(container);
  if (doc.body === container) {
    return (0,ownerWindow/* default */.Z)(container).innerWidth > doc.documentElement.clientWidth;
  }
  return container.scrollHeight > container.clientHeight;
}
function ariaHidden(element, show) {
  if (show) {
    element.setAttribute('aria-hidden', 'true');
  } else {
    element.removeAttribute('aria-hidden');
  }
}
function getPaddingRight(element) {
  return parseInt((0,ownerWindow/* default */.Z)(element).getComputedStyle(element).paddingRight, 10) || 0;
}
function isAriaHiddenForbiddenOnElement(element) {
  // The forbidden HTML tags are the ones from ARIA specification that
  // can be children of body and can't have aria-hidden attribute.
  // cf. https://www.w3.org/TR/html-aria/#docconformance
  const forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];
  const isForbiddenTagName = forbiddenTagNames.indexOf(element.tagName) !== -1;
  const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';
  return isForbiddenTagName || isInputHidden;
}
function ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {
  const blacklist = [mountElement, currentElement, ...elementsToExclude];
  [].forEach.call(container.children, element => {
    const isNotExcludedElement = blacklist.indexOf(element) === -1;
    const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);
    if (isNotExcludedElement && isNotForbiddenElement) {
      ariaHidden(element, show);
    }
  });
}
function findIndexOf(items, callback) {
  let idx = -1;
  items.some((item, index) => {
    if (callback(item)) {
      idx = index;
      return true;
    }
    return false;
  });
  return idx;
}
function handleContainer(containerInfo, props) {
  const restoreStyle = [];
  const container = containerInfo.container;
  if (!props.disableScrollLock) {
    if (isOverflowing(container)) {
      // Compute the size before applying overflow hidden to avoid any scroll jumps.
      const scrollbarSize = getScrollbarSize((0,ownerDocument_ownerDocument/* default */.Z)(container));
      restoreStyle.push({
        value: container.style.paddingRight,
        property: 'padding-right',
        el: container
      });
      // Use computed style, here to get the real padding to add our scrollbar width.
      container.style.paddingRight = "".concat(getPaddingRight(container) + scrollbarSize, "px");

      // .mui-fixed is a global helper.
      const fixedElements = (0,ownerDocument_ownerDocument/* default */.Z)(container).querySelectorAll('.mui-fixed');
      [].forEach.call(fixedElements, element => {
        restoreStyle.push({
          value: element.style.paddingRight,
          property: 'padding-right',
          el: element
        });
        element.style.paddingRight = "".concat(getPaddingRight(element) + scrollbarSize, "px");
      });
    }
    let scrollContainer;
    if (container.parentNode instanceof DocumentFragment) {
      scrollContainer = (0,ownerDocument_ownerDocument/* default */.Z)(container).body;
    } else {
      // Support html overflow-y: auto for scroll stability between pages
      // https://css-tricks.com/snippets/css/force-vertical-scrollbar/
      const parent = container.parentElement;
      const containerWindow = (0,ownerWindow/* default */.Z)(container);
      scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;
    }

    // Block the scroll even if no scrollbar is visible to account for mobile keyboard
    // screensize shrink.
    restoreStyle.push({
      value: scrollContainer.style.overflow,
      property: 'overflow',
      el: scrollContainer
    }, {
      value: scrollContainer.style.overflowX,
      property: 'overflow-x',
      el: scrollContainer
    }, {
      value: scrollContainer.style.overflowY,
      property: 'overflow-y',
      el: scrollContainer
    });
    scrollContainer.style.overflow = 'hidden';
  }
  const restore = () => {
    restoreStyle.forEach(_ref => {
      let {
        value,
        el,
        property
      } = _ref;
      if (value) {
        el.style.setProperty(property, value);
      } else {
        el.style.removeProperty(property);
      }
    });
  };
  return restore;
}
function getHiddenSiblings(container) {
  const hiddenSiblings = [];
  [].forEach.call(container.children, element => {
    if (element.getAttribute('aria-hidden') === 'true') {
      hiddenSiblings.push(element);
    }
  });
  return hiddenSiblings;
}
/**
 * @ignore - do not document.
 *
 * Proper state management for containers and the modals in those containers.
 * Simplified, but inspired by react-overlay's ModalManager class.
 * Used by the Modal to ensure proper styling of containers.
 */
class ModalManager {
  constructor() {
    this.containers = void 0;
    this.modals = void 0;
    this.modals = [];
    this.containers = [];
  }
  add(modal, container) {
    let modalIndex = this.modals.indexOf(modal);
    if (modalIndex !== -1) {
      return modalIndex;
    }
    modalIndex = this.modals.length;
    this.modals.push(modal);

    // If the modal we are adding is already in the DOM.
    if (modal.modalRef) {
      ariaHidden(modal.modalRef, false);
    }
    const hiddenSiblings = getHiddenSiblings(container);
    ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);
    const containerIndex = findIndexOf(this.containers, item => item.container === container);
    if (containerIndex !== -1) {
      this.containers[containerIndex].modals.push(modal);
      return modalIndex;
    }
    this.containers.push({
      modals: [modal],
      container,
      restore: null,
      hiddenSiblings
    });
    return modalIndex;
  }
  mount(modal, props) {
    const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);
    const containerInfo = this.containers[containerIndex];
    if (!containerInfo.restore) {
      containerInfo.restore = handleContainer(containerInfo, props);
    }
  }
  remove(modal) {
    let ariaHiddenState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
    const modalIndex = this.modals.indexOf(modal);
    if (modalIndex === -1) {
      return modalIndex;
    }
    const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);
    const containerInfo = this.containers[containerIndex];
    containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);
    this.modals.splice(modalIndex, 1);

    // If that was the last modal in a container, clean up the container.
    if (containerInfo.modals.length === 0) {
      // The modal might be closed before it had the chance to be mounted in the DOM.
      if (containerInfo.restore) {
        containerInfo.restore();
      }
      if (modal.modalRef) {
        // In case the modal wasn't in the DOM yet.
        ariaHidden(modal.modalRef, ariaHiddenState);
      }
      ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);
      this.containers.splice(containerIndex, 1);
    } else {
      // Otherwise make sure the next top modal is visible to a screen reader.
      const nextTop = containerInfo.modals[containerInfo.modals.length - 1];
      // as soon as a modal is adding its modalRef is undefined. it can't set
      // aria-hidden because the dom element doesn't exist either
      // when modal was unmounted before modalRef gets null
      if (nextTop.modalRef) {
        ariaHidden(nextTop.modalRef, false);
      }
    }
    return modalIndex;
  }
  isTopModal(modal) {
    return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;
  }
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/unstable_useModal/useModal.js
'use client';






function getContainer(container) {
  return typeof container === 'function' ? container() : container;
}
function getHasTransition(children) {
  return children ? children.props.hasOwnProperty('in') : false;
}

// A modal manager used to track and manage the state of open Modals.
// Modals don't open on the server so this won't conflict with concurrent requests.
const defaultManager = new ModalManager();
/**
 *
 * Demos:
 *
 * - [Modal](https://mui.com/base-ui/react-modal/#hook)
 *
 * API:
 *
 * - [useModal API](https://mui.com/base-ui/react-modal/hooks-api/#use-modal)
 */
function useModal(parameters) {
  const {
    container,
    disableEscapeKeyDown = false,
    disableScrollLock = false,
    // @ts-ignore internal logic - Base UI supports the manager as a prop too
    manager = defaultManager,
    closeAfterTransition = false,
    onTransitionEnter,
    onTransitionExited,
    children,
    onClose,
    open,
    rootRef
  } = parameters;

  // @ts-ignore internal logic
  const modal = react.useRef({});
  const mountNodeRef = react.useRef(null);
  const modalRef = react.useRef(null);
  const handleRef = (0,useForkRef_useForkRef/* default */.Z)(modalRef, rootRef);
  const [exited, setExited] = react.useState(!open);
  const hasTransition = getHasTransition(children);
  let ariaHiddenProp = true;
  if (parameters['aria-hidden'] === 'false' || parameters['aria-hidden'] === false) {
    ariaHiddenProp = false;
  }
  const getDoc = () => (0,ownerDocument_ownerDocument/* default */.Z)(mountNodeRef.current);
  const getModal = () => {
    modal.current.modalRef = modalRef.current;
    modal.current.mount = mountNodeRef.current;
    return modal.current;
  };
  const handleMounted = () => {
    manager.mount(getModal(), {
      disableScrollLock
    });

    // Fix a bug on Chrome where the scroll isn't initially 0.
    if (modalRef.current) {
      modalRef.current.scrollTop = 0;
    }
  };
  const handleOpen = (0,useEventCallback_useEventCallback/* default */.Z)(() => {
    const resolvedContainer = getContainer(container) || getDoc().body;
    manager.add(getModal(), resolvedContainer);

    // The element was already mounted.
    if (modalRef.current) {
      handleMounted();
    }
  });
  const isTopModal = react.useCallback(() => manager.isTopModal(getModal()), [manager]);
  const handlePortalRef = (0,useEventCallback_useEventCallback/* default */.Z)(node => {
    mountNodeRef.current = node;
    if (!node) {
      return;
    }
    if (open && isTopModal()) {
      handleMounted();
    } else if (modalRef.current) {
      ariaHidden(modalRef.current, ariaHiddenProp);
    }
  });
  const handleClose = react.useCallback(() => {
    manager.remove(getModal(), ariaHiddenProp);
  }, [ariaHiddenProp, manager]);
  react.useEffect(() => {
    return () => {
      handleClose();
    };
  }, [handleClose]);
  react.useEffect(() => {
    if (open) {
      handleOpen();
    } else if (!hasTransition || !closeAfterTransition) {
      handleClose();
    }
  }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);
  const createHandleKeyDown = otherHandlers => event => {
    var _otherHandlers$onKeyD;
    (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);

    // The handler doesn't take event.defaultPrevented into account:
    //
    // event.preventDefault() is meant to stop default behaviors like
    // clicking a checkbox to check it, hitting a button to submit a form,
    // and hitting left arrow to move the cursor in a text input etc.
    // Only special HTML elements have these default behaviors.
    if (event.key !== 'Escape' || event.which === 229 ||
    // Wait until IME is settled.
    !isTopModal()) {
      return;
    }
    if (!disableEscapeKeyDown) {
      // Swallow the event, in case someone is listening for the escape key on the body.
      event.stopPropagation();
      if (onClose) {
        onClose(event, 'escapeKeyDown');
      }
    }
  };
  const createHandleBackdropClick = otherHandlers => event => {
    var _otherHandlers$onClic;
    (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);
    if (event.target !== event.currentTarget) {
      return;
    }
    if (onClose) {
      onClose(event, 'backdropClick');
    }
  };
  const getRootProps = function () {
    let otherHandlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    const propsEventHandlers = extractEventHandlers(parameters);

    // The custom event handlers shouldn't be spread on the root element
    delete propsEventHandlers.onTransitionEnter;
    delete propsEventHandlers.onTransitionExited;
    const externalEventHandlers = (0,esm_extends/* default */.Z)({}, propsEventHandlers, otherHandlers);
    return (0,esm_extends/* default */.Z)({
      role: 'presentation'
    }, externalEventHandlers, {
      onKeyDown: createHandleKeyDown(externalEventHandlers),
      ref: handleRef
    });
  };
  const getBackdropProps = function () {
    let otherHandlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    const externalEventHandlers = otherHandlers;
    return (0,esm_extends/* default */.Z)({
      'aria-hidden': true
    }, externalEventHandlers, {
      onClick: createHandleBackdropClick(externalEventHandlers),
      open
    });
  };
  const getTransitionProps = () => {
    const handleEnter = () => {
      setExited(false);
      if (onTransitionEnter) {
        onTransitionEnter();
      }
    };
    const handleExited = () => {
      setExited(true);
      if (onTransitionExited) {
        onTransitionExited();
      }
      if (closeAfterTransition) {
        handleClose();
      }
    };
    return {
      onEnter: (0,createChainedFunction/* default */.Z)(handleEnter, children == null ? void 0 : children.props.onEnter),
      onExited: (0,createChainedFunction/* default */.Z)(handleExited, children == null ? void 0 : children.props.onExited)
    };
  };
  return {
    getRootProps,
    getBackdropProps,
    getTransitionProps,
    rootRef: handleRef,
    portalRef: handlePortalRef,
    isTopModal,
    exited,
    hasTransition
  };
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/FocusTrap/FocusTrap.js
'use client';

/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */





// Inspired by https://github.com/focus-trap/tabbable
const candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])'].join(',');
function getTabIndex(node) {
  const tabindexAttr = parseInt(node.getAttribute('tabindex') || '', 10);
  if (!Number.isNaN(tabindexAttr)) {
    return tabindexAttr;
  }

  // Browsers do not return `tabIndex` correctly for contentEditable nodes;
  // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2
  // so if they don't have a tabindex attribute specifically set, assume it's 0.
  // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
  //  `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
  //  yet they are still part of the regular tab order; in FF, they get a default
  //  `tabIndex` of 0; since Chrome still puts those elements in the regular tab
  //  order, consider their tab index to be 0.
  if (node.contentEditable === 'true' || (node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO' || node.nodeName === 'DETAILS') && node.getAttribute('tabindex') === null) {
    return 0;
  }
  return node.tabIndex;
}
function isNonTabbableRadio(node) {
  if (node.tagName !== 'INPUT' || node.type !== 'radio') {
    return false;
  }
  if (!node.name) {
    return false;
  }
  const getRadio = selector => node.ownerDocument.querySelector("input[type=\"radio\"]".concat(selector));
  let roving = getRadio("[name=\"".concat(node.name, "\"]:checked"));
  if (!roving) {
    roving = getRadio("[name=\"".concat(node.name, "\"]"));
  }
  return roving !== node;
}
function isNodeMatchingSelectorFocusable(node) {
  if (node.disabled || node.tagName === 'INPUT' && node.type === 'hidden' || isNonTabbableRadio(node)) {
    return false;
  }
  return true;
}
function defaultGetTabbable(root) {
  const regularTabNodes = [];
  const orderedTabNodes = [];
  Array.from(root.querySelectorAll(candidatesSelector)).forEach((node, i) => {
    const nodeTabIndex = getTabIndex(node);
    if (nodeTabIndex === -1 || !isNodeMatchingSelectorFocusable(node)) {
      return;
    }
    if (nodeTabIndex === 0) {
      regularTabNodes.push(node);
    } else {
      orderedTabNodes.push({
        documentOrder: i,
        tabIndex: nodeTabIndex,
        node: node
      });
    }
  });
  return orderedTabNodes.sort((a, b) => a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex).map(a => a.node).concat(regularTabNodes);
}
function defaultIsEnabled() {
  return true;
}

/**
 * Utility component that locks focus inside the component.
 *
 * Demos:
 *
 * - [Focus Trap](https://mui.com/base-ui/react-focus-trap/)
 *
 * API:
 *
 * - [FocusTrap API](https://mui.com/base-ui/react-focus-trap/components-api/#focus-trap)
 */
function FocusTrap(props) {
  const {
    children,
    disableAutoFocus = false,
    disableEnforceFocus = false,
    disableRestoreFocus = false,
    getTabbable = defaultGetTabbable,
    isEnabled = defaultIsEnabled,
    open
  } = props;
  const ignoreNextEnforceFocus = react.useRef(false);
  const sentinelStart = react.useRef(null);
  const sentinelEnd = react.useRef(null);
  const nodeToRestore = react.useRef(null);
  const reactFocusEventTarget = react.useRef(null);
  // This variable is useful when disableAutoFocus is true.
  // It waits for the active element to move into the component to activate.
  const activated = react.useRef(false);
  const rootRef = react.useRef(null);
  // @ts-expect-error TODO upstream fix
  const handleRef = (0,useForkRef_useForkRef/* default */.Z)(children.ref, rootRef);
  const lastKeydown = react.useRef(null);
  react.useEffect(() => {
    // We might render an empty child.
    if (!open || !rootRef.current) {
      return;
    }
    activated.current = !disableAutoFocus;
  }, [disableAutoFocus, open]);
  react.useEffect(() => {
    // We might render an empty child.
    if (!open || !rootRef.current) {
      return;
    }
    const doc = (0,ownerDocument_ownerDocument/* default */.Z)(rootRef.current);
    if (!rootRef.current.contains(doc.activeElement)) {
      if (!rootRef.current.hasAttribute('tabIndex')) {
        if (false) {}
        rootRef.current.setAttribute('tabIndex', '-1');
      }
      if (activated.current) {
        rootRef.current.focus();
      }
    }
    return () => {
      // restoreLastFocus()
      if (!disableRestoreFocus) {
        // In IE11 it is possible for document.activeElement to be null resulting
        // in nodeToRestore.current being null.
        // Not all elements in IE11 have a focus method.
        // Once IE11 support is dropped the focus() call can be unconditional.
        if (nodeToRestore.current && nodeToRestore.current.focus) {
          ignoreNextEnforceFocus.current = true;
          nodeToRestore.current.focus();
        }
        nodeToRestore.current = null;
      }
    };
    // Missing `disableRestoreFocus` which is fine.
    // We don't support changing that prop on an open FocusTrap
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, [open]);
  react.useEffect(() => {
    // We might render an empty child.
    if (!open || !rootRef.current) {
      return;
    }
    const doc = (0,ownerDocument_ownerDocument/* default */.Z)(rootRef.current);
    const loopFocus = nativeEvent => {
      lastKeydown.current = nativeEvent;
      if (disableEnforceFocus || !isEnabled() || nativeEvent.key !== 'Tab') {
        return;
      }

      // Make sure the next tab starts from the right place.
      // doc.activeElement refers to the origin.
      if (doc.activeElement === rootRef.current && nativeEvent.shiftKey) {
        // We need to ignore the next contain as
        // it will try to move the focus back to the rootRef element.
        ignoreNextEnforceFocus.current = true;
        if (sentinelEnd.current) {
          sentinelEnd.current.focus();
        }
      }
    };
    const contain = () => {
      const rootElement = rootRef.current;

      // Cleanup functions are executed lazily in React 17.
      // Contain can be called between the component being unmounted and its cleanup function being run.
      if (rootElement === null) {
        return;
      }
      if (!doc.hasFocus() || !isEnabled() || ignoreNextEnforceFocus.current) {
        ignoreNextEnforceFocus.current = false;
        return;
      }

      // The focus is already inside
      if (rootElement.contains(doc.activeElement)) {
        return;
      }

      // The disableEnforceFocus is set and the focus is outside of the focus trap (and sentinel nodes)
      if (disableEnforceFocus && doc.activeElement !== sentinelStart.current && doc.activeElement !== sentinelEnd.current) {
        return;
      }

      // if the focus event is not coming from inside the children's react tree, reset the refs
      if (doc.activeElement !== reactFocusEventTarget.current) {
        reactFocusEventTarget.current = null;
      } else if (reactFocusEventTarget.current !== null) {
        return;
      }
      if (!activated.current) {
        return;
      }
      let tabbable = [];
      if (doc.activeElement === sentinelStart.current || doc.activeElement === sentinelEnd.current) {
        tabbable = getTabbable(rootRef.current);
      }

      // one of the sentinel nodes was focused, so move the focus
      // to the first/last tabbable element inside the focus trap
      if (tabbable.length > 0) {
        var _lastKeydown$current, _lastKeydown$current2;
        const isShiftTab = Boolean(((_lastKeydown$current = lastKeydown.current) == null ? void 0 : _lastKeydown$current.shiftKey) && ((_lastKeydown$current2 = lastKeydown.current) == null ? void 0 : _lastKeydown$current2.key) === 'Tab');
        const focusNext = tabbable[0];
        const focusPrevious = tabbable[tabbable.length - 1];
        if (typeof focusNext !== 'string' && typeof focusPrevious !== 'string') {
          if (isShiftTab) {
            focusPrevious.focus();
          } else {
            focusNext.focus();
          }
        }
        // no tabbable elements in the trap focus or the focus was outside of the focus trap
      } else {
        rootElement.focus();
      }
    };
    doc.addEventListener('focusin', contain);
    doc.addEventListener('keydown', loopFocus, true);

    // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area.
    // for example https://bugzilla.mozilla.org/show_bug.cgi?id=559561.
    // Instead, we can look if the active element was restored on the BODY element.
    //
    // The whatwg spec defines how the browser should behave but does not explicitly mention any events:
    // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.
    const interval = setInterval(() => {
      if (doc.activeElement && doc.activeElement.tagName === 'BODY') {
        contain();
      }
    }, 50);
    return () => {
      clearInterval(interval);
      doc.removeEventListener('focusin', contain);
      doc.removeEventListener('keydown', loopFocus, true);
    };
  }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open, getTabbable]);
  const onFocus = event => {
    if (nodeToRestore.current === null) {
      nodeToRestore.current = event.relatedTarget;
    }
    activated.current = true;
    reactFocusEventTarget.current = event.target;
    const childrenPropsHandler = children.props.onFocus;
    if (childrenPropsHandler) {
      childrenPropsHandler(event);
    }
  };
  const handleFocusSentinel = event => {
    if (nodeToRestore.current === null) {
      nodeToRestore.current = event.relatedTarget;
    }
    activated.current = true;
  };
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
    children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
      tabIndex: open ? 0 : -1,
      onFocus: handleFocusSentinel,
      ref: sentinelStart,
      "data-testid": "sentinelStart"
    }), /*#__PURE__*/react.cloneElement(children, {
      ref: handleRef,
      onFocus
    }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
      tabIndex: open ? 0 : -1,
      onFocus: handleFocusSentinel,
      ref: sentinelEnd,
      "data-testid": "sentinelEnd"
    })]
  });
}
 false ? 0 : void 0;
if (false) {}

// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/setRef/setRef.js
var setRef = __webpack_require__(9109);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/base/Portal/Portal.js
'use client';






function Portal_getContainer(container) {
  return typeof container === 'function' ? container() : container;
}

/**
 * Portals provide a first-class way to render children into a DOM node
 * that exists outside the DOM hierarchy of the parent component.
 *
 * Demos:
 *
 * - [Portal](https://mui.com/base-ui/react-portal/)
 *
 * API:
 *
 * - [Portal API](https://mui.com/base-ui/react-portal/components-api/#portal)
 */
const Portal = /*#__PURE__*/react.forwardRef(function Portal(props, forwardedRef) {
  const {
    children,
    container,
    disablePortal = false
  } = props;
  const [mountNode, setMountNode] = react.useState(null);
  // @ts-expect-error TODO upstream fix
  const handleRef = (0,useForkRef_useForkRef/* default */.Z)( /*#__PURE__*/react.isValidElement(children) ? children.ref : null, forwardedRef);
  (0,useEnhancedEffect_useEnhancedEffect/* default */.Z)(() => {
    if (!disablePortal) {
      setMountNode(Portal_getContainer(container) || document.body);
    }
  }, [container, disablePortal]);
  (0,useEnhancedEffect_useEnhancedEffect/* default */.Z)(() => {
    if (mountNode && !disablePortal) {
      (0,setRef/* default */.Z)(forwardedRef, mountNode);
      return () => {
        (0,setRef/* default */.Z)(forwardedRef, null);
      };
    }
    return undefined;
  }, [forwardedRef, mountNode, disablePortal]);
  if (disablePortal) {
    if ( /*#__PURE__*/react.isValidElement(children)) {
      const newProps = {
        ref: handleRef
      };
      return /*#__PURE__*/react.cloneElement(children, newProps);
    }
    return /*#__PURE__*/(0,jsx_runtime.jsx)(react.Fragment, {
      children: children
    });
  }
  return /*#__PURE__*/(0,jsx_runtime.jsx)(react.Fragment, {
    children: mountNode ? /*#__PURE__*/react_dom.createPortal(children, mountNode) : mountNode
  });
});
 false ? 0 : void 0;
if (false) {}

;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Fade/Fade.js
'use client';



const Fade_excluded = ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"];








const Fade_styles = {
  entering: {
    opacity: 1
  },
  entered: {
    opacity: 1
  }
};

/**
 * The Fade transition is used by the [Modal](/material-ui/react-modal/) component.
 * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
 */
const Fade = /*#__PURE__*/react.forwardRef(function Fade(props, ref) {
  const theme = useTheme_useTheme();
  const defaultTimeout = {
    enter: theme.transitions.duration.enteringScreen,
    exit: theme.transitions.duration.leavingScreen
  };
  const {
      addEndListener,
      appear = true,
      children,
      easing,
      in: inProp,
      onEnter,
      onEntered,
      onEntering,
      onExit,
      onExited,
      onExiting,
      style,
      timeout = defaultTimeout,
      // eslint-disable-next-line react/prop-types
      TransitionComponent = esm_Transition
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Fade_excluded);
  const enableStrictModeCompat = true;
  const nodeRef = react.useRef(null);
  const handleRef = (0,useForkRef/* default */.Z)(nodeRef, children.ref, ref);
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
    if (callback) {
      const node = nodeRef.current;

      // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
      if (maybeIsAppearing === undefined) {
        callback(node);
      } else {
        callback(node, maybeIsAppearing);
      }
    }
  };
  const handleEntering = normalizedTransitionCallback(onEntering);
  const handleEnter = normalizedTransitionCallback((node, isAppearing) => {
    reflow(node); // So the animation always start from the start.

    const transitionProps = getTransitionProps({
      style,
      timeout,
      easing
    }, {
      mode: 'enter'
    });
    node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
    node.style.transition = theme.transitions.create('opacity', transitionProps);
    if (onEnter) {
      onEnter(node, isAppearing);
    }
  });
  const handleEntered = normalizedTransitionCallback(onEntered);
  const handleExiting = normalizedTransitionCallback(onExiting);
  const handleExit = normalizedTransitionCallback(node => {
    const transitionProps = getTransitionProps({
      style,
      timeout,
      easing
    }, {
      mode: 'exit'
    });
    node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
    node.style.transition = theme.transitions.create('opacity', transitionProps);
    if (onExit) {
      onExit(node);
    }
  });
  const handleExited = normalizedTransitionCallback(onExited);
  const handleAddEndListener = next => {
    if (addEndListener) {
      // Old call signature before `react-transition-group` implemented `nodeRef`
      addEndListener(nodeRef.current, next);
    }
  };
  return /*#__PURE__*/(0,jsx_runtime.jsx)(TransitionComponent, (0,esm_extends/* default */.Z)({
    appear: appear,
    in: inProp,
    nodeRef: enableStrictModeCompat ? nodeRef : undefined,
    onEnter: handleEnter,
    onEntered: handleEntered,
    onEntering: handleEntering,
    onExit: handleExit,
    onExited: handleExited,
    onExiting: handleExiting,
    addEndListener: handleAddEndListener,
    timeout: timeout
  }, other, {
    children: (state, childProps) => {
      return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({
        style: (0,esm_extends/* default */.Z)({
          opacity: 0,
          visibility: state === 'exited' && !inProp ? 'hidden' : undefined
        }, Fade_styles[state], style, children.props.style),
        ref: handleRef
      }, childProps));
    }
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const Fade_Fade = (Fade);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Backdrop/backdropClasses.js


function getBackdropUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiBackdrop', slot);
}
const backdropClasses = (0,generateUtilityClasses/* default */.Z)('MuiBackdrop', ['root', 'invisible']);
/* harmony default export */ const Backdrop_backdropClasses = ((/* unused pure expression or super */ null && (backdropClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Backdrop/Backdrop.js
'use client';



const Backdrop_excluded = ["children", "className", "component", "components", "componentsProps", "invisible", "open", "slotProps", "slots", "TransitionComponent", "transitionDuration"];









const Backdrop_useUtilityClasses = ownerState => {
  const {
    classes,
    invisible
  } = ownerState;
  const slots = {
    root: ['root', invisible && 'invisible']
  };
  return (0,composeClasses/* default */.Z)(slots, getBackdropUtilityClass, classes);
};
const BackdropRoot = (0,styled/* default */.ZP)('div', {
  name: 'MuiBackdrop',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, ownerState.invisible && styles.invisible];
  }
})(_ref2 => {
  let {
    ownerState
  } = _ref2;
  return (0,esm_extends/* default */.Z)({
    position: 'fixed',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    right: 0,
    bottom: 0,
    top: 0,
    left: 0,
    backgroundColor: 'rgba(0, 0, 0, 0.5)',
    WebkitTapHighlightColor: 'transparent'
  }, ownerState.invisible && {
    backgroundColor: 'transparent'
  });
});
const Backdrop = /*#__PURE__*/react.forwardRef(function Backdrop(inProps, ref) {
  var _slotProps$root, _ref, _slots$root;
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiBackdrop'
  });
  const {
      children,
      className,
      component = 'div',
      components = {},
      componentsProps = {},
      invisible = false,
      open,
      slotProps = {},
      slots = {},
      TransitionComponent = Fade_Fade,
      transitionDuration
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Backdrop_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    component,
    invisible
  });
  const classes = Backdrop_useUtilityClasses(ownerState);
  const rootSlotProps = (_slotProps$root = slotProps.root) != null ? _slotProps$root : componentsProps.root;
  return /*#__PURE__*/(0,jsx_runtime.jsx)(TransitionComponent, (0,esm_extends/* default */.Z)({
    in: open,
    timeout: transitionDuration
  }, other, {
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(BackdropRoot, (0,esm_extends/* default */.Z)({
      "aria-hidden": true
    }, rootSlotProps, {
      as: (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : component,
      className: (0,clsx/* default */.Z)(classes.root, className, rootSlotProps == null ? void 0 : rootSlotProps.className),
      ownerState: (0,esm_extends/* default */.Z)({}, ownerState, rootSlotProps == null ? void 0 : rootSlotProps.ownerState),
      classes: classes,
      ref: ref,
      children: children
    }))
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const Backdrop_Backdrop = (Backdrop);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Modal/modalClasses.js


function getModalUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiModal', slot);
}
const modalClasses = (0,generateUtilityClasses/* default */.Z)('MuiModal', ['root', 'hidden', 'backdrop']);
/* harmony default export */ const Modal_modalClasses = ((/* unused pure expression or super */ null && (modalClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Modal/Modal.js
'use client';



const Modal_excluded = ["BackdropComponent", "BackdropProps", "classes", "className", "closeAfterTransition", "children", "container", "component", "components", "componentsProps", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "onBackdropClick", "onClose", "onTransitionEnter", "onTransitionExited", "open", "slotProps", "slots", "theme"];
















const Modal_useUtilityClasses = ownerState => {
  const {
    open,
    exited,
    classes
  } = ownerState;
  const slots = {
    root: ['root', !open && exited && 'hidden'],
    backdrop: ['backdrop']
  };
  return (0,composeClasses/* default */.Z)(slots, getModalUtilityClass, classes);
};
const ModalRoot = (0,styled/* default */.ZP)('div', {
  name: 'MuiModal',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, !ownerState.open && ownerState.exited && styles.hidden];
  }
})(_ref3 => {
  let {
    theme,
    ownerState
  } = _ref3;
  return (0,esm_extends/* default */.Z)({
    position: 'fixed',
    zIndex: (theme.vars || theme).zIndex.modal,
    right: 0,
    bottom: 0,
    top: 0,
    left: 0
  }, !ownerState.open && ownerState.exited && {
    visibility: 'hidden'
  });
});
const ModalBackdrop = (0,styled/* default */.ZP)(Backdrop_Backdrop, {
  name: 'MuiModal',
  slot: 'Backdrop',
  overridesResolver: (props, styles) => {
    return styles.backdrop;
  }
})({
  zIndex: -1
});

/**
 * Modal is a lower-level construct that is leveraged by the following components:
 *
 * - [Dialog](/material-ui/api/dialog/)
 * - [Drawer](/material-ui/api/drawer/)
 * - [Menu](/material-ui/api/menu/)
 * - [Popover](/material-ui/api/popover/)
 *
 * If you are creating a modal dialog, you probably want to use the [Dialog](/material-ui/api/dialog/) component
 * rather than directly using Modal.
 *
 * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).
 */
const Modal = /*#__PURE__*/react.forwardRef(function Modal(inProps, ref) {
  var _ref, _slots$root, _ref2, _slots$backdrop, _slotProps$root, _slotProps$backdrop;
  const props = (0,useThemeProps/* default */.Z)({
    name: 'MuiModal',
    props: inProps
  });
  const {
      BackdropComponent = ModalBackdrop,
      BackdropProps,
      className,
      closeAfterTransition = false,
      children,
      container,
      component,
      components = {},
      componentsProps = {},
      disableAutoFocus = false,
      disableEnforceFocus = false,
      disableEscapeKeyDown = false,
      disablePortal = false,
      disableRestoreFocus = false,
      disableScrollLock = false,
      hideBackdrop = false,
      keepMounted = false,
      onBackdropClick,
      open,
      slotProps,
      slots
      // eslint-disable-next-line react/prop-types
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Modal_excluded);
  const propsWithDefaults = (0,esm_extends/* default */.Z)({}, props, {
    closeAfterTransition,
    disableAutoFocus,
    disableEnforceFocus,
    disableEscapeKeyDown,
    disablePortal,
    disableRestoreFocus,
    disableScrollLock,
    hideBackdrop,
    keepMounted
  });
  const {
    getRootProps,
    getBackdropProps,
    getTransitionProps,
    portalRef,
    isTopModal,
    exited,
    hasTransition
  } = useModal((0,esm_extends/* default */.Z)({}, propsWithDefaults, {
    rootRef: ref
  }));
  const ownerState = (0,esm_extends/* default */.Z)({}, propsWithDefaults, {
    exited
  });
  const classes = Modal_useUtilityClasses(ownerState);
  const childProps = {};
  if (children.props.tabIndex === undefined) {
    childProps.tabIndex = '-1';
  }

  // It's a Transition like component
  if (hasTransition) {
    const {
      onEnter,
      onExited
    } = getTransitionProps();
    childProps.onEnter = onEnter;
    childProps.onExited = onExited;
  }
  const RootSlot = (_ref = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : components.Root) != null ? _ref : ModalRoot;
  const BackdropSlot = (_ref2 = (_slots$backdrop = slots == null ? void 0 : slots.backdrop) != null ? _slots$backdrop : components.Backdrop) != null ? _ref2 : BackdropComponent;
  const rootSlotProps = (_slotProps$root = slotProps == null ? void 0 : slotProps.root) != null ? _slotProps$root : componentsProps.root;
  const backdropSlotProps = (_slotProps$backdrop = slotProps == null ? void 0 : slotProps.backdrop) != null ? _slotProps$backdrop : componentsProps.backdrop;
  const rootProps = useSlotProps({
    elementType: RootSlot,
    externalSlotProps: rootSlotProps,
    externalForwardedProps: other,
    getSlotProps: getRootProps,
    additionalProps: {
      ref,
      as: component
    },
    ownerState,
    className: (0,clsx/* default */.Z)(className, rootSlotProps == null ? void 0 : rootSlotProps.className, classes == null ? void 0 : classes.root, !ownerState.open && ownerState.exited && (classes == null ? void 0 : classes.hidden))
  });
  const backdropProps = useSlotProps({
    elementType: BackdropSlot,
    externalSlotProps: backdropSlotProps,
    additionalProps: BackdropProps,
    getSlotProps: otherHandlers => {
      return getBackdropProps((0,esm_extends/* default */.Z)({}, otherHandlers, {
        onClick: e => {
          if (onBackdropClick) {
            onBackdropClick(e);
          }
          if (otherHandlers != null && otherHandlers.onClick) {
            otherHandlers.onClick(e);
          }
        }
      }));
    },
    className: (0,clsx/* default */.Z)(backdropSlotProps == null ? void 0 : backdropSlotProps.className, BackdropProps == null ? void 0 : BackdropProps.className, classes == null ? void 0 : classes.backdrop),
    ownerState
  });
  if (!keepMounted && !open && (!hasTransition || exited)) {
    return null;
  }
  return /*#__PURE__*/(0,jsx_runtime.jsx)(Portal, {
    ref: portalRef,
    container: container,
    disablePortal: disablePortal,
    children: /*#__PURE__*/(0,jsx_runtime.jsxs)(RootSlot, (0,esm_extends/* default */.Z)({}, rootProps, {
      children: [!hideBackdrop && BackdropComponent ? /*#__PURE__*/(0,jsx_runtime.jsx)(BackdropSlot, (0,esm_extends/* default */.Z)({}, backdropProps)) : null, /*#__PURE__*/(0,jsx_runtime.jsx)(FocusTrap, {
        disableEnforceFocus: disableEnforceFocus,
        disableAutoFocus: disableAutoFocus,
        disableRestoreFocus: disableRestoreFocus,
        isEnabled: isTopModal,
        open: open,
        children: /*#__PURE__*/react.cloneElement(children, childProps)
      })]
    }))
  });
});
 false ? 0 : void 0;
/* harmony default export */ const Modal_Modal = (Modal);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Popover/popoverClasses.js


function getPopoverUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiPopover', slot);
}
const popoverClasses = (0,generateUtilityClasses/* default */.Z)('MuiPopover', ['root', 'paper']);
/* harmony default export */ const Popover_popoverClasses = ((/* unused pure expression or super */ null && (popoverClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Popover/Popover.js
'use client';



const Popover_excluded = ["onEntering"],
  Popover_excluded2 = ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "className", "container", "elevation", "marginThreshold", "open", "PaperProps", "slots", "slotProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps", "disableScrollLock"],
  Popover_excluded3 = ["slotProps"];





















function getOffsetTop(rect, vertical) {
  let offset = 0;
  if (typeof vertical === 'number') {
    offset = vertical;
  } else if (vertical === 'center') {
    offset = rect.height / 2;
  } else if (vertical === 'bottom') {
    offset = rect.height;
  }
  return offset;
}
function getOffsetLeft(rect, horizontal) {
  let offset = 0;
  if (typeof horizontal === 'number') {
    offset = horizontal;
  } else if (horizontal === 'center') {
    offset = rect.width / 2;
  } else if (horizontal === 'right') {
    offset = rect.width;
  }
  return offset;
}
function getTransformOriginValue(transformOrigin) {
  return [transformOrigin.horizontal, transformOrigin.vertical].map(n => typeof n === 'number' ? "".concat(n, "px") : n).join(' ');
}
function resolveAnchorEl(anchorEl) {
  return typeof anchorEl === 'function' ? anchorEl() : anchorEl;
}
const Popover_useUtilityClasses = ownerState => {
  const {
    classes
  } = ownerState;
  const slots = {
    root: ['root'],
    paper: ['paper']
  };
  return (0,composeClasses/* default */.Z)(slots, getPopoverUtilityClass, classes);
};
const PopoverRoot = (0,styled/* default */.ZP)(Modal_Modal, {
  name: 'MuiPopover',
  slot: 'Root',
  overridesResolver: (props, styles) => styles.root
})({});
const PopoverPaper = (0,styled/* default */.ZP)(Paper_Paper, {
  name: 'MuiPopover',
  slot: 'Paper',
  overridesResolver: (props, styles) => styles.paper
})({
  position: 'absolute',
  overflowY: 'auto',
  overflowX: 'hidden',
  // So we see the popover when it's empty.
  // It's most likely on issue on userland.
  minWidth: 16,
  minHeight: 16,
  maxWidth: 'calc(100% - 32px)',
  maxHeight: 'calc(100% - 32px)',
  // We disable the focus ring for mouse, touch and keyboard users.
  outline: 0
});
const Popover = /*#__PURE__*/react.forwardRef(function Popover(inProps, ref) {
  var _slotProps$paper, _slots$root, _slots$paper;
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiPopover'
  });
  const {
      action,
      anchorEl,
      anchorOrigin = {
        vertical: 'top',
        horizontal: 'left'
      },
      anchorPosition,
      anchorReference = 'anchorEl',
      children,
      className,
      container: containerProp,
      elevation = 8,
      marginThreshold = 16,
      open,
      PaperProps: PaperPropsProp = {},
      slots,
      slotProps,
      transformOrigin = {
        vertical: 'top',
        horizontal: 'left'
      },
      TransitionComponent = Grow_Grow,
      transitionDuration: transitionDurationProp = 'auto',
      TransitionProps: {
        onEntering
      } = {},
      disableScrollLock = false
    } = props,
    TransitionProps = (0,objectWithoutPropertiesLoose/* default */.Z)(props.TransitionProps, Popover_excluded),
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Popover_excluded2);
  const externalPaperSlotProps = (_slotProps$paper = slotProps == null ? void 0 : slotProps.paper) != null ? _slotProps$paper : PaperPropsProp;
  const paperRef = react.useRef();
  const handlePaperRef = (0,useForkRef/* default */.Z)(paperRef, externalPaperSlotProps.ref);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    anchorOrigin,
    anchorReference,
    elevation,
    marginThreshold,
    externalPaperSlotProps,
    transformOrigin,
    TransitionComponent,
    transitionDuration: transitionDurationProp,
    TransitionProps
  });
  const classes = Popover_useUtilityClasses(ownerState);

  // Returns the top/left offset of the position
  // to attach to on the anchor element (or body if none is provided)
  const getAnchorOffset = react.useCallback(() => {
    if (anchorReference === 'anchorPosition') {
      if (false) {}
      return anchorPosition;
    }
    const resolvedAnchorEl = resolveAnchorEl(anchorEl);

    // If an anchor element wasn't provided, just use the parent body element of this Popover
    const anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : (0,ownerDocument/* default */.Z)(paperRef.current).body;
    const anchorRect = anchorElement.getBoundingClientRect();
    if (false) {}
    return {
      top: anchorRect.top + getOffsetTop(anchorRect, anchorOrigin.vertical),
      left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)
    };
  }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]);

  // Returns the base transform origin using the element
  const getTransformOrigin = react.useCallback(elemRect => {
    return {
      vertical: getOffsetTop(elemRect, transformOrigin.vertical),
      horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)
    };
  }, [transformOrigin.horizontal, transformOrigin.vertical]);
  const getPositioningStyle = react.useCallback(element => {
    const elemRect = {
      width: element.offsetWidth,
      height: element.offsetHeight
    };

    // Get the transform origin point on the element itself
    const elemTransformOrigin = getTransformOrigin(elemRect);
    if (anchorReference === 'none') {
      return {
        top: null,
        left: null,
        transformOrigin: getTransformOriginValue(elemTransformOrigin)
      };
    }

    // Get the offset of the anchoring element
    const anchorOffset = getAnchorOffset();

    // Calculate element positioning
    let top = anchorOffset.top - elemTransformOrigin.vertical;
    let left = anchorOffset.left - elemTransformOrigin.horizontal;
    const bottom = top + elemRect.height;
    const right = left + elemRect.width;

    // Use the parent window of the anchorEl if provided
    const containerWindow = (0,utils_ownerWindow/* default */.Z)(resolveAnchorEl(anchorEl));

    // Window thresholds taking required margin into account
    const heightThreshold = containerWindow.innerHeight - marginThreshold;
    const widthThreshold = containerWindow.innerWidth - marginThreshold;

    // Check if the vertical axis needs shifting
    if (marginThreshold !== null && top < marginThreshold) {
      const diff = top - marginThreshold;
      top -= diff;
      elemTransformOrigin.vertical += diff;
    } else if (marginThreshold !== null && bottom > heightThreshold) {
      const diff = bottom - heightThreshold;
      top -= diff;
      elemTransformOrigin.vertical += diff;
    }
    if (false) {}

    // Check if the horizontal axis needs shifting
    if (marginThreshold !== null && left < marginThreshold) {
      const diff = left - marginThreshold;
      left -= diff;
      elemTransformOrigin.horizontal += diff;
    } else if (right > widthThreshold) {
      const diff = right - widthThreshold;
      left -= diff;
      elemTransformOrigin.horizontal += diff;
    }
    return {
      top: "".concat(Math.round(top), "px"),
      left: "".concat(Math.round(left), "px"),
      transformOrigin: getTransformOriginValue(elemTransformOrigin)
    };
  }, [anchorEl, anchorReference, getAnchorOffset, getTransformOrigin, marginThreshold]);
  const [isPositioned, setIsPositioned] = react.useState(open);
  const setPositioningStyles = react.useCallback(() => {
    const element = paperRef.current;
    if (!element) {
      return;
    }
    const positioning = getPositioningStyle(element);
    if (positioning.top !== null) {
      element.style.top = positioning.top;
    }
    if (positioning.left !== null) {
      element.style.left = positioning.left;
    }
    element.style.transformOrigin = positioning.transformOrigin;
    setIsPositioned(true);
  }, [getPositioningStyle]);
  react.useEffect(() => {
    if (disableScrollLock) {
      window.addEventListener('scroll', setPositioningStyles);
    }
    return () => window.removeEventListener('scroll', setPositioningStyles);
  }, [anchorEl, disableScrollLock, setPositioningStyles]);
  const handleEntering = (element, isAppearing) => {
    if (onEntering) {
      onEntering(element, isAppearing);
    }
    setPositioningStyles();
  };
  const handleExited = () => {
    setIsPositioned(false);
  };
  react.useEffect(() => {
    if (open) {
      setPositioningStyles();
    }
  });
  react.useImperativeHandle(action, () => open ? {
    updatePosition: () => {
      setPositioningStyles();
    }
  } : null, [open, setPositioningStyles]);
  react.useEffect(() => {
    if (!open) {
      return undefined;
    }
    const handleResize = (0,utils_debounce/* default */.Z)(() => {
      setPositioningStyles();
    });
    const containerWindow = (0,utils_ownerWindow/* default */.Z)(anchorEl);
    containerWindow.addEventListener('resize', handleResize);
    return () => {
      handleResize.clear();
      containerWindow.removeEventListener('resize', handleResize);
    };
  }, [anchorEl, open, setPositioningStyles]);
  let transitionDuration = transitionDurationProp;
  if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {
    transitionDuration = undefined;
  }

  // If the container prop is provided, use that
  // If the anchorEl prop is provided, use its parent body element as the container
  // If neither are provided let the Modal take care of choosing the container
  const container = containerProp || (anchorEl ? (0,ownerDocument/* default */.Z)(resolveAnchorEl(anchorEl)).body : undefined);
  const RootSlot = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : PopoverRoot;
  const PaperSlot = (_slots$paper = slots == null ? void 0 : slots.paper) != null ? _slots$paper : PopoverPaper;
  const paperProps = useSlotProps({
    elementType: PaperSlot,
    externalSlotProps: (0,esm_extends/* default */.Z)({}, externalPaperSlotProps, {
      style: isPositioned ? externalPaperSlotProps.style : (0,esm_extends/* default */.Z)({}, externalPaperSlotProps.style, {
        opacity: 0
      })
    }),
    additionalProps: {
      elevation,
      ref: handlePaperRef
    },
    ownerState,
    className: (0,clsx/* default */.Z)(classes.paper, externalPaperSlotProps == null ? void 0 : externalPaperSlotProps.className)
  });
  const _useSlotProps = useSlotProps({
      elementType: RootSlot,
      externalSlotProps: (slotProps == null ? void 0 : slotProps.root) || {},
      externalForwardedProps: other,
      additionalProps: {
        ref,
        slotProps: {
          backdrop: {
            invisible: true
          }
        },
        container,
        open
      },
      ownerState,
      className: (0,clsx/* default */.Z)(classes.root, className)
    }),
    {
      slotProps: rootSlotPropsProp
    } = _useSlotProps,
    rootProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_useSlotProps, Popover_excluded3);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(RootSlot, (0,esm_extends/* default */.Z)({}, rootProps, !isHostComponent(RootSlot) && {
    slotProps: rootSlotPropsProp,
    disableScrollLock
  }, {
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(TransitionComponent, (0,esm_extends/* default */.Z)({
      appear: true,
      in: open,
      onEntering: handleEntering,
      onExited: handleExited,
      timeout: transitionDuration
    }, TransitionProps, {
      children: /*#__PURE__*/(0,jsx_runtime.jsx)(PaperSlot, (0,esm_extends/* default */.Z)({}, paperProps, {
        children: children
      }))
    }))
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const Popover_Popover = (Popover);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Menu/menuClasses.js


function getMenuUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiMenu', slot);
}
const menuClasses = (0,generateUtilityClasses/* default */.Z)('MuiMenu', ['root', 'paper', 'list']);
/* harmony default export */ const Menu_menuClasses = ((/* unused pure expression or super */ null && (menuClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Menu/Menu.js
'use client';



const Menu_excluded = ["onEntering"],
  Menu_excluded2 = ["autoFocus", "children", "className", "disableAutoFocusItem", "MenuListProps", "onClose", "open", "PaperProps", "PopoverClasses", "transitionDuration", "TransitionProps", "variant", "slots", "slotProps"];














const RTL_ORIGIN = {
  vertical: 'top',
  horizontal: 'right'
};
const LTR_ORIGIN = {
  vertical: 'top',
  horizontal: 'left'
};
const Menu_useUtilityClasses = ownerState => {
  const {
    classes
  } = ownerState;
  const slots = {
    root: ['root'],
    paper: ['paper'],
    list: ['list']
  };
  return (0,composeClasses/* default */.Z)(slots, getMenuUtilityClass, classes);
};
const MenuRoot = (0,styled/* default */.ZP)(Popover_Popover, {
  shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) || prop === 'classes',
  name: 'MuiMenu',
  slot: 'Root',
  overridesResolver: (props, styles) => styles.root
})({});
const MenuPaper = (0,styled/* default */.ZP)(PopoverPaper, {
  name: 'MuiMenu',
  slot: 'Paper',
  overridesResolver: (props, styles) => styles.paper
})({
  // specZ: The maximum height of a simple menu should be one or more rows less than the view
  // height. This ensures a tappable area outside of the simple menu with which to dismiss
  // the menu.
  maxHeight: 'calc(100% - 96px)',
  // Add iOS momentum scrolling for iOS < 13.0
  WebkitOverflowScrolling: 'touch'
});
const MenuMenuList = (0,styled/* default */.ZP)(MenuList_MenuList, {
  name: 'MuiMenu',
  slot: 'List',
  overridesResolver: (props, styles) => styles.list
})({
  // We disable the focus ring for mouse, touch and keyboard users.
  outline: 0
});
const Menu = /*#__PURE__*/react.forwardRef(function Menu(inProps, ref) {
  var _slots$paper, _slotProps$paper;
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiMenu'
  });
  const {
      autoFocus = true,
      children,
      className,
      disableAutoFocusItem = false,
      MenuListProps = {},
      onClose,
      open,
      PaperProps = {},
      PopoverClasses,
      transitionDuration = 'auto',
      TransitionProps: {
        onEntering
      } = {},
      variant = 'selectedMenu',
      slots = {},
      slotProps = {}
    } = props,
    TransitionProps = (0,objectWithoutPropertiesLoose/* default */.Z)(props.TransitionProps, Menu_excluded),
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Menu_excluded2);
  const isRtl = useRtl();
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    autoFocus,
    disableAutoFocusItem,
    MenuListProps,
    onEntering,
    PaperProps,
    transitionDuration,
    TransitionProps,
    variant
  });
  const classes = Menu_useUtilityClasses(ownerState);
  const autoFocusItem = autoFocus && !disableAutoFocusItem && open;
  const menuListActionsRef = react.useRef(null);
  const handleEntering = (element, isAppearing) => {
    if (menuListActionsRef.current) {
      menuListActionsRef.current.adjustStyleForScrollbar(element, {
        direction: isRtl ? 'rtl' : 'ltr'
      });
    }
    if (onEntering) {
      onEntering(element, isAppearing);
    }
  };
  const handleListKeyDown = event => {
    if (event.key === 'Tab') {
      event.preventDefault();
      if (onClose) {
        onClose(event, 'tabKeyDown');
      }
    }
  };

  /**
   * the index of the item should receive focus
   * in a `variant="selectedMenu"` it's the first `selected` item
   * otherwise it's the very first item.
   */
  let activeItemIndex = -1;
  // since we inject focus related props into children we have to do a lookahead
  // to check if there is a `selected` item. We're looking for the last `selected`
  // item and use the first valid item as a fallback
  react.Children.map(children, (child, index) => {
    if (! /*#__PURE__*/react.isValidElement(child)) {
      return;
    }
    if (false) {}
    if (!child.props.disabled) {
      if (variant === 'selectedMenu' && child.props.selected) {
        activeItemIndex = index;
      } else if (activeItemIndex === -1) {
        activeItemIndex = index;
      }
    }
  });
  const PaperSlot = (_slots$paper = slots.paper) != null ? _slots$paper : MenuPaper;
  const paperExternalSlotProps = (_slotProps$paper = slotProps.paper) != null ? _slotProps$paper : PaperProps;
  const rootSlotProps = useSlotProps({
    elementType: slots.root,
    externalSlotProps: slotProps.root,
    ownerState,
    className: [classes.root, className]
  });
  const paperSlotProps = useSlotProps({
    elementType: PaperSlot,
    externalSlotProps: paperExternalSlotProps,
    ownerState,
    className: classes.paper
  });
  return /*#__PURE__*/(0,jsx_runtime.jsx)(MenuRoot, (0,esm_extends/* default */.Z)({
    onClose: onClose,
    anchorOrigin: {
      vertical: 'bottom',
      horizontal: isRtl ? 'right' : 'left'
    },
    transformOrigin: isRtl ? RTL_ORIGIN : LTR_ORIGIN,
    slots: {
      paper: PaperSlot,
      root: slots.root
    },
    slotProps: {
      root: rootSlotProps,
      paper: paperSlotProps
    },
    open: open,
    ref: ref,
    transitionDuration: transitionDuration,
    TransitionProps: (0,esm_extends/* default */.Z)({
      onEntering: handleEntering
    }, TransitionProps),
    ownerState: ownerState
  }, other, {
    classes: PopoverClasses,
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(MenuMenuList, (0,esm_extends/* default */.Z)({
      onKeyDown: handleListKeyDown,
      actions: menuListActionsRef,
      autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),
      autoFocusItem: autoFocusItem,
      variant: variant
    }, MenuListProps, {
      className: (0,clsx/* default */.Z)(classes.list, MenuListProps.className),
      children: children
    }))
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const Menu_Menu = (Menu);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/NativeSelect/nativeSelectClasses.js


function getNativeSelectUtilityClasses(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiNativeSelect', slot);
}
const nativeSelectClasses = (0,generateUtilityClasses/* default */.Z)('MuiNativeSelect', ['root', 'select', 'multiple', 'filled', 'outlined', 'standard', 'disabled', 'icon', 'iconOpen', 'iconFilled', 'iconOutlined', 'iconStandard', 'nativeInput', 'error']);
/* harmony default export */ const NativeSelect_nativeSelectClasses = (nativeSelectClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/NativeSelect/NativeSelectInput.js
'use client';



const NativeSelectInput_excluded = ["className", "disabled", "error", "IconComponent", "inputRef", "variant"];










const NativeSelectInput_useUtilityClasses = ownerState => {
  const {
    classes,
    variant,
    disabled,
    multiple,
    open,
    error
  } = ownerState;
  const slots = {
    select: ['select', variant, disabled && 'disabled', multiple && 'multiple', error && 'error'],
    icon: ['icon', "icon".concat((0,capitalize/* default */.Z)(variant)), open && 'iconOpen', disabled && 'disabled']
  };
  return (0,composeClasses/* default */.Z)(slots, getNativeSelectUtilityClasses, classes);
};
const nativeSelectSelectStyles = _ref => {
  let {
    ownerState,
    theme
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    MozAppearance: 'none',
    // Reset
    WebkitAppearance: 'none',
    // Reset
    // When interacting quickly, the text can end up selected.
    // Native select can't be selected either.
    userSelect: 'none',
    borderRadius: 0,
    // Reset
    cursor: 'pointer',
    '&:focus': (0,esm_extends/* default */.Z)({}, theme.vars ? {
      backgroundColor: "rgba(".concat(theme.vars.palette.common.onBackgroundChannel, " / 0.05)")
    } : {
      backgroundColor: theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.05)' : 'rgba(255, 255, 255, 0.05)'
    }, {
      borderRadius: 0 // Reset Chrome style
    }),

    // Remove IE11 arrow
    '&::-ms-expand': {
      display: 'none'
    },
    ["&.".concat(NativeSelect_nativeSelectClasses.disabled)]: {
      cursor: 'default'
    },
    '&[multiple]': {
      height: 'auto'
    },
    '&:not([multiple]) option, &:not([multiple]) optgroup': {
      backgroundColor: (theme.vars || theme).palette.background.paper
    },
    // Bump specificity to allow extending custom inputs
    '&&&': {
      paddingRight: 24,
      minWidth: 16 // So it doesn't collapse.
    }
  }, ownerState.variant === 'filled' && {
    '&&&': {
      paddingRight: 32
    }
  }, ownerState.variant === 'outlined' && {
    borderRadius: (theme.vars || theme).shape.borderRadius,
    '&:focus': {
      borderRadius: (theme.vars || theme).shape.borderRadius // Reset the reset for Chrome style
    },

    '&&&': {
      paddingRight: 32
    }
  });
};
const NativeSelectSelect = (0,styled/* default */.ZP)('select', {
  name: 'MuiNativeSelect',
  slot: 'Select',
  shouldForwardProp: rootShouldForwardProp/* default */.Z,
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.select, styles[ownerState.variant], ownerState.error && styles.error, {
      ["&.".concat(NativeSelect_nativeSelectClasses.multiple)]: styles.multiple
    }];
  }
})(nativeSelectSelectStyles);
const nativeSelectIconStyles = _ref2 => {
  let {
    ownerState,
    theme
  } = _ref2;
  return (0,esm_extends/* default */.Z)({
    // We use a position absolute over a flexbox in order to forward the pointer events
    // to the input and to support wrapping tags..
    position: 'absolute',
    right: 0,
    top: 'calc(50% - .5em)',
    // Center vertically, height is 1em
    pointerEvents: 'none',
    // Don't block pointer events on the select under the icon.
    color: (theme.vars || theme).palette.action.active,
    ["&.".concat(NativeSelect_nativeSelectClasses.disabled)]: {
      color: (theme.vars || theme).palette.action.disabled
    }
  }, ownerState.open && {
    transform: 'rotate(180deg)'
  }, ownerState.variant === 'filled' && {
    right: 7
  }, ownerState.variant === 'outlined' && {
    right: 7
  });
};
const NativeSelectIcon = (0,styled/* default */.ZP)('svg', {
  name: 'MuiNativeSelect',
  slot: 'Icon',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.icon, ownerState.variant && styles["icon".concat((0,capitalize/* default */.Z)(ownerState.variant))], ownerState.open && styles.iconOpen];
  }
})(nativeSelectIconStyles);

/**
 * @ignore - internal component.
 */
const NativeSelectInput = /*#__PURE__*/react.forwardRef(function NativeSelectInput(props, ref) {
  const {
      className,
      disabled,
      error,
      IconComponent,
      inputRef,
      variant = 'standard'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, NativeSelectInput_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    disabled,
    variant,
    error
  });
  const classes = NativeSelectInput_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
    children: [/*#__PURE__*/(0,jsx_runtime.jsx)(NativeSelectSelect, (0,esm_extends/* default */.Z)({
      ownerState: ownerState,
      className: (0,clsx/* default */.Z)(classes.select, className),
      disabled: disabled,
      ref: inputRef || ref
    }, other)), props.multiple ? null : /*#__PURE__*/(0,jsx_runtime.jsx)(NativeSelectIcon, {
      as: IconComponent,
      ownerState: ownerState,
      className: classes.icon
    })]
  });
});
 false ? 0 : void 0;
/* harmony default export */ const NativeSelect_NativeSelectInput = (NativeSelectInput);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/slotShouldForwardProp.js
var slotShouldForwardProp = __webpack_require__(5023);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Select/selectClasses.js


function getSelectUtilityClasses(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiSelect', slot);
}
const selectClasses = (0,generateUtilityClasses/* default */.Z)('MuiSelect', ['root', 'select', 'multiple', 'filled', 'outlined', 'standard', 'disabled', 'focused', 'icon', 'iconOpen', 'iconFilled', 'iconOutlined', 'iconStandard', 'nativeInput', 'error']);
/* harmony default export */ const Select_selectClasses = (selectClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Select/SelectInput.js
'use client';




var SelectInput_span;
const SelectInput_excluded = ["aria-describedby", "aria-label", "autoFocus", "autoWidth", "children", "className", "defaultOpen", "defaultValue", "disabled", "displayEmpty", "error", "IconComponent", "inputRef", "labelId", "MenuProps", "multiple", "name", "onBlur", "onChange", "onClose", "onFocus", "onOpen", "open", "readOnly", "renderValue", "SelectDisplayProps", "tabIndex", "type", "value", "variant"];


















const SelectSelect = (0,styled/* default */.ZP)('div', {
  name: 'MuiSelect',
  slot: 'Select',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [
    // Win specificity over the input base
    {
      ["&.".concat(Select_selectClasses.select)]: styles.select
    }, {
      ["&.".concat(Select_selectClasses.select)]: styles[ownerState.variant]
    }, {
      ["&.".concat(Select_selectClasses.error)]: styles.error
    }, {
      ["&.".concat(Select_selectClasses.multiple)]: styles.multiple
    }];
  }
})(nativeSelectSelectStyles, {
  // Win specificity over the input base
  ["&.".concat(Select_selectClasses.select)]: {
    height: 'auto',
    // Resets for multiple select with chips
    minHeight: '1.4375em',
    // Required for select\text-field height consistency
    textOverflow: 'ellipsis',
    whiteSpace: 'nowrap',
    overflow: 'hidden'
  }
});
const SelectIcon = (0,styled/* default */.ZP)('svg', {
  name: 'MuiSelect',
  slot: 'Icon',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.icon, ownerState.variant && styles["icon".concat((0,capitalize/* default */.Z)(ownerState.variant))], ownerState.open && styles.iconOpen];
  }
})(nativeSelectIconStyles);
const SelectNativeInput = (0,styled/* default */.ZP)('input', {
  shouldForwardProp: prop => (0,slotShouldForwardProp/* default */.Z)(prop) && prop !== 'classes',
  name: 'MuiSelect',
  slot: 'NativeInput',
  overridesResolver: (props, styles) => styles.nativeInput
})({
  bottom: 0,
  left: 0,
  position: 'absolute',
  opacity: 0,
  pointerEvents: 'none',
  width: '100%',
  boxSizing: 'border-box'
});
function areEqualValues(a, b) {
  if (typeof b === 'object' && b !== null) {
    return a === b;
  }

  // The value could be a number, the DOM will stringify it anyway.
  return String(a) === String(b);
}
function SelectInput_isEmpty(display) {
  return display == null || typeof display === 'string' && !display.trim();
}
const SelectInput_useUtilityClasses = ownerState => {
  const {
    classes,
    variant,
    disabled,
    multiple,
    open,
    error
  } = ownerState;
  const slots = {
    select: ['select', variant, disabled && 'disabled', multiple && 'multiple', error && 'error'],
    icon: ['icon', "icon".concat((0,capitalize/* default */.Z)(variant)), open && 'iconOpen', disabled && 'disabled'],
    nativeInput: ['nativeInput']
  };
  return (0,composeClasses/* default */.Z)(slots, getSelectUtilityClasses, classes);
};

/**
 * @ignore - internal component.
 */
const SelectInput = /*#__PURE__*/react.forwardRef(function SelectInput(props, ref) {
  var _MenuProps$slotProps;
  const {
      'aria-describedby': ariaDescribedby,
      'aria-label': ariaLabel,
      autoFocus,
      autoWidth,
      children,
      className,
      defaultOpen,
      defaultValue,
      disabled,
      displayEmpty,
      error = false,
      IconComponent,
      inputRef: inputRefProp,
      labelId,
      MenuProps = {},
      multiple,
      name,
      onBlur,
      onChange,
      onClose,
      onFocus,
      onOpen,
      open: openProp,
      readOnly,
      renderValue,
      SelectDisplayProps = {},
      tabIndex: tabIndexProp
      // catching `type` from Input which makes no sense for SelectInput
      ,

      value: valueProp,
      variant = 'standard'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, SelectInput_excluded);
  const [value, setValueState] = (0,useControlled/* default */.Z)({
    controlled: valueProp,
    default: defaultValue,
    name: 'Select'
  });
  const [openState, setOpenState] = (0,useControlled/* default */.Z)({
    controlled: openProp,
    default: defaultOpen,
    name: 'Select'
  });
  const inputRef = react.useRef(null);
  const displayRef = react.useRef(null);
  const [displayNode, setDisplayNode] = react.useState(null);
  const {
    current: isOpenControlled
  } = react.useRef(openProp != null);
  const [menuMinWidthState, setMenuMinWidthState] = react.useState();
  const handleRef = (0,useForkRef/* default */.Z)(ref, inputRefProp);
  const handleDisplayRef = react.useCallback(node => {
    displayRef.current = node;
    if (node) {
      setDisplayNode(node);
    }
  }, []);
  const anchorElement = displayNode == null ? void 0 : displayNode.parentNode;
  react.useImperativeHandle(handleRef, () => ({
    focus: () => {
      displayRef.current.focus();
    },
    node: inputRef.current,
    value
  }), [value]);

  // Resize menu on `defaultOpen` automatic toggle.
  react.useEffect(() => {
    if (defaultOpen && openState && displayNode && !isOpenControlled) {
      setMenuMinWidthState(autoWidth ? null : anchorElement.clientWidth);
      displayRef.current.focus();
    }
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, [displayNode, autoWidth]);
  // `isOpenControlled` is ignored because the component should never switch between controlled and uncontrolled modes.
  // `defaultOpen` and `openState` are ignored to avoid unnecessary callbacks.
  react.useEffect(() => {
    if (autoFocus) {
      displayRef.current.focus();
    }
  }, [autoFocus]);
  react.useEffect(() => {
    if (!labelId) {
      return undefined;
    }
    const label = (0,ownerDocument/* default */.Z)(displayRef.current).getElementById(labelId);
    if (label) {
      const handler = () => {
        if (getSelection().isCollapsed) {
          displayRef.current.focus();
        }
      };
      label.addEventListener('click', handler);
      return () => {
        label.removeEventListener('click', handler);
      };
    }
    return undefined;
  }, [labelId]);
  const update = (open, event) => {
    if (open) {
      if (onOpen) {
        onOpen(event);
      }
    } else if (onClose) {
      onClose(event);
    }
    if (!isOpenControlled) {
      setMenuMinWidthState(autoWidth ? null : anchorElement.clientWidth);
      setOpenState(open);
    }
  };
  const handleMouseDown = event => {
    // Ignore everything but left-click
    if (event.button !== 0) {
      return;
    }
    // Hijack the default focus behavior.
    event.preventDefault();
    displayRef.current.focus();
    update(true, event);
  };
  const handleClose = event => {
    update(false, event);
  };
  const childrenArray = react.Children.toArray(children);

  // Support autofill.
  const handleChange = event => {
    const child = childrenArray.find(childItem => childItem.props.value === event.target.value);
    if (child === undefined) {
      return;
    }
    setValueState(child.props.value);
    if (onChange) {
      onChange(event, child);
    }
  };
  const handleItemClick = child => event => {
    let newValue;

    // We use the tabindex attribute to signal the available options.
    if (!event.currentTarget.hasAttribute('tabindex')) {
      return;
    }
    if (multiple) {
      newValue = Array.isArray(value) ? value.slice() : [];
      const itemIndex = value.indexOf(child.props.value);
      if (itemIndex === -1) {
        newValue.push(child.props.value);
      } else {
        newValue.splice(itemIndex, 1);
      }
    } else {
      newValue = child.props.value;
    }
    if (child.props.onClick) {
      child.props.onClick(event);
    }
    if (value !== newValue) {
      setValueState(newValue);
      if (onChange) {
        // Redefine target to allow name and value to be read.
        // This allows seamless integration with the most popular form libraries.
        // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492
        // Clone the event to not override `target` of the original event.
        const nativeEvent = event.nativeEvent || event;
        const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);
        Object.defineProperty(clonedEvent, 'target', {
          writable: true,
          value: {
            value: newValue,
            name
          }
        });
        onChange(clonedEvent, child);
      }
    }
    if (!multiple) {
      update(false, event);
    }
  };
  const handleKeyDown = event => {
    if (!readOnly) {
      const validKeys = [' ', 'ArrowUp', 'ArrowDown',
      // The native select doesn't respond to enter on macOS, but it's recommended by
      // https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/
      'Enter'];
      if (validKeys.indexOf(event.key) !== -1) {
        event.preventDefault();
        update(true, event);
      }
    }
  };
  const open = displayNode !== null && openState;
  const handleBlur = event => {
    // if open event.stopImmediatePropagation
    if (!open && onBlur) {
      // Preact support, target is read only property on a native event.
      Object.defineProperty(event, 'target', {
        writable: true,
        value: {
          value,
          name
        }
      });
      onBlur(event);
    }
  };
  delete other['aria-invalid'];
  let display;
  let displaySingle;
  const displayMultiple = [];
  let computeDisplay = false;
  let foundMatch = false;

  // No need to display any value if the field is empty.
  if (isFilled({
    value
  }) || displayEmpty) {
    if (renderValue) {
      display = renderValue(value);
    } else {
      computeDisplay = true;
    }
  }
  const items = childrenArray.map(child => {
    if (! /*#__PURE__*/react.isValidElement(child)) {
      return null;
    }
    if (false) {}
    let selected;
    if (multiple) {
      if (!Array.isArray(value)) {
        throw new Error( false ? 0 : (0,formatMuiErrorMessage/* default */.Z)(2));
      }
      selected = value.some(v => areEqualValues(v, child.props.value));
      if (selected && computeDisplay) {
        displayMultiple.push(child.props.children);
      }
    } else {
      selected = areEqualValues(value, child.props.value);
      if (selected && computeDisplay) {
        displaySingle = child.props.children;
      }
    }
    if (selected) {
      foundMatch = true;
    }
    return /*#__PURE__*/react.cloneElement(child, {
      'aria-selected': selected ? 'true' : 'false',
      onClick: handleItemClick(child),
      onKeyUp: event => {
        if (event.key === ' ') {
          // otherwise our MenuItems dispatches a click event
          // it's not behavior of the native <option> and causes
          // the select to close immediately since we open on space keydown
          event.preventDefault();
        }
        if (child.props.onKeyUp) {
          child.props.onKeyUp(event);
        }
      },
      role: 'option',
      selected,
      value: undefined,
      // The value is most likely not a valid HTML attribute.
      'data-value': child.props.value // Instead, we provide it as a data attribute.
    });
  });

  if (false) {}
  if (computeDisplay) {
    if (multiple) {
      if (displayMultiple.length === 0) {
        display = null;
      } else {
        display = displayMultiple.reduce((output, child, index) => {
          output.push(child);
          if (index < displayMultiple.length - 1) {
            output.push(', ');
          }
          return output;
        }, []);
      }
    } else {
      display = displaySingle;
    }
  }

  // Avoid performing a layout computation in the render method.
  let menuMinWidth = menuMinWidthState;
  if (!autoWidth && isOpenControlled && displayNode) {
    menuMinWidth = anchorElement.clientWidth;
  }
  let tabIndex;
  if (typeof tabIndexProp !== 'undefined') {
    tabIndex = tabIndexProp;
  } else {
    tabIndex = disabled ? null : 0;
  }
  const buttonId = SelectDisplayProps.id || (name ? "mui-component-select-".concat(name) : undefined);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    variant,
    value,
    open,
    error
  });
  const classes = SelectInput_useUtilityClasses(ownerState);
  const paperProps = (0,esm_extends/* default */.Z)({}, MenuProps.PaperProps, (_MenuProps$slotProps = MenuProps.slotProps) == null ? void 0 : _MenuProps$slotProps.paper);
  const listboxId = (0,useId/* default */.Z)();
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
    children: [/*#__PURE__*/(0,jsx_runtime.jsx)(SelectSelect, (0,esm_extends/* default */.Z)({
      ref: handleDisplayRef,
      tabIndex: tabIndex,
      role: "combobox",
      "aria-controls": listboxId,
      "aria-disabled": disabled ? 'true' : undefined,
      "aria-expanded": open ? 'true' : 'false',
      "aria-haspopup": "listbox",
      "aria-label": ariaLabel,
      "aria-labelledby": [labelId, buttonId].filter(Boolean).join(' ') || undefined,
      "aria-describedby": ariaDescribedby,
      onKeyDown: handleKeyDown,
      onMouseDown: disabled || readOnly ? null : handleMouseDown,
      onBlur: handleBlur,
      onFocus: onFocus
    }, SelectDisplayProps, {
      ownerState: ownerState,
      className: (0,clsx/* default */.Z)(SelectDisplayProps.className, classes.select, className)
      // The id is required for proper a11y
      ,

      id: buttonId,
      children: SelectInput_isEmpty(display) ?
      // notranslate needed while Google Translate will not fix zero-width space issue
      SelectInput_span || (SelectInput_span = /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
        className: "notranslate",
        children: "\u200B"
      })) : display
    })), /*#__PURE__*/(0,jsx_runtime.jsx)(SelectNativeInput, (0,esm_extends/* default */.Z)({
      "aria-invalid": error,
      value: Array.isArray(value) ? value.join(',') : value,
      name: name,
      ref: inputRef,
      "aria-hidden": true,
      onChange: handleChange,
      tabIndex: -1,
      disabled: disabled,
      className: classes.nativeInput,
      autoFocus: autoFocus,
      ownerState: ownerState
    }, other)), /*#__PURE__*/(0,jsx_runtime.jsx)(SelectIcon, {
      as: IconComponent,
      className: classes.icon,
      ownerState: ownerState
    }), /*#__PURE__*/(0,jsx_runtime.jsx)(Menu_Menu, (0,esm_extends/* default */.Z)({
      id: "menu-".concat(name || ''),
      anchorEl: anchorElement,
      open: open,
      onClose: handleClose,
      anchorOrigin: {
        vertical: 'bottom',
        horizontal: 'center'
      },
      transformOrigin: {
        vertical: 'top',
        horizontal: 'center'
      }
    }, MenuProps, {
      MenuListProps: (0,esm_extends/* default */.Z)({
        'aria-labelledby': labelId,
        role: 'listbox',
        'aria-multiselectable': multiple ? 'true' : undefined,
        disableListWrap: true,
        id: listboxId
      }, MenuProps.MenuListProps),
      slotProps: (0,esm_extends/* default */.Z)({}, MenuProps.slotProps, {
        paper: (0,esm_extends/* default */.Z)({}, paperProps, {
          style: (0,esm_extends/* default */.Z)({
            minWidth: menuMinWidth
          }, paperProps != null ? paperProps.style : null)
        })
      }),
      children: items
    }))]
  });
});
 false ? 0 : void 0;
/* harmony default export */ const Select_SelectInput = (SelectInput);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/createSvgIcon.js + 2 modules
var createSvgIcon = __webpack_require__(9295);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js
'use client';




/**
 * @ignore - internal component.
 */

/* harmony default export */ const ArrowDropDown = ((0,createSvgIcon/* default */.Z)( /*#__PURE__*/(0,jsx_runtime.jsx)("path", {
  d: "M7 10l5 5 5-5z"
}), 'ArrowDropDown'));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Select/Select.js
'use client';



const Select_excluded = ["autoWidth", "children", "classes", "className", "defaultOpen", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "MenuProps", "multiple", "native", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "variant"],
  Select_excluded2 = ["root"];
















const Select_useUtilityClasses = ownerState => {
  const {
    classes
  } = ownerState;
  return classes;
};
const styledRootConfig = {
  name: 'MuiSelect',
  overridesResolver: (props, styles) => styles.root,
  shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) && prop !== 'variant',
  slot: 'Root'
};
const StyledInput = (0,styled/* default */.ZP)(Input_Input, styledRootConfig)('');
const StyledOutlinedInput = (0,styled/* default */.ZP)(OutlinedInput_OutlinedInput, styledRootConfig)('');
const StyledFilledInput = (0,styled/* default */.ZP)(FilledInput_FilledInput, styledRootConfig)('');
const Select = /*#__PURE__*/react.forwardRef(function Select(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    name: 'MuiSelect',
    props: inProps
  });
  const {
      autoWidth = false,
      children,
      classes: classesProp = {},
      className,
      defaultOpen = false,
      displayEmpty = false,
      IconComponent = ArrowDropDown,
      id,
      input,
      inputProps,
      label,
      labelId,
      MenuProps,
      multiple = false,
      native = false,
      onClose,
      onOpen,
      open,
      renderValue,
      SelectDisplayProps,
      variant: variantProp = 'outlined'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Select_excluded);
  const inputComponent = native ? NativeSelect_NativeSelectInput : Select_SelectInput;
  const muiFormControl = useFormControl();
  const fcs = formControlState({
    props,
    muiFormControl,
    states: ['variant', 'error']
  });
  const variant = fcs.variant || variantProp;
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    variant,
    classes: classesProp
  });
  const classes = Select_useUtilityClasses(ownerState);
  const restOfClasses = (0,objectWithoutPropertiesLoose/* default */.Z)(classes, Select_excluded2);
  const InputComponent = input || {
    standard: /*#__PURE__*/(0,jsx_runtime.jsx)(StyledInput, {
      ownerState: ownerState
    }),
    outlined: /*#__PURE__*/(0,jsx_runtime.jsx)(StyledOutlinedInput, {
      label: label,
      ownerState: ownerState
    }),
    filled: /*#__PURE__*/(0,jsx_runtime.jsx)(StyledFilledInput, {
      ownerState: ownerState
    })
  }[variant];
  const inputComponentRef = (0,useForkRef/* default */.Z)(ref, InputComponent.ref);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(react.Fragment, {
    children: /*#__PURE__*/react.cloneElement(InputComponent, (0,esm_extends/* default */.Z)({
      // Most of the logic is implemented in `SelectInput`.
      // The `Select` component is a simple API wrapper to expose something better to play with.
      inputComponent,
      inputProps: (0,esm_extends/* default */.Z)({
        children,
        error: fcs.error,
        IconComponent,
        variant,
        type: undefined,
        // We render a select. We can ignore the type provided by the `Input`.
        multiple
      }, native ? {
        id
      } : {
        autoWidth,
        defaultOpen,
        displayEmpty,
        labelId,
        MenuProps,
        onClose,
        onOpen,
        open,
        renderValue,
        SelectDisplayProps: (0,esm_extends/* default */.Z)({
          id
        }, SelectDisplayProps)
      }, inputProps, {
        classes: inputProps ? (0,deepmerge/* default */.Z)(restOfClasses, inputProps.classes) : restOfClasses
      }, input ? input.props.inputProps : {})
    }, (multiple && native || displayEmpty) && variant === 'outlined' ? {
      notched: true
    } : {}, {
      ref: inputComponentRef,
      className: (0,clsx/* default */.Z)(InputComponent.props.className, className, classes.root)
    }, !input && {
      variant
    }, other))
  });
});
 false ? 0 : void 0;
Select.muiName = 'Select';
/* harmony default export */ const Select_Select = (Select);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/TextField/textFieldClasses.js


function getTextFieldUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiTextField', slot);
}
const textFieldClasses = (0,generateUtilityClasses/* default */.Z)('MuiTextField', ['root']);
/* harmony default export */ const TextField_textFieldClasses = ((/* unused pure expression or super */ null && (textFieldClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/TextField/TextField.js
'use client';



const TextField_excluded = ["autoComplete", "autoFocus", "children", "className", "color", "defaultValue", "disabled", "error", "FormHelperTextProps", "fullWidth", "helperText", "id", "InputLabelProps", "inputProps", "InputProps", "inputRef", "label", "maxRows", "minRows", "multiline", "name", "onBlur", "onChange", "onFocus", "placeholder", "required", "rows", "select", "SelectProps", "type", "value", "variant"];


















const variantComponent = {
  standard: Input_Input,
  filled: FilledInput_FilledInput,
  outlined: OutlinedInput_OutlinedInput
};
const TextField_useUtilityClasses = ownerState => {
  const {
    classes
  } = ownerState;
  const slots = {
    root: ['root']
  };
  return (0,composeClasses/* default */.Z)(slots, getTextFieldUtilityClass, classes);
};
const TextFieldRoot = (0,styled/* default */.ZP)(FormControl_FormControl, {
  name: 'MuiTextField',
  slot: 'Root',
  overridesResolver: (props, styles) => styles.root
})({});

/**
 * The `TextField` is a convenience wrapper for the most common cases (80%).
 * It cannot be all things to all people, otherwise the API would grow out of control.
 *
 * ## Advanced Configuration
 *
 * It's important to understand that the text field is a simple abstraction
 * on top of the following components:
 *
 * - [FormControl](/material-ui/api/form-control/)
 * - [InputLabel](/material-ui/api/input-label/)
 * - [FilledInput](/material-ui/api/filled-input/)
 * - [OutlinedInput](/material-ui/api/outlined-input/)
 * - [Input](/material-ui/api/input/)
 * - [FormHelperText](/material-ui/api/form-helper-text/)
 *
 * If you wish to alter the props applied to the `input` element, you can do so as follows:
 *
 * ```jsx
 * const inputProps = {
 *   step: 300,
 * };
 *
 * return <TextField id="time" type="time" inputProps={inputProps} />;
 * ```
 *
 * For advanced cases, please look at the source of TextField by clicking on the
 * "Edit this page" button above. Consider either:
 *
 * - using the upper case props for passing values directly to the components
 * - using the underlying components directly as shown in the demos
 */
const TextField = /*#__PURE__*/react.forwardRef(function TextField(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiTextField'
  });
  const {
      autoComplete,
      autoFocus = false,
      children,
      className,
      color = 'primary',
      defaultValue,
      disabled = false,
      error = false,
      FormHelperTextProps,
      fullWidth = false,
      helperText,
      id: idOverride,
      InputLabelProps,
      inputProps,
      InputProps,
      inputRef,
      label,
      maxRows,
      minRows,
      multiline = false,
      name,
      onBlur,
      onChange,
      onFocus,
      placeholder,
      required = false,
      rows,
      select = false,
      SelectProps,
      type,
      value,
      variant = 'outlined'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, TextField_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    autoFocus,
    color,
    disabled,
    error,
    fullWidth,
    multiline,
    required,
    select,
    variant
  });
  const classes = TextField_useUtilityClasses(ownerState);
  if (false) {}
  const InputMore = {};
  if (variant === 'outlined') {
    if (InputLabelProps && typeof InputLabelProps.shrink !== 'undefined') {
      InputMore.notched = InputLabelProps.shrink;
    }
    InputMore.label = label;
  }
  if (select) {
    // unset defaults from textbox inputs
    if (!SelectProps || !SelectProps.native) {
      InputMore.id = undefined;
    }
    InputMore['aria-describedby'] = undefined;
  }
  const id = (0,useId/* default */.Z)(idOverride);
  const helperTextId = helperText && id ? "".concat(id, "-helper-text") : undefined;
  const inputLabelId = label && id ? "".concat(id, "-label") : undefined;
  const InputComponent = variantComponent[variant];
  const InputElement = /*#__PURE__*/(0,jsx_runtime.jsx)(InputComponent, (0,esm_extends/* default */.Z)({
    "aria-describedby": helperTextId,
    autoComplete: autoComplete,
    autoFocus: autoFocus,
    defaultValue: defaultValue,
    fullWidth: fullWidth,
    multiline: multiline,
    name: name,
    rows: rows,
    maxRows: maxRows,
    minRows: minRows,
    type: type,
    value: value,
    id: id,
    inputRef: inputRef,
    onBlur: onBlur,
    onChange: onChange,
    onFocus: onFocus,
    placeholder: placeholder,
    inputProps: inputProps
  }, InputMore, InputProps));
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(TextFieldRoot, (0,esm_extends/* default */.Z)({
    className: (0,clsx/* default */.Z)(classes.root, className),
    disabled: disabled,
    error: error,
    fullWidth: fullWidth,
    ref: ref,
    required: required,
    color: color,
    variant: variant,
    ownerState: ownerState
  }, other, {
    children: [label != null && label !== '' && /*#__PURE__*/(0,jsx_runtime.jsx)(InputLabel_InputLabel, (0,esm_extends/* default */.Z)({
      htmlFor: id,
      id: inputLabelId
    }, InputLabelProps, {
      children: label
    })), select ? /*#__PURE__*/(0,jsx_runtime.jsx)(Select_Select, (0,esm_extends/* default */.Z)({
      "aria-describedby": helperTextId,
      id: id,
      labelId: inputLabelId,
      value: value,
      input: InputElement
    }, SelectProps, {
      children: children
    })) : InputElement, helperText && /*#__PURE__*/(0,jsx_runtime.jsx)(FormHelperText_FormHelperText, (0,esm_extends/* default */.Z)({
      id: helperTextId
    }, FormHelperTextProps, {
      children: helperText
    }))]
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const TextField_TextField = (TextField);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Divider/Divider.js
'use client';



const Divider_excluded = ["absolute", "children", "className", "component", "flexItem", "light", "orientation", "role", "textAlign", "variant"];









const Divider_useUtilityClasses = ownerState => {
  const {
    absolute,
    children,
    classes,
    flexItem,
    light,
    orientation,
    textAlign,
    variant
  } = ownerState;
  const slots = {
    root: ['root', absolute && 'absolute', variant, light && 'light', orientation === 'vertical' && 'vertical', flexItem && 'flexItem', children && 'withChildren', children && orientation === 'vertical' && 'withChildrenVertical', textAlign === 'right' && orientation !== 'vertical' && 'textAlignRight', textAlign === 'left' && orientation !== 'vertical' && 'textAlignLeft'],
    wrapper: ['wrapper', orientation === 'vertical' && 'wrapperVertical']
  };
  return (0,composeClasses/* default */.Z)(slots, getDividerUtilityClass, classes);
};
const DividerRoot = (0,styled/* default */.ZP)('div', {
  name: 'MuiDivider',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, ownerState.absolute && styles.absolute, styles[ownerState.variant], ownerState.light && styles.light, ownerState.orientation === 'vertical' && styles.vertical, ownerState.flexItem && styles.flexItem, ownerState.children && styles.withChildren, ownerState.children && ownerState.orientation === 'vertical' && styles.withChildrenVertical, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && styles.textAlignRight, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && styles.textAlignLeft];
  }
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    margin: 0,
    // Reset browser default style.
    flexShrink: 0,
    borderWidth: 0,
    borderStyle: 'solid',
    borderColor: (theme.vars || theme).palette.divider,
    borderBottomWidth: 'thin'
  }, ownerState.absolute && {
    position: 'absolute',
    bottom: 0,
    left: 0,
    width: '100%'
  }, ownerState.light && {
    borderColor: theme.vars ? "rgba(".concat(theme.vars.palette.dividerChannel, " / 0.08)") : (0,colorManipulator/* alpha */.Fq)(theme.palette.divider, 0.08)
  }, ownerState.variant === 'inset' && {
    marginLeft: 72
  }, ownerState.variant === 'middle' && ownerState.orientation === 'horizontal' && {
    marginLeft: theme.spacing(2),
    marginRight: theme.spacing(2)
  }, ownerState.variant === 'middle' && ownerState.orientation === 'vertical' && {
    marginTop: theme.spacing(1),
    marginBottom: theme.spacing(1)
  }, ownerState.orientation === 'vertical' && {
    height: '100%',
    borderBottomWidth: 0,
    borderRightWidth: 'thin'
  }, ownerState.flexItem && {
    alignSelf: 'stretch',
    height: 'auto'
  });
}, _ref2 => {
  let {
    ownerState
  } = _ref2;
  return (0,esm_extends/* default */.Z)({}, ownerState.children && {
    display: 'flex',
    whiteSpace: 'nowrap',
    textAlign: 'center',
    border: 0,
    '&::before, &::after': {
      content: '""',
      alignSelf: 'center'
    }
  });
}, _ref3 => {
  let {
    theme,
    ownerState
  } = _ref3;
  return (0,esm_extends/* default */.Z)({}, ownerState.children && ownerState.orientation !== 'vertical' && {
    '&::before, &::after': {
      width: '100%',
      borderTop: "thin solid ".concat((theme.vars || theme).palette.divider)
    }
  });
}, _ref4 => {
  let {
    theme,
    ownerState
  } = _ref4;
  return (0,esm_extends/* default */.Z)({}, ownerState.children && ownerState.orientation === 'vertical' && {
    flexDirection: 'column',
    '&::before, &::after': {
      height: '100%',
      borderLeft: "thin solid ".concat((theme.vars || theme).palette.divider)
    }
  });
}, _ref5 => {
  let {
    ownerState
  } = _ref5;
  return (0,esm_extends/* default */.Z)({}, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && {
    '&::before': {
      width: '90%'
    },
    '&::after': {
      width: '10%'
    }
  }, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && {
    '&::before': {
      width: '10%'
    },
    '&::after': {
      width: '90%'
    }
  });
});
const DividerWrapper = (0,styled/* default */.ZP)('span', {
  name: 'MuiDivider',
  slot: 'Wrapper',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.wrapper, ownerState.orientation === 'vertical' && styles.wrapperVertical];
  }
})(_ref6 => {
  let {
    theme,
    ownerState
  } = _ref6;
  return (0,esm_extends/* default */.Z)({
    display: 'inline-block',
    paddingLeft: "calc(".concat(theme.spacing(1), " * 1.2)"),
    paddingRight: "calc(".concat(theme.spacing(1), " * 1.2)")
  }, ownerState.orientation === 'vertical' && {
    paddingTop: "calc(".concat(theme.spacing(1), " * 1.2)"),
    paddingBottom: "calc(".concat(theme.spacing(1), " * 1.2)")
  });
});
const Divider = /*#__PURE__*/react.forwardRef(function Divider(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiDivider'
  });
  const {
      absolute = false,
      children,
      className,
      component = children ? 'div' : 'hr',
      flexItem = false,
      light = false,
      orientation = 'horizontal',
      role = component !== 'hr' ? 'separator' : undefined,
      textAlign = 'center',
      variant = 'fullWidth'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Divider_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    absolute,
    component,
    flexItem,
    light,
    orientation,
    role,
    textAlign,
    variant
  });
  const classes = Divider_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(DividerRoot, (0,esm_extends/* default */.Z)({
    as: component,
    className: (0,clsx/* default */.Z)(classes.root, className),
    role: role,
    ref: ref,
    ownerState: ownerState
  }, other, {
    children: children ? /*#__PURE__*/(0,jsx_runtime.jsx)(DividerWrapper, {
      className: classes.wrapper,
      ownerState: ownerState,
      children: children
    }) : null
  }));
});

/**
 * The following flag is used to ensure that this component isn't tabbable i.e.
 * does not get highlight/focus inside of MUI List.
 */
Divider.muiSkipListHighlight = true;
 false ? 0 : void 0;
/* harmony default export */ const Divider_Divider = (Divider);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/IconButton/iconButtonClasses.js


function getIconButtonUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiIconButton', slot);
}
const iconButtonClasses = (0,generateUtilityClasses/* default */.Z)('MuiIconButton', ['root', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorError', 'colorInfo', 'colorSuccess', 'colorWarning', 'edgeStart', 'edgeEnd', 'sizeSmall', 'sizeMedium', 'sizeLarge']);
/* harmony default export */ const IconButton_iconButtonClasses = (iconButtonClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/IconButton/IconButton.js
'use client';



const IconButton_excluded = ["edge", "children", "className", "color", "disabled", "disableFocusRipple", "size"];












const IconButton_useUtilityClasses = ownerState => {
  const {
    classes,
    disabled,
    color,
    edge,
    size
  } = ownerState;
  const slots = {
    root: ['root', disabled && 'disabled', color !== 'default' && "color".concat((0,capitalize/* default */.Z)(color)), edge && "edge".concat((0,capitalize/* default */.Z)(edge)), "size".concat((0,capitalize/* default */.Z)(size))]
  };
  return (0,composeClasses/* default */.Z)(slots, getIconButtonUtilityClass, classes);
};
const IconButtonRoot = (0,styled/* default */.ZP)(ButtonBase_ButtonBase, {
  name: 'MuiIconButton',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, ownerState.color !== 'default' && styles["color".concat((0,capitalize/* default */.Z)(ownerState.color))], ownerState.edge && styles["edge".concat((0,capitalize/* default */.Z)(ownerState.edge))], styles["size".concat((0,capitalize/* default */.Z)(ownerState.size))]];
  }
})(_ref => {
  let {
    theme,
    ownerState
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    textAlign: 'center',
    flex: '0 0 auto',
    fontSize: theme.typography.pxToRem(24),
    padding: 8,
    borderRadius: '50%',
    overflow: 'visible',
    // Explicitly set the default value to solve a bug on IE11.
    color: (theme.vars || theme).palette.action.active,
    transition: theme.transitions.create('background-color', {
      duration: theme.transitions.duration.shortest
    })
  }, !ownerState.disableRipple && {
    '&:hover': {
      backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.action.activeChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : (0,colorManipulator/* alpha */.Fq)(theme.palette.action.active, theme.palette.action.hoverOpacity),
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: 'transparent'
      }
    }
  }, ownerState.edge === 'start' && {
    marginLeft: ownerState.size === 'small' ? -3 : -12
  }, ownerState.edge === 'end' && {
    marginRight: ownerState.size === 'small' ? -3 : -12
  });
}, _ref2 => {
  let {
    theme,
    ownerState
  } = _ref2;
  var _palette;
  const palette = (_palette = (theme.vars || theme).palette) == null ? void 0 : _palette[ownerState.color];
  return (0,esm_extends/* default */.Z)({}, ownerState.color === 'inherit' && {
    color: 'inherit'
  }, ownerState.color !== 'inherit' && ownerState.color !== 'default' && (0,esm_extends/* default */.Z)({
    color: palette == null ? void 0 : palette.main
  }, !ownerState.disableRipple && {
    '&:hover': (0,esm_extends/* default */.Z)({}, palette && {
      backgroundColor: theme.vars ? "rgba(".concat(palette.mainChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : (0,colorManipulator/* alpha */.Fq)(palette.main, theme.palette.action.hoverOpacity)
    }, {
      // Reset on touch devices, it doesn't add specificity
      '@media (hover: none)': {
        backgroundColor: 'transparent'
      }
    })
  }), ownerState.size === 'small' && {
    padding: 5,
    fontSize: theme.typography.pxToRem(18)
  }, ownerState.size === 'large' && {
    padding: 12,
    fontSize: theme.typography.pxToRem(28)
  }, {
    ["&.".concat(IconButton_iconButtonClasses.disabled)]: {
      backgroundColor: 'transparent',
      color: (theme.vars || theme).palette.action.disabled
    }
  });
});

/**
 * Refer to the [Icons](/material-ui/icons/) section of the documentation
 * regarding the available icon options.
 */
const IconButton = /*#__PURE__*/react.forwardRef(function IconButton(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiIconButton'
  });
  const {
      edge = false,
      children,
      className,
      color = 'default',
      disabled = false,
      disableFocusRipple = false,
      size = 'medium'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, IconButton_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    edge,
    color,
    disabled,
    disableFocusRipple,
    size
  });
  const classes = IconButton_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(IconButtonRoot, (0,esm_extends/* default */.Z)({
    className: (0,clsx/* default */.Z)(classes.root, className),
    centerRipple: true,
    focusRipple: !disableFocusRipple,
    disabled: disabled,
    ref: ref
  }, other, {
    ownerState: ownerState,
    children: children
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const IconButton_IconButton = (IconButton);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/Close.js
var Close = __webpack_require__(305);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/Home.js
var Home = __webpack_require__(9235);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/LightMode.js
var LightMode = __webpack_require__(6250);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/DarkMode.js
var DarkMode = __webpack_require__(5788);
;// CONCATENATED MODULE: ./src/views/Options/DarkModeButton.js
function DarkModeButton(){const{darkMode,toggleDarkMode}=useDarkMode();return/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{onClick:toggleDarkMode,color:"inherit",children:darkMode?/*#__PURE__*/(0,jsx_runtime.jsx)(LightMode/* default */.Z,{}):/*#__PURE__*/(0,jsx_runtime.jsx)(DarkMode/* default */.Z,{})});}
;// CONCATENATED MODULE: ./src/views/Popup/Header.js
function Header(_ref){let{setShowPopup}=_ref;const handleHomepage=()=>{window.open("https://github.com/fishjar/kiss-translator","_blank");};return/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{direction:"row",justifyContent:"space-between",alignItems:"center",spacing:2,children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{direction:"row",justifyContent:"flex-start",alignItems:"center",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{onClick:handleHomepage,children:/*#__PURE__*/(0,jsx_runtime.jsx)(Home/* default */.Z,{})}),/*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography,{component:"div",sx:{userSelect:"none",WebkitUserSelect:"none",fontWeight:"bold"},children:"".concat("KISS Translator"," v").concat("1.8.11")})]}),setShowPopup?/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{onClick:()=>{setShowPopup(false);},children:/*#__PURE__*/(0,jsx_runtime.jsx)(Close/* default */.Z,{})}):/*#__PURE__*/(0,jsx_runtime.jsx)(DarkModeButton,{})]});}
;// CONCATENATED MODULE: ./src/libs/iframe.js
const isIframe=window.self!==window.top;const sendIframeMsg=(action,args)=>{document.querySelectorAll("iframe").forEach(iframe=>{iframe.contentWindow.postMessage({action,args},"*");});};const sendParentMsg=(action,args)=>{window.parent.postMessage({action,args},"*");};
;// CONCATENATED MODULE: ./src/libs/subRules.js
/**
 * 更新缓存同步时间
 * @param {*} url
 */const updateSyncDataCache=async url=>{const{dataCaches={}}=await getSyncWithDefault();dataCaches[url]=Date.now();await updateSync({dataCaches});};/**
 * 同步订阅规则
 * @param {*} url
 * @returns
 */const syncSubRules=async url=>{const res=await apiFetch(url);const rules=checkRules(res).filter(_ref=>{let{pattern}=_ref;return!isAllchar(pattern,GLOBAL_KEY);});if(rules.length>0){await setSubRules(url,rules);}return rules;};/**
 * 同步所有订阅规则
 * @param {*} url
 * @returns
 */const syncAllSubRules=async subrulesList=>{for(const subrules of subrulesList){try{await syncSubRules(subrules.url);await updateSyncDataCache(subrules.url);}catch(err){log_kissLog(err,"sync subrule error: ".concat(subrules.url));}}};/**
 * 根据时间同步所有订阅规则
 * @param {*} url
 * @returns
 */const trySyncAllSubRules=async _ref2=>{let{subrulesList}=_ref2;try{const{subRulesSyncAt}=await getSyncWithDefault();const now=Date.now();const interval=24*60*60*1000;// 间隔一天
if(now-subRulesSyncAt>interval){// 同步订阅规则
await syncAllSubRules(subrulesList);await updateSync({subRulesSyncAt:now});}}catch(err){log_kissLog(err,"try sync all subrules");}};/**
 * 从缓存或远程加载订阅规则
 * @param {*} url
 * @returns
 */const loadOrFetchSubRules=async url=>{let rules=await getSubRules(url);if(!rules||rules.length===0){rules=await syncSubRules(url);await updateSyncDataCache(url);}return rules||[];};
;// CONCATENATED MODULE: ./src/libs/rules.js
/**
 * 根据href匹配规则
 * @param {*} rules
 * @param {string} href
 * @returns
 */const matchRule=async(href,_ref)=>{let{injectRules,subrulesList,owSubrule}=_ref;const rules=await getRulesWithDefault();if(injectRules){try{const selectedSub=subrulesList.find(item=>item.selected);if(selectedSub!==null&&selectedSub!==void 0&&selectedSub.url){const mixRule={};Object.entries(owSubrule).filter(_ref2=>{let[key,val]=_ref2;if(owSubrule.textStyle===REMAIN_KEY&&(key==="bgColor"||key==="textDiyStyle")){return false;}return val!==REMAIN_KEY;}).forEach(_ref3=>{let[key,val]=_ref3;mixRule[key]=val;});let subRules=await loadOrFetchSubRules(selectedSub.url);subRules=subRules.map(item=>({...item,...mixRule}));rules.splice(-1,0,...subRules);}}catch(err){log_kissLog(err,"load injectRules");}}const rule=rules.find(r=>r.pattern.split(",").some(p=>isMatch(href,p.trim())));const globalRule={...GLOBLA_RULE,...(rules.find(r=>r.pattern===GLOBAL_KEY)||{})};if(!rule){return globalRule;}["selector","keepSelector","terms","selectStyle","parentStyle","injectJs","injectCss","fixerSelector","transStartHook","transEndHook","transRemoveHook"].forEach(key=>{var _rule$key;if(!((_rule$key=rule[key])!==null&&_rule$key!==void 0&&_rule$key.trim())){rule[key]=globalRule[key];}});["translator","fromLang","toLang","transOpen","transOnly","transTiming","transTag","transTitle","detectRemote","fixerFunc"].forEach(key=>{if(rule[key]===undefined||rule[key]===GLOBAL_KEY){rule[key]=globalRule[key];}});if(!rule.skipLangs||rule.skipLangs.length===0){rule.skipLangs=globalRule.skipLangs;}if(rule.textStyle===GLOBAL_KEY){rule.textStyle=globalRule.textStyle;rule.bgColor=globalRule.bgColor;rule.textDiyStyle=globalRule.textDiyStyle;}else{var _rule$bgColor,_rule$textDiyStyle;rule.bgColor=((_rule$bgColor=rule.bgColor)===null||_rule$bgColor===void 0?void 0:_rule$bgColor.trim())||globalRule.bgColor;rule.textDiyStyle=((_rule$textDiyStyle=rule.textDiyStyle)===null||_rule$textDiyStyle===void 0?void 0:_rule$textDiyStyle.trim())||globalRule.textDiyStyle;}return rule;};/**
 * 检查过滤rules
 * @param {*} rules
 * @returns
 */const checkRules=rules=>{if(type(rules)==="string"){rules=JSON.parse(rules);}if(type(rules)!=="array"){throw new Error("data error");}const fromLangs=OPT_LANGS_FROM.map(item=>item[0]);const toLangs=OPT_LANGS_TO.map(item=>item[0]);const patternSet=new Set();rules=rules.filter(rule=>type(rule)==="object").filter(_ref4=>{let{pattern}=_ref4;if(type(pattern)!=="string"||patternSet.has(pattern.trim())){return false;}patternSet.add(pattern.trim());return true;}).map(_ref5=>{let{pattern,selector,keepSelector,terms,selectStyle,parentStyle,injectJs,injectCss,translator,fromLang,toLang,textStyle,transOpen,bgColor,textDiyStyle,transOnly,transTiming,transTag,transTitle,detectRemote,skipLangs,fixerSelector,fixerFunc,transStartHook,transEndHook,transRemoveHook}=_ref5;return{pattern:pattern.trim(),selector:type(selector)==="string"?selector:"",keepSelector:type(keepSelector)==="string"?keepSelector:"",terms:type(terms)==="string"?terms:"",selectStyle:type(selectStyle)==="string"?selectStyle:"",parentStyle:type(parentStyle)==="string"?parentStyle:"",injectJs:type(injectJs)==="string"?injectJs:"",injectCss:type(injectCss)==="string"?injectCss:"",bgColor:type(bgColor)==="string"?bgColor:"",textDiyStyle:type(textDiyStyle)==="string"?textDiyStyle:"",translator:matchValue([GLOBAL_KEY,...OPT_TRANS_ALL],translator),fromLang:matchValue([GLOBAL_KEY,...fromLangs],fromLang),toLang:matchValue([GLOBAL_KEY,...toLangs],toLang),textStyle:matchValue([GLOBAL_KEY,...OPT_STYLE_ALL],textStyle),transOpen:matchValue([GLOBAL_KEY,"true","false"],transOpen),transOnly:matchValue([GLOBAL_KEY,"true","false"],transOnly),transTiming:matchValue([GLOBAL_KEY,...OPT_TIMING_ALL],transTiming),transTag:matchValue([GLOBAL_KEY,"span","font"],transTag),transTitle:matchValue([GLOBAL_KEY,"true","false"],transTitle),detectRemote:matchValue([GLOBAL_KEY,"true","false"],detectRemote),skipLangs:type(skipLangs)==="array"?skipLangs:[],fixerSelector:type(fixerSelector)==="string"?fixerSelector:"",transStartHook:type(transStartHook)==="string"?transStartHook:"",transEndHook:type(transEndHook)==="string"?transEndHook:"",transRemoveHook:type(transRemoveHook)==="string"?transRemoveHook:"",fixerFunc:matchValue([GLOBAL_KEY,...FIXER_ALL],fixerFunc)};});return rules;};/**
 * 保存或更新rule
 * @param {*} newRule
 */const saveRule=async newRule=>{const rules=await getRulesWithDefault();const rule=rules.find(item=>isMatch(newRule.pattern,item.pattern));if(rule&&rule.pattern!==GLOBAL_KEY){Object.assign(rule,{...newRule,pattern:rule.pattern});}else{rules.unshift(newRule);}await setRules(rules);trySyncRules();};
;// CONCATENATED MODULE: ./src/libs/index.js
const langdetectMap={[OPT_TRANS_GOOGLE]:apiGoogleLangdetect,[OPT_TRANS_MICROSOFT]:apiMicrosoftLangdetect,[OPT_TRANS_BAIDU]:apiBaiduLangdetect,[OPT_TRANS_TENCENT]:apiTencentLangdetect};/**
 * 清除缓存数据
 */const tryClearCaches=async()=>{try{caches.delete(CACHE_NAME);}catch(err){log_kissLog(err,"clean caches");}};/**
 * 语言识别
 * @param {*} q
 * @returns
 */const tryDetectLang=async function(q){let useRemote=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let langDetector=arguments.length>2&&arguments[2]!==undefined?arguments[2]:OPT_TRANS_MICROSOFT;let lang="";if(useRemote){try{lang=await langdetectMap[langDetector](q);}catch(err){log_kissLog(err,"detect lang remote");}}if(!lang){try{var _browser$i18n,_res$languages,_res$languages$;const res=await(browser===null||browser===void 0?void 0:(_browser$i18n=browser.i18n)===null||_browser$i18n===void 0?void 0:_browser$i18n.detectLanguage(q));lang=res===null||res===void 0?void 0:(_res$languages=res.languages)===null||_res$languages===void 0?void 0:(_res$languages$=_res$languages[0])===null||_res$languages$===void 0?void 0:_res$languages$.language;}catch(err){log_kissLog(err,"detect lang local");}}return lang;};
;// CONCATENATED MODULE: ./src/views/Popup/index.js
function Popup(_ref){let{setShowPopup,translator:tran}=_ref;const i18n=useI18n();const[rule,setRule]=(0,react.useState)(tran===null||tran===void 0?void 0:tran.rule);const[commands,setCommands]=(0,react.useState)({});const handleOpenSetting=()=>{if(!tran){browser===null||browser===void 0?void 0:browser.runtime.openOptionsPage();}else if(isExt){sendBgMsg(MSG_OPEN_OPTIONS);}else{window.open("https://fishjar.github.io/kiss-translator/options.html","_blank");}setShowPopup&&setShowPopup(false);};const handleTransToggle=async e=>{try{setRule({...rule,transOpen:e.target.checked?"true":"false"});if(!tran){await sendTabMsg(MSG_TRANS_TOGGLE);}else{tran.toggle();sendIframeMsg(MSG_TRANS_TOGGLE);}}catch(err){log_kissLog(err,"toggle trans");}};const handleChange=async e=>{try{const{name,value}=e.target;setRule(pre=>({...pre,[name]:value}));if(!tran){await sendTabMsg(MSG_TRANS_PUTRULE,{[name]:value});}else{tran.updateRule({[name]:value});sendIframeMsg(MSG_TRANS_PUTRULE,{[name]:value});}}catch(err){log_kissLog(err,"update rule");}};const handleClearCache=()=>{tryClearCaches();};const handleSaveRule=async()=>{try{let href=window.location.href;if(!tran){const tab=await getCurTab();href=tab.url;}const newRule={...rule,pattern:href.split("/")[2]};if(isExt&&tran){sendBgMsg(MSG_SAVE_RULE,newRule);}else{saveRule(newRule);}}catch(err){log_kissLog(err,"save rule");}};(0,react.useEffect)(()=>{if(tran){return;}(async()=>{try{const res=await sendTabMsg(MSG_TRANS_GETRULE);if(!res.error){setRule(res.data);}}catch(err){log_kissLog(err,"query rule");}})();},[tran]);(0,react.useEffect)(()=>{(async()=>{try{const commands={};if(isExt){const res=await sendBgMsg(MSG_COMMAND_SHORTCUTS);res.forEach(_ref2=>{let{name,shortcut}=_ref2;commands[name]=shortcut;});}else{const shortcuts=tran.setting.shortcuts;if(shortcuts){Object.entries(shortcuts).forEach(_ref3=>{let[key,val]=_ref3;commands[key]=val.join("+");});}}setCommands(commands);}catch(err){log_kissLog(err,"query cmds");}})();},[tran]);if(!rule){return/*#__PURE__*/(0,jsx_runtime.jsxs)(Box_Box,{minWidth:300,children:[!tran&&/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Header,{}),/*#__PURE__*/(0,jsx_runtime.jsx)(Divider_Divider,{})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(Stack_Stack,{sx:{p:2},spacing:3,children:/*#__PURE__*/(0,jsx_runtime.jsx)(Button_Button,{variant:"text",onClick:handleOpenSetting,children:i18n("setting")})})]});}const{transOpen,translator,fromLang,toLang,textStyle}=rule;return/*#__PURE__*/(0,jsx_runtime.jsxs)(Box_Box,{minWidth:300,children:[!tran&&/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Header,{}),/*#__PURE__*/(0,jsx_runtime.jsx)(Divider_Divider,{})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{sx:{p:2},spacing:2,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Stack_Stack,{direction:"row",justifyContent:"space-between",alignItems:"center",spacing:2,children:/*#__PURE__*/(0,jsx_runtime.jsx)(FormControlLabel_FormControlLabel,{control:/*#__PURE__*/(0,jsx_runtime.jsx)(Switch_Switch,{checked:transOpen==="true",onChange:handleTransToggle}),label:commands["toggleTranslate"]?"".concat(i18n("translate_alt"),"(").concat(commands["toggleTranslate"],")"):i18n("translate_alt")})}),/*#__PURE__*/(0,jsx_runtime.jsx)(TextField_TextField,{select:true,SelectProps:{MenuProps:{disablePortal:true}},size:"small",value:translator,name:"translator",label:i18n("translate_service"),onChange:handleChange,children:OPT_TRANS_ALL.map(item=>/*#__PURE__*/(0,jsx_runtime.jsx)(MenuItem_MenuItem,{value:item,children:item},item))}),/*#__PURE__*/(0,jsx_runtime.jsx)(TextField_TextField,{select:true,SelectProps:{MenuProps:{disablePortal:true}},size:"small",value:fromLang,name:"fromLang",label:i18n("from_lang"),onChange:handleChange,children:OPT_LANGS_FROM.map(_ref4=>{let[lang,name]=_ref4;return/*#__PURE__*/(0,jsx_runtime.jsx)(MenuItem_MenuItem,{value:lang,children:name},lang);})}),/*#__PURE__*/(0,jsx_runtime.jsx)(TextField_TextField,{select:true,SelectProps:{MenuProps:{disablePortal:true}},size:"small",value:toLang,name:"toLang",label:i18n("to_lang"),onChange:handleChange,children:OPT_LANGS_TO.map(_ref5=>{let[lang,name]=_ref5;return/*#__PURE__*/(0,jsx_runtime.jsx)(MenuItem_MenuItem,{value:lang,children:name},lang);})}),/*#__PURE__*/(0,jsx_runtime.jsx)(TextField_TextField,{select:true,SelectProps:{MenuProps:{disablePortal:true}},size:"small",value:textStyle,name:"textStyle",label:commands["toggleStyle"]?"".concat(i18n("text_style_alt"),"(").concat(commands["toggleStyle"],")"):i18n("text_style_alt"),onChange:handleChange,children:OPT_STYLE_ALL.map(item=>/*#__PURE__*/(0,jsx_runtime.jsx)(MenuItem_MenuItem,{value:item,children:i18n(item)},item))}),/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{direction:"row",justifyContent:"space-between",alignItems:"center",spacing:2,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Button_Button,{variant:"text",onClick:handleSaveRule,children:i18n("save_rule")}),!isExt&&/*#__PURE__*/(0,jsx_runtime.jsx)(Button_Button,{variant:"text",onClick:handleClearCache,children:i18n("clear_cache")}),/*#__PURE__*/(0,jsx_runtime.jsx)(Button_Button,{variant:"text",onClick:handleOpenSetting,children:i18n("setting")})]})]})]});}
;// CONCATENATED MODULE: ./src/libs/shortcut.js
/**
 * 键盘快捷键监听
 * @param {*} fn
 * @param {*} target
 * @param {*} timeout
 * @returns
 */const shortcutListener=function(fn){let target=arguments.length>1&&arguments[1]!==undefined?arguments[1]:document;let timeout=arguments.length>2&&arguments[2]!==undefined?arguments[2]:3000;const allkeys=new Set();const curkeys=new Set();let timer=null;const handleKeydown=e=>{timer&&clearTimeout(timer);timer=setTimeout(()=>{allkeys.clear();curkeys.clear();clearTimeout(timer);timer=null;},timeout);if(e.code){allkeys.add(e.code);curkeys.add(e.code);fn([...curkeys],[...allkeys]);}};const handleKeyup=e=>{curkeys.delete(e.code);if(curkeys.size===0){fn([...curkeys],[...allkeys]);allkeys.clear();}};target.addEventListener("keydown",handleKeydown,true);target.addEventListener("keyup",handleKeyup,true);return()=>{if(timer){clearTimeout(timer);timer=null;}target.removeEventListener("keydown",handleKeydown);target.removeEventListener("keyup",handleKeyup);};};/**
 * 注册键盘快捷键
 * @param {*} targetKeys
 * @param {*} fn
 * @param {*} target
 * @returns
 */const shortcutRegister=function(){let targetKeys=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];let fn=arguments.length>1?arguments[1]:undefined;let target=arguments.length>2&&arguments[2]!==undefined?arguments[2]:document;return shortcutListener(curkeys=>{if(targetKeys.length>0&&isSameSet(new Set(targetKeys),new Set(curkeys))){fn();}},target);};/**
 * 注册连续快捷键
 * @param {*} targetKeys
 * @param {*} fn
 * @param {*} step
 * @param {*} timeout
 * @param {*} target
 * @returns
 */const stepShortcutRegister=function(){let targetKeys=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];let fn=arguments.length>1?arguments[1]:undefined;let step=arguments.length>2&&arguments[2]!==undefined?arguments[2]:3;let timeout=arguments.length>3&&arguments[3]!==undefined?arguments[3]:500;let target=arguments.length>4&&arguments[4]!==undefined?arguments[4]:document;let count=0;let pre=Date.now();let timer;return shortcutListener((curkeys,allkeys)=>{timer&&clearTimeout(timer);timer=setTimeout(()=>{clearTimeout(timer);count=0;},timeout);if(targetKeys.length>0&&curkeys.length===0){const now=Date.now();if((count===0||now-pre<timeout)&&isSameSet(new Set(targetKeys),new Set(allkeys))){count++;if(count===step){count=0;fn();}}else{count=0;}pre=now;}},target);};
;// CONCATENATED MODULE: ./src/views/Action/index.js
function Action(_ref){var _fab$x,_fab$y;let{translator,fab}=_ref;const fabWidth=40;const[showPopup,setShowPopup]=(0,react.useState)(false);const[windowSize,setWindowSize]=(0,react.useState)({w:window.innerWidth,h:window.innerHeight});const[moved,setMoved]=(0,react.useState)(false);const handleWindowResize=(0,react.useMemo)(()=>debounce(()=>{setWindowSize({w:window.innerWidth,h:window.innerHeight});}),[]);const handleWindowClick=e=>{setShowPopup(false);};const handleStart=(0,react.useCallback)(()=>{setMoved(false);},[]);const handleMove=(0,react.useCallback)(()=>{setMoved(true);},[]);(0,react.useEffect)(()=>{if(!isGm){return;}// 注册快捷键
const shortcuts=translator.setting.shortcuts||DEFAULT_SHORTCUTS;const clearShortcuts=[shortcutRegister(shortcuts[OPT_SHORTCUT_TRANSLATE],()=>{translator.toggle();sendIframeMsg(MSG_TRANS_TOGGLE);setShowPopup(false);}),shortcutRegister(shortcuts[OPT_SHORTCUT_STYLE],()=>{translator.toggleStyle();sendIframeMsg(MSG_TRANS_TOGGLE_STYLE);setShowPopup(false);}),shortcutRegister(shortcuts[OPT_SHORTCUT_POPUP],()=>{setShowPopup(pre=>!pre);}),shortcutRegister(shortcuts[OPT_SHORTCUT_SETTING],()=>{window.open("https://fishjar.github.io/kiss-translator/options.html","_blank");})];return()=>{clearShortcuts.forEach(fn=>{fn();});};},[translator]);(0,react.useEffect)(()=>{if(!isGm){return;}// 注册菜单
try{const menuCommandIds=[];const{contextMenuType,uiLang}=translator.setting;contextMenuType!==0&&menuCommandIds.push(GM.registerMenuCommand(getI18n(uiLang,"translate_switch"),event=>{translator.toggle();sendIframeMsg(MSG_TRANS_TOGGLE);setShowPopup(false);},"Q"),GM.registerMenuCommand(getI18n(uiLang,"toggle_style"),event=>{translator.toggleStyle();sendIframeMsg(MSG_TRANS_TOGGLE_STYLE);setShowPopup(false);},"C"),GM.registerMenuCommand(getI18n(uiLang,"open_menu"),event=>{setShowPopup(pre=>!pre);},"K"),GM.registerMenuCommand(getI18n(uiLang,"open_setting"),event=>{window.open("https://fishjar.github.io/kiss-translator/options.html","_blank");},"O"));return()=>{menuCommandIds.forEach(id=>{GM.unregisterMenuCommand(id);});};}catch(err){log_kissLog(err,"registerMenuCommand");}},[translator]);(0,react.useEffect)(()=>{window.addEventListener("resize",handleWindowResize);return()=>{window.removeEventListener("resize",handleWindowResize);};},[handleWindowResize]);(0,react.useEffect)(()=>{window.addEventListener("click",handleWindowClick);return()=>{window.removeEventListener("click",handleWindowClick);};},[]);const popProps=(0,react.useMemo)(()=>{const width=Math.min(windowSize.w,300);const height=Math.min(windowSize.h,442);const left=(windowSize.w-width)/2;const top=(windowSize.h-height)/2;return{windowSize,width,height,left,top};},[windowSize]);const fabProps={windowSize,width:fabWidth,height:fabWidth,left:(_fab$x=fab.x)!==null&&_fab$x!==void 0?_fab$x:-fabWidth,top:(_fab$y=fab.y)!==null&&_fab$y!==void 0?_fab$y:windowSize.h/2};return/*#__PURE__*/(0,jsx_runtime.jsx)(SettingProvider,{children:/*#__PURE__*/(0,jsx_runtime.jsxs)(Theme,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Draggable,{...popProps,show:showPopup,onStart:handleStart,onMove:handleMove,usePaper:true,handler:/*#__PURE__*/(0,jsx_runtime.jsxs)(Box_Box,{style:{cursor:"move"},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Header,{setShowPopup:setShowPopup}),/*#__PURE__*/(0,jsx_runtime.jsx)(Divider_Divider,{})]}),children:showPopup&&/*#__PURE__*/(0,jsx_runtime.jsx)(Popup,{setShowPopup:setShowPopup,translator:translator})},"pop"),/*#__PURE__*/(0,jsx_runtime.jsx)(Draggable,{snapEdge:true,...fabProps,show:fab.isHide?false:!showPopup,onStart:handleStart,onMove:handleMove,handler:/*#__PURE__*/(0,jsx_runtime.jsx)(Fab_Fab,{size:"small",color:"primary",onClick:e=>{if(!moved){setShowPopup(pre=>!pre);}},children:/*#__PURE__*/(0,jsx_runtime.jsx)(Translate/* default */.Z,{sx:{width:24,height:24}})})},"fab")]})});}
// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+cache@11.11.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js + 7 modules
var emotion_cache_browser_esm = __webpack_require__(3029);
;// CONCATENATED MODULE: ./src/libs/svg.js
const loadingSvg="\n<svg viewBox=\"0 0 100 100\" style=\"display:inline-block; width:100%; height: 100%;\">\n    <circle fill=\"#209CEE\" stroke=\"none\" cx=\"6\" cy=\"50\" r=\"6\">\n    <animateTransform\n        attributeName=\"transform\"\n        dur=\"1s\"\n        type=\"translate\"\n        values=\"0 15 ; 0 -15; 0 15\"\n        repeatCount=\"indefinite\"\n        begin=\"0.1\"\n    />\n    </circle>\n    <circle fill=\"#209CEE\" stroke=\"none\" cx=\"30\" cy=\"50\" r=\"6\">\n    <animateTransform\n        attributeName=\"transform\"\n        dur=\"1s\"\n        type=\"translate\"\n        values=\"0 10 ; 0 -10; 0 10\"\n        repeatCount=\"indefinite\"\n        begin=\"0.2\"\n    />\n    </circle>\n    <circle fill=\"#209CEE\" stroke=\"none\" cx=\"54\" cy=\"50\" r=\"6\">\n    <animateTransform\n        attributeName=\"transform\"\n        dur=\"1s\"\n        type=\"translate\"\n        values=\"0 5 ; 0 -5; 0 5\"\n        repeatCount=\"indefinite\"\n        begin=\"0.3\"\n    />\n    </circle>\n</svg>\n";
;// CONCATENATED MODULE: ./src/views/Content/LoadingIcon.js
function LoadingIcon(){return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{style:{display:"inline-block",width:"1.2em",height:"1em"},dangerouslySetInnerHTML:{__html:loadingSvg}});}
;// CONCATENATED MODULE: ./src/hooks/Translate.js
/**
 * 翻译hook
 * @param {*} q
 * @param {*} rule
 * @param {*} setting
 * @returns
 */function useTranslate(q,rule,setting){const[text,setText]=(0,react.useState)("");const[loading,setLoading]=(0,react.useState)(false);const[sameLang,setSamelang]=(0,react.useState)(false);const{translator,fromLang,toLang,detectRemote,skipLangs=[]}=rule;(0,react.useEffect)(()=>{(async()=>{try{setLoading(true);if(!q.replace(/\[(\d+)\]/g,"").trim()){setText(q);setSamelang(false);return;}const deLang=await tryDetectLang(q,detectRemote==="true",setting.langDetector);if(deLang&&(toLang.includes(deLang)||skipLangs.includes(deLang))){setSamelang(true);}else{const[trText,isSame]=await apiTranslate({translator,text:q,fromLang,toLang,apiSetting:{...DEFAULT_TRANS_APIS[translator],...(setting.transApis[translator]||{})}});setText(trText);setSamelang(isSame);}}catch(err){log_kissLog(err,"translate");}finally{setLoading(false);}})();},[q,translator,fromLang,toLang,detectRemote,skipLangs,setting]);return{text,sameLang,loading};}
;// CONCATENATED MODULE: ./src/views/Content/index.js
var Content_templateObject,Content_templateObject2,Content_templateObject3,Content_templateObject4,_templateObject5;const LINE_STYLES={[OPT_STYLE_LINE]:"solid",[OPT_STYLE_DOTLINE]:"dotted",[OPT_STYLE_DASHLINE]:"dashed",[OPT_STYLE_WAVYLINE]:"wavy"};const StyledSpan=(0,styled/* default */.ZP)("span")(Content_templateObject||(Content_templateObject=_taggedTemplateLiteral(["\n  ","\n"])),_ref=>{let{textStyle,textDiyStyle,bgColor}=_ref;switch(textStyle){case OPT_STYLE_LINE:// 下划线
case OPT_STYLE_DOTLINE:// 点状线
case OPT_STYLE_DASHLINE:// 虚线
case OPT_STYLE_WAVYLINE:// 波浪线
return (0,emotion_react_browser_esm/* css */.iv)(Content_templateObject2||(Content_templateObject2=_taggedTemplateLiteral(["\n          opacity: 0.6;\n          -webkit-opacity: 0.6;\n          text-decoration-line: underline;\n          text-decoration-style: ",";\n          text-decoration-color: ",";\n          text-decoration-thickness: 2px;\n          text-underline-offset: 0.3em;\n          -webkit-text-decoration-line: underline;\n          -webkit-text-decoration-style: ",";\n          -webkit-text-decoration-color: ",";\n          -webkit-text-decoration-thickness: 2px;\n          -webkit-text-underline-offset: 0.3em;\n          &:hover {\n            opacity: 1;\n            -webkit-opacity: 1;\n          }\n        "])),LINE_STYLES[textStyle],bgColor,LINE_STYLES[textStyle],bgColor);case OPT_STYLE_FUZZY:// 模糊
return (0,emotion_react_browser_esm/* css */.iv)(Content_templateObject3||(Content_templateObject3=_taggedTemplateLiteral(["\n          filter: blur(0.2em);\n          -webkit-filter: blur(0.2em);\n          &:hover {\n            filter: none;\n            -webkit-filter: none;\n          }\n        "])));case OPT_STYLE_HIGHLIGHT:// 高亮
return (0,emotion_react_browser_esm/* css */.iv)(Content_templateObject4||(Content_templateObject4=_taggedTemplateLiteral(["\n          color: #fff;\n          background-color: ",";\n        "])),bgColor||DEFAULT_COLOR);case OPT_STYLE_BLOCKQUOTE:// 引用
return (0,emotion_react_browser_esm/* css */.iv)(_templateObject5||(_templateObject5=_taggedTemplateLiteral(["\n          opacity: 0.6;\n          -webkit-opacity: 0.6;\n          display: block;\n          padding: 0 0.75em;\n          border-left: 0.25em solid ",";\n          &:hover {\n            opacity: 1;\n            -webkit-opacity: 1;\n          }\n        "])),bgColor||DEFAULT_COLOR);case OPT_STYLE_DIY:// 自定义
return textDiyStyle;default:return"";}});function Content(_ref2){let{q,keeps,translator,$el}=_ref2;const[rule,setRule]=(0,react.useState)(translator.rule);const{text,sameLang,loading}=useTranslate(q,rule,translator.setting);const{transOpen,textStyle,bgColor,textDiyStyle,transOnly,transTag,transEndHook}=rule;const{newlineLength}=translator.setting;const handleKissEvent=e=>{const{action,args}=e.detail;switch(action){case MSG_TRANS_CURRULE:setRule(args);break;default:}};(0,react.useEffect)(()=>{window.addEventListener(translator.eventName,handleKissEvent);return()=>{window.removeEventListener(translator.eventName,handleKissEvent);};},[translator.eventName]);(0,react.useEffect)(()=>{// 运行钩子函数
if(text&&transEndHook!==null&&transEndHook!==void 0&&transEndHook.trim()){libs_interpreter.run("exports.transEndHook = ".concat(transEndHook));libs_interpreter.exports.transEndHook($el,q,text,keeps);}},[$el,q,text,keeps,transEndHook]);const gap=(0,react.useMemo)(()=>{if(transOnly==="true"){return"";}return q.length>=newlineLength?/*#__PURE__*/(0,jsx_runtime.jsx)("br",{}):" ";},[q,transOnly,newlineLength]);const styles=(0,react.useMemo)(()=>({textStyle,textDiyStyle,bgColor,as:transTag}),[textStyle,textDiyStyle,bgColor,transTag]);if(loading){return/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[gap,/*#__PURE__*/(0,jsx_runtime.jsx)(LoadingIcon,{})]});}if(!text||sameLang){return;}if(transOnly==="true"&&transOpen==="true"&&$el.querySelector(APP_LCNAME)){Array.from($el.childNodes).forEach(el=>{if(el.localName!==APP_LCNAME){el.remove();}});}if(keeps.length>0){return/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[gap,/*#__PURE__*/(0,jsx_runtime.jsx)(StyledSpan,{...styles,dangerouslySetInnerHTML:{__html:text.replace(/\[(\d+)\]/g,(_,p)=>keeps[parseInt(p)])}})]});}return/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[gap,/*#__PURE__*/(0,jsx_runtime.jsx)(StyledSpan,{...styles,children:text})]});}
;// CONCATENATED MODULE: ./src/libs/injector.js
// Function to inject inline JavaScript code
const injectInlineJs=code=>{var _document$body;const el=document.createElement("script");el.setAttribute("data-source","KISS-Calendar injectInlineJs");el.setAttribute("type","text/javascript");el.textContent=code;(_document$body=document.body)===null||_document$body===void 0?void 0:_document$body.appendChild(el);};// Function to inject external JavaScript file
const injectExternalJs=src=>{var _document$body2;const el=document.createElement("script");el.setAttribute("data-source","KISS-Calendar injectExternalJs");el.setAttribute("type","text/javascript");el.setAttribute("src",src);(_document$body2=document.body)===null||_document$body2===void 0?void 0:_document$body2.appendChild(el);};// Function to inject internal CSS code
const injectInternalCss=styles=>{var _document$head;const el=document.createElement("style");el.setAttribute("data-source","KISS-Calendar injectInternalCss");el.textContent=styles;(_document$head=document.head)===null||_document$head===void 0?void 0:_document$head.appendChild(el);};// Function to inject external CSS file
const injectExternalCss=href=>{var _document$head2;const el=document.createElement("link");el.setAttribute("data-source","KISS-Calendar injectExternalCss");el.setAttribute("rel","stylesheet");el.setAttribute("type","text/css");el.setAttribute("href",href);(_document$head2=document.head)===null||_document$head2===void 0?void 0:_document$head2.appendChild(el);};
;// CONCATENATED MODULE: ./src/libs/translator.js
/**
 * 翻译类
 */class Translator{_updatePool(translator){if(!translator){return;}const{fetchInterval=DEFAULT_FETCH_INTERVAL,fetchLimit=DEFAULT_FETCH_LIMIT}=this._setting.transApis[translator]||{};updateFetchPool(fetchInterval,fetchLimit);}constructor(rule,setting){var _this2=this;this._rule={};this._setting={};this._rootNodes=new Set();this._tranNodes=new Map();this._skipNodeNames=[APP_LCNAME,"style","svg","img","audio","video","textarea","input","button","select","option","head","script","iframe"];this._eventName=utils_genEventName();this._mouseoverNode=null;this._keepSelector=[null,null];this._terms=[];this._docTitle="";// 显示
this._interseObserver=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{if(entry.isIntersecting){observer.unobserve(entry.target);this._render(entry.target);}});},{threshold:0.1});// 变化
this._mutaObserver=new MutationObserver(mutations=>{mutations.forEach(mutation=>{if(!this._skipNodeNames.includes(mutation.target.localName)&&mutation.addedNodes.length>0){const nodes=Array.from(mutation.addedNodes).filter(node=>{if(this._skipNodeNames.includes(node.localName)||node.id===APP_LCNAME){return false;}return true;});if(nodes.length>0){// const rootNode = mutation.target.getRootNode();
// todo
this._reTranslate();}}});});// 插入 shadowroot
this._overrideAttachShadow=()=>{const _this=this;const _attachShadow=HTMLElement.prototype.attachShadow;HTMLElement.prototype.attachShadow=function(){_this._reTranslate();return _attachShadow.apply(this,arguments);};};this.updateRule=obj=>{this.rule={...this.rule,...obj};this._updatePool(obj.translator);};this.toggle=()=>{if(this.rule.transOpen==="true"){this.rule={...this.rule,transOpen:"false"};this._unRegister();}else{this.rule={...this.rule,transOpen:"true"};this._register();}};this.toggleStyle=()=>{const textStyle=this.rule.textStyle===OPT_STYLE_FUZZY?OPT_STYLE_DASHLINE:OPT_STYLE_FUZZY;this.rule={...this.rule,textStyle};};this.translateText=async text=>{var _this$_setting$transA;const{translator,fromLang,toLang}=this._rule;const apiSetting=((_this$_setting$transA=this._setting.transApis)===null||_this$_setting$transA===void 0?void 0:_this$_setting$transA[translator])||DEFAULT_TRANS_APIS[translator];const[trText]=await apiTranslate({text,translator,fromLang,toLang,apiSetting});return trText;};this._querySelectorAll=(selector,node)=>{try{return Array.from(node.querySelectorAll(selector));}catch(err){log_kissLog(selector,"querySelectorAll err");}return[];};this._queryFilter=(selector,rootNode)=>{return this._querySelectorAll(selector,rootNode).filter(node=>this._queryFilter(selector,node).length===0);};this._queryShadowNodes=(selector,rootNode)=>{this._rootNodes.add(rootNode);this._queryFilter(selector,rootNode).forEach(item=>{if(!this._tranNodes.has(item)){this._tranNodes.set(item,"");}});Array.from(rootNode.querySelectorAll("*")).map(item=>item.shadowRoot).filter(Boolean).forEach(item=>{this._queryShadowNodes(selector,item);});};this._queryNodes=function(){let rootNode=arguments.length>0&&arguments[0]!==undefined?arguments[0]:document;// const childRoots = Array.from(rootNode.querySelectorAll("*"))
//   .map((item) => item.shadowRoot)
//   .filter(Boolean);
// const childNodes = childRoots.map((item) => this._queryNodes(item));
// const nodes = Array.from(rootNode.querySelectorAll(this.rule.selector));
// return nodes.concat(childNodes).flat();
_this2._rootNodes.add(rootNode);_this2._rule.selector.split(";").map(item=>item.trim()).filter(Boolean).forEach(selector=>{if(selector.includes(SHADOW_KEY)){const[outSelector,inSelector]=selector.split(SHADOW_KEY).map(item=>item.trim());if(outSelector&&inSelector){const outNodes=_this2._querySelectorAll(outSelector,rootNode);outNodes.forEach(outNode=>{if(outNode.shadowRoot){// this._rootNodes.add(outNode.shadowRoot);
// this._queryFilter(inSelector, outNode.shadowRoot).forEach(
//   (item) => {
//     if (!this._tranNodes.has(item)) {
//       this._tranNodes.set(item, "");
//     }
//   }
// );
_this2._queryShadowNodes(inSelector,outNode.shadowRoot);}});}}else{_this2._queryFilter(selector,rootNode).forEach(item=>{if(!_this2._tranNodes.has(item)){_this2._tranNodes.set(item,"");}});}});};this._register=()=>{const{fromLang,toLang,injectJs,injectCss,fixerSelector,fixerFunc}=this._rule;if(fromLang===toLang){return;}// webfix
if(fixerSelector&&fixerFunc!=="-"){runFixer(fixerSelector,fixerFunc);}// 注入用户JS/CSS
if(isExt){injectJs&&sendBgMsg(MSG_INJECT_JS,injectJs);injectCss&&sendBgMsg(MSG_INJECT_CSS,injectCss);}else{injectJs&&injectInlineJs(injectJs);injectCss&&injectInternalCss(injectCss);}// 搜索节点
this._queryNodes();this._rootNodes.forEach(node=>{// 监听节点变化;
this._mutaObserver.observe(node,{childList:true,subtree:true// characterData: true,
});});if(!this._rule.transTiming||this._rule.transTiming===OPT_TIMING_PAGESCROLL){// 监听节点显示
this._tranNodes.forEach((_,node)=>{this._interseObserver.observe(node);});}else if(this._rule.transTiming===OPT_TIMING_PAGEOPEN){// 全文直接翻译
this._tranNodes.forEach((_,node)=>{this._render(node);});}else{// 监听鼠标悬停
window.addEventListener("keydown",this._handleKeydown);this._tranNodes.forEach((_,node)=>{node.addEventListener("mouseenter",this._handleMouseover);node.addEventListener("mouseleave",this._handleMouseout);});}// 翻译页面标题
if(this._rule.transTitle==="true"&&!this._docTitle){const title=document.title;this._docTitle=title;this.translateText(title).then(trText=>{document.title="".concat(trText," | ").concat(title);});}};this._handleMouseover=e=>{// console.log("mouseenter", e);
if(!this._tranNodes.has(e.target)){return;}const key=this._rule.transTiming.slice(3);if(this._rule.transTiming===OPT_TIMING_MOUSEOVER||e[key]){e.target.removeEventListener("mouseenter",this._handleMouseover);e.target.removeEventListener("mouseleave",this._handleMouseout);this._render(e.target);}else{this._mouseoverNode=e.target;}};this._handleMouseout=e=>{// console.log("mouseleave", e);
if(!this._tranNodes.has(e.target)){return;}this._mouseoverNode=null;};this._handleKeydown=e=>{// console.log("keydown", e);
const key=this._rule.transTiming.slice(3);if(e[key]&&this._mouseoverNode){this._mouseoverNode.removeEventListener("mouseenter",this._handleMouseover);this._mouseoverNode.removeEventListener("mouseleave",this._handleMouseout);const node=this._mouseoverNode;this._render(node);this._mouseoverNode=null;}};this._unRegister=()=>{// 恢复页面标题
if(this._docTitle){document.title=this._docTitle;this._docTitle="";}// 解除节点变化监听
this._mutaObserver.disconnect();// 解除节点显示监听
// this._interseObserver.disconnect();
// 移除键盘监听
window.removeEventListener("keydown",this._handleKeydown);const{transRemoveHook}=this._rule;this._tranNodes.forEach((innerHTML,node)=>{if(!this._rule.transTiming||this._rule.transTiming===OPT_TIMING_PAGESCROLL){// 解除节点显示监听
this._interseObserver.unobserve(node);}else if(this._rule.transTiming!==OPT_TIMING_PAGEOPEN){// 移除鼠标悬停监听
// node.style.pointerEvents = "none";
node.removeEventListener("mouseenter",this._handleMouseover);node.removeEventListener("mouseleave",this._handleMouseout);}// 移除/恢复元素
if(innerHTML){if(this._rule.transOnly==="true"){node.innerHTML=innerHTML;}else{var _node$querySelector;(_node$querySelector=node.querySelector(APP_LCNAME))===null||_node$querySelector===void 0?void 0:_node$querySelector.remove();}// 钩子函数
if(transRemoveHook!==null&&transRemoveHook!==void 0&&transRemoveHook.trim()){libs_interpreter.run("exports.transRemoveHook = ".concat(transRemoveHook));libs_interpreter.exports.transRemoveHook(node);}}});// 移除用户JS/CSS
this._removeInjector();// 清空节点集合
this._rootNodes.clear();this._tranNodes.clear();// 清空任务池
clearFetchPool();};this._removeInjector=()=>{var _document$querySelect;(_document$querySelect=document.querySelectorAll("[data-source^=\"KISS-Calendar\"]"))===null||_document$querySelect===void 0?void 0:_document$querySelect.forEach(el=>el.remove());};this._reTranslate=debounce(()=>{if(this._rule.transOpen==="true"){window.removeEventListener("keydown",this._handleKeydown);this._mutaObserver.disconnect();this._interseObserver.disconnect();this._removeInjector();this._register();}},this._setting.transInterval);this._invalidLength=q=>{var _this$_setting$minLen,_this$_setting$maxLen;return!q||q.length<((_this$_setting$minLen=this._setting.minLength)!==null&&_this$_setting$minLen!==void 0?_this$_setting$minLen:TRANS_MIN_LENGTH)||q.length>((_this$_setting$maxLen=this._setting.maxLength)!==null&&_this$_setting$maxLen!==void 0?_this$_setting$maxLen:TRANS_MAX_LENGTH);};this._render=el=>{let traEl=el.querySelector(APP_LCNAME);// 已翻译
if(traEl){if(this._rule.transOnly==="true"){return;}const preText=this._tranNodes.get(el);const curText=el.innerText.trim();// const traText = traEl.innerText.trim();
// todo
// 1. traText when loading
// 2. replace startsWith
if(curText.startsWith(preText)){return;}traEl.remove();}let q=el.innerText.trim();if(this._rule.transOnly==="true"){this._tranNodes.set(el,el.innerHTML);}else{this._tranNodes.set(el,q);}const keeps=[];// 翻译开始钩子函数
const{transStartHook}=this._rule;if(transStartHook!==null&&transStartHook!==void 0&&transStartHook.trim()){libs_interpreter.run("exports.transStartHook = ".concat(transStartHook));libs_interpreter.exports.transStartHook(el,q);}// 保留元素
const[matchSelector,subSelector]=this._keepSelector;if(matchSelector||subSelector){let text="";el.childNodes.forEach(child=>{if(child.nodeType===1&&(matchSelector&&child.matches(matchSelector)||subSelector&&child.querySelector(subSelector))){if(child.nodeName==="IMG"){child.style.cssText+="width: ".concat(child.width,"px;");child.style.cssText+="height: ".concat(child.height,"px;");}text+="[".concat(keeps.length,"]");keeps.push(child.outerHTML);}else{text+=child.textContent;}});if(keeps.length>0){// textContent会保留些无用的换行符,严重影响翻译质量
if(q.includes("\n")){q=text;}else{q=text.replaceAll("\n"," ");}}}// 太长或太短
if(this._invalidLength(q.replace(/\[(\d+)\]/g,"").trim())){return;}// 专业术语
if(this._terms.length>0){for(const term of this._terms){const re=new RegExp(term[0],"g");q=q.replace(re,t=>{const text="[".concat(keeps.length,"]");keeps.push("<i class=\"kiss-trem\">".concat(term[1]||t,"</i>"));return text;});}}// 附加样式
const{selectStyle,parentStyle}=this._rule;el.style.cssText+=selectStyle;if(el.parentElement){el.parentElement.style.cssText+=parentStyle;}// 插入译文节点
traEl=document.createElement(APP_LCNAME);traEl.style.visibility="visible";// if (this._rule.transOnly === "true") {
//   el.innerHTML = "";
// }
el.appendChild(traEl);// 渲染译文节点
const root=(0,client.createRoot)(traEl);root.render(/*#__PURE__*/(0,jsx_runtime.jsx)(Content,{q:q,keeps:keeps,translator:this,$el:el}));};this._overrideAttachShadow();this._setting=setting;this._rule=rule;this._keepSelector=(rule.keepSelector||"").split(SHADOW_KEY).map(item=>item.trim());this._terms=(rule.terms||"").split(/\n|;/).map(item=>item.split(",").map(item=>item.trim())).filter(_ref=>{let[term]=_ref;return Boolean(term);});this._updatePool(rule.translator);if(rule.transOpen==="true"){this._register();}}get setting(){return this._setting;}get eventName(){return this._eventName;}get rule(){// console.log("get rule", this._rule);
return this._rule;}set rule(rule){// console.log("set rule", rule);
this._rule=rule;// 广播消息
const eventName=this._eventName;window.dispatchEvent(new CustomEvent(eventName,{detail:{action:MSG_TRANS_CURRULE,args:rule}}));}}
;// CONCATENATED MODULE: ./src/views/Selection/TranBtn.js
function TranBtn(_ref){let{onTrigger,btnEvent,position,btnOffsetX,btnOffsetY}=_ref;const left=limitNumber(position.x+btnOffsetX,0,window.innerWidth-32);const top=limitNumber(position.y+btnOffsetY,0,window.innerHeight-32);return/*#__PURE__*/(0,jsx_runtime.jsx)("div",{className:"KT-tranbtn",style:{cursor:"pointer",// position: "absolute",
position:"fixed",left,top,zIndex:2147483647},[btnEvent]:onTrigger,children:/*#__PURE__*/(0,jsx_runtime.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:isMobile?"32":"20",height:isMobile?"32":"20",viewBox:"0 0 32 32",version:"1.1",children:[/*#__PURE__*/(0,jsx_runtime.jsx)("path",{d:"M0 0 C10.56 0 21.12 0 32 0 C32 10.56 32 21.12 32 32 C21.44 32 10.88 32 0 32 C0 21.44 0 10.88 0 0 Z ",fill:"#209CEE",transform:"translate(0,0)"}),/*#__PURE__*/(0,jsx_runtime.jsx)("path",{d:"M0 0 C0.66 0 1.32 0 2 0 C2 2.97 2 5.94 2 9 C2.969375 8.2575 3.93875 7.515 4.9375 6.75 C5.48277344 6.33234375 6.02804688 5.9146875 6.58984375 5.484375 C8.39053593 3.83283924 8.39053593 3.83283924 9 0 C13.95 0 18.9 0 24 0 C24 0.99 24 1.98 24 3 C22.68 3 21.36 3 20 3 C20 9.27 20 15.54 20 22 C19.01 22 18.02 22 17 22 C17 15.73 17 9.46 17 3 C15.35 3 13.7 3 12 3 C11.731875 3.598125 11.46375 4.19625 11.1875 4.8125 C10.01506533 6.97224808 8.80630718 8.35790256 7 10 C8.01790655 12.27071461 8.77442829 13.80784632 10.6875 15.4375 C11.120625 15.953125 11.55375 16.46875 12 17 C11.6875 19.6875 11.6875 19.6875 11 22 C10.34 22 9.68 22 9 22 C8.773125 21.236875 8.54625 20.47375 8.3125 19.6875 C6.73268318 16.45263699 5.16717283 15.58358642 2 14 C2 16.64 2 19.28 2 22 C1.34 22 0.68 22 0 22 C0 14.74 0 7.48 0 0 Z ",fill:"#E9F5FD",transform:"translate(4,5)"})]})});}
;// CONCATENATED MODULE: ./src/views/Selection/DraggableResizable.js
function Pointer(_ref){let{direction,size,setSize,position,setPosition,children,minSize,maxSize,...props}=_ref;const[origin,setOrigin]=(0,react.useState)(null);function handlePointerDown(e){!isMobile&&e.target.setPointerCapture(e.pointerId);const{clientX,clientY}=isMobile?e.targetTouches[0]:e;setOrigin({x:position.x,y:position.y,w:size.w,h:size.h,clientX,clientY});}function handlePointerMove(e){const{clientX,clientY}=isMobile?e.targetTouches[0]:e;if(origin){const dx=clientX-origin.clientX;const dy=clientY-origin.clientY;let x=position.x;let y=position.y;let w=size.w;let h=size.h;switch(direction){case"Header":x=origin.x+dx;y=origin.y+dy;break;case"TopLeft":x=origin.x+dx;y=origin.y+dy;w=origin.w-dx;h=origin.h-dy;break;case"Top":y=origin.y+dy;h=origin.h-dy;break;case"TopRight":y=origin.y+dy;w=origin.w+dx;h=origin.h-dy;break;case"Left":x=origin.x+dx;w=origin.w-dx;break;case"Right":w=origin.w+dx;break;case"BottomLeft":x=origin.x+dx;w=origin.w-dx;h=origin.h+dy;break;case"Bottom":h=origin.h+dy;break;case"BottomRight":w=origin.w+dx;h=origin.h+dy;break;default:}if(w<minSize.w){w=minSize.w;x=position.x;}if(w>maxSize.w){w=maxSize.w;x=position.x;}if(h<minSize.h){h=minSize.h;y=position.y;}if(h>maxSize.h){h=maxSize.h;y=position.y;}setPosition({x,y});setSize({w,h});}}function handlePointerUp(e){e.stopPropagation();setOrigin(null);}const touchProps=isMobile?{onTouchStart:handlePointerDown,onTouchMove:handlePointerMove,onTouchEnd:handlePointerUp}:{onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp};return/*#__PURE__*/(0,jsx_runtime.jsx)("div",{...props,...touchProps,children:children});}function DraggableResizable(_ref2){let{header,children,position={x:0,y:0},size={w:600,h:400},minSize={w:300,h:200},maxSize={w:1200,h:1200},setSize,setPosition,onChangeSize,onChangePosition,...props}=_ref2;const lineWidth=4;const opts={size,setSize,position,setPosition,minSize,maxSize};return/*#__PURE__*/(0,jsx_runtime.jsxs)(Box_Box,{className:"KT-draggable",style:{touchAction:"none",position:"fixed",left:position.x,top:position.y,display:"grid",gridTemplateColumns:"".concat(lineWidth*2,"px auto ").concat(lineWidth*2,"px"),gridTemplateRows:"".concat(lineWidth*2,"px auto ").concat(lineWidth*2,"px"),zIndex:2147483647},...props,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Pointer,{direction:"TopLeft",style:{transform:"translate(".concat(lineWidth,"px, ").concat(lineWidth,"px)"),cursor:"nw-resize"},...opts}),/*#__PURE__*/(0,jsx_runtime.jsx)(Pointer,{direction:"Top",style:{margin:"0 ".concat(lineWidth,"px"),transform:"translate(0px, ".concat(lineWidth,"px)"),cursor:"row-resize"},...opts}),/*#__PURE__*/(0,jsx_runtime.jsx)(Pointer,{direction:"TopRight",style:{transform:"translate(-".concat(lineWidth,"px, ").concat(lineWidth,"px)"),cursor:"ne-resize"},...opts}),/*#__PURE__*/(0,jsx_runtime.jsx)(Pointer,{direction:"Left",style:{margin:"".concat(lineWidth,"px 0"),transform:"translate(".concat(lineWidth,"px, 0px)"),cursor:"col-resize"},...opts}),/*#__PURE__*/(0,jsx_runtime.jsxs)(Paper_Paper,{className:"KT-draggable-body",elevation:4,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Pointer,{className:"KT-draggable-header",direction:"Header",style:{cursor:"move"},...opts,children:header}),/*#__PURE__*/(0,jsx_runtime.jsx)(Box_Box,{className:"KT-draggable-container",style:{width:size.w,height:size.h,overflow:"hidden auto"},children:children})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(Pointer,{direction:"Right",style:{margin:"".concat(lineWidth,"px 0"),transform:"translate(-".concat(lineWidth,"px, 0px)"),cursor:"col-resize"},...opts}),/*#__PURE__*/(0,jsx_runtime.jsx)(Pointer,{direction:"BottomLeft",style:{transform:"translate(".concat(lineWidth,"px, -").concat(lineWidth,"px)"),cursor:"ne-resize"},...opts}),/*#__PURE__*/(0,jsx_runtime.jsx)(Pointer,{direction:"Bottom",style:{margin:"0 ".concat(lineWidth,"px"),transform:"translate(0px, -".concat(lineWidth,"px)"),cursor:"row-resize"},...opts}),/*#__PURE__*/(0,jsx_runtime.jsx)(Pointer,{direction:"BottomRight",style:{transform:"translate(-".concat(lineWidth,"px, -").concat(lineWidth,"px)"),cursor:"nw-resize"},...opts})]});}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Grid/GridContext.js
'use client';



/**
 * @ignore - internal component.
 */
const GridContext = /*#__PURE__*/react.createContext();
if (false) {}
/* harmony default export */ const Grid_GridContext = (GridContext);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Grid/gridClasses.js


function getGridUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiGrid', slot);
}
const SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const DIRECTIONS = ['column-reverse', 'column', 'row-reverse', 'row'];
const WRAPS = ['nowrap', 'wrap-reverse', 'wrap'];
const GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
const gridClasses = (0,generateUtilityClasses/* default */.Z)('MuiGrid', ['root', 'container', 'item', 'zeroMinWidth',
// spacings
...SPACINGS.map(spacing => "spacing-xs-".concat(spacing)),
// direction values
...DIRECTIONS.map(direction => "direction-xs-".concat(direction)),
// wrap values
...WRAPS.map(wrap => "wrap-xs-".concat(wrap)),
// grid sizes for all breakpoints
...GRID_SIZES.map(size => "grid-xs-".concat(size)), ...GRID_SIZES.map(size => "grid-sm-".concat(size)), ...GRID_SIZES.map(size => "grid-md-".concat(size)), ...GRID_SIZES.map(size => "grid-lg-".concat(size)), ...GRID_SIZES.map(size => "grid-xl-".concat(size))]);
/* harmony default export */ const Grid_gridClasses = (gridClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Grid/Grid.js
'use client';

// A grid component using the following libs as inspiration.
//
// For the implementation:
// - https://getbootstrap.com/docs/4.3/layout/grid/
// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css
// - https://github.com/roylee0704/react-flexbox-grid
// - https://material.angularjs.org/latest/layout/introduction
//
// Follow this flexbox Guide to better understand the underlying model:
// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/


const Grid_excluded = ["className", "columns", "columnSpacing", "component", "container", "direction", "item", "rowSpacing", "spacing", "wrap", "zeroMinWidth"];













function getOffset(val) {
  const parse = parseFloat(val);
  return "".concat(parse).concat(String(val).replace(String(parse), '') || 'px');
}
function generateGrid(_ref) {
  let {
    theme,
    ownerState
  } = _ref;
  let size;
  return theme.breakpoints.keys.reduce((globalStyles, breakpoint) => {
    // Use side effect over immutability for better performance.
    let styles = {};
    if (ownerState[breakpoint]) {
      size = ownerState[breakpoint];
    }
    if (!size) {
      return globalStyles;
    }
    if (size === true) {
      // For the auto layouting
      styles = {
        flexBasis: 0,
        flexGrow: 1,
        maxWidth: '100%'
      };
    } else if (size === 'auto') {
      styles = {
        flexBasis: 'auto',
        flexGrow: 0,
        flexShrink: 0,
        maxWidth: 'none',
        width: 'auto'
      };
    } else {
      const columnsBreakpointValues = (0,breakpoints/* resolveBreakpointValues */.P$)({
        values: ownerState.columns,
        breakpoints: theme.breakpoints.values
      });
      const columnValue = typeof columnsBreakpointValues === 'object' ? columnsBreakpointValues[breakpoint] : columnsBreakpointValues;
      if (columnValue === undefined || columnValue === null) {
        return globalStyles;
      }
      // Keep 7 significant numbers.
      const width = "".concat(Math.round(size / columnValue * 10e7) / 10e5, "%");
      let more = {};
      if (ownerState.container && ownerState.item && ownerState.columnSpacing !== 0) {
        const themeSpacing = theme.spacing(ownerState.columnSpacing);
        if (themeSpacing !== '0px') {
          const fullWidth = "calc(".concat(width, " + ").concat(getOffset(themeSpacing), ")");
          more = {
            flexBasis: fullWidth,
            maxWidth: fullWidth
          };
        }
      }

      // Close to the bootstrap implementation:
      // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41
      styles = (0,esm_extends/* default */.Z)({
        flexBasis: width,
        flexGrow: 0,
        maxWidth: width
      }, more);
    }

    // No need for a media query for the first size.
    if (theme.breakpoints.values[breakpoint] === 0) {
      Object.assign(globalStyles, styles);
    } else {
      globalStyles[theme.breakpoints.up(breakpoint)] = styles;
    }
    return globalStyles;
  }, {});
}
function generateDirection(_ref2) {
  let {
    theme,
    ownerState
  } = _ref2;
  const directionValues = (0,breakpoints/* resolveBreakpointValues */.P$)({
    values: ownerState.direction,
    breakpoints: theme.breakpoints.values
  });
  return (0,breakpoints/* handleBreakpoints */.k9)({
    theme
  }, directionValues, propValue => {
    const output = {
      flexDirection: propValue
    };
    if (propValue.indexOf('column') === 0) {
      output["& > .".concat(Grid_gridClasses.item)] = {
        maxWidth: 'none'
      };
    }
    return output;
  });
}

/**
 * Extracts zero value breakpoint keys before a non-zero value breakpoint key.
 * @example { xs: 0, sm: 0, md: 2, lg: 0, xl: 0 } or [0, 0, 2, 0, 0]
 * @returns [xs, sm]
 */
function extractZeroValueBreakpointKeys(_ref3) {
  let {
    breakpoints,
    values
  } = _ref3;
  let nonZeroKey = '';
  Object.keys(values).forEach(key => {
    if (nonZeroKey !== '') {
      return;
    }
    if (values[key] !== 0) {
      nonZeroKey = key;
    }
  });
  const sortedBreakpointKeysByValue = Object.keys(breakpoints).sort((a, b) => {
    return breakpoints[a] - breakpoints[b];
  });
  return sortedBreakpointKeysByValue.slice(0, sortedBreakpointKeysByValue.indexOf(nonZeroKey));
}
function generateRowGap(_ref4) {
  let {
    theme,
    ownerState
  } = _ref4;
  const {
    container,
    rowSpacing
  } = ownerState;
  let styles = {};
  if (container && rowSpacing !== 0) {
    const rowSpacingValues = (0,breakpoints/* resolveBreakpointValues */.P$)({
      values: rowSpacing,
      breakpoints: theme.breakpoints.values
    });
    let zeroValueBreakpointKeys;
    if (typeof rowSpacingValues === 'object') {
      zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({
        breakpoints: theme.breakpoints.values,
        values: rowSpacingValues
      });
    }
    styles = (0,breakpoints/* handleBreakpoints */.k9)({
      theme
    }, rowSpacingValues, (propValue, breakpoint) => {
      var _zeroValueBreakpointK;
      const themeSpacing = theme.spacing(propValue);
      if (themeSpacing !== '0px') {
        return {
          marginTop: "-".concat(getOffset(themeSpacing)),
          ["& > .".concat(Grid_gridClasses.item)]: {
            paddingTop: getOffset(themeSpacing)
          }
        };
      }
      if ((_zeroValueBreakpointK = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK.includes(breakpoint)) {
        return {};
      }
      return {
        marginTop: 0,
        ["& > .".concat(Grid_gridClasses.item)]: {
          paddingTop: 0
        }
      };
    });
  }
  return styles;
}
function generateColumnGap(_ref5) {
  let {
    theme,
    ownerState
  } = _ref5;
  const {
    container,
    columnSpacing
  } = ownerState;
  let styles = {};
  if (container && columnSpacing !== 0) {
    const columnSpacingValues = (0,breakpoints/* resolveBreakpointValues */.P$)({
      values: columnSpacing,
      breakpoints: theme.breakpoints.values
    });
    let zeroValueBreakpointKeys;
    if (typeof columnSpacingValues === 'object') {
      zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({
        breakpoints: theme.breakpoints.values,
        values: columnSpacingValues
      });
    }
    styles = (0,breakpoints/* handleBreakpoints */.k9)({
      theme
    }, columnSpacingValues, (propValue, breakpoint) => {
      var _zeroValueBreakpointK2;
      const themeSpacing = theme.spacing(propValue);
      if (themeSpacing !== '0px') {
        return {
          width: "calc(100% + ".concat(getOffset(themeSpacing), ")"),
          marginLeft: "-".concat(getOffset(themeSpacing)),
          ["& > .".concat(Grid_gridClasses.item)]: {
            paddingLeft: getOffset(themeSpacing)
          }
        };
      }
      if ((_zeroValueBreakpointK2 = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK2.includes(breakpoint)) {
        return {};
      }
      return {
        width: '100%',
        marginLeft: 0,
        ["& > .".concat(Grid_gridClasses.item)]: {
          paddingLeft: 0
        }
      };
    });
  }
  return styles;
}
function resolveSpacingStyles(spacing, breakpoints) {
  let styles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  // undefined/null or `spacing` <= 0
  if (!spacing || spacing <= 0) {
    return [];
  }
  // in case of string/number `spacing`
  if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {
    return [styles["spacing-xs-".concat(String(spacing))]];
  }
  // in case of object `spacing`
  const spacingStyles = [];
  breakpoints.forEach(breakpoint => {
    const value = spacing[breakpoint];
    if (Number(value) > 0) {
      spacingStyles.push(styles["spacing-".concat(breakpoint, "-").concat(String(value))]);
    }
  });
  return spacingStyles;
}

// Default CSS values
// flex: '0 1 auto',
// flexDirection: 'row',
// alignItems: 'flex-start',
// flexWrap: 'nowrap',
// justifyContent: 'flex-start',
const GridRoot = (0,styled/* default */.ZP)('div', {
  name: 'MuiGrid',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    const {
      container,
      direction,
      item,
      spacing,
      wrap,
      zeroMinWidth,
      breakpoints
    } = ownerState;
    let spacingStyles = [];

    // in case of grid item
    if (container) {
      spacingStyles = resolveSpacingStyles(spacing, breakpoints, styles);
    }
    const breakpointsStyles = [];
    breakpoints.forEach(breakpoint => {
      const value = ownerState[breakpoint];
      if (value) {
        breakpointsStyles.push(styles["grid-".concat(breakpoint, "-").concat(String(value))]);
      }
    });
    return [styles.root, container && styles.container, item && styles.item, zeroMinWidth && styles.zeroMinWidth, ...spacingStyles, direction !== 'row' && styles["direction-xs-".concat(String(direction))], wrap !== 'wrap' && styles["wrap-xs-".concat(String(wrap))], ...breakpointsStyles];
  }
})(_ref6 => {
  let {
    ownerState
  } = _ref6;
  return (0,esm_extends/* default */.Z)({
    boxSizing: 'border-box'
  }, ownerState.container && {
    display: 'flex',
    flexWrap: 'wrap',
    width: '100%'
  }, ownerState.item && {
    margin: 0 // For instance, it's useful when used with a `figure` element.
  }, ownerState.zeroMinWidth && {
    minWidth: 0
  }, ownerState.wrap !== 'wrap' && {
    flexWrap: ownerState.wrap
  });
}, generateDirection, generateRowGap, generateColumnGap, generateGrid);
function resolveSpacingClasses(spacing, breakpoints) {
  // undefined/null or `spacing` <= 0
  if (!spacing || spacing <= 0) {
    return [];
  }
  // in case of string/number `spacing`
  if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {
    return ["spacing-xs-".concat(String(spacing))];
  }
  // in case of object `spacing`
  const classes = [];
  breakpoints.forEach(breakpoint => {
    const value = spacing[breakpoint];
    if (Number(value) > 0) {
      const className = "spacing-".concat(breakpoint, "-").concat(String(value));
      classes.push(className);
    }
  });
  return classes;
}
const Grid_useUtilityClasses = ownerState => {
  const {
    classes,
    container,
    direction,
    item,
    spacing,
    wrap,
    zeroMinWidth,
    breakpoints
  } = ownerState;
  let spacingClasses = [];

  // in case of grid item
  if (container) {
    spacingClasses = resolveSpacingClasses(spacing, breakpoints);
  }
  const breakpointsClasses = [];
  breakpoints.forEach(breakpoint => {
    const value = ownerState[breakpoint];
    if (value) {
      breakpointsClasses.push("grid-".concat(breakpoint, "-").concat(String(value)));
    }
  });
  const slots = {
    root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...spacingClasses, direction !== 'row' && "direction-xs-".concat(String(direction)), wrap !== 'wrap' && "wrap-xs-".concat(String(wrap)), ...breakpointsClasses]
  };
  return (0,composeClasses/* default */.Z)(slots, getGridUtilityClass, classes);
};
const Grid = /*#__PURE__*/react.forwardRef(function Grid(inProps, ref) {
  const themeProps = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiGrid'
  });
  const {
    breakpoints
  } = useTheme_useTheme();
  const props = (0,extendSxProp/* default */.Z)(themeProps);
  const {
      className,
      columns: columnsProp,
      columnSpacing: columnSpacingProp,
      component = 'div',
      container = false,
      direction = 'row',
      item = false,
      rowSpacing: rowSpacingProp,
      spacing = 0,
      wrap = 'wrap',
      zeroMinWidth = false
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Grid_excluded);
  const rowSpacing = rowSpacingProp || spacing;
  const columnSpacing = columnSpacingProp || spacing;
  const columnsContext = react.useContext(Grid_GridContext);

  // columns set with default breakpoint unit of 12
  const columns = container ? columnsProp || 12 : columnsContext;
  const breakpointsValues = {};
  const otherFiltered = (0,esm_extends/* default */.Z)({}, other);
  breakpoints.keys.forEach(breakpoint => {
    if (other[breakpoint] != null) {
      breakpointsValues[breakpoint] = other[breakpoint];
      delete otherFiltered[breakpoint];
    }
  });
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    columns,
    container,
    direction,
    item,
    rowSpacing,
    columnSpacing,
    wrap,
    zeroMinWidth,
    spacing
  }, breakpointsValues, {
    breakpoints: breakpoints.keys
  });
  const classes = Grid_useUtilityClasses(ownerState);
  return /*#__PURE__*/(0,jsx_runtime.jsx)(Grid_GridContext.Provider, {
    value: columns,
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(GridRoot, (0,esm_extends/* default */.Z)({
      ownerState: ownerState,
      className: (0,clsx/* default */.Z)(classes.root, className),
      as: component,
      ref: ref
    }, otherFiltered))
  });
});
 false ? 0 : void 0;
if (false) {}
/* harmony default export */ const Grid_Grid = (Grid);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/Done.js
var Done = __webpack_require__(2478);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/DragIndicator.js
var DragIndicator = __webpack_require__(6147);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/UnfoldLess.js
var UnfoldLess = __webpack_require__(651);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/UnfoldMore.js
var UnfoldMore = __webpack_require__(5804);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/PushPin.js
var PushPin = __webpack_require__(71);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/PushPinOutlined.js
var PushPinOutlined = __webpack_require__(9318);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/Lock.js
var Lock = __webpack_require__(509);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/LockOpen.js
var LockOpen = __webpack_require__(1463);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/CircularProgress/circularProgressClasses.js


function getCircularProgressUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiCircularProgress', slot);
}
const circularProgressClasses = (0,generateUtilityClasses/* default */.Z)('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);
/* harmony default export */ const CircularProgress_circularProgressClasses = ((/* unused pure expression or super */ null && (circularProgressClasses)));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/CircularProgress/CircularProgress.js
'use client';


var CircularProgress_templateObject, CircularProgress_templateObject2, CircularProgress_templateObject3, CircularProgress_templateObject4;


const CircularProgress_excluded = ["className", "color", "disableShrink", "size", "style", "thickness", "value", "variant"];
let CircularProgress_ = t => t,
  CircularProgress_t,
  CircularProgress_t2,
  CircularProgress_t3,
  CircularProgress_t4;











const SIZE = 44;
const circularRotateKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(CircularProgress_t || (CircularProgress_t = CircularProgress_(CircularProgress_templateObject || (CircularProgress_templateObject = _taggedTemplateLiteral(["\n  0% {\n    transform: rotate(0deg);\n  }\n\n  100% {\n    transform: rotate(360deg);\n  }\n"])))));
const circularDashKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(CircularProgress_t2 || (CircularProgress_t2 = CircularProgress_(CircularProgress_templateObject2 || (CircularProgress_templateObject2 = _taggedTemplateLiteral(["\n  0% {\n    stroke-dasharray: 1px, 200px;\n    stroke-dashoffset: 0;\n  }\n\n  50% {\n    stroke-dasharray: 100px, 200px;\n    stroke-dashoffset: -15px;\n  }\n\n  100% {\n    stroke-dasharray: 100px, 200px;\n    stroke-dashoffset: -125px;\n  }\n"])))));
const CircularProgress_useUtilityClasses = ownerState => {
  const {
    classes,
    variant,
    color,
    disableShrink
  } = ownerState;
  const slots = {
    root: ['root', variant, "color".concat((0,capitalize/* default */.Z)(color))],
    svg: ['svg'],
    circle: ['circle', "circle".concat((0,capitalize/* default */.Z)(variant)), disableShrink && 'circleDisableShrink']
  };
  return (0,composeClasses/* default */.Z)(slots, getCircularProgressUtilityClass, classes);
};
const CircularProgressRoot = (0,styled/* default */.ZP)('span', {
  name: 'MuiCircularProgress',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, styles[ownerState.variant], styles["color".concat((0,capitalize/* default */.Z)(ownerState.color))]];
  }
})(_ref => {
  let {
    ownerState,
    theme
  } = _ref;
  return (0,esm_extends/* default */.Z)({
    display: 'inline-block'
  }, ownerState.variant === 'determinate' && {
    transition: theme.transitions.create('transform')
  }, ownerState.color !== 'inherit' && {
    color: (theme.vars || theme).palette[ownerState.color].main
  });
}, _ref2 => {
  let {
    ownerState
  } = _ref2;
  return ownerState.variant === 'indeterminate' && (0,emotion_react_browser_esm/* css */.iv)(CircularProgress_t3 || (CircularProgress_t3 = CircularProgress_(CircularProgress_templateObject3 || (CircularProgress_templateObject3 = _taggedTemplateLiteral(["\n      animation: ", " 1.4s linear infinite;\n    "])), 0)), circularRotateKeyframe);
});
const CircularProgressSVG = (0,styled/* default */.ZP)('svg', {
  name: 'MuiCircularProgress',
  slot: 'Svg',
  overridesResolver: (props, styles) => styles.svg
})({
  display: 'block' // Keeps the progress centered
});

const CircularProgressCircle = (0,styled/* default */.ZP)('circle', {
  name: 'MuiCircularProgress',
  slot: 'Circle',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.circle, styles["circle".concat((0,capitalize/* default */.Z)(ownerState.variant))], ownerState.disableShrink && styles.circleDisableShrink];
  }
})(_ref3 => {
  let {
    ownerState,
    theme
  } = _ref3;
  return (0,esm_extends/* default */.Z)({
    stroke: 'currentColor'
  }, ownerState.variant === 'determinate' && {
    transition: theme.transitions.create('stroke-dashoffset')
  }, ownerState.variant === 'indeterminate' && {
    // Some default value that looks fine waiting for the animation to kicks in.
    strokeDasharray: '80px, 200px',
    strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.
  });
}, _ref4 => {
  let {
    ownerState
  } = _ref4;
  return ownerState.variant === 'indeterminate' && !ownerState.disableShrink && (0,emotion_react_browser_esm/* css */.iv)(CircularProgress_t4 || (CircularProgress_t4 = CircularProgress_(CircularProgress_templateObject4 || (CircularProgress_templateObject4 = _taggedTemplateLiteral(["\n      animation: ", " 1.4s ease-in-out infinite;\n    "])), 0)), circularDashKeyframe);
});

/**
 * ## ARIA
 *
 * If the progress bar is describing the loading progress of a particular region of a page,
 * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`
 * attribute to `true` on that region until it has finished loading.
 */
const CircularProgress = /*#__PURE__*/react.forwardRef(function CircularProgress(inProps, ref) {
  const props = (0,useThemeProps/* default */.Z)({
    props: inProps,
    name: 'MuiCircularProgress'
  });
  const {
      className,
      color = 'primary',
      disableShrink = false,
      size = 40,
      style,
      thickness = 3.6,
      value = 0,
      variant = 'indeterminate'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, CircularProgress_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color,
    disableShrink,
    size,
    thickness,
    value,
    variant
  });
  const classes = CircularProgress_useUtilityClasses(ownerState);
  const circleStyle = {};
  const rootStyle = {};
  const rootProps = {};
  if (variant === 'determinate') {
    const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);
    circleStyle.strokeDasharray = circumference.toFixed(3);
    rootProps['aria-valuenow'] = Math.round(value);
    circleStyle.strokeDashoffset = "".concat(((100 - value) / 100 * circumference).toFixed(3), "px");
    rootStyle.transform = 'rotate(-90deg)';
  }
  return /*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgressRoot, (0,esm_extends/* default */.Z)({
    className: (0,clsx/* default */.Z)(classes.root, className),
    style: (0,esm_extends/* default */.Z)({
      width: size,
      height: size
    }, rootStyle, style),
    ownerState: ownerState,
    ref: ref,
    role: "progressbar"
  }, rootProps, other, {
    children: /*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgressSVG, {
      className: classes.svg,
      ownerState: ownerState,
      viewBox: "".concat(SIZE / 2, " ").concat(SIZE / 2, " ").concat(SIZE, " ").concat(SIZE),
      children: /*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgressCircle, {
        className: classes.circle,
        style: circleStyle,
        ownerState: ownerState,
        cx: SIZE,
        cy: SIZE,
        r: (SIZE - thickness) / 2,
        fill: "none",
        strokeWidth: thickness
      })
    })
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const CircularProgress_CircularProgress = (CircularProgress);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/ContentCopy.js
var ContentCopy = __webpack_require__(5413);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/LibraryAddCheck.js
var LibraryAddCheck = __webpack_require__(8375);
;// CONCATENATED MODULE: ./src/views/Selection/CopyBtn.js
function CopyBtn(_ref){let{text}=_ref;const[copied,setCopied]=(0,react.useState)(false);const handleClick=async e=>{e.stopPropagation();await navigator.clipboard.writeText(text);setCopied(true);const timer=setTimeout(()=>{clearTimeout(timer);setCopied(false);},500);};return/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{size:"small",sx:{opacity:0.5,"&:hover":{opacity:1}},onClick:handleClick,children:copied?/*#__PURE__*/(0,jsx_runtime.jsx)(LibraryAddCheck/* default */.Z,{fontSize:"inherit"}):/*#__PURE__*/(0,jsx_runtime.jsx)(ContentCopy/* default */.Z,{fontSize:"inherit"})});}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useSlot.js
'use client';



const useSlot_excluded = ["className", "elementType", "ownerState", "externalForwardedProps", "getSlotOwnerState", "internalForwardedProps"],
  useSlot_excluded2 = ["component", "slots", "slotProps"],
  useSlot_excluded3 = ["component"];


/**
 * An internal function to create a Material UI slot.
 *
 * This is an advanced version of Base UI `useSlotProps` because Material UI allows leaf component to be customized via `component` prop
 * while Base UI does not need to support leaf component customization.
 *
 * @param {string} name: name of the slot
 * @param {object} parameters
 * @returns {[Slot, slotProps]} The slot's React component and the slot's props
 *
 * Note: the returned slot's props
 * - will never contain `component` prop.
 * - might contain `as` prop.
 */
function useSlot(
/**
 * The slot's name. All Material UI components should have `root` slot.
 *
 * If the name is `root`, the logic behaves differently from other slots,
 * e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.
 */
name, parameters) {
  const {
      className,
      elementType: initialElementType,
      ownerState,
      externalForwardedProps,
      getSlotOwnerState,
      internalForwardedProps
    } = parameters,
    useSlotPropsParams = (0,objectWithoutPropertiesLoose/* default */.Z)(parameters, useSlot_excluded);
  const {
      component: rootComponent,
      slots = {
        [name]: undefined
      },
      slotProps = {
        [name]: undefined
      }
    } = externalForwardedProps,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(externalForwardedProps, useSlot_excluded2);
  const elementType = slots[name] || initialElementType;

  // `slotProps[name]` can be a callback that receives the component's ownerState.
  // `resolvedComponentsProps` is always a plain object.
  const resolvedComponentsProps = resolveComponentProps(slotProps[name], ownerState);
  const _mergeSlotProps = mergeSlotProps((0,esm_extends/* default */.Z)({
      className
    }, useSlotPropsParams, {
      externalForwardedProps: name === 'root' ? other : undefined,
      externalSlotProps: resolvedComponentsProps
    })),
    {
      props: {
        component: slotComponent
      },
      internalRef
    } = _mergeSlotProps,
    mergedProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_mergeSlotProps.props, useSlot_excluded3);
  const ref = (0,useForkRef_useForkRef/* default */.Z)(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, parameters.ref);
  const slotOwnerState = getSlotOwnerState ? getSlotOwnerState(mergedProps) : {};
  const finalOwnerState = (0,esm_extends/* default */.Z)({}, ownerState, slotOwnerState);
  const LeafComponent = name === 'root' ? slotComponent || rootComponent : slotComponent;
  const props = appendOwnerState(elementType, (0,esm_extends/* default */.Z)({}, name === 'root' && !rootComponent && !slots[name] && internalForwardedProps, name !== 'root' && !slots[name] && internalForwardedProps, mergedProps, LeafComponent && {
    as: LeafComponent
  }, {
    ref
  }), finalOwnerState);
  Object.keys(slotOwnerState).forEach(propName => {
    delete props[propName];
  });
  return [elementType, props];
}
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Alert/alertClasses.js


function getAlertUtilityClass(slot) {
  return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiAlert', slot);
}
const alertClasses = (0,generateUtilityClasses/* default */.Z)('MuiAlert', ['root', 'action', 'icon', 'message', 'filled', 'colorSuccess', 'colorInfo', 'colorWarning', 'colorError', 'filledSuccess', 'filledInfo', 'filledWarning', 'filledError', 'outlined', 'outlinedSuccess', 'outlinedInfo', 'outlinedWarning', 'outlinedError', 'standard', 'standardSuccess', 'standardInfo', 'standardWarning', 'standardError']);
/* harmony default export */ const Alert_alertClasses = (alertClasses);
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js
'use client';




/**
 * @ignore - internal component.
 */

/* harmony default export */ const SuccessOutlined = ((0,createSvgIcon/* default */.Z)( /*#__PURE__*/(0,jsx_runtime.jsx)("path", {
  d: "M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"
}), 'SuccessOutlined'));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js
'use client';




/**
 * @ignore - internal component.
 */

/* harmony default export */ const ReportProblemOutlined = ((0,createSvgIcon/* default */.Z)( /*#__PURE__*/(0,jsx_runtime.jsx)("path", {
  d: "M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"
}), 'ReportProblemOutlined'));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/internal/svg-icons/ErrorOutline.js
'use client';




/**
 * @ignore - internal component.
 */

/* harmony default export */ const ErrorOutline = ((0,createSvgIcon/* default */.Z)( /*#__PURE__*/(0,jsx_runtime.jsx)("path", {
  d: "M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
}), 'ErrorOutline'));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/internal/svg-icons/InfoOutlined.js
'use client';




/**
 * @ignore - internal component.
 */

/* harmony default export */ const InfoOutlined = ((0,createSvgIcon/* default */.Z)( /*#__PURE__*/(0,jsx_runtime.jsx)("path", {
  d: "M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"
}), 'InfoOutlined'));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/internal/svg-icons/Close.js
'use client';




/**
 * @ignore - internal component.
 *
 * Alias to `Clear`.
 */

/* harmony default export */ const svg_icons_Close = ((0,createSvgIcon/* default */.Z)( /*#__PURE__*/(0,jsx_runtime.jsx)("path", {
  d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
}), 'Close'));
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Alert/Alert.js
'use client';



const Alert_excluded = ["action", "children", "className", "closeText", "color", "components", "componentsProps", "icon", "iconMapping", "onClose", "role", "severity", "slotProps", "slots", "variant"];


















const Alert_useThemeProps = createUseThemeProps('MuiAlert');
const Alert_useUtilityClasses = ownerState => {
  const {
    variant,
    color,
    severity,
    classes
  } = ownerState;
  const slots = {
    root: ['root', "color".concat((0,capitalize/* default */.Z)(color || severity)), "".concat(variant).concat((0,capitalize/* default */.Z)(color || severity)), "".concat(variant)],
    icon: ['icon'],
    message: ['message'],
    action: ['action']
  };
  return (0,composeClasses/* default */.Z)(slots, getAlertUtilityClass, classes);
};
const AlertRoot = (0,styled/* default */.ZP)(Paper_Paper, {
  name: 'MuiAlert',
  slot: 'Root',
  overridesResolver: (props, styles) => {
    const {
      ownerState
    } = props;
    return [styles.root, styles[ownerState.variant], styles["".concat(ownerState.variant).concat((0,capitalize/* default */.Z)(ownerState.color || ownerState.severity))]];
  }
})(_ref => {
  let {
    theme
  } = _ref;
  const getColor = theme.palette.mode === 'light' ? colorManipulator/* darken */._j : colorManipulator/* lighten */.$n;
  const getBackgroundColor = theme.palette.mode === 'light' ? colorManipulator/* lighten */.$n : colorManipulator/* darken */._j;
  return (0,esm_extends/* default */.Z)({}, theme.typography.body2, {
    backgroundColor: 'transparent',
    display: 'flex',
    padding: '6px 16px',
    variants: [...Object.entries(theme.palette).filter(_ref2 => {
      let [, value] = _ref2;
      return value.main && value.light;
    }).map(_ref3 => {
      let [color] = _ref3;
      return {
        props: {
          colorSeverity: color,
          variant: 'standard'
        },
        style: {
          color: theme.vars ? theme.vars.palette.Alert["".concat(color, "Color")] : getColor(theme.palette[color].light, 0.6),
          backgroundColor: theme.vars ? theme.vars.palette.Alert["".concat(color, "StandardBg")] : getBackgroundColor(theme.palette[color].light, 0.9),
          ["& .".concat(Alert_alertClasses.icon)]: theme.vars ? {
            color: theme.vars.palette.Alert["".concat(color, "IconColor")]
          } : {
            color: theme.palette[color].main
          }
        }
      };
    }), ...Object.entries(theme.palette).filter(_ref4 => {
      let [, value] = _ref4;
      return value.main && value.light;
    }).map(_ref5 => {
      let [color] = _ref5;
      return {
        props: {
          colorSeverity: color,
          variant: 'outlined'
        },
        style: {
          color: theme.vars ? theme.vars.palette.Alert["".concat(color, "Color")] : getColor(theme.palette[color].light, 0.6),
          border: "1px solid ".concat((theme.vars || theme).palette[color].light),
          ["& .".concat(Alert_alertClasses.icon)]: theme.vars ? {
            color: theme.vars.palette.Alert["".concat(color, "IconColor")]
          } : {
            color: theme.palette[color].main
          }
        }
      };
    }), ...Object.entries(theme.palette).filter(_ref6 => {
      let [, value] = _ref6;
      return value.main && value.dark;
    }).map(_ref7 => {
      let [color] = _ref7;
      return {
        props: {
          colorSeverity: color,
          variant: 'filled'
        },
        style: (0,esm_extends/* default */.Z)({
          fontWeight: theme.typography.fontWeightMedium
        }, theme.vars ? {
          color: theme.vars.palette.Alert["".concat(color, "FilledColor")],
          backgroundColor: theme.vars.palette.Alert["".concat(color, "FilledBg")]
        } : {
          backgroundColor: theme.palette.mode === 'dark' ? theme.palette[color].dark : theme.palette[color].main,
          color: theme.palette.getContrastText(theme.palette[color].main)
        })
      };
    })]
  });
});
const AlertIcon = (0,styled/* default */.ZP)('div', {
  name: 'MuiAlert',
  slot: 'Icon',
  overridesResolver: (props, styles) => styles.icon
})({
  marginRight: 12,
  padding: '7px 0',
  display: 'flex',
  fontSize: 22,
  opacity: 0.9
});
const AlertMessage = (0,styled/* default */.ZP)('div', {
  name: 'MuiAlert',
  slot: 'Message',
  overridesResolver: (props, styles) => styles.message
})({
  padding: '8px 0',
  minWidth: 0,
  overflow: 'auto'
});
const AlertAction = (0,styled/* default */.ZP)('div', {
  name: 'MuiAlert',
  slot: 'Action',
  overridesResolver: (props, styles) => styles.action
})({
  display: 'flex',
  alignItems: 'flex-start',
  padding: '4px 0 0 16px',
  marginLeft: 'auto',
  marginRight: -8
});
const defaultIconMapping = {
  success: /*#__PURE__*/(0,jsx_runtime.jsx)(SuccessOutlined, {
    fontSize: "inherit"
  }),
  warning: /*#__PURE__*/(0,jsx_runtime.jsx)(ReportProblemOutlined, {
    fontSize: "inherit"
  }),
  error: /*#__PURE__*/(0,jsx_runtime.jsx)(ErrorOutline, {
    fontSize: "inherit"
  }),
  info: /*#__PURE__*/(0,jsx_runtime.jsx)(InfoOutlined, {
    fontSize: "inherit"
  })
};
const Alert = /*#__PURE__*/react.forwardRef(function Alert(inProps, ref) {
  const props = Alert_useThemeProps({
    props: inProps,
    name: 'MuiAlert'
  });
  const {
      action,
      children,
      className,
      closeText = 'Close',
      color,
      components = {},
      componentsProps = {},
      icon,
      iconMapping = defaultIconMapping,
      onClose,
      role = 'alert',
      severity = 'success',
      slotProps = {},
      slots = {},
      variant = 'standard'
    } = props,
    other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Alert_excluded);
  const ownerState = (0,esm_extends/* default */.Z)({}, props, {
    color,
    severity,
    variant,
    colorSeverity: color || severity
  });
  const classes = Alert_useUtilityClasses(ownerState);
  const externalForwardedProps = {
    slots: (0,esm_extends/* default */.Z)({
      closeButton: components.CloseButton,
      closeIcon: components.CloseIcon
    }, slots),
    slotProps: (0,esm_extends/* default */.Z)({}, componentsProps, slotProps)
  };
  const [CloseButtonSlot, closeButtonProps] = useSlot('closeButton', {
    elementType: IconButton_IconButton,
    externalForwardedProps,
    ownerState
  });
  const [CloseIconSlot, closeIconProps] = useSlot('closeIcon', {
    elementType: svg_icons_Close,
    externalForwardedProps,
    ownerState
  });
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(AlertRoot, (0,esm_extends/* default */.Z)({
    role: role,
    elevation: 0,
    ownerState: ownerState,
    className: (0,clsx/* default */.Z)(classes.root, className),
    ref: ref
  }, other, {
    children: [icon !== false ? /*#__PURE__*/(0,jsx_runtime.jsx)(AlertIcon, {
      ownerState: ownerState,
      className: classes.icon,
      children: icon || iconMapping[severity] || defaultIconMapping[severity]
    }) : null, /*#__PURE__*/(0,jsx_runtime.jsx)(AlertMessage, {
      ownerState: ownerState,
      className: classes.message,
      children: children
    }), action != null ? /*#__PURE__*/(0,jsx_runtime.jsx)(AlertAction, {
      ownerState: ownerState,
      className: classes.action,
      children: action
    }) : null, action == null && onClose ? /*#__PURE__*/(0,jsx_runtime.jsx)(AlertAction, {
      ownerState: ownerState,
      className: classes.action,
      children: /*#__PURE__*/(0,jsx_runtime.jsx)(CloseButtonSlot, (0,esm_extends/* default */.Z)({
        size: "small",
        "aria-label": closeText,
        title: closeText,
        color: "inherit",
        onClick: onClose
      }, closeButtonProps, {
        children: /*#__PURE__*/(0,jsx_runtime.jsx)(CloseIconSlot, (0,esm_extends/* default */.Z)({
          fontSize: "small"
        }, closeIconProps))
      }))
    }) : null]
  }));
});
 false ? 0 : void 0;
/* harmony default export */ const Alert_Alert = (Alert);
;// CONCATENATED MODULE: ./src/views/Selection/TranCont.js
function TranCont(_ref){let{text,translator,fromLang,toLang,toLang2="en",transApis,simpleStyle,langDetector}=_ref;const i18n=useI18n();const[trText,setTrText]=(0,react.useState)("");const[loading,setLoading]=(0,react.useState)(true);const[error,setError]=(0,react.useState)("");(0,react.useEffect)(()=>{(async()=>{try{setLoading(true);setTrText("");setError("");let to=toLang;if(toLang!==toLang2&&toLang2!=="none"){const detectLang=await tryDetectLang(text,true,langDetector);if(detectLang===toLang){to=toLang2;}}const apiSetting=transApis[translator]||DEFAULT_TRANS_APIS[translator];const tranRes=await apiTranslate({text,translator,fromLang,toLang:to,apiSetting});setTrText(tranRes[0]);}catch(err){setError(err.message);}finally{setLoading(false);}})();},[text,translator,fromLang,toLang,toLang2,transApis,langDetector]);if(simpleStyle){return/*#__PURE__*/(0,jsx_runtime.jsx)(Box_Box,{className:"KT-transbox-target KT-transbox-target_simple",children:error?/*#__PURE__*/(0,jsx_runtime.jsx)(Alert_Alert,{severity:"error",children:error}):loading?/*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgress_CircularProgress,{size:16}):/*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography,{style:{whiteSpace:"pre-line"},children:trText})});}return/*#__PURE__*/(0,jsx_runtime.jsx)(Box_Box,{className:"KT-transbox-target KT-transbox-target_default",children:/*#__PURE__*/(0,jsx_runtime.jsx)(TextField_TextField,{size:"small",label:i18n("translated_text")// disabled
,fullWidth:true,multiline:true,value:trText,helperText:error,InputProps:{startAdornment:loading?/*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgress_CircularProgress,{size:16}):null,endAdornment:/*#__PURE__*/(0,jsx_runtime.jsx)(Stack_Stack,{direction:"row",sx:{position:"absolute",right:0,top:0},children:/*#__PURE__*/(0,jsx_runtime.jsx)(CopyBtn,{text:trText})})}})});}
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/Favorite.js
var Favorite = __webpack_require__(9839);
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/FavoriteBorder.js
var FavoriteBorder = __webpack_require__(6062);
;// CONCATENATED MODULE: ./src/hooks/FavWords.js
function useFavWords(){const[loading,setLoading]=(0,react.useState)(false);const[favWords,setFavWords]=(0,react.useState)({});const{updateSyncMeta}=useSyncMeta();const toggleFav=(0,react.useCallback)(async word=>{const favs={...favWords};if(favs[word]){delete favs[word];}else{favs[word]={createdAt:Date.now()};}await setWords(favs);await updateSyncMeta(KV_WORDS_KEY);await trySyncWords();setFavWords(favs);},[updateSyncMeta,favWords]);const mergeWords=(0,react.useCallback)(async newWords=>{const favs={...favWords};newWords.forEach(word=>{if(!favs[word]){favs[word]={createdAt:Date.now()};}});await setWords(favs);await updateSyncMeta(KV_WORDS_KEY);await trySyncWords();setFavWords(favs);},[updateSyncMeta,favWords]);const clearWords=(0,react.useCallback)(async()=>{await setWords({});await updateSyncMeta(KV_WORDS_KEY);await trySyncWords();setFavWords({});},[updateSyncMeta]);(0,react.useEffect)(()=>{(async()=>{try{setLoading(true);await trySyncWords();const favWords=await getWordsWithDefault();setFavWords(favWords);}catch(err){log_kissLog(err,"query fav");}finally{setLoading(false);}})();},[]);return{loading,favWords,toggleFav,mergeWords,clearWords};}
;// CONCATENATED MODULE: ./src/views/Selection/FavBtn.js
function FavBtn(_ref){let{word}=_ref;const{favWords,toggleFav}=useFavWords();const[loading,setLoading]=(0,react.useState)(false);const handleClick=async()=>{try{setLoading(true);await toggleFav(word);}catch(err){log_kissLog(err,"set fav");}finally{setLoading(false);}};return/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{disabled:loading,size:"small",onClick:handleClick,children:favWords[word]?/*#__PURE__*/(0,jsx_runtime.jsx)(Favorite/* default */.Z,{fontSize:"inherit"}):/*#__PURE__*/(0,jsx_runtime.jsx)(FavoriteBorder/* default */.Z,{fontSize:"inherit"})});}
// EXTERNAL MODULE: ./node_modules/.pnpm/@mui+icons-material@5.15.15_@mui+material@5.15.15_@types+react@18.2.79_react@18.2.0/node_modules/@mui/icons-material/VolumeUp.js
var VolumeUp = __webpack_require__(6060);
;// CONCATENATED MODULE: ./src/hooks/Audio.js
/**
 * 声音播放hook
 * @param {*} src
 * @returns
 */function useAudio(src){const audioRef=(0,react.useRef)(null);const[error,setError]=(0,react.useState)(null);const[ready,setReady]=(0,react.useState)(false);const[playing,setPlaying]=(0,react.useState)(false);const onPlay=(0,react.useCallback)(()=>{var _audioRef$current;(_audioRef$current=audioRef.current)===null||_audioRef$current===void 0?void 0:_audioRef$current.play();},[]);(0,react.useEffect)(()=>{if(!src){return;}const audio=new Audio(src);audio.addEventListener("error",err=>setError(err));audio.addEventListener("canplaythrough",()=>setReady(true));audio.addEventListener("play",()=>setPlaying(true));audio.addEventListener("ended",()=>setPlaying(false));audioRef.current=audio;},[src]);return{error,ready,playing,onPlay};}/**
 * 获取语音hook
 * @param {*} text
 * @param {*} lan
 * @param {*} spd
 * @returns
 */function useTextAudio(text){let lan=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"uk";let spd=arguments.length>2&&arguments[2]!==undefined?arguments[2]:3;const[src,setSrc]=(0,react.useState)("");(0,react.useEffect)(()=>{(async()=>{try{setSrc(await apiBaiduTTS(text,lan,spd));}catch(err){log_kissLog(err,"baidu tts");}})();},[text,lan,spd]);return useAudio(src);}
;// CONCATENATED MODULE: ./src/views/Selection/AudioBtn.js
function AudioBtn(_ref){let{text,lan="uk"}=_ref;const{error,ready,playing,onPlay}=useTextAudio(text,lan);if(error||!ready){return/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{disabled:true,size:"small",children:/*#__PURE__*/(0,jsx_runtime.jsx)(VolumeUp/* default */.Z,{fontSize:"inherit"})});}if(playing){return/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{color:"primary",size:"small",children:/*#__PURE__*/(0,jsx_runtime.jsx)(VolumeUp/* default */.Z,{fontSize:"inherit"})});}return/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{onClick:onPlay,size:"small",children:/*#__PURE__*/(0,jsx_runtime.jsx)(VolumeUp/* default */.Z,{fontSize:"inherit"})});}
;// CONCATENATED MODULE: ./src/views/Selection/DictCont.js
function DictCont(_ref){var _dictResult$voice,_dictResult$voice2;let{text}=_ref;const[loading,setLoading]=(0,react.useState)(true);const[error,setError]=(0,react.useState)("");const[dictResult,setDictResult]=(0,react.useState)(null);(0,react.useEffect)(()=>{(async()=>{try{var _dictRes$;setLoading(true);setError("");setDictResult(null);if(!isValidWord(text)){return;}const dictRes=await apiTranslate({text,translator:OPT_TRANS_BAIDU,fromLang:"en",toLang:"zh-CN"});if(((_dictRes$=dictRes[2])===null||_dictRes$===void 0?void 0:_dictRes$.type)===1){setDictResult(JSON.parse(dictRes[2].result));}}catch(err){setError(err.message);}finally{setLoading(false);}})();},[text]);if(error){return/*#__PURE__*/(0,jsx_runtime.jsx)(Alert_Alert,{severity:"error",children:error});}if(loading){return/*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgress_CircularProgress,{size:16});}if(!text||!dictResult){return;}const copyText=[dictResult.src,(_dictResult$voice=dictResult.voice)===null||_dictResult$voice===void 0?void 0:_dictResult$voice.map(Object.entries).map(item=>item[0]).map(_ref2=>{var _PHONIC_MAP$key;let[key,val]=_ref2;return"".concat(((_PHONIC_MAP$key=PHONIC_MAP[key])===null||_PHONIC_MAP$key===void 0?void 0:_PHONIC_MAP$key[0])||key," ").concat(val);}).join(" "),dictResult.content[0].mean.map(_ref3=>{let{pre,cont}=_ref3;return"".concat(pre?"[".concat(pre,"] "):"").concat(Object.keys(cont).join("; "));}).join("\n")].join("\n");return/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{className:"KT-transbox-dict",spacing:1,children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{direction:"row",justifyContent:"space-between",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography,{variant:"subtitle1",style:{fontWeight:"bold"},children:dictResult.src}),/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{direction:"row",justifyContent:"space-between",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(CopyBtn,{text:copyText}),/*#__PURE__*/(0,jsx_runtime.jsx)(FavBtn,{word:dictResult.src})]})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(Typography_Typography,{component:"div",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography,{component:"div",children:(_dictResult$voice2=dictResult.voice)===null||_dictResult$voice2===void 0?void 0:_dictResult$voice2.map(Object.entries).map(item=>item[0]).map(_ref4=>{var _PHONIC_MAP$key2,_PHONIC_MAP$key3;let[key,val]=_ref4;return/*#__PURE__*/(0,jsx_runtime.jsxs)(Typography_Typography,{component:"div",style:{display:"inline-block"},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography,{component:"span",children:"".concat(((_PHONIC_MAP$key2=PHONIC_MAP[key])===null||_PHONIC_MAP$key2===void 0?void 0:_PHONIC_MAP$key2[0])||key," ").concat(val)}),/*#__PURE__*/(0,jsx_runtime.jsx)(AudioBtn,{text:dictResult.src,lan:(_PHONIC_MAP$key3=PHONIC_MAP[key])===null||_PHONIC_MAP$key3===void 0?void 0:_PHONIC_MAP$key3[1]})]},key);})}),/*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography,{component:"ul",children:dictResult.content[0].mean.map((_ref5,idx)=>{let{pre,cont}=_ref5;return/*#__PURE__*/(0,jsx_runtime.jsxs)(Typography_Typography,{component:"li",children:[pre&&"[".concat(pre,"] "),Object.keys(cont).join("; ")]},idx);})})]})]});}
;// CONCATENATED MODULE: ./src/views/Selection/SugCont.js
function SugCont(_ref){let{text}=_ref;const[sugs,setSugs]=(0,react.useState)([]);(0,react.useEffect)(()=>{(async()=>{try{setSugs(await apiBaiduSuggest(text));}catch(err){// skip
}})();},[text]);if(sugs.length===0){return;}return/*#__PURE__*/(0,jsx_runtime.jsx)(Stack_Stack,{className:"KT-transbox-sug",spacing:1,children:sugs.map(_ref2=>{let{k,v}=_ref2;return/*#__PURE__*/(0,jsx_runtime.jsxs)(Typography_Typography,{component:"div",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography,{children:k}),/*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography,{component:"ul",style:{margin:"0"},children:/*#__PURE__*/(0,jsx_runtime.jsx)(Typography_Typography,{component:"li",children:v})})]},k);})});}
;// CONCATENATED MODULE: ./src/views/Selection/TranBox.js
function TranBox_Header(_ref){let{setShowPopup,simpleStyle,setSimpleStyle,hideClickAway,setHideClickAway,followSelection,setFollowSelection,mouseHover}=_ref;if(!isMobile&&simpleStyle&&!mouseHover){return;}return/*#__PURE__*/(0,jsx_runtime.jsxs)(Box_Box,{className:"KT-transbox-header",onMouseUp:e=>e.stopPropagation(),onTouchEnd:e=>e.stopPropagation(),children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{direction:"row",justifyContent:"space-between",alignItems:"center",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DragIndicator/* default */.Z,{fontSize:"small"}),/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{direction:"row",alignItems:"center",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{size:"small",onClick:()=>{setHideClickAway(pre=>!pre);},children:hideClickAway?/*#__PURE__*/(0,jsx_runtime.jsx)(LockOpen/* default */.Z,{fontSize:"small"}):/*#__PURE__*/(0,jsx_runtime.jsx)(Lock/* default */.Z,{fontSize:"small"})}),/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{size:"small",onClick:()=>{setFollowSelection(pre=>!pre);},children:followSelection?/*#__PURE__*/(0,jsx_runtime.jsx)(PushPinOutlined/* default */.Z,{fontSize:"small"}):/*#__PURE__*/(0,jsx_runtime.jsx)(PushPin/* default */.Z,{fontSize:"small"})}),/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{size:"small",onClick:()=>{setSimpleStyle(pre=>!pre);},children:simpleStyle?/*#__PURE__*/(0,jsx_runtime.jsx)(UnfoldMore/* default */.Z,{fontSize:"small"}):/*#__PURE__*/(0,jsx_runtime.jsx)(UnfoldLess/* default */.Z,{fontSize:"small"})}),/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{size:"small",onClick:()=>{setShowPopup(false);},children:/*#__PURE__*/(0,jsx_runtime.jsx)(Close/* default */.Z,{fontSize:"small"})})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(Divider_Divider,{})]});}function TranForm(_ref2){let{text,setText,tranboxSetting,transApis,simpleStyle,langDetector,enDict}=_ref2;const i18n=useI18n();const[editMode,setEditMode]=(0,react.useState)(false);const[editText,setEditText]=(0,react.useState)("");const[translator,setTranslator]=(0,react.useState)(tranboxSetting.translator);const[fromLang,setFromLang]=(0,react.useState)(tranboxSetting.fromLang);const[toLang,setToLang]=(0,react.useState)(tranboxSetting.toLang);const inputRef=(0,react.useRef)(null);return/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{className:"KT-transbox-container",sx:{p:simpleStyle?1:2},spacing:simpleStyle?1:2,children:[!simpleStyle&&/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Box_Box,{className:"KT-transbox-select",children:/*#__PURE__*/(0,jsx_runtime.jsxs)(Grid_Grid,{container:true,spacing:simpleStyle?1:2,columns:12,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Grid_Grid,{item:true,xs:4,sm:4,md:4,lg:4,children:/*#__PURE__*/(0,jsx_runtime.jsx)(TextField_TextField,{select:true,SelectProps:{MenuProps:{disablePortal:true}},fullWidth:true,size:"small",name:"fromLang",value:fromLang,label:i18n("from_lang"),onChange:e=>{setFromLang(e.target.value);},children:OPT_LANGS_FROM.map(_ref3=>{let[lang,name]=_ref3;return/*#__PURE__*/(0,jsx_runtime.jsx)(MenuItem_MenuItem,{value:lang,children:name},lang);})})}),/*#__PURE__*/(0,jsx_runtime.jsx)(Grid_Grid,{item:true,xs:4,sm:4,md:4,lg:4,children:/*#__PURE__*/(0,jsx_runtime.jsx)(TextField_TextField,{select:true,SelectProps:{MenuProps:{disablePortal:true}},fullWidth:true,size:"small",name:"toLang",value:toLang,label:i18n("to_lang"),onChange:e=>{setToLang(e.target.value);},children:OPT_LANGS_TO.map(_ref4=>{let[lang,name]=_ref4;return/*#__PURE__*/(0,jsx_runtime.jsx)(MenuItem_MenuItem,{value:lang,children:name},lang);})})}),/*#__PURE__*/(0,jsx_runtime.jsx)(Grid_Grid,{item:true,xs:4,sm:4,md:4,lg:4,children:/*#__PURE__*/(0,jsx_runtime.jsx)(TextField_TextField,{select:true,SelectProps:{MenuProps:{disablePortal:true}},fullWidth:true,size:"small",value:translator,name:"translator",label:i18n("translate_service"),onChange:e=>{setTranslator(e.target.value);},children:OPT_TRANS_ALL.map(item=>/*#__PURE__*/(0,jsx_runtime.jsx)(MenuItem_MenuItem,{value:item,children:item},item))})})]})}),/*#__PURE__*/(0,jsx_runtime.jsx)(Box_Box,{className:"KT-transbox-origin",children:/*#__PURE__*/(0,jsx_runtime.jsx)(TextField_TextField,{size:"small",label:i18n("original_text"),inputRef:inputRef,fullWidth:true,multiline:true,value:editMode?editText:text,onChange:e=>{setEditText(e.target.value);},onFocus:()=>{setEditMode(true);setEditText(text);},onBlur:()=>{setEditMode(false);setText(editText.trim());},InputProps:{endAdornment:/*#__PURE__*/(0,jsx_runtime.jsx)(Stack_Stack,{direction:"row",sx:{position:"absolute",right:0,top:0},children:editMode?/*#__PURE__*/(0,jsx_runtime.jsx)(IconButton_IconButton,{size:"small",onClick:e=>{e.stopPropagation();},children:/*#__PURE__*/(0,jsx_runtime.jsx)(Done/* default */.Z,{fontSize:"inherit"})}):/*#__PURE__*/(0,jsx_runtime.jsx)(CopyBtn,{text:text})})}})})]}),(!simpleStyle||!isValidWord(text)||!toLang.startsWith("zh")||enDict==="-")&&/*#__PURE__*/(0,jsx_runtime.jsx)(TranCont,{text:text,translator:translator,fromLang:fromLang,toLang:toLang,toLang2:tranboxSetting.toLang2,transApis:transApis,simpleStyle:simpleStyle,langDetector:langDetector}),enDict!=="-"&&/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DictCont,{text:text}),/*#__PURE__*/(0,jsx_runtime.jsx)(SugCont,{text:text})]})]});}function TranBox(_ref5){let{text,setText,setShowBox,tranboxSetting,transApis,boxSize,setBoxSize,boxPosition,setBoxPosition,simpleStyle,setSimpleStyle,hideClickAway,setHideClickAway,followSelection,setFollowSelection,extStyles,langDetector,enDict}=_ref5;const[mouseHover,setMouseHover]=(0,react.useState)(false);return/*#__PURE__*/(0,jsx_runtime.jsx)(SettingProvider,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(Theme,{styles:extStyles,children:/*#__PURE__*/(0,jsx_runtime.jsx)(DraggableResizable,{position:boxPosition,size:boxSize,setSize:setBoxSize,setPosition:setBoxPosition,header:/*#__PURE__*/(0,jsx_runtime.jsx)(TranBox_Header,{setShowPopup:setShowBox,simpleStyle:simpleStyle,setSimpleStyle:setSimpleStyle,hideClickAway:hideClickAway,setHideClickAway:setHideClickAway,followSelection:followSelection,setFollowSelection:setFollowSelection,mouseHover:mouseHover}),onClick:e=>e.stopPropagation(),onMouseEnter:()=>setMouseHover(true),onMouseLeave:()=>setMouseHover(false),children:/*#__PURE__*/(0,jsx_runtime.jsx)(TranForm,{text:text,setText:setText,tranboxSetting:tranboxSetting,transApis:transApis,simpleStyle:simpleStyle,langDetector:langDetector,enDict:enDict})})})});}
;// CONCATENATED MODULE: ./src/views/Selection/index.js
function Slection(_ref){let{contextMenuType,tranboxSetting,transApis,uiLang,langDetector}=_ref;const{hideTranBtn=false,simpleStyle:initSimpleStyle=false,hideClickAway:initHideClickAway=false,followSelection:initFollowMouse=false,tranboxShortcut=DEFAULT_TRANBOX_SHORTCUT,triggerMode=OPT_TRANBOX_TRIGGER_CLICK,extStyles,btnOffsetX,btnOffsetY,boxOffsetX=0,boxOffsetY=10,enDict=OPT_DICT_BAIDU}=tranboxSetting;const boxWidth=isMobile||initSimpleStyle?300:limitNumber(window.innerWidth,300,600);const boxHeight=isMobile||initSimpleStyle?200:limitNumber(window.innerHeight,200,400);const langMap=useLangMap(uiLang);const[showBox,setShowBox]=(0,react.useState)(false);const[showBtn,setShowBtn]=(0,react.useState)(false);const[selectedText,setSelText]=(0,react.useState)("");const[text,setText]=(0,react.useState)("");const[position,setPosition]=(0,react.useState)({x:0,y:0});const[boxSize,setBoxSize]=(0,react.useState)({w:boxWidth,h:boxHeight});const[boxPosition,setBoxPosition]=(0,react.useState)({x:(window.innerWidth-boxWidth)/2,y:(window.innerHeight-boxHeight)/2});const[simpleStyle,setSimpleStyle]=(0,react.useState)(initSimpleStyle);const[hideClickAway,setHideClickAway]=(0,react.useState)(initHideClickAway);const[followSelection,setFollowSelection]=(0,react.useState)(initFollowMouse);const handleTrigger=(0,react.useCallback)(text=>{setShowBtn(false);setText(text||selectedText);setShowBox(true);},[selectedText]);const handleTranbox=(0,react.useCallback)(()=>{var _selection$toString,_selection$getRangeAt;setShowBtn(false);const selection=window.getSelection();const selectedText=(selection===null||selection===void 0?void 0:(_selection$toString=selection.toString())===null||_selection$toString===void 0?void 0:_selection$toString.trim())||"";if(!selectedText){setShowBox(pre=>!pre);return;}const rect=selection===null||selection===void 0?void 0:(_selection$getRangeAt=selection.getRangeAt(0))===null||_selection$getRangeAt===void 0?void 0:_selection$getRangeAt.getBoundingClientRect();if(rect&&followSelection){const x=(rect.left+rect.right)/2+boxOffsetX;const y=rect.bottom+boxOffsetY;setBoxPosition({x:limitNumber(x,0,window.innerWidth-300),y:limitNumber(y,0,window.innerHeight-200)});}setSelText(selectedText);setText(selectedText);setShowBox(true);},[followSelection,boxOffsetX,boxOffsetY]);const btnEvent=(0,react.useMemo)(()=>{if(isMobile){return"onTouchEnd";}else if(triggerMode===OPT_TRANBOX_TRIGGER_HOVER){return"onMouseOver";}return"onMouseUp";},[triggerMode]);(0,react.useEffect)(()=>{async function handleMouseup(e){var _selection$toString2,_selection$getRangeAt2;e.stopPropagation();await sleep(200);const selection=window.getSelection();const selectedText=(selection===null||selection===void 0?void 0:(_selection$toString2=selection.toString())===null||_selection$toString2===void 0?void 0:_selection$toString2.trim())||"";setSelText(selectedText);if(!selectedText){setShowBtn(false);return;}const rect=selection===null||selection===void 0?void 0:(_selection$getRangeAt2=selection.getRangeAt(0))===null||_selection$getRangeAt2===void 0?void 0:_selection$getRangeAt2.getBoundingClientRect();if(rect&&followSelection){const x=(rect.left+rect.right)/2+boxOffsetX;const y=rect.bottom+boxOffsetY;setBoxPosition({x:limitNumber(x,0,window.innerWidth-300),y:limitNumber(y,0,window.innerHeight-200)});}if(triggerMode===OPT_TRANBOX_TRIGGER_SELECT){handleTrigger(selectedText);return;}const{clientX,clientY}=isMobile?e.changedTouches[0]:e;setShowBtn(!hideTranBtn);setPosition({x:clientX,y:clientY});}// todo: mobile support
// window.addEventListener("mouseup", handleMouseup);
window.addEventListener(isMobile?"touchend":"mouseup",handleMouseup);return()=>{window.removeEventListener(isMobile?"touchend":"mouseup",handleMouseup);};},[hideTranBtn,triggerMode,followSelection,boxOffsetX,boxOffsetY,handleTrigger]);(0,react.useEffect)(()=>{if(isExt){return;}const clearShortcut=shortcutRegister(tranboxShortcut,handleTranbox);return()=>{clearShortcut();};},[tranboxShortcut,handleTranbox]);(0,react.useEffect)(()=>{window.addEventListener(MSG_OPEN_TRANBOX,handleTranbox);return()=>{window.removeEventListener(MSG_OPEN_TRANBOX,handleTranbox);};},[handleTranbox]);(0,react.useEffect)(()=>{if(!isGm){return;}// 注册菜单
try{const menuCommandIds=[];contextMenuType!==0&&menuCommandIds.push(GM.registerMenuCommand(langMap("translate_selected_text"),event=>{handleTranbox();},"S"));return()=>{menuCommandIds.forEach(id=>{GM.unregisterMenuCommand(id);});};}catch(err){log_kissLog(err,"registerMenuCommand");}},[handleTranbox,contextMenuType,langMap]);(0,react.useEffect)(()=>{if(hideClickAway){const handleHideBox=()=>{setShowBox(false);};window.addEventListener("click",handleHideBox);return()=>{window.removeEventListener("click",handleHideBox);};}},[hideClickAway]);return/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[showBox&&/*#__PURE__*/(0,jsx_runtime.jsx)(TranBox,{text:text,setText:setText,boxSize:boxSize,setBoxSize:setBoxSize,boxPosition:boxPosition,setBoxPosition:setBoxPosition,tranboxSetting:tranboxSetting,transApis:transApis,setShowBox:setShowBox,simpleStyle:simpleStyle,setSimpleStyle:setSimpleStyle,hideClickAway:hideClickAway,setHideClickAway:setHideClickAway,followSelection:followSelection,setFollowSelection:setFollowSelection,extStyles:extStyles,langDetector:langDetector,enDict:enDict}),showBtn&&/*#__PURE__*/(0,jsx_runtime.jsx)(TranBtn,{position:position,btnOffsetX:btnOffsetX,btnOffsetY:btnOffsetY,btnEvent:btnEvent,onTrigger:e=>{e.stopPropagation();handleTrigger();}})]});}
;// CONCATENATED MODULE: ./src/libs/touch.js
function touchTapListener(fn,touchsLength){const handleTouchend=e=>{if(e.touches.length===touchsLength){fn();}};document.addEventListener("touchstart",handleTouchend);return()=>{document.removeEventListener("touchstart",handleTouchend);};}
;// CONCATENATED MODULE: ./src/libs/gm.js
const MSG_GM_xmlHttpRequest="xmlHttpRequest";const MSG_GM_setValue="setValue";const MSG_GM_getValue="getValue";const MSG_GM_deleteValue="deleteValue";const MSG_GM_info="info";/**
 * 注入页面的脚本,请求并接受GM接口信息
 * @param {*} param0
 */const injectScript=ping=>{window.APP_INFO={name:"KISS Translator",version:"1.8.11",eventName:ping};};/**
 * 适配GM脚本
 */const adaptScript=ping=>{const promiseGM=function(action,args){let timeout=arguments.length>2&&arguments[2]!==undefined?arguments[2]:5000;return new Promise((resolve,reject)=>{const pong=genEventName();const handleEvent=e=>{window.removeEventListener(pong,handleEvent);const{data,error}=e.detail;if(error){reject(new Error(error));}else{resolve(data);}};window.addEventListener(pong,handleEvent);window.dispatchEvent(new CustomEvent(ping,{detail:{action,args,pong}}));setTimeout(()=>{window.removeEventListener(pong,handleEvent);reject(new Error("timeout"));},timeout);});};window.KISS_GM={fetch:(input,init)=>promiseGM(MSG_GM_xmlHttpRequest,{input,init}),setValue:(key,val)=>promiseGM(MSG_GM_setValue,{key,val}),getValue:key=>promiseGM(MSG_GM_getValue,{key}),deleteValue:key=>promiseGM(MSG_GM_deleteValue,{key}),getInfo:async()=>{if(!window.GM_info){window.GM_info=await promiseGM(MSG_GM_info);}return window.GM_info;}};};/**
 * 监听并回应页面对GM接口的请求
 * @param {*} param0
 */const handlePing=async e=>{const{action,args,pong}=e.detail;let res;try{switch(action){case MSG_GM_xmlHttpRequest:const{input,init}=args;res=await fetchGM(input,init);break;case MSG_GM_setValue:const{key,val}=args;await GM.setValue(key,val);res=val;break;case MSG_GM_getValue:res=await GM.getValue(args.key);break;case MSG_GM_deleteValue:await GM.deleteValue(args.key);res="ok";break;case MSG_GM_info:res=GM.info;break;default:throw new Error("message action is unavailable: ".concat(action));}window.dispatchEvent(new CustomEvent(pong,{detail:{data:res}}));}catch(err){window.dispatchEvent(new CustomEvent(pong,{detail:{error:err.message}}));}};
;// CONCATENATED MODULE: ./src/libs/blacklist.js
/**
 * 检查是否在黑名单中
 * @param {*} href
 * @param {*} param1
 * @returns
 */const isInBlacklist=(href,_ref)=>{let{blacklist}=_ref;return blacklist.split(/\n|,/).some(url=>isMatch(href,url.trim()));};
;// CONCATENATED MODULE: ./src/libs/inputTranslate.js
function isInputNode(node){return node.nodeName==="INPUT"||node.nodeName==="TEXTAREA";}function isEditAbleNode(node){return node.hasAttribute("contenteditable");}function selectContent(node){node.focus();const range=document.createRange();range.selectNodeContents(node);const selection=window.getSelection();selection.removeAllRanges();selection.addRange(range);}function pasteContentEvent(node,text){node.focus();const data=new DataTransfer();data.setData("text/plain",text);const event=new ClipboardEvent("paste",{clipboardData:data});document.dispatchEvent(event);data.clearData();}function pasteContentCommand(node,text){node.focus();document.execCommand("insertText",false,text);}function collapseToEnd(node){node.focus();const selection=window.getSelection();selection.collapseToEnd();}function getNodeText(node){if(isInputNode(node)){return node.value;}return node.innerText||node.textContent||"";}function addLoading(node,loadingId){var _node$offsetParent;const div=document.createElement("div");div.id=loadingId;div.innerHTML=loadingSvg;div.style.cssText="\n      width: ".concat(node.offsetWidth,"px;\n      height: ").concat(node.offsetHeight,"px;\n      line-height: ").concat(node.offsetHeight,"px;\n      position: absolute;\n      text-align: center;\n      left: ").concat(node.offsetLeft,"px;\n      top: ").concat(node.offsetTop,"px;\n      z-index: 2147483647;\n    ");(_node$offsetParent=node.offsetParent)===null||_node$offsetParent===void 0?void 0:_node$offsetParent.appendChild(div);}function removeLoading(node,loadingId){const div=node.offsetParent.querySelector("#".concat(loadingId));if(div){div.remove();}}/**
 * 输入框翻译
 */function inputTranslate(_ref){let{inputRule:{transOpen,triggerShortcut,translator,fromLang,toLang,triggerCount,triggerTime,transSign}=DEFAULT_INPUT_RULE,transApis}=_ref;if(!transOpen){return;}const apiSetting=(transApis===null||transApis===void 0?void 0:transApis[translator])||DEFAULT_TRANS_APIS[translator];if(triggerShortcut.length===0){triggerShortcut=DEFAULT_INPUT_SHORTCUT;triggerCount=1;}stepShortcutRegister(triggerShortcut,async()=>{let node=document.activeElement;if(!node){return;}while(node.shadowRoot){node=node.shadowRoot.activeElement;}if(!isInputNode(node)&&!isEditAbleNode(node)){return;}let initText=getNodeText(node);if(triggerShortcut.length===1&&triggerShortcut[0].length===1){// todo: remove multiple char
initText=removeEndchar(initText,triggerShortcut[0],triggerCount);}if(!initText.trim()){return;}let text=initText;if(transSign){const res=matchInputStr(text,transSign);if(res){let lang=res[1];if(lang==="zh"||lang==="cn"){lang="zh-CN";}else if(lang==="tw"||lang==="hk"){lang="zh-TW";}if(lang&&OPT_LANGS_LIST.includes(lang)){toLang=lang;}text=res[2];}}// console.log("input -->", text);
const loadingId="kiss-"+utils_genEventName();try{addLoading(node,loadingId);const[trText,isSame]=await apiTranslate({translator,text,fromLang,toLang,apiSetting});if(!trText||isSame){return;}if(isInputNode(node)){node.value=trText;node.dispatchEvent(new Event("input",{bubbles:true,cancelable:true}));return;}selectContent(node);await sleep(200);pasteContentEvent(node,trText);await sleep(200);// todo: use includes?
if(getNodeText(node).startsWith(initText)){pasteContentCommand(node,trText);await sleep(100);}else{collapseToEnd(node);}}catch(err){log_kissLog(err,"translate input");}finally{removeLoading(node,loadingId);}},triggerCount,triggerTime);}
;// CONCATENATED MODULE: ./src/common.js
/**
 * 油猴脚本设置页面
 */function runSettingPage(){var _GM,_GM$info,_GM$info$script,_GM$info$script$grant;if((_GM=GM)!==null&&_GM!==void 0&&(_GM$info=_GM.info)!==null&&_GM$info!==void 0&&(_GM$info$script=_GM$info.script)!==null&&_GM$info$script!==void 0&&(_GM$info$script$grant=_GM$info$script.grant)!==null&&_GM$info$script$grant!==void 0&&_GM$info$script$grant.includes("unsafeWindow")){unsafeWindow.GM=GM;unsafeWindow.APP_INFO={name:"KISS Translator",version:"1.8.11"};}else{const ping=utils_genEventName();window.addEventListener(ping,handlePing);// window.eval(`(${injectScript})("${ping}")`); // eslint-disable-line
const script=document.createElement("script");script.textContent="(".concat(injectScript,")(\"").concat(ping,"\")");document.head.append(script);}}/**
 * 插件监听后端事件
 * @param {*} translator
 */function runtimeListener(translator){browser===null||browser===void 0?void 0:browser.runtime.onMessage.addListener(async _ref=>{let{action,args}=_ref;switch(action){case MSG_TRANS_TOGGLE:translator.toggle();sendIframeMsg(MSG_TRANS_TOGGLE);break;case MSG_TRANS_TOGGLE_STYLE:translator.toggleStyle();sendIframeMsg(MSG_TRANS_TOGGLE_STYLE);break;case MSG_TRANS_GETRULE:break;case MSG_TRANS_PUTRULE:translator.updateRule(args);sendIframeMsg(MSG_TRANS_PUTRULE,args);break;case MSG_OPEN_TRANBOX:window.dispatchEvent(new CustomEvent(MSG_OPEN_TRANBOX));break;default:return{error:"message action is unavailable: ".concat(action)};}return{data:translator.rule};});}/**
 * iframe 页面执行
 * @param {*} translator
 */function runIframe(translator){window.addEventListener("message",e=>{const{action,args}=e.data||{};switch(action){case MSG_TRANS_TOGGLE:translator===null||translator===void 0?void 0:translator.toggle();break;case MSG_TRANS_TOGGLE_STYLE:translator===null||translator===void 0?void 0:translator.toggleStyle();break;case MSG_TRANS_PUTRULE:translator.updateRule(args||{});break;default:}});}/**
 * 悬浮按钮
 * @param {*} translator
 * @returns
 */async function showFab(translator){const fab=await getFabWithDefault();const $action=document.createElement("div");$action.setAttribute("id",APP_LCNAME);$action.style.fontSize="0";$action.style.width="0";$action.style.height="0";document.body.parentElement.appendChild($action);const shadowContainer=$action.attachShadow({mode:"closed"});const emotionRoot=document.createElement("style");const shadowRootElement=document.createElement("div");shadowContainer.appendChild(emotionRoot);shadowContainer.appendChild(shadowRootElement);const cache=(0,emotion_cache_browser_esm/* default */.Z)({key:APP_LCNAME,prepend:true,container:emotionRoot});client.createRoot(shadowRootElement).render(/*#__PURE__*/(0,jsx_runtime.jsx)(react.StrictMode,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(emotion_element_c39617d8_browser_esm.C,{value:cache,children:/*#__PURE__*/(0,jsx_runtime.jsx)(Action,{translator:translator,fab:fab})})}));}/**
 * 划词翻译
 * @param {*} param0
 * @returns
 */function showTransbox(_ref2){let{contextMenuType,tranboxSetting=DEFAULT_TRANBOX_SETTING,transApis,darkMode,uiLang,langDetector}=_ref2;if(!(tranboxSetting!==null&&tranboxSetting!==void 0&&tranboxSetting.transOpen)){return;}const $tranbox=document.createElement("div");$tranbox.setAttribute("id","kiss-transbox");$tranbox.style.fontSize="0";$tranbox.style.width="0";$tranbox.style.height="0";document.body.parentElement.appendChild($tranbox);const shadowContainer=$tranbox.attachShadow({mode:"closed"});const emotionRoot=document.createElement("style");const shadowRootElement=document.createElement("div");shadowRootElement.classList.add("KT-transbox");shadowRootElement.classList.add("KT-transbox_".concat(darkMode?"dark":"light"));shadowContainer.appendChild(emotionRoot);shadowContainer.appendChild(shadowRootElement);const cache=(0,emotion_cache_browser_esm/* default */.Z)({key:"kiss-transbox",prepend:true,container:emotionRoot});client.createRoot(shadowRootElement).render(/*#__PURE__*/(0,jsx_runtime.jsx)(react.StrictMode,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(emotion_element_c39617d8_browser_esm.C,{value:cache,children:/*#__PURE__*/(0,jsx_runtime.jsx)(Slection,{contextMenuType:contextMenuType,tranboxSetting:tranboxSetting,transApis:transApis,uiLang:uiLang,langDetector:langDetector})})}));}/**
 * 显示错误信息到页面顶部
 * @param {*} message
 */function showErr(message){const $err=document.createElement("div");$err.innerText="KISS-Translator: ".concat(message);$err.style.cssText="background:red; color:#fff;";document.body.prepend($err);}/**
 * 监听触屏操作
 * @param {*} translator
 * @returns
 */function touchOperation(translator){const{touchTranslate=2}=translator.setting;if(touchTranslate===0){return;}const handleTap=debounce(()=>{translator.toggle();sendIframeMsg(MSG_TRANS_TOGGLE);});touchTapListener(handleTap,touchTranslate);}/**
 * 入口函数
 */async function common_run(){let isUserscript=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;try{const href=document.location.href;// 设置页面
if(isUserscript&&(href.includes("http://localhost:3000/options.html")||href.includes("https://fishjar.github.io/kiss-translator/options.html"))){runSettingPage();return;}// 读取设置信息
const setting=await getSettingWithDefault();// 黑名单
if(isInBlacklist(href,setting)){return;}// 翻译网页
const rule=await matchRule(href,setting);const translator=new Translator(rule,setting);// 适配iframe
if(isIframe){runIframe(translator);return;}// 监听消息
!isUserscript&&runtimeListener(translator);// 输入框翻译
inputTranslate(setting);// 划词翻译
showTransbox(setting);// 浮球按钮
await showFab(translator);// 触屏操作
touchOperation(translator);// 同步订阅规则
isUserscript&&(await trySyncAllSubRules(setting));}catch(err){console.error("[KISS-Translator]",err);showErr(err.message);}}
;// CONCATENATED MODULE: ./src/userscript.js
common_run(true);
})();

/******/ })()
;