{"version":3,"sources":["../src/lists/assetTypes.ts","../src/typeguards/isAssetType.ts","../src/lists/iso-country-alpha2.generated.ts","../src/typeguards/isIsoCountryA2.ts","../src/typeguards/isIsin.ts","../src/lists/iso-currency-alpha3.generated.ts","../src/typeguards/isIsoCurrencyA3.ts","../src/typeguards/isAssetId.ts","../src/typeguards/isIsoDate.ts","../src/typeguards/isIsoTime.ts","../src/typeguards/isWkn.ts"],"sourcesContent":["/**\n * - \"M\" = Monetary / ISO currency\n * - \"S\" = Security / by ISIN\n * - \"C\" = Crypto\n */\nexport const assetTypes = [\"M\", \"S\", \"C\"] as const\n","import { assetTypes } from \"../lists/assetTypes\"\nimport { AssetType } from \"../types/AssetType\"\n\nexport const isAssetType = (s: string): s is AssetType => assetTypes.includes(s as AssetType)\n","export const codes = [\n  \"AF\",\n  \"AL\",\n  \"DZ\",\n  \"AS\",\n  \"AD\",\n  \"AO\",\n  \"AI\",\n  \"AQ\",\n  \"AG\",\n  \"AR\",\n  \"AM\",\n  \"AW\",\n  \"AU\",\n  \"AT\",\n  \"AZ\",\n  \"BS\",\n  \"BH\",\n  \"BD\",\n  \"BB\",\n  \"BY\",\n  \"BE\",\n  \"BZ\",\n  \"BJ\",\n  \"BM\",\n  \"BT\",\n  \"BO\",\n  \"BA\",\n  \"BW\",\n  \"BV\",\n  \"BR\",\n  \"IO\",\n  \"BN\",\n  \"BG\",\n  \"BF\",\n  \"BI\",\n  \"KH\",\n  \"CM\",\n  \"CA\",\n  \"CV\",\n  \"KY\",\n  \"CF\",\n  \"TD\",\n  \"CL\",\n  \"CN\",\n  \"CX\",\n  \"CC\",\n  \"CO\",\n  \"KM\",\n  \"CG\",\n  \"CD\",\n  \"CK\",\n  \"CR\",\n  \"CI\",\n  \"HR\",\n  \"CU\",\n  \"CY\",\n  \"CZ\",\n  \"DK\",\n  \"DJ\",\n  \"DM\",\n  \"DO\",\n  \"EC\",\n  \"EG\",\n  \"SV\",\n  \"GQ\",\n  \"ER\",\n  \"EE\",\n  \"ET\",\n  \"FK\",\n  \"FO\",\n  \"FJ\",\n  \"FI\",\n  \"FR\",\n  \"GF\",\n  \"PF\",\n  \"TF\",\n  \"GA\",\n  \"GM\",\n  \"GE\",\n  \"DE\",\n  \"GH\",\n  \"GI\",\n  \"GR\",\n  \"GL\",\n  \"GD\",\n  \"GP\",\n  \"GU\",\n  \"GT\",\n  \"GN\",\n  \"GW\",\n  \"GY\",\n  \"HT\",\n  \"HM\",\n  \"VA\",\n  \"HN\",\n  \"HK\",\n  \"HU\",\n  \"IS\",\n  \"IN\",\n  \"ID\",\n  \"IR\",\n  \"IQ\",\n  \"IE\",\n  \"IL\",\n  \"IT\",\n  \"JM\",\n  \"JP\",\n  \"JO\",\n  \"KZ\",\n  \"KE\",\n  \"KI\",\n  \"KP\",\n  \"KR\",\n  \"KW\",\n  \"KG\",\n  \"LA\",\n  \"LV\",\n  \"LB\",\n  \"LS\",\n  \"LR\",\n  \"LY\",\n  \"LI\",\n  \"LT\",\n  \"LU\",\n  \"MO\",\n  \"MG\",\n  \"MW\",\n  \"MY\",\n  \"MV\",\n  \"ML\",\n  \"MT\",\n  \"MH\",\n  \"MQ\",\n  \"MR\",\n  \"MU\",\n  \"YT\",\n  \"MX\",\n  \"FM\",\n  \"MD\",\n  \"MC\",\n  \"MN\",\n  \"MS\",\n  \"MA\",\n  \"MZ\",\n  \"MM\",\n  \"NA\",\n  \"NR\",\n  \"NP\",\n  \"NL\",\n  \"NC\",\n  \"NZ\",\n  \"NI\",\n  \"NE\",\n  \"NG\",\n  \"NU\",\n  \"NF\",\n  \"MP\",\n  \"MK\",\n  \"NO\",\n  \"OM\",\n  \"PK\",\n  \"PW\",\n  \"PS\",\n  \"PA\",\n  \"PG\",\n  \"PY\",\n  \"PE\",\n  \"PH\",\n  \"PN\",\n  \"PL\",\n  \"PT\",\n  \"PR\",\n  \"QA\",\n  \"RE\",\n  \"RO\",\n  \"RU\",\n  \"RW\",\n  \"SH\",\n  \"KN\",\n  \"LC\",\n  \"PM\",\n  \"VC\",\n  \"WS\",\n  \"SM\",\n  \"ST\",\n  \"SA\",\n  \"SN\",\n  \"SC\",\n  \"SL\",\n  \"SG\",\n  \"SK\",\n  \"SI\",\n  \"SB\",\n  \"SO\",\n  \"ZA\",\n  \"GS\",\n  \"ES\",\n  \"LK\",\n  \"SD\",\n  \"SR\",\n  \"SJ\",\n  \"SZ\",\n  \"SE\",\n  \"CH\",\n  \"SY\",\n  \"TW\",\n  \"TJ\",\n  \"TZ\",\n  \"TH\",\n  \"TL\",\n  \"TG\",\n  \"TK\",\n  \"TO\",\n  \"TT\",\n  \"TN\",\n  \"TR\",\n  \"TM\",\n  \"TC\",\n  \"TV\",\n  \"UG\",\n  \"UA\",\n  \"AE\",\n  \"GB\",\n  \"US\",\n  \"UM\",\n  \"UY\",\n  \"UZ\",\n  \"VU\",\n  \"VE\",\n  \"VN\",\n  \"VG\",\n  \"VI\",\n  \"WF\",\n  \"EH\",\n  \"YE\",\n  \"ZM\",\n  \"ZW\",\n  \"AX\",\n  \"BQ\",\n  \"CW\",\n  \"GG\",\n  \"IM\",\n  \"JE\",\n  \"ME\",\n  \"BL\",\n  \"MF\",\n  \"RS\",\n  \"SX\",\n  \"SS\",\n  \"XK\"\n] as const","import { codes } from \"../lists/iso-country-alpha2.generated\"\nimport { IsoCountryA2 } from \"../types/IsoCountryA2\"\n\nexport const isIsoCountryA2 = (s: string): s is IsoCountryA2 => codes.includes(s as IsoCountryA2)\n","import { ISIN } from \"../types/ISIN\"\nimport { isIsoCountryA2 } from \"./isIsoCountryA2\"\n\nexport const calculateCheckDigit = (isinCountryCode: string, nsin: string) => {\n  const s = isinCountryCode + nsin\n  const mapIsinDigits = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n  let m: string = \"\"\n\n  // Translate characters to numbers\n\n  for (let i = 0; i < s.length; i++) {\n    m += mapIsinDigits.indexOf(s[i])\n  }\n\n  // Set the parity mode\n\n  const parity = m.length & 1\n\n  // Weight the digits, based on parity, and concatenate the results\n\n  let n: string = \"\"\n\n  for (let i = 0; i < m.length; i++) {\n    n += Number(m[i]) * ((i & 1) === parity ? 1 : 2)\n  }\n\n  // Compute the cross-sum\n\n  let o = 0\n\n  for (let i = 0; i < n.length; i++) {\n    o += Number(n[i])\n  }\n\n  // Double Modulo 10\n\n  return (10 - (o % 10)) % 10\n}\n\nexport const isIsin = (s: string): s is ISIN => {\n  const parts = s?.match(/^([A-Z]{2})([0-9A-Z]{9})([0-9]{1})$/)\n\n  if (!parts) {\n    // Syntax error\n    return false\n  }\n\n  const [, cc, nsin, cd] = parts\n  const PSEUDO_COUNTRY_CODES = [\"XS\", \"XA\", \"XB\", \"XC\", \"XD\", \"XF\", \"QS\", \"QT\", \"QW\", \"EU\"]\n\n  if (!isIsoCountryA2(cc) && !PSEUDO_COUNTRY_CODES.includes(cc)) {\n    // Invalid country code\n    return false\n  }\n\n  const ccd = calculateCheckDigit(cc, nsin)\n\n  if (Number(cd) !== ccd) {\n    // Invalid check digit\n    return false\n  }\n\n  return true\n}\n","export const codes = [\n  \"AED\",\n  \"AFN\",\n  \"ALL\",\n  \"AMD\",\n  \"ANG\",\n  \"AOA\",\n  \"ARS\",\n  \"AUD\",\n  \"AWG\",\n  \"AZN\",\n  \"BAM\",\n  \"BBD\",\n  \"BDT\",\n  \"BGN\",\n  \"BHD\",\n  \"BIF\",\n  \"BMD\",\n  \"BND\",\n  \"BOB\",\n  \"BOV\",\n  \"BRL\",\n  \"BSD\",\n  \"BTN\",\n  \"BWP\",\n  \"BYN\",\n  \"BZD\",\n  \"CAD\",\n  \"CDF\",\n  \"CHE\",\n  \"CHF\",\n  \"CHW\",\n  \"CLF\",\n  \"CLP\",\n  \"CNY\",\n  \"COP\",\n  \"COU\",\n  \"CRC\",\n  \"CUC\",\n  \"CUP\",\n  \"CVE\",\n  \"CZK\",\n  \"DJF\",\n  \"DKK\",\n  \"DOP\",\n  \"DZD\",\n  \"EGP\",\n  \"ERN\",\n  \"ETB\",\n  \"EUR\",\n  \"FJD\",\n  \"FKP\",\n  \"GBP\",\n  \"GEL\",\n  \"GHS\",\n  \"GIP\",\n  \"GMD\",\n  \"GNF\",\n  \"GTQ\",\n  \"GYD\",\n  \"HKD\",\n  \"HNL\",\n  \"HRK\",\n  \"HTG\",\n  \"HUF\",\n  \"IDR\",\n  \"ILS\",\n  \"INR\",\n  \"IQD\",\n  \"IRR\",\n  \"ISK\",\n  \"JMD\",\n  \"JOD\",\n  \"JPY\",\n  \"KES\",\n  \"KGS\",\n  \"KHR\",\n  \"KMF\",\n  \"KPW\",\n  \"KRW\",\n  \"KWD\",\n  \"KYD\",\n  \"KZT\",\n  \"LAK\",\n  \"LBP\",\n  \"LKR\",\n  \"LRD\",\n  \"LSL\",\n  \"LYD\",\n  \"MAD\",\n  \"MDL\",\n  \"MGA\",\n  \"MKD\",\n  \"MMK\",\n  \"MNT\",\n  \"MOP\",\n  \"MRU\",\n  \"MUR\",\n  \"MVR\",\n  \"MWK\",\n  \"MXN\",\n  \"MXV\",\n  \"MYR\",\n  \"MZN\",\n  \"NAD\",\n  \"NGN\",\n  \"NIO\",\n  \"NOK\",\n  \"NPR\",\n  \"NZD\",\n  \"OMR\",\n  \"PAB\",\n  \"PEN\",\n  \"PGK\",\n  \"PHP\",\n  \"PKR\",\n  \"PLN\",\n  \"PYG\",\n  \"QAR\",\n  \"RON\",\n  \"RSD\",\n  \"RUB\",\n  \"RWF\",\n  \"SAR\",\n  \"SBD\",\n  \"SCR\",\n  \"SDG\",\n  \"SEK\",\n  \"SGD\",\n  \"SHP\",\n  \"SLL\",\n  \"SOS\",\n  \"SRD\",\n  \"SSP\",\n  \"STN\",\n  \"SVC\",\n  \"SYP\",\n  \"SZL\",\n  \"THB\",\n  \"TJS\",\n  \"TMT\",\n  \"TND\",\n  \"TOP\",\n  \"TRY\",\n  \"TTD\",\n  \"TWD\",\n  \"TZS\",\n  \"UAH\",\n  \"UGX\",\n  \"USD\",\n  \"USN\",\n  \"UYI\",\n  \"UYU\",\n  \"UYW\",\n  \"UZS\",\n  \"VES\",\n  \"VND\",\n  \"VUV\",\n  \"WST\",\n  \"XAF\",\n  \"XAG\",\n  \"XAU\",\n  \"XBA\",\n  \"XBB\",\n  \"XBC\",\n  \"XBD\",\n  \"XCD\",\n  \"XDR\",\n  \"XOF\",\n  \"XPD\",\n  \"XPF\",\n  \"XPT\",\n  \"XSU\",\n  \"XTS\",\n  \"XUA\",\n  \"XXX\",\n  \"YER\",\n  \"ZAR\",\n  \"ZMW\",\n  \"ZWL\"\n] as const","import { codes } from \"../lists/iso-currency-alpha3.generated\"\nimport { IsoCurrencyA3 } from \"../types/IsoCurrencyA3\"\n\nexport const isIsoCurrencyA3 = (s: string): s is IsoCurrencyA3 => codes.includes(s as IsoCurrencyA3)\n","import { AssetId } from \"../types/AssetId\"\nimport { isAssetType } from \"./isAssetType\"\nimport { isIsin } from \"./isIsin\"\nimport { isIsoCurrencyA3 } from \"./isIsoCurrencyA3\"\n\nexport const isAssetId = (s: string): s is AssetId => {\n  const type = s.charAt(0)\n\n  if (!isAssetType(type)) {\n    return false\n  }\n\n  const code = s.substring(2)\n\n  if (type === \"M\") {\n    return isIsoCurrencyA3(code)\n  } else if (type === \"S\") {\n    return isIsin(code)\n  } else {\n    return code.match(/^[A-Z]{1,5}$/) !== null\n  }\n}\n","import { IsoDate } from \"../types/IsoDate\"\n\n/**\n * Tests if the given `string` matches the `YYYY-MM-DD` notation of the ISO<sup>TM</sup> 8601\n * specification and its value is within the permitted bounds.\n *\n * See https://www.iso.org/iso-8601-date-and-time-format.html\n */\nexport const isIsoDate = (s: string): s is IsoDate => {\n  const match = s && s.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/)\n\n  if (!match) {\n    return false\n  }\n\n  const parsedDate = new Date(s)\n\n  if (Number.isNaN(parsedDate.getTime())) {\n    return false\n  }\n\n  const calendarDay = parsedDate.toISOString().substring(0, 10)\n\n  if (calendarDay !== s) {\n    // captures invalid calendar dates such as 2020-02-31\n    return false\n  }\n\n  return true\n}\n","import { IsoTime } from \"../types/IsoTime\"\n\n/**\n * Tests if the given `string` matches the `HH:MM` notation of the ISO<sup>TM</sup> 8601\n * specification and its value is within the permitted bounds.\n *\n * See https://www.iso.org/iso-8601-date-and-time-format.html\n */\nexport const isIsoTime = (s: string): s is IsoTime => {\n  const match = s.match(/^([0-2][0-9]):[0-5][0-9]$/)\n  return match !== null && Number(match[1]) <= 23\n}\n","import { WKN } from \"../types/WKN\"\n\n/**\n * Tests if the given `string` represents a valid `WKN`.\n *\n * Note: the requirements for valid WKNs hav been relaxed several times, with the latest definition\n * being that [any composition of six digits and/or capital letters qualifies as WKN](https://en.wikipedia.org/wiki/Wertpapierkennnummer).\n */\nexport const isWkn = (s: string): s is WKN => s.match(/^[A-Z0-9]{6}$/) !== null\n"],"mappings":";AAKO,IAAM,aAAa,CAAC,KAAK,KAAK,GAAG;;;ACFjC,IAAM,cAAc,CAAC,MAA8B,WAAW,SAAS,CAAc;;;ACHrF,IAAM,QAAQ;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACxPO,IAAM,iBAAiB,CAAC,MAAiC,MAAM,SAAS,CAAiB;;;ACAzF,IAAM,sBAAsB,CAAC,iBAAyB,SAAiB;AAC5E,QAAM,IAAI,kBAAkB;AAC5B,QAAM,gBAAgB;AACtB,MAAI,IAAY;AAIhB,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,SAAK,cAAc,QAAQ,EAAE,EAAE;AAAA,EACjC;AAIA,QAAM,SAAS,EAAE,SAAS;AAI1B,MAAI,IAAY;AAEhB,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,SAAK,OAAO,EAAE,EAAE,IAAM,MAAI,OAAO,SAAS,IAAI;AAAA,EAChD;AAIA,MAAI,IAAI;AAER,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,SAAK,OAAO,EAAE,EAAE;AAAA,EAClB;AAIA,SAAQ,MAAM,IAAI,MAAO;AAC3B;AAEO,IAAM,SAAS,CAAC,MAAyB;AAC9C,QAAM,QAAQ,uBAAG,MAAM;AAEvB,MAAI,CAAC,OAAO;AAEV,WAAO;AAAA,EACT;AAEA,QAAM,CAAC,EAAE,IAAI,MAAM,MAAM;AACzB,QAAM,uBAAuB,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAExF,MAAI,CAAC,eAAe,EAAE,KAAK,CAAC,qBAAqB,SAAS,EAAE,GAAG;AAE7D,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,oBAAoB,IAAI,IAAI;AAExC,MAAI,OAAO,EAAE,MAAM,KAAK;AAEtB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;;;AC/DO,IAAM,SAAQ;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACjLO,IAAM,kBAAkB,CAAC,MAAkC,OAAM,SAAS,CAAkB;;;ACE5F,IAAM,YAAY,CAAC,MAA4B;AACpD,QAAM,OAAO,EAAE,OAAO,CAAC;AAEvB,MAAI,CAAC,YAAY,IAAI,GAAG;AACtB,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,EAAE,UAAU,CAAC;AAE1B,MAAI,SAAS,KAAK;AAChB,WAAO,gBAAgB,IAAI;AAAA,EAC7B,WAAW,SAAS,KAAK;AACvB,WAAO,OAAO,IAAI;AAAA,EACpB,OAAO;AACL,WAAO,KAAK,MAAM,cAAc,MAAM;AAAA,EACxC;AACF;;;ACbO,IAAM,YAAY,CAAC,MAA4B;AACpD,QAAM,QAAQ,KAAK,EAAE,MAAM,oCAAoC;AAE/D,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,IAAI,KAAK,CAAC;AAE7B,MAAI,OAAO,MAAM,WAAW,QAAQ,CAAC,GAAG;AACtC,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,WAAW,YAAY,EAAE,UAAU,GAAG,EAAE;AAE5D,MAAI,gBAAgB,GAAG;AAErB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;;;ACrBO,IAAM,YAAY,CAAC,MAA4B;AACpD,QAAM,QAAQ,EAAE,MAAM,2BAA2B;AACjD,SAAO,UAAU,QAAQ,OAAO,MAAM,EAAE,KAAK;AAC/C;;;ACHO,IAAM,QAAQ,CAAC,MAAwB,EAAE,MAAM,eAAe,MAAM;","names":[]}