{"version":3,"file":"all.bundle.mjs","sources":["../../src/digitalmarketplace/common/digitalmarketplace-frontend-version.ts","../../src/digitalmarketplace/scripts/analytics/tag-manager.ts","../../../../node_modules/js-cookie/dist/js.cookie.mjs","../../src/digitalmarketplace/scripts/analytics/data-layer.types.ts","../../src/digitalmarketplace/scripts/analytics/data-layer.ts","../../src/digitalmarketplace/scripts/cookies/manage.ts","../../src/digitalmarketplace/scripts/analytics/init-google-analytics.ts","../../../../node_modules/govuk-frontend/dist/govuk/common/index.mjs","../../../../node_modules/govuk-frontend/dist/govuk/errors/index.mjs","../../../../node_modules/govuk-frontend/dist/govuk/component.mjs","../../../../node_modules/govuk-frontend/dist/govuk/common/configuration.mjs","../../../../node_modules/govuk-frontend/dist/govuk/i18n.mjs","../../../../node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs","../../../../node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.mjs","../../src/digitalmarketplace/components/compliance-communication-attachments/compliance-communication-attachments.ts","../../src/digitalmarketplace/components/cookie-banner/cookie-banner.ts","../../src/digitalmarketplace/scripts/cookies/settings.ts","../../src/digitalmarketplace/components/list-input/list-input.ts","../../src/digitalmarketplace/components/option-select/option-select.ts","../../src/digitalmarketplace/components/option-tree/option-tree.ts","../../src/digitalmarketplace/components/question/question.ts","../../src/digitalmarketplace/components/question-checkbox-tree/question-checkbox-tree.ts","../../src/digitalmarketplace/components/question-list/question-list.ts","../../src/digitalmarketplace/components/question-list-multiquestion-client-side/question-list-multiquestion-client-side.ts","../../src/digitalmarketplace/components/search-box/search-box.ts","../../../../node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js","../../src/digitalmarketplace/components/select-country-from-form/select-country-from-form.ts","../../src/digitalmarketplace/init.ts"],"sourcesContent":["/*\n * This variable is automatically overwritten during builds and releases.\n * It doesn't need to be updated manually.\n */\n\n/**\n * Digital Marketplace Frontend release version\n *\n * {@link https://github.com/Crown-Commercial-Service/ccs-digitalmarketplace-govuk-frontend/releases}\n */\nexport const version = 'development'\n","const GOOGLE_TAG_MANAGER_ID = 'GTM-WCGFX3GW'\n\nconst googleTagManagerInit = (w: Window, d: Document, s: 'script', l: 'dataLayer', i: string) => {\n  w[l] = w[l] || []\n  w[l].push({\n    'gtm.start': new Date().getTime(),\n    event: 'gtm.js'\n  })\n  const f = d.getElementsByTagName(s)[0]\n  const j = d.createElement(s)\n  const dl = l != 'dataLayer' ? '&l=' + l : ''\n  j.async = true\n  j.src ='https://www.googletagmanager.com/gtm.js?id=' + i + dl;\n  (f.parentNode as ParentNode).insertBefore(j, f)\n}\n\nconst loadGoogleTagManager = () => googleTagManagerInit(window, document, 'script', 'dataLayer', GOOGLE_TAG_MANAGER_ID)\n\nexport { loadGoogleTagManager }\n","/*! js-cookie v3.0.7 | MIT */\nfunction assign (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n    for (var key in source) {\n      if (key === '__proto__') continue\n      target[key] = source[key];\n    }\n  }\n  return target\n}\n\nvar defaultConverter = {\n  read: function (value) {\n    if (value[0] === '\"') {\n      value = value.slice(1, -1);\n    }\n    return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n  },\n  write: function (value) {\n    return encodeURIComponent(value).replace(\n      /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n      decodeURIComponent\n    )\n  }\n};\n\nfunction init(converter, defaultAttributes) {\n  function set(name, value, attributes) {\n    if (typeof document === 'undefined') {\n      return\n    }\n\n    attributes = assign({}, defaultAttributes, attributes);\n\n    if (typeof attributes.expires === 'number') {\n      attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n    }\n    if (attributes.expires) {\n      attributes.expires = attributes.expires.toUTCString();\n    }\n\n    name = encodeURIComponent(name)\n      .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n      .replace(/[()]/g, escape);\n\n    var stringifiedAttributes = '';\n    for (var attributeName in attributes) {\n      if (!attributes[attributeName]) {\n        continue\n      }\n\n      stringifiedAttributes += '; ' + attributeName;\n\n      if (attributes[attributeName] === true) {\n        continue\n      }\n\n      // Considers RFC 6265 section 5.2:\n      // ...\n      // 3.  If the remaining unparsed-attributes contains a %x3B (\";\")\n      //     character:\n      // Consume the characters of the unparsed-attributes up to,\n      // not including, the first %x3B (\";\") character.\n      // ...\n      stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n    }\n\n    return (document.cookie =\n      name + '=' + converter.write(value, name) + stringifiedAttributes)\n  }\n\n  function get(name) {\n    if (typeof document === 'undefined' || (arguments.length && !name)) {\n      return\n    }\n\n    // To prevent the for loop in the first place assign an empty array\n    // in case there are no cookies at all.\n    var cookies = document.cookie ? document.cookie.split('; ') : [];\n    var jar = {};\n    for (var i = 0; i < cookies.length; i++) {\n      var parts = cookies[i].split('=');\n      var value = parts.slice(1).join('=');\n\n      try {\n        var found = decodeURIComponent(parts[0]);\n        if (!(found in jar)) jar[found] = converter.read(value, found);\n        if (name === found) {\n          break\n        }\n      } catch {\n        // Do nothing...\n      }\n    }\n\n    return name ? jar[name] : jar\n  }\n\n  return Object.create(\n    {\n      set,\n      get,\n      remove: function (name, attributes) {\n        set(\n          name,\n          '',\n          assign({}, attributes, {\n            expires: -1\n          })\n        );\n      },\n      withAttributes: function (attributes) {\n        return init(this.converter, assign({}, this.attributes, attributes))\n      },\n      withConverter: function (converter) {\n        return init(assign({}, this.converter, converter), this.attributes)\n      }\n    },\n    {\n      attributes: { value: Object.freeze(defaultAttributes) },\n      converter: { value: Object.freeze(converter) }\n    }\n  )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n\nexport { api as default };\n","\nenum GrantType {\n  GRANTED = 'granted',\n  NOT_GRANTED = 'not granted'\n}\n\nexport { GrantType }","import { CookiePreferences } from '../cookies/manage.types'\nimport { GrantType } from './data-layer.types'\n\nconst getGrantedText = (state: boolean) => state ? GrantType.GRANTED : GrantType.NOT_GRANTED\n\nconst updateDataLayer = (cookiePreferences: CookiePreferences) => {\n  window.dataLayer.push({\n    event: 'gtm_consent_update',\n    usage_consent: getGrantedText(cookiePreferences.usage),\n    glassbox_consent: getGrantedText(cookiePreferences.glassbox),\n    marketing_consent: GrantType.NOT_GRANTED\n  })\n}\n\nexport { updateDataLayer }","import Cookies from 'js-cookie'\nimport { CookiePreferences, CookieUpdateOption } from './manage.types'\nimport { updateDataLayer } from '../analytics/data-layer'\n\nconst cookieUpdateOptions: CookieUpdateOption[] = [\n  {\n    cookieName: 'usage',\n    cookiePrefixes: ['_ga', '_gi']\n  },\n  {\n    cookieName: 'glassbox',\n    cookiePrefixes: ['_cls']\n  }\n]\n\nconst DOMAINS = [\n  '.marketplace.team',\n  '.digitalmarketplace.service.gov.uk',\n  'www.applytosupply.digitalmarketplace.service.gov.uk'\n]\n\n// When not in production we want to delete cookies in localhost too\nconst getDomains = () => {\n  if (window.location.hostname === 'localhost') {\n    return DOMAINS.concat(['localhost'])\n  }\n\n  return DOMAINS\n}\n\nconst getCookiePreferences = (): CookiePreferences => {\n  const defaultCookieSettings = '{\"usage\":false,\"glassbox\":false}'\n\n  return JSON.parse(Cookies.get('cookie_preferences_dmp') ?? defaultCookieSettings)\n}\n\nconst setCookiePreferences = (usage: boolean) => {\n  const cookiePreferences: CookiePreferences = getCookiePreferences()\n\n  cookiePreferences.usage = usage\n  cookiePreferences.settings_viewed = true\n\n  Cookies.set('cookie_preferences_dmp', JSON.stringify(cookiePreferences), { expires: 365 })\n\n  updateDataLayer(cookiePreferences)\n  removeUnwantedCookies()\n}\n\nconst removeUnwantedCookies = (): void => {\n  const cookieList: string[] = Object.keys(Cookies.get())\n  const cookiesToRemove: string[] = ['digitalmarketplace_cookie_settings_viewed', 'digitalmarketplace_google_analytics_enabled', 'digitalmarketplace_cookie_options_v1', 'dm_cookies_policy']\n  const cookiePreferences: CookiePreferences = getCookiePreferences()\n  const cookiePrefixes: string[] = []\n\n  cookieUpdateOptions.forEach((cookieUpdateOption) => {\n    if (!cookiePreferences[cookieUpdateOption.cookieName]) cookiePrefixes.push(...cookieUpdateOption.cookiePrefixes)\n  })\n\n  for (let i = 0; i < cookieList.length; i++) {\n    const cookieName = cookieList[i]\n\n    if (cookiePrefixes.some((cookiePrefix) => cookieName.startsWith(cookiePrefix))) cookiesToRemove.push(cookieName)\n  }\n\n  getDomains().forEach((domain) => {\n    cookiesToRemove.forEach((cookieName) => { Cookies.remove(cookieName, { path: '/', domain: domain }) })\n  })\n}\n\nexport {\n  getCookiePreferences,\n  setCookiePreferences,\n  removeUnwantedCookies\n}","import { loadGoogleTagManager } from './tag-manager'\nimport { removeUnwantedCookies } from '../cookies/manage'\n\nconst initGoogleAnalytics = () => {\n  loadGoogleTagManager()\n\n  removeUnwantedCookies()\n}\n\nexport { initGoogleAnalytics }\n","function getBreakpoint(name) {\n  const property = `--govuk-breakpoint-${name}`;\n  const value = window.getComputedStyle(document.documentElement).getPropertyValue(property);\n  return {\n    property,\n    value: value || undefined\n  };\n}\nfunction setFocus($element, options = {}) {\n  var _options$onBeforeFocu;\n  const isFocusable = $element.getAttribute('tabindex');\n  if (!isFocusable) {\n    $element.setAttribute('tabindex', '-1');\n  }\n  function onFocus() {\n    $element.addEventListener('blur', onBlur, {\n      once: true\n    });\n  }\n  function onBlur() {\n    var _options$onBlur;\n    (_options$onBlur = options.onBlur) == null || _options$onBlur.call($element);\n    if (!isFocusable) {\n      $element.removeAttribute('tabindex');\n    }\n  }\n  $element.addEventListener('focus', onFocus, {\n    once: true\n  });\n  (_options$onBeforeFocu = options.onBeforeFocus) == null || _options$onBeforeFocu.call($element);\n  $element.focus();\n}\nfunction isInitialised($root, moduleName) {\n  return $root instanceof HTMLElement && $root.hasAttribute(`data-${moduleName}-init`);\n}\n\n/**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * Some browsers will load and run our JavaScript but GOV.UK Frontend\n * won't be supported.\n *\n * @param {HTMLElement | null} [$scope] - (internal) `<body>` HTML element checked for browser support\n * @returns {boolean} Whether GOV.UK Frontend is supported on this page\n */\nfunction isSupported($scope = document.body) {\n  if (!$scope) {\n    return false;\n  }\n  return $scope.classList.contains('govuk-frontend-supported');\n}\nfunction isArray(option) {\n  return Array.isArray(option);\n}\nfunction isObject(option) {\n  return !!option && typeof option === 'object' && !isArray(option);\n}\nfunction isScope($scope) {\n  return !!$scope && ($scope instanceof Element || $scope instanceof Document);\n}\nfunction formatErrorMessage(Component, message) {\n  return `${Component.moduleName}: ${message}`;\n}\n/**\n * @typedef ComponentWithModuleName\n * @property {string} moduleName - Name of the component\n */\n\nexport { formatErrorMessage, getBreakpoint, isInitialised, isObject, isScope, isSupported, setFocus };\n//# sourceMappingURL=index.mjs.map\n","import { isObject, formatErrorMessage } from '../common/index.mjs';\n\nclass GOVUKFrontendError extends Error {\n  constructor(...args) {\n    super(...args);\n    this.name = 'GOVUKFrontendError';\n  }\n}\nclass SupportError extends GOVUKFrontendError {\n  /**\n   * Checks if GOV.UK Frontend is supported on this page\n   *\n   * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n   */\n  constructor($scope = document.body) {\n    const supportMessage = 'noModule' in HTMLScriptElement.prototype ? 'GOV.UK Frontend initialised without `<body class=\"govuk-frontend-supported\">` from template `<script>` snippet' : 'GOV.UK Frontend is not supported in this browser';\n    super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type=\"module\">`');\n    this.name = 'SupportError';\n  }\n}\nclass ConfigError extends GOVUKFrontendError {\n  constructor(...args) {\n    super(...args);\n    this.name = 'ConfigError';\n  }\n}\nclass ElementError extends GOVUKFrontendError {\n  constructor(messageOrOptions) {\n    let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';\n    if (isObject(messageOrOptions)) {\n      const {\n        component,\n        identifier,\n        element,\n        expectedType\n      } = messageOrOptions;\n      message = identifier;\n      message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';\n      if (component) {\n        message = formatErrorMessage(component, message);\n      }\n    }\n    super(message);\n    this.name = 'ElementError';\n  }\n}\nclass InitError extends GOVUKFrontendError {\n  constructor(componentOrMessage) {\n    const message = typeof componentOrMessage === 'string' ? componentOrMessage : formatErrorMessage(componentOrMessage, `Root element (\\`$root\\`) already initialised`);\n    super(message);\n    this.name = 'InitError';\n  }\n}\n/**\n * @import { ComponentWithModuleName } from '../common/index.mjs'\n */\n\nexport { ConfigError, ElementError, GOVUKFrontendError, InitError, SupportError };\n//# sourceMappingURL=index.mjs.map\n","import { isInitialised, isSupported } from './common/index.mjs';\nimport { InitError, ElementError, SupportError } from './errors/index.mjs';\n\nclass Component {\n  /**\n   * Returns the root element of the component\n   *\n   * @protected\n   * @returns {RootElementType} - the root element of component\n   */\n  get $root() {\n    return this._$root;\n  }\n  constructor($root) {\n    this._$root = void 0;\n    const childConstructor = this.constructor;\n    if (typeof childConstructor.moduleName !== 'string') {\n      throw new InitError(`\\`moduleName\\` not defined in component`);\n    }\n    if (!($root instanceof childConstructor.elementType)) {\n      throw new ElementError({\n        element: $root,\n        component: childConstructor,\n        identifier: 'Root element (`$root`)',\n        expectedType: childConstructor.elementType.name\n      });\n    } else {\n      this._$root = $root;\n    }\n    childConstructor.checkSupport();\n    this.checkInitialised();\n    const moduleName = childConstructor.moduleName;\n    this.$root.setAttribute(`data-${moduleName}-init`, '');\n  }\n  checkInitialised() {\n    const constructor = this.constructor;\n    const moduleName = constructor.moduleName;\n    if (moduleName && isInitialised(this.$root, moduleName)) {\n      throw new InitError(constructor);\n    }\n  }\n  static checkSupport() {\n    if (!isSupported()) {\n      throw new SupportError();\n    }\n  }\n}\n\n/**\n * @typedef ChildClass\n * @property {string} moduleName - The module name that'll be looked for in the DOM when initialising the component\n */\n\n/**\n * @typedef {typeof Component & ChildClass} ChildClassConstructor\n */\nComponent.elementType = HTMLElement;\n\nexport { Component };\n//# sourceMappingURL=component.mjs.map\n","import { Component } from '../component.mjs';\nimport { ConfigError } from '../errors/index.mjs';\nimport { isObject, formatErrorMessage, isScope } from './index.mjs';\n\nconst configOverride = Symbol.for('configOverride');\nclass ConfigurableComponent extends Component {\n  [configOverride](param) {\n    return {};\n  }\n\n  /**\n   * Returns the root element of the component\n   *\n   * @protected\n   * @returns {ConfigurationType} - the root element of component\n   */\n  get config() {\n    return this._config;\n  }\n  constructor($root, config) {\n    super($root);\n    this._config = void 0;\n    const childConstructor = this.constructor;\n    if (!isObject(childConstructor.defaults)) {\n      throw new ConfigError(formatErrorMessage(childConstructor, 'Config passed as parameter into constructor but no defaults defined'));\n    }\n    const datasetConfig = normaliseDataset(childConstructor, this._$root.dataset);\n    this._config = mergeConfigs(childConstructor.defaults, config != null ? config : {}, this[configOverride](datasetConfig), datasetConfig);\n  }\n}\nfunction normaliseString(value, property) {\n  const trimmedValue = value ? value.trim() : '';\n  let output;\n  let outputType = property == null ? void 0 : property.type;\n  if (!outputType) {\n    if (['true', 'false'].includes(trimmedValue)) {\n      outputType = 'boolean';\n    }\n    if (trimmedValue.length > 0 && isFinite(Number(trimmedValue))) {\n      outputType = 'number';\n    }\n  }\n  switch (outputType) {\n    case 'boolean':\n      output = trimmedValue === 'true';\n      break;\n    case 'number':\n      output = Number(trimmedValue);\n      break;\n    default:\n      output = value;\n  }\n  return output;\n}\nfunction normaliseDataset(Component, dataset) {\n  if (!isObject(Component.schema)) {\n    throw new ConfigError(formatErrorMessage(Component, 'Config passed as parameter into constructor but no schema defined'));\n  }\n  const out = {};\n  const entries = Object.entries(Component.schema.properties);\n  for (const entry of entries) {\n    const [namespace, property] = entry;\n    const field = namespace.toString();\n    if (field in dataset) {\n      out[field] = normaliseString(dataset[field], property);\n    }\n    if ((property == null ? void 0 : property.type) === 'object') {\n      out[field] = extractConfigByNamespace(Component.schema, dataset, namespace);\n    }\n  }\n  return out;\n}\nfunction normaliseOptions(scopeOrOptions) {\n  let $scope = document;\n  let onError;\n  if (isObject(scopeOrOptions)) {\n    const options = scopeOrOptions;\n    if (isScope(options.scope) || options.scope === null) {\n      $scope = options.scope;\n    }\n    if (typeof options.onError === 'function') {\n      onError = options.onError;\n    }\n  }\n  if (isScope(scopeOrOptions)) {\n    $scope = scopeOrOptions;\n  } else if (scopeOrOptions === null) {\n    $scope = null;\n  } else if (typeof scopeOrOptions === 'function') {\n    onError = scopeOrOptions;\n  }\n  return {\n    scope: $scope,\n    onError\n  };\n}\nfunction mergeConfigs(...configObjects) {\n  const formattedConfigObject = {};\n  for (const configObject of configObjects) {\n    for (const key of Object.keys(configObject)) {\n      const option = formattedConfigObject[key];\n      const override = configObject[key];\n      if (isObject(option) && isObject(override)) {\n        formattedConfigObject[key] = mergeConfigs(option, override);\n      } else {\n        formattedConfigObject[key] = override;\n      }\n    }\n  }\n  return formattedConfigObject;\n}\nfunction validateConfig(schema, config) {\n  const validationErrors = [];\n  for (const [name, conditions] of Object.entries(schema)) {\n    const errors = [];\n    if (Array.isArray(conditions)) {\n      for (const {\n        required,\n        errorMessage\n      } of conditions) {\n        if (!required.every(key => !!config[key])) {\n          errors.push(errorMessage);\n        }\n      }\n      if (name === 'anyOf' && !(conditions.length - errors.length >= 1)) {\n        validationErrors.push(...errors);\n      }\n    }\n  }\n  return validationErrors;\n}\nfunction extractConfigByNamespace(schema, dataset, namespace) {\n  const property = schema.properties[namespace];\n  if ((property == null ? void 0 : property.type) !== 'object') {\n    return;\n  }\n  const newObject = {\n    [namespace]: {}\n  };\n  for (const [key, value] of Object.entries(dataset)) {\n    let current = newObject;\n    const keyParts = key.split('.');\n    for (const [index, name] of keyParts.entries()) {\n      if (isObject(current)) {\n        if (index < keyParts.length - 1) {\n          if (!isObject(current[name])) {\n            current[name] = {};\n          }\n          current = current[name];\n        } else if (key !== namespace) {\n          current[name] = normaliseString(value);\n        }\n      }\n    }\n  }\n  return newObject[namespace];\n}\n/**\n * Schema for component config\n *\n * @template {Partial<Record<keyof ConfigurationType, unknown>>} ConfigurationType\n * @typedef {object} Schema\n * @property {Record<keyof ConfigurationType, SchemaProperty | undefined>} properties - Schema properties\n * @property {SchemaCondition<ConfigurationType>[]} [anyOf] - List of schema conditions\n */\n/**\n * Schema property for component config\n *\n * @typedef {object} SchemaProperty\n * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type\n */\n/**\n * Schema condition for component config\n *\n * @template {Partial<Record<keyof ConfigurationType, unknown>>} ConfigurationType\n * @typedef {object} SchemaCondition\n * @property {(keyof ConfigurationType)[]} required - List of required config fields\n * @property {string} errorMessage - Error message when required config fields not provided\n */\n/**\n * @template {Partial<Record<keyof ConfigurationType, unknown>>} [ConfigurationType=ObjectNested]\n * @typedef ChildClass\n * @property {string} moduleName - The module name that'll be looked for in the DOM when initialising the component\n * @property {Schema<ConfigurationType>} [schema] - The schema of the component configuration\n * @property {ConfigurationType} [defaults] - The default values of the configuration of the component\n */\n/**\n * @template {Partial<Record<keyof ConfigurationType, unknown>>} [ConfigurationType=ObjectNested]\n * @typedef {typeof Component & ChildClass<ConfigurationType>} ChildClassConstructor<ConfigurationType>\n */\n/**\n * @import { CompatibleClass, Config, CreateAllOptions, OnErrorCallback } from '../init.mjs'\n */\n\nexport { ConfigurableComponent, configOverride, extractConfigByNamespace, mergeConfigs, normaliseDataset, normaliseOptions, normaliseString, validateConfig };\n//# sourceMappingURL=configuration.mjs.map\n","import { isObject } from './common/index.mjs';\n\nclass I18n {\n  constructor(translations = {}, config = {}) {\n    var _config$locale;\n    this.translations = void 0;\n    this.locale = void 0;\n    this.translations = translations;\n    this.locale = (_config$locale = config.locale) != null ? _config$locale : document.documentElement.lang || 'en';\n  }\n  t(lookupKey, options) {\n    if (!lookupKey) {\n      throw new Error('i18n: lookup key missing');\n    }\n    let translation = this.translations[lookupKey];\n    if (typeof (options == null ? void 0 : options.count) === 'number' && isObject(translation)) {\n      const translationPluralForm = translation[this.getPluralSuffix(lookupKey, options.count)];\n      if (translationPluralForm) {\n        translation = translationPluralForm;\n      }\n    }\n    if (typeof translation === 'string') {\n      if (translation.match(/%{(.\\S+)}/)) {\n        if (!options) {\n          throw new Error('i18n: cannot replace placeholders in string if no option data provided');\n        }\n        return this.replacePlaceholders(translation, options);\n      }\n      return translation;\n    }\n    return lookupKey;\n  }\n  replacePlaceholders(translationString, options) {\n    const formatter = Intl.NumberFormat.supportedLocalesOf(this.locale).length ? new Intl.NumberFormat(this.locale) : undefined;\n    return translationString.replace(/%{(.\\S+)}/g, function (placeholderWithBraces, placeholderKey) {\n      if (Object.prototype.hasOwnProperty.call(options, placeholderKey)) {\n        const placeholderValue = options[placeholderKey];\n        if (placeholderValue === false || typeof placeholderValue !== 'number' && typeof placeholderValue !== 'string') {\n          return '';\n        }\n        if (typeof placeholderValue === 'number') {\n          return formatter ? formatter.format(placeholderValue) : `${placeholderValue}`;\n        }\n        return placeholderValue;\n      }\n      throw new Error(`i18n: no data found to replace ${placeholderWithBraces} placeholder in string`);\n    });\n  }\n  hasIntlPluralRulesSupport() {\n    return Boolean('PluralRules' in window.Intl && Intl.PluralRules.supportedLocalesOf(this.locale).length);\n  }\n  getPluralSuffix(lookupKey, count) {\n    count = Number(count);\n    if (!isFinite(count)) {\n      return 'other';\n    }\n    const translation = this.translations[lookupKey];\n    const preferredForm = this.hasIntlPluralRulesSupport() ? new Intl.PluralRules(this.locale).select(count) : 'other';\n    if (isObject(translation)) {\n      if (preferredForm in translation) {\n        return preferredForm;\n      } else if ('other' in translation) {\n        console.warn(`i18n: Missing plural form \".${preferredForm}\" for \"${this.locale}\" locale. Falling back to \".other\".`);\n        return 'other';\n      }\n    }\n    throw new Error(`i18n: Plural form \".other\" is required for \"${this.locale}\" locale`);\n  }\n}\n\nexport { I18n };\n//# sourceMappingURL=i18n.mjs.map\n","function closestAttributeValue($element, attributeName) {\n  const $closestElementWithAttribute = $element.closest(`[${attributeName}]`);\n  return $closestElementWithAttribute ? $closestElementWithAttribute.getAttribute(attributeName) : null;\n}\n\nexport { closestAttributeValue };\n//# sourceMappingURL=closest-attribute-value.mjs.map\n","import { closestAttributeValue } from '../../common/closest-attribute-value.mjs';\nimport { ConfigurableComponent } from '../../common/configuration.mjs';\nimport { formatErrorMessage } from '../../common/index.mjs';\nimport { ElementError } from '../../errors/index.mjs';\nimport { I18n } from '../../i18n.mjs';\n\n/**\n * File upload component\n *\n * @preserve\n * @augments ConfigurableComponent<FileUploadConfig>\n */\nclass FileUpload extends ConfigurableComponent {\n  /**\n   * @param {Element | null} $root - File input element\n   * @param {FileUploadConfig} [config] - File Upload config\n   */\n  constructor($root, config = {}) {\n    super($root, config);\n    this.$input = void 0;\n    this.$button = void 0;\n    this.$status = void 0;\n    this.i18n = void 0;\n    this.id = void 0;\n    this.$announcements = void 0;\n    this.enteredAnotherElement = void 0;\n    const $input = this.$root.querySelector('input');\n    if ($input === null) {\n      throw new ElementError({\n        component: FileUpload,\n        identifier: 'File inputs (`<input type=\"file\">`)'\n      });\n    }\n    if ($input.type !== 'file') {\n      throw new ElementError(formatErrorMessage(FileUpload, 'File input (`<input type=\"file\">`) attribute (`type`) is not `file`'));\n    }\n    this.$input = $input;\n    if (!this.$input.id) {\n      throw new ElementError({\n        component: FileUpload,\n        identifier: 'File input (`<input type=\"file\">`) attribute (`id`)'\n      });\n    }\n    this.id = this.$input.id;\n    this.i18n = new I18n(this.config.i18n, {\n      locale: closestAttributeValue(this.$root, 'lang')\n    });\n    const $label = this.findLabel();\n    if (!$label.id) {\n      $label.id = `${this.id}-label`;\n    }\n    this.$input.id = `${this.id}-input`;\n    this.$input.setAttribute('hidden', 'true');\n    const $button = document.createElement('button');\n    $button.classList.add('govuk-file-upload-button');\n    $button.type = 'button';\n    $button.id = this.id;\n    $button.classList.add('govuk-file-upload-button--empty');\n    const ariaDescribedBy = this.$input.getAttribute('aria-describedby');\n    if (ariaDescribedBy) {\n      $button.setAttribute('aria-describedby', ariaDescribedBy);\n    }\n    const $status = document.createElement('span');\n    $status.className = 'govuk-body govuk-file-upload-button__status';\n    $status.setAttribute('aria-live', 'polite');\n    $status.innerText = this.i18n.t('noFileChosen');\n    $button.appendChild($status);\n    const commaSpan = document.createElement('span');\n    commaSpan.className = 'govuk-visually-hidden';\n    commaSpan.innerText = ', ';\n    commaSpan.id = `${this.id}-comma`;\n    $button.appendChild(commaSpan);\n    const containerSpan = document.createElement('span');\n    containerSpan.className = 'govuk-file-upload-button__pseudo-button-container';\n    const buttonSpan = document.createElement('span');\n    buttonSpan.className = 'govuk-button govuk-button--secondary govuk-file-upload-button__pseudo-button';\n    buttonSpan.innerText = this.i18n.t('chooseFilesButton');\n    containerSpan.appendChild(buttonSpan);\n    containerSpan.insertAdjacentText('beforeend', ' ');\n    const instructionSpan = document.createElement('span');\n    instructionSpan.className = 'govuk-body govuk-file-upload-button__instruction';\n    instructionSpan.innerText = this.i18n.t('dropInstruction');\n    containerSpan.appendChild(instructionSpan);\n    $button.appendChild(containerSpan);\n    $button.setAttribute('aria-labelledby', `${$label.id} ${commaSpan.id} ${$button.id}`);\n    $button.addEventListener('click', this.onClick.bind(this));\n    $button.addEventListener('dragover', event => {\n      event.preventDefault();\n    });\n    this.$root.insertAdjacentElement('afterbegin', $button);\n    this.$input.setAttribute('tabindex', '-1');\n    this.$input.setAttribute('aria-hidden', 'true');\n    this.$button = $button;\n    this.$status = $status;\n    this.$input.addEventListener('change', this.onChange.bind(this));\n    this.updateDisabledState();\n    this.observeDisabledState();\n    this.$announcements = document.createElement('span');\n    this.$announcements.classList.add('govuk-file-upload-announcements');\n    this.$announcements.classList.add('govuk-visually-hidden');\n    this.$announcements.setAttribute('aria-live', 'assertive');\n    this.$root.insertAdjacentElement('afterend', this.$announcements);\n    this.$button.addEventListener('drop', this.onDrop.bind(this));\n    document.addEventListener('dragenter', this.updateDropzoneVisibility.bind(this));\n    document.addEventListener('dragenter', () => {\n      this.enteredAnotherElement = true;\n    });\n    document.addEventListener('dragleave', () => {\n      if (!this.enteredAnotherElement && !this.$button.disabled) {\n        this.hideDraggingState();\n        this.$announcements.innerText = this.i18n.t('leftDropZone');\n      }\n      this.enteredAnotherElement = false;\n    });\n  }\n  updateDropzoneVisibility(event) {\n    if (this.$button.disabled) return;\n    if (event.target instanceof Node) {\n      if (this.$root.contains(event.target)) {\n        if (event.dataTransfer && this.canDrop(event.dataTransfer)) {\n          if (!this.$button.classList.contains('govuk-file-upload-button--dragging')) {\n            this.showDraggingState();\n            this.$announcements.innerText = this.i18n.t('enteredDropZone');\n          }\n        }\n      } else {\n        if (this.$button.classList.contains('govuk-file-upload-button--dragging')) {\n          this.hideDraggingState();\n          this.$announcements.innerText = this.i18n.t('leftDropZone');\n        }\n      }\n    }\n  }\n  showDraggingState() {\n    this.$button.classList.add('govuk-file-upload-button--dragging');\n  }\n  hideDraggingState() {\n    this.$button.classList.remove('govuk-file-upload-button--dragging');\n  }\n  onDrop(event) {\n    event.preventDefault();\n    if (event.dataTransfer && this.canFillInput(event.dataTransfer)) {\n      this.$input.files = event.dataTransfer.files;\n      this.$input.dispatchEvent(new CustomEvent('change'));\n      this.hideDraggingState();\n    }\n  }\n  canFillInput(dataTransfer) {\n    return this.matchesInputCapacity(dataTransfer.files.length);\n  }\n  canDrop(dataTransfer) {\n    if (dataTransfer.items.length) {\n      return this.matchesInputCapacity(countFileItems(dataTransfer.items));\n    }\n    if (dataTransfer.types.length) {\n      return dataTransfer.types.includes('Files');\n    }\n    return true;\n  }\n  matchesInputCapacity(numberOfFiles) {\n    if (this.$input.multiple) {\n      return numberOfFiles > 0;\n    }\n    return numberOfFiles === 1;\n  }\n  onChange() {\n    const fileCount = this.$input.files.length;\n    if (fileCount === 0) {\n      this.$status.innerText = this.i18n.t('noFileChosen');\n      this.$button.classList.add('govuk-file-upload-button--empty');\n    } else {\n      if (fileCount === 1) {\n        this.$status.innerText = this.$input.files[0].name;\n      } else {\n        this.$status.innerText = this.i18n.t('multipleFilesChosen', {\n          count: fileCount\n        });\n      }\n      this.$button.classList.remove('govuk-file-upload-button--empty');\n    }\n  }\n  findLabel() {\n    const $label = document.querySelector(`label[for=\"${this.$input.id}\"]`);\n    if (!$label) {\n      throw new ElementError({\n        component: FileUpload,\n        identifier: `Field label (\\`<label for=${this.$input.id}>\\`)`\n      });\n    }\n    return $label;\n  }\n  onClick() {\n    this.$input.click();\n  }\n  observeDisabledState() {\n    const observer = new MutationObserver(mutationList => {\n      for (const mutation of mutationList) {\n        if (mutation.type === 'attributes' && mutation.attributeName === 'disabled') {\n          this.updateDisabledState();\n        }\n      }\n    });\n    observer.observe(this.$input, {\n      attributes: true\n    });\n  }\n  updateDisabledState() {\n    this.$button.disabled = this.$input.disabled;\n    this.$root.classList.toggle('govuk-drop-zone--disabled', this.$button.disabled);\n  }\n}\n\n/**\n * Counts the number of `DataTransferItem` whose kind is `file`\n *\n * @param {DataTransferItemList} list - The list\n * @returns {number} - The number of items whose kind is `file` in the list\n */\nFileUpload.moduleName = 'govuk-file-upload';\nFileUpload.defaults = Object.freeze({\n  i18n: {\n    chooseFilesButton: 'Choose file',\n    dropInstruction: 'or drop file',\n    noFileChosen: 'No file chosen',\n    multipleFilesChosen: {\n      one: '%{count} file chosen',\n      other: '%{count} files chosen'\n    },\n    enteredDropZone: 'Entered drop zone',\n    leftDropZone: 'Left drop zone'\n  }\n});\nFileUpload.schema = Object.freeze({\n  properties: {\n    i18n: {\n      type: 'object'\n    }\n  }\n});\nfunction countFileItems(list) {\n  let result = 0;\n  for (let i = 0; i < list.length; i++) {\n    if (list[i].kind === 'file') {\n      result++;\n    }\n  }\n  return result;\n}\n\n/**\n * @typedef {HTMLInputElement & {files: FileList}} HTMLFileInputElement\n */\n\n/**\n * File upload config\n *\n * @see {@link FileUpload.defaults}\n * @typedef {object} FileUploadConfig\n * @property {FileUploadTranslations} [i18n=FileUpload.defaults.i18n] - File upload translations\n */\n\n/**\n * File upload translations\n *\n * @see {@link FileUpload.defaults.i18n}\n * @typedef {object} FileUploadTranslations\n *\n * Messages used by the component\n * @property {string} [chooseFile] - The text of the button that opens the file picker\n * @property {string} [dropInstruction] - The text informing users they can drop files\n * @property {TranslationPluralForms} [multipleFilesChosen] - The text displayed when multiple files\n *   have been chosen by the user\n * @property {string} [noFileChosen] - The text to displayed when no file has been chosen by the user\n * @property {string} [enteredDropZone] - The text announced by assistive technology\n *   when user drags files and enters the drop zone\n * @property {string} [leftDropZone] - The text announced by assistive technology\n *   when user drags files and leaves the drop zone without dropping\n */\n\n/**\n * @import { Schema } from '../../common/configuration.mjs'\n * @import { TranslationPluralForms } from '../../i18n.mjs'\n */\n\nexport { FileUpload };\n//# sourceMappingURL=file-upload.mjs.map\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\nimport { FileUpload } from 'govuk-frontend/dist/govuk/all.mjs'\n\n\nclass ComplianceCommunicationAttachmentListRowFileInput {\n  $dropZone: JQuery<HTMLElement>\n  $input: JQuery<HTMLInputElement>\n  $label: JQuery<HTMLLabelElement>\n  $hint: JQuery<HTMLElement>\n  $button: JQuery<HTMLButtonElement>\n  $comma: JQuery<HTMLElement>\n  $announcements: JQuery<HTMLElement>\n\n  constructor ($row: JQuery<HTMLElement>, column: number) {\n    const $column = $row.find(`.govuk-grid-column-one-half:nth-of-type(${column})`)\n\n    this.$dropZone = $column.find('.govuk-drop-zone')\n    this.$input = $column.find('input')\n    this.$label = $column.find<HTMLLabelElement>('.govuk-label')\n    this.$hint = $column.find('div.govuk-hint')\n    this.$button = $column.find('button')\n    this.$comma = $column.find('button > span.govuk-visually-hidden')\n    this.$announcements = $column.find('span.govuk-file-upload-announcements')\n  }\n\n  updateIndex (newIndex: number) {\n    const newName = (this.$input.attr('name') as string).replace(/\\d+/, newIndex.toString())\n    const newId = `input-${newName}`\n\n    if (this.$button.length) {\n      this.$label.attr('for', newId)\n      this.$label.attr('id', `${newId}-label`)\n  \n      this.$hint.attr('id', `${newId}-hint`)\n  \n      this.$input.attr('id', `${newId}-input`)\n      this.$input.attr('name', newName)\n      this.$input.attr('aria-describedby', `${newId}-hint`)\n  \n      this.$button.attr('id', newId)\n      this.$button.attr('aria-describedby', `${newId}-hint`)\n      this.$button.attr('aria-labelledby', `${newId}-label ${newId}-comma ${newId}`)\n  \n      this.$comma.attr('id', `${newId}-comma`)\n    } else {\n      this.$label.attr('for', newId)\n      this.$hint.attr('id', `${newId}-hint`)\n  \n      this.$input.attr('id', newId)\n      this.$input.attr('name', newName)\n      this.$input.attr('aria-describedby', `${newId}-hint`)\n    }\n  }\n\n  makeInteractable () {\n    if (!this.$button.length) {\n      return new FileUpload(this.$dropZone.get(0) as HTMLElement)\n    }\n  }\n\n  resetHtml () {\n    this.$label.removeAttr('id')\n    \n    this.$dropZone.removeAttr('data-govuk-file-upload-init')\n    \n    this.$button.remove()\n    \n    const id = this.$input.attr('id') as string\n\n    this.$input.removeAttr('hidden')\n    this.$input.removeAttr('aria-hidden')\n    this.$input.attr('id', id.substring(0, id.length - 6))\n\n    this.$announcements.remove()\n  }\n}\n\nclass ComplianceCommunicationAttachmentListRequiredInput {\n  $requiredSection: JQuery<HTMLElement>\n  $input: JQuery<HTMLInputElement>\n  $label: JQuery<HTMLLabelElement>\n\n  constructor ($row: JQuery<HTMLElement>) {\n    this.$requiredSection = $row.find('.dm-compliance-communication__attachments-item-required')\n    this.$input = this.$requiredSection.find<HTMLInputElement>('.govuk-checkboxes__item > input')\n    this.$label = this.$requiredSection.find<HTMLLabelElement>('.govuk-checkboxes__item > .govuk-label')\n  }\n\n  isChecked () {\n    return this.$input.is(':checked')\n  }\n\n  updateIndex (newIndex: number) {\n    const newName = (this.$input.attr('name') as string).replace(/\\d+/, newIndex.toString())\n    const newId = `input-${newName}`\n\n    this.$label.attr('for', newId)\n\n    this.$input.attr('id', newId)\n    this.$input.attr('name', newName)\n  }\n\n  checkRow () {\n    this.$requiredSection.toggleClass('govuk-visually-hidden', true)\n    this.$input.prop('checked', true)\n    this.$input.attr('tabindex', -1)\n    this.$input.attr('tabindex', -1)\n  }\n}\n\nclass ComplianceCommunicationAttachmentListRowRemoveButton {\n  attachmentListRow: ComplianceCommunicationAttachmentListRow\n  $button: JQuery<HTMLElement>\n  $removeButtonCounter: JQuery<HTMLElement>\n\n  constructor (attachmentListRow: ComplianceCommunicationAttachmentListRow, $row: JQuery<HTMLElement>) {\n    this.attachmentListRow = attachmentListRow\n    this.$button = $row.find('.dm-compliance-communication__attachments-item-remove')\n    this.$removeButtonCounter = this.$button.find('.dm-compliance-communication__attachments-item-remove-counter')\n  }\n\n  init () {\n    this.toggleVisibility(true)\n\n    this.$button.on('click', () => {\n      this.attachmentListRow.removeRow()\n    })\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n\n    if (isShown) {\n      this.$button.removeAttr('tabindex')\n    } else {\n      this.$button.attr('tabindex', -1)\n    }\n  }\n\n  updateIndex (newIndex: number) {\n    this.$removeButtonCounter.text(newIndex + 1)\n  }\n}\n\nclass ComplianceCommunicationAttachmentListRow {\n  $row: JQuery<HTMLElement>\n  attachmentList: ComplianceCommunicationAttachments\n  index: number\n  $legendCounter: JQuery<HTMLElement>\n  attachmentListRowFileInput: ComplianceCommunicationAttachmentListRowFileInput\n  attachmentListRowRequiredInput: ComplianceCommunicationAttachmentListRequiredInput\n  attachmentListRowRemoveButton: ComplianceCommunicationAttachmentListRowRemoveButton\n\n  constructor (attachmentList: ComplianceCommunicationAttachments, index: number, $row: JQuery<HTMLElement>) {\n    this.$row = $row\n    this.attachmentList = attachmentList\n    this.index = index\n    this.$legendCounter = this.$row.find('.dm-compliance-communication__attachments-item-legend-counter')\n    this.attachmentListRowFileInput = new ComplianceCommunicationAttachmentListRowFileInput($row, 1)\n    this.attachmentListRowRequiredInput = new ComplianceCommunicationAttachmentListRequiredInput($row)\n    this.attachmentListRowRemoveButton = new ComplianceCommunicationAttachmentListRowRemoveButton(this, $row)\n  }\n\n  init () {\n    this.attachmentListRowRemoveButton.init()\n    this.attachmentListRowFileInput.makeInteractable()\n    this.attachmentListRowRequiredInput.checkRow()\n  }\n\n  updateIndex (newIndex: number) {\n    this.index = newIndex\n    this.attachmentListRowFileInput.updateIndex(newIndex)\n    this.attachmentListRowRequiredInput.updateIndex(newIndex)\n    this.attachmentListRowRemoveButton.updateIndex(newIndex)\n    this.$legendCounter.text(newIndex + 1)\n  }\n\n  removeRow () {\n    this.attachmentList.removeRow(this.index)\n    this.deleteRow()\n  }\n\n  deleteRow () {\n    this.$row.remove()\n  }\n\n  toggleRemoveButtonVisibility (isShown: boolean) {\n    this.attachmentListRowRemoveButton.toggleVisibility(isShown)\n  }\n\n  isRowChecked () {\n    return this.attachmentListRowRequiredInput.isChecked()\n  }\n}\n\nclass ComplianceCommunicationAttachmentListAddButton {\n  attachmentList: ComplianceCommunicationAttachments\n  $button: JQuery<HTMLButtonElement>\n  $buttonCounter: JQuery<HTMLElement>\n\n  constructor (attachmentList: ComplianceCommunicationAttachments, $button: JQuery<HTMLButtonElement>) {\n    this.attachmentList = attachmentList\n    this.$button = $button\n    this.$buttonCounter = $button.find('.dm-compliance-communication__attachments__js-remaining-counter')\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.attachmentList.addRow()\n    })\n\n    this.updateButtonText(this.attachmentList.maxNumberOfAttachments - numberOfRows)\n  }\n\n  updateButtonText (numberRemaining: number) {\n    this.$buttonCounter.text(numberRemaining)\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n\n    if (isShown) {\n      this.$button.removeAttr('tabindex')\n    } else {\n      this.$button.attr('tabindex', -1)\n    }\n  }\n}\n\nclass ComplianceCommunicationAttachments implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-compliance-communication-attachments'\n  $attachmentList: JQuery<HTMLElement>\n  $attachmentListItems: JQuery<HTMLElement>\n  attachmentListRows: ComplianceCommunicationAttachmentListRow[]\n  attachmentListTemplateRow: ComplianceCommunicationAttachmentListRow\n  attachmentListAddButton: ComplianceCommunicationAttachmentListAddButton\n  maxNumberOfAttachments: number\n\n  constructor ($attachmentList: JQuery<HTMLElement>) {\n    this.$attachmentList = $attachmentList\n    this.$attachmentListItems = this.$attachmentList.find('.dm-compliance-communication__attachments-items')\n    this.attachmentListRows = this.$attachmentListItems.find('.dm-compliance-communication__attachments-item').get().map((row, index) => new ComplianceCommunicationAttachmentListRow(this, index, $(row)))\n    this.attachmentListTemplateRow = new ComplianceCommunicationAttachmentListRow(this, 99, this.$attachmentList.find('.dm-compliance-communication__attachments-item-template > .dm-compliance-communication__attachments-item'))\n    this.attachmentListAddButton = new ComplianceCommunicationAttachmentListAddButton(this, this.$attachmentList.find<HTMLButtonElement>('.dm-compliance-communication__attachments-add'))\n    this.maxNumberOfAttachments = this.$attachmentList.data('maxNumberOfAttachments')\n  }\n\n  init () {\n    const rowsChecked = this.attachmentListRows.map((attachmentListRow) => attachmentListRow.isRowChecked())\n    let indexToDeleteFrom\n\n    if (rowsChecked.every((rowChecked) => !rowChecked)) {\n      indexToDeleteFrom = 0\n    } else {\n      indexToDeleteFrom = rowsChecked.indexOf(false)\n    }\n\n    if (indexToDeleteFrom >= 0) {\n      this.attachmentListRows.slice(indexToDeleteFrom).forEach((attachmentListRow) => attachmentListRow.deleteRow())\n      this.attachmentListRows.splice(indexToDeleteFrom)\n    }\n\n    this.attachmentListAddButton.init(this.attachmentListRows.length)\n    this.attachmentListRows.forEach((attachmentListRow) => attachmentListRow.init())\n\n    this.attachmentListTemplateRow.attachmentListRowFileInput.resetHtml()\n\n    this.updateIfMinRows()\n    this.updateAttachmentButton()\n  }\n\n  removeRow (indexToRemove: number) {\n    this.attachmentListRows.splice(indexToRemove, 1)\n\n    this.attachmentListRows.slice(indexToRemove).forEach((attachmentListRow, index) => {\n      attachmentListRow.updateIndex(indexToRemove + index)\n    })\n\n    this.updateIfMinRows()\n    this.updateAttachmentButton()\n\n    if (indexToRemove > 0) {\n      this.focusOnRow(indexToRemove)\n    } else {\n      this.attachmentListAddButton.$button.focus()\n    }\n  }\n\n  addRow () {\n    const numberOfRows = this.attachmentListRows.length\n\n    if (numberOfRows < this.maxNumberOfAttachments) {\n      const $newRow = this.attachmentListTemplateRow.$row.clone()\n      const attachmentListRow = new ComplianceCommunicationAttachmentListRow(this, numberOfRows, $newRow)\n\n      attachmentListRow.updateIndex(numberOfRows)\n\n      this.attachmentListRows.push(attachmentListRow)\n      this.$attachmentListItems.append($newRow)\n      this.attachmentListRows[numberOfRows].init()\n\n      this.updateIfMinRows()\n      this.updateAttachmentButton()\n      this.focusOnRow(numberOfRows)\n    }\n  }\n\n  updateIfMinRows () {\n    if (this.attachmentListRows.length !== 0) {\n      this.attachmentListRows[0].toggleRemoveButtonVisibility(true)\n    }\n  }\n\n  updateAttachmentButton () {\n    if (this.attachmentListRows.length === this.maxNumberOfAttachments) {\n      this.attachmentListAddButton.toggleVisibility(false)\n    } else {\n      this.attachmentListAddButton.toggleVisibility(true)\n      this.attachmentListAddButton.updateButtonText(this.maxNumberOfAttachments - this.attachmentListRows.length)\n    }\n  }\n\n  focusOnRow (targetIndexToFocus: number) {\n    const numberOfRows = this.attachmentListRows.length\n    let indexToFocus = targetIndexToFocus\n\n    if (targetIndexToFocus >= numberOfRows) {\n      indexToFocus = numberOfRows - 1\n    }\n\n    this.attachmentListRows[indexToFocus].attachmentListRowFileInput.$button.focus()\n  }\n}\n\nexport { ComplianceCommunicationAttachments }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\nimport { getCookiePreferences, setCookiePreferences } from '../../scripts/cookies/manage'\n\nclass CookieBanner implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-cookie-banner'\n\n  $module: JQuery<HTMLElement>\n  $cookieBannerMainContent: JQuery<HTMLElement>\n  $cookieBannerConfirmationContent: JQuery<HTMLElement>\n  $cookieBannerConfirmationMessage: JQuery<HTMLElement>\n  $hideLink: JQuery<HTMLElement>\n  $acceptCookiesLink: JQuery<HTMLElement>\n  $rejectCookiesLink: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$module = $module\n    this.$cookieBannerMainContent = this.$module.find('.dm-cookie-banner__button--main')\n    this.$cookieBannerConfirmationContent = this.$module.find('.dm-cookie-banner--selection-made')\n    this.$cookieBannerConfirmationMessage = this.$module.find('.dm-cookie-banner__confirmation-message')\n    this.$hideLink = this.$module.find('button[data-hide-cookie-banner]')\n    this.$acceptCookiesLink = this.$module.find('button[data-accept-cookies=true]')\n    this.$rejectCookiesLink = this.$module.find('button[data-accept-cookies=false]')\n  }\n\n  init () {\n    this.$hideLink.on('click', (event) => {\n      this.hideCookieMessage(event)\n    })\n\n    this.$acceptCookiesLink.on('click', () => {\n      this.setCookieConsent(true)\n    })\n\n    this.$rejectCookiesLink.on('click', () => {\n      this.setCookieConsent(false)\n    })\n\n    this.showCookieMessage()\n  }\n\n  setCookieConsent (analyticsConsent: boolean) {\n    setCookiePreferences(analyticsConsent)\n\n    this.showConfirmationMessage(analyticsConsent)\n    this.$cookieBannerConfirmationContent.trigger('focus')\n  }\n\n  showCookieMessage () {\n    // Show the cookie banner if policy cookie not set\n    const cookiePreferences = getCookiePreferences()\n  \n    if (this.$module && !cookiePreferences.settings_viewed) {\n      this.$module.css('display', 'block')\n    }\n  }\n  \n  hideCookieMessage (event: JQuery.ClickEvent) {\n    this.$module.css('display', 'none')\n  \n    if (event.target) {\n      event.preventDefault()\n    }\n  }\n\n  showConfirmationMessage (analyticsConsent: boolean) {\n    const messagePrefix = analyticsConsent ? 'You’ve accepted analytics cookies.' : 'You told us not to use analytics cookies.'\n\n    this.$cookieBannerMainContent.attr('hidden', 'hidden')\n\n    this.$cookieBannerConfirmationMessage.prepend(messagePrefix)\n    this.$cookieBannerConfirmationContent.removeAttr('hidden')\n  }\n}\n\nexport { CookieBanner }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\nimport { getCookiePreferences, setCookiePreferences } from './manage'\n\nclass CookieSettings implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-cookie-settings'\n  $moudle: JQuery<HTMLElement>\n  $radioButtonAnalyticsYes: JQuery<HTMLInputElement>\n  $radioButtonAnalyticsNo: JQuery<HTMLInputElement>\n  $confirmationMessage: JQuery<HTMLElement>\n  $previousPageLink: JQuery<HTMLElement>\n  $errorSummary: JQuery<HTMLElement>\n  $formGroup: JQuery<HTMLElement>\n  $warningMessage: JQuery<HTMLElement>\n  $cookieBanner: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$moudle = $module\n    this.$radioButtonAnalyticsYes = this.$moudle.find<HTMLInputElement>('input[name=cookies-analytics][value=On]')\n    this.$radioButtonAnalyticsNo = this.$moudle.find<HTMLInputElement>('input[name=cookies-analytics][value=Off]')\n    this.$confirmationMessage = $('#dm-cookie-settings-confirmation')\n    this.$previousPageLink = $('.dm-cookie-settings__prev-page')\n    this.$errorSummary = $('#dm-cookie-settings-error')\n    this.$formGroup = this.$moudle.find('.govuk-form-group')\n    this.$warningMessage = $('#dm-cookie-settings-warning')\n    this.$cookieBanner = $('.dm-cookie-banner')\n  }\n\n  init () {\n    this.$moudle.on('submit', (event) => {\n      this.submitSettingsForm(event)\n    })\n\n    // Ensure there aren't two forms for setting cookie preferences on the same page\n    this.hideCookieBanner()\n\n    this.setInitialFormValues()\n  }\n\n  setInitialFormValues () {\n    const currentCookiePreferences = getCookiePreferences()\n\n    if (!currentCookiePreferences.settings_viewed) return\n\n    this.hideWarningMessage()\n\n    // Populate the form with the existing choice\n    let $radioButton: JQuery<HTMLInputElement>\n\n    if (currentCookiePreferences.usage) {\n      $radioButton = this.$radioButtonAnalyticsYes\n    } else {\n      $radioButton = this.$radioButtonAnalyticsNo\n    }\n\n    $radioButton.prop('checked', true)\n  }\n\n  submitSettingsForm (event: JQuery.SubmitEvent) {\n    event.preventDefault()\n\n    let usage\n\n    for (const formDataItem of this.$moudle.serializeArray()) {\n      if (formDataItem.name === 'cookies-analytics') {\n        usage = formDataItem.value === 'On'\n\n        break\n      }\n    }\n\n    // the cookie choice must be set when form is submitted\n    if (usage === undefined) {\n      this.showError()\n      return\n    }\n\n    // Set the analytics cookie preferences\n    // If 'Off' option not checked, this function will also delete any existing Google Analytics cookies\n    setCookiePreferences(usage)\n\n    this.hideWarningMessage()\n    this.hideError()\n    this.showConfirmationMessage()\n  }\n\n  showConfirmationMessage () {\n    const referrer = CookieSettings.getReferrerLink()\n\n    document.body.scrollTop = document.documentElement.scrollTop = 0\n\n    if (referrer && referrer !== document.location.pathname) {\n      this.$previousPageLink.attr('href', referrer)\n      this.$previousPageLink.css('display', 'block')\n    } else {\n      this.$previousPageLink.css('display', 'none')\n    }\n\n    this.$confirmationMessage.css('display', 'block')\n  }\n\n  showError () {\n    if (this.$errorSummary.length) {\n      this.$errorSummary.css('display', 'block')\n      document.body.scrollTop = document.documentElement.scrollTop = 0\n    }\n    this.showErrorMessage()\n  }\n\n  showErrorMessage () {\n    this.$formGroup.addClass('govuk-form-group--error')\n\n    const $errorMessageSpan = $(document.createElement('p'))\n    $errorMessageSpan.attr('id', 'dm-cookie-settings-error-message')\n    $errorMessageSpan.addClass('govuk-error-message')\n    $errorMessageSpan.html('<span class=\"govuk-visually-hidden\">Error:</span> Select yes to accept analytics cookies')\n\n    $errorMessageSpan.insertBefore('#cookie-settings-1, .govuk-radios--inline')\n  }\n\n  hideError () {\n    this.$errorSummary.css('display', 'none')\n    this.hideErrorMessage()\n  }\n\n  hideErrorMessage () {\n    const $errorMessage = this.$moudle.find('#dm-cookie-settings-error-message')\n    \n    $errorMessage.css('display', 'none')\n    this.$formGroup.removeClass('govuk-form-group--error')\n  }\n\n  hideWarningMessage () {\n    this.$warningMessage.css('display', 'none')\n  }\n\n  hideCookieBanner () {\n    this.$cookieBanner.css('display', 'none')\n  }\n\n  static getReferrerLink () {\n    return document.referrer ? new URL(document.referrer).pathname : false\n  }\n}\n\nexport { CookieSettings }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass ListInput implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-list-input'\n\n  static itemContainerClass = 'dm-list-input__item-container'\n  static hiddenItemClass = 'dm-list-input__item--hidden'\n  static visibleItemClass = 'dm-list-input__item--visible'\n  static itemInputClass = 'dm-list-input__item-input'\n  static itemErrorClass = 'dm-list-input__item--error'\n  static itemErrorMsgClass = 'dm-list-input-error-message'\n  static itemCounterClass = 'dm-list-input__counter'\n  static inputErrorClass = 'govuk-input--error'\n  static removeButtonClass = 'dm-list-input__item-remove'\n  static hiddenRemoveButtonClass = 'dm-list-input__item-remove--hidden'\n  static formGroupErrorClass = 'govuk-form-group--error'\n  static hiddenAddButtonClass = 'dm-list-input__item-add--hidden'\n  static addButtonRemainingClass = 'dm-list-input__js-remaining-counter'\n\n  $module: JQuery<HTMLElement>\n  $allVisibleItems: JQuery<HTMLElement>\n  $addAnotherButton: JQuery<HTMLButtonElement>\n  $allItems: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$module = $module\n    this.$allVisibleItems = this.findVisibleItems()\n    this.$addAnotherButton = this.$module.find<HTMLButtonElement>('.dm-list-input__item-add')\n    this.$allItems = this.$module.find('.dm-list-input__item')\n  }\n\n  init () {\n    this.hideEmptyItems()\n    this.updateAllCounters()\n    this.addRemoveClickEvent()\n    this.toggleAddAnotherButton()\n    this.addAddClickEvent()\n  }\n\n  findVisibleItems () {\n    return this.$module.find('.dm-list-input__item--visible')\n  }\n\n  // Hide all items that do not have a value (except for the first one, or the first two if no items have a value)\n  hideEmptyItems () {\n    let numberOfVisibleEmptyItems = 0\n    let numberOfFilledInItems = 0\n\n    this.$allItems.each((_index, item) => {\n      const $item = $(item)\n      const $input = $item.find('.' + ListInput.itemInputClass)\n      const $removeButton = $item.find('.' + ListInput.removeButtonClass)\n\n      if (!$input.attr('value')) {\n        if (numberOfVisibleEmptyItems === 0) {\n          $removeButton.removeClass(ListInput.hiddenRemoveButtonClass)\n        } else if (numberOfVisibleEmptyItems === 1 && numberOfFilledInItems === 0) {\n          $removeButton.removeClass(ListInput.hiddenRemoveButtonClass)\n        } else {\n          $item.addClass(ListInput.hiddenItemClass)\n          $item.removeClass(ListInput.visibleItemClass)\n          $removeButton.addClass(ListInput.hiddenRemoveButtonClass)\n          $input.attr('disabled', 'true')\n        }\n        numberOfVisibleEmptyItems += 1\n      } else {\n        $item.removeClass(ListInput.hiddenItemClass)\n        $item.addClass(ListInput.visibleItemClass)\n        $removeButton.removeClass(ListInput.hiddenRemoveButtonClass)\n        numberOfFilledInItems += 1\n      }\n    })\n    this.$allVisibleItems = this.findVisibleItems()\n  }\n\n  // Adds an event listener to module to listen for any\n  // click events fired by the items \"Remove\" button\n  addRemoveClickEvent () {\n    this.$allItems.each((_index, item) => {\n      const $item = $(item)\n      const $input = $item.find('.' + ListInput.itemInputClass)\n      const $removeButton = $item.find('.' + ListInput.removeButtonClass)\n\n      $removeButton.on('click', () =>{\n        $input.val('')\n        $input.removeAttr('value')\n        $input.attr('disabled', 'true')\n        $removeButton.addClass(ListInput.hiddenRemoveButtonClass)\n        $item.addClass(ListInput.hiddenItemClass)\n        $item.removeClass(ListInput.visibleItemClass)\n        this.$allVisibleItems = this.findVisibleItems()\n\n        if ($item.hasClass(ListInput.itemErrorClass)) {\n          $item.removeClass(ListInput.itemErrorClass)\n          const $errorFormGroup = $item.find('.' + ListInput.formGroupErrorClass)\n          $errorFormGroup.removeClass(ListInput.formGroupErrorClass)\n          $errorFormGroup.remove('.' + ListInput.itemErrorMsgClass)\n          const $errorInput = $errorFormGroup.find('.' + ListInput.inputErrorClass)\n          const inputId = $errorInput.attr('id') as string\n          const inputDescribedBy = $errorInput.attr('aria-describedby') as string\n          $errorInput.attr('aria-describedby', inputDescribedBy.replace(inputId + '-error', ''))\n          $errorInput.removeClass(ListInput.inputErrorClass)\n        }\n\n        // Hide Remove buttons if there is only one item left\n        if (this.$allVisibleItems.length === 1) {\n          const $removeButtons = this.$module.find('.' + ListInput.removeButtonClass)\n          $removeButtons.each((_index, button) => {\n            $(button).addClass(ListInput.hiddenRemoveButtonClass)\n          })\n          $(this.$allVisibleItems.get(0) as HTMLElement).find('input').trigger('focus')\n        } else {\n          // Set focus to the next input\n          const $nextVisibleItem = ListInput.getSibling('next', $item, '.' + ListInput.visibleItemClass)\n\n          if ($nextVisibleItem) {\n            $nextVisibleItem.find('input').trigger('focus')\n          } else {\n            const $previousVisibleItem = ListInput.getSibling('previous', $item, '.' + ListInput.visibleItemClass) as JQuery<HTMLElement>\n            $previousVisibleItem.find('input').trigger('focus')\n          }\n        }\n\n        this.updateAllCounters()\n        this.toggleAddAnotherButton()\n      })\n    })\n  }\n\n  // Used to update each item's label and remove button hidden text\n  updateCounters () {\n    this.$allVisibleItems.each((index, item) => {\n      $(item).find('.' + ListInput.itemCounterClass).each((_index, counter) => {\n        $(counter).text(index + 1)\n      })\n    })\n  }\n\n  // Used to update \"Add another\" buttons \"Remaining\" counter\n  // and sets focus to the new additional input\n  updateRemainingCounter () {\n    const $visibleItems = this.$allVisibleItems\n    const totalItems = this.$allItems.length\n\n    this.$module.find('.' + ListInput.addButtonRemainingClass).text(totalItems - $visibleItems.length)\n  }\n\n  addAddClickEvent () {\n    this.$addAnotherButton.on('click', () => {\n      const $firstHiddenItem = this.$module.find('.' + ListInput.hiddenItemClass).first()\n      const $firstHiddenInput = $firstHiddenItem.find('.' + ListInput.itemInputClass)\n\n      if ($firstHiddenItem.length) {\n        $firstHiddenInput.removeAttr('disabled')\n        this.$module.find('.' + ListInput.itemContainerClass).append($firstHiddenItem)\n        $firstHiddenItem.removeClass(ListInput.hiddenItemClass)\n        $firstHiddenItem.addClass(ListInput.visibleItemClass)\n        this.$allVisibleItems = this.findVisibleItems()\n        this.updateAllCounters()\n        $firstHiddenItem.find('.' + ListInput.removeButtonClass).removeClass(ListInput.hiddenRemoveButtonClass)\n        $firstHiddenInput.trigger('focus')\n        this.toggleAddAnotherButton()\n\n        // Show Remove buttons if there is more one item\n        if (this.$allVisibleItems.length > 1) {\n          this.$module.find('.' + ListInput.removeButtonClass).each((_index, button) => {\n            $(button).removeClass(ListInput.hiddenRemoveButtonClass)\n          })\n        }\n      }\n    })\n  }\n\n  toggleAddAnotherButton () {\n    const $firstHiddenItem = this.$module.find('.' + ListInput.hiddenItemClass)\n\n    if ($firstHiddenItem.length) {\n      this.$addAnotherButton.removeClass(ListInput.hiddenAddButtonClass)\n    } else {\n      this.$addAnotherButton.addClass(ListInput.hiddenAddButtonClass)\n    }\n  }\n\n  updateAllCounters () {\n    this.updateCounters()\n    this.updateRemainingCounter()\n  }\n\n  static getSibling (direction: string, elem: JQuery<HTMLElement>, selector: string) {\n    // Get the next sibling element\n    let sibling = (direction === 'next') ? elem.next() : elem.prev()\n\n    // If there's no selector, return the first sibling\n    if (!selector) return sibling\n\n    // If the sibling matches our selector, use it\n    // If not, jump to the next sibling and continue the loop\n\n    while (sibling.length) {\n      if (sibling.is(selector)) return sibling\n      sibling = (direction === 'next') ? sibling.next() : sibling.prev()\n    }\n  }\n}\n\nexport { ListInput }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass OptionSelect implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-option-select'\n\n  $optionSelect: JQuery<HTMLElement>\n  $options: JQuery<HTMLInputElement>\n  $optionsContainer: JQuery<HTMLElement>\n  $optionList: JQuery<HTMLElement>\n  $allCheckboxes: JQuery<HTMLElement>\n  checkedCheckboxes: HTMLElement[]\n  filterOptions: FilterOptions | undefined\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$optionSelect = $module\n    this.$options = this.$optionSelect.find<HTMLInputElement>('input[type=\"checkbox\"]')\n    this.$optionsContainer = this.$optionSelect.find('.js-options-container')\n    this.$optionList = this.$optionsContainer.find('.js-auto-height-inner')\n    this.$allCheckboxes = this.$optionsContainer.find('.govuk-checkboxes__item')\n    this.checkedCheckboxes = []\n  }\n\n  init () {\n    // Attach listener to update checked count\n    this.$optionSelect.on('change', (event) => {\n      const changedEl = event.target\n\n      if (changedEl.tagName === 'INPUT' && changedEl.getAttribute('type') === 'checkbox') {\n        this.updateCheckedCount()\n      }\n    })\n\n    // Replace div.container-head with a button\n    this.replaceHeadingSpanWithButton()\n\n    // Add js-collapsible class to parent for CSS\n    this.$optionSelect.addClass('js-collapsible')\n\n    // Add open/close listeners\n    this.$optionSelect.find('.js-container-button').on('click', (event) => {\n      this.toggleOptionSelect(event)\n    })\n\n    if (this.$optionSelect.data().closedOnLoad) {\n      this.close()\n    } else {\n      this.setupHeight()\n    }\n\n    const checkedString = this.checkedString()\n    if (checkedString) {\n      this.attachCheckedCounter(checkedString)\n    }\n\n    const $filter = this.$optionSelect.find('.js-dm-filter-options')\n    if ($filter.length) {\n      this.filterOptions = new FilterOptions($filter, this)\n      this.filterOptions.init()\n    }\n  }\n\n  getAllCheckedCheckboxes () {\n    this.checkedCheckboxes = []\n\n    this.$allCheckboxes.each((_index, checkbox) => {\n      if ($(checkbox).find('input[type=checkbox]').is(':checked')) {\n        this.checkedCheckboxes.push(checkbox)\n      }\n    })\n  }\n\n  replaceHeadingSpanWithButton () {\n    /* Replace the span within the heading with a button element. This is based on feedback from Léonie Watson.\n      * The button has all of the accessibility hooks that are used by screen readers and etc.\n      * We do this in the JavaScript because if the JavaScript is not active then the button shouldn't\n      * be there as there is no JS to handle the click event.\n    */\n    const $containerHead = this.$optionSelect.find('.js-container-button')\n    const jsContainerHeadHTML = $containerHead.html()\n\n    // Create button and replace the preexisting html with the button.\n    const $button = document.createElement('button')\n    $button.classList.add('js-container-button', 'dm-option-select__title', 'dm-option-select__button')\n    // Add type button to override default type submit when this component is used within a form\n    $button.setAttribute('type', 'button')\n    $button.setAttribute('aria-expanded', 'true')\n    $button.setAttribute('id', $containerHead.attr('id') as string)\n    $button.setAttribute('aria-controls', this.$optionsContainer.attr('id') as string)\n    $button.innerHTML = jsContainerHeadHTML\n    $containerHead.after($button.outerHTML)\n    $containerHead.remove()\n  }\n\n  attachCheckedCounter (checkedString: string) {\n    this.$optionSelect.find('.js-container-button').after(`<div class=\"dm-option-select__selected-counter js-selected-counter\">${checkedString}</div>`)\n  }\n\n  updateCheckedCount () {\n    const checkedString = this.checkedString()\n    const $checkedStringElement = this.$optionSelect.find('.js-selected-counter')\n\n    if (checkedString) {\n      if ($checkedStringElement.length) {\n        $checkedStringElement.text(checkedString)\n      } else {\n        this.attachCheckedCounter(checkedString)\n      }\n    } else {\n      $checkedStringElement.remove()\n    }\n  }\n\n  checkedString () {\n    this.getAllCheckedCheckboxes()\n    const count = this.checkedCheckboxes.length\n    return count > 0 ? `${count} selected` : ''\n  }\n\n  toggleOptionSelect (event: JQuery.ClickEvent) {\n    if (this.isClosed()) {\n      this.open()\n    } else {\n      this.close()\n    }\n    event.preventDefault()\n  }\n\n  open () {\n    if (this.isClosed()) {\n      this.$optionSelect.find('.js-container-button').attr('aria-expanded', 'true')\n      this.$optionSelect.removeClass('js-closed')\n      this.$optionSelect.addClass('js-opened')\n      if (!this.$optionsContainer.css('height')) {\n        this.setupHeight()\n      }\n    }\n  }\n\n  close () {\n    this.$optionSelect.removeClass('js-opened')\n    this.$optionSelect.addClass('js-closed')\n    this.$optionSelect.find('.js-container-button').attr('aria-expanded', 'false')\n  }\n\n  isClosed () {\n    return this.$optionSelect.hasClass('js-closed')\n  }\n\n  setContainerHeight (height: number) {\n    this.$optionsContainer.css('height', height + 'px')\n  }\n\n  getMaxContainerHeight () {\n    const maxHeight = parseFloat(window.getComputedStyle(this.$optionsContainer.get(0) as HTMLElement).maxHeight)\n\n    return Number.isNaN(maxHeight) ? 200 : maxHeight\n  }\n\n  isCheckboxVisible ($checkbox: JQuery<HTMLElement>, containerHeight: number) {\n    if (!$checkbox.is(':visible')) {\n      return false\n    }\n\n    const checkboxTop = ($checkbox.get(0) as HTMLElement).offsetTop\n\n    return checkboxTop < containerHeight\n  }\n\n  getVisibleCheckboxes (containerHeight: number) {\n    const allVisibleCheckboxes = this.$allCheckboxes.filter(':visible').get()\n    const visibleCheckboxes = allVisibleCheckboxes.filter((checkbox) => this.isCheckboxVisible($(checkbox), containerHeight))\n\n\n    // Add one extra visible row so the collapsed list hints there are more options.\n    if (visibleCheckboxes.length < allVisibleCheckboxes.length) {\n      visibleCheckboxes.push(allVisibleCheckboxes[visibleCheckboxes.length] as HTMLElement)\n    }\n\n    return visibleCheckboxes\n  }\n\n  setupHeight () {\n    const optionsContainer = this.$optionsContainer.get(0) as HTMLElement\n    const optionList = this.$optionList.get(0) as HTMLElement\n\n    const maxContainerHeight = this.getMaxContainerHeight()\n    const height = optionList.scrollHeight\n\n    // check whether this is hidden by progressive disclosure,\n    // because height calculations won't work\n    if (optionsContainer.offsetParent === null) {\n      this.setContainerHeight(maxContainerHeight)\n      return\n    }\n\n    // Resize if the list is only slightly bigger than its container\n    if (height <= maxContainerHeight + 50) {\n      this.setContainerHeight(height + 1)\n      return\n    }\n\n    // Resize to cut last item cleanly in half\n    const visibleCheckboxes = this.getVisibleCheckboxes(maxContainerHeight)\n\n    if (!visibleCheckboxes.length) {\n      this.setContainerHeight(height + 1)\n      return\n    }\n\n    const lastVisibleCheckbox = visibleCheckboxes[visibleCheckboxes.length - 1] as HTMLElement\n    const position = lastVisibleCheckbox?.offsetTop\n    const checkboxHeight = lastVisibleCheckbox?.offsetHeight ?? 0\n\n    // Never shrink below one full visible row.\n    const calculatedHeight = position + (checkboxHeight / 1.5)\n    this.setContainerHeight(Math.max(calculatedHeight, checkboxHeight + 1))\n  }\n}\n\nclass FilterOptions {\n  static moduleName = 'dm-filter-options'\n\n  $filter: JQuery<HTMLElement>\n  $optionSelect: JQuery<HTMLElement>\n  $optionsContainer: JQuery<HTMLElement>\n  $input: JQuery<HTMLInputElement>\n  $checkboxes: JQuery<HTMLElement>\n  optionSelect: OptionSelect\n\n  constructor ($module: JQuery<HTMLElement>, optionSelect: OptionSelect) {\n    this.$filter = $module\n    this.$optionSelect = optionSelect.$optionSelect\n    this.$optionsContainer = optionSelect.$optionsContainer\n    this.$input = this.$filter.find('input')\n    this.$checkboxes = this.$optionSelect.find('.govuk-checkboxes__item')\n    this.optionSelect = optionSelect\n  }\n\n  init () {\n    this.$input.on('keyup input search', () => this.filterCheckboxes())\n  }\n\n  filterCheckboxes () {\n    const query = (this.$input.val() as string).toLowerCase()\n\n    this.$checkboxes.each((_index, checkbox) => {\n      const $checkbox = $(checkbox)\n      const label = $checkbox.find('label').text().toLowerCase()\n\n      if (label.includes(query)) {\n        $checkbox.show()\n      } else {\n        $checkbox.hide()\n      }\n    })\n\n    this.$optionsContainer.css('height', 'auto')\n    this.optionSelect.setupHeight()\n  }\n}\n\nexport { OptionSelect }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass OptionTreeSummary {\n  $totalSelected: JQuery<HTMLElement>\n  $totalSelectedText: JQuery<HTMLElement>\n  itemNameSingular: string\n  itemNamePlural: string\n\n  constructor ($summary: JQuery<HTMLElement>, itemNameSingular: string, itemNamePlural: string) {\n    this.$totalSelected = $summary.find('.dm-option-tree__summary-total-selected')\n    this.$totalSelectedText = $summary.find('.dm-option-tree__summary-total-selected-text')\n    this.itemNameSingular = itemNameSingular\n    this.itemNamePlural = itemNamePlural\n  }\n\n  updateSelectedCount = (numberSelected: number) => {\n    this.$totalSelected.text(numberSelected)\n\n    if (numberSelected === 1) {\n      this.$totalSelectedText.text(`${this.itemNameSingular} selected`)\n    } else {\n      this.$totalSelectedText.text(`${this.itemNamePlural} selected`)\n    }\n  }\n}\n\nclass OptionTreeSection {\n  optionTree: OptionTree\n  $section: JQuery<HTMLDetailsElement>\n  tier: number\n  optionTreeSections: OptionTreeSection[]\n  $checkbox?: JQuery<HTMLInputElement>\n  checkboxes: JQuery<HTMLInputElement>[]\n  isParent: boolean\n\n  constructor (optionTree: OptionTree, $section: JQuery<HTMLDetailsElement>, tier: number) {\n    this.optionTree = optionTree\n    this.$section = $section\n    this.tier = tier\n    this.optionTreeSections = this.$section.find('> .dm-option-tree-details__text > .dm-option-tree-details').get().map((element) => new OptionTreeSection(this.optionTree, $(element as HTMLDetailsElement), tier + 1))\n    this.checkboxes = this.$section.find<HTMLInputElement>('> .dm-option-tree-details__text > .govuk-form-group > .govuk-checkboxes > .govuk-checkboxes__item > .govuk-checkboxes__input').get().map((element) => $(element))\n    this.isParent = this.optionTreeSections.length > 0\n\n    const checkbox = this.$section.find<HTMLInputElement>('> .dm-option-tree-details__summary-checkbox > .dm-option-tree-details__summary-text > .dm-option-tree-details__summary-text-label > .govuk-checkboxes__item > .govuk-checkboxes__input').get(0)\n\n    if (checkbox) {\n      this.$checkbox = $(checkbox)\n    }\n  }\n\n  init = () => {\n    this.openSectionIfSelected()\n\n    if (this.isParent) {\n      this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.init())\n    } else {\n      this.checkboxes.forEach(($checkbox) => {\n        $checkbox.on('click', () => {\n          this.optionTree.updateTotals($checkbox.val(), $checkbox.is(':checked'))\n        })\n      })\n    }\n\n    if (this.$checkbox) {\n      // Stop checkbox/label clicks toggling the parent <details> (which collapses\n      // the section); expand/collapse stays on the chevron.\n      this.$checkbox.closest('.govuk-checkboxes__item').on('click', (event) => {\n        event.stopPropagation()\n      })\n\n      this.$checkbox.on('click', (event) => {\n        const $checkbox = $(event.target)\n\n        if (this.optionTree.independentSelection) {\n          // Selecting a section is a selection of the section itself: it neither\n          // selects nor expands its children. Any click clears descendant\n          // selections, so checking makes the section the sole selection in its\n          // subtree and unchecking clears the subtree entirely.\n          const isChecked = $checkbox.is(':checked')\n\n          if (this.isParent) {\n            this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.toggleAllCheckboxes(false))\n          } else {\n            this.checkboxes.forEach(($leafCheckbox) => $leafCheckbox.prop('checked', false))\n          }\n\n          $checkbox.prop('checked', isChecked)\n          this.optionTree.updateAllParts()\n          return\n        }\n\n        if ($checkbox.is(':checked')) {\n          this.openSections()\n        }\n\n        if (this.isParent) {\n          this.optionTree.updateAllTotals(this.optionTreeSections, $checkbox.is(':checked'))\n        } else {\n          this.optionTree.updateAllTotals([this], $checkbox.is(':checked'))\n        }\n      })\n    }\n  }\n\n  private selectedItems = () => {\n    return this.checkboxes.filter(($checkbox) => $checkbox.is(':checked'))\n  }\n\n  private openSectionIfSelected = () => {\n    // In independent selection mode a section selected by itself stays collapsed;\n    // only open it when the selection sits somewhere in its subtree.\n    const shouldOpen = this.optionTree.independentSelection\n      ? this.hasSelectedDescendants()\n      : this.countSelected() > 0\n\n    if (shouldOpen && this.$section.attr('open') !== 'open') {\n      this.$section.attr('open', 'open')\n    }\n  }\n\n  hasSelectedDescendants = (): boolean => {\n    if (this.isParent) {\n      return this.optionTreeSections.some((optionTreeSection) =>\n        optionTreeSection.$checkbox?.is(':checked') ||\n        optionTreeSection.hasSelectedDescendants()\n      )\n    }\n\n    return this.selectedItems().length > 0\n  }\n\n  openSections = () => {\n    if (this.$section.attr('open') !== 'open') {\n      this.$section.attr('open', 'open')\n    }\n\n    if (this.isParent) {\n      this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.openSections())\n    }\n  }\n\n  countSelected = (): number => {\n    // A section's own checkbox is a selection in its own right in independent\n    // selection mode.\n    let total = this.optionTree.independentSelection && this.$checkbox?.is(':checked') ? 1 : 0\n\n    if (this.isParent) {\n      total += this.optionTreeSections.reduce(\n        (sectionTotal, optionTreeSection) => sectionTotal + optionTreeSection.countSelected(), 0\n      )\n    } else {\n      total += this.selectedItems().length\n    }\n\n    return total\n  }\n\n  isAllSelected = (): boolean => {\n    if (this.isParent) {\n      return this.optionTreeSections.every((optionTreeSection) => optionTreeSection.isAllSelected())\n    } else {\n      return this.countSelected() == this.checkboxes.length\n    }\n  }\n\n  selectedItemValues = (): (string | undefined)[] => {\n    const values = this.isParent\n      ? this.optionTreeSections.map((optionTreeSection) => optionTreeSection.selectedItemValues()).flat()\n      : this.selectedItems().map(($checkbox) => $checkbox.val())\n\n    if (this.optionTree.independentSelection && this.$checkbox?.is(':checked')) {\n      values.push(this.$checkbox.val())\n    }\n\n    return values\n  }\n\n  updateSectionLocks = (fromTier: number) => {\n    if (this.countSelected()) {\n      if (this.tier === fromTier) {\n        this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.toggleSectionLock(false))\n      } else {\n        this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.updateSectionLocks(fromTier))\n      }\n    } else {\n      this.toggleSectionLock(true)\n    }\n  }\n\n  updateSectionCheckbox = () => {\n    if (this.optionTree.independentSelection) {\n      // Derive state bottom-up so child section checkboxes are final before the\n      // parent reads them. A section is a selection in its own right: a tick\n      // only ever means the user selected the section itself, and any selection\n      // beneath it clears that tick. Descendant selections show no derived\n      // state on the parent at all.\n      this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.updateSectionCheckbox())\n\n      if (this.$checkbox && this.hasSelectedDescendants()) {\n        this.$checkbox.prop('checked', false)\n      }\n\n      return\n    }\n\n    this.$checkbox?.prop('checked', this.isAllSelected())\n\n    if (this.isParent) {\n      this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.updateSectionCheckbox())\n    }\n  }\n\n  toggleSectionLock = (isLocked: boolean) => {\n    if (this.isParent) {\n      this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.toggleSectionLock(isLocked))\n    } else {\n      this.checkboxes.forEach((checkbox) => checkbox.prop('disabled', isLocked))\n    }\n\n    if (isLocked) {\n      this.$section.attr('disabled', 'disabled')\n      this.$section.attr('tabIndex', -1)\n      this.$section.removeAttr('open')\n      this.$checkbox?.prop('disabled', true)\n      this.$checkbox?.prop('checked', false)\n    } else {\n      this.$section.removeAttr('disabled')\n      this.$section.removeAttr('tabIndex')\n      this.$checkbox?.prop('disabled', false)\n    }\n  }\n\n  toggleCheckbox = (value: string | undefined, isChecked: boolean) => {\n    if (this.isParent) {\n      this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.toggleCheckbox(value, isChecked))\n    } else {\n      this.checkboxes.forEach(($checkbox) => {\n        if ($checkbox.val() === value) {\n          $checkbox.prop('checked', isChecked)\n        }\n      })\n    }\n  }\n\n  toggleAllCheckboxes = (isChecked: boolean) => {\n    if (this.$checkbox) {\n      this.$checkbox.prop('checked', isChecked)\n    }\n\n    if (this.isParent) {\n      this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.toggleAllCheckboxes(isChecked))\n    } else {\n      this.checkboxes.forEach(($checkbox) => {\n        $checkbox.prop('checked', isChecked)\n      })\n    }\n  }\n}\n\nclass OptionTree implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-option-tree'\n  $optionTree: JQuery<HTMLElement>\n  optionTreeSummary: OptionTreeSummary\n  optionTreeSections: OptionTreeSection[]\n  tierLimit: number\n  independentSelection: boolean\n  currentCount: number = 0\n\n  constructor ($optionTree: JQuery<HTMLElement>) {\n    this.$optionTree = $optionTree\n    this.optionTreeSummary = new OptionTreeSummary(this.$optionTree.find('.dm-option-tree__summary'), this.$optionTree.data('itemNameSingular'), this.$optionTree.data('itemNamePlural'))\n    this.tierLimit = this.$optionTree.data('tierRestriction') || 0\n    this.independentSelection = this.$optionTree.data('independentSelection') === true\n    this.optionTreeSections = this.$optionTree.find<HTMLDetailsElement>('.dm-option-tree__options > .dm-option-tree-details').get().map((element) => new OptionTreeSection(this, $(element), 1))\n  }\n\n  init = () => {\n    this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.init())\n\n    this.updateAllParts()\n  }\n\n  private countSelected = () => {\n    return new Set(this.optionTreeSections.map((optionTreeSection) => optionTreeSection.selectedItemValues()).flat()).size\n  }\n\n  private updateOptionTreeSummaryCount = () => {\n    this.currentCount = this.countSelected()\n    this.optionTreeSummary.updateSelectedCount(this.currentCount)\n  }\n\n  private updateSectionLocks = () => {\n    if (!this.tierLimit) return\n\n    this.optionTreeSections.forEach((optionTreeSection) => {\n      if (this.currentCount === 0) {\n        optionTreeSection.toggleSectionLock(false)\n      } else {\n        optionTreeSection.updateSectionLocks(this.tierLimit)\n      }\n    })\n  }\n\n  private updateSectionsCheckboxes = () => {\n    this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.updateSectionCheckbox())\n  }\n\n  updateAllParts = () => {\n    this.updateSectionsCheckboxes()\n    this.updateOptionTreeSummaryCount()\n    this.updateSectionLocks()\n  }\n\n  updateTotals = (value: string | undefined, isChecked: boolean) => {\n    this.optionTreeSections.forEach((optionTreeSection) => optionTreeSection.toggleCheckbox(value, isChecked))\n\n    this.updateAllParts()\n  }\n\n  updateAllTotals = (optionTreeSections: OptionTreeSection[], isChecked: boolean) => {\n    optionTreeSections.forEach((optionTreeSection) => optionTreeSection.toggleAllCheckboxes(isChecked))\n\n    this.updateAllParts()\n  }\n}\n\nexport { OptionTree }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nenum QuestionType {\n  CONTROLLER,\n  CONTROLLER_AND_TARGET,\n  TARGET\n}\n\nclass QuestionInput {\n  question: QuestionQuestion\n  $input: JQuery<HTMLInputElement>\n  targets: string[]\n\n  constructor (question: QuestionQuestion, $input: JQuery<HTMLInputElement>) {\n    this.question = question\n    this.$input = $input\n\n    const targets = this.$input.attr('data-target')\n    this.targets = targets ? targets.split(' ') : []\n  }\n\n  setEventListener () {\n    this.$input.on('click', () => {\n      this.question.updateTargetQuestionsVisibility()\n    })\n  }\n\n  isChecked () {\n    return this.$input.is(':checked')\n  }\n}\n\nclass QuestionQuestion {\n  questionWatcher: Question\n  $question: JQuery<HTMLElement>\n  id: string\n  questionType: QuestionType\n  questionInputs?: QuestionInput[]\n  possibleTargetIds?: Set<string>\n  targetOf?: string[]\n\n  constructor (questionWatcher: Question, $question: JQuery<HTMLElement>, questionType: QuestionType) {\n    this.questionWatcher = questionWatcher\n    this.$question = $question\n    this.id = this.$question.attr('id') as string\n    this.questionType = questionType\n\n    if (this.questionType === QuestionType.CONTROLLER) {\n      this.enableControllerQuestionMethods()\n    } else {\n      this.enableTargetQuestionMethods()\n    }\n  }\n\n  enableControllerQuestionMethods () {\n    this.questionInputs = this.$question.find('input').get().map((inputElement) => new QuestionInput(this, $(inputElement)))\n\n    this.possibleTargetIds = new Set(this.questionInputs.map((questionInput) => questionInput.targets).flat())\n  }\n\n  enableTargetQuestionMethods () {\n    this.targetOf = []\n  }\n\n  isVisible () {\n    return !this.$question.hasClass('govuk-visually-hidden')\n  }\n\n  currentTargetIds () {\n    let targets: string[]\n\n    if (this.isVisible() && this.questionInputs) {\n      targets = this.questionInputs.filter((questionInput) => questionInput.isChecked()).map((questionInput) => questionInput.targets).flat()\n    } else {\n      targets = []\n    }\n\n    return new Set(targets)\n  }\n\n  updateTargetQuestionsVisibility () {\n    this.questionWatcher.updateTargetQuestionsVisibility(this.possibleTargetIds)\n  }\n\n  appendTargetOf (questionId: string) {\n    if (this.targetOf !== undefined) {\n      this.targetOf.push(questionId)\n    }\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$question.toggleClass('govuk-visually-hidden', !isShown)\n    this.$question.attr('aria-hidden', (!isShown).toString())\n    if (isShown) {\n      this.$question.removeAttr('hidden')\n    } else {\n      this.$question.attr('hidden', '')\n    }\n  }\n}\n\nclass Question implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-question'\n  questions: Record<string, QuestionQuestion>\n\n  constructor () {\n    this.questions = {}\n\n    $(`[data-module=\"${Question.moduleName}\"]`).each((_index, question) => {\n      this.push(new QuestionQuestion(this, $(question), QuestionType.CONTROLLER))\n    })\n\n    for (const [questionId, question] of Object.entries(this.questions)) {\n      for (const questionTargetId of question.possibleTargetIds || []) {\n        if (questionTargetId in this.questions) {\n          if (this.questions[questionTargetId].questionType === QuestionType.CONTROLLER) {\n            this.questions[questionTargetId].questionType = QuestionType.CONTROLLER_AND_TARGET\n            this.questions[questionTargetId].enableTargetQuestionMethods()\n          }\n        } else {\n          this.push(new QuestionQuestion(this, $(`#${questionTargetId}`), QuestionType.TARGET))\n        }\n\n        this.questions[questionTargetId].appendTargetOf(questionId)\n      }\n    }\n  }\n\n  init () {\n    for (const question of Object.values(this.questions)) {\n      if (question.questionType < QuestionType.TARGET) {\n        for (const questionInput of question.questionInputs || []) {\n          questionInput.setEventListener()\n        }\n        if (question.questionType === QuestionType.CONTROLLER) {\n          this.updateTargetQuestionsVisibility(question.possibleTargetIds)\n        }\n      }\n    }\n  }\n\n  push (question: QuestionQuestion) {\n    this.questions[question.id] = question\n  }\n\n  updateTargetQuestionsVisibility (possibleTargetIds?: Set<string>, isShown?: boolean) {\n    for (const possibleTargetId of possibleTargetIds || []) {\n      const targetQuestion = this.questions[possibleTargetId]\n      let questionIsShown\n\n      if (isShown === undefined) {\n        const controllerQuestions = targetQuestion.targetOf?.map((questionId) => this.questions[questionId])\n\n        const targetsToShow = new Set(controllerQuestions?.map((controllerQuestion) => Array.from(controllerQuestion.currentTargetIds())).flat())\n\n        questionIsShown = targetsToShow.has(possibleTargetId)\n      } else {\n        questionIsShown = isShown\n      }\n\n      targetQuestion.toggleVisibility(questionIsShown)\n\n      if (targetQuestion.questionType === QuestionType.CONTROLLER_AND_TARGET) {\n        if (questionIsShown) {\n          this.updateTargetQuestionsVisibility(targetQuestion.possibleTargetIds)\n        } else {\n          this.updateTargetQuestionsVisibility(targetQuestion.possibleTargetIds, false)\n        }\n      }\n    }\n  }\n}\n\nexport { Question }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass QuestionCheckboxTreeSummary {\n  $totalSelected: JQuery<HTMLElement>\n  $totalSelectedText: JQuery<HTMLElement>\n  itemNameSingular: string\n  itemNamePlural: string\n\n  constructor ($summary: JQuery<HTMLElement>, itemNameSingular: string, itemNamePlural: string) {\n    this.$totalSelected = $summary.find('.dm-checkbox-tree__summary-total-selected')\n    this.$totalSelectedText = $summary.find('.dm-checkbox-tree__summary-total-selected-text')\n    this.itemNameSingular = itemNameSingular\n    this.itemNamePlural = itemNamePlural\n  }\n\n  updateSelectedCount = (numberSelected: number) => {\n    this.$totalSelected.text(numberSelected)\n\n    if (numberSelected === 1) {\n      this.$totalSelectedText.text(`${this.itemNameSingular} selected.`)\n    } else {\n      this.$totalSelectedText.text(`${this.itemNamePlural} selected.`)\n    }\n  }\n}\n\nclass QuestionCheckboxTreeSection {\n  checkboxTree: QuestionCheckboxTree\n  $section: JQuery<HTMLDetailsElement>\n  $summaryTag: JQuery<HTMLElement>\n  $summaryTagCount: JQuery<HTMLElement>\n  tier: number\n  checkboxTreeSections: QuestionCheckboxTreeSection[]\n  checkboxes: JQuery<HTMLInputElement>[]\n  isParent: boolean\n\n  constructor (checkboxTree: QuestionCheckboxTree, $section: JQuery<HTMLDetailsElement>, tier: number) {\n    this.checkboxTree = checkboxTree\n    this.$section = $section\n    this.tier = tier\n    this.$summaryTag = this.$section.find('> .dm-checkbox-tree-details__summary .govuk-tag')\n    this.$summaryTagCount = this.$summaryTag.find('.dm-checkbox-tree-details__summary-text-count-selected')\n    this.checkboxTreeSections = this.$section.find('> .dm-checkbox-tree-details__text > .dm-checkbox-tree-details').get().map((element) => new QuestionCheckboxTreeSection(this.checkboxTree, $(element as HTMLDetailsElement), tier + 1))\n    this.checkboxes = this.$section.find<HTMLInputElement>(`${this.$section.prop('tagName') === 'DETAILS' ? '> .dm-checkbox-tree-details__text > .govuk-form-group > .govuk-checkboxes > .govuk-checkboxes__item > ' : ''}.govuk-checkboxes__input`).get().map((element) => $(element))\n    this.isParent = this.checkboxTreeSections.length > 0\n  }\n\n  init = () => {\n    this.openSectionIfSelected()\n\n    if (this.isParent) {\n      this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.init())\n    } else {\n      this.checkboxes.forEach(($checkbox) => {\n        $checkbox.on('click', () => {\n          this.checkboxTree.updateTotals($checkbox.val(), $checkbox.is(':checked'))\n        })\n      })\n    }\n\n  }\n\n  private selectedItems = () => {\n    return this.checkboxes.filter(($checkbox) => $checkbox.is(':checked'))\n  }\n\n  private openSectionIfSelected = () => {\n    if (this.countSelected() > 0 && this.$section.attr('open') !== 'open') {\n      this.$section.attr('open', 'open')\n    }\n  }\n\n  countSelected = (): number => {\n    if (this.isParent) {\n      return this.checkboxTreeSections.reduce((total, checkboxTreeSection) => total + checkboxTreeSection.countSelected(), 0)\n    } else {\n      return this.selectedItems().length\n    }\n  }\n\n  slectedItemValues = (): (string | undefined)[] => {\n    if (this.isParent) {\n      return this.checkboxTreeSections.map((checkboxTreeSection) => checkboxTreeSection.slectedItemValues()).flat()\n    } else {\n      return this.selectedItems().map(($checkbox) => $checkbox.val())\n    }\n  }\n\n  updateSelectedCount = () => {\n    const numberSelected = this.countSelected()\n\n    if (numberSelected > 0) {\n      this.$summaryTagCount.text(numberSelected)\n      this.$summaryTag.toggleClass('govuk-visually-hidden', false)\n    } else {\n      this.$summaryTag.toggleClass('govuk-visually-hidden', true)\n      this.$summaryTagCount.text('')\n    }\n\n    if (this.isParent) {\n      this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.updateSelectedCount())\n    }\n  }\n\n  updateSectionLocks = (fromTier: number) => {\n    if (this.countSelected()) {\n      if (this.tier === fromTier) {\n        this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.toggleSectionLock(false))\n      } else {\n        this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.updateSectionLocks(fromTier))\n      }\n    } else {\n      this.toggleSectionLock(true)\n    }\n  }\n\n  toggleSectionLock = (isLocked: boolean) => {\n    if (this.isParent) {\n      this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.toggleSectionLock(isLocked))\n    } else {\n      this.checkboxes.forEach((checkbox) => checkbox.prop('disabled', isLocked))\n    }\n\n    if (isLocked) {\n      this.$section.attr('disabled', 'disabled')\n      this.$section.attr('tabIndex', -1)\n      this.$section.removeAttr('open')\n    } else {\n      this.$section.removeAttr('disabled')\n      this.$section.removeAttr('tabIndex')\n    }\n  }\n\n  toggleCheckbox = (value: string | undefined, isChecked: boolean) => {\n    if (this.isParent) {\n      this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.toggleCheckbox(value, isChecked))\n    } else {\n      this.checkboxes.forEach(($checkbox) => {\n        if ($checkbox.val() === value) {\n          $checkbox.prop('checked', isChecked)\n        }\n      })\n    }\n  }\n}\n\nclass QuestionCheckboxTree implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-question-checkbox-tree'\n  $checkboxTree: JQuery<HTMLElement>\n  checkboxTreeSummary: QuestionCheckboxTreeSummary\n  checkboxTreeSections: QuestionCheckboxTreeSection[]\n  tierLimit: number\n  currentCount: number = 0\n  \n  constructor ($checkboxTree: JQuery<HTMLElement>) {\n    this.$checkboxTree = $checkboxTree\n    this.checkboxTreeSummary = new QuestionCheckboxTreeSummary(this.$checkboxTree.find('.dm-checkbox-tree__summary'), this.$checkboxTree.data('itemNameSingular'), this.$checkboxTree.data('itemNamePlural'))\n    this.tierLimit = this.$checkboxTree.data('tierRestriction') || 0\n\n    const checkboxTreeSections = this.$checkboxTree.find<HTMLDetailsElement>('.dm-checkbox-tree__options > .dm-checkbox-tree-details').get().map((element) => new QuestionCheckboxTreeSection(this, $(element), 1))\n\n    if (checkboxTreeSections.length) {\n      this.checkboxTreeSections = checkboxTreeSections\n    } else {\n      this.checkboxTreeSections = [new QuestionCheckboxTreeSection(this, $('.dm-checkbox-tree__options'), 1)]\n    }\n  }\n\n  init = () => {\n    this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.init())\n\n    this.updateCheckboxTreeSummaryCount()\n    this.updateCheckboxTreeSectionSelectedCounts()\n    this.updateSectionLocks()\n  }\n\n  private countSelected = () => {\n    return new Set(this.checkboxTreeSections.map((checkboxTreeSection) => checkboxTreeSection.slectedItemValues()).flat()).size\n  }\n\n  private updateCheckboxTreeSummaryCount = () => {\n    this.currentCount = this.countSelected()\n    this.checkboxTreeSummary.updateSelectedCount(this.currentCount)\n  }\n\n  private updateCheckboxTreeSectionSelectedCounts = () => {\n    this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.updateSelectedCount())\n  }\n\n  private updateSectionLocks = () => {\n    if (!this.tierLimit) return\n\n    this.checkboxTreeSections.forEach((checkboxTreeSection) => {\n      if (this.currentCount === 0) {\n        checkboxTreeSection.toggleSectionLock(false)\n      } else {\n        checkboxTreeSection.updateSectionLocks(this.tierLimit)\n      }\n    })\n  }\n\n  updateTotals = (value: string | undefined, isChecked: boolean) => {\n    this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.toggleCheckbox(value, isChecked))\n\n    this.updateCheckboxTreeSummaryCount()\n    this.updateCheckboxTreeSectionSelectedCounts()\n    this.updateSectionLocks()\n  }\n}\n\nexport { QuestionCheckboxTree }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass QuestionListRowInput {\n  $input: JQuery<HTMLInputElement>\n  $label: JQuery<HTMLLabelElement>\n  $labelCounter: JQuery<HTMLElement>\n  $prefixText: JQuery<HTMLElement>\n\n  constructor ($row: JQuery<HTMLElement>) {\n    this.$input = $row.find<HTMLInputElement>('.dm-list__item-input')\n    this.$label = $row.find<HTMLLabelElement>('.govuk-label')\n    this.$labelCounter = this.$label.find('.dm-list__item-label-counter')\n    this.$prefixText = $row.find('.govuk-input__prefix')\n  }\n\n  getValue () {\n    return this.$input.val()\n  }\n\n  clearValue () {\n    this.$input.val('')\n    this.$input.attr('value', '')\n  }\n\n  updateIndex (newIndex: number) {\n    const newId = `input-${this.$input.attr('name')}-${newIndex}`\n\n    this.$label.attr('for', newId)\n    this.$labelCounter.text(newIndex + 1)\n\n    this.$prefixText.text(`${newIndex + 1}.`)\n\n    this.$input.attr('id', newId)\n  }\n}\n\nclass QuestionListRowRemoveButton {\n  answerListRow: QuestionListRow\n  $button: JQuery<HTMLButtonElement>\n  $removeButtonCounter: JQuery<HTMLElement>\n\n  constructor (answerListRow: QuestionListRow, $row: JQuery<HTMLElement>) {\n    this.answerListRow = answerListRow\n    this.$button = $row.find<HTMLButtonElement>('.dm-list__item-remove')\n    this.$removeButtonCounter = this.$button.find('.dm-list__item-remove-counter')\n  }\n\n  init () {\n    this.toggleVisibility(true)\n\n    this.$button.on('click', () => {\n      this.answerListRow.removeRow()\n    })\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n  }\n\n  updateIndex (newIndex: number) {\n    this.$removeButtonCounter.text(newIndex + 1)\n  }\n}\n\nclass QuestionListRow {\n  answerList: QuestionList\n  index: number\n  $row: JQuery<HTMLElement>\n  answerListRowInput: QuestionListRowInput\n  answerListRowRemoveButton: QuestionListRowRemoveButton\n\n  constructor (answerList: QuestionList, index: number, $row: JQuery<HTMLElement>) {\n    this.answerList = answerList\n    this.index = index\n    this.$row = $row\n    this.answerListRowInput = new QuestionListRowInput($row)\n    this.answerListRowRemoveButton = new QuestionListRowRemoveButton(this, $row)\n  }\n\n  init () {\n    this.answerListRowRemoveButton.init()\n  }\n\n  updateIndex (newIndex: number) {\n    this.index = newIndex\n    this.answerListRowInput.updateIndex(newIndex)\n    this.answerListRowRemoveButton.updateIndex(newIndex)\n  }\n\n  removeRow () {\n    this.answerList.removeRow(this.index)\n    this.deleteRow()\n  }\n\n  deleteRow () {\n    this.$row.remove()\n  }\n\n  toggleRemoveButtonVisibility (isShown: boolean) {\n    this.answerListRowRemoveButton.toggleVisibility(isShown)\n  }\n\n  inputValue () {\n    return this.answerListRowInput.getValue()\n  }\n}\n\nclass QuestionListAddButton {\n  answerList: QuestionList\n  $button: JQuery<HTMLButtonElement>\n  $buttonCounter: JQuery<HTMLElement>\n\n  constructor (answerList: QuestionList, $button: JQuery<HTMLButtonElement>) {\n    this.answerList = answerList\n    this.$button = $button\n    this.$buttonCounter = $button.find('.dm-list__item-add-counter')\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.answerList.addRow()\n    })\n\n    this.updateButtonText(this.answerList.maxNumberOfItems - numberOfRows)\n  }\n\n  updateButtonText (numberRemaining: number) {\n    this.$buttonCounter.text(numberRemaining)\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n  }\n}\n\nclass QuestionList implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-question-list'\n  $answerList: JQuery<HTMLElement>\n  $answerListItems: JQuery<HTMLElement>\n  answerListRows: QuestionListRow[]\n  answerListAddButton: QuestionListAddButton\n  maxNumberOfItems: number\n  numberOfItemsShownAsDefault: number\n\n  constructor ($answerList: JQuery<HTMLElement>) {\n    this.$answerList = $answerList\n    this.maxNumberOfItems = this.$answerList.data('maxNumberOfItems')\n    this.numberOfItemsShownAsDefault = this.$answerList.data('numberOfItemsShownAsDefault')\n    this.$answerListItems = this.$answerList.find('.dm-list__items')\n    this.answerListRows = this.$answerList.find('.dm-list__item').get().map((row, index) => new QuestionListRow(this, index, $(row)))\n    this.answerListAddButton = new QuestionListAddButton(this, this.$answerList.find<HTMLButtonElement>('.dm-list__item-add'))\n  }\n\n  init () {\n    const rowValues = this.answerListRows.map((answerListRow) => answerListRow.inputValue())\n    let indexToDeleteFrom = 1\n\n    if (rowValues.every((rowValue) => !rowValue)) {\n      indexToDeleteFrom = this.numberOfItemsShownAsDefault\n    } else {\n      rowValues.forEach((rowValue, index) => {\n        if (rowValue) {\n          indexToDeleteFrom = index + 1\n        }\n      })\n    }\n\n    if (indexToDeleteFrom >= 0) {\n      this.answerListRows.slice(indexToDeleteFrom).forEach((answerListRow) => answerListRow.deleteRow())\n      this.answerListRows.splice(indexToDeleteFrom)\n    }\n\n    this.answerListAddButton.init(this.answerListRows.length)\n    this.answerListRows.forEach((answerListRow) => answerListRow.init())\n\n    this.updateIfMinRows()\n    this.updateAnswerButton()\n  }\n\n  removeRow (indexToRemove: number) {\n    this.answerListRows.splice(indexToRemove, 1)\n\n    this.answerListRows.slice(indexToRemove).forEach((answerListRow, index) => {\n      answerListRow.updateIndex(indexToRemove + index)\n    })\n\n    this.updateIfMinRows()\n    this.updateAnswerButton()\n    this.focusOnRow(indexToRemove)\n  }\n\n  addRow () {\n    const numberOfRows = this.answerListRows.length\n\n    if (numberOfRows < this.maxNumberOfItems) {\n      const $newRow = this.answerListRows[0].$row.clone()\n      const answerListRow = new QuestionListRow(this, numberOfRows, $newRow)\n\n      answerListRow.updateIndex(numberOfRows)\n      answerListRow.answerListRowInput.clearValue()\n\n      this.answerListRows.push(answerListRow)\n      this.$answerListItems.append($newRow)\n      this.answerListRows[numberOfRows].init()\n\n      this.updateIfMinRows()\n      this.updateAnswerButton()\n      this.focusOnRow(numberOfRows)\n    }\n  }\n\n  updateIfMinRows () {\n    if (this.answerListRows.length === 1) {\n      this.answerListRows[0].toggleRemoveButtonVisibility(false)\n    } else {\n      this.answerListRows[0].toggleRemoveButtonVisibility(true)\n    }\n  }\n\n  updateAnswerButton () {\n    if (this.answerListRows.length === this.maxNumberOfItems) {\n      this.answerListAddButton.toggleVisibility(false)\n    } else {\n      this.answerListAddButton.toggleVisibility(true)\n      this.answerListAddButton.updateButtonText(this.maxNumberOfItems - this.answerListRows.length)\n    }\n  }\n\n  focusOnRow (targetIndexToFocus: number) {\n    const numberOfRows = this.answerListRows.length\n    let indexToFocus = targetIndexToFocus\n\n    if (targetIndexToFocus >= numberOfRows) {\n      indexToFocus = numberOfRows - 1\n    }\n\n    this.answerListRows[indexToFocus].answerListRowInput.$input.focus()\n  }\n}\n\nexport { QuestionList }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nabstract class QuestionListMultiquestionQuestionInput {\n  $question: JQuery<HTMLElement>\n  canHideQuestion: boolean\n\n  constructor ($question: JQuery<HTMLElement>) {\n    this.$question = $question\n    this.canHideQuestion = this.$question.hasClass('js-hidden')\n  }\n\n  abstract hasValue():  boolean\n\n  abstract focusOnInput(): void\n\n  abstract hideInput(): void\n\n  abstract showInput(): void\n\n  toggleVisibility (isShown: boolean) {\n    if (isShown) {\n      this.showInput()\n    } else {\n      this.hideInput()\n      this.hideQuestion()\n    }\n  }\n\n  hideQuestion () {\n    if (this.canHideQuestion) {\n      this.$question.toggleClass('govuk-visually-hidden', true)\n      this.$question.attr('aria-hidden', 'true')\n      this.$question.attr('hidden', '')\n    }\n  }\n}\n\nclass QuestionListMultiquestionQuestionInputWithField extends QuestionListMultiquestionQuestionInput {\n  $input: JQuery<HTMLInputElement>\n\n  constructor ($question: JQuery<HTMLElement>, $input: JQuery<HTMLInputElement>) {\n    super($question)\n    this.$input = $input\n  }\n\n  hasValue () {\n    return !!this.$input.val()\n  }\n\n  showInput () {\n    this.$input.removeAttr('tabindex')\n  }\n\n  hideInput () {\n    this.$input.val('')\n    this.$input.attr('value', '')\n    this.$input.attr('tabindex', -1)\n  }\n\n  focusOnInput () {\n    this.$input.focus()\n  }\n}\n\nclass QuestionListMultiquestionQuestionInputWithItems extends QuestionListMultiquestionQuestionInput {\n  inputs: JQuery<HTMLInputElement>[]\n\n  constructor ($question: JQuery<HTMLElement>, inputs: JQuery<HTMLInputElement>[]) {\n    super($question)\n    this.inputs = inputs\n  }\n\n  hasValue () {\n    return this.inputs.some($input => $input.is(':checked'))\n  }\n\n  showInput () {\n    this.inputs.forEach($input => $input.removeAttr('tabindex'))\n  }\n  \n  hideInput () {\n    this.inputs.forEach(($input) => {\n      $input.prop('checked', false)\n      $input.attr('tabindex', -1)\n    })\n  }\n\n  focusOnInput () {\n    this.inputs[0].focus()\n  }\n}\n\nclass QuestionListMultiquestionQuestionInputFactory {\n  static getQuestionListMultiquestionQuestionInput($question: JQuery<HTMLElement>): QuestionListMultiquestionQuestionInput {\n    const inputs = $question.find<HTMLInputElement>('input').get().map((input) => $(input))\n\n    if (inputs.length == 1) {\n      return new QuestionListMultiquestionQuestionInputWithField($question, inputs[0])\n    } else {\n      return new QuestionListMultiquestionQuestionInputWithItems($question, inputs)\n    }\n  }\n}\n\nclass QuestionListMultiquestionRow {\n  answerList: QuestionListMultiquestionClientSide\n  $row: JQuery<HTMLElement>\n  answerListRowInputs: QuestionListMultiquestionQuestionInput[]\n\n  constructor (answerList: QuestionListMultiquestionClientSide, $row: JQuery<HTMLElement>) {\n    this.answerList = answerList\n    this.$row = $row\n    this.answerListRowInputs = $row.find('.question').get().map((question) => QuestionListMultiquestionQuestionInputFactory.getQuestionListMultiquestionQuestionInput($(question)))\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$row.toggleClass('govuk-visually-hidden', !isShown)\n    this.answerListRowInputs.forEach((answerListRowInput) => answerListRowInput.toggleVisibility(isShown))\n  }\n\n  isRowVisible () {\n    return !this.$row.hasClass('govuk-visually-hidden')\n  }\n\n  rowHasValues () {\n    return this.answerListRowInputs.some((answerListRowInput) => answerListRowInput.hasValue())\n  }\n}\n\nclass QuestionListMultiquestionButton {\n  answerList: QuestionListMultiquestionClientSide\n  $button: JQuery<HTMLButtonElement>\n  $buttonCounter: JQuery<HTMLElement>\n\n  constructor (answerList: QuestionListMultiquestionClientSide, $button: JQuery<HTMLButtonElement>, buttonType: 'add' | 'remove') {\n    this.answerList = answerList\n    this.$button = $button\n    this.$buttonCounter = $button.find(`.dm-list-multiquestion__item-${buttonType}-counter`)\n  }\n\n  updateButtonText (numberOfRows: number) {\n    this.$buttonCounter.text(numberOfRows)\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n\n    if (isShown) {\n      this.$button.removeAttr('tabindex')\n    } else {\n      this.$button.attr('tabindex', -1)\n    }\n  }\n}\n\nclass QuestionListMultiquestionRemoveButton extends QuestionListMultiquestionButton {\n  constructor (answerList: QuestionListMultiquestionClientSide, $button: JQuery<HTMLButtonElement>) {\n    super(answerList, $button, 'remove')\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.answerList.hideRow()\n    })\n\n    this.updateButtonText(numberOfRows)\n  }\n}\n\nclass QuestionListMultiquestionAddButton extends QuestionListMultiquestionButton {\n  maxNumberOfItems: number\n\n  constructor (answerList: QuestionListMultiquestionClientSide, $button: JQuery<HTMLButtonElement>, maxNumberOfItems: number) {\n    super(answerList, $button, 'add')\n    this.maxNumberOfItems = maxNumberOfItems\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.answerList.addRow()\n    })\n\n    this.updateButtonText(this.maxNumberOfItems - numberOfRows)\n  }\n}\n\nclass QuestionListMultiquestionClientSide implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-question-list-multiquestion-client-side'\n  $answerList: JQuery<HTMLElement>\n  maxNumberOfItems: number\n  answerListRows: QuestionListMultiquestionRow[]\n  answerListAddButton: QuestionListMultiquestionAddButton\n  answerListRemoveButton: QuestionListMultiquestionRemoveButton\n\n  constructor ($answerList: JQuery<HTMLElement>) {\n    this.$answerList = $answerList\n    this.maxNumberOfItems = this.$answerList.data('maxNumberOfItems')\n    this.answerListRows = this.$answerList.find('.dm-list-multiquestion__item').get().map((row) => new QuestionListMultiquestionRow(this, $(row)))\n    this.answerListAddButton = new QuestionListMultiquestionAddButton(this, this.$answerList.find<HTMLButtonElement>('.dm-list-multiquestion__item-add'), this.maxNumberOfItems)\n    this.answerListRemoveButton = new QuestionListMultiquestionRemoveButton(this, this.$answerList.find<HTMLButtonElement>('.dm-list-multiquestion__item-remove'))\n  }\n\n  init () {\n    const rowsVisible = this.answerListRows.map((answerListRow) => answerListRow.rowHasValues())\n    let indexToHideFrom = -1\n\n    if (rowsVisible.every((rowVisible) => !rowVisible)) {\n      indexToHideFrom = 1\n    } else {\n      let previousRowVisible = true\n\n      rowsVisible.forEach((rowVisible, index) => {\n        if (previousRowVisible && !rowVisible) {\n          indexToHideFrom = index\n        }\n        previousRowVisible = rowVisible\n      })\n    }\n\n    if (indexToHideFrom >= 0) {\n      this.answerListRows.slice(indexToHideFrom).forEach((answerListRow) => answerListRow.toggleVisibility(false))\n    }\n\n    const numberOfRows = this.visibleRowsCount()\n\n    this.answerListAddButton.init(numberOfRows)\n    this.answerListRemoveButton.init(numberOfRows)\n\n    this.updateRemoveButton(numberOfRows)\n    this.updateAnswerButton(numberOfRows)\n  }\n\n  hideRow () {\n    const numberOfRows = this.visibleRowsCount()\n\n    if (numberOfRows > 1) {\n      this.answerListRows[numberOfRows - 1].toggleVisibility(false)\n  \n      this.updateRemoveButton(numberOfRows - 1)\n      this.updateAnswerButton(numberOfRows - 1)\n      this.focusOnRow(numberOfRows - 1)\n    }\n  }\n\n  addRow () {\n    const numberOfRows = this.visibleRowsCount()\n\n    if (numberOfRows < this.maxNumberOfItems) {\n      this.answerListRows[numberOfRows].toggleVisibility(true)\n\n      this.updateRemoveButton(numberOfRows + 1)\n      this.updateAnswerButton(numberOfRows + 1)\n      this.focusOnRow(numberOfRows + 1)\n    }\n  }\n\n  visibleRowsCount () {\n    return this.answerListRows.reduce((count, answerListRow) => count += answerListRow.isRowVisible() ? 1 : 0, 0)\n  }\n\n  updateRemoveButton (numberOfRows: number) {\n    if (numberOfRows === 1) {\n      this.answerListRemoveButton.toggleVisibility(false)\n    } else {\n      this.answerListRemoveButton.toggleVisibility(true)\n      this.answerListRemoveButton.updateButtonText(numberOfRows)\n    }\n  }\n\n  updateAnswerButton (numberOfRows: number) {\n    if (numberOfRows === this.maxNumberOfItems) {\n      this.answerListAddButton.toggleVisibility(false)\n    } else {\n      this.answerListAddButton.toggleVisibility(true)\n      this.answerListAddButton.updateButtonText(this.maxNumberOfItems - numberOfRows)\n    }\n  }\n\n  focusOnRow (numberOfRows: number) {\n    this.answerListRows[numberOfRows - 1].answerListRowInputs[0].focusOnInput()\n  }\n}\n\nexport { QuestionListMultiquestionClientSide }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass SearchBox implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-search-box'\n\n  $module: JQuery<HTMLElement>\n  $toggleTarget: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$module = $module\n    this.$toggleTarget = this.$module.find('.js-class-toggle')\n  }\n\n  init () {\n    if (!this.inputIsEmpty()) {\n      this.addFocusClass()\n    }\n  \n    this.$toggleTarget.on('focus', this.addFocusClass.bind(this))\n    this.$toggleTarget.on('blur', this.removeFocusClassFromEmptyInput.bind(this))\n  }\n\n  inputIsEmpty () {\n    return this.$toggleTarget.val() === ''\n  }\n\n  addFocusClass () {\n    this.$toggleTarget.addClass('focus')\n  }\n\n  removeFocusClassFromEmptyInput () {\n    if (this.inputIsEmpty()) {\n      this.$toggleTarget.removeClass('focus')\n    }\n  }\n}\n\nexport { SearchBox }\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.accessibleAutocomplete=e():t.accessibleAutocomplete=e()}(self,(function(){return function(){\"use strict\";var t={8952:function(t,e,n){var r=n(4328),o=n(36),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+\" is not a function\")}},2096:function(t,e,n){var r=n(2424),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(\"Can't set \"+o(t)+\" as a prototype\")}},4764:function(t,e,n){var r=n(9764).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},6100:function(t,e,n){var r=n(7e3),o=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw new o(\"Incorrect invocation\")}},3951:function(t,e,n){var r=n(1632),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+\" is not an object\")}},2504:function(t,e,n){var r=n(4096),o=n(2495),i=n(3556),u=function(t){return function(e,n,u){var a=r(e),c=i(a);if(0===c)return!t&&-1;var s,l=o(u,c);if(t&&n!=n){for(;c>l;)if((s=a[l++])!=s)return!0}else for(;c>l;l++)if((t||l in a)&&a[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:u(!0),indexOf:u(!1)}},3364:function(t,e,n){var r=n(8992),o=n(1664),i=n(5712),u=n(4356),a=n(3556),c=n(2568),s=o([].push),l=function(t){var e=1===t,n=2===t,o=3===t,l=4===t,f=6===t,p=7===t,d=5===t||f;return function(h,v,m,y){for(var g,b,x=u(h),w=i(x),O=a(w),_=r(v,m),S=0,C=y||c,E=e?C(h,O):n||p?C(h,0):void 0;O>S;S++)if((d||S in w)&&(b=_(g=w[S],S,x),t))if(e)E[S]=b;else if(b)switch(t){case 3:return!0;case 5:return g;case 6:return S;case 2:s(E,g)}else switch(t){case 4:return!1;case 7:s(E,g)}return f?-1:o||l?l:E}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},953:function(t,e,n){var r=n(9957),o=n(9972),i=n(8504),u=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[u]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},1496:function(t,e,n){var r=n(9957);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){return 1},1)}))}},6728:function(t,e,n){var r=n(3476),o=n(1432),i=TypeError,u=Object.getOwnPropertyDescriptor,a=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],\"length\",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=a?function(t,e){if(o(t)&&!u(t,\"length\").writable)throw new i(\"Cannot set read only .length\");return t.length=e}:function(t,e){return t.length=e}},6736:function(t,e,n){var r=n(1432),o=n(6072),i=n(1632),u=n(9972)(\"species\"),a=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,(o(e)&&(e===a||r(e.prototype))||i(e)&&null===(e=e[u]))&&(e=void 0)),void 0===e?a:e}},2568:function(t,e,n){var r=n(6736);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},8696:function(t,e,n){var r=n(3951),o=n(3112);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(u){o(t,\"throw\",u)}}},1888:function(t,e,n){var r=n(1664),o=r({}.toString),i=r(\"\".slice);t.exports=function(t){return i(o(t),8,-1)}},4427:function(t,e,n){var r=n(16),o=n(4328),i=n(1888),u=n(9972)(\"toStringTag\"),a=Object,c=\"Arguments\"===i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=a(t),u))?n:c?i(e):\"Object\"===(r=i(e))&&o(e.callee)?\"Arguments\":r}},9968:function(t,e,n){var r=n(5152),o=n(9252),i=n(9444),u=n(8352);t.exports=function(t,e,n){for(var a=o(e),c=u.f,s=i.f,l=0;l<a.length;l++){var f=a[l];r(t,f)||n&&r(n,f)||c(t,f,s(e,f))}}},2272:function(t,e,n){var r=n(9957);t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},3336:function(t){t.exports=function(t,e){return{value:t,done:e}}},3440:function(t,e,n){var r=n(3476),o=n(8352),i=n(9728);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9728:function(t){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},92:function(t,e,n){var r=n(3476),o=n(8352),i=n(9728);t.exports=function(t,e,n){r?o.f(t,e,i(0,n)):t[e]=n}},2544:function(t,e,n){var r=n(5312),o=n(8352);t.exports=function(t,e,n){return n.get&&r(n.get,e,{getter:!0}),n.set&&r(n.set,e,{setter:!0}),o.f(t,e,n)}},6076:function(t,e,n){var r=n(4328),o=n(8352),i=n(5312),u=n(4636);t.exports=function(t,e,n,a){a||(a={});var c=a.enumerable,s=void 0!==a.name?a.name:e;if(r(n)&&i(n,s,a),a.global)c?t[e]=n:u(e,n);else{try{a.unsafe?t[e]&&(c=!0):delete t[e]}catch(l){}c?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return t}},4036:function(t,e,n){var r=n(6076);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},4636:function(t,e,n){var r=n(6420),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},3476:function(t,e,n){var r=n(9957);t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8168:function(t,e,n){var r=n(6420),o=n(1632),i=r.document,u=o(i)&&o(i.createElement);t.exports=function(t){return u?i.createElement(t):{}}},4316:function(t){var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw e(\"Maximum allowed index exceeded\");return t}},6064:function(t){t.exports=\"undefined\"!=typeof navigator&&String(navigator.userAgent)||\"\"},8504:function(t,e,n){var r,o,i=n(6420),u=n(6064),a=i.process,c=i.Deno,s=a&&a.versions||c&&c.version,l=s&&s.v8;l&&(o=(r=l.split(\".\"))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&u&&(!(r=u.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=u.match(/Chrome\\/(\\d+)/))&&(o=+r[1]),t.exports=o},8256:function(t){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},6520:function(t,e,n){var r=n(1664),o=Error,i=r(\"\".replace),u=String(new o(\"zxcasd\").stack),a=/\\n\\s*at [^:]*:[^\\n]*/,c=a.test(u);t.exports=function(t,e){if(c&&\"string\"==typeof t&&!o.prepareStackTrace)for(;e--;)t=i(t,a,\"\");return t}},3696:function(t,e,n){var r=n(3440),o=n(6520),i=n(9184),u=Error.captureStackTrace;t.exports=function(t,e,n,a){i&&(u?u(t,e):r(t,\"stack\",o(n,a)))}},9184:function(t,e,n){var r=n(9957),o=n(9728);t.exports=!r((function(){var t=new Error(\"a\");return!(\"stack\"in t)||(Object.defineProperty(t,\"stack\",o(1,7)),7!==t.stack)}))},9160:function(t,e,n){var r=n(6420),o=n(9444).f,i=n(3440),u=n(6076),a=n(4636),c=n(9968),s=n(6704);t.exports=function(t,e){var n,l,f,p,d,h=t.target,v=t.global,m=t.stat;if(n=v?r:m?r[h]||a(h,{}):r[h]&&r[h].prototype)for(l in e){if(p=e[l],f=t.dontCallGetSet?(d=o(n,l))&&d.value:n[l],!s(v?l:h+(m?\".\":\"#\")+l,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;c(p,f)}(t.sham||f&&f.sham)&&i(p,\"sham\",!0),u(n,l,p,t)}}},9957:function(t){t.exports=function(t){try{return!!t()}catch(e){return!0}}},7176:function(t,e,n){n(880);var r=n(8448),o=n(6076),i=n(7680),u=n(9957),a=n(9972),c=n(3440),s=a(\"species\"),l=RegExp.prototype;t.exports=function(t,e,n,f){var p=a(t),d=!u((function(){var e={};return e[p]=function(){return 7},7!==\"\"[t](e)})),h=d&&!u((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags=\"\",n[p]=/./[p]),n.exec=function(){return e=!0,null},n[p](\"\"),!e}));if(!d||!h||n){var v=/./[p],m=e(p,\"\"[t],(function(t,e,n,o,u){var a=e.exec;return a===i||a===l.exec?d&&!u?{done:!0,value:r(v,e,n,o)}:{done:!0,value:r(t,n,e,o)}:{done:!1}}));o(String.prototype,t,m[0]),o(l,p,m[1])}f&&c(l[p],\"sham\",!0)}},908:function(t,e,n){var r=n(7332),o=Function.prototype,i=o.apply,u=o.call;t.exports=\"object\"==typeof Reflect&&Reflect.apply||(r?u.bind(i):function(){return u.apply(i,arguments)})},8992:function(t,e,n){var r=n(3180),o=n(8952),i=n(7332),u=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?u(t,e):function(){return t.apply(e,arguments)}}},7332:function(t,e,n){var r=n(9957);t.exports=!r((function(){var t=function(){}.bind();return\"function\"!=typeof t||t.hasOwnProperty(\"prototype\")}))},8448:function(t,e,n){var r=n(7332),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6208:function(t,e,n){var r=n(3476),o=n(5152),i=Function.prototype,u=r&&Object.getOwnPropertyDescriptor,a=o(i,\"name\"),c=a&&\"something\"===function(){}.name,s=a&&(!r||r&&u(i,\"name\").configurable);t.exports={EXISTS:a,PROPER:c,CONFIGURABLE:s}},5288:function(t,e,n){var r=n(1664),o=n(8952);t.exports=function(t,e,n){try{return r(o(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(i){}}},3180:function(t,e,n){var r=n(1888),o=n(1664);t.exports=function(t){if(\"Function\"===r(t))return o(t)}},1664:function(t,e,n){var r=n(7332),o=Function.prototype,i=o.call,u=r&&o.bind.bind(i,i);t.exports=r?u:function(t){return function(){return i.apply(t,arguments)}}},5232:function(t,e,n){var r=n(6420),o=n(4328);t.exports=function(t,e){return arguments.length<2?(n=r[t],o(n)?n:void 0):r[t]&&r[t][e];var n}},6752:function(t){t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},4504:function(t,e,n){var r=n(8952),o=n(9760);t.exports=function(t,e){var n=t[e];return o(n)?void 0:r(n)}},6420:function(t,e,n){var r=function(t){return t&&t.Math===Math&&t};t.exports=r(\"object\"==typeof globalThis&&globalThis)||r(\"object\"==typeof window&&window)||r(\"object\"==typeof self&&self)||r(\"object\"==typeof n.g&&n.g)||r(\"object\"==typeof this&&this)||function(){return this}()||Function(\"return this\")()},5152:function(t,e,n){var r=n(1664),o=n(4356),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},2560:function(t){t.exports={}},4168:function(t,e,n){var r=n(5232);t.exports=r(\"document\",\"documentElement\")},9888:function(t,e,n){var r=n(3476),o=n(9957),i=n(8168);t.exports=!r&&!o((function(){return 7!==Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},5712:function(t,e,n){var r=n(1664),o=n(9957),i=n(1888),u=Object,a=r(\"\".split);t.exports=o((function(){return!u(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"===i(t)?a(t,\"\"):u(t)}:u},7512:function(t,e,n){var r=n(4328),o=n(1632),i=n(4024);t.exports=function(t,e,n){var u,a;return i&&r(u=e.constructor)&&u!==n&&o(a=u.prototype)&&a!==n.prototype&&i(t,a),t}},9112:function(t,e,n){var r=n(1664),o=n(4328),i=n(3976),u=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return u(t)}),t.exports=i.inspectSource},3480:function(t,e,n){var r=n(1632),o=n(3440);t.exports=function(t,e){r(e)&&\"cause\"in e&&o(t,\"cause\",e.cause)}},9104:function(t,e,n){var r,o,i,u=n(4288),a=n(6420),c=n(1632),s=n(3440),l=n(5152),f=n(3976),p=n(6504),d=n(2560),h=\"Object already initialized\",v=a.TypeError,m=a.WeakMap;if(u||f.state){var y=f.state||(f.state=new m);y.get=y.get,y.has=y.has,y.set=y.set,r=function(t,e){if(y.has(t))throw new v(h);return e.facade=t,y.set(t,e),e},o=function(t){return y.get(t)||{}},i=function(t){return y.has(t)}}else{var g=p(\"state\");d[g]=!0,r=function(t,e){if(l(t,g))throw new v(h);return e.facade=t,s(t,g,e),e},o=function(t){return l(t,g)?t[g]:{}},i=function(t){return l(t,g)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw new v(\"Incompatible receiver, \"+t+\" required\");return n}}}},1432:function(t,e,n){var r=n(1888);t.exports=Array.isArray||function(t){return\"Array\"===r(t)}},4328:function(t){var e=\"object\"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return\"function\"==typeof t||t===e}:function(t){return\"function\"==typeof t}},6072:function(t,e,n){var r=n(1664),o=n(9957),i=n(4328),u=n(4427),a=n(5232),c=n(9112),s=function(){},l=a(\"Reflect\",\"construct\"),f=/^\\s*(?:class|function)\\b/,p=r(f.exec),d=!f.test(s),h=function(t){if(!i(t))return!1;try{return l(s,[],t),!0}catch(e){return!1}},v=function(t){if(!i(t))return!1;switch(u(t)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return d||!!p(f,c(t))}catch(e){return!0}};v.sham=!0,t.exports=!l||o((function(){var t;return h(h.call)||!h(Object)||!h((function(){t=!0}))||t}))?v:h},6704:function(t,e,n){var r=n(9957),o=n(4328),i=/#|\\.prototype\\./,u=function(t,e){var n=c[a(t)];return n===l||n!==s&&(o(e)?r(e):!!e)},a=u.normalize=function(t){return String(t).replace(i,\".\").toLowerCase()},c=u.data={},s=u.NATIVE=\"N\",l=u.POLYFILL=\"P\";t.exports=u},9760:function(t){t.exports=function(t){return null==t}},1632:function(t,e,n){var r=n(4328);t.exports=function(t){return\"object\"==typeof t?null!==t:r(t)}},2424:function(t,e,n){var r=n(1632);t.exports=function(t){return r(t)||null===t}},7048:function(t){t.exports=!1},7728:function(t,e,n){var r=n(5232),o=n(4328),i=n(7e3),u=n(6536),a=Object;t.exports=u?function(t){return\"symbol\"==typeof t}:function(t){var e=r(\"Symbol\");return o(e)&&i(e.prototype,a(t))}},3112:function(t,e,n){var r=n(8448),o=n(3951),i=n(4504);t.exports=function(t,e,n){var u,a;o(t);try{if(!(u=i(t,\"return\"))){if(\"throw\"===e)throw n;return n}u=r(u,t)}catch(c){a=!0,u=c}if(\"throw\"===e)throw n;if(a)throw u;return o(u),n}},9724:function(t,e,n){var r=n(8448),o=n(9368),i=n(3440),u=n(4036),a=n(9972),c=n(9104),s=n(4504),l=n(336).IteratorPrototype,f=n(3336),p=n(3112),d=a(\"toStringTag\"),h=\"IteratorHelper\",v=\"WrapForValidIterator\",m=c.set,y=function(t){var e=c.getterFor(t?v:h);return u(o(l),{next:function(){var n=e(this);if(t)return n.nextHandler();try{var r=n.done?void 0:n.nextHandler();return f(r,n.done)}catch(o){throw n.done=!0,o}},return:function(){var n=e(this),o=n.iterator;if(n.done=!0,t){var i=s(o,\"return\");return i?r(i,o):f(void 0,!0)}if(n.inner)try{p(n.inner.iterator,\"normal\")}catch(u){return p(o,\"throw\",u)}return p(o,\"normal\"),f(void 0,!0)}})},g=y(!0),b=y(!1);i(b,d,\"Iterator Helper\"),t.exports=function(t,e){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=e?v:h,r.nextHandler=t,r.counter=0,r.done=!1,m(this,r)};return n.prototype=e?g:b,n}},5792:function(t,e,n){var r=n(8448),o=n(8952),i=n(3951),u=n(6752),a=n(9724),c=n(8696),s=a((function(){var t=this.iterator,e=i(r(this.next,t));if(!(this.done=!!e.done))return c(t,this.mapper,[e.value,this.counter++],!0)}));t.exports=function(t){return i(this),o(t),new s(u(this),{mapper:t})}},336:function(t,e,n){var r,o,i,u=n(9957),a=n(4328),c=n(1632),s=n(9368),l=n(7796),f=n(6076),p=n(9972),d=n(7048),h=p(\"iterator\"),v=!1;[].keys&&(\"next\"in(i=[].keys())?(o=l(l(i)))!==Object.prototype&&(r=o):v=!0),!c(r)||u((function(){var t={};return r[h].call(t)!==t}))?r={}:d&&(r=s(r)),a(r[h])||f(r,h,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:v}},3556:function(t,e,n){var r=n(7584);t.exports=function(t){return r(t.length)}},5312:function(t,e,n){var r=n(1664),o=n(9957),i=n(4328),u=n(5152),a=n(3476),c=n(6208).CONFIGURABLE,s=n(9112),l=n(9104),f=l.enforce,p=l.get,d=String,h=Object.defineProperty,v=r(\"\".slice),m=r(\"\".replace),y=r([].join),g=a&&!o((function(){return 8!==h((function(){}),\"length\",{value:8}).length})),b=String(String).split(\"String\"),x=t.exports=function(t,e,n){\"Symbol(\"===v(d(e),0,7)&&(e=\"[\"+m(d(e),/^Symbol\\(([^)]*)\\).*$/,\"$1\")+\"]\"),n&&n.getter&&(e=\"get \"+e),n&&n.setter&&(e=\"set \"+e),(!u(t,\"name\")||c&&t.name!==e)&&(a?h(t,\"name\",{value:e,configurable:!0}):t.name=e),g&&n&&u(n,\"arity\")&&t.length!==n.arity&&h(t,\"length\",{value:n.arity});try{n&&u(n,\"constructor\")&&n.constructor?a&&h(t,\"prototype\",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(o){}var r=f(t);return u(r,\"source\")||(r.source=y(b,\"string\"==typeof e?e:\"\")),t};Function.prototype.toString=x((function(){return i(this)&&p(this).source||s(this)}),\"toString\")},1748:function(t){var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},8948:function(t,e,n){var r=n(5016);t.exports=function(t,e){return void 0===t?arguments.length<2?\"\":e:r(t)}},9292:function(t,e,n){var r=n(3476),o=n(1664),i=n(8448),u=n(9957),a=n(1531),c=n(9392),s=n(8912),l=n(4356),f=n(5712),p=Object.assign,d=Object.defineProperty,h=o([].concat);t.exports=!p||u((function(){if(r&&1!==p({b:1},p(d({},\"a\",{enumerable:!0,get:function(){d(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(\"assign detection\"),o=\"abcdefghijklmnopqrst\";return t[n]=7,o.split(\"\").forEach((function(t){e[t]=t})),7!==p({},t)[n]||a(p({},e)).join(\"\")!==o}))?function(t,e){for(var n=l(t),o=arguments.length,u=1,p=c.f,d=s.f;o>u;)for(var v,m=f(arguments[u++]),y=p?h(a(m),p(m)):a(m),g=y.length,b=0;g>b;)v=y[b++],r&&!i(d,m,v)||(n[v]=m[v]);return n}:p},9368:function(t,e,n){var r,o=n(3951),i=n(2056),u=n(8256),a=n(2560),c=n(4168),s=n(8168),l=n(6504),f=\"prototype\",p=\"script\",d=l(\"IE_PROTO\"),h=function(){},v=function(t){return\"<\"+p+\">\"+t+\"</\"+p+\">\"},m=function(t){t.write(v(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){try{r=new ActiveXObject(\"htmlfile\")}catch(i){}var t,e,n;y=\"undefined\"!=typeof document?document.domain&&r?m(r):(e=s(\"iframe\"),n=\"java\"+p+\":\",e.style.display=\"none\",c.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(v(\"document.F=Object\")),t.close(),t.F):m(r);for(var o=u.length;o--;)delete y[f][u[o]];return y()};a[d]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(h[f]=o(t),n=new h,h[f]=null,n[d]=t):n=y(),void 0===e?n:i.f(n,e)}},2056:function(t,e,n){var r=n(3476),o=n(1576),i=n(8352),u=n(3951),a=n(4096),c=n(1531);e.f=r&&!o?Object.defineProperties:function(t,e){u(t);for(var n,r=a(e),o=c(e),s=o.length,l=0;s>l;)i.f(t,n=o[l++],r[n]);return t}},8352:function(t,e,n){var r=n(3476),o=n(9888),i=n(1576),u=n(3951),a=n(88),c=TypeError,s=Object.defineProperty,l=Object.getOwnPropertyDescriptor,f=\"enumerable\",p=\"configurable\",d=\"writable\";e.f=r?i?function(t,e,n){if(u(t),e=a(e),u(n),\"function\"==typeof t&&\"prototype\"===e&&\"value\"in n&&d in n&&!n[d]){var r=l(t,e);r&&r[d]&&(t[e]=n.value,n={configurable:p in n?n[p]:r[p],enumerable:f in n?n[f]:r[f],writable:!1})}return s(t,e,n)}:s:function(t,e,n){if(u(t),e=a(e),u(n),o)try{return s(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw new c(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},9444:function(t,e,n){var r=n(3476),o=n(8448),i=n(8912),u=n(9728),a=n(4096),c=n(88),s=n(5152),l=n(9888),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e),l)try{return f(t,e)}catch(n){}if(s(t,e))return u(!o(i.f,t,e),t[e])}},5048:function(t,e,n){var r=n(9008),o=n(8256).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},9392:function(t,e){e.f=Object.getOwnPropertySymbols},7796:function(t,e,n){var r=n(5152),o=n(4328),i=n(4356),u=n(6504),a=n(2272),c=u(\"IE_PROTO\"),s=Object,l=s.prototype;t.exports=a?s.getPrototypeOf:function(t){var e=i(t);if(r(e,c))return e[c];var n=e.constructor;return o(n)&&e instanceof n?n.prototype:e instanceof s?l:null}},7e3:function(t,e,n){var r=n(1664);t.exports=r({}.isPrototypeOf)},9008:function(t,e,n){var r=n(1664),o=n(5152),i=n(4096),u=n(2504).indexOf,a=n(2560),c=r([].push);t.exports=function(t,e){var n,r=i(t),s=0,l=[];for(n in r)!o(a,n)&&o(r,n)&&c(l,n);for(;e.length>s;)o(r,n=e[s++])&&(~u(l,n)||c(l,n));return l}},1531:function(t,e,n){var r=n(9008),o=n(8256);t.exports=Object.keys||function(t){return r(t,o)}},8912:function(t,e){var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},4024:function(t,e,n){var r=n(5288),o=n(3951),i=n(2096);t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=r(Object.prototype,\"__proto__\",\"set\"))(n,[]),e=n instanceof Array}catch(u){}return function(n,r){return o(n),i(r),e?t(n,r):n.__proto__=r,n}}():void 0)},7032:function(t,e,n){var r=n(16),o=n(4427);t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},2104:function(t,e,n){var r=n(8448),o=n(4328),i=n(1632),u=TypeError;t.exports=function(t,e){var n,a;if(\"string\"===e&&o(n=t.toString)&&!i(a=r(n,t)))return a;if(o(n=t.valueOf)&&!i(a=r(n,t)))return a;if(\"string\"!==e&&o(n=t.toString)&&!i(a=r(n,t)))return a;throw new u(\"Can't convert object to primitive value\")}},9252:function(t,e,n){var r=n(5232),o=n(1664),i=n(5048),u=n(9392),a=n(3951),c=o([].concat);t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=i.f(a(t)),n=u.f;return n?c(e,n(t)):e}},584:function(t,e,n){var r=n(8352).f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},9092:function(t,e,n){var r=n(8448),o=n(3951),i=n(4328),u=n(1888),a=n(7680),c=TypeError;t.exports=function(t,e){var n=t.exec;if(i(n)){var s=r(n,t,e);return null!==s&&o(s),s}if(\"RegExp\"===u(t))return r(a,t,e);throw new c(\"RegExp#exec called on incompatible receiver\")}},7680:function(t,e,n){var r,o,i=n(8448),u=n(1664),a=n(5016),c=n(8872),s=n(3548),l=n(4696),f=n(9368),p=n(9104).get,d=n(8e3),h=n(9124),v=l(\"native-string-replace\",String.prototype.replace),m=RegExp.prototype.exec,y=m,g=u(\"\".charAt),b=u(\"\".indexOf),x=u(\"\".replace),w=u(\"\".slice),O=(o=/b*/g,i(m,r=/a/,\"a\"),i(m,o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),_=s.BROKEN_CARET,S=void 0!==/()??/.exec(\"\")[1];(O||S||_||d||h)&&(y=function(t){var e,n,r,o,u,s,l,d=this,h=p(d),C=a(t),E=h.raw;if(E)return E.lastIndex=d.lastIndex,e=i(y,E,C),d.lastIndex=E.lastIndex,e;var I=h.groups,j=_&&d.sticky,A=i(c,d),P=d.source,N=0,k=C;if(j&&(A=x(A,\"y\",\"\"),-1===b(A,\"g\")&&(A+=\"g\"),k=w(C,d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&\"\\n\"!==g(C,d.lastIndex-1))&&(P=\"(?: \"+P+\")\",k=\" \"+k,N++),n=new RegExp(\"^(?:\"+P+\")\",A)),S&&(n=new RegExp(\"^\"+P+\"$(?!\\\\s)\",A)),O&&(r=d.lastIndex),o=i(m,j?n:d,k),j?o?(o.input=w(o.input,N),o[0]=w(o[0],N),o.index=d.lastIndex,d.lastIndex+=o[0].length):d.lastIndex=0:O&&o&&(d.lastIndex=d.global?o.index+o[0].length:r),S&&o&&o.length>1&&i(v,o[0],n,(function(){for(u=1;u<arguments.length-2;u++)void 0===arguments[u]&&(o[u]=void 0)})),o&&I)for(o.groups=s=f(null),u=0;u<I.length;u++)s[(l=I[u])[0]]=o[l[1]];return o}),t.exports=y},8872:function(t,e,n){var r=n(3951);t.exports=function(){var t=r(this),e=\"\";return t.hasIndices&&(e+=\"d\"),t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.unicodeSets&&(e+=\"v\"),t.sticky&&(e+=\"y\"),e}},3548:function(t,e,n){var r=n(9957),o=n(6420).RegExp,i=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!==t.exec(\"abcd\")})),u=i||r((function(){return!o(\"a\",\"y\").sticky})),a=i||r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!==t.exec(\"str\")}));t.exports={BROKEN_CARET:a,MISSED_STICKY:u,UNSUPPORTED_Y:i}},8e3:function(t,e,n){var r=n(9957),o=n(6420).RegExp;t.exports=r((function(){var t=o(\".\",\"s\");return!(t.dotAll&&t.test(\"\\n\")&&\"s\"===t.flags)}))},9124:function(t,e,n){var r=n(9957),o=n(6420).RegExp;t.exports=r((function(){var t=o(\"(?<a>b)\",\"g\");return\"b\"!==t.exec(\"b\").groups.a||\"bc\"!==\"b\".replace(t,\"$<a>c\")}))},5436:function(t,e,n){var r=n(9760),o=TypeError;t.exports=function(t){if(r(t))throw new o(\"Can't call method on \"+t);return t}},6504:function(t,e,n){var r=n(4696),o=n(7776),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},3976:function(t,e,n){var r=n(7048),o=n(6420),i=n(4636),u=\"__core-js_shared__\",a=t.exports=o[u]||i(u,{});(a.versions||(a.versions=[])).push({version:\"3.36.0\",mode:r?\"pure\":\"global\",copyright:\"© 2014-2024 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.36.0/LICENSE\",source:\"https://github.com/zloirock/core-js\"})},4696:function(t,e,n){var r=n(3976);t.exports=function(t,e){return r[t]||(r[t]=e||{})}},9764:function(t,e,n){var r=n(1664),o=n(6180),i=n(5016),u=n(5436),a=r(\"\".charAt),c=r(\"\".charCodeAt),s=r(\"\".slice),l=function(t){return function(e,n){var r,l,f=i(u(e)),p=o(n),d=f.length;return p<0||p>=d?t?\"\":void 0:(r=c(f,p))<55296||r>56319||p+1===d||(l=c(f,p+1))<56320||l>57343?t?a(f,p):r:t?s(f,p,p+2):l-56320+(r-55296<<10)+65536}};t.exports={codeAt:l(!1),charAt:l(!0)}},772:function(t,e,n){var r=n(8504),o=n(9957),i=n(6420).String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol(\"symbol detection\");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},2495:function(t,e,n){var r=n(6180),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},4096:function(t,e,n){var r=n(5712),o=n(5436);t.exports=function(t){return r(o(t))}},6180:function(t,e,n){var r=n(1748);t.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}},7584:function(t,e,n){var r=n(6180),o=Math.min;t.exports=function(t){var e=r(t);return e>0?o(e,9007199254740991):0}},4356:function(t,e,n){var r=n(5436),o=Object;t.exports=function(t){return o(r(t))}},7024:function(t,e,n){var r=n(8448),o=n(1632),i=n(7728),u=n(4504),a=n(2104),c=n(9972),s=TypeError,l=c(\"toPrimitive\");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,c=u(t,l);if(c){if(void 0===e&&(e=\"default\"),n=r(c,t,e),!o(n)||i(n))return n;throw new s(\"Can't convert object to primitive value\")}return void 0===e&&(e=\"number\"),a(t,e)}},88:function(t,e,n){var r=n(7024),o=n(7728);t.exports=function(t){var e=r(t,\"string\");return o(e)?e:e+\"\"}},16:function(t,e,n){var r={};r[n(9972)(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},5016:function(t,e,n){var r=n(4427),o=String;t.exports=function(t){if(\"Symbol\"===r(t))throw new TypeError(\"Cannot convert a Symbol value to a string\");return o(t)}},36:function(t){var e=String;t.exports=function(t){try{return e(t)}catch(n){return\"Object\"}}},7776:function(t,e,n){var r=n(1664),o=0,i=Math.random(),u=r(1..toString);t.exports=function(t){return\"Symbol(\"+(void 0===t?\"\":t)+\")_\"+u(++o+i,36)}},6536:function(t,e,n){var r=n(772);t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},1576:function(t,e,n){var r=n(3476),o=n(9957);t.exports=r&&o((function(){return 42!==Object.defineProperty((function(){}),\"prototype\",{value:42,writable:!1}).prototype}))},4288:function(t,e,n){var r=n(6420),o=n(4328),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},9972:function(t,e,n){var r=n(6420),o=n(4696),i=n(5152),u=n(7776),a=n(772),c=n(6536),s=r.Symbol,l=o(\"wks\"),f=c?s.for||s:s&&s.withoutSetter||u;t.exports=function(t){return i(l,t)||(l[t]=a&&i(s,t)?s[t]:f(\"Symbol.\"+t)),l[t]}},6488:function(t,e,n){var r=n(5232),o=n(5152),i=n(3440),u=n(7e3),a=n(4024),c=n(9968),s=n(584),l=n(7512),f=n(8948),p=n(3480),d=n(3696),h=n(3476),v=n(7048);t.exports=function(t,e,n,m){var y=\"stackTraceLimit\",g=m?2:1,b=t.split(\".\"),x=b[b.length-1],w=r.apply(null,b);if(w){var O=w.prototype;if(!v&&o(O,\"cause\")&&delete O.cause,!n)return w;var _=r(\"Error\"),S=e((function(t,e){var n=f(m?e:t,void 0),r=m?new w(t):new w;return void 0!==n&&i(r,\"message\",n),d(r,S,r.stack,2),this&&u(O,this)&&l(r,this,S),arguments.length>g&&p(r,arguments[g]),r}));if(S.prototype=O,\"Error\"!==x?a?a(S,_):c(S,_,{name:!0}):h&&y in w&&(s(S,w,y),s(S,w,\"prepareStackTrace\")),c(S,w),!v)try{O.name!==x&&i(O,\"name\",x),O.constructor=S}catch(C){}return S}}},7476:function(t,e,n){var r=n(9160),o=n(9957),i=n(1432),u=n(1632),a=n(4356),c=n(3556),s=n(4316),l=n(92),f=n(2568),p=n(953),d=n(9972),h=n(8504),v=d(\"isConcatSpreadable\"),m=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),y=function(t){if(!u(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,arity:1,forced:!m||!p(\"concat\")},{concat:function(t){var e,n,r,o,i,u=a(this),p=f(u,0),d=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?u:arguments[e]))for(o=c(i),s(d+o),n=0;n<o;n++,d++)n in i&&l(p,d,i[n]);else s(d+1),l(p,d++,i);return p.length=d,p}})},6932:function(t,e,n){var r=n(9160),o=n(3364).filter;r({target:\"Array\",proto:!0,forced:!n(953)(\"filter\")},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},700:function(t,e,n){var r=n(9160),o=n(1664),i=n(5712),u=n(4096),a=n(1496),c=o([].join);r({target:\"Array\",proto:!0,forced:i!==Object||!a(\"join\",\",\")},{join:function(t){return c(u(this),void 0===t?\",\":t)}})},4456:function(t,e,n){var r=n(9160),o=n(3364).map;r({target:\"Array\",proto:!0,forced:!n(953)(\"map\")},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},4728:function(t,e,n){var r=n(9160),o=n(4356),i=n(3556),u=n(6728),a=n(4316);r({target:\"Array\",proto:!0,arity:1,forced:n(9957)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],\"length\",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var e=o(this),n=i(e),r=arguments.length;a(n+r);for(var c=0;c<r;c++)e[n]=arguments[c],n++;return u(e,n),n}})},8752:function(t,e,n){var r=n(9160),o=n(6420),i=n(908),u=n(6488),a=\"WebAssembly\",c=o[a],s=7!==new Error(\"e\",{cause:7}).cause,l=function(t,e){var n={};n[t]=u(t,e,s),r({global:!0,constructor:!0,arity:1,forced:s},n)},f=function(t,e){if(c&&c[t]){var n={};n[t]=u(a+\".\"+t,e,s),r({target:a,stat:!0,constructor:!0,arity:1,forced:s},n)}};l(\"Error\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"EvalError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"RangeError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"ReferenceError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"SyntaxError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"TypeError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"URIError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"CompileError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"LinkError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"RuntimeError\",(function(t){return function(e){return i(t,this,arguments)}}))},508:function(t,e,n){var r=n(3476),o=n(6208).EXISTS,i=n(1664),u=n(2544),a=Function.prototype,c=i(a.toString),s=/function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/,l=i(s.exec);r&&!o&&u(a,\"name\",{configurable:!0,get:function(){try{return l(s,c(this))[1]}catch(t){return\"\"}}})},232:function(t,e,n){var r=n(9160),o=n(9292);r({target:\"Object\",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},5443:function(t,e,n){var r=n(16),o=n(6076),i=n(7032);r||o(Object.prototype,\"toString\",i,{unsafe:!0})},880:function(t,e,n){var r=n(9160),o=n(7680);r({target:\"RegExp\",proto:!0,forced:/./.exec!==o},{exec:o})},9836:function(t,e,n){var r=n(8448),o=n(7176),i=n(3951),u=n(9760),a=n(7584),c=n(5016),s=n(5436),l=n(4504),f=n(4764),p=n(9092);o(\"match\",(function(t,e,n){return[function(e){var n=s(this),o=u(e)?void 0:l(e,t);return o?r(o,e,n):new RegExp(e)[t](c(n))},function(t){var r=i(this),o=c(t),u=n(e,r,o);if(u.done)return u.value;if(!r.global)return p(r,o);var s=r.unicode;r.lastIndex=0;for(var l,d=[],h=0;null!==(l=p(r,o));){var v=c(l[0]);d[h]=v,\"\"===v&&(r.lastIndex=f(o,a(r.lastIndex),s)),h++}return 0===h?null:d}]}))},3536:function(t,e,n){var r=n(9160),o=n(6420),i=n(6100),u=n(3951),a=n(4328),c=n(7796),s=n(2544),l=n(92),f=n(9957),p=n(5152),d=n(9972),h=n(336).IteratorPrototype,v=n(3476),m=n(7048),y=\"constructor\",g=\"Iterator\",b=d(\"toStringTag\"),x=TypeError,w=o[g],O=m||!a(w)||w.prototype!==h||!f((function(){w({})})),_=function(){if(i(this,h),c(this)===h)throw new x(\"Abstract class Iterator not directly constructable\")},S=function(t,e){v?s(h,t,{configurable:!0,get:function(){return e},set:function(e){if(u(this),this===h)throw new x(\"You can't redefine this property\");p(this,t)?this[t]=e:l(this,t,e)}}):h[t]=e};p(h,b)||S(b,g),!O&&p(h,y)&&h[y]!==Object||S(y,_),_.prototype=h,r({global:!0,constructor:!0,forced:O},{Iterator:_})},2144:function(t,e,n){var r=n(9160),o=n(8448),i=n(8952),u=n(3951),a=n(6752),c=n(9724),s=n(8696),l=n(7048),f=c((function(){for(var t,e,n=this.iterator,r=this.predicate,i=this.next;;){if(t=u(o(i,n)),this.done=!!t.done)return;if(e=t.value,s(n,r,[e,this.counter++],!0))return e}}));r({target:\"Iterator\",proto:!0,real:!0,forced:l},{filter:function(t){return u(this),i(t),new f(a(this),{predicate:t})}})},9080:function(t,e,n){var r=n(9160),o=n(5792);r({target:\"Iterator\",proto:!0,real:!0,forced:n(7048)},{map:o})}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r].call(i.exports,i,i.exports,n),i.exports}n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(t){if(\"object\"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};var r={};return function(){n.d(r,{default:function(){return Q}});n(8752),n(6932),n(4456),n(508),n(232),n(5443),n(3536),n(2144),n(9080);var t=function(){},e={},o=[],i=[];function u(n,r){var u,a,c,s,l=i;for(s=arguments.length;s-- >2;)o.push(arguments[s]);for(r&&null!=r.children&&(o.length||o.push(r.children),delete r.children);o.length;)if((a=o.pop())&&void 0!==a.pop)for(s=a.length;s--;)o.push(a[s]);else\"boolean\"==typeof a&&(a=null),(c=\"function\"!=typeof n)&&(null==a?a=\"\":\"number\"==typeof a?a=String(a):\"string\"!=typeof a&&(c=!1)),c&&u?l[l.length-1]+=a:l===i?l=[a]:l.push(a),u=c;var f=new t;return f.nodeName=n,f.children=l,f.attributes=null==r?void 0:r,f.key=null==r?void 0:r.key,void 0!==e.vnode&&e.vnode(f),f}function a(t,e){for(var n in e)t[n]=e[n];return t}function c(t,e){t&&(\"function\"==typeof t?t(e):t.current=e)}var s=\"function\"==typeof Promise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;var l=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,f=[];function p(t){!t._dirty&&(t._dirty=!0)&&1==f.push(t)&&(e.debounceRendering||s)(d)}function d(){for(var t;t=f.pop();)t._dirty&&T(t)}function h(t,e,n){return\"string\"==typeof e||\"number\"==typeof e?void 0!==t.splitText:\"string\"==typeof e.nodeName?!t._componentConstructor&&v(t,e.nodeName):n||t._componentConstructor===e.nodeName}function v(t,e){return t.normalizedNodeName===e||t.nodeName.toLowerCase()===e.toLowerCase()}function m(t){var e=a({},t.attributes);e.children=t.children;var n=t.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===e[r]&&(e[r]=n[r]);return e}function y(t){var e=t.parentNode;e&&e.removeChild(t)}function g(t,e,n,r,o){if(\"className\"===e&&(e=\"class\"),\"key\"===e);else if(\"ref\"===e)c(n,null),c(r,t);else if(\"class\"!==e||o)if(\"style\"===e){if(r&&\"string\"!=typeof r&&\"string\"!=typeof n||(t.style.cssText=r||\"\"),r&&\"object\"==typeof r){if(\"string\"!=typeof n)for(var i in n)i in r||(t.style[i]=\"\");for(var i in r)t.style[i]=\"number\"==typeof r[i]&&!1===l.test(i)?r[i]+\"px\":r[i]}}else if(\"dangerouslySetInnerHTML\"===e)r&&(t.innerHTML=r.__html||\"\");else if(\"o\"==e[0]&&\"n\"==e[1]){var u=e!==(e=e.replace(/Capture$/,\"\"));e=e.toLowerCase().substring(2),r?n||t.addEventListener(e,b,u):t.removeEventListener(e,b,u),(t._listeners||(t._listeners={}))[e]=r}else if(\"list\"!==e&&\"type\"!==e&&!o&&e in t){try{t[e]=null==r?\"\":r}catch(s){}null!=r&&!1!==r||\"spellcheck\"==e||t.removeAttribute(e)}else{var a=o&&e!==(e=e.replace(/^xlink:?/,\"\"));null==r||!1===r?a?t.removeAttributeNS(\"http://www.w3.org/1999/xlink\",e.toLowerCase()):t.removeAttribute(e):\"function\"!=typeof r&&(a?t.setAttributeNS(\"http://www.w3.org/1999/xlink\",e.toLowerCase(),r):t.setAttribute(e,r))}else t.className=r||\"\"}function b(t){return this._listeners[t.type](e.event&&e.event(t)||t)}var x=[],w=0,O=!1,_=!1;function S(){for(var t;t=x.shift();)e.afterMount&&e.afterMount(t),t.componentDidMount&&t.componentDidMount()}function C(t,e,n,r,o,i){w++||(O=null!=o&&void 0!==o.ownerSVGElement,_=null!=t&&!(\"__preactattr_\"in t));var u=E(t,e,n,r,i);return o&&u.parentNode!==o&&o.appendChild(u),--w||(_=!1,i||S()),u}function E(t,e,n,r,o){var i=t,u=O;if(null!=e&&\"boolean\"!=typeof e||(e=\"\"),\"string\"==typeof e||\"number\"==typeof e)return t&&void 0!==t.splitText&&t.parentNode&&(!t._component||o)?t.nodeValue!=e&&(t.nodeValue=e):(i=document.createTextNode(e),t&&(t.parentNode&&t.parentNode.replaceChild(i,t),I(t,!0))),i.__preactattr_=!0,i;var a,c,s=e.nodeName;if(\"function\"==typeof s)return function(t,e,n,r){var o=t&&t._component,i=o,u=t,a=o&&t._componentConstructor===e.nodeName,c=a,s=m(e);for(;o&&!c&&(o=o._parentComponent);)c=o.constructor===e.nodeName;o&&c&&(!r||o._component)?(k(o,s,3,n,r),t=o.base):(i&&!a&&(R(i),t=u=null),o=P(e.nodeName,s,n),t&&!o.nextBase&&(o.nextBase=t,u=null),k(o,s,1,n,r),t=o.base,u&&t!==u&&(u._component=null,I(u,!1)));return t}(t,e,n,r);if(O=\"svg\"===s||\"foreignObject\"!==s&&O,s=String(s),(!t||!v(t,s))&&(a=s,(c=O?document.createElementNS(\"http://www.w3.org/2000/svg\",a):document.createElement(a)).normalizedNodeName=a,i=c,t)){for(;t.firstChild;)i.appendChild(t.firstChild);t.parentNode&&t.parentNode.replaceChild(i,t),I(t,!0)}var l=i.firstChild,f=i.__preactattr_,p=e.children;if(null==f){f=i.__preactattr_={};for(var d=i.attributes,b=d.length;b--;)f[d[b].name]=d[b].value}return!_&&p&&1===p.length&&\"string\"==typeof p[0]&&null!=l&&void 0!==l.splitText&&null==l.nextSibling?l.nodeValue!=p[0]&&(l.nodeValue=p[0]):(p&&p.length||null!=l)&&function(t,e,n,r,o){var i,u,a,c,s,l=t.childNodes,f=[],p={},d=0,v=0,m=l.length,g=0,b=e?e.length:0;if(0!==m)for(var x=0;x<m;x++){var w=l[x],O=w.__preactattr_;null!=(_=b&&O?w._component?w._component.__key:O.key:null)?(d++,p[_]=w):(O||(void 0!==w.splitText?!o||w.nodeValue.trim():o))&&(f[g++]=w)}if(0!==b)for(x=0;x<b;x++){var _;if(s=null,null!=(_=(c=e[x]).key))d&&void 0!==p[_]&&(s=p[_],p[_]=void 0,d--);else if(v<g)for(i=v;i<g;i++)if(void 0!==f[i]&&h(u=f[i],c,o)){s=u,f[i]=void 0,i===g-1&&g--,i===v&&v++;break}s=E(s,c,n,r),a=l[x],s&&s!==t&&s!==a&&(null==a?t.appendChild(s):s===a.nextSibling?y(a):t.insertBefore(s,a))}if(d)for(var x in p)void 0!==p[x]&&I(p[x],!1);for(;v<=g;)void 0!==(s=f[g--])&&I(s,!1)}(i,p,n,r,_||null!=f.dangerouslySetInnerHTML),function(t,e,n){var r;for(r in n)e&&null!=e[r]||null==n[r]||g(t,r,n[r],n[r]=void 0,O);for(r in e)\"children\"===r||\"innerHTML\"===r||r in n&&e[r]===(\"value\"===r||\"checked\"===r?t[r]:n[r])||g(t,r,n[r],n[r]=e[r],O)}(i,e.attributes,f),O=u,i}function I(t,e){var n=t._component;n?R(n):(null!=t.__preactattr_&&c(t.__preactattr_.ref,null),!1!==e&&null!=t.__preactattr_||y(t),j(t))}function j(t){for(t=t.lastChild;t;){var e=t.previousSibling;I(t,!0),t=e}}var A=[];function P(t,e,n){var r,o=A.length;for(t.prototype&&t.prototype.render?(r=new t(e,n),M.call(r,e,n)):((r=new M(e,n)).constructor=t,r.render=N);o--;)if(A[o].constructor===t)return r.nextBase=A[o].nextBase,A.splice(o,1),r;return r}function N(t,e,n){return this.constructor(t,n)}function k(t,n,r,o,i){t._disable||(t._disable=!0,t.__ref=n.ref,t.__key=n.key,delete n.ref,delete n.key,void 0===t.constructor.getDerivedStateFromProps&&(!t.base||i?t.componentWillMount&&t.componentWillMount():t.componentWillReceiveProps&&t.componentWillReceiveProps(n,o)),o&&o!==t.context&&(t.prevContext||(t.prevContext=t.context),t.context=o),t.prevProps||(t.prevProps=t.props),t.props=n,t._disable=!1,0!==r&&(1!==r&&!1===e.syncComponentUpdates&&t.base?p(t):T(t,1,i)),c(t.__ref,t))}function T(t,n,r,o){if(!t._disable){var i,u,c,s=t.props,l=t.state,f=t.context,p=t.prevProps||s,d=t.prevState||l,h=t.prevContext||f,v=t.base,y=t.nextBase,g=v||y,b=t._component,O=!1,_=h;if(t.constructor.getDerivedStateFromProps&&(l=a(a({},l),t.constructor.getDerivedStateFromProps(s,l)),t.state=l),v&&(t.props=p,t.state=d,t.context=h,2!==n&&t.shouldComponentUpdate&&!1===t.shouldComponentUpdate(s,l,f)?O=!0:t.componentWillUpdate&&t.componentWillUpdate(s,l,f),t.props=s,t.state=l,t.context=f),t.prevProps=t.prevState=t.prevContext=t.nextBase=null,t._dirty=!1,!O){i=t.render(s,l,f),t.getChildContext&&(f=a(a({},f),t.getChildContext())),v&&t.getSnapshotBeforeUpdate&&(_=t.getSnapshotBeforeUpdate(p,d));var E,j,A=i&&i.nodeName;if(\"function\"==typeof A){var N=m(i);(u=b)&&u.constructor===A&&N.key==u.__key?k(u,N,1,f,!1):(E=u,t._component=u=P(A,N,f),u.nextBase=u.nextBase||y,u._parentComponent=t,k(u,N,0,f,!1),T(u,1,r,!0)),j=u.base}else c=g,(E=b)&&(c=t._component=null),(g||1===n)&&(c&&(c._component=null),j=C(c,i,f,r||!v,g&&g.parentNode,!0));if(g&&j!==g&&u!==b){var M=g.parentNode;M&&j!==M&&(M.replaceChild(j,g),E||(g._component=null,I(g,!1)))}if(E&&R(E),t.base=j,j&&!o){for(var L=t,D=t;D=D._parentComponent;)(L=D).base=j;j._component=L,j._componentConstructor=L.constructor}}for(!v||r?x.push(t):O||(t.componentDidUpdate&&t.componentDidUpdate(p,d,_),e.afterUpdate&&e.afterUpdate(t));t._renderCallbacks.length;)t._renderCallbacks.pop().call(t);w||o||S()}}function R(t){e.beforeUnmount&&e.beforeUnmount(t);var n=t.base;t._disable=!0,t.componentWillUnmount&&t.componentWillUnmount(),t.base=null;var r=t._component;r?R(r):n&&(null!=n.__preactattr_&&c(n.__preactattr_.ref,null),t.nextBase=n,y(n),A.push(t),j(n)),c(t.__ref,null)}function M(t,e){this._dirty=!0,this.context=e,this.props=t,this.state=this.state||{},this._renderCallbacks=[]}function L(t,e,n){return C(n,t,{},!1,e,!1)}a(M.prototype,{setState:function(t,e){this.prevState||(this.prevState=this.state),this.state=a(a({},this.state),\"function\"==typeof t?t(this.state,this.props):t),e&&this._renderCallbacks.push(e),p(this)},forceUpdate:function(t){t&&this._renderCallbacks.push(t),T(this,2)},render:function(){}});n(700),n(4728),n(880),n(9836),n(7476);function D(t,e){return D=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},D(t,e)}var B=function(t){var e,n;function r(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).state={bump:!1,debounced:!1},e}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,D(e,n);var o=r.prototype;return o.componentWillMount=function(){var t,e,n,r,o=this;this.debounceStatusUpdate=(t=function(){if(!o.state.debounced){var t=!o.props.isInFocus||o.props.validChoiceMade;o.setState((function(e){return{bump:!e.bump,debounced:!0,silenced:t}}))}},e=1400,function(){var o=this,i=arguments,u=n&&!r;clearTimeout(r),r=setTimeout((function(){r=null,n||t.apply(o,i)}),e),u&&t.apply(o,i)})},o.componentWillReceiveProps=function(t){t.queryLength;this.setState({debounced:!1})},o.render=function(){var t=this.props,e=t.id,n=t.length,r=t.queryLength,o=t.minQueryLength,i=t.selectedOption,a=t.selectedOptionIndex,c=t.tQueryTooShort,s=t.tNoResults,l=t.tSelectedOption,f=t.tResults,p=t.className,d=this.state,h=d.bump,v=d.debounced,m=d.silenced,y=r<o,g=0===n,b=i?l(i,n,a):\"\",x=null;return x=y?c(o):g?s():f(n,b),this.debounceStatusUpdate(),u(\"div\",{className:p,style:{border:\"0\",clip:\"rect(0 0 0 0)\",height:\"1px\",marginBottom:\"-1px\",marginRight:\"-1px\",overflow:\"hidden\",padding:\"0\",position:\"absolute\",whiteSpace:\"nowrap\",width:\"1px\"}},u(\"div\",{id:e+\"__status--A\",role:\"status\",\"aria-atomic\":\"true\",\"aria-live\":\"polite\"},!m&&v&&h?x:\"\"),u(\"div\",{id:e+\"__status--B\",role:\"status\",\"aria-atomic\":\"true\",\"aria-live\":\"polite\"},m||!v||h?\"\":x))},r}(M);B.defaultProps={tQueryTooShort:function(t){return\"Type in \"+t+\" or more characters for results\"},tNoResults:function(){return\"No search results\"},tSelectedOption:function(t,e,n){return t+\" \"+(n+1)+\" of \"+e+\" is highlighted\"},tResults:function(t,e){return t+\" \"+(1===t?\"result\":\"results\")+\" \"+(1===t?\"is\":\"are\")+\" available. \"+e}};var F=function(t){return u(\"svg\",{version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",className:t.className,focusable:\"false\"},u(\"g\",{stroke:\"none\",fill:\"none\",\"fill-rule\":\"evenodd\"},u(\"polygon\",{fill:\"#000000\",points:\"0 0 22 0 11 17\"})))};function U(){return U=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},U.apply(this,arguments)}function V(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function q(t,e){return q=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},q(t,e)}var W={13:\"enter\",27:\"escape\",32:\"space\",38:\"up\",40:\"down\"};function H(){return\"undefined\"!=typeof navigator&&!(!navigator.userAgent.match(/(iPod|iPhone|iPad)/g)||!navigator.userAgent.match(/AppleWebKit/g))}var K=function(t){var e,n;function r(e){var n;return(n=t.call(this,e)||this).elementReferences={},n.state={focused:null,hovered:null,menuOpen:!1,options:e.defaultValue?[e.defaultValue]:[],query:e.defaultValue,validChoiceMade:!1,selected:null,ariaHint:!0},n.handleComponentBlur=n.handleComponentBlur.bind(V(n)),n.handleKeyDown=n.handleKeyDown.bind(V(n)),n.handleUpArrow=n.handleUpArrow.bind(V(n)),n.handleDownArrow=n.handleDownArrow.bind(V(n)),n.handleEnter=n.handleEnter.bind(V(n)),n.handlePrintableKey=n.handlePrintableKey.bind(V(n)),n.handleListMouseLeave=n.handleListMouseLeave.bind(V(n)),n.handleOptionBlur=n.handleOptionBlur.bind(V(n)),n.handleOptionClick=n.handleOptionClick.bind(V(n)),n.handleOptionFocus=n.handleOptionFocus.bind(V(n)),n.handleOptionMouseDown=n.handleOptionMouseDown.bind(V(n)),n.handleOptionMouseEnter=n.handleOptionMouseEnter.bind(V(n)),n.handleInputBlur=n.handleInputBlur.bind(V(n)),n.handleInputChange=n.handleInputChange.bind(V(n)),n.handleInputClick=n.handleInputClick.bind(V(n)),n.handleInputFocus=n.handleInputFocus.bind(V(n)),n.pollInputElement=n.pollInputElement.bind(V(n)),n.getDirectInputChanges=n.getDirectInputChanges.bind(V(n)),n}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,q(e,n);var o=r.prototype;return o.isQueryAnOption=function(t,e){var n=this;return-1!==e.map((function(t){return n.templateInputValue(t).toLowerCase()})).indexOf(t.toLowerCase())},o.componentDidMount=function(){this.pollInputElement()},o.componentWillUnmount=function(){clearTimeout(this.$pollInput)},o.pollInputElement=function(){var t=this;this.getDirectInputChanges(),this.$pollInput=setTimeout((function(){t.pollInputElement()}),100)},o.getDirectInputChanges=function(){var t=this.elementReferences[-1];t&&t.value!==this.state.query&&this.handleInputChange({target:{value:t.value}})},o.componentDidUpdate=function(t,e){var n=this.state.focused,r=null===n,o=e.focused!==n;o&&!r&&this.elementReferences[n].focus();var i=-1===n,u=o&&null===e.focused;if(i&&u){var a=this.elementReferences[n];a.setSelectionRange(0,a.value.length)}},o.hasAutoselect=function(){return!H()&&this.props.autoselect},o.templateInputValue=function(t){var e=this.props.templates&&this.props.templates.inputValue;return e?e(t):t},o.templateSuggestion=function(t){var e=this.props.templates&&this.props.templates.suggestion;return e?e(t):t},o.handleComponentBlur=function(t){var e,n=this.state,r=n.options,o=n.query,i=n.selected;this.props.confirmOnBlur?(e=t.query||o,this.props.onConfirm(r[i])):e=o,this.setState({focused:null,menuOpen:t.menuOpen||!1,query:e,selected:null,validChoiceMade:this.isQueryAnOption(e,r)})},o.handleListMouseLeave=function(t){this.setState({hovered:null})},o.handleOptionBlur=function(t,e){var n=this.state,r=n.focused,o=n.menuOpen,i=n.options,u=n.selected,a=null===t.relatedTarget,c=t.relatedTarget===this.elementReferences[-1],s=r!==e&&-1!==r;if(!s&&a||!(s||c)){var l=o&&H();this.handleComponentBlur({menuOpen:l,query:this.templateInputValue(i[u])})}},o.handleInputBlur=function(t){var e=this.state,n=e.focused,r=e.menuOpen,o=e.options,i=e.query,u=e.selected;if(!(-1!==n)){var a=r&&H(),c=H()?i:this.templateInputValue(o[u]);this.handleComponentBlur({menuOpen:a,query:c})}},o.handleInputChange=function(t){var e=this,n=this.props,r=n.minLength,o=n.source,i=n.showAllValues,u=this.hasAutoselect(),a=t.target.value,c=0===a.length,s=this.state.query!==a,l=a.length>=r;this.setState({query:a,ariaHint:c}),i||!c&&s&&l?o(a,(function(t){var n=t.length>0;e.setState({menuOpen:n,options:t,selected:u&&n?0:-1,validChoiceMade:!1})})):!c&&l||this.setState({menuOpen:!1,options:[]})},o.handleInputClick=function(t){this.handleInputChange(t)},o.handleInputFocus=function(t){var e=this.state,n=e.query,r=e.validChoiceMade,o=e.options,i=this.props.minLength,u=!r&&n.length>=i&&o.length>0;u?this.setState((function(t){var e=t.menuOpen;return{focused:-1,menuOpen:u||e,selected:-1}})):this.setState({focused:-1})},o.handleOptionFocus=function(t){this.setState({focused:t,hovered:null,selected:t})},o.handleOptionMouseEnter=function(t,e){H()||this.setState({hovered:e})},o.handleOptionClick=function(t,e){var n=this.state.options[e],r=this.templateInputValue(n);this.props.onConfirm(n),this.setState({focused:-1,hovered:null,menuOpen:!1,query:r,selected:-1,validChoiceMade:!0}),this.forceUpdate()},o.handleOptionMouseDown=function(t){t.preventDefault()},o.handleUpArrow=function(t){t.preventDefault();var e=this.state,n=e.menuOpen,r=e.selected;-1!==r&&n&&this.handleOptionFocus(r-1)},o.handleDownArrow=function(t){var e=this;if(t.preventDefault(),this.props.showAllValues&&!1===this.state.menuOpen)t.preventDefault(),this.props.source(\"\",(function(t){e.setState({menuOpen:!0,options:t,selected:0,focused:0,hovered:null})}));else if(!0===this.state.menuOpen){var n=this.state,r=n.menuOpen,o=n.options,i=n.selected;i!==o.length-1&&r&&this.handleOptionFocus(i+1)}},o.handleSpace=function(t){var e=this;this.props.showAllValues&&!1===this.state.menuOpen&&\"\"===this.state.query&&(t.preventDefault(),this.props.source(\"\",(function(t){e.setState({menuOpen:!0,options:t})}))),-1!==this.state.focused&&(t.preventDefault(),this.handleOptionClick(t,this.state.focused))},o.handleEnter=function(t){this.state.menuOpen&&(t.preventDefault(),this.state.selected>=0&&this.handleOptionClick(t,this.state.selected))},o.handlePrintableKey=function(t){var e=this.elementReferences[-1];t.target===e||e.focus()},o.handleKeyDown=function(t){switch(W[t.keyCode]){case\"up\":this.handleUpArrow(t);break;case\"down\":this.handleDownArrow(t);break;case\"space\":this.handleSpace(t);break;case\"enter\":this.handleEnter(t);break;case\"escape\":this.handleComponentBlur({query:this.state.query});break;default:((e=t.keyCode)>47&&e<58||32===e||8===e||e>64&&e<91||e>95&&e<112||e>185&&e<193||e>218&&e<223)&&this.handlePrintableKey(t)}var e},o.render=function(){var t,e=this,n=this.props,r=n.cssNamespace,o=n.displayMenu,i=n.id,a=n.minLength,c=n.name,s=n.placeholder,l=n.required,f=n.showAllValues,p=n.tNoResults,d=n.tStatusQueryTooShort,h=n.tStatusNoResults,v=n.tStatusSelectedOption,m=n.tStatusResults,y=n.tAssistiveHint,g=n.dropdownArrow,b=n.menuAttributes,x=n.inputClasses,w=n.hintClasses,O=n.menuClasses,_=this.state,S=_.focused,C=_.hovered,E=_.menuOpen,I=_.options,j=_.query,A=_.selected,P=_.ariaHint,N=_.validChoiceMade,k=this.hasAutoselect(),T=-1===S,R=0===I.length,M=0!==j.length,L=j.length>=a,D=this.props.showNoOptionsFound&&T&&R&&M&&L,F=r+\"__wrapper\",V=r+\"__status\",q=r+\"__dropdown-arrow-down\",W=-1!==S&&null!==S,K=r+\"__option\",z=r+\"__hint\",G=this.templateInputValue(I[A]),Q=G&&0===G.toLowerCase().indexOf(j.toLowerCase())&&k?j+G.substr(j.length):\"\",$=i+\"__assistiveHint\",Y={\"aria-describedby\":P?$:null,\"aria-expanded\":E?\"true\":\"false\",\"aria-activedescendant\":W?i+\"__option--\"+S:null,\"aria-controls\":i+\"__listbox\",\"aria-autocomplete\":this.hasAutoselect()?\"both\":\"list\"};f&&\"string\"==typeof(t=g({className:q}))&&(t=u(\"div\",{className:r+\"__dropdown-arrow-down-wrapper\",dangerouslySetInnerHTML:{__html:t}}));var X=r+\"__input\",J=[X,this.props.showAllValues?X+\"--show-all-values\":X+\"--default\"];null!==S&&J.push(X+\"--focused\"),x&&J.push(x);var Z=r+\"__menu\",tt=[Z,Z+\"--\"+o,Z+\"--\"+(E||D?\"visible\":\"hidden\")];O&&tt.push(O),(null!=b&&b.class||null!=b&&b.className)&&tt.push((null==b?void 0:b.class)||(null==b?void 0:b.className));var et=Object.assign({\"aria-labelledby\":i},b,{id:i+\"__listbox\",role:\"listbox\",className:tt.join(\" \"),onMouseLeave:this.handleListMouseLeave});return delete et.class,u(\"div\",{className:F,onKeyDown:this.handleKeyDown},u(B,{id:i,length:I.length,queryLength:j.length,minQueryLength:a,selectedOption:this.templateInputValue(I[A]),selectedOptionIndex:A,validChoiceMade:N,isInFocus:null!==this.state.focused,tQueryTooShort:d,tNoResults:h,tSelectedOption:v,tResults:m,className:V}),Q&&u(\"span\",null,u(\"input\",{className:[z,null===w?x:w].filter(Boolean).join(\" \"),readonly:!0,tabIndex:\"-1\",value:Q})),u(\"input\",U({},Y,{autoComplete:\"off\",className:J.join(\" \"),id:i,onClick:this.handleInputClick,onBlur:this.handleInputBlur},{onInput:this.handleInputChange},{onFocus:this.handleInputFocus,name:c,placeholder:s,ref:function(t){e.elementReferences[-1]=t},type:\"text\",role:\"combobox\",required:l,value:j})),t,u(\"ul\",et,I.map((function(t,n){var r=(-1===S?A===n:S===n)&&null===C?\" \"+K+\"--focused\":\"\",o=n%2?\" \"+K+\"--odd\":\"\",a=H()?\"<span id=\"+i+\"__option-suffix--\"+n+' style=\"border:0;clip:rect(0 0 0 0);height:1px;marginBottom:-1px;marginRight:-1px;overflow:hidden;padding:0;position:absolute;whiteSpace:nowrap;width:1px\"> '+(n+1)+\" of \"+I.length+\"</span>\":\"\";return u(\"li\",{\"aria-selected\":S===n?\"true\":\"false\",className:\"\"+K+r+o,dangerouslySetInnerHTML:{__html:e.templateSuggestion(t)+a},id:i+\"__option--\"+n,key:n,onBlur:function(t){return e.handleOptionBlur(t,n)},onClick:function(t){return e.handleOptionClick(t,n)},onMouseDown:e.handleOptionMouseDown,onMouseEnter:function(t){return e.handleOptionMouseEnter(t,n)},ref:function(t){e.elementReferences[n]=t},role:\"option\",tabIndex:\"-1\",\"aria-posinset\":n+1,\"aria-setsize\":I.length})})),D&&u(\"li\",{className:K+\" \"+K+\"--no-results\",role:\"option\",\"aria-disabled\":\"true\"},p())),u(\"span\",{id:$,style:{display:\"none\"}},y()))},r}(M);function z(t){if(!t.element)throw new Error(\"element is not defined\");if(!t.id)throw new Error(\"id is not defined\");if(!t.source)throw new Error(\"source is not defined\");Array.isArray(t.source)&&(t.source=G(t.source)),L(u(K,t),t.element)}K.defaultProps={autoselect:!1,cssNamespace:\"autocomplete\",defaultValue:\"\",displayMenu:\"inline\",minLength:0,name:\"input-autocomplete\",placeholder:\"\",onConfirm:function(){},confirmOnBlur:!0,showNoOptionsFound:!0,showAllValues:!1,required:!1,tNoResults:function(){return\"No results found\"},tAssistiveHint:function(){return\"When autocomplete results are available use up and down arrows to review and enter to select.  Touch device users, explore by touch or with swipe gestures.\"},dropdownArrow:F,menuAttributes:{},inputClasses:null,hintClasses:null,menuClasses:null};var G=function(t){return function(e,n){n(t.filter((function(t){return-1!==t.toLowerCase().indexOf(e.toLowerCase())})))}};z.enhanceSelectElement=function(t){if(!t.selectElement)throw new Error(\"selectElement is not defined\");if(!t.source){var e=[].filter.call(t.selectElement.options,(function(e){return e.value||t.preserveNullOptions}));t.source=e.map((function(t){return t.textContent||t.innerText}))}if(t.onConfirm=t.onConfirm||function(e){var n=[].filter.call(t.selectElement.options,(function(t){return(t.textContent||t.innerText)===e}))[0];n&&(n.selected=!0)},t.selectElement.value||void 0===t.defaultValue){var n=t.selectElement.options[t.selectElement.options.selectedIndex];t.defaultValue=n.textContent||n.innerText}void 0===t.name&&(t.name=\"\"),void 0===t.id&&(void 0===t.selectElement.id?t.id=\"\":t.id=t.selectElement.id),void 0===t.autoselect&&(t.autoselect=!0);var r=document.createElement(\"div\");t.selectElement.parentNode.insertBefore(r,t.selectElement),z(Object.assign({},t,{element:r})),t.selectElement.style.display=\"none\",t.selectElement.id=t.selectElement.id+\"-select\"};var Q=z}(),r=r.default}()}));\n//# sourceMappingURL=accessible-autocomplete.min.js.map","import accessibleAutocomplete from 'accessible-autocomplete'\nimport { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass SelectCountryFromForm implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-select-country-from-form'\n\n  $module: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$module = $module\n  }\n\n  init () {\n    accessibleAutocomplete.enhanceSelectElement({\n      selectElement: this.$module.get(0)\n    })\n  }\n}\n\nexport { SelectCountryFromForm }\n","import { ComplianceCommunicationAttachments } from './components/compliance-communication-attachments/compliance-communication-attachments'\nimport { CookieBanner } from './components/cookie-banner/cookie-banner'\nimport { CookieSettings } from './scripts/cookies/settings'\nimport { DigitalMarketplaceFrontendComponent } from './digitalmarketplace-frontend-component'\nimport { initGoogleAnalytics } from './scripts/analytics/init-google-analytics'\nimport { ListInput } from './components/list-input/list-input'\nimport { OptionSelect } from './components/option-select/option-select'\nimport { OptionTree } from './components/option-tree/option-tree'\nimport { Question } from './components/question/question'\nimport { QuestionCheckboxTree } from './components/question-checkbox-tree/question-checkbox-tree'\nimport { QuestionList } from './components/question-list/question-list'\nimport { QuestionListMultiquestionClientSide } from './components/question-list-multiquestion-client-side/question-list-multiquestion-client-side'\nimport { SearchBox } from './components/search-box/search-box'\nimport { SelectCountryFromForm } from './components/select-country-from-form/select-country-from-form'\n\nconst createAll = (Component: typeof DigitalMarketplaceFrontendComponent) => {\n  $(`[data-module=\"${Component.moduleName}\"]`).each((_index, componentElement) => {\n    new Component($(componentElement)).init()\n  })\n}\n\nconst initAll = () => {\n  const components: Array<typeof DigitalMarketplaceFrontendComponent> = [\n    ComplianceCommunicationAttachments,\n    CookieSettings,\n    CookieBanner,\n    ListInput,\n    OptionSelect,\n    OptionTree,\n    QuestionCheckboxTree,\n    QuestionList,\n    QuestionListMultiquestionClientSide,\n    Question,\n    SearchBox,\n    SelectCountryFromForm\n  ]\n\n  components.forEach((Component) => {\n    createAll(Component)\n  })\n\n  initGoogleAnalytics()\n}\n\nexport { initAll, createAll }\n"],"names":["assign","target","i","arguments","length","source","key","defaultConverter","read","value","slice","replace","decodeURIComponent","write","encodeURIComponent","init","converter","defaultAttributes","set","name","attributes","document","expires","Date","now","toUTCString","escape","stringifiedAttributes","attributeName","split","cookie","get","cookies","jar","parts","join","found","_unused","Object","create","remove","withAttributes","withConverter","freeze","api","path","Cookies","isInitialised","$root","moduleName","HTMLElement","hasAttribute","isSupported","$scope","body","classList","contains","isArray","option","Array","isObject","formatErrorMessage","Component","message","GOVUKFrontendError","_Error","_this","_len","args","_key","call","apply","concat","_inheritsLoose","_wrapNativeSuper","Error","SupportError","_GOVUKFrontendError","constructor","_this2","supportMessage","HTMLScriptElement","prototype","ConfigError","_GOVUKFrontendError2","_this3","_len2","_key2","ElementError","_GOVUKFrontendError3","messageOrOptions","_this4","component","identifier","element","expectedType","InitError","_GOVUKFrontendError4","componentOrMessage","_this5","_$root","childConstructor","elementType","checkSupport","checkInitialised","setAttribute","_proto","_createClass","configOverride","Symbol","ConfigurableComponent","_Component","config","_config","defaults","datasetConfig","normaliseDataset","dataset","mergeConfigs","param","normaliseString","property","trimmedValue","trim","output","outputType","type","includes","isFinite","Number","schema","out","entries","properties","_i","_entries","entry","namespace","field","toString","extractConfigByNamespace","formattedConfigObject","configObjects","_i2","_configObjects","configObject","_i3","_Object$keys","keys","override","_newObject","newObject","_i5","_Object$entries2","_Object$entries2$_i","current","keyParts","_iterator2","_createForOfIteratorHelperLoose","_step2","done","_step2$value","index","I18n","translations","_config$locale","locale","documentElement","lang","t","lookupKey","options","translation","count","translationPluralForm","getPluralSuffix","match","replacePlaceholders","translationString","formatter","Intl","NumberFormat","supportedLocalesOf","undefined","placeholderWithBraces","placeholderKey","hasOwnProperty","placeholderValue","format","hasIntlPluralRulesSupport","Boolean","window","PluralRules","preferredForm","select","console","warn","closestAttributeValue","$element","$closestElementWithAttribute","closest","getAttribute","FileUpload","_ConfigurableComponen","$input","$button","$status","i18n","id","$announcements","enteredAnotherElement","querySelector","$label","findLabel","createElement","add","ariaDescribedBy","className","innerText","appendChild","commaSpan","containerSpan","buttonSpan","insertAdjacentText","instructionSpan","addEventListener","onClick","bind","event","preventDefault","insertAdjacentElement","onChange","updateDisabledState","observeDisabledState","onDrop","updateDropzoneVisibility","disabled","hideDraggingState","Node","dataTransfer","canDrop","showDraggingState","canFillInput","files","dispatchEvent","CustomEvent","matchesInputCapacity","items","countFileItems","types","numberOfFiles","multiple","fileCount","click","observer","MutationObserver","mutationList","_iterator","_step","mutation","observe","toggle","chooseFilesButton","dropInstruction","noFileChosen","multipleFilesChosen","one","other","enteredDropZone","leftDropZone","list","result","kind","e","module","self"],"mappings":"AAAA;;;AAGG;AAEH;;;;AAIG;AACI,MAAM,OAAO,GAAG;;ACVvB,MAAM,qBAAqB,GAAG,cAAc;AAE5C,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,CAAW,EAAE,CAAW,EAAE,CAAc,EAAE,CAAS,KAAI;IAC9F,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACR,QAAA,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AACjC,QAAA,KAAK,EAAE;AACR,KAAA,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5B,IAAA,MAAM,EAAE,GAAkC,EAAE;AAC5C,IAAA,CAAC,CAAC,KAAK,GAAG,IAAI;IACd,CAAC,CAAC,GAAG,GAAE,6CAA6C,GAAG,CAAC,GAAG,EAAE;IAC5D,CAAC,CAAC,UAAyB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,oBAAoB,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,CAAC;;ACfvH,SAASA,MAAMA,CAAEC,MAAM,EAAE;AACvB,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,SAAS,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;AACzC,IAAA,IAAIG,MAAM,GAAGF,SAAS,CAACD,CAAC,CAAC;AACzB,IAAA,KAAK,IAAII,GAAG,IAAID,MAAM,EAAE;MACtB,IAAIC,GAAG,KAAK,WAAW,EAAE;AACzBL,MAAAA,MAAM,CAACK,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;AAC3B,IAAA;AACF,EAAA;AACA,EAAA,OAAOL,MAAM;AACf;AAEA,IAAIM,gBAAgB,GAAG;AACrBC,EAAAA,IAAI,EAAE,SAANA,IAAIA,CAAYC,KAAK,EAAE;AACrB,IAAA,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACpBA,KAAK,GAAGA,KAAK,CAACC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC5B,IAAA;AACA,IAAA,OAAOD,KAAK,CAACE,OAAO,CAAC,kBAAkB,EAAEC,kBAAkB,CAAC;EAC9D,CAAC;AACDC,EAAAA,KAAK,EAAE,SAAPA,KAAKA,CAAYJ,KAAK,EAAE;IACtB,OAAOK,kBAAkB,CAACL,KAAK,CAAC,CAACE,OAAO,CACtC,0CAA0C,EAC1CC,kBACF,CAAC;AACH,EAAA;AACF,CAAC;AAED,SAASG,IAAIA,CAACC,SAAS,EAAEC,iBAAiB,EAAE;AAC1C,EAAA,SAASC,GAAGA,CAACC,IAAI,EAAEV,KAAK,EAAEW,UAAU,EAAE;AACpC,IAAA,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;AACnC,MAAA;AACF,IAAA;IAEAD,UAAU,GAAGpB,MAAM,CAAC,EAAE,EAAEiB,iBAAiB,EAAEG,UAAU,CAAC;AAEtD,IAAA,IAAI,OAAOA,UAAU,CAACE,OAAO,KAAK,QAAQ,EAAE;AAC1CF,MAAAA,UAAU,CAACE,OAAO,GAAG,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,EAAE,GAAGJ,UAAU,CAACE,OAAO,GAAG,KAAK,CAAC;AACxE,IAAA;IACA,IAAIF,UAAU,CAACE,OAAO,EAAE;MACtBF,UAAU,CAACE,OAAO,GAAGF,UAAU,CAACE,OAAO,CAACG,WAAW,EAAE;AACvD,IAAA;AAEAN,IAAAA,IAAI,GAAGL,kBAAkB,CAACK,IAAI,CAAC,CAC5BR,OAAO,CAAC,sBAAsB,EAAEC,kBAAkB,CAAC,CACnDD,OAAO,CAAC,OAAO,EAAEe,MAAM,CAAC;IAE3B,IAAIC,qBAAqB,GAAG,EAAE;AAC9B,IAAA,KAAK,IAAIC,aAAa,IAAIR,UAAU,EAAE;AACpC,MAAA,IAAI,CAACA,UAAU,CAACQ,aAAa,CAAC,EAAE;AAC9B,QAAA;AACF,MAAA;MAEAD,qBAAqB,IAAI,IAAI,GAAGC,aAAa;AAE7C,MAAA,IAAIR,UAAU,CAACQ,aAAa,CAAC,KAAK,IAAI,EAAE;AACtC,QAAA;AACF,MAAA;AASAD,MAAAA,qBAAqB,IAAI,GAAG,GAAGP,UAAU,CAACQ,aAAa,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE,IAAA;AAEA,IAAA,OAAQR,QAAQ,CAACS,MAAM,GACrBX,IAAI,GAAG,GAAG,GAAGH,SAAS,CAACH,KAAK,CAACJ,KAAK,EAAEU,IAAI,CAAC,GAAGQ,qBAAqB;AACrE,EAAA;EAEA,SAASI,GAAGA,CAACZ,IAAI,EAAE;IACjB,IAAI,OAAOE,QAAQ,KAAK,WAAW,IAAKlB,SAAS,CAACC,MAAM,IAAI,CAACe,IAAK,EAAE;AAClE,MAAA;AACF,IAAA;AAIA,IAAA,IAAIa,OAAO,GAAGX,QAAQ,CAACS,MAAM,GAAGT,QAAQ,CAACS,MAAM,CAACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;IAChE,IAAII,GAAG,GAAG,EAAE;AACZ,IAAA,KAAK,IAAI/B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8B,OAAO,CAAC5B,MAAM,EAAEF,CAAC,EAAE,EAAE;MACvC,IAAIgC,KAAK,GAAGF,OAAO,CAAC9B,CAAC,CAAC,CAAC2B,KAAK,CAAC,GAAG,CAAC;AACjC,MAAA,IAAIpB,KAAK,GAAGyB,KAAK,CAACxB,KAAK,CAAC,CAAC,CAAC,CAACyB,IAAI,CAAC,GAAG,CAAC;MAEpC,IAAI;QACF,IAAIC,KAAK,GAAGxB,kBAAkB,CAACsB,KAAK,CAAC,CAAC,CAAC,CAAC;AACxC,QAAA,IAAI,EAAEE,KAAK,IAAIH,GAAG,CAAC,EAAEA,GAAG,CAACG,KAAK,CAAC,GAAGpB,SAAS,CAACR,IAAI,CAACC,KAAK,EAAE2B,KAAK,CAAC;QAC9D,IAAIjB,IAAI,KAAKiB,KAAK,EAAE;AAClB,UAAA;AACF,QAAA;AACF,MAAA,CAAC,CAAC,OAAAC,OAAA,EAAM,CAER;AACF,IAAA;AAEA,IAAA,OAAOlB,IAAI,GAAGc,GAAG,CAACd,IAAI,CAAC,GAAGc,GAAG;AAC/B,EAAA;EAEA,OAAOK,MAAM,CAACC,MAAM,CAClB;AACErB,IAAAA,GAAG,EAAHA,GAAG;AACHa,IAAAA,GAAG,EAAHA,GAAG;AACHS,IAAAA,MAAM,EAAE,SAARA,MAAMA,CAAYrB,IAAI,EAAEC,UAAU,EAAE;MAClCF,GAAG,CACDC,IAAI,EACJ,EAAE,EACFnB,MAAM,CAAC,EAAE,EAAEoB,UAAU,EAAE;AACrBE,QAAAA,OAAO,EAAE;AACX,OAAC,CACH,CAAC;IACH,CAAC;AACDmB,IAAAA,cAAc,EAAE,SAAhBA,cAAcA,CAAYrB,UAAU,EAAE;AACpC,MAAA,OAAOL,IAAI,CAAC,IAAI,CAACC,SAAS,EAAEhB,MAAM,CAAC,EAAE,EAAE,IAAI,CAACoB,UAAU,EAAEA,UAAU,CAAC,CAAC;IACtE,CAAC;AACDsB,IAAAA,aAAa,EAAE,SAAfA,aAAaA,CAAY1B,SAAS,EAAE;AAClC,MAAA,OAAOD,IAAI,CAACf,MAAM,CAAC,EAAE,EAAE,IAAI,CAACgB,SAAS,EAAEA,SAAS,CAAC,EAAE,IAAI,CAACI,UAAU,CAAC;AACrE,IAAA;AACF,GAAC,EACD;AACEA,IAAAA,UAAU,EAAE;AAAEX,MAAAA,KAAK,EAAE6B,MAAM,CAACK,MAAM,CAAC1B,iBAAiB;KAAG;AACvDD,IAAAA,SAAS,EAAE;AAAEP,MAAAA,KAAK,EAAE6B,MAAM,CAACK,MAAM,CAAC3B,SAAS;AAAE;AAC/C,GACF,CAAC;AACH;AAEA,IAAI4B,GAAG,GAAG7B,IAAI,CAACR,gBAAgB,EAAE;AAAEsC,EAAAA,IAAI,EAAE;AAAI,CAAC,CAAC;;AC7H/C,IAAK,SAGJ;AAHD,CAAA,UAAK,SAAS,EAAA;AACZ,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC7B,CAAC,EAHI,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;;ACEd,MAAM,cAAc,GAAG,CAAC,KAAc,KAAK,KAAK,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,WAAW;AAE5F,MAAM,eAAe,GAAG,CAAC,iBAAoC,KAAI;AAC/D,IAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACpB,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,aAAa,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACtD,QAAA,gBAAgB,EAAE,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAC5D,iBAAiB,EAAE,SAAS,CAAC;AAC9B,KAAA,CAAC;AACJ,CAAC;;ACRD,MAAM,mBAAmB,GAAyB;AAChD,IAAA;AACE,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK;AAC9B,KAAA;AACD,IAAA;AACE,QAAA,UAAU,EAAE,UAAU;QACtB,cAAc,EAAE,CAAC,MAAM;AACxB;CACF;AAED,MAAM,OAAO,GAAG;IACd,mBAAmB;IACnB,oCAAoC;IACpC;CACD;AAED;AACA,MAAM,UAAU,GAAG,MAAK;IACtB,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;QAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;IACtC;AAEA,IAAA,OAAO,OAAO;AAChB,CAAC;AAED,MAAM,oBAAoB,GAAG,MAAwB;IACnD,MAAM,qBAAqB,GAAG,kCAAkC;AAEhE,IAAA,OAAO,IAAI,CAAC,KAAK,CAACC,GAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,qBAAqB,CAAC;AACnF,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,KAAc,KAAI;AAC9C,IAAA,MAAM,iBAAiB,GAAsB,oBAAoB,EAAE;AAEnE,IAAA,iBAAiB,CAAC,KAAK,GAAG,KAAK;AAC/B,IAAA,iBAAiB,CAAC,eAAe,GAAG,IAAI;AAExC,IAAAA,GAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAE1F,eAAe,CAAC,iBAAiB,CAAC;AAClC,IAAA,qBAAqB,EAAE;AACzB,CAAC;AAED,MAAM,qBAAqB,GAAG,MAAW;IACvC,MAAM,UAAU,GAAa,MAAM,CAAC,IAAI,CAACA,GAAO,CAAC,GAAG,EAAE,CAAC;IACvD,MAAM,eAAe,GAAa,CAAC,2CAA2C,EAAE,6CAA6C,EAAE,sCAAsC,EAAE,mBAAmB,CAAC;AAC3L,IAAA,MAAM,iBAAiB,GAAsB,oBAAoB,EAAE;IACnE,MAAM,cAAc,GAAa,EAAE;AAEnC,IAAA,mBAAmB,CAAC,OAAO,CAAC,CAAC,kBAAkB,KAAI;AACjD,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,UAAU,CAAC;YAAE,cAAc,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,cAAc,CAAC;AAClH,IAAA,CAAC,CAAC;AAEF,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC;AAEhC,QAAA,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAAE,YAAA,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;IAClH;AAEA,IAAA,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAC9B,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI,EAAGA,GAAO,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AACxG,IAAA,CAAC,CAAC;AACJ,CAAC;;AChED,MAAM,mBAAmB,GAAG,MAAK;AAC/B,IAAA,oBAAoB,EAAE;AAEtB,IAAA,qBAAqB,EAAE;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC4EO,SAASC,aAAaA,CAACC,KAAK,EAAEC,UAAU,EAAE;EAC/C,OACED,KAAK,YAAYE,WAAW,IAC5BF,KAAK,CAACG,YAAY,CAAA,OAAA,GAASF,UAAU,GAAA,OAAO,CAAC;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,WAAWA,CAACC,MAAM,EAAkB;AAAA,EAAA,IAAxBA,MAAM,KAAA,MAAA,EAAA;IAANA,MAAM,GAAGhC,QAAQ,CAACiC,IAAI;AAAA,EAAA;EAChD,IAAI,CAACD,MAAM,EAAE;AACX,IAAA,OAAO,KAAK;AACd,EAAA;AAEA,EAAA,OAAOA,MAAM,CAACE,SAAS,CAACC,QAAQ,CAAC,0BAA0B,CAAC;AAC9D;AASA,SAASC,OAAOA,CAACC,MAAM,EAAE;AACvB,EAAA,OAAOC,KAAK,CAACF,OAAO,CAACC,MAAM,CAAC;AAC9B;AAUO,SAASE,QAAQA,CAACF,MAAM,EAAE;AAC/B,EAAA,OAAO,CAAC,CAACA,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAI,CAACD,OAAO,CAACC,MAAM,CAAC;AACnE;AAsBO,SAASG,kBAAkBA,CAACC,SAAS,EAAEC,OAAO,EAAE;AACrD,EAAA,OAAUD,SAAS,CAACb,UAAU,GAAA,IAAA,GAAKc,OAAO;AAC5C;;AClIaC,IAAAA,kBAAkB,aAAAC,MAAA,EAAA;AAAe,EAAA,SAAAD,kBAAAA,GAAA;AAAA,IAAA,IAAAE,KAAA;AAAA,IAAA,KAAA,IAAAC,IAAA,GAAAhE,SAAA,CAAAC,MAAA,EAAAgE,IAAA,GAAA,IAAAT,KAAA,CAAAQ,IAAA,GAAAE,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA,EAAA,EAAA;AAAAD,MAAAA,IAAA,CAAAC,IAAA,CAAA,GAAAlE,SAAA,CAAAkE,IAAA,CAAA;AAAA,IAAA;IAAAH,KAAA,GAAAD,MAAA,CAAAK,IAAA,CAAAC,KAAA,CAAAN,MAAA,EAAA,CAAA,IAAA,CAAA,CAAAO,MAAA,CAAAJ,IAAA,CAAA,CAAA,IAAA,IAAA;IAAAF,KAAA,CAC5C/C,IAAI,GAAG,oBAAoB;AAAA,IAAA,OAAA+C,KAAA;AAAA,EAAA;EAAAO,cAAA,CAAAT,kBAAA,EAAAC,MAAA,CAAA;AAAA,EAAA,OAAAD,kBAAA;AAAA,CAAA,CAAAU,gBAAA,CADWC,KAAK,CAAA,CAAA;AAAA,IAOhCC,YAAY,aAAAC,mBAAA,EAAA;AAGvB;AACF;AACA;AACA;AACA;EACE,SAAAC,YAAAA,CAAYzB,MAAM,EAAkB;AAAA,IAAA,IAAA0B,MAAA;AAAA,IAAA,IAAxB1B,MAAM,KAAA,MAAA,EAAA;MAANA,MAAM,GAAGhC,QAAQ,CAACiC,IAAI;AAAA,IAAA;IAChC,IAAM0B,cAAc,GAClB,UAAU,IAAIC,iBAAiB,CAACC,SAAS,GACrC,gHAAgH,GAChH,kDAAkD;IAExDH,MAAA,GAAAF,mBAAA,CAAAP,IAAA,CAAA,IAAA,EACEjB,MAAM,GACF2B,cAAc,GACd,8DACN,CAAC,IAAA,IAAA;IAAAD,MAAA,CAjBH5D,IAAI,GAAG,cAAc;AAAA,IAAA,OAAA4D,MAAA;AAkBrB,EAAA;EAAAN,cAAA,CAAAG,YAAA,EAAAC,mBAAA,CAAA;AAAA,EAAA,OAAAD,YAAA;AAAA,CAAA,CAnBgCZ,kBAAkB,CAAA;AAAA,IAyBvCmB,WAAW,aAAAC,oBAAA,EAAA;AAA4B,EAAA,SAAAD,WAAAA,GAAA;AAAA,IAAA,IAAAE,MAAA;AAAA,IAAA,KAAA,IAAAC,KAAA,GAAAnF,SAAA,CAAAC,MAAA,EAAAgE,IAAA,GAAA,IAAAT,KAAA,CAAA2B,KAAA,GAAAC,KAAA,GAAA,CAAA,EAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA,EAAA,EAAA;AAAAnB,MAAAA,IAAA,CAAAmB,KAAA,CAAA,GAAApF,SAAA,CAAAoF,KAAA,CAAA;AAAA,IAAA;IAAAF,MAAA,GAAAD,oBAAA,CAAAd,IAAA,CAAAC,KAAA,CAAAa,oBAAA,EAAA,CAAA,IAAA,CAAA,CAAAZ,MAAA,CAAAJ,IAAA,CAAA,CAAA,IAAA,IAAA;IAAAiB,MAAA,CAClDlE,IAAI,GAAG,aAAa;AAAA,IAAA,OAAAkE,MAAA;AAAA,EAAA;EAAAZ,cAAA,CAAAU,WAAA,EAAAC,oBAAA,CAAA;AAAA,EAAA,OAAAD,WAAA;AAAA,CAAA,CADWnB,kBAAkB,CAAA;AAAA,IAOtCwB,YAAY,aAAAC,oBAAA,EAAA;EAmBvB,SAAAX,YAAAA,CAAYY,gBAAgB,EAAE;AAAA,IAAA,IAAAC,MAAA;IAC5B,IAAI5B,OAAO,GAAG,OAAO2B,gBAAgB,KAAK,QAAQ,GAAGA,gBAAgB,GAAG,EAAE;AAG1E,IAAA,IAAI9B,QAAQ,CAAC8B,gBAAgB,CAAC,EAAE;AAC9B,MAAA,IAAQE,SAAS,GAAwCF,gBAAgB,CAAjEE,SAAS;QAAEC,UAAU,GAA4BH,gBAAgB,CAAtDG,UAAU;QAAEC,OAAO,GAAmBJ,gBAAgB,CAA1CI,OAAO;QAAEC,YAAA,GAAiBL,gBAAgB,CAAjCK,YAAA;AAExChC,MAAAA,OAAO,GAAG8B,UAAU;MAGpB9B,OAAO,IAAI+B,OAAO,GAAA,kBAAA,IACKC,YAAY,WAAZA,YAAY,GAAI,aAAa,CAAA,GAChD,YAAY;AAGhB,MAAA,IAAIH,SAAS,EAAE;AACb7B,QAAAA,OAAO,GAAGF,kBAAkB,CAAC+B,SAAS,EAAE7B,OAAO,CAAC;AAClD,MAAA;AACF,IAAA;AAEA4B,IAAAA,MAAA,GAAAF,oBAAA,CAAAnB,IAAA,CAAA,IAAA,EAAMP,OAAO,CAAC,IAAA,IAAA;IAAA4B,MAAA,CAtChBxE,IAAI,GAAG,cAAc;AAAA,IAAA,OAAAwE,MAAA;AAuCrB,EAAA;EAAAlB,cAAA,CAAAe,YAAA,EAAAC,oBAAA,CAAA;AAAA,EAAA,OAAAD,YAAA;AAAA,CAAA,CAxCgCxB,kBAAkB,CAAA;AAAA,IA8CvCgC,SAAS,aAAAC,oBAAA,EAAA;EAOpB,SAAAnB,SAAAA,CAAYoB,kBAAkB,EAAE;AAAA,IAAA,IAAAC,MAAA;AAC9B,IAAA,IAAMpC,OAAO,GACX,OAAOmC,kBAAkB,KAAK,QAAQ,GAClCA,kBAAkB,GAClBrC,kBAAkB,CAChBqC,kBAAkB,8CAEpB,CAAC;AAEPC,IAAAA,MAAA,GAAAF,oBAAA,CAAA3B,IAAA,CAAA,IAAA,EAAMP,OAAO,CAAC,IAAA,IAAA;IAAAoC,MAAA,CAfhBhF,IAAI,GAAG,WAAW;AAAA,IAAA,OAAAgF,MAAA;AAgBlB,EAAA;EAAA1B,cAAA,CAAAuB,SAAA,EAAAC,oBAAA,CAAA;AAAA,EAAA,OAAAD,SAAA;AAAA,CAAA,CAjB6BhC,kBAAkB,CAAA;;IChGpCF,SAAS,GAAA,YAAA;EA+BpB,SAAAgB,SAAAA,CAAY9B,KAAK,EAAE;AAAA,IAAA,IAAA,CARnBoD,MAAM,GAAA,MAAA;AASJ,IAAA,IAAMC,gBAAgB,GACpB,IAAI,CAACvB,WACN;AASD,IAAA,IAAI,OAAOuB,gBAAgB,CAACpD,UAAU,KAAK,QAAQ,EAAE;MACnD,MAAM,IAAI+C,SAAS,CAAA,uCAA0C,CAAC;AAChE,IAAA;AAEA,IAAA,IAAI,EAAEhD,KAAK,YAAYqD,gBAAgB,CAACC,WAAW,CAAC,EAAE;MACpD,MAAM,IAAId,YAAY,CAAC;AACrBM,QAAAA,OAAO,EAAE9C,KAAK;AACd4C,QAAAA,SAAS,EAAES,gBAAgB;AAC3BR,QAAAA,UAAU,EAAE,wBAAwB;AACpCE,QAAAA,YAAY,EAAEM,gBAAgB,CAACC,WAAW,CAACnF;AAC7C,OAAC,CAAC;AACJ,IAAA,CAAC,MAAM;MACL,IAAI,CAACiF,MAAM,GAAmCpD,KAAM;AACtD,IAAA;IAEAqD,gBAAgB,CAACE,YAAY,EAAE;IAE/B,IAAI,CAACC,gBAAgB,EAAE;AAEvB,IAAA,IAAMvD,UAAU,GAAGoD,gBAAgB,CAACpD,UAAU;IAE9C,IAAI,CAACD,KAAK,CAACyD,YAAY,WAASxD,UAAU,GAAA,OAAA,EAAS,EAAE,CAAC;AACxD,EAAA;AAAA,EAAA,IAAAyD,MAAA,GAAA5C,SAAA,CAAAoB,SAAA;AAAAwB,EAAAA,MAAA,CAQAF,gBAAgB,GAAhB,SAAAA,gBAAgBA,GAAG;AACjB,IAAA,IAAM1B,WAAW,GAAyC,IAAI,CAACA,WAAY;AAC3E,IAAA,IAAM7B,UAAU,GAAG6B,WAAW,CAAC7B,UAAU;IAEzC,IAAIA,UAAU,IAAIF,aAAa,CAAC,IAAI,CAACC,KAAK,EAAEC,UAAU,CAAC,EAAE;AACvD,MAAA,MAAM,IAAI+C,SAAS,CAAClB,WAAW,CAAC;AAClC,IAAA;AACF,EAAA,CAAA;AAAAhB,EAAAA,SAAA,CAOOyC,YAAY,GAAnB,SAAOA,YAAYA,GAAG;IACpB,IAAI,CAACnD,WAAW,EAAE,EAAE;MAClB,MAAM,IAAIwB,YAAY,EAAE;AAC1B,IAAA;AACF,EAAA,CAAA;EAAA,OAAA+B,YAAA,CAAA7C,SAAA,EAAA,CAAA;IAAAxD,GAAA,EAAA,OAAA;IAAAyB,GAAA;AAlFA;AACF;AACA;AACA;AACA;AACA;AACE,IAAA,SAAAA,MAAY;MACV,OAAO,IAAI,CAACqE,MAAM;AACpB,IAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,EAAA;AA6EF;AACA;AACA;AACA;AAEA;AACA;AACA;AArGatC,SAAS,CAIbwC,WAAW,GAAGpD,WAAW;;ACV3B,IAAM0D,cAAc,GAAGC,MAAM,CAAA,KAAA,CAAI,CAAC,gBAAgB,CAAA;AAAA,IAY5CC,qBAAqB,aAAAC,UAAA,EAAA;AA6ChC,EAAA,SAAAjC,qBAAAA,CAAY9B,KAAK,EAAEgE,MAAM,EAAE;AAAA,IAAA,IAAA9C,KAAA;AACzBA,IAAAA,KAAA,GAAA6C,UAAA,CAAAzC,IAAA,CAAA,IAAA,EAAMtB,KAAK,CAAC,IAAA,IAAA;AAAAkB,IAAAA,KAAA,CAVd+C,OAAO,GAAA,MAAA;AAYL,IAAA,IAAMZ,gBAAgB,GACqCnC,KAAA,CAAKY,WAAY;AAE5E,IAAA,IAAI,CAAClB,QAAQ,CAACyC,gBAAgB,CAACa,QAAQ,CAAC,EAAE;MACxC,MAAM,IAAI/B,WAAW,CACnBtB,kBAAkB,CAChBwC,gBAAgB,EAChB,qEACF,CACF,CAAC;AACH,IAAA;IAEA,IAAMc,aAAa,GACjBC,gBAAgB,CAACf,gBAAgB,EAAEnC,KAAA,CAAKkC,MAAM,CAACiB,OAAO,CACvD;IAEDnD,KAAA,CAAK+C,OAAO,GACVK,YAAY,CACVjB,gBAAgB,CAACa,QAAQ,EACzBF,MAAM,IAAA,IAAA,GAANA,MAAM,GAAI,EAAE,EACZ9C,KAAA,CAAK0C,cAAc,CAAC,CAACO,aAAa,CAAC,EACnCA,aACF,CACD;AAAA,IAAA,OAAAjD,KAAA;AACH,EAAA;EAAAO,cAAA,CAAAqC,qBAAA,EAAAC,UAAA,CAAA;AAAA,EAAA,IAAAL,MAAA,GAAAI,qBAAA,CAAA5B,SAAA;AAAAwB,EAAAA,MAAA,CAtDCE,cAAc,CAAA,GAAf,UAAiBW,KAAK,EAAE;AACtB,IAAA,OAAO,EAAE;AACX,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EALE,OAAAZ,YAAA,CAAAG,qBAAA,EAAA,CAAA;IAAAxG,GAAA,EAAA,QAAA;IAAAyB,GAAA,EAMA,SAAAA,GAAAA,GAAa;MACX,OAAO,IAAI,CAACkF,OAAO;AACrB,IAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CA9ByCnD,SAAS,CAAA;AA2F7C,SAAS0D,eAAeA,CAAC/G,KAAK,EAAEgH,QAAQ,EAAE;EAC/C,IAAMC,YAAY,GAAGjH,KAAK,GAAGA,KAAK,CAACkH,IAAI,EAAE,GAAG,EAAE;AAE9C,EAAA,IAAIC,MAAM;AACV,EAAA,IAAIC,UAAU,GAAGJ,QAAQ,IAAA,IAAA,GAAA,MAAA,GAARA,QAAQ,CAAEK,IAAI;EAG/B,IAAI,CAACD,UAAU,EAAE;IACf,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAACE,QAAQ,CAACL,YAAY,CAAC,EAAE;AAC5CG,MAAAA,UAAU,GAAG,SAAS;AACxB,IAAA;AAIA,IAAA,IAAIH,YAAY,CAACtH,MAAM,GAAG,CAAC,IAAI4H,QAAQ,CAACC,MAAM,CAACP,YAAY,CAAC,CAAC,EAAE;AAC7DG,MAAAA,UAAU,GAAG,QAAQ;AACvB,IAAA;AACF,EAAA;AAEA,EAAA,QAAQA,UAAU;AAChB,IAAA,KAAK,SAAS;MACZD,MAAM,GAAGF,YAAY,KAAK,MAAM;AAChC,MAAA;AAEF,IAAA,KAAK,QAAQ;AACXE,MAAAA,MAAM,GAAGK,MAAM,CAACP,YAAY,CAAC;AAC7B,MAAA;AAEF,IAAA;AACEE,MAAAA,MAAM,GAAGnH,KAAK;AAClB;AAEA,EAAA,OAAOmH,MAAM;AACf;AAeO,SAASR,gBAAgBA,CAACtD,SAAS,EAAEuD,OAAO,EAAE;AACnD,EAAA,IAAI,CAACzD,QAAQ,CAACE,SAAS,CAACoE,MAAM,CAAC,EAAE;IAC/B,MAAM,IAAI/C,WAAW,CACnBtB,kBAAkB,CAChBC,SAAS,EACT,mEACF,CACF,CAAC;AACH,EAAA;EAEA,IAAMqE,GAAG,GAAgC,EAAG;EAC5C,IAAMC,OAAO,GACX9F,MAAM,CAAC8F,OAAO,CAACtE,SAAS,CAACoE,MAAM,CAACG,UAAU,CAC3C;AAGD,EAAA,KAAA,IAAAC,EAAA,GAAA,CAAA,EAAAC,QAAA,GAAoBH,OAAO,EAAAE,EAAA,GAAAC,QAAA,CAAAnI,MAAA,EAAAkI,EAAA,EAAA,EAAE;AAAxB,IAAA,IAAME,KAAK,GAAAD,QAAA,CAAAD,EAAA,CAAA;IACd,IAAOG,SAAS,GAAcD,KAAK,CAAA,CAAA,CAAA;AAAjBf,MAAAA,QAAQ,GAAIe,KAAK,CAAA,CAAA,CAAA;AAGnC,IAAA,IAAME,KAAK,GAAGD,SAAS,CAACE,QAAQ,EAAE;IAElC,IAAID,KAAK,IAAIrB,OAAO,EAAE;AACpBc,MAAAA,GAAG,CAACO,KAAK,CAAC,GAAGlB,eAAe,CAACH,OAAO,CAACqB,KAAK,CAAC,EAAEjB,QAAQ,CAAC;AACxD,IAAA;IAMA,IAAI,CAAAA,QAAQ,IAAA,IAAA,GAAA,MAAA,GAARA,QAAQ,CAAEK,IAAI,MAAK,QAAQ,EAAE;AAC/BK,MAAAA,GAAG,CAACO,KAAK,CAAC,GAAGE,wBAAwB,CACnC9E,SAAS,CAACoE,MAAM,EAChBb,OAAO,EACPoB,SACF,CAAC;AACH,IAAA;AACF,EAAA;AAEA,EAAA,OAAON,GAAG;AACZ;AAqDO,SAASb,YAAYA,GAAmB;EAG7C,IAAMuB,qBAAqB,GAAG,EAAE;AAAA,EAAA,KAAA,IAAA1E,IAAA,GAAAhE,SAAA,CAAAC,MAAA,EAHF0I,aAAa,GAAA,IAAAnF,KAAA,CAAAQ,IAAA,GAAAE,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA,EAAA,EAAA;AAAbyE,IAAAA,aAAa,CAAAzE,IAAA,CAAA,GAAAlE,SAAA,CAAAkE,IAAA,CAAA;AAAA,EAAA;AAM3C,EAAA,KAAA,IAAA0E,GAAA,GAAA,CAAA,EAAAC,cAAA,GAA2BF,aAAa,EAAAC,GAAA,GAAAC,cAAA,CAAA5I,MAAA,EAAA2I,GAAA,EAAA,EAAE;AAArC,IAAA,IAAME,YAAY,GAAAD,cAAA,CAAAD,GAAA,CAAA;AACrB,IAAA,KAAA,IAAAG,GAAA,GAAA,CAAA,EAAAC,YAAA,GAAkB7G,MAAM,CAAC8G,IAAI,CAACH,YAAY,CAAC,EAAAC,GAAA,GAAAC,YAAA,CAAA/I,MAAA,EAAA8I,GAAA,EAAA,EAAE;AAAxC,MAAA,IAAM5I,GAAG,GAAA6I,YAAA,CAAAD,GAAA,CAAA;AACZ,MAAA,IAAMxF,MAAM,GAAGmF,qBAAqB,CAACvI,GAAG,CAAC;AACzC,MAAA,IAAM+I,QAAQ,GAAGJ,YAAY,CAAC3I,GAAG,CAAC;MAKlC,IAAIsD,QAAQ,CAACF,MAAM,CAAC,IAAIE,QAAQ,CAACyF,QAAQ,CAAC,EAAE;QAC1CR,qBAAqB,CAACvI,GAAG,CAAC,GAAGgH,YAAY,CAAC5D,MAAM,EAAE2F,QAAQ,CAAC;AAC7D,MAAA,CAAC,MAAM;AAELR,QAAAA,qBAAqB,CAACvI,GAAG,CAAC,GAAG+I,QAAQ;AACvC,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA,OAAOR,qBAAqB;AAC9B;AAoDO,SAASD,wBAAwBA,CAACV,MAAM,EAAEb,OAAO,EAAEoB,SAAS,EAAE;AAAA,EAAA,IAAAa,UAAA;AACnE,EAAA,IAAM7B,QAAQ,GAAGS,MAAM,CAACG,UAAU,CAACI,SAAS,CAAC;EAG7C,IAAI,CAAAhB,QAAQ,IAAA,IAAA,GAAA,MAAA,GAARA,QAAQ,CAAEK,IAAI,MAAK,QAAQ,EAAE;AAC/B,IAAA;AACF,EAAA;EAGA,IAAMyB,SAAS,IAAAD,UAAA,GAAA,EAAA,EAAAA,UAAA,CACZb,SAAS,CAAA,GAAG,EAAA,EAAAa,UAAA,CACb;AAEF,EAAA,KAAA,IAAAE,GAAA,GAAA,CAAA,EAAAC,gBAAA,GAA2BnH,MAAM,CAAC8F,OAAO,CAACf,OAAO,CAAC,EAAAmC,GAAA,GAAAC,gBAAA,CAAArJ,MAAA,EAAAoJ,GAAA,EAAA,EAAE;AAA/C,IAAA,IAAAE,mBAAA,GAAAD,gBAAA,CAAAD,GAAA,CAAA;AAAOlJ,MAAAA,GAAG,GAAAoJ,mBAAA,CAAA,CAAA,CAAA;AAAEjJ,MAAAA,KAAK,GAAAiJ,mBAAA,CAAA,CAAA,CAAA;IAEpB,IAAIC,OAAO,GAAGJ,SAAS;AAGvB,IAAA,IAAMK,QAAQ,GAAGtJ,GAAG,CAACuB,KAAK,CAAC,GAAG,CAAC;AAQ/B,IAAA,KAAA,IAAAgI,UAAA,GAAAC,+BAAA,CAA4BF,QAAQ,CAACxB,OAAO,EAAE,CAAA,EAAA2B,MAAA,IAAAA,MAAA,GAAAF,UAAA,EAAA,EAAAG,IAAA,GAAE;AAAA,MAAA,IAAAC,YAAA,GAAAF,MAAA,CAAAtJ,KAAA;AAApCyJ,QAAAA,KAAK,GAAAD,YAAA,CAAA,CAAA,CAAA;AAAE9I,QAAAA,IAAI,GAAA8I,YAAA,CAAA,CAAA,CAAA;AACrB,MAAA,IAAIrG,QAAQ,CAAC+F,OAAO,CAAC,EAAE;AAErB,QAAA,IAAIO,KAAK,GAAGN,QAAQ,CAACxJ,MAAM,GAAG,CAAC,EAAE;UAE/B,IAAI,CAACwD,QAAQ,CAAC+F,OAAO,CAACxI,IAAI,CAAC,CAAC,EAAE;AAC5BwI,YAAAA,OAAO,CAACxI,IAAI,CAAC,GAAG,EAAE;AACpB,UAAA;AAGAwI,UAAAA,OAAO,GAAGA,OAAO,CAACxI,IAAI,CAAC;AACzB,QAAA,CAAC,MAAM,IAAIb,GAAG,KAAKmI,SAAS,EAAE;AAE5BkB,UAAAA,OAAO,CAACxI,IAAI,CAAC,GAAGqG,eAAe,CAAC/G,KAAK,CAAC;AACxC,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;EAEA,OAAO8I,SAAS,CAACd,SAAS,CAAC;AAC7B;;IC3Wa0B,IAAI,GAAA,YAAA;AAUf,EAAA,SAAArF,IAAAA,CAAYsF,YAAY,EAAOpD,MAAM,EAAO;AAAA,IAAA,IAAhCoD,YAAY,KAAA,MAAA,EAAA;AAAZA,MAAAA,YAAY,GAAG,EAAE;AAAA,IAAA;AAAA,IAAA,IAAEpD,MAAM,KAAA,MAAA,EAAA;AAANA,MAAAA,MAAM,GAAG,EAAE;AAAA,IAAA;AAAE,IAAA,IAAAqD,cAAA;AAAA,IAAA,IAAA,CAT5CD,YAAY,GAAA,MAAA;AAAA,IAAA,IAAA,CACZE,MAAM,GAAA,MAAA;IAUJ,IAAI,CAACF,YAAY,GAAGA,YAAY;AAGhC,IAAA,IAAI,CAACE,MAAM,GAAA,CAAAD,cAAA,GAAGrD,MAAM,CAACsD,MAAM,KAAA,IAAA,GAAAD,cAAA,GAAKhJ,QAAQ,CAACkJ,eAAe,CAACC,IAAI,IAAI,IAAK;AACxE,EAAA;AAAA,EAAA,IAAA9D,MAAA,GAAAyD,IAAA,CAAAjF,SAAA;EAAAwB,MAAA,CAaA+D,CAAC,GAAD,SAAAA,CAACA,CAACC,SAAS,EAAEC,OAAO,EAAE;IACpB,IAAI,CAACD,SAAS,EAAE;AAEd,MAAA,MAAM,IAAI/F,KAAK,CAAC,0BAA0B,CAAC;AAC7C,IAAA;AAGA,IAAA,IAAIiG,WAAW,GAAG,IAAI,CAACR,YAAY,CAACM,SAAS,CAAC;AAK9C,IAAA,IAAI,QAAOC,OAAO,IAAA,IAAA,GAAA,MAAA,GAAPA,OAAO,CAAEE,KAAK,CAAA,KAAK,QAAQ,IAAIjH,QAAQ,CAACgH,WAAW,CAAC,EAAE;AAC/D,MAAA,IAAME,qBAAqB,GACzBF,WAAW,CAAC,IAAI,CAACG,eAAe,CAACL,SAAS,EAAEC,OAAO,CAACE,KAAK,CAAC,CAAC;AAG7D,MAAA,IAAIC,qBAAqB,EAAE;AACzBF,QAAAA,WAAW,GAAGE,qBAAqB;AACrC,MAAA;AACF,IAAA;AAEA,IAAA,IAAI,OAAOF,WAAW,KAAK,QAAQ,EAAE;AAGnC,MAAA,IAAIA,WAAW,CAACI,KAAK,CAAC,WAAW,CAAC,EAAE;QAClC,IAAI,CAACL,OAAO,EAAE;AACZ,UAAA,MAAM,IAAIhG,KAAK,CACb,wEACF,CAAC;AACH,QAAA;AAEA,QAAA,OAAO,IAAI,CAACsG,mBAAmB,CAACL,WAAW,EAAED,OAAO,CAAC;AACvD,MAAA;AAEA,MAAA,OAAOC,WAAW;AACpB,IAAA;AAIA,IAAA,OAAOF,SAAS;AAClB,EAAA,CAAA;EAAAhE,MAAA,CAWAuE,mBAAmB,GAAnB,SAAAA,mBAAmBA,CAACC,iBAAiB,EAAEP,OAAO,EAAE;IAC9C,IAAMQ,SAAS,GAAGC,IAAI,CAACC,YAAY,CAACC,kBAAkB,CAAC,IAAI,CAAChB,MAAM,CAAC,CAAClK,MAAM,GACtE,IAAIgL,IAAI,CAACC,YAAY,CAAC,IAAI,CAACf,MAAM,CAAC,GAClCiB,SAAS;IAEb,OAAOL,iBAAiB,CAACvK,OAAO,CAC9B,YAAY,EAUZ,UAAU6K,qBAAqB,EAAEC,cAAc,EAAE;AAC/C,MAAA,IAAInJ,MAAM,CAAC4C,SAAS,CAACwG,cAAc,CAACpH,IAAI,CAACqG,OAAO,EAAEc,cAAc,CAAC,EAAE;AACjE,QAAA,IAAME,gBAAgB,GAAGhB,OAAO,CAACc,cAAc,CAAC;AAIhD,QAAA,IACEE,gBAAgB,KAAK,KAAK,IACzB,OAAOA,gBAAgB,KAAK,QAAQ,IACnC,OAAOA,gBAAgB,KAAK,QAAS,EACvC;AACA,UAAA,OAAO,EAAE;AACX,QAAA;AAGA,QAAA,IAAI,OAAOA,gBAAgB,KAAK,QAAQ,EAAE;UACxC,OAAOR,SAAS,GACZA,SAAS,CAACS,MAAM,CAACD,gBAAgB,CAAC,GAAA,EAAA,GAC/BA,gBAAkB;AAC3B,QAAA;AAEA,QAAA,OAAOA,gBAAgB;AACzB,MAAA;AAEA,MAAA,MAAM,IAAIhH,KAAK,CAAA,iCAAA,GACqB6G,qBAAqB,2BACzD,CAAC;AACH,IAAA,CACF,CAAC;AACH,EAAA,CAAA;AAAA9E,EAAAA,MAAA,CAcAmF,yBAAyB,GAAzB,SAAAA,yBAAyBA,GAAG;IAC1B,OAAOC,OAAO,CACZ,aAAa,IAAIC,MAAM,CAACX,IAAI,IAC1BA,IAAI,CAACY,WAAW,CAACV,kBAAkB,CAAC,IAAI,CAAChB,MAAM,CAAC,CAAClK,MACrD,CAAC;AACH,EAAA,CAAA;EAAAsG,MAAA,CAkBAqE,eAAe,GAAf,SAAAA,eAAeA,CAACL,SAAS,EAAEG,KAAK,EAAE;AAMhCA,IAAAA,KAAK,GAAG5C,MAAM,CAAC4C,KAAK,CAAC;AACrB,IAAA,IAAI,CAAC7C,QAAQ,CAAC6C,KAAK,CAAC,EAAE;AACpB,MAAA,OAAO,OAAO;AAChB,IAAA;AAGA,IAAA,IAAMD,WAAW,GAAG,IAAI,CAACR,YAAY,CAACM,SAAS,CAAC;IAKhD,IAAMuB,aAAa,GAAG,IAAI,CAACJ,yBAAyB,EAAE,GAClD,IAAIT,IAAI,CAACY,WAAW,CAAC,IAAI,CAAC1B,MAAM,CAAC,CAAC4B,MAAM,CAACrB,KAAK,CAAC,GAC/C,OAAO;AAGX,IAAA,IAAIjH,QAAQ,CAACgH,WAAW,CAAC,EAAE;MACzB,IAAIqB,aAAa,IAAIrB,WAAW,EAAE;AAChC,QAAA,OAAOqB,aAAa;AAGtB,MAAA,CAAC,MAAM,IAAI,OAAO,IAAIrB,WAAW,EAAE;QACjCuB,OAAO,CAACC,IAAI,CAAA,+BAAA,GACqBH,aAAa,iBAAU,IAAI,CAAC3B,MAAM,GAAA,wCACnE,CAAC;AAED,QAAA,OAAO,OAAO;AAChB,MAAA;AACF,IAAA;AAGA,IAAA,MAAM,IAAI3F,KAAK,CAAA,iDAAA,GACkC,IAAI,CAAC2F,MAAM,cAC5D,CAAC;AACH,EAAA,CAAA;AAAA,EAAA,OAAAH,IAAA;AAAA,CAAA,EAAA;;AC3MK,SAASkC,qBAAqBA,CAACC,QAAQ,EAAE1K,aAAa,EAAE;EAC7D,IAAM2K,4BAA4B,GAAGD,QAAQ,CAACE,OAAO,CAAA,GAAA,GAAK5K,aAAa,MAAG,CAAC;EAC3E,OAAO2K,4BAA4B,GAC/BA,4BAA4B,CAACE,YAAY,CAAC7K,aAAa,CAAC,GACxD,IAAI;AACV;;ACPA;AACA;AACA;AACA;AACA;AACA;AALA,IAMa8K,UAAU,aAAAC,qBAAA,EAAA;AAgCrB;AACF;AACA;AACA;AACE,EAAA,SAAA7H,UAAAA,CAAY9B,KAAK,EAAEgE,MAAM,EAAO;AAAA,IAAA,IAAA9C,KAAA;AAAA,IAAA,IAAb8C,MAAM,KAAA,MAAA,EAAA;AAANA,MAAAA,MAAM,GAAG,EAAE;AAAA,IAAA;IAC5B9C,KAAA,GAAAyI,qBAAA,CAAArI,IAAA,OAAMtB,KAAK,EAAEgE,MAAM,CAAC,IAAA,IAAA;AAAA9C,IAAAA,KAAA,CAhCtB0I,MAAM,GAAA,MAAA;AAAA1I,IAAAA,KAAA,CAKN2I,OAAO,GAAA,MAAA;AAAA3I,IAAAA,KAAA,CAKP4I,OAAO,GAAA,MAAA;AAAA5I,IAAAA,KAAA,CAGP6I,IAAI,GAAA,MAAA;AAAA7I,IAAAA,KAAA,CAGJ8I,EAAE,GAAA,MAAA;AAAA9I,IAAAA,KAAA,CAGF+I,cAAc,GAAA,MAAA;AAAA/I,IAAAA,KAAA,CAMdgJ,qBAAqB,GAAA,MAAA;IASnB,IAAMN,MAAM,GAAG1I,KAAA,CAAKlB,KAAK,CAACmK,aAAa,CAAC,OAAO,CAAC;IAEhD,IAAIP,MAAM,KAAK,IAAI,EAAE;MACnB,MAAM,IAAIpH,YAAY,CAAC;AACrBI,QAAAA,SAAS,EAAE8G,UAAU;AACrB7G,QAAAA,UAAU,EAAE;AACd,OAAC,CAAC;AACJ,IAAA;AAEA,IAAA,IAAI+G,MAAM,CAAC9E,IAAI,KAAK,MAAM,EAAE;MAC1B,MAAM,IAAItC,YAAY,CACpB3B,kBAAkB,CAChB6I,UAAU,EACV,qEACF,CACF,CAAC;AACH,IAAA;IAEAxI,KAAA,CAAK0I,MAAM,GAAwCA,MAAO;AAE1D,IAAA,IAAI,CAAC1I,KAAA,CAAK0I,MAAM,CAACI,EAAE,EAAE;MACnB,MAAM,IAAIxH,YAAY,CAAC;AACrBI,QAAAA,SAAS,EAAE8G,UAAU;AACrB7G,QAAAA,UAAU,EAAE;AACd,OAAC,CAAC;AACJ,IAAA;AAEA3B,IAAAA,KAAA,CAAK8I,EAAE,GAAG9I,KAAA,CAAK0I,MAAM,CAACI,EAAE;IAExB9I,KAAA,CAAK6I,IAAI,GAAG,IAAI5C,IAAI,CAACjG,KAAA,CAAK8C,MAAM,CAAC+F,IAAI,EAAE;AAErCzC,MAAAA,MAAM,EAAE+B,qBAAqB,CAACnI,KAAA,CAAKlB,KAAK,EAAE,MAAM;AAClD,KAAC,CAAC;AAEF,IAAA,IAAMoK,MAAM,GAAGlJ,KAAA,CAAKmJ,SAAS,EAAE;AAG/B,IAAA,IAAI,CAACD,MAAM,CAACJ,EAAE,EAAE;AACdI,MAAAA,MAAM,CAACJ,EAAE,GAAM9I,KAAA,CAAK8I,EAAE,GAAA,QAAQ;AAChC,IAAA;IAKA9I,KAAA,CAAK0I,MAAM,CAACI,EAAE,GAAM9I,KAAA,CAAK8I,EAAE,GAAA,QAAQ;IAGnC9I,KAAA,CAAK0I,MAAM,CAACnG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;AAG1C,IAAA,IAAMoG,OAAO,GAAGxL,QAAQ,CAACiM,aAAa,CAAC,QAAQ,CAAC;AAChDT,IAAAA,OAAO,CAACtJ,SAAS,CAACgK,GAAG,CAAC,0BAA0B,CAAC;IACjDV,OAAO,CAAC/E,IAAI,GAAG,QAAQ;AACvB+E,IAAAA,OAAO,CAACG,EAAE,GAAG9I,KAAA,CAAK8I,EAAE;AACpBH,IAAAA,OAAO,CAACtJ,SAAS,CAACgK,GAAG,CAAC,iCAAiC,CAAC;IAIxD,IAAMC,eAAe,GAAGtJ,KAAA,CAAK0I,MAAM,CAACH,YAAY,CAAC,kBAAkB,CAAC;AACpE,IAAA,IAAIe,eAAe,EAAE;AACnBX,MAAAA,OAAO,CAACpG,YAAY,CAAC,kBAAkB,EAAE+G,eAAe,CAAC;AAC3D,IAAA;AAGA,IAAA,IAAMV,OAAO,GAAGzL,QAAQ,CAACiM,aAAa,CAAC,MAAM,CAAC;IAC9CR,OAAO,CAACW,SAAS,GAAG,6CAA6C;AACjEX,IAAAA,OAAO,CAACrG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC3CqG,OAAO,CAACY,SAAS,GAAGxJ,KAAA,CAAK6I,IAAI,CAACtC,CAAC,CAAC,cAAc,CAAC;AAE/CoC,IAAAA,OAAO,CAACc,WAAW,CAACb,OAAO,CAAC;AAE5B,IAAA,IAAMc,SAAS,GAAGvM,QAAQ,CAACiM,aAAa,CAAC,MAAM,CAAC;IAChDM,SAAS,CAACH,SAAS,GAAG,uBAAuB;IAC7CG,SAAS,CAACF,SAAS,GAAG,IAAI;AAC1BE,IAAAA,SAAS,CAACZ,EAAE,GAAM9I,KAAA,CAAK8I,EAAE,GAAA,QAAQ;AAEjCH,IAAAA,OAAO,CAACc,WAAW,CAACC,SAAS,CAAC;AAE9B,IAAA,IAAMC,aAAa,GAAGxM,QAAQ,CAACiM,aAAa,CAAC,MAAM,CAAC;IACpDO,aAAa,CAACJ,SAAS,GACrB,mDAAmD;AAErD,IAAA,IAAMK,UAAU,GAAGzM,QAAQ,CAACiM,aAAa,CAAC,MAAM,CAAC;IACjDQ,UAAU,CAACL,SAAS,GAClB,8EAA8E;IAChFK,UAAU,CAACJ,SAAS,GAAGxJ,KAAA,CAAK6I,IAAI,CAACtC,CAAC,CAAC,mBAAmB,CAAC;AAEvDoD,IAAAA,aAAa,CAACF,WAAW,CAACG,UAAU,CAAC;AAIrCD,IAAAA,aAAa,CAACE,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC;AAElD,IAAA,IAAMC,eAAe,GAAG3M,QAAQ,CAACiM,aAAa,CAAC,MAAM,CAAC;IACtDU,eAAe,CAACP,SAAS,GACvB,kDAAkD;IACpDO,eAAe,CAACN,SAAS,GAAGxJ,KAAA,CAAK6I,IAAI,CAACtC,CAAC,CAAC,iBAAiB,CAAC;AAE1DoD,IAAAA,aAAa,CAACF,WAAW,CAACK,eAAe,CAAC;AAE1CnB,IAAAA,OAAO,CAACc,WAAW,CAACE,aAAa,CAAC;AAClChB,IAAAA,OAAO,CAACpG,YAAY,CAClB,iBAAiB,EACd2G,MAAM,CAACJ,EAAE,GAAA,GAAA,GAAIY,SAAS,CAACZ,EAAE,GAAA,GAAA,GAAIH,OAAO,CAACG,EAC1C,CAAC;AACDH,IAAAA,OAAO,CAACoB,gBAAgB,CAAC,OAAO,EAAE/J,KAAA,CAAKgK,OAAO,CAACC,IAAI,CAAAjK,KAAK,CAAC,CAAC;AAC1D2I,IAAAA,OAAO,CAACoB,gBAAgB,CAAC,UAAU,EAAG,UAAAG,KAAK,EAAK;MAE9CA,KAAK,CAACC,cAAc,EAAE;AACxB,IAAA,CAAC,CAAC;IAGFnK,KAAA,CAAKlB,KAAK,CAACsL,qBAAqB,CAAC,YAAY,EAAEzB,OAAO,CAAC;IAEvD3I,KAAA,CAAK0I,MAAM,CAACnG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1CvC,KAAA,CAAK0I,MAAM,CAACnG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;IAG/CvC,KAAA,CAAK2I,OAAO,GAAGA,OAAO;IACtB3I,KAAA,CAAK4I,OAAO,GAAGA,OAAO;AAGtB5I,IAAAA,KAAA,CAAK0I,MAAM,CAACqB,gBAAgB,CAAC,QAAQ,EAAE/J,KAAA,CAAKqK,QAAQ,CAACJ,IAAI,CAAAjK,KAAK,CAAC,CAAC;IAGhEA,KAAA,CAAKsK,mBAAmB,EAAE;IAC1BtK,KAAA,CAAKuK,oBAAoB,EAAE;IAI3BvK,KAAA,CAAK+I,cAAc,GAAG5L,QAAQ,CAACiM,aAAa,CAAC,MAAM,CAAC;IACpDpJ,KAAA,CAAK+I,cAAc,CAAC1J,SAAS,CAACgK,GAAG,CAAC,iCAAiC,CAAC;IACpErJ,KAAA,CAAK+I,cAAc,CAAC1J,SAAS,CAACgK,GAAG,CAAC,uBAAuB,CAAC;IAC1DrJ,KAAA,CAAK+I,cAAc,CAACxG,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1DvC,KAAA,CAAKlB,KAAK,CAACsL,qBAAqB,CAAC,UAAU,EAAEpK,KAAA,CAAK+I,cAAc,CAAC;AAIjE/I,IAAAA,KAAA,CAAK2I,OAAO,CAACoB,gBAAgB,CAAC,MAAM,EAAE/J,KAAA,CAAKwK,MAAM,CAACP,IAAI,CAAAjK,KAAK,CAAC,CAAC;AAa7D7C,IAAAA,QAAQ,CAAC4M,gBAAgB,CACvB,WAAW,EACX/J,KAAA,CAAKyK,wBAAwB,CAACR,IAAI,CAAAjK,KAAK,CACzC,CAAC;AAQD7C,IAAAA,QAAQ,CAAC4M,gBAAgB,CAAC,WAAW,EAAE,YAAM;MAC3C/J,KAAA,CAAKgJ,qBAAqB,GAAG,IAAI;AACnC,IAAA,CAAC,CAAC;AAEF7L,IAAAA,QAAQ,CAAC4M,gBAAgB,CAAC,WAAW,EAAE,YAAM;MAC3C,IAAI,CAAC/J,KAAA,CAAKgJ,qBAAqB,IAAI,CAAChJ,KAAA,CAAK2I,OAAO,CAAC+B,QAAQ,EAAE;QACzD1K,KAAA,CAAK2K,iBAAiB,EAAE;AACxB3K,QAAAA,KAAA,CAAK+I,cAAc,CAACS,SAAS,GAAGxJ,KAAA,CAAK6I,IAAI,CAACtC,CAAC,CAAC,cAAc,CAAC;AAC7D,MAAA;MAEAvG,KAAA,CAAKgJ,qBAAqB,GAAG,KAAK;AACpC,IAAA,CAAC,CAAC;AAAA,IAAA,OAAAhJ,KAAA;AACJ,EAAA;EAAAO,cAAA,CAAAiI,UAAA,EAAAC,qBAAA,CAAA;AAAA,EAAA,IAAAjG,MAAA,GAAAgG,UAAA,CAAAxH,SAAA;AAAAwB,EAAAA,MAAA,CAQAiI,wBAAwB,GAAxB,SAAAA,wBAAwBA,CAACP,KAAK,EAAE;AAC9B,IAAA,IAAI,IAAI,CAACvB,OAAO,CAAC+B,QAAQ,EAAE;AAI3B,IAAA,IAAIR,KAAK,CAACnO,MAAM,YAAY6O,IAAI,EAAE;MAChC,IAAI,IAAI,CAAC9L,KAAK,CAACQ,QAAQ,CAAC4K,KAAK,CAACnO,MAAM,CAAC,EAAE;AACrC,QAAA,IAAImO,KAAK,CAACW,YAAY,IAAI,IAAI,CAACC,OAAO,CAACZ,KAAK,CAACW,YAAY,CAAC,EAAE;UAG1D,IACE,CAAC,IAAI,CAAClC,OAAO,CAACtJ,SAAS,CAACC,QAAQ,CAC9B,oCACF,CAAC,EACD;YACA,IAAI,CAACyL,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAChC,cAAc,CAACS,SAAS,GAAG,IAAI,CAACX,IAAI,CAACtC,CAAC,CAAC,iBAAiB,CAAC;AAChE,UAAA;AACF,QAAA;AACF,MAAA,CAAC,MAAM;QAIL,IACE,IAAI,CAACoC,OAAO,CAACtJ,SAAS,CAACC,QAAQ,CAAC,oCAAoC,CAAC,EACrE;UACA,IAAI,CAACqL,iBAAiB,EAAE;AACxB,UAAA,IAAI,CAAC5B,cAAc,CAACS,SAAS,GAAG,IAAI,CAACX,IAAI,CAACtC,CAAC,CAAC,cAAc,CAAC;AAC7D,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA,CAAA;AAAA/D,EAAAA,MAAA,CAOAuI,iBAAiB,GAAjB,SAAAA,iBAAiBA,GAAG;IAClB,IAAI,CAACpC,OAAO,CAACtJ,SAAS,CAACgK,GAAG,CAAC,oCAAoC,CAAC;AAClE,EAAA,CAAA;AAAA7G,EAAAA,MAAA,CAOAmI,iBAAiB,GAAjB,SAAAA,iBAAiBA,GAAG;IAClB,IAAI,CAAChC,OAAO,CAACtJ,SAAS,CAACf,MAAM,CAAC,oCAAoC,CAAC;AACrE,EAAA,CAAA;AAAAkE,EAAAA,MAAA,CAQAgI,MAAM,GAAN,SAAAA,MAAMA,CAACN,KAAK,EAAE;IACZA,KAAK,CAACC,cAAc,EAAE;AAEtB,IAAA,IAAID,KAAK,CAACW,YAAY,IAAI,IAAI,CAACG,YAAY,CAACd,KAAK,CAACW,YAAY,CAAC,EAAE;MAC/D,IAAI,CAACnC,MAAM,CAACuC,KAAK,GAAGf,KAAK,CAACW,YAAY,CAACI,KAAK;MAK5C,IAAI,CAACvC,MAAM,CAACwC,aAAa,CAAC,IAAIC,WAAW,CAAC,QAAQ,CAAC,CAAC;MAEpD,IAAI,CAACR,iBAAiB,EAAE;AAC1B,IAAA;AACF,EAAA,CAAA;AAAAnI,EAAAA,MAAA,CASAwI,YAAY,GAAZ,SAAAA,YAAYA,CAACH,YAAY,EAAE;IACzB,OAAO,IAAI,CAACO,oBAAoB,CAACP,YAAY,CAACI,KAAK,CAAC/O,MAAM,CAAC;AAC7D,EAAA,CAAA;AAAAsG,EAAAA,MAAA,CAYAsI,OAAO,GAAP,SAAAA,OAAOA,CAACD,YAAY,EAAE;AAEpB,IAAA,IAAIA,YAAY,CAACQ,KAAK,CAACnP,MAAM,EAAE;MAC7B,OAAO,IAAI,CAACkP,oBAAoB,CAACE,cAAc,CAACT,YAAY,CAACQ,KAAK,CAAC,CAAC;AACtE,IAAA;AAGA,IAAA,IAAIR,YAAY,CAACU,KAAK,CAACrP,MAAM,EAAE;AAC7B,MAAA,OAAO2O,YAAY,CAACU,KAAK,CAAC1H,QAAQ,CAAC,OAAO,CAAC;AAC7C,IAAA;AAIA,IAAA,OAAO,IAAI;AACb,EAAA,CAAA;AAAArB,EAAAA,MAAA,CASA4I,oBAAoB,GAApB,SAAAA,oBAAoBA,CAACI,aAAa,EAAE;AAClC,IAAA,IAAI,IAAI,CAAC9C,MAAM,CAAC+C,QAAQ,EAAE;MACxB,OAAOD,aAAa,GAAG,CAAC;AAC1B,IAAA;IAEA,OAAOA,aAAa,KAAK,CAAC;AAC5B,EAAA,CAAA;AAAAhJ,EAAAA,MAAA,CAOA6H,QAAQ,GAAR,SAAAA,QAAQA,GAAG;IACT,IAAMqB,SAAS,GAAG,IAAI,CAAChD,MAAM,CAACuC,KAAK,CAAC/O,MAAM;IAE1C,IAAIwP,SAAS,KAAK,CAAC,EAAE;AAEnB,MAAA,IAAI,CAAC9C,OAAO,CAACY,SAAS,GAAG,IAAI,CAACX,IAAI,CAACtC,CAAC,CAAC,cAAc,CAAC;MACpD,IAAI,CAACoC,OAAO,CAACtJ,SAAS,CAACgK,GAAG,CAAC,iCAAiC,CAAC;AAC/D,IAAA,CAAC,MAAM;MACL,IAEEqC,SAAS,KAAK,CAAC,EACf;AACA,QAAA,IAAI,CAAC9C,OAAO,CAACY,SAAS,GAAG,IAAI,CAACd,MAAM,CAACuC,KAAK,CAAC,CAAC,CAAC,CAAChO,IAAI;AACpD,MAAA,CAAC,MAAM;AAEL,QAAA,IAAI,CAAC2L,OAAO,CAACY,SAAS,GAAG,IAAI,CAACX,IAAI,CAACtC,CAAC,CAAC,qBAAqB,EAAE;AAC1DI,UAAAA,KAAK,EAAE+E;AACT,SAAC,CAAC;AACJ,MAAA;MAEA,IAAI,CAAC/C,OAAO,CAACtJ,SAAS,CAACf,MAAM,CAAC,iCAAiC,CAAC;AAClE,IAAA;AACF,EAAA,CAAA;AAAAkE,EAAAA,MAAA,CASA2G,SAAS,GAAT,SAAAA,SAASA,GAAG;AAEV,IAAA,IAAMD,MAAM,GAAG/L,QAAQ,CAAC8L,aAAa,CAAA,cAAA,GAAe,IAAI,CAACP,MAAM,CAACI,EAAE,GAAA,KAAI,CAAC;IAEvE,IAAI,CAACI,MAAM,EAAE;MACX,MAAM,IAAI5H,YAAY,CAAC;AACrBI,QAAAA,SAAS,EAAE8G,UAAU;AACrB7G,QAAAA,UAAU,EAAA,2BAAA,GAA+B,IAAI,CAAC+G,MAAM,CAACI,EAAE,GAAA;AACzD,OAAC,CAAC;AACJ,IAAA;AAEA,IAAA,OAAOI,MAAM;AACf,EAAA,CAAA;AAAA1G,EAAAA,MAAA,CAOAwH,OAAO,GAAP,SAAAA,OAAOA,GAAG;AACR,IAAA,IAAI,CAACtB,MAAM,CAACiD,KAAK,EAAE;AACrB,EAAA,CAAA;AAAAnJ,EAAAA,MAAA,CAOA+H,oBAAoB,GAApB,SAAAA,oBAAoBA,GAAG;AAAA,IAAA,IAAA1J,MAAA,GAAA,IAAA;AACrB,IAAA,IAAM+K,QAAQ,GAAG,IAAIC,gBAAgB,CAAE,UAAAC,YAAY,EAAK;AACtD,MAAA,KAAA,IAAAC,SAAA,GAAAnG,+BAAA,CAAuBkG,YAAY,CAAA,EAAAE,KAAA,EAAA,CAAA,CAAAA,KAAA,GAAAD,SAAA,EAAA,EAAAjG,IAAA,GAAE;AAAA,QAAA,IAA1BmG,QAAQ,GAAAD,KAAA,CAAAzP,KAAA;QACjB,IACE0P,QAAQ,CAACrI,IAAI,KAAK,YAAY,IAC9BqI,QAAQ,CAACvO,aAAa,KAAK,UAAU,EACrC;UACAmD,MAAI,CAACyJ,mBAAmB,EAAE;AAC5B,QAAA;AACF,MAAA;AACF,IAAA,CAAC,CAAC;AAEFsB,IAAAA,QAAQ,CAACM,OAAO,CAAC,IAAI,CAACxD,MAAM,EAAE;AAC5BxL,MAAAA,UAAU,EAAE;AACd,KAAC,CAAC;AACJ,EAAA,CAAA;AAAAsF,EAAAA,MAAA,CAOA8H,mBAAmB,GAAnB,SAAAA,mBAAmBA,GAAG;IACpB,IAAI,CAAC3B,OAAO,CAAC+B,QAAQ,GAAG,IAAI,CAAChC,MAAM,CAACgC,QAAQ;AAE5C,IAAA,IAAI,CAAC5L,KAAK,CAACO,SAAS,CAAC8M,MAAM,CACzB,2BAA2B,EAC3B,IAAI,CAACxD,OAAO,CAAC+B,QACf,CAAC;AACH,EAAA,CAAA;AAAA,EAAA,OAAAlC,UAAA;AAAA,CAAA,CAtb8B5F,qBAAqB,CAAA;AAierD;AACA;AACA;AACA;AACA;AACA;AAtea4F,UAAU,CA2bdzJ,UAAU,GAAG,mBAAmB;AA3b5ByJ,UAAU,CAocdxF,QAAQ,GAAG5E,MAAM,CAACK,MAAM,CAAC;AAC9BoK,EAAAA,IAAI,EAAE;AACJuD,IAAAA,iBAAiB,EAAE,aAAa;AAChCC,IAAAA,eAAe,EAAE,cAAc;AAC/BC,IAAAA,YAAY,EAAE,gBAAgB;AAC9BC,IAAAA,mBAAmB,EAAE;AAGnBC,MAAAA,GAAG,EAAE,sBAAsB;AAC3BC,MAAAA,KAAK,EAAE;AACR,KAAA;AACDC,IAAAA,eAAe,EAAE,mBAAmB;AACpCC,IAAAA,YAAY,EAAE;AAChB;AACF,CAAC,CAAC;AAldSnE,UAAU,CA0ddxE,MAAM,GAAG5F,MAAM,CAACK,MAAM,CAAC;AAC5B0F,EAAAA,UAAU,EAAE;AACV0E,IAAAA,IAAI,EAAE;AAAEjF,MAAAA,IAAI,EAAE;AAAS;AACzB;AACF,CAAC,CAAC;AASJ,SAAS0H,cAAcA,CAACsB,IAAI,EAAE;EAC5B,IAAIC,MAAM,GAAG,CAAC;AAId,EAAA,KAAK,IAAI7Q,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4Q,IAAI,CAAC1Q,MAAM,EAAEF,CAAC,EAAE,EAAE;IACpC,IAAI4Q,IAAI,CAAC5Q,CAAC,CAAC,CAAC8Q,IAAI,KAAK,MAAM,EAAE;AAC3BD,MAAAA,MAAM,EAAE;AACV,IAAA;AACF,EAAA;AACA,EAAA,OAAOA,MAAM;AACf;;AC1fA,MAAM,iDAAiD,CAAA;AACrD,IAAA,SAAS;AACT,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,cAAc;IAEd,WAAA,CAAa,IAAyB,EAAE,MAAc,EAAA;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA,wCAAA,EAA2C,MAAM,CAAA,CAAA,CAAG,CAAC;QAE/E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAmB,cAAc,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC;IAC5E;AAEA,IAAA,WAAW,CAAE,QAAgB,EAAA;QAC3B,MAAM,OAAO,GAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAY,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACxF,QAAA,MAAM,KAAK,GAAG,CAAA,MAAA,EAAS,OAAO,EAAE;AAEhC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA,EAAG,KAAK,CAAA,MAAA,CAAQ,CAAC;YAExC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO,CAAC;YAEtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA,EAAG,KAAK,CAAA,MAAA,CAAQ,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO,CAAC;YAErD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO,CAAC;AACtD,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAA,EAAG,KAAK,UAAU,KAAK,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE,CAAC;YAE9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA,EAAG,KAAK,CAAA,MAAA,CAAQ,CAAC;QAC1C;aAAO;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO,CAAC;YAEtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO,CAAC;QACvD;IACF;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACxB,YAAA,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAgB,CAAC;QAC7D;IACF;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAE5B,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,6BAA6B,CAAC;AAExD,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAErB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAW;AAE3C,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEtD,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;IAC9B;AACD;AAED,MAAM,kDAAkD,CAAA;AACtD,IAAA,gBAAgB;AAChB,IAAA,MAAM;AACN,IAAA,MAAM;AAEN,IAAA,WAAA,CAAa,IAAyB,EAAA;QACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,yDAAyD,CAAC;QAC5F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAmB,iCAAiC,CAAC;QAC7F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAmB,wCAAwC,CAAC;IACtG;IAEA,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC;IACnC;AAEA,IAAA,WAAW,CAAE,QAAgB,EAAA;QAC3B,MAAM,OAAO,GAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAY,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACxF,QAAA,MAAM,KAAK,GAAG,CAAA,MAAA,EAAS,OAAO,EAAE;QAEhC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;IACnC;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,uBAAuB,EAAE,IAAI,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;IAClC;AACD;AAED,MAAM,oDAAoD,CAAA;AACxD,IAAA,iBAAiB;AACjB,IAAA,OAAO;AACP,IAAA,oBAAoB;IAEpB,WAAA,CAAa,iBAA2D,EAAE,IAAyB,EAAA;AACjG,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,uDAAuD,CAAC;QACjF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC;IAChH;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAE3B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC5B,YAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;AACpC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,gBAAgB,CAAE,OAAgB,EAAA;QAChC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC;QAE3D,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;QACrC;aAAO;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QACnC;IACF;AAEA,IAAA,WAAW,CAAE,QAAgB,EAAA;QAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC9C;AACD;AAED,MAAM,wCAAwC,CAAA;AAC5C,IAAA,IAAI;AACJ,IAAA,cAAc;AACd,IAAA,KAAK;AACL,IAAA,cAAc;AACd,IAAA,0BAA0B;AAC1B,IAAA,8BAA8B;AAC9B,IAAA,6BAA6B;AAE7B,IAAA,WAAA,CAAa,cAAkD,EAAE,KAAa,EAAE,IAAyB,EAAA;AACvG,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,+DAA+D,CAAC;QACrG,IAAI,CAAC,0BAA0B,GAAG,IAAI,iDAAiD,CAAC,IAAI,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,8BAA8B,GAAG,IAAI,kDAAkD,CAAC,IAAI,CAAC;QAClG,IAAI,CAAC,6BAA6B,GAAG,IAAI,oDAAoD,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3G;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE;AACzC,QAAA,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,EAAE;AAClD,QAAA,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE;IAChD;AAEA,IAAA,WAAW,CAAE,QAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,QAAQ,CAAC;AACrD,QAAA,IAAI,CAAC,8BAA8B,CAAC,WAAW,CAAC,QAAQ,CAAC;AACzD,QAAA,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,QAAQ,CAAC;QACxD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACxC;IAEA,SAAS,GAAA;QACP,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACpB;AAEA,IAAA,4BAA4B,CAAE,OAAgB,EAAA;AAC5C,QAAA,IAAI,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,OAAO,CAAC;IAC9D;IAEA,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,8BAA8B,CAAC,SAAS,EAAE;IACxD;AACD;AAED,MAAM,8CAA8C,CAAA;AAClD,IAAA,cAAc;AACd,IAAA,OAAO;AACP,IAAA,cAAc;IAEd,WAAA,CAAa,cAAkD,EAAE,OAAkC,EAAA;AACjG,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC;IACvG;AAEA,IAAA,IAAI,CAAE,YAAoB,EAAA;QACxB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAC9B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,GAAG,YAAY,CAAC;IAClF;AAEA,IAAA,gBAAgB,CAAE,eAAuB,EAAA;AACvC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC;IAC3C;AAEA,IAAA,gBAAgB,CAAE,OAAgB,EAAA;QAChC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC;QAE3D,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;QACrC;aAAO;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QACnC;IACF;AACD;AAED,MAAM,kCAAkC,CAAA;AACtC,IAAA,OAAO,UAAU,GAAG,yCAAyC;AAC7D,IAAA,eAAe;AACf,IAAA,oBAAoB;AACpB,IAAA,kBAAkB;AAClB,IAAA,yBAAyB;AACzB,IAAA,uBAAuB;AACvB,IAAA,sBAAsB;AAEtB,IAAA,WAAA,CAAa,eAAoC,EAAA;AAC/C,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe;QACtC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iDAAiD,CAAC;AACxG,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,wCAAwC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvM,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,wCAAwC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,0GAA0G,CAAC,CAAC;AAC9N,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,8CAA8C,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAoB,+CAA+C,CAAC,CAAC;QACtL,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC;IACnF;IAEA,IAAI,GAAA;AACF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACxG,QAAA,IAAI,iBAAiB;AAErB,QAAA,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,UAAU,CAAC,EAAE;YAClD,iBAAiB,GAAG,CAAC;QACvB;aAAO;AACL,YAAA,iBAAiB,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;QAChD;AAEA,QAAA,IAAI,iBAAiB,IAAI,CAAC,EAAE;YAC1B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,SAAS,EAAE,CAAC;AAC9G,YAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,iBAAiB,CAAC;QACnD;QAEA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;AACjE,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAEhF,QAAA,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,SAAS,EAAE;QAErE,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,sBAAsB,EAAE;IAC/B;AAEA,IAAA,SAAS,CAAE,aAAqB,EAAA;QAC9B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;AAEhD,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,KAAK,KAAI;AAChF,YAAA,iBAAiB,CAAC,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC;AACtD,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,sBAAsB,EAAE;AAE7B,QAAA,IAAI,aAAa,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAChC;aAAO;AACL,YAAA,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE;QAC9C;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM;AAEnD,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,sBAAsB,EAAE;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE;YAC3D,MAAM,iBAAiB,GAAG,IAAI,wCAAwC,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC;AAEnG,YAAA,iBAAiB,CAAC,WAAW,CAAC,YAAY,CAAC;AAE3C,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAC/C,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC;YACzC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;YAE5C,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC/B;IACF;IAEA,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC;QAC/D;IACF;IAEA,sBAAsB,GAAA;QACpB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,sBAAsB,EAAE;AAClE,YAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACtD;aAAO;AACL,YAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACnD,YAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC7G;IACF;AAEA,IAAA,UAAU,CAAE,kBAA0B,EAAA;AACpC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM;QACnD,IAAI,YAAY,GAAG,kBAAkB;AAErC,QAAA,IAAI,kBAAkB,IAAI,YAAY,EAAE;AACtC,YAAA,YAAY,GAAG,YAAY,GAAG,CAAC;QACjC;AAEA,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE;IAClF;;;ACxUF,MAAM,YAAY,CAAA;AAChB,IAAA,OAAO,UAAU,GAAG,kBAAkB;AAEtC,IAAA,OAAO;AACP,IAAA,wBAAwB;AACxB,IAAA,gCAAgC;AAChC,IAAA,gCAAgC;AAChC,IAAA,SAAS;AACT,IAAA,kBAAkB;AAClB,IAAA,kBAAkB;AAElB,IAAA,WAAA,CAAa,OAA4B,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC;QACpF,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC;QAC9F,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC;QACpG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC;QACrE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC;QAC/E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC;IAClF;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;AACnC,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC/B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AACvC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC7B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AACvC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC9B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AAEA,IAAA,gBAAgB,CAAE,gBAAyB,EAAA;QACzC,oBAAoB,CAAC,gBAAgB,CAAC;AAEtC,QAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;AAC9C,QAAA,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxD;IAEA,iBAAiB,GAAA;;AAEf,QAAA,MAAM,iBAAiB,GAAG,oBAAoB,EAAE;QAEhD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;YACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;QACtC;IACF;AAEA,IAAA,iBAAiB,CAAE,KAAwB,EAAA;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;AAEnC,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,KAAK,CAAC,cAAc,EAAE;QACxB;IACF;AAEA,IAAA,uBAAuB,CAAE,gBAAyB,EAAA;QAChD,MAAM,aAAa,GAAG,gBAAgB,GAAG,oCAAoC,GAAG,2CAA2C;QAE3H,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAEtD,QAAA,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,aAAa,CAAC;AAC5D,QAAA,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC5D;;;ACpEF,MAAM,cAAc,CAAA;AAClB,IAAA,OAAO,UAAU,GAAG,oBAAoB;AACxC,IAAA,OAAO;AACP,IAAA,wBAAwB;AACxB,IAAA,uBAAuB;AACvB,IAAA,oBAAoB;AACpB,IAAA,iBAAiB;AACjB,IAAA,aAAa;AACb,IAAA,UAAU;AACV,IAAA,eAAe;AACf,IAAA,aAAa;AAEb,IAAA,WAAA,CAAa,OAA4B,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAmB,yCAAyC,CAAC;QAC9G,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAmB,0CAA0C,CAAC;AAC9G,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,kCAAkC,CAAC;AACjE,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,gCAAgC,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,2BAA2B,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACxD,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,6BAA6B,CAAC;AACvD,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,mBAAmB,CAAC;IAC7C;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;AAClC,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAChC,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,gBAAgB,EAAE;QAEvB,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,oBAAoB,GAAA;AAClB,QAAA,MAAM,wBAAwB,GAAG,oBAAoB,EAAE;QAEvD,IAAI,CAAC,wBAAwB,CAAC,eAAe;YAAE;QAE/C,IAAI,CAAC,kBAAkB,EAAE;;AAGzB,QAAA,IAAI,YAAsC;AAE1C,QAAA,IAAI,wBAAwB,CAAC,KAAK,EAAE;AAClC,YAAA,YAAY,GAAG,IAAI,CAAC,wBAAwB;QAC9C;aAAO;AACL,YAAA,YAAY,GAAG,IAAI,CAAC,uBAAuB;QAC7C;AAEA,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;IACpC;AAEA,IAAA,kBAAkB,CAAE,KAAyB,EAAA;QAC3C,KAAK,CAAC,cAAc,EAAE;AAEtB,QAAA,IAAI,KAAK;QAET,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE;AACxD,YAAA,IAAI,YAAY,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC7C,gBAAA,KAAK,GAAG,YAAY,CAAC,KAAK,KAAK,IAAI;gBAEnC;YACF;QACF;;AAGA,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE;YAChB;QACF;;;QAIA,oBAAoB,CAAC,KAAK,CAAC;QAE3B,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,SAAS,EAAE;QAChB,IAAI,CAAC,uBAAuB,EAAE;IAChC;IAEA,uBAAuB,GAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,eAAe,EAAE;AAEjD,QAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC;QAEhE,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;QAChD;aAAO;YACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;QAC/C;QAEA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;IACnD;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;AAC1C,YAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC;QAClE;QACA,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAEnD,MAAM,iBAAiB,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACxD,QAAA,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,kCAAkC,CAAC;AAChE,QAAA,iBAAiB,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACjD,QAAA,iBAAiB,CAAC,IAAI,CAAC,0FAA0F,CAAC;AAElH,QAAA,iBAAiB,CAAC,YAAY,CAAC,2CAA2C,CAAC;IAC7E;IAEA,SAAS,GAAA;QACP,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;QACzC,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEA,gBAAgB,GAAA;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC;AAE5E,QAAA,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,yBAAyB,CAAC;IACxD;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;IAC7C;IAEA,gBAAgB,GAAA;QACd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3C;AAEA,IAAA,OAAO,eAAe,GAAA;AACpB,QAAA,OAAO,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,GAAG,KAAK;IACxE;;;AC3IF,MAAM,SAAS,CAAA;AACb,IAAA,OAAO,UAAU,GAAG,eAAe;AAEnC,IAAA,OAAO,kBAAkB,GAAG,+BAA+B;AAC3D,IAAA,OAAO,eAAe,GAAG,6BAA6B;AACtD,IAAA,OAAO,gBAAgB,GAAG,8BAA8B;AACxD,IAAA,OAAO,cAAc,GAAG,2BAA2B;AACnD,IAAA,OAAO,cAAc,GAAG,4BAA4B;AACpD,IAAA,OAAO,iBAAiB,GAAG,6BAA6B;AACxD,IAAA,OAAO,gBAAgB,GAAG,wBAAwB;AAClD,IAAA,OAAO,eAAe,GAAG,oBAAoB;AAC7C,IAAA,OAAO,iBAAiB,GAAG,4BAA4B;AACvD,IAAA,OAAO,uBAAuB,GAAG,oCAAoC;AACrE,IAAA,OAAO,mBAAmB,GAAG,yBAAyB;AACtD,IAAA,OAAO,oBAAoB,GAAG,iCAAiC;AAC/D,IAAA,OAAO,uBAAuB,GAAG,qCAAqC;AAEtE,IAAA,OAAO;AACP,IAAA,gBAAgB;AAChB,IAAA,iBAAiB;AACjB,IAAA,SAAS;AAET,IAAA,WAAA,CAAa,OAA4B,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAC/C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAoB,0BAA0B,CAAC;QACzF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;IAC5D;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEA,gBAAgB,GAAA;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC;IAC3D;;IAGA,cAAc,GAAA;QACZ,IAAI,yBAAyB,GAAG,CAAC;QACjC,IAAI,qBAAqB,GAAG,CAAC;QAE7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,KAAI;AACnC,YAAA,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;AACrB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC;AACzD,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC;YAEnE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACzB,gBAAA,IAAI,yBAAyB,KAAK,CAAC,EAAE;AACnC,oBAAA,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC;gBAC9D;qBAAO,IAAI,yBAAyB,KAAK,CAAC,IAAI,qBAAqB,KAAK,CAAC,EAAE;AACzE,oBAAA,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC;gBAC9D;qBAAO;AACL,oBAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC;AACzC,oBAAA,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC;AAC7C,oBAAA,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,CAAC;AACzD,oBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;gBACjC;gBACA,yBAAyB,IAAI,CAAC;YAChC;iBAAO;AACL,gBAAA,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC;AAC5C,gBAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;AAC1C,gBAAA,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC;gBAC5D,qBAAqB,IAAI,CAAC;YAC5B;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;IACjD;;;IAIA,mBAAmB,GAAA;QACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,KAAI;AACnC,YAAA,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;AACrB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC;AACzD,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC;AAEnE,YAAA,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC7B,gBAAA,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACd,gBAAA,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;AAC1B,gBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;AAC/B,gBAAA,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,CAAC;AACzD,gBAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC;AACzC,gBAAA,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC;AAC7C,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;gBAE/C,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;AAC5C,oBAAA,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;AAC3C,oBAAA,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,mBAAmB,CAAC;AACvE,oBAAA,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC;oBAC1D,eAAe,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC;AACzD,oBAAA,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC;oBACzE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAW;oBAChD,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAW;AACvE,oBAAA,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtF,oBAAA,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC;gBACpD;;gBAGA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,oBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC;oBAC3E,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,KAAI;wBACrC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,CAAC;AACvD,oBAAA,CAAC,CAAC;oBACF,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC/E;qBAAO;;AAEL,oBAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC,gBAAgB,CAAC;oBAE9F,IAAI,gBAAgB,EAAE;wBACpB,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;oBACjD;yBAAO;AACL,wBAAA,MAAM,oBAAoB,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC,gBAAgB,CAAwB;wBAC7H,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;oBACrD;gBACF;gBAEA,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,sBAAsB,EAAE;AAC/B,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;;IAGA,cAAc,GAAA;QACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAI;YACzC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,KAAI;gBACtE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5B,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;;;IAIA,sBAAsB,GAAA;AACpB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB;AAC3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;QAExC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;IACpG;IAEA,gBAAgB,GAAA;QACd,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AACtC,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE;AACnF,YAAA,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC;AAE/E,YAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC3B,gBAAA,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC;AACxC,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC9E,gBAAA,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC;AACvD,gBAAA,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;AACrD,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;gBAC/C,IAAI,CAAC,iBAAiB,EAAE;AACxB,gBAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC;AACvG,gBAAA,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,sBAAsB,EAAE;;gBAG7B,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,KAAI;wBAC3E,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC;AAC1D,oBAAA,CAAC,CAAC;gBACJ;YACF;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,sBAAsB,GAAA;AACpB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC;AAE3E,QAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;QACpE;aAAO;YACL,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC;QACjE;IACF;IAEA,iBAAiB,GAAA;QACf,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,sBAAsB,EAAE;IAC/B;AAEA,IAAA,OAAO,UAAU,CAAE,SAAiB,EAAE,IAAyB,EAAE,QAAgB,EAAA;;QAE/E,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;;AAGhE,QAAA,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,OAAO;;;AAK7B,QAAA,OAAO,OAAO,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC;AAAE,gBAAA,OAAO,OAAO;YACxC,OAAO,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE;QACpE;IACF;;;ACxMF,MAAM,YAAY,CAAA;AAChB,IAAA,OAAO,UAAU,GAAG,kBAAkB;AAEtC,IAAA,aAAa;AACb,IAAA,QAAQ;AACR,IAAA,iBAAiB;AACjB,IAAA,WAAW;AACX,IAAA,cAAc;AACd,IAAA,iBAAiB;AACjB,IAAA,aAAa;AAEb,IAAA,WAAA,CAAa,OAA4B,EAAA;AACvC,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAmB,wBAAwB,CAAC;QACnF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC;QACzE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,uBAAuB,CAAC;QACvE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,yBAAyB,CAAC;AAC5E,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;IAEA,IAAI,GAAA;;QAEF,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;AACxC,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM;AAE9B,YAAA,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;gBAClF,IAAI,CAAC,kBAAkB,EAAE;YAC3B;AACF,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,4BAA4B,EAAE;;AAGnC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC;;AAG7C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;AACpE,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAChC,QAAA,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE;YAC1C,IAAI,CAAC,KAAK,EAAE;QACd;aAAO;YACL,IAAI,CAAC,WAAW,EAAE;QACpB;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1C,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;QAC1C;QAEA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC;AAChE,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;QAC3B;IACF;IAEA,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;QAE3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,KAAI;AAC5C,YAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;AAC3D,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvC;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,4BAA4B,GAAA;AAC1B;;;;AAIE;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC;AACtE,QAAA,MAAM,mBAAmB,GAAG,cAAc,CAAC,IAAI,EAAE;;QAGjD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QAChD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,0BAA0B,CAAC;;AAEnG,QAAA,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;AACtC,QAAA,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC;AAC7C,QAAA,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAW,CAAC;AAC/D,QAAA,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAW,CAAC;AAClF,QAAA,OAAO,CAAC,SAAS,GAAG,mBAAmB;AACvC,QAAA,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QACvC,cAAc,CAAC,MAAM,EAAE;IACzB;AAEA,IAAA,oBAAoB,CAAE,aAAqB,EAAA;AACzC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,CAAA,oEAAA,EAAuE,aAAa,CAAA,MAAA,CAAQ,CAAC;IACrJ;IAEA,kBAAkB,GAAA;AAChB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1C,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC;QAE7E,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,qBAAqB,CAAC,MAAM,EAAE;AAChC,gBAAA,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC;YAC3C;iBAAO;AACL,gBAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;YAC1C;QACF;aAAO;YACL,qBAAqB,CAAC,MAAM,EAAE;QAChC;IACF;IAEA,aAAa,GAAA;QACX,IAAI,CAAC,uBAAuB,EAAE;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM;AAC3C,QAAA,OAAO,KAAK,GAAG,CAAC,GAAG,CAAA,EAAG,KAAK,CAAA,SAAA,CAAW,GAAG,EAAE;IAC7C;AAEA,IAAA,kBAAkB,CAAE,KAAwB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,IAAI,EAAE;QACb;aAAO;YACL,IAAI,CAAC,KAAK,EAAE;QACd;QACA,KAAK,CAAC,cAAc,EAAE;IACxB;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;AAC7E,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC;AAC3C,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACzC,IAAI,CAAC,WAAW,EAAE;YACpB;QACF;IACF;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC;AAC3C,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;IAChF;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC;IACjD;AAEA,IAAA,kBAAkB,CAAE,MAAc,EAAA;QAChC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD;IAEA,qBAAqB,GAAA;QACnB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAgB,CAAC,CAAC,SAAS,CAAC;AAE7G,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,SAAS;IAClD;IAEA,iBAAiB,CAAE,SAA8B,EAAE,eAAuB,EAAA;QACxE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;AAC7B,YAAA,OAAO,KAAK;QACd;QAEA,MAAM,WAAW,GAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAiB,CAAC,SAAS;QAE/D,OAAO,WAAW,GAAG,eAAe;IACtC;AAEA,IAAA,oBAAoB,CAAE,eAAuB,EAAA;AAC3C,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE;QACzE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;;QAIzH,IAAI,iBAAiB,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE;YAC1D,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,MAAM,CAAgB,CAAC;QACvF;AAEA,QAAA,OAAO,iBAAiB;IAC1B;IAEA,WAAW,GAAA;QACT,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAgB;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAgB;AAEzD,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACvD,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY;;;AAItC,QAAA,IAAI,gBAAgB,CAAC,YAAY,KAAK,IAAI,EAAE;AAC1C,YAAA,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;YAC3C;QACF;;AAGA,QAAA,IAAI,MAAM,IAAI,kBAAkB,GAAG,EAAE,EAAE;AACrC,YAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC;QACF;;QAGA,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;AAEvE,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC;QACF;QAEA,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAgB;AAC1F,QAAA,MAAM,QAAQ,GAAG,mBAAmB,EAAE,SAAS;AAC/C,QAAA,MAAM,cAAc,GAAG,mBAAmB,EAAE,YAAY,IAAI,CAAC;;QAG7D,MAAM,gBAAgB,GAAG,QAAQ,IAAI,cAAc,GAAG,GAAG,CAAC;AAC1D,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;IACzE;;AAGF,MAAM,aAAa,CAAA;AACjB,IAAA,OAAO,UAAU,GAAG,mBAAmB;AAEvC,IAAA,OAAO;AACP,IAAA,aAAa;AACb,IAAA,iBAAiB;AACjB,IAAA,MAAM;AACN,IAAA,WAAW;AACX,IAAA,YAAY;IAEZ,WAAA,CAAa,OAA4B,EAAE,YAA0B,EAAA;AACnE,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa;AAC/C,QAAA,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC;AACrE,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;IAClC;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACrE;IAEA,gBAAgB,GAAA;QACd,MAAM,KAAK,GAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAa,CAAC,WAAW,EAAE;QAEzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,KAAI;AACzC,YAAA,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;AAC7B,YAAA,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAE1D,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACzB,SAAS,CAAC,IAAI,EAAE;YAClB;iBAAO;gBACL,SAAS,CAAC,IAAI,EAAE;YAClB;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC5C,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;IACjC;;;AChQF,MAAM,iBAAiB,CAAA;AACrB,IAAA,cAAc;AACd,IAAA,kBAAkB;AAClB,IAAA,gBAAgB;AAChB,IAAA,cAAc;AAEd,IAAA,WAAA,CAAa,QAA6B,EAAE,gBAAwB,EAAE,cAAsB,EAAA;QAC1F,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,yCAAyC,CAAC;QAC9E,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC;AACvF,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;IACtC;AAEA,IAAA,mBAAmB,GAAG,CAAC,cAAsB,KAAI;AAC/C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;AAExC,QAAA,IAAI,cAAc,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,SAAA,CAAW,CAAC;QACnE;aAAO;YACL,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,SAAA,CAAW,CAAC;QACjE;AACF,IAAA,CAAC;AACF;AAED,MAAM,iBAAiB,CAAA;AACrB,IAAA,UAAU;AACV,IAAA,QAAQ;AACR,IAAA,IAAI;AACJ,IAAA,kBAAkB;AAClB,IAAA,SAAS;AACT,IAAA,UAAU;AACV,IAAA,QAAQ;AAER,IAAA,WAAA,CAAa,UAAsB,EAAE,QAAoC,EAAE,IAAY,EAAA;AACrF,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,OAA6B,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACpN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAmB,8HAA8H,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QACzN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;AAElD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAmB,wLAAwL,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEtP,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC9B;IACF;IAEA,IAAI,GAAG,MAAK;QACV,IAAI,CAAC,qBAAqB,EAAE;AAE5B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAClF;aAAO;YACL,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;AACpC,gBAAA,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AACzB,oBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AACzE,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;;;AAGlB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;gBACtE,KAAK,CAAC,eAAe,EAAE;AACzB,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;gBACnC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAEjC,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE;;;;;oBAKxC,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC;AAE1C,oBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,wBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBACtG;yBAAO;AACL,wBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;oBAClF;AAEA,oBAAA,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;AACpC,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;oBAChC;gBACF;AAEA,gBAAA,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;oBAC5B,IAAI,CAAC,YAAY,EAAE;gBACrB;AAEA,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;gBACpF;qBAAO;AACL,oBAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;gBACnE;AACF,YAAA,CAAC,CAAC;QACJ;AACF,IAAA,CAAC;IAEO,aAAa,GAAG,MAAK;AAC3B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AACxE,IAAA,CAAC;IAEO,qBAAqB,GAAG,MAAK;;;AAGnC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACjC,cAAE,IAAI,CAAC,sBAAsB;AAC7B,cAAE,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;AAE5B,QAAA,IAAI,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE;YACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACpC;AACF,IAAA,CAAC;IAED,sBAAsB,GAAG,MAAc;AACrC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,iBAAiB,KACpD,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC;AAC3C,gBAAA,iBAAiB,CAAC,sBAAsB,EAAE,CAC3C;QACH;QAEA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;AACxC,IAAA,CAAC;IAED,YAAY,GAAG,MAAK;QAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE;YACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACpC;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,YAAY,EAAE,CAAC;QAC1F;AACF,IAAA,CAAC;IAED,aAAa,GAAG,MAAa;;;QAG3B,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AAE1F,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CACrC,CAAC,YAAY,EAAE,iBAAiB,KAAK,YAAY,GAAG,iBAAiB,CAAC,aAAa,EAAE,EAAE,CAAC,CACzF;QACH;aAAO;AACL,YAAA,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM;QACtC;AAEA,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;IAED,aAAa,GAAG,MAAc;AAC5B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,aAAa,EAAE,CAAC;QAChG;aAAO;YACL,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM;QACvD;AACF,IAAA,CAAC;IAED,kBAAkB,GAAG,MAA6B;AAChD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC;AAClB,cAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI;AACjG,cAAE,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;AAE5D,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE;YAC1E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACnC;AAEA,QAAA,OAAO,MAAM;AACf,IAAA,CAAC;AAED,IAAA,kBAAkB,GAAG,CAAC,QAAgB,KAAI;AACxC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACpG;iBAAO;AACL,gBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACxG;QACF;aAAO;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC9B;AACF,IAAA,CAAC;IAED,qBAAqB,GAAG,MAAK;AAC3B,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE;;;;;;AAMxC,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAEjG,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;gBACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;YACvC;YAEA;QACF;AAEA,QAAA,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AAErD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;QACnG;AACF,IAAA,CAAC;AAED,IAAA,iBAAiB,GAAG,CAAC,QAAiB,KAAI;AACxC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvG;aAAO;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5E;QAEA,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;YACtC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;QACxC;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;AACpC,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;QACzC;AACF,IAAA,CAAC;AAED,IAAA,cAAc,GAAG,CAAC,KAAyB,EAAE,SAAkB,KAAI;AACjE,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5G;aAAO;YACL,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;AACpC,gBAAA,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE;AAC7B,oBAAA,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;gBACtC;AACF,YAAA,CAAC,CAAC;QACJ;AACF,IAAA,CAAC;AAED,IAAA,mBAAmB,GAAG,CAAC,SAAkB,KAAI;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;QAC3C;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC1G;aAAO;YACL,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;AACpC,gBAAA,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;AACtC,YAAA,CAAC,CAAC;QACJ;AACF,IAAA,CAAC;AACF;AAED,MAAM,UAAU,CAAA;AACd,IAAA,OAAO,UAAU,GAAG,gBAAgB;AACpC,IAAA,WAAW;AACX,IAAA,iBAAiB;AACjB,IAAA,kBAAkB;AAClB,IAAA,SAAS;AACT,IAAA,oBAAoB;IACpB,YAAY,GAAW,CAAC;AAExB,IAAA,WAAA,CAAa,WAAgC,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACrL,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC9D,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,IAAI;AAClF,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAqB,oDAAoD,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9L;IAEA,IAAI,GAAG,MAAK;AACV,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAEhF,IAAI,CAAC,cAAc,EAAE;AACvB,IAAA,CAAC;IAEO,aAAa,GAAG,MAAK;QAC3B,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI;AACxH,IAAA,CAAC;IAEO,4BAA4B,GAAG,MAAK;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;QACxC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/D,IAAA,CAAC;IAEO,kBAAkB,GAAG,MAAK;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;QAErB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAI;AACpD,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;AAC3B,gBAAA,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAC5C;iBAAO;AACL,gBAAA,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;YACtD;AACF,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;IAEO,wBAAwB,GAAG,MAAK;AACtC,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;AACnG,IAAA,CAAC;IAED,cAAc,GAAG,MAAK;QACpB,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,4BAA4B,EAAE;QACnC,IAAI,CAAC,kBAAkB,EAAE;AAC3B,IAAA,CAAC;AAED,IAAA,YAAY,GAAG,CAAC,KAAyB,EAAE,SAAkB,KAAI;AAC/D,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAE1G,IAAI,CAAC,cAAc,EAAE;AACvB,IAAA,CAAC;AAED,IAAA,eAAe,GAAG,CAAC,kBAAuC,EAAE,SAAkB,KAAI;AAChF,QAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAEnG,IAAI,CAAC,cAAc,EAAE;AACvB,IAAA,CAAC;;;ACjUH,IAAK,YAIJ;AAJD,CAAA,UAAK,YAAY,EAAA;AACf,IAAA,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU;AACV,IAAA,YAAA,CAAA,YAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAqB;AACrB,IAAA,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACR,CAAC,EAJI,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AAMjB,MAAM,aAAa,CAAA;AACjB,IAAA,QAAQ;AACR,IAAA,MAAM;AACN,IAAA,OAAO;IAEP,WAAA,CAAa,QAA0B,EAAE,MAAgC,EAAA;AACvE,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;AAC/C,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IAClD;IAEA,gBAAgB,GAAA;QACd,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,+BAA+B,EAAE;AACjD,QAAA,CAAC,CAAC;IACJ;IAEA,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC;IACnC;AACD;AAED,MAAM,gBAAgB,CAAA;AACpB,IAAA,eAAe;AACf,IAAA,SAAS;AACT,IAAA,EAAE;AACF,IAAA,YAAY;AACZ,IAAA,cAAc;AACd,IAAA,iBAAiB;AACjB,IAAA,QAAQ;AAER,IAAA,WAAA,CAAa,eAAyB,EAAE,SAA8B,EAAE,YAA0B,EAAA;AAChG,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAW;AAC7C,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;QAEhC,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,UAAU,EAAE;YACjD,IAAI,CAAC,+BAA+B,EAAE;QACxC;aAAO;YACL,IAAI,CAAC,2BAA2B,EAAE;QACpC;IACF;IAEA,+BAA+B,GAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAExH,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5G;IAEA,2BAA2B,GAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;IAEA,SAAS,GAAA;QACP,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC1D;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,OAAiB;QAErB,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;AAC3C,YAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;QACzI;aAAO;YACL,OAAO,GAAG,EAAE;QACd;AAEA,QAAA,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC;IACzB;IAEA,+BAA+B,GAAA;QAC7B,IAAI,CAAC,eAAe,CAAC,+BAA+B,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAC9E;AAEA,IAAA,cAAc,CAAE,UAAkB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;QAChC;IACF;AAEA,IAAA,gBAAgB,CAAE,OAAgB,EAAA;QAChC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC;AAC7D,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;QACzD,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QACrC;aAAO;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnC;IACF;AACD;AAED,MAAM,QAAQ,CAAA;AACZ,IAAA,OAAO,UAAU,GAAG,aAAa;AACjC,IAAA,SAAS;AAET,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AAEnB,QAAA,CAAC,CAAC,CAAA,cAAA,EAAiB,QAAQ,CAAC,UAAU,CAAA,EAAA,CAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,KAAI;AACpE,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;AAC7E,QAAA,CAAC,CAAC;AAEF,QAAA,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACnE,KAAK,MAAM,gBAAgB,IAAI,QAAQ,CAAC,iBAAiB,IAAI,EAAE,EAAE;AAC/D,gBAAA,IAAI,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE;AACtC,oBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,UAAU,EAAE;wBAC7E,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC,qBAAqB;wBAClF,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,2BAA2B,EAAE;oBAChE;gBACF;qBAAO;oBACL,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,gBAAgB,CAAA,CAAE,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBACvF;gBAEA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;YAC7D;QACF;IACF;IAEA,IAAI,GAAA;AACF,QAAA,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACpD,IAAI,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,EAAE;gBAC/C,KAAK,MAAM,aAAa,IAAI,QAAQ,CAAC,cAAc,IAAI,EAAE,EAAE;oBACzD,aAAa,CAAC,gBAAgB,EAAE;gBAClC;gBACA,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,UAAU,EAAE;AACrD,oBAAA,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAClE;YACF;QACF;IACF;AAEA,IAAA,IAAI,CAAE,QAA0B,EAAA;QAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ;IACxC;IAEA,+BAA+B,CAAE,iBAA+B,EAAE,OAAiB,EAAA;AACjF,QAAA,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,IAAI,EAAE,EAAE;YACtD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;AACvD,YAAA,IAAI,eAAe;AAEnB,YAAA,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,MAAM,mBAAmB,GAAG,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAEpG,gBAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,kBAAkB,KAAK,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAEzI,gBAAA,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACvD;iBAAO;gBACL,eAAe,GAAG,OAAO;YAC3B;AAEA,YAAA,cAAc,CAAC,gBAAgB,CAAC,eAAe,CAAC;YAEhD,IAAI,cAAc,CAAC,YAAY,KAAK,YAAY,CAAC,qBAAqB,EAAE;gBACtE,IAAI,eAAe,EAAE;AACnB,oBAAA,IAAI,CAAC,+BAA+B,CAAC,cAAc,CAAC,iBAAiB,CAAC;gBACxE;qBAAO;oBACL,IAAI,CAAC,+BAA+B,CAAC,cAAc,CAAC,iBAAiB,EAAE,KAAK,CAAC;gBAC/E;YACF;QACF;IACF;;;ACxKF,MAAM,2BAA2B,CAAA;AAC/B,IAAA,cAAc;AACd,IAAA,kBAAkB;AAClB,IAAA,gBAAgB;AAChB,IAAA,cAAc;AAEd,IAAA,WAAA,CAAa,QAA6B,EAAE,gBAAwB,EAAE,cAAsB,EAAA;QAC1F,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,2CAA2C,CAAC;QAChF,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,gDAAgD,CAAC;AACzF,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;IACtC;AAEA,IAAA,mBAAmB,GAAG,CAAC,cAAsB,KAAI;AAC/C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;AAExC,QAAA,IAAI,cAAc,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,UAAA,CAAY,CAAC;QACpE;aAAO;YACL,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,UAAA,CAAY,CAAC;QAClE;AACF,IAAA,CAAC;AACF;AAED,MAAM,2BAA2B,CAAA;AAC/B,IAAA,YAAY;AACZ,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,gBAAgB;AAChB,IAAA,IAAI;AACJ,IAAA,oBAAoB;AACpB,IAAA,UAAU;AACV,IAAA,QAAQ;AAER,IAAA,WAAA,CAAa,YAAkC,EAAE,QAAoC,EAAE,IAAY,EAAA;AACjG,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iDAAiD,CAAC;QACxF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,wDAAwD,CAAC;AACvG,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,2BAA2B,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,OAA6B,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACtO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAmB,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,GAAG,wGAAwG,GAAG,EAAE,CAAA,wBAAA,CAA0B,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QACnR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;IACtD;IAEA,IAAI,GAAG,MAAK;QACV,IAAI,CAAC,qBAAqB,EAAE;AAE5B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACxF;aAAO;YACL,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;AACpC,gBAAA,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AACzB,oBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAC3E,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;QACJ;AAEF,IAAA,CAAC;IAEO,aAAa,GAAG,MAAK;AAC3B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AACxE,IAAA,CAAC;IAEO,qBAAqB,GAAG,MAAK;AACnC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE;YACrE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACpC;AACF,IAAA,CAAC;IAED,aAAa,GAAG,MAAa;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,GAAG,mBAAmB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACzH;aAAO;AACL,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM;QACpC;AACF,IAAA,CAAC;IAED,iBAAiB,GAAG,MAA6B;AAC/C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE;QAC/G;aAAO;AACL,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;QACjE;AACF,IAAA,CAAC;IAED,mBAAmB,GAAG,MAAK;AACzB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE;AAE3C,QAAA,IAAI,cAAc,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAK,CAAC;QAC9D;aAAO;YACL,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,uBAAuB,EAAE,IAAI,CAAC;AAC3D,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;QACvG;AACF,IAAA,CAAC;AAED,IAAA,kBAAkB,GAAG,CAAC,QAAgB,KAAI;AACxC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1G;iBAAO;AACL,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC9G;QACF;aAAO;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC9B;AACF,IAAA,CAAC;AAED,IAAA,iBAAiB,GAAG,CAAC,QAAiB,KAAI;AACxC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC7G;aAAO;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5E;QAEA,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;QAClC;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;AACpC,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;QACtC;AACF,IAAA,CAAC;AAED,IAAA,cAAc,GAAG,CAAC,KAAyB,EAAE,SAAkB,KAAI;AACjE,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClH;aAAO;YACL,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;AACpC,gBAAA,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE;AAC7B,oBAAA,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;gBACtC;AACF,YAAA,CAAC,CAAC;QACJ;AACF,IAAA,CAAC;AACF;AAED,MAAM,oBAAoB,CAAA;AACxB,IAAA,OAAO,UAAU,GAAG,2BAA2B;AAC/C,IAAA,aAAa;AACb,IAAA,mBAAmB;AACnB,IAAA,oBAAoB;AACpB,IAAA,SAAS;IACT,YAAY,GAAW,CAAC;AAExB,IAAA,WAAA,CAAa,aAAkC,EAAA;AAC7C,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACzM,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAEhE,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAqB,wDAAwD,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/M,QAAA,IAAI,oBAAoB,CAAC,MAAM,EAAE;AAC/B,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;QAClD;aAAO;AACL,YAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAC;QACzG;IACF;IAEA,IAAI,GAAG,MAAK;AACV,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAEtF,IAAI,CAAC,8BAA8B,EAAE;QACrC,IAAI,CAAC,uCAAuC,EAAE;QAC9C,IAAI,CAAC,kBAAkB,EAAE;AAC3B,IAAA,CAAC;IAEO,aAAa,GAAG,MAAK;QAC3B,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI;AAC7H,IAAA,CAAC;IAEO,8BAA8B,GAAG,MAAK;AAC5C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;QACxC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACjE,IAAA,CAAC;IAEO,uCAAuC,GAAG,MAAK;AACrD,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;AACvG,IAAA,CAAC;IAEO,kBAAkB,GAAG,MAAK;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;QAErB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAI;AACxD,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;AAC3B,gBAAA,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAC9C;iBAAO;AACL,gBAAA,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;YACxD;AACF,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,YAAY,GAAG,CAAC,KAAyB,EAAE,SAAkB,KAAI;AAC/D,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEhH,IAAI,CAAC,8BAA8B,EAAE;QACrC,IAAI,CAAC,uCAAuC,EAAE;QAC9C,IAAI,CAAC,kBAAkB,EAAE;AAC3B,IAAA,CAAC;;;AC7MH,MAAM,oBAAoB,CAAA;AACxB,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,aAAa;AACb,IAAA,WAAW;AAEX,IAAA,WAAA,CAAa,IAAyB,EAAA;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAmB,sBAAsB,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAmB,cAAc,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACtD;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;IAC1B;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IAC/B;AAEA,IAAA,WAAW,CAAE,QAAgB,EAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,QAAQ,EAAE;QAE7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA,EAAG,QAAQ,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;IAC/B;AACD;AAED,MAAM,2BAA2B,CAAA;AAC/B,IAAA,aAAa;AACb,IAAA,OAAO;AACP,IAAA,oBAAoB;IAEpB,WAAA,CAAa,aAA8B,EAAE,IAAyB,EAAA;AACpE,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAoB,uBAAuB,CAAC;QACpE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC;IAChF;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAE3B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC5B,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;AAChC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,gBAAgB,CAAE,OAAgB,EAAA;QAChC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC;IAC7D;AAEA,IAAA,WAAW,CAAE,QAAgB,EAAA;QAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC9C;AACD;AAED,MAAM,eAAe,CAAA;AACnB,IAAA,UAAU;AACV,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,kBAAkB;AAClB,IAAA,yBAAyB;AAEzB,IAAA,WAAA,CAAa,UAAwB,EAAE,KAAa,EAAE,IAAyB,EAAA;AAC7E,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,CAAC,kBAAkB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,yBAAyB,GAAG,IAAI,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC;IAC9E;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE;IACvC;AAEA,IAAA,WAAW,CAAE,QAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC7C,QAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,QAAQ,CAAC;IACtD;IAEA,SAAS,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACpB;AAEA,IAAA,4BAA4B,CAAE,OAAgB,EAAA;AAC5C,QAAA,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,OAAO,CAAC;IAC1D;IAEA,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IAC3C;AACD;AAED,MAAM,qBAAqB,CAAA;AACzB,IAAA,UAAU;AACV,IAAA,OAAO;AACP,IAAA,cAAc;IAEd,WAAA,CAAa,UAAwB,EAAE,OAAkC,EAAA;AACvE,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;IAClE;AAEA,IAAA,IAAI,CAAE,YAAoB,EAAA;QACxB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC1B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,YAAY,CAAC;IACxE;AAEA,IAAA,gBAAgB,CAAE,eAAuB,EAAA;AACvC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC;IAC3C;AAEA,IAAA,gBAAgB,CAAE,OAAgB,EAAA;QAChC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC;IAC7D;AACD;AAED,MAAM,YAAY,CAAA;AAChB,IAAA,OAAO,UAAU,GAAG,kBAAkB;AACtC,IAAA,WAAW;AACX,IAAA,gBAAgB;AAChB,IAAA,cAAc;AACd,IAAA,mBAAmB;AACnB,IAAA,gBAAgB;AAChB,IAAA,2BAA2B;AAE3B,IAAA,WAAA,CAAa,WAAgC,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACjE,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC;QACvF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAChE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjI,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAoB,oBAAoB,CAAC,CAAC;IAC5H;IAEA,IAAI,GAAA;AACF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,UAAU,EAAE,CAAC;QACxF,IAAI,iBAAiB,GAAG,CAAC;AAEzB,QAAA,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC5C,YAAA,iBAAiB,GAAG,IAAI,CAAC,2BAA2B;QACtD;aAAO;YACL,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAI;gBACpC,IAAI,QAAQ,EAAE;AACZ,oBAAA,iBAAiB,GAAG,KAAK,GAAG,CAAC;gBAC/B;AACF,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,IAAI,iBAAiB,IAAI,CAAC,EAAE;YAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;AAClG,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/C;QAEA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AACzD,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;QAEpE,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,kBAAkB,EAAE;IAC3B;AAEA,IAAA,SAAS,CAAE,aAAqB,EAAA;QAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;AAE5C,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,KAAK,KAAI;AACxE,YAAA,aAAa,CAAC,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC;AAClD,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IAChC;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM;AAE/C,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACxC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;YACnD,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC;AAEtE,YAAA,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE;AAE7C,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;AACvC,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;YAExC,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC/B;IACF;IAEA,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC;QAC5D;aAAO;YACL,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC;QAC3D;IACF;IAEA,kBAAkB,GAAA;QAChB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,gBAAgB,EAAE;AACxD,YAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAClD;aAAO;AACL,YAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC/C,YAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAC/F;IACF;AAEA,IAAA,UAAU,CAAE,kBAA0B,EAAA;AACpC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM;QAC/C,IAAI,YAAY,GAAG,kBAAkB;AAErC,QAAA,IAAI,kBAAkB,IAAI,YAAY,EAAE;AACtC,YAAA,YAAY,GAAG,YAAY,GAAG,CAAC;QACjC;AAEA,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE;IACrE;;;AC3OF,MAAe,sCAAsC,CAAA;AACnD,IAAA,SAAS;AACT,IAAA,eAAe;AAEf,IAAA,WAAA,CAAa,SAA8B,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7D;AAUA,IAAA,gBAAgB,CAAE,OAAgB,EAAA;QAChC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,SAAS,EAAE;QAClB;aAAO;YACL,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,uBAAuB,EAAE,IAAI,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnC;IACF;AACD;AAED,MAAM,+CAAgD,SAAQ,sCAAsC,CAAA;AAClG,IAAA,MAAM;IAEN,WAAA,CAAa,SAA8B,EAAE,MAAgC,EAAA;QAC3E,KAAK,CAAC,SAAS,CAAC;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;IAEA,QAAQ,GAAA;QACN,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;IAC5B;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;IACpC;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;IAClC;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;IACrB;AACD;AAED,MAAM,+CAAgD,SAAQ,sCAAsC,CAAA;AAClG,IAAA,MAAM;IAEN,WAAA,CAAa,SAA8B,EAAE,MAAkC,EAAA;QAC7E,KAAK,CAAC,SAAS,CAAC;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC1D;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9D;IAEA,SAAS,GAAA;QACP,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAC7B,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;AAC7B,QAAA,CAAC,CAAC;IACJ;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;IACxB;AACD;AAED,MAAM,6CAA6C,CAAA;IACjD,OAAO,yCAAyC,CAAC,SAA8B,EAAA;QAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAmB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAEvF,QAAA,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,OAAO,IAAI,+CAA+C,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAClF;aAAO;AACL,YAAA,OAAO,IAAI,+CAA+C,CAAC,SAAS,EAAE,MAAM,CAAC;QAC/E;IACF;AACD;AAED,MAAM,4BAA4B,CAAA;AAChC,IAAA,UAAU;AACV,IAAA,IAAI;AACJ,IAAA,mBAAmB;IAEnB,WAAA,CAAa,UAA+C,EAAE,IAAyB,EAAA;AACrF,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,6CAA6C,CAAC,yCAAyC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjL;AAEA,IAAA,gBAAgB,CAAE,OAAgB,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC;AACxD,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,kBAAkB,KAAK,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxG;IAEA,YAAY,GAAA;QACV,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACrD;IAEA,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,kBAAkB,KAAK,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IAC7F;AACD;AAED,MAAM,+BAA+B,CAAA;AACnC,IAAA,UAAU;AACV,IAAA,OAAO;AACP,IAAA,cAAc;AAEd,IAAA,WAAA,CAAa,UAA+C,EAAE,OAAkC,EAAE,UAA4B,EAAA;AAC5H,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA,6BAAA,EAAgC,UAAU,CAAA,QAAA,CAAU,CAAC;IAC1F;AAEA,IAAA,gBAAgB,CAAE,YAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;IACxC;AAEA,IAAA,gBAAgB,CAAE,OAAgB,EAAA;QAChC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC;QAE3D,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;QACrC;aAAO;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QACnC;IACF;AACD;AAED,MAAM,qCAAsC,SAAQ,+BAA+B,CAAA;IACjF,WAAA,CAAa,UAA+C,EAAE,OAAkC,EAAA;AAC9F,QAAA,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;IACtC;AAEA,IAAA,IAAI,CAAE,YAAoB,EAAA;QACxB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC3B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;IACrC;AACD;AAED,MAAM,kCAAmC,SAAQ,+BAA+B,CAAA;AAC9E,IAAA,gBAAgB;AAEhB,IAAA,WAAA,CAAa,UAA+C,EAAE,OAAkC,EAAE,gBAAwB,EAAA;AACxH,QAAA,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;IAC1C;AAEA,IAAA,IAAI,CAAE,YAAoB,EAAA;QACxB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC1B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;IAC7D;AACD;AAED,MAAM,mCAAmC,CAAA;AACvC,IAAA,OAAO,UAAU,GAAG,4CAA4C;AAChE,IAAA,WAAW;AACX,IAAA,gBAAgB;AAChB,IAAA,cAAc;AACd,IAAA,mBAAmB;AACnB,IAAA,sBAAsB;AAEtB,IAAA,WAAA,CAAa,WAAgC,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACjE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9I,IAAI,CAAC,mBAAmB,GAAG,IAAI,kCAAkC,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAoB,kCAAkC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAC5K,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,qCAAqC,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAoB,qCAAqC,CAAC,CAAC;IAChK;IAEA,IAAI,GAAA;AACF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;AAC5F,QAAA,IAAI,eAAe,GAAG,EAAE;AAExB,QAAA,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,UAAU,CAAC,EAAE;YAClD,eAAe,GAAG,CAAC;QACrB;aAAO;YACL,IAAI,kBAAkB,GAAG,IAAI;YAE7B,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,KAAI;AACxC,gBAAA,IAAI,kBAAkB,IAAI,CAAC,UAAU,EAAE;oBACrC,eAAe,GAAG,KAAK;gBACzB;gBACA,kBAAkB,GAAG,UAAU;AACjC,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,IAAI,eAAe,IAAI,CAAC,EAAE;YACxB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC9G;AAEA,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAE5C,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AAC3C,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC;AAE9C,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;AACrC,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;IACvC;IAEA,OAAO,GAAA;AACL,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAE5C,QAAA,IAAI,YAAY,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAE7D,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;QACnC;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAE5C,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACxC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAExD,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;QACnC;IACF;IAEA,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,KAAK,IAAI,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/G;AAEA,IAAA,kBAAkB,CAAE,YAAoB,EAAA;AACtC,QAAA,IAAI,YAAY,KAAK,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACrD;aAAO;AACL,YAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAClD,YAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,YAAY,CAAC;QAC5D;IACF;AAEA,IAAA,kBAAkB,CAAE,YAAoB,EAAA;AACtC,QAAA,IAAI,YAAY,KAAK,IAAI,CAAC,gBAAgB,EAAE;AAC1C,YAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAClD;aAAO;AACL,YAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;QACjF;IACF;AAEA,IAAA,UAAU,CAAE,YAAoB,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE;IAC7E;;;ACtRF,MAAM,SAAS,CAAA;AACb,IAAA,OAAO,UAAU,GAAG,eAAe;AAEnC,IAAA,OAAO;AACP,IAAA,aAAa;AAEb,IAAA,WAAA,CAAa,OAA4B,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC5D;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACxB,IAAI,CAAC,aAAa,EAAE;QACtB;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E;IAEA,YAAY,GAAA;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE;IACxC;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;IACtC;IAEA,8BAA8B,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC;QACzC;IACF;;;;;;;;;;;;;;;GClCF,UAA2CtG,CAAA,EAAMwG,CAAA,EAAA;AAC1B,IACrBC,MAAAA,CAAAA,OAAAA,GAAiBD,CAAA,GAOlB;EAAA,CATD,CASGE,IAAA,EAAM,YAAA;IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA,MAAM,qBAAqB,CAAA;AACzB,IAAA,OAAO,UAAU,GAAG,6BAA6B;AAEjD,IAAA,OAAO;AAEP,IAAA,WAAA,CAAa,OAA4B,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;IAEA,IAAI,GAAA;QACF,sBAAsB,CAAC,oBAAoB,CAAC;YAC1C,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAClC,SAAA,CAAC;IACJ;;;ACDF,MAAM,SAAS,GAAG,CAAC,SAAqD,KAAI;AAC1E,IAAA,CAAC,CAAC,CAAA,cAAA,EAAiB,SAAS,CAAC,UAAU,CAAA,EAAA,CAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,KAAI;QAC7E,IAAI,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3C,IAAA,CAAC,CAAC;AACJ;AAEA,MAAM,OAAO,GAAG,MAAK;AACnB,IAAA,MAAM,UAAU,GAAsD;QACpE,kCAAkC;QAClC,cAAc;QACd,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,UAAU;QACV,oBAAoB;QACpB,YAAY;QACZ,mCAAmC;QACnC,QAAQ;QACR,SAAS;QACT;KACD;AAED,IAAA,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;QAC/B,SAAS,CAAC,SAAS,CAAC;AACtB,IAAA,CAAC,CAAC;AAEF,IAAA,mBAAmB,EAAE;AACvB;;;;","x_google_ignoreList":[2,7,8,9,10,11,12,13,25]}