{"version":3,"file":"polyfill-force-DSyAwg73.js","sources":["../../node_modules/@formatjs/ecma402-abstract/CanonicalizeLocaleList.js","../../node_modules/decimal.js/decimal.mjs","../../node_modules/@formatjs/ecma402-abstract/constants.js","../../node_modules/@formatjs/fast-memoize/index.js","../../node_modules/@formatjs/ecma402-abstract/utils.js","../../node_modules/@formatjs/ecma402-abstract/262.js","../../node_modules/@formatjs/ecma402-abstract/DefaultNumberOption.js","../../node_modules/@formatjs/ecma402-abstract/GetNumberOption.js","../../node_modules/@formatjs/ecma402-abstract/GetOption.js","../../node_modules/@formatjs/intl-localematcher/abstract/languageMatching.js","../../node_modules/@formatjs/intl-localematcher/abstract/regions.generated.js","../../node_modules/@formatjs/intl-localematcher/abstract/utils.js","../../node_modules/@formatjs/intl-localematcher/abstract/BestFitMatcher.js","../../node_modules/@formatjs/intl-localematcher/abstract/CanonicalizeUValue.js","../../node_modules/@formatjs/intl-localematcher/abstract/CanonicalizeUnicodeLocaleId.js","../../node_modules/@formatjs/intl-localematcher/abstract/InsertUnicodeExtensionAndCanonicalize.js","../../node_modules/@formatjs/intl-localematcher/abstract/BestAvailableLocale.js","../../node_modules/@formatjs/intl-localematcher/abstract/LookupMatcher.js","../../node_modules/@formatjs/intl-localematcher/abstract/UnicodeExtensionComponents.js","../../node_modules/@formatjs/intl-localematcher/abstract/ResolveLocale.js","../../node_modules/@formatjs/intl-localematcher/abstract/LookupSupportedLocales.js","../../node_modules/@formatjs/ecma402-abstract/SupportedLocales.js","../../node_modules/@formatjs/intl-durationformat/src/abstract/GetDurationUnitOptions.js","../../node_modules/@formatjs/intl-durationformat/src/constants.js","../../node_modules/@formatjs/intl-durationformat/src/get_internal_slots.js","../../node_modules/@formatjs/intl-durationformat/src/abstract/PartitionDurationFormatPattern.js","../../node_modules/@formatjs/intl-durationformat/src/abstract/DurationRecordSign.js","../../node_modules/@formatjs/intl-durationformat/src/abstract/IsValidDurationRecord.js","../../node_modules/@formatjs/intl-durationformat/src/abstract/ToIntegerIfIntegral.js","../../node_modules/@formatjs/intl-durationformat/src/abstract/ToDurationRecord.js","../../node_modules/@formatjs/intl-durationformat/src/numbering-systems.generated.js","../../node_modules/@formatjs/intl-durationformat/src/time-separators.generated.js","../../node_modules/@formatjs/intl-durationformat/src/core.js","../../node_modules/@formatjs/intl-durationformat/polyfill-force.js"],"sourcesContent":["/**\n* http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n* @param locales\n*/\nexport function CanonicalizeLocaleList(locales) {\n\t// TODO\n\treturn Intl.getCanonicalLocales(locales);\n}\n","/*!\r\n *  decimal.js v10.6.0\r\n *  An arbitrary-precision Decimal type for JavaScript.\r\n *  https://github.com/MikeMcl/decimal.js\r\n *  Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n *  MIT Licence\r\n */\r\n\r\n\r\n// -----------------------------------  EDITABLE DEFAULTS  ------------------------------------ //\r\n\r\n\r\n  // The maximum exponent magnitude.\r\n  // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\nvar EXP_LIMIT = 9e15,                      // 0 to 9e15\r\n\r\n  // The limit on the value of `precision`, and on the value of the first argument to\r\n  // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n  MAX_DIGITS = 1e9,                        // 0 to 1e9\r\n\r\n  // Base conversion alphabet.\r\n  NUMERALS = '0123456789abcdef',\r\n\r\n  // The natural logarithm of 10 (1025 digits).\r\n  LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n  // Pi (1025 digits).\r\n  PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n  // The initial configuration properties of the Decimal constructor.\r\n  DEFAULTS = {\r\n\r\n    // These values must be integers within the stated ranges (inclusive).\r\n    // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n    // The maximum number of significant digits of the result of a calculation or base conversion.\r\n    // E.g. `Decimal.config({ precision: 20 });`\r\n    precision: 20,                         // 1 to MAX_DIGITS\r\n\r\n    // The rounding mode used when rounding to `precision`.\r\n    //\r\n    // ROUND_UP         0 Away from zero.\r\n    // ROUND_DOWN       1 Towards zero.\r\n    // ROUND_CEIL       2 Towards +Infinity.\r\n    // ROUND_FLOOR      3 Towards -Infinity.\r\n    // ROUND_HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n    // ROUND_HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n    // ROUND_HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n    // ROUND_HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n    // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n    //\r\n    // E.g.\r\n    // `Decimal.rounding = 4;`\r\n    // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n    rounding: 4,                           // 0 to 8\r\n\r\n    // The modulo mode used when calculating the modulus: a mod n.\r\n    // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n    // The remainder (r) is calculated as: r = a - n * q.\r\n    //\r\n    // UP         0 The remainder is positive if the dividend is negative, else is negative.\r\n    // DOWN       1 The remainder has the same sign as the dividend (JavaScript %).\r\n    // FLOOR      3 The remainder has the same sign as the divisor (Python %).\r\n    // HALF_EVEN  6 The IEEE 754 remainder function.\r\n    // EUCLID     9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n    //\r\n    // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n    // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n    // be used, but they may not give useful results.\r\n    modulo: 1,                             // 0 to 9\r\n\r\n    // The exponent value at and beneath which `toString` returns exponential notation.\r\n    // JavaScript numbers: -7\r\n    toExpNeg: -7,                          // 0 to -EXP_LIMIT\r\n\r\n    // The exponent value at and above which `toString` returns exponential notation.\r\n    // JavaScript numbers: 21\r\n    toExpPos:  21,                         // 0 to EXP_LIMIT\r\n\r\n    // The minimum exponent value, beneath which underflow to zero occurs.\r\n    // JavaScript numbers: -324  (5e-324)\r\n    minE: -EXP_LIMIT,                      // -1 to -EXP_LIMIT\r\n\r\n    // The maximum exponent value, above which overflow to Infinity occurs.\r\n    // JavaScript numbers: 308  (1.7976931348623157e+308)\r\n    maxE: EXP_LIMIT,                       // 1 to EXP_LIMIT\r\n\r\n    // Whether to use cryptographically-secure random number generation, if available.\r\n    crypto: false                          // true/false\r\n  },\r\n\r\n\r\n// ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n  inexact, quadrant,\r\n  external = true,\r\n\r\n  decimalError = '[DecimalError] ',\r\n  invalidArgument = decimalError + 'Invalid argument: ',\r\n  precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n  cryptoUnavailable = decimalError + 'crypto unavailable',\r\n  tag = '[object Decimal]',\r\n\r\n  mathfloor = Math.floor,\r\n  mathpow = Math.pow,\r\n\r\n  isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n  isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n  isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n  isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n  BASE = 1e7,\r\n  LOG_BASE = 7,\r\n  MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n  LN10_PRECISION = LN10.length - 1,\r\n  PI_PRECISION = PI.length - 1,\r\n\r\n  // Decimal.prototype object\r\n  P = { toStringTag: tag };\r\n\r\n\r\n// Decimal prototype methods\r\n\r\n\r\n/*\r\n *  absoluteValue             abs\r\n *  ceil\r\n *  clampedTo                 clamp\r\n *  comparedTo                cmp\r\n *  cosine                    cos\r\n *  cubeRoot                  cbrt\r\n *  decimalPlaces             dp\r\n *  dividedBy                 div\r\n *  dividedToIntegerBy        divToInt\r\n *  equals                    eq\r\n *  floor\r\n *  greaterThan               gt\r\n *  greaterThanOrEqualTo      gte\r\n *  hyperbolicCosine          cosh\r\n *  hyperbolicSine            sinh\r\n *  hyperbolicTangent         tanh\r\n *  inverseCosine             acos\r\n *  inverseHyperbolicCosine   acosh\r\n *  inverseHyperbolicSine     asinh\r\n *  inverseHyperbolicTangent  atanh\r\n *  inverseSine               asin\r\n *  inverseTangent            atan\r\n *  isFinite\r\n *  isInteger                 isInt\r\n *  isNaN\r\n *  isNegative                isNeg\r\n *  isPositive                isPos\r\n *  isZero\r\n *  lessThan                  lt\r\n *  lessThanOrEqualTo         lte\r\n *  logarithm                 log\r\n *  [maximum]                 [max]\r\n *  [minimum]                 [min]\r\n *  minus                     sub\r\n *  modulo                    mod\r\n *  naturalExponential        exp\r\n *  naturalLogarithm          ln\r\n *  negated                   neg\r\n *  plus                      add\r\n *  precision                 sd\r\n *  round\r\n *  sine                      sin\r\n *  squareRoot                sqrt\r\n *  tangent                   tan\r\n *  times                     mul\r\n *  toBinary\r\n *  toDecimalPlaces           toDP\r\n *  toExponential\r\n *  toFixed\r\n *  toFraction\r\n *  toHexadecimal             toHex\r\n *  toNearest\r\n *  toNumber\r\n *  toOctal\r\n *  toPower                   pow\r\n *  toPrecision\r\n *  toSignificantDigits       toSD\r\n *  toString\r\n *  truncated                 trunc\r\n *  valueOf                   toJSON\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\nP.absoluteValue = P.abs = function () {\r\n  var x = new this.constructor(this);\r\n  if (x.s < 0) x.s = 1;\r\n  return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\nP.ceil = function () {\r\n  return finalise(new this.constructor(this), this.e + 1, 2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|bigint|Decimal}\r\n * max {number|string|bigint|Decimal}\r\n *\r\n */\r\nP.clampedTo = P.clamp = function (min, max) {\r\n  var k,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n  min = new Ctor(min);\r\n  max = new Ctor(max);\r\n  if (!min.s || !max.s) return new Ctor(NaN);\r\n  if (min.gt(max)) throw Error(invalidArgument + max);\r\n  k = x.cmp(min);\r\n  return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\r\n};\r\n\r\n\r\n/*\r\n * Return\r\n *   1    if the value of this Decimal is greater than the value of `y`,\r\n *  -1    if the value of this Decimal is less than the value of `y`,\r\n *   0    if they have the same value,\r\n *   NaN  if the value of either Decimal is NaN.\r\n *\r\n */\r\nP.comparedTo = P.cmp = function (y) {\r\n  var i, j, xdL, ydL,\r\n    x = this,\r\n    xd = x.d,\r\n    yd = (y = new x.constructor(y)).d,\r\n    xs = x.s,\r\n    ys = y.s;\r\n\r\n  // Either NaN or ±Infinity?\r\n  if (!xd || !yd) {\r\n    return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n  }\r\n\r\n  // Either zero?\r\n  if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n  // Signs differ?\r\n  if (xs !== ys) return xs;\r\n\r\n  // Compare exponents.\r\n  if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n  xdL = xd.length;\r\n  ydL = yd.length;\r\n\r\n  // Compare digit by digit.\r\n  for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n    if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n  }\r\n\r\n  // Compare lengths.\r\n  return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0)         = 1\r\n * cos(-0)        = 1\r\n * cos(Infinity)  = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN)       = NaN\r\n *\r\n */\r\nP.cosine = P.cos = function () {\r\n  var pr, rm,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (!x.d) return new Ctor(NaN);\r\n\r\n  // cos(0) = cos(-0) = 1\r\n  if (!x.d[0]) return new Ctor(1);\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n  Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n  Ctor.rounding = 1;\r\n\r\n  x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n  Ctor.precision = pr;\r\n  Ctor.rounding = rm;\r\n\r\n  return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n *  cbrt(0)  =  0\r\n *  cbrt(-0) = -0\r\n *  cbrt(1)  =  1\r\n *  cbrt(-1) = -1\r\n *  cbrt(N)  =  N\r\n *  cbrt(-I) = -I\r\n *  cbrt(I)  =  I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\nP.cubeRoot = P.cbrt = function () {\r\n  var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n  external = false;\r\n\r\n  // Initial estimate.\r\n  s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n   // Math.cbrt underflow/overflow?\r\n   // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n  if (!s || Math.abs(s) == 1 / 0) {\r\n    n = digitsToString(x.d);\r\n    e = x.e;\r\n\r\n    // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n    if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n    s = mathpow(n, 1 / 3);\r\n\r\n    // Rarely, e may be one less than the result exponent value.\r\n    e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n    if (s == 1 / 0) {\r\n      n = '5e' + e;\r\n    } else {\r\n      n = s.toExponential();\r\n      n = n.slice(0, n.indexOf('e') + 1) + e;\r\n    }\r\n\r\n    r = new Ctor(n);\r\n    r.s = x.s;\r\n  } else {\r\n    r = new Ctor(s.toString());\r\n  }\r\n\r\n  sd = (e = Ctor.precision) + 3;\r\n\r\n  // Halley's method.\r\n  // TODO? Compare Newton's method.\r\n  for (;;) {\r\n    t = r;\r\n    t3 = t.times(t).times(t);\r\n    t3plusx = t3.plus(x);\r\n    r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n    // TODO? Replace with for-loop and checkRoundingDigits.\r\n    if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n      n = n.slice(sd - 3, sd + 1);\r\n\r\n      // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n      // , i.e. approaching a rounding boundary, continue the iteration.\r\n      if (n == '9999' || !rep && n == '4999') {\r\n\r\n        // On the first iteration only, check to see if rounding up gives the exact result as the\r\n        // nines may infinitely repeat.\r\n        if (!rep) {\r\n          finalise(t, e + 1, 0);\r\n\r\n          if (t.times(t).times(t).eq(x)) {\r\n            r = t;\r\n            break;\r\n          }\r\n        }\r\n\r\n        sd += 4;\r\n        rep = 1;\r\n      } else {\r\n\r\n        // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n        // If not, then there are further digits and m will be truthy.\r\n        if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n          // Truncate to the first rounding digit.\r\n          finalise(r, e + 1, 1);\r\n          m = !r.times(r).times(r).eq(x);\r\n        }\r\n\r\n        break;\r\n      }\r\n    }\r\n  }\r\n\r\n  external = true;\r\n\r\n  return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\nP.decimalPlaces = P.dp = function () {\r\n  var w,\r\n    d = this.d,\r\n    n = NaN;\r\n\r\n  if (d) {\r\n    w = d.length - 1;\r\n    n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n    // Subtract the number of trailing zeros of the last word.\r\n    w = d[w];\r\n    if (w) for (; w % 10 == 0; w /= 10) n--;\r\n    if (n < 0) n = 0;\r\n  }\r\n\r\n  return n;\r\n};\r\n\r\n\r\n/*\r\n *  n / 0 = I\r\n *  n / N = N\r\n *  n / I = 0\r\n *  0 / n = 0\r\n *  0 / 0 = N\r\n *  0 / N = N\r\n *  0 / I = 0\r\n *  N / n = N\r\n *  N / 0 = N\r\n *  N / N = N\r\n *  N / I = N\r\n *  I / n = I\r\n *  I / 0 = I\r\n *  I / N = N\r\n *  I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedBy = P.div = function (y) {\r\n  return divide(this, new this.constructor(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedToIntegerBy = P.divToInt = function (y) {\r\n  var x = this,\r\n    Ctor = x.constructor;\r\n  return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\nP.equals = P.eq = function (y) {\r\n  return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\nP.floor = function () {\r\n  return finalise(new this.constructor(this), this.e + 1, 3);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\nP.greaterThan = P.gt = function (y) {\r\n  return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\nP.greaterThanOrEqualTo = P.gte = function (y) {\r\n  var k = this.cmp(y);\r\n  return k == 1 || k === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0)         = 1\r\n * cosh(-0)        = 1\r\n * cosh(Infinity)  = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN)       = NaN\r\n *\r\n *  x        time taken (ms)   result\r\n * 1000      9                 9.8503555700852349694e+433\r\n * 10000     25                4.4034091128314607936e+4342\r\n * 100000    171               1.4033316802130615897e+43429\r\n * 1000000   3817              1.5166076984010437725e+434294\r\n * 10000000  abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\nP.hyperbolicCosine = P.cosh = function () {\r\n  var k, n, pr, rm, len,\r\n    x = this,\r\n    Ctor = x.constructor,\r\n    one = new Ctor(1);\r\n\r\n  if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n  if (x.isZero()) return one;\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n  Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n  Ctor.rounding = 1;\r\n  len = x.d.length;\r\n\r\n  // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n  // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n  // Estimate the optimum number of times to use the argument reduction.\r\n  // TODO? Estimation reused from cosine() and may not be optimal here.\r\n  if (len < 32) {\r\n    k = Math.ceil(len / 3);\r\n    n = (1 / tinyPow(4, k)).toString();\r\n  } else {\r\n    k = 16;\r\n    n = '2.3283064365386962890625e-10';\r\n  }\r\n\r\n  x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n  // Reverse argument reduction\r\n  var cosh2_x,\r\n    i = k,\r\n    d8 = new Ctor(8);\r\n  for (; i--;) {\r\n    cosh2_x = x.times(x);\r\n    x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n  }\r\n\r\n  return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0)         = 0\r\n * sinh(-0)        = -0\r\n * sinh(Infinity)  = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN)       = NaN\r\n *\r\n * x        time taken (ms)\r\n * 10       2 ms\r\n * 100      5 ms\r\n * 1000     14 ms\r\n * 10000    82 ms\r\n * 100000   886 ms            1.4033316802130615897e+43429\r\n * 200000   2613 ms\r\n * 300000   5407 ms\r\n * 400000   8824 ms\r\n * 500000   13026 ms          8.7080643612718084129e+217146\r\n * 1000000  48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\nP.hyperbolicSine = P.sinh = function () {\r\n  var k, pr, rm, len,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n  Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n  Ctor.rounding = 1;\r\n  len = x.d.length;\r\n\r\n  if (len < 3) {\r\n    x = taylorSeries(Ctor, 2, x, x, true);\r\n  } else {\r\n\r\n    // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n    // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n    // 3 multiplications and 1 addition\r\n\r\n    // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n    // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n    // 4 multiplications and 2 additions\r\n\r\n    // Estimate the optimum number of times to use the argument reduction.\r\n    k = 1.4 * Math.sqrt(len);\r\n    k = k > 16 ? 16 : k | 0;\r\n\r\n    x = x.times(1 / tinyPow(5, k));\r\n    x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n    // Reverse argument reduction\r\n    var sinh2_x,\r\n      d5 = new Ctor(5),\r\n      d16 = new Ctor(16),\r\n      d20 = new Ctor(20);\r\n    for (; k--;) {\r\n      sinh2_x = x.times(x);\r\n      x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n    }\r\n  }\r\n\r\n  Ctor.precision = pr;\r\n  Ctor.rounding = rm;\r\n\r\n  return finalise(x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0)         = 0\r\n * tanh(-0)        = -0\r\n * tanh(Infinity)  = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN)       = NaN\r\n *\r\n */\r\nP.hyperbolicTangent = P.tanh = function () {\r\n  var pr, rm,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (!x.isFinite()) return new Ctor(x.s);\r\n  if (x.isZero()) return new Ctor(x);\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n  Ctor.precision = pr + 7;\r\n  Ctor.rounding = 1;\r\n\r\n  return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0)       = pi/2\r\n * acos(-0)      = pi/2\r\n * acos(1)       = 0\r\n * acos(-1)      = pi\r\n * acos(1/2)     = pi/3\r\n * acos(-1/2)    = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN)     = NaN\r\n *\r\n */\r\nP.inverseCosine = P.acos = function () {\r\n  var x = this,\r\n    Ctor = x.constructor,\r\n    k = x.abs().cmp(1),\r\n    pr = Ctor.precision,\r\n    rm = Ctor.rounding;\r\n\r\n  if (k !== -1) {\r\n    return k === 0\r\n      // |x| is 1\r\n      ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n      // |x| > 1 or x is NaN\r\n      : new Ctor(NaN);\r\n  }\r\n\r\n  if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n  // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n  Ctor.precision = pr + 6;\r\n  Ctor.rounding = 1;\r\n\r\n  // See https://github.com/MikeMcl/decimal.js/pull/217\r\n  x = new Ctor(1).minus(x).div(x.plus(1)).sqrt().atan();\r\n\r\n  Ctor.precision = pr;\r\n  Ctor.rounding = rm;\r\n\r\n  return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1)     = NaN\r\n * acosh(NaN)       = NaN\r\n * acosh(Infinity)  = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0)         = NaN\r\n * acosh(-0)        = NaN\r\n * acosh(1)         = 0\r\n * acosh(-1)        = NaN\r\n *\r\n */\r\nP.inverseHyperbolicCosine = P.acosh = function () {\r\n  var pr, rm,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n  if (!x.isFinite()) return new Ctor(x);\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n  Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n  Ctor.rounding = 1;\r\n  external = false;\r\n\r\n  x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n  external = true;\r\n  Ctor.precision = pr;\r\n  Ctor.rounding = rm;\r\n\r\n  return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN)       = NaN\r\n * asinh(Infinity)  = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0)         = 0\r\n * asinh(-0)        = -0\r\n *\r\n */\r\nP.inverseHyperbolicSine = P.asinh = function () {\r\n  var pr, rm,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n  Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n  Ctor.rounding = 1;\r\n  external = false;\r\n\r\n  x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n  external = true;\r\n  Ctor.precision = pr;\r\n  Ctor.rounding = rm;\r\n\r\n  return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1)   = NaN\r\n * atanh(NaN)       = NaN\r\n * atanh(Infinity)  = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0)         = 0\r\n * atanh(-0)        = -0\r\n * atanh(1)         = Infinity\r\n * atanh(-1)        = -Infinity\r\n *\r\n */\r\nP.inverseHyperbolicTangent = P.atanh = function () {\r\n  var pr, rm, wpr, xsd,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (!x.isFinite()) return new Ctor(NaN);\r\n  if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n  xsd = x.sd();\r\n\r\n  if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n  Ctor.precision = wpr = xsd - x.e;\r\n\r\n  x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n  Ctor.precision = pr + 4;\r\n  Ctor.rounding = 1;\r\n\r\n  x = x.ln();\r\n\r\n  Ctor.precision = pr;\r\n  Ctor.rounding = rm;\r\n\r\n  return x.times(0.5);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0)       = 0\r\n * asin(-0)      = -0\r\n * asin(1/2)     = pi/6\r\n * asin(-1/2)    = -pi/6\r\n * asin(1)       = pi/2\r\n * asin(-1)      = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN)     = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\nP.inverseSine = P.asin = function () {\r\n  var halfPi, k,\r\n    pr, rm,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (x.isZero()) return new Ctor(x);\r\n\r\n  k = x.abs().cmp(1);\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n\r\n  if (k !== -1) {\r\n\r\n    // |x| is 1\r\n    if (k === 0) {\r\n      halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n      halfPi.s = x.s;\r\n      return halfPi;\r\n    }\r\n\r\n    // |x| > 1 or x is NaN\r\n    return new Ctor(NaN);\r\n  }\r\n\r\n  // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n  Ctor.precision = pr + 6;\r\n  Ctor.rounding = 1;\r\n\r\n  x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n  Ctor.precision = pr;\r\n  Ctor.rounding = rm;\r\n\r\n  return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0)         = 0\r\n * atan(-0)        = -0\r\n * atan(1)         = pi/4\r\n * atan(-1)        = -pi/4\r\n * atan(Infinity)  = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN)       = NaN\r\n *\r\n */\r\nP.inverseTangent = P.atan = function () {\r\n  var i, j, k, n, px, t, r, wpr, x2,\r\n    x = this,\r\n    Ctor = x.constructor,\r\n    pr = Ctor.precision,\r\n    rm = Ctor.rounding;\r\n\r\n  if (!x.isFinite()) {\r\n    if (!x.s) return new Ctor(NaN);\r\n    if (pr + 4 <= PI_PRECISION) {\r\n      r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n      r.s = x.s;\r\n      return r;\r\n    }\r\n  } else if (x.isZero()) {\r\n    return new Ctor(x);\r\n  } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n    r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n    r.s = x.s;\r\n    return r;\r\n  }\r\n\r\n  Ctor.precision = wpr = pr + 10;\r\n  Ctor.rounding = 1;\r\n\r\n  // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n  // Argument reduction\r\n  // Ensure |x| < 0.42\r\n  // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n  k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n  for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n  external = false;\r\n\r\n  j = Math.ceil(wpr / LOG_BASE);\r\n  n = 1;\r\n  x2 = x.times(x);\r\n  r = new Ctor(x);\r\n  px = x;\r\n\r\n  // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n  for (; i !== -1;) {\r\n    px = px.times(x2);\r\n    t = r.minus(px.div(n += 2));\r\n\r\n    px = px.times(x2);\r\n    r = t.plus(px.div(n += 2));\r\n\r\n    if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n  }\r\n\r\n  if (k) r = r.times(2 << (k - 1));\r\n\r\n  external = true;\r\n\r\n  return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\nP.isFinite = function () {\r\n  return !!this.d;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\nP.isInteger = P.isInt = function () {\r\n  return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\nP.isNaN = function () {\r\n  return !this.s;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\nP.isNegative = P.isNeg = function () {\r\n  return this.s < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\nP.isPositive = P.isPos = function () {\r\n  return this.s > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\nP.isZero = function () {\r\n  return !!this.d && this.d[0] === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThan = P.lt = function (y) {\r\n  return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThanOrEqualTo = P.lte = function (y) {\r\n  return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a)       = NaN\r\n * log[0](a)        = NaN\r\n * log[1](a)        = NaN\r\n * log[NaN](a)      = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0)        = -Infinity\r\n * log[b](-0)       = -Infinity\r\n * log[b](-a)       = NaN\r\n * log[b](1)        = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN)      = NaN\r\n *\r\n * [base] {number|string|bigint|Decimal} The base of the logarithm.\r\n *\r\n */\r\nP.logarithm = P.log = function (base) {\r\n  var isBase10, d, denominator, k, inf, num, sd, r,\r\n    arg = this,\r\n    Ctor = arg.constructor,\r\n    pr = Ctor.precision,\r\n    rm = Ctor.rounding,\r\n    guard = 5;\r\n\r\n  // Default base is 10.\r\n  if (base == null) {\r\n    base = new Ctor(10);\r\n    isBase10 = true;\r\n  } else {\r\n    base = new Ctor(base);\r\n    d = base.d;\r\n\r\n    // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n    if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n    isBase10 = base.eq(10);\r\n  }\r\n\r\n  d = arg.d;\r\n\r\n  // Is arg negative, non-finite, 0 or 1?\r\n  if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n    return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n  }\r\n\r\n  // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n  // integer power of 10.\r\n  if (isBase10) {\r\n    if (d.length > 1) {\r\n      inf = true;\r\n    } else {\r\n      for (k = d[0]; k % 10 === 0;) k /= 10;\r\n      inf = k !== 1;\r\n    }\r\n  }\r\n\r\n  external = false;\r\n  sd = pr + guard;\r\n  num = naturalLogarithm(arg, sd);\r\n  denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n  // The result will have 5 rounding digits.\r\n  r = divide(num, denominator, sd, 1);\r\n\r\n  // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n  // calculate 10 further digits.\r\n  //\r\n  // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n  // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n  // further digits, the last 14 are nines, round up and assume the result is exact.\r\n  // Also assume the result is exact if the last 14 are zero.\r\n  //\r\n  // Example of a result that will be incorrectly rounded:\r\n  // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n  // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n  // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n  // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n  // place is still 2.6.\r\n  if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n    do {\r\n      sd += 10;\r\n      num = naturalLogarithm(arg, sd);\r\n      denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n      r = divide(num, denominator, sd, 1);\r\n\r\n      if (!inf) {\r\n\r\n        // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n        if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n          r = finalise(r, pr + 1, 0);\r\n        }\r\n\r\n        break;\r\n      }\r\n    } while (checkRoundingDigits(r.d, k += 10, rm));\r\n  }\r\n\r\n  external = true;\r\n\r\n  return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\nP.max = function () {\r\n  Array.prototype.push.call(arguments, this);\r\n  return maxOrMin(this.constructor, arguments, -1);\r\n};\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\nP.min = function () {\r\n  Array.prototype.push.call(arguments, this);\r\n  return maxOrMin(this.constructor, arguments, 1);\r\n};\r\n */\r\n\r\n\r\n/*\r\n *  n - 0 = n\r\n *  n - N = N\r\n *  n - I = -I\r\n *  0 - n = -n\r\n *  0 - 0 = 0\r\n *  0 - N = N\r\n *  0 - I = -I\r\n *  N - n = N\r\n *  N - 0 = N\r\n *  N - N = N\r\n *  N - I = N\r\n *  I - n = I\r\n *  I - 0 = I\r\n *  I - N = N\r\n *  I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.minus = P.sub = function (y) {\r\n  var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  y = new Ctor(y);\r\n\r\n  // If either is not finite...\r\n  if (!x.d || !y.d) {\r\n\r\n    // Return NaN if either is NaN.\r\n    if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n    // Return y negated if x is finite and y is ±Infinity.\r\n    else if (x.d) y.s = -y.s;\r\n\r\n    // Return x if y is finite and x is ±Infinity.\r\n    // Return x if both are ±Infinity with different signs.\r\n    // Return NaN if both are ±Infinity with the same sign.\r\n    else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n    return y;\r\n  }\r\n\r\n  // If signs differ...\r\n  if (x.s != y.s) {\r\n    y.s = -y.s;\r\n    return x.plus(y);\r\n  }\r\n\r\n  xd = x.d;\r\n  yd = y.d;\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n\r\n  // If either is zero...\r\n  if (!xd[0] || !yd[0]) {\r\n\r\n    // Return y negated if x is zero and y is non-zero.\r\n    if (yd[0]) y.s = -y.s;\r\n\r\n    // Return x if y is zero and x is non-zero.\r\n    else if (xd[0]) y = new Ctor(x);\r\n\r\n    // Return zero if both are zero.\r\n    // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n    else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n    return external ? finalise(y, pr, rm) : y;\r\n  }\r\n\r\n  // x and y are finite, non-zero numbers with the same sign.\r\n\r\n  // Calculate base 1e7 exponents.\r\n  e = mathfloor(y.e / LOG_BASE);\r\n  xe = mathfloor(x.e / LOG_BASE);\r\n\r\n  xd = xd.slice();\r\n  k = xe - e;\r\n\r\n  // If base 1e7 exponents differ...\r\n  if (k) {\r\n    xLTy = k < 0;\r\n\r\n    if (xLTy) {\r\n      d = xd;\r\n      k = -k;\r\n      len = yd.length;\r\n    } else {\r\n      d = yd;\r\n      e = xe;\r\n      len = xd.length;\r\n    }\r\n\r\n    // Numbers with massively different exponents would result in a very high number of\r\n    // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n    // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n    i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n    if (k > i) {\r\n      k = i;\r\n      d.length = 1;\r\n    }\r\n\r\n    // Prepend zeros to equalise exponents.\r\n    d.reverse();\r\n    for (i = k; i--;) d.push(0);\r\n    d.reverse();\r\n\r\n  // Base 1e7 exponents equal.\r\n  } else {\r\n\r\n    // Check digits to determine which is the bigger number.\r\n\r\n    i = xd.length;\r\n    len = yd.length;\r\n    xLTy = i < len;\r\n    if (xLTy) len = i;\r\n\r\n    for (i = 0; i < len; i++) {\r\n      if (xd[i] != yd[i]) {\r\n        xLTy = xd[i] < yd[i];\r\n        break;\r\n      }\r\n    }\r\n\r\n    k = 0;\r\n  }\r\n\r\n  if (xLTy) {\r\n    d = xd;\r\n    xd = yd;\r\n    yd = d;\r\n    y.s = -y.s;\r\n  }\r\n\r\n  len = xd.length;\r\n\r\n  // Append zeros to `xd` if shorter.\r\n  // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n  for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n  // Subtract yd from xd.\r\n  for (i = yd.length; i > k;) {\r\n\r\n    if (xd[--i] < yd[i]) {\r\n      for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n      --xd[j];\r\n      xd[i] += BASE;\r\n    }\r\n\r\n    xd[i] -= yd[i];\r\n  }\r\n\r\n  // Remove trailing zeros.\r\n  for (; xd[--len] === 0;) xd.pop();\r\n\r\n  // Remove leading zeros and adjust exponent accordingly.\r\n  for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n  // Zero?\r\n  if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n  y.d = xd;\r\n  y.e = getBase10Exponent(xd, e);\r\n\r\n  return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n *   n % 0 =  N\r\n *   n % N =  N\r\n *   n % I =  n\r\n *   0 % n =  0\r\n *  -0 % n = -0\r\n *   0 % 0 =  N\r\n *   0 % N =  N\r\n *   0 % I =  0\r\n *   N % n =  N\r\n *   N % 0 =  N\r\n *   N % N =  N\r\n *   N % I =  N\r\n *   I % n =  N\r\n *   I % 0 =  N\r\n *   I % N =  N\r\n *   I % I =  N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\nP.modulo = P.mod = function (y) {\r\n  var q,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  y = new Ctor(y);\r\n\r\n  // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n  if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n  // Return x if y is ±Infinity or x is ±0.\r\n  if (!y.d || x.d && !x.d[0]) {\r\n    return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n  }\r\n\r\n  // Prevent rounding of intermediate calculations.\r\n  external = false;\r\n\r\n  if (Ctor.modulo == 9) {\r\n\r\n    // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n    // result = x - q * y    where  0 <= result < abs(y)\r\n    q = divide(x, y.abs(), 0, 3, 1);\r\n    q.s *= y.s;\r\n  } else {\r\n    q = divide(x, y, 0, Ctor.modulo, 1);\r\n  }\r\n\r\n  q = q.times(y);\r\n\r\n  external = true;\r\n\r\n  return x.minus(q);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalExponential = P.exp = function () {\r\n  return naturalExponential(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalLogarithm = P.ln = function () {\r\n  return naturalLogarithm(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\nP.negated = P.neg = function () {\r\n  var x = new this.constructor(this);\r\n  x.s = -x.s;\r\n  return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n *  n + 0 = n\r\n *  n + N = N\r\n *  n + I = I\r\n *  0 + n = n\r\n *  0 + 0 = 0\r\n *  0 + N = N\r\n *  0 + I = I\r\n *  N + n = N\r\n *  N + 0 = N\r\n *  N + N = N\r\n *  N + I = N\r\n *  I + n = I\r\n *  I + 0 = I\r\n *  I + N = N\r\n *  I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.plus = P.add = function (y) {\r\n  var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  y = new Ctor(y);\r\n\r\n  // If either is not finite...\r\n  if (!x.d || !y.d) {\r\n\r\n    // Return NaN if either is NaN.\r\n    if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n    // Return x if y is finite and x is ±Infinity.\r\n    // Return x if both are ±Infinity with the same sign.\r\n    // Return NaN if both are ±Infinity with different signs.\r\n    // Return y if x is finite and y is ±Infinity.\r\n    else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n    return y;\r\n  }\r\n\r\n   // If signs differ...\r\n  if (x.s != y.s) {\r\n    y.s = -y.s;\r\n    return x.minus(y);\r\n  }\r\n\r\n  xd = x.d;\r\n  yd = y.d;\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n\r\n  // If either is zero...\r\n  if (!xd[0] || !yd[0]) {\r\n\r\n    // Return x if y is zero.\r\n    // Return y if y is non-zero.\r\n    if (!yd[0]) y = new Ctor(x);\r\n\r\n    return external ? finalise(y, pr, rm) : y;\r\n  }\r\n\r\n  // x and y are finite, non-zero numbers with the same sign.\r\n\r\n  // Calculate base 1e7 exponents.\r\n  k = mathfloor(x.e / LOG_BASE);\r\n  e = mathfloor(y.e / LOG_BASE);\r\n\r\n  xd = xd.slice();\r\n  i = k - e;\r\n\r\n  // If base 1e7 exponents differ...\r\n  if (i) {\r\n\r\n    if (i < 0) {\r\n      d = xd;\r\n      i = -i;\r\n      len = yd.length;\r\n    } else {\r\n      d = yd;\r\n      e = k;\r\n      len = xd.length;\r\n    }\r\n\r\n    // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n    k = Math.ceil(pr / LOG_BASE);\r\n    len = k > len ? k + 1 : len + 1;\r\n\r\n    if (i > len) {\r\n      i = len;\r\n      d.length = 1;\r\n    }\r\n\r\n    // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n    d.reverse();\r\n    for (; i--;) d.push(0);\r\n    d.reverse();\r\n  }\r\n\r\n  len = xd.length;\r\n  i = yd.length;\r\n\r\n  // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n  if (len - i < 0) {\r\n    i = len;\r\n    d = yd;\r\n    yd = xd;\r\n    xd = d;\r\n  }\r\n\r\n  // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n  for (carry = 0; i;) {\r\n    carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n    xd[i] %= BASE;\r\n  }\r\n\r\n  if (carry) {\r\n    xd.unshift(carry);\r\n    ++e;\r\n  }\r\n\r\n  // Remove trailing zeros.\r\n  // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n  for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n  y.d = xd;\r\n  y.e = getBase10Exponent(xd, e);\r\n\r\n  return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\nP.precision = P.sd = function (z) {\r\n  var k,\r\n    x = this;\r\n\r\n  if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n  if (x.d) {\r\n    k = getPrecision(x.d);\r\n    if (z && x.e + 1 > k) k = x.e + 1;\r\n  } else {\r\n    k = NaN;\r\n  }\r\n\r\n  return k;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\nP.round = function () {\r\n  var x = this,\r\n    Ctor = x.constructor;\r\n\r\n  return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0)         = 0\r\n * sin(-0)        = -0\r\n * sin(Infinity)  = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN)       = NaN\r\n *\r\n */\r\nP.sine = P.sin = function () {\r\n  var pr, rm,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (!x.isFinite()) return new Ctor(NaN);\r\n  if (x.isZero()) return new Ctor(x);\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n  Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n  Ctor.rounding = 1;\r\n\r\n  x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n  Ctor.precision = pr;\r\n  Ctor.rounding = rm;\r\n\r\n  return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n *  sqrt(-n) =  N\r\n *  sqrt(N)  =  N\r\n *  sqrt(-I) =  N\r\n *  sqrt(I)  =  I\r\n *  sqrt(0)  =  0\r\n *  sqrt(-0) = -0\r\n *\r\n */\r\nP.squareRoot = P.sqrt = function () {\r\n  var m, n, sd, r, rep, t,\r\n    x = this,\r\n    d = x.d,\r\n    e = x.e,\r\n    s = x.s,\r\n    Ctor = x.constructor;\r\n\r\n  // Negative/NaN/Infinity/zero?\r\n  if (s !== 1 || !d || !d[0]) {\r\n    return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n  }\r\n\r\n  external = false;\r\n\r\n  // Initial estimate.\r\n  s = Math.sqrt(+x);\r\n\r\n  // Math.sqrt underflow/overflow?\r\n  // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n  if (s == 0 || s == 1 / 0) {\r\n    n = digitsToString(d);\r\n\r\n    if ((n.length + e) % 2 == 0) n += '0';\r\n    s = Math.sqrt(n);\r\n    e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n    if (s == 1 / 0) {\r\n      n = '5e' + e;\r\n    } else {\r\n      n = s.toExponential();\r\n      n = n.slice(0, n.indexOf('e') + 1) + e;\r\n    }\r\n\r\n    r = new Ctor(n);\r\n  } else {\r\n    r = new Ctor(s.toString());\r\n  }\r\n\r\n  sd = (e = Ctor.precision) + 3;\r\n\r\n  // Newton-Raphson iteration.\r\n  for (;;) {\r\n    t = r;\r\n    r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n    // TODO? Replace with for-loop and checkRoundingDigits.\r\n    if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n      n = n.slice(sd - 3, sd + 1);\r\n\r\n      // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n      // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n      if (n == '9999' || !rep && n == '4999') {\r\n\r\n        // On the first iteration only, check to see if rounding up gives the exact result as the\r\n        // nines may infinitely repeat.\r\n        if (!rep) {\r\n          finalise(t, e + 1, 0);\r\n\r\n          if (t.times(t).eq(x)) {\r\n            r = t;\r\n            break;\r\n          }\r\n        }\r\n\r\n        sd += 4;\r\n        rep = 1;\r\n      } else {\r\n\r\n        // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n        // If not, then there are further digits and m will be truthy.\r\n        if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n          // Truncate to the first rounding digit.\r\n          finalise(r, e + 1, 1);\r\n          m = !r.times(r).eq(x);\r\n        }\r\n\r\n        break;\r\n      }\r\n    }\r\n  }\r\n\r\n  external = true;\r\n\r\n  return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0)         = 0\r\n * tan(-0)        = -0\r\n * tan(Infinity)  = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN)       = NaN\r\n *\r\n */\r\nP.tangent = P.tan = function () {\r\n  var pr, rm,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (!x.isFinite()) return new Ctor(NaN);\r\n  if (x.isZero()) return new Ctor(x);\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n  Ctor.precision = pr + 10;\r\n  Ctor.rounding = 1;\r\n\r\n  x = x.sin();\r\n  x.s = 1;\r\n  x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n  Ctor.precision = pr;\r\n  Ctor.rounding = rm;\r\n\r\n  return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n *  n * 0 = 0\r\n *  n * N = N\r\n *  n * I = I\r\n *  0 * n = 0\r\n *  0 * 0 = 0\r\n *  0 * N = N\r\n *  0 * I = N\r\n *  N * n = N\r\n *  N * 0 = N\r\n *  N * N = N\r\n *  N * I = N\r\n *  I * n = I\r\n *  I * 0 = N\r\n *  I * N = N\r\n *  I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.times = P.mul = function (y) {\r\n  var carry, e, i, k, r, rL, t, xdL, ydL,\r\n    x = this,\r\n    Ctor = x.constructor,\r\n    xd = x.d,\r\n    yd = (y = new Ctor(y)).d;\r\n\r\n  y.s *= x.s;\r\n\r\n   // If either is NaN, ±Infinity or ±0...\r\n  if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n    return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n      // Return NaN if either is NaN.\r\n      // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n      ? NaN\r\n\r\n      // Return ±Infinity if either is ±Infinity.\r\n      // Return ±0 if either is ±0.\r\n      : !xd || !yd ? y.s / 0 : y.s * 0);\r\n  }\r\n\r\n  e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n  xdL = xd.length;\r\n  ydL = yd.length;\r\n\r\n  // Ensure xd points to the longer array.\r\n  if (xdL < ydL) {\r\n    r = xd;\r\n    xd = yd;\r\n    yd = r;\r\n    rL = xdL;\r\n    xdL = ydL;\r\n    ydL = rL;\r\n  }\r\n\r\n  // Initialise the result array with zeros.\r\n  r = [];\r\n  rL = xdL + ydL;\r\n  for (i = rL; i--;) r.push(0);\r\n\r\n  // Multiply!\r\n  for (i = ydL; --i >= 0;) {\r\n    carry = 0;\r\n    for (k = xdL + i; k > i;) {\r\n      t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n      r[k--] = t % BASE | 0;\r\n      carry = t / BASE | 0;\r\n    }\r\n\r\n    r[k] = (r[k] + carry) % BASE | 0;\r\n  }\r\n\r\n  // Remove trailing zeros.\r\n  for (; !r[--rL];) r.pop();\r\n\r\n  if (carry) ++e;\r\n  else r.shift();\r\n\r\n  y.d = r;\r\n  y.e = getBase10Exponent(r, e);\r\n\r\n  return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toBinary = function (sd, rm) {\r\n  return toStringBinary(this, 2, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n  var x = this,\r\n    Ctor = x.constructor;\r\n\r\n  x = new Ctor(x);\r\n  if (dp === void 0) return x;\r\n\r\n  checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n  if (rm === void 0) rm = Ctor.rounding;\r\n  else checkInt32(rm, 0, 8);\r\n\r\n  return finalise(x, dp + x.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toExponential = function (dp, rm) {\r\n  var str,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (dp === void 0) {\r\n    str = finiteToString(x, true);\r\n  } else {\r\n    checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n    if (rm === void 0) rm = Ctor.rounding;\r\n    else checkInt32(rm, 0, 8);\r\n\r\n    x = finalise(new Ctor(x), dp + 1, rm);\r\n    str = finiteToString(x, true, dp + 1);\r\n  }\r\n\r\n  return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\nP.toFixed = function (dp, rm) {\r\n  var str, y,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (dp === void 0) {\r\n    str = finiteToString(x);\r\n  } else {\r\n    checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n    if (rm === void 0) rm = Ctor.rounding;\r\n    else checkInt32(rm, 0, 8);\r\n\r\n    y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n    str = finiteToString(y, false, dp + y.e + 1);\r\n  }\r\n\r\n  // To determine whether to add the minus sign look at the value before it was rounded,\r\n  // i.e. look at `x` rather than `y`.\r\n  return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|bigint|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\nP.toFraction = function (maxD) {\r\n  var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n    x = this,\r\n    xd = x.d,\r\n    Ctor = x.constructor;\r\n\r\n  if (!xd) return new Ctor(x);\r\n\r\n  n1 = d0 = new Ctor(1);\r\n  d1 = n0 = new Ctor(0);\r\n\r\n  d = new Ctor(d1);\r\n  e = d.e = getPrecision(xd) - x.e - 1;\r\n  k = e % LOG_BASE;\r\n  d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n  if (maxD == null) {\r\n\r\n    // d is 10**e, the minimum max-denominator needed.\r\n    maxD = e > 0 ? d : n1;\r\n  } else {\r\n    n = new Ctor(maxD);\r\n    if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n    maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n  }\r\n\r\n  external = false;\r\n  n = new Ctor(digitsToString(xd));\r\n  pr = Ctor.precision;\r\n  Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n  for (;;)  {\r\n    q = divide(n, d, 0, 1, 1);\r\n    d2 = d0.plus(q.times(d1));\r\n    if (d2.cmp(maxD) == 1) break;\r\n    d0 = d1;\r\n    d1 = d2;\r\n    d2 = n1;\r\n    n1 = n0.plus(q.times(d2));\r\n    n0 = d2;\r\n    d2 = d;\r\n    d = n.minus(q.times(d2));\r\n    n = d2;\r\n  }\r\n\r\n  d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n  n0 = n0.plus(d2.times(n1));\r\n  d0 = d0.plus(d2.times(d1));\r\n  n0.s = n1.s = x.s;\r\n\r\n  // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n  r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n      ? [n1, d1] : [n0, d0];\r\n\r\n  Ctor.precision = pr;\r\n  external = true;\r\n\r\n  return r;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toHexadecimal = P.toHex = function (sd, rm) {\r\n  return toStringBinary(this, 16, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|bigint|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toNearest = function (y, rm) {\r\n  var x = this,\r\n    Ctor = x.constructor;\r\n\r\n  x = new Ctor(x);\r\n\r\n  if (y == null) {\r\n\r\n    // If x is not finite, return x.\r\n    if (!x.d) return x;\r\n\r\n    y = new Ctor(1);\r\n    rm = Ctor.rounding;\r\n  } else {\r\n    y = new Ctor(y);\r\n    if (rm === void 0) {\r\n      rm = Ctor.rounding;\r\n    } else {\r\n      checkInt32(rm, 0, 8);\r\n    }\r\n\r\n    // If x is not finite, return x if y is not NaN, else NaN.\r\n    if (!x.d) return y.s ? x : y;\r\n\r\n    // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n    if (!y.d) {\r\n      if (y.s) y.s = x.s;\r\n      return y;\r\n    }\r\n  }\r\n\r\n  // If y is not zero, calculate the nearest multiple of y to x.\r\n  if (y.d[0]) {\r\n    external = false;\r\n    x = divide(x, y, 0, rm, 1).times(y);\r\n    external = true;\r\n    finalise(x);\r\n\r\n  // If y is zero, return zero with the sign of x.\r\n  } else {\r\n    y.s = x.s;\r\n    x = y;\r\n  }\r\n\r\n  return x;\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\nP.toNumber = function () {\r\n  return +this;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toOctal = function (sd, rm) {\r\n  return toStringBinary(this, 8, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n *   pow(x, NaN)                           = NaN\r\n *   pow(x, ±0)                            = 1\r\n\r\n *   pow(NaN, non-zero)                    = NaN\r\n *   pow(abs(x) > 1, +Infinity)            = +Infinity\r\n *   pow(abs(x) > 1, -Infinity)            = +0\r\n *   pow(abs(x) == 1, ±Infinity)           = NaN\r\n *   pow(abs(x) < 1, +Infinity)            = +0\r\n *   pow(abs(x) < 1, -Infinity)            = +Infinity\r\n *   pow(+Infinity, y > 0)                 = +Infinity\r\n *   pow(+Infinity, y < 0)                 = +0\r\n *   pow(-Infinity, odd integer > 0)       = -Infinity\r\n *   pow(-Infinity, even integer > 0)      = +Infinity\r\n *   pow(-Infinity, odd integer < 0)       = -0\r\n *   pow(-Infinity, even integer < 0)      = +0\r\n *   pow(+0, y > 0)                        = +0\r\n *   pow(+0, y < 0)                        = +Infinity\r\n *   pow(-0, odd integer > 0)              = -0\r\n *   pow(-0, even integer > 0)             = +0\r\n *   pow(-0, odd integer < 0)              = -Infinity\r\n *   pow(-0, even integer < 0)             = +Infinity\r\n *   pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n *   x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|bigint|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\nP.toPower = P.pow = function (y) {\r\n  var e, k, pr, r, rm, s,\r\n    x = this,\r\n    Ctor = x.constructor,\r\n    yn = +(y = new Ctor(y));\r\n\r\n  // Either ±Infinity, NaN or ±0?\r\n  if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n  x = new Ctor(x);\r\n\r\n  if (x.eq(1)) return x;\r\n\r\n  pr = Ctor.precision;\r\n  rm = Ctor.rounding;\r\n\r\n  if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n  // y exponent\r\n  e = mathfloor(y.e / LOG_BASE);\r\n\r\n  // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n  if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n    r = intPow(Ctor, x, k, pr);\r\n    return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n  }\r\n\r\n  s = x.s;\r\n\r\n  // if x is negative\r\n  if (s < 0) {\r\n\r\n    // if y is not an integer\r\n    if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n    // Result is positive if x is negative and the last digit of integer y is even.\r\n    if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n    // if x.eq(-1)\r\n    if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n      x.s = s;\r\n      return x;\r\n    }\r\n  }\r\n\r\n  // Estimate result exponent.\r\n  // x^y = 10^e,  where e = y * log10(x)\r\n  // log10(x) = log10(x_significand) + x_exponent\r\n  // log10(x_significand) = ln(x_significand) / ln(10)\r\n  k = mathpow(+x, yn);\r\n  e = k == 0 || !isFinite(k)\r\n    ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n    : new Ctor(k + '').e;\r\n\r\n  // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n  // Overflow/underflow?\r\n  if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n  external = false;\r\n  Ctor.rounding = x.s = 1;\r\n\r\n  // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n  // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n  // new Decimal(2.32456).pow('2087987436534566.46411')\r\n  // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n  k = Math.min(12, (e + '').length);\r\n\r\n  // r = x^y = exp(y*ln(x))\r\n  r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n  // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n  if (r.d) {\r\n\r\n    // Truncate to the required precision plus five rounding digits.\r\n    r = finalise(r, pr + 5, 1);\r\n\r\n    // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n    // the result.\r\n    if (checkRoundingDigits(r.d, pr, rm)) {\r\n      e = pr + 10;\r\n\r\n      // Truncate to the increased precision plus five rounding digits.\r\n      r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n      // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n      if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n        r = finalise(r, pr + 1, 0);\r\n      }\r\n    }\r\n  }\r\n\r\n  r.s = s;\r\n  external = true;\r\n  Ctor.rounding = rm;\r\n\r\n  return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n  var str,\r\n    x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (sd === void 0) {\r\n    str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n  } else {\r\n    checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n    if (rm === void 0) rm = Ctor.rounding;\r\n    else checkInt32(rm, 0, 8);\r\n\r\n    x = finalise(new Ctor(x), sd, rm);\r\n    str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n  }\r\n\r\n  return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toSignificantDigits = P.toSD = function (sd, rm) {\r\n  var x = this,\r\n    Ctor = x.constructor;\r\n\r\n  if (sd === void 0) {\r\n    sd = Ctor.precision;\r\n    rm = Ctor.rounding;\r\n  } else {\r\n    checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n    if (rm === void 0) rm = Ctor.rounding;\r\n    else checkInt32(rm, 0, 8);\r\n  }\r\n\r\n  return finalise(new Ctor(x), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\nP.toString = function () {\r\n  var x = this,\r\n    Ctor = x.constructor,\r\n    str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n  return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\nP.truncated = P.trunc = function () {\r\n  return finalise(new this.constructor(this), this.e + 1, 1);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\nP.valueOf = P.toJSON = function () {\r\n  var x = this,\r\n    Ctor = x.constructor,\r\n    str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n  return x.isNeg() ? '-' + str : str;\r\n};\r\n\r\n\r\n// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n/*\r\n *  digitsToString           P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n *                           finiteToString, naturalExponential, naturalLogarithm\r\n *  checkInt32               P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n *                           P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n *  checkRoundingDigits      P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n *  convertBase              toStringBinary, parseOther\r\n *  cos                      P.cos\r\n *  divide                   P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n *                           P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n *                           P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n *                           taylorSeries, atan2, parseOther\r\n *  finalise                 P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n *                           P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n *                           P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n *                           P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n *                           P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n *                           P.truncated, divide, getLn10, getPi, naturalExponential,\r\n *                           naturalLogarithm, ceil, floor, round, trunc\r\n *  finiteToString           P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n *                           toStringBinary\r\n *  getBase10Exponent        P.minus, P.plus, P.times, parseOther\r\n *  getLn10                  P.logarithm, naturalLogarithm\r\n *  getPi                    P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n *  getPrecision             P.precision, P.toFraction\r\n *  getZeroString            digitsToString, finiteToString\r\n *  intPow                   P.toPower, parseOther\r\n *  isOdd                    toLessThanHalfPi\r\n *  maxOrMin                 max, min\r\n *  naturalExponential       P.naturalExponential, P.toPower\r\n *  naturalLogarithm         P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n *                           P.toPower, naturalExponential\r\n *  nonFiniteToString        finiteToString, toStringBinary\r\n *  parseDecimal             Decimal\r\n *  parseOther               Decimal\r\n *  sin                      P.sin\r\n *  taylorSeries             P.cosh, P.sinh, cos, sin\r\n *  toLessThanHalfPi         P.cos, P.sin\r\n *  toStringBinary           P.toBinary, P.toHexadecimal, P.toOctal\r\n *  truncate                 intPow\r\n *\r\n *  Throws:                  P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n *                           naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\nfunction digitsToString(d) {\r\n  var i, k, ws,\r\n    indexOfLastWord = d.length - 1,\r\n    str = '',\r\n    w = d[0];\r\n\r\n  if (indexOfLastWord > 0) {\r\n    str += w;\r\n    for (i = 1; i < indexOfLastWord; i++) {\r\n      ws = d[i] + '';\r\n      k = LOG_BASE - ws.length;\r\n      if (k) str += getZeroString(k);\r\n      str += ws;\r\n    }\r\n\r\n    w = d[i];\r\n    ws = w + '';\r\n    k = LOG_BASE - ws.length;\r\n    if (k) str += getZeroString(k);\r\n  } else if (w === 0) {\r\n    return '0';\r\n  }\r\n\r\n  // Remove trailing zeros of last w.\r\n  for (; w % 10 === 0;) w /= 10;\r\n\r\n  return str + w;\r\n}\r\n\r\n\r\nfunction checkInt32(i, min, max) {\r\n  if (i !== ~~i || i < min || i > max) {\r\n    throw Error(invalidArgument + i);\r\n  }\r\n}\r\n\r\n\r\n/*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\nfunction checkRoundingDigits(d, i, rm, repeating) {\r\n  var di, k, r, rd;\r\n\r\n  // Get the length of the first word of the array d.\r\n  for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n  // Is the rounding digit in the first word of d?\r\n  if (--i < 0) {\r\n    i += LOG_BASE;\r\n    di = 0;\r\n  } else {\r\n    di = Math.ceil((i + 1) / LOG_BASE);\r\n    i %= LOG_BASE;\r\n  }\r\n\r\n  // i is the index (0 - 6) of the rounding digit.\r\n  // E.g. if within the word 3487563 the first rounding digit is 5,\r\n  // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n  k = mathpow(10, LOG_BASE - i);\r\n  rd = d[di] % k | 0;\r\n\r\n  if (repeating == null) {\r\n    if (i < 3) {\r\n      if (i == 0) rd = rd / 100 | 0;\r\n      else if (i == 1) rd = rd / 10 | 0;\r\n      r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n    } else {\r\n      r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n        (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n          (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n    }\r\n  } else {\r\n    if (i < 4) {\r\n      if (i == 0) rd = rd / 1000 | 0;\r\n      else if (i == 1) rd = rd / 100 | 0;\r\n      else if (i == 2) rd = rd / 10 | 0;\r\n      r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n    } else {\r\n      r = ((repeating || rm < 4) && rd + 1 == k ||\r\n      (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n        (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n    }\r\n  }\r\n\r\n  return r;\r\n}\r\n\r\n\r\n// Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n// Eg. convertBase('255', 10, 16) returns [15, 15].\r\n// Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\nfunction convertBase(str, baseIn, baseOut) {\r\n  var j,\r\n    arr = [0],\r\n    arrL,\r\n    i = 0,\r\n    strL = str.length;\r\n\r\n  for (; i < strL;) {\r\n    for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n    arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n    for (j = 0; j < arr.length; j++) {\r\n      if (arr[j] > baseOut - 1) {\r\n        if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n        arr[j + 1] += arr[j] / baseOut | 0;\r\n        arr[j] %= baseOut;\r\n      }\r\n    }\r\n  }\r\n\r\n  return arr.reverse();\r\n}\r\n\r\n\r\n/*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction cosine(Ctor, x) {\r\n  var k, len, y;\r\n\r\n  if (x.isZero()) return x;\r\n\r\n  // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n  // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n  // Estimate the optimum number of times to use the argument reduction.\r\n  len = x.d.length;\r\n  if (len < 32) {\r\n    k = Math.ceil(len / 3);\r\n    y = (1 / tinyPow(4, k)).toString();\r\n  } else {\r\n    k = 16;\r\n    y = '2.3283064365386962890625e-10';\r\n  }\r\n\r\n  Ctor.precision += k;\r\n\r\n  x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n  // Reverse argument reduction\r\n  for (var i = k; i--;) {\r\n    var cos2x = x.times(x);\r\n    x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n  }\r\n\r\n  Ctor.precision -= k;\r\n\r\n  return x;\r\n}\r\n\r\n\r\n/*\r\n * Perform division in the specified base.\r\n */\r\nvar divide = (function () {\r\n\r\n  // Assumes non-zero x and k, and hence non-zero result.\r\n  function multiplyInteger(x, k, base) {\r\n    var temp,\r\n      carry = 0,\r\n      i = x.length;\r\n\r\n    for (x = x.slice(); i--;) {\r\n      temp = x[i] * k + carry;\r\n      x[i] = temp % base | 0;\r\n      carry = temp / base | 0;\r\n    }\r\n\r\n    if (carry) x.unshift(carry);\r\n\r\n    return x;\r\n  }\r\n\r\n  function compare(a, b, aL, bL) {\r\n    var i, r;\r\n\r\n    if (aL != bL) {\r\n      r = aL > bL ? 1 : -1;\r\n    } else {\r\n      for (i = r = 0; i < aL; i++) {\r\n        if (a[i] != b[i]) {\r\n          r = a[i] > b[i] ? 1 : -1;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    return r;\r\n  }\r\n\r\n  function subtract(a, b, aL, base) {\r\n    var i = 0;\r\n\r\n    // Subtract b from a.\r\n    for (; aL--;) {\r\n      a[aL] -= i;\r\n      i = a[aL] < b[aL] ? 1 : 0;\r\n      a[aL] = i * base + a[aL] - b[aL];\r\n    }\r\n\r\n    // Remove leading zeros.\r\n    for (; !a[0] && a.length > 1;) a.shift();\r\n  }\r\n\r\n  return function (x, y, pr, rm, dp, base) {\r\n    var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n      yL, yz,\r\n      Ctor = x.constructor,\r\n      sign = x.s == y.s ? 1 : -1,\r\n      xd = x.d,\r\n      yd = y.d;\r\n\r\n    // Either NaN, Infinity or 0?\r\n    if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n      return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n        !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n        // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n        xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n    }\r\n\r\n    if (base) {\r\n      logBase = 1;\r\n      e = x.e - y.e;\r\n    } else {\r\n      base = BASE;\r\n      logBase = LOG_BASE;\r\n      e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n    }\r\n\r\n    yL = yd.length;\r\n    xL = xd.length;\r\n    q = new Ctor(sign);\r\n    qd = q.d = [];\r\n\r\n    // Result exponent may be one less than e.\r\n    // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n    for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n    if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n    if (pr == null) {\r\n      sd = pr = Ctor.precision;\r\n      rm = Ctor.rounding;\r\n    } else if (dp) {\r\n      sd = pr + (x.e - y.e) + 1;\r\n    } else {\r\n      sd = pr;\r\n    }\r\n\r\n    if (sd < 0) {\r\n      qd.push(1);\r\n      more = true;\r\n    } else {\r\n\r\n      // Convert precision in number of base 10 digits to base 1e7 digits.\r\n      sd = sd / logBase + 2 | 0;\r\n      i = 0;\r\n\r\n      // divisor < 1e7\r\n      if (yL == 1) {\r\n        k = 0;\r\n        yd = yd[0];\r\n        sd++;\r\n\r\n        // k is the carry.\r\n        for (; (i < xL || k) && sd--; i++) {\r\n          t = k * base + (xd[i] || 0);\r\n          qd[i] = t / yd | 0;\r\n          k = t % yd | 0;\r\n        }\r\n\r\n        more = k || i < xL;\r\n\r\n      // divisor >= 1e7\r\n      } else {\r\n\r\n        // Normalise xd and yd so highest order digit of yd is >= base/2\r\n        k = base / (yd[0] + 1) | 0;\r\n\r\n        if (k > 1) {\r\n          yd = multiplyInteger(yd, k, base);\r\n          xd = multiplyInteger(xd, k, base);\r\n          yL = yd.length;\r\n          xL = xd.length;\r\n        }\r\n\r\n        xi = yL;\r\n        rem = xd.slice(0, yL);\r\n        remL = rem.length;\r\n\r\n        // Add zeros to make remainder as long as divisor.\r\n        for (; remL < yL;) rem[remL++] = 0;\r\n\r\n        yz = yd.slice();\r\n        yz.unshift(0);\r\n        yd0 = yd[0];\r\n\r\n        if (yd[1] >= base / 2) ++yd0;\r\n\r\n        do {\r\n          k = 0;\r\n\r\n          // Compare divisor and remainder.\r\n          cmp = compare(yd, rem, yL, remL);\r\n\r\n          // If divisor < remainder.\r\n          if (cmp < 0) {\r\n\r\n            // Calculate trial digit, k.\r\n            rem0 = rem[0];\r\n            if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n            // k will be how many times the divisor goes into the current remainder.\r\n            k = rem0 / yd0 | 0;\r\n\r\n            //  Algorithm:\r\n            //  1. product = divisor * trial digit (k)\r\n            //  2. if product > remainder: product -= divisor, k--\r\n            //  3. remainder -= product\r\n            //  4. if product was < remainder at 2:\r\n            //    5. compare new remainder and divisor\r\n            //    6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n            if (k > 1) {\r\n              if (k >= base) k = base - 1;\r\n\r\n              // product = divisor * trial digit.\r\n              prod = multiplyInteger(yd, k, base);\r\n              prodL = prod.length;\r\n              remL = rem.length;\r\n\r\n              // Compare product and remainder.\r\n              cmp = compare(prod, rem, prodL, remL);\r\n\r\n              // product > remainder.\r\n              if (cmp == 1) {\r\n                k--;\r\n\r\n                // Subtract divisor from product.\r\n                subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n              }\r\n            } else {\r\n\r\n              // cmp is -1.\r\n              // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n              // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n              if (k == 0) cmp = k = 1;\r\n              prod = yd.slice();\r\n            }\r\n\r\n            prodL = prod.length;\r\n            if (prodL < remL) prod.unshift(0);\r\n\r\n            // Subtract product from remainder.\r\n            subtract(rem, prod, remL, base);\r\n\r\n            // If product was < previous remainder.\r\n            if (cmp == -1) {\r\n              remL = rem.length;\r\n\r\n              // Compare divisor and new remainder.\r\n              cmp = compare(yd, rem, yL, remL);\r\n\r\n              // If divisor < new remainder, subtract divisor from remainder.\r\n              if (cmp < 1) {\r\n                k++;\r\n\r\n                // Subtract divisor from remainder.\r\n                subtract(rem, yL < remL ? yz : yd, remL, base);\r\n              }\r\n            }\r\n\r\n            remL = rem.length;\r\n          } else if (cmp === 0) {\r\n            k++;\r\n            rem = [0];\r\n          }    // if cmp === 1, k will be 0\r\n\r\n          // Add the next digit, k, to the result array.\r\n          qd[i++] = k;\r\n\r\n          // Update the remainder.\r\n          if (cmp && rem[0]) {\r\n            rem[remL++] = xd[xi] || 0;\r\n          } else {\r\n            rem = [xd[xi]];\r\n            remL = 1;\r\n          }\r\n\r\n        } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n        more = rem[0] !== void 0;\r\n      }\r\n\r\n      // Leading zero?\r\n      if (!qd[0]) qd.shift();\r\n    }\r\n\r\n    // logBase is 1 when divide is being used for base conversion.\r\n    if (logBase == 1) {\r\n      q.e = e;\r\n      inexact = more;\r\n    } else {\r\n\r\n      // To calculate q.e, first get the number of digits of qd[0].\r\n      for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n      q.e = i + e * logBase - 1;\r\n\r\n      finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n    }\r\n\r\n    return q;\r\n  };\r\n})();\r\n\r\n\r\n/*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n  var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n    Ctor = x.constructor;\r\n\r\n  // Don't round if sd is null or undefined.\r\n  out: if (sd != null) {\r\n    xd = x.d;\r\n\r\n    // Infinity/NaN.\r\n    if (!xd) return x;\r\n\r\n    // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n    // w: the word of xd containing rd, a base 1e7 number.\r\n    // xdi: the index of w within xd.\r\n    // digits: the number of digits of w.\r\n    // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n    // they had leading zeros)\r\n    // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n    // Get the length of the first word of the digits array xd.\r\n    for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n    i = sd - digits;\r\n\r\n    // Is the rounding digit in the first word of xd?\r\n    if (i < 0) {\r\n      i += LOG_BASE;\r\n      j = sd;\r\n      w = xd[xdi = 0];\r\n\r\n      // Get the rounding digit at index j of w.\r\n      rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n    } else {\r\n      xdi = Math.ceil((i + 1) / LOG_BASE);\r\n      k = xd.length;\r\n      if (xdi >= k) {\r\n        if (isTruncated) {\r\n\r\n          // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n          for (; k++ <= xdi;) xd.push(0);\r\n          w = rd = 0;\r\n          digits = 1;\r\n          i %= LOG_BASE;\r\n          j = i - LOG_BASE + 1;\r\n        } else {\r\n          break out;\r\n        }\r\n      } else {\r\n        w = k = xd[xdi];\r\n\r\n        // Get the number of digits of w.\r\n        for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n        // Get the index of rd within w.\r\n        i %= LOG_BASE;\r\n\r\n        // Get the index of rd within w, adjusted for leading zeros.\r\n        // The number of leading zeros of w is given by LOG_BASE - digits.\r\n        j = i - LOG_BASE + digits;\r\n\r\n        // Get the rounding digit at index j of w.\r\n        rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n      }\r\n    }\r\n\r\n    // Are there any non-zero digits after the rounding digit?\r\n    isTruncated = isTruncated || sd < 0 ||\r\n      xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n    // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n    // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n    // will give 714.\r\n\r\n    roundUp = rm < 4\r\n      ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n      : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n        // Check whether the digit to the left of the rounding digit is odd.\r\n        ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n          rm == (x.s < 0 ? 8 : 7));\r\n\r\n    if (sd < 1 || !xd[0]) {\r\n      xd.length = 0;\r\n      if (roundUp) {\r\n\r\n        // Convert sd to decimal places.\r\n        sd -= x.e + 1;\r\n\r\n        // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n        xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n        x.e = -sd || 0;\r\n      } else {\r\n\r\n        // Zero.\r\n        xd[0] = x.e = 0;\r\n      }\r\n\r\n      return x;\r\n    }\r\n\r\n    // Remove excess digits.\r\n    if (i == 0) {\r\n      xd.length = xdi;\r\n      k = 1;\r\n      xdi--;\r\n    } else {\r\n      xd.length = xdi + 1;\r\n      k = mathpow(10, LOG_BASE - i);\r\n\r\n      // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n      // j > 0 means i > number of leading zeros of w.\r\n      xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n    }\r\n\r\n    if (roundUp) {\r\n      for (;;) {\r\n\r\n        // Is the digit to be rounded up in the first word of xd?\r\n        if (xdi == 0) {\r\n\r\n          // i will be the length of xd[0] before k is added.\r\n          for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n          j = xd[0] += k;\r\n          for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n          // if i != k the length has increased.\r\n          if (i != k) {\r\n            x.e++;\r\n            if (xd[0] == BASE) xd[0] = 1;\r\n          }\r\n\r\n          break;\r\n        } else {\r\n          xd[xdi] += k;\r\n          if (xd[xdi] != BASE) break;\r\n          xd[xdi--] = 0;\r\n          k = 1;\r\n        }\r\n      }\r\n    }\r\n\r\n    // Remove trailing zeros.\r\n    for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n  }\r\n\r\n  if (external) {\r\n\r\n    // Overflow?\r\n    if (x.e > Ctor.maxE) {\r\n\r\n      // Infinity.\r\n      x.d = null;\r\n      x.e = NaN;\r\n\r\n    // Underflow?\r\n    } else if (x.e < Ctor.minE) {\r\n\r\n      // Zero.\r\n      x.e = 0;\r\n      x.d = [0];\r\n      // Ctor.underflow = true;\r\n    } // else Ctor.underflow = false;\r\n  }\r\n\r\n  return x;\r\n}\r\n\r\n\r\nfunction finiteToString(x, isExp, sd) {\r\n  if (!x.isFinite()) return nonFiniteToString(x);\r\n  var k,\r\n    e = x.e,\r\n    str = digitsToString(x.d),\r\n    len = str.length;\r\n\r\n  if (isExp) {\r\n    if (sd && (k = sd - len) > 0) {\r\n      str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n    } else if (len > 1) {\r\n      str = str.charAt(0) + '.' + str.slice(1);\r\n    }\r\n\r\n    str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n  } else if (e < 0) {\r\n    str = '0.' + getZeroString(-e - 1) + str;\r\n    if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n  } else if (e >= len) {\r\n    str += getZeroString(e + 1 - len);\r\n    if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n  } else {\r\n    if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n    if (sd && (k = sd - len) > 0) {\r\n      if (e + 1 === len) str += '.';\r\n      str += getZeroString(k);\r\n    }\r\n  }\r\n\r\n  return str;\r\n}\r\n\r\n\r\n// Calculate the base 10 exponent from the base 1e7 exponent.\r\nfunction getBase10Exponent(digits, e) {\r\n  var w = digits[0];\r\n\r\n  // Add the number of digits of the first word of the digits array.\r\n  for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n  return e;\r\n}\r\n\r\n\r\nfunction getLn10(Ctor, sd, pr) {\r\n  if (sd > LN10_PRECISION) {\r\n\r\n    // Reset global state in case the exception is caught.\r\n    external = true;\r\n    if (pr) Ctor.precision = pr;\r\n    throw Error(precisionLimitExceeded);\r\n  }\r\n  return finalise(new Ctor(LN10), sd, 1, true);\r\n}\r\n\r\n\r\nfunction getPi(Ctor, sd, rm) {\r\n  if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n  return finalise(new Ctor(PI), sd, rm, true);\r\n}\r\n\r\n\r\nfunction getPrecision(digits) {\r\n  var w = digits.length - 1,\r\n    len = w * LOG_BASE + 1;\r\n\r\n  w = digits[w];\r\n\r\n  // If non-zero...\r\n  if (w) {\r\n\r\n    // Subtract the number of trailing zeros of the last word.\r\n    for (; w % 10 == 0; w /= 10) len--;\r\n\r\n    // Add the number of digits of the first word.\r\n    for (w = digits[0]; w >= 10; w /= 10) len++;\r\n  }\r\n\r\n  return len;\r\n}\r\n\r\n\r\nfunction getZeroString(k) {\r\n  var zs = '';\r\n  for (; k--;) zs += '0';\r\n  return zs;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\nfunction intPow(Ctor, x, n, pr) {\r\n  var isTruncated,\r\n    r = new Ctor(1),\r\n\r\n    // Max n of 9007199254740991 takes 53 loop iterations.\r\n    // Maximum digits array length; leaves [28, 34] guard digits.\r\n    k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n  external = false;\r\n\r\n  for (;;) {\r\n    if (n % 2) {\r\n      r = r.times(x);\r\n      if (truncate(r.d, k)) isTruncated = true;\r\n    }\r\n\r\n    n = mathfloor(n / 2);\r\n    if (n === 0) {\r\n\r\n      // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n      n = r.d.length - 1;\r\n      if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n      break;\r\n    }\r\n\r\n    x = x.times(x);\r\n    truncate(x.d, k);\r\n  }\r\n\r\n  external = true;\r\n\r\n  return r;\r\n}\r\n\r\n\r\nfunction isOdd(n) {\r\n  return n.d[n.d.length - 1] & 1;\r\n}\r\n\r\n\r\n/*\r\n * Handle `max` (`n` is -1) and `min` (`n` is 1).\r\n */\r\nfunction maxOrMin(Ctor, args, n) {\r\n  var k, y,\r\n    x = new Ctor(args[0]),\r\n    i = 0;\r\n\r\n  for (; ++i < args.length;) {\r\n    y = new Ctor(args[i]);\r\n\r\n    // NaN?\r\n    if (!y.s) {\r\n      x = y;\r\n      break;\r\n    }\r\n\r\n    k = x.cmp(y);\r\n\r\n    if (k === n || k === 0 && x.s === n) {\r\n      x = y;\r\n    }\r\n  }\r\n\r\n  return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n *   Repeat x = x / 32, k += 5, until |x| < 0.1\r\n *   exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k  where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n *  exp(Infinity)  = Infinity\r\n *  exp(-Infinity) = 0\r\n *  exp(NaN)       = NaN\r\n *  exp(±0)        = 1\r\n *\r\n *  exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n *  The result will always be correctly rounded.\r\n *\r\n */\r\nfunction naturalExponential(x, sd) {\r\n  var denominator, guard, j, pow, sum, t, wpr,\r\n    rep = 0,\r\n    i = 0,\r\n    k = 0,\r\n    Ctor = x.constructor,\r\n    rm = Ctor.rounding,\r\n    pr = Ctor.precision;\r\n\r\n  // 0/NaN/Infinity?\r\n  if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n    return new Ctor(x.d\r\n      ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n      : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n  }\r\n\r\n  if (sd == null) {\r\n    external = false;\r\n    wpr = pr;\r\n  } else {\r\n    wpr = sd;\r\n  }\r\n\r\n  t = new Ctor(0.03125);\r\n\r\n  // while abs(x) >= 0.1\r\n  while (x.e > -2) {\r\n\r\n    // x = x / 2^5\r\n    x = x.times(t);\r\n    k += 5;\r\n  }\r\n\r\n  // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n  // necessary to ensure the first 4 rounding digits are correct.\r\n  guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n  wpr += guard;\r\n  denominator = pow = sum = new Ctor(1);\r\n  Ctor.precision = wpr;\r\n\r\n  for (;;) {\r\n    pow = finalise(pow.times(x), wpr, 1);\r\n    denominator = denominator.times(++i);\r\n    t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n    if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n      j = k;\r\n      while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n      // Check to see if the first 4 rounding digits are [49]999.\r\n      // If so, repeat the summation with a higher precision, otherwise\r\n      // e.g. with precision: 18, rounding: 1\r\n      // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n      // `wpr - guard` is the index of first rounding digit.\r\n      if (sd == null) {\r\n\r\n        if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n          Ctor.precision = wpr += 10;\r\n          denominator = pow = t = new Ctor(1);\r\n          i = 0;\r\n          rep++;\r\n        } else {\r\n          return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n        }\r\n      } else {\r\n        Ctor.precision = pr;\r\n        return sum;\r\n      }\r\n    }\r\n\r\n    sum = t;\r\n  }\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n *  ln(-n)        = NaN\r\n *  ln(0)         = -Infinity\r\n *  ln(-0)        = -Infinity\r\n *  ln(1)         = 0\r\n *  ln(Infinity)  = Infinity\r\n *  ln(-Infinity) = NaN\r\n *  ln(NaN)       = NaN\r\n *\r\n *  ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\nfunction naturalLogarithm(y, sd) {\r\n  var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n    n = 1,\r\n    guard = 10,\r\n    x = y,\r\n    xd = x.d,\r\n    Ctor = x.constructor,\r\n    rm = Ctor.rounding,\r\n    pr = Ctor.precision;\r\n\r\n  // Is x negative or Infinity, NaN, 0 or 1?\r\n  if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n    return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n  }\r\n\r\n  if (sd == null) {\r\n    external = false;\r\n    wpr = pr;\r\n  } else {\r\n    wpr = sd;\r\n  }\r\n\r\n  Ctor.precision = wpr += guard;\r\n  c = digitsToString(xd);\r\n  c0 = c.charAt(0);\r\n\r\n  if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n    // Argument reduction.\r\n    // The series converges faster the closer the argument is to 1, so using\r\n    // ln(a^b) = b * ln(a),   ln(a) = ln(a^b) / b\r\n    // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n    // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n    // later be divided by this number, then separate out the power of 10 using\r\n    // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n    // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n    //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n    // max n is 6 (gives 0.7 - 1.3)\r\n    while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n      x = x.times(y);\r\n      c = digitsToString(x.d);\r\n      c0 = c.charAt(0);\r\n      n++;\r\n    }\r\n\r\n    e = x.e;\r\n\r\n    if (c0 > 1) {\r\n      x = new Ctor('0.' + c);\r\n      e++;\r\n    } else {\r\n      x = new Ctor(c0 + '.' + c.slice(1));\r\n    }\r\n  } else {\r\n\r\n    // The argument reduction method above may result in overflow if the argument y is a massive\r\n    // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n    // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n    t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n    x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n    Ctor.precision = pr;\r\n\r\n    return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n  }\r\n\r\n  // x1 is x reduced to a value near 1.\r\n  x1 = x;\r\n\r\n  // Taylor series.\r\n  // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n  // where x = (y - 1)/(y + 1)    (|x| < 1)\r\n  sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n  x2 = finalise(x.times(x), wpr, 1);\r\n  denominator = 3;\r\n\r\n  for (;;) {\r\n    numerator = finalise(numerator.times(x2), wpr, 1);\r\n    t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n    if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n      sum = sum.times(2);\r\n\r\n      // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n      // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n      if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n      sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n      // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n      // been repeated previously) and the first 4 rounding digits 9999?\r\n      // If so, restart the summation with a higher precision, otherwise\r\n      // e.g. with precision: 12, rounding: 1\r\n      // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n      // `wpr - guard` is the index of first rounding digit.\r\n      if (sd == null) {\r\n        if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n          Ctor.precision = wpr += guard;\r\n          t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n          x2 = finalise(x.times(x), wpr, 1);\r\n          denominator = rep = 1;\r\n        } else {\r\n          return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n        }\r\n      } else {\r\n        Ctor.precision = pr;\r\n        return sum;\r\n      }\r\n    }\r\n\r\n    sum = t;\r\n    denominator += 2;\r\n  }\r\n}\r\n\r\n\r\n// ±Infinity, NaN.\r\nfunction nonFiniteToString(x) {\r\n  // Unsigned.\r\n  return String(x.s * x.s / 0);\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\nfunction parseDecimal(x, str) {\r\n  var e, i, len;\r\n\r\n  // TODO BigInt str: no need to check for decimal point, exponential form or leading zeros.\r\n  // Decimal point?\r\n  if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n  // Exponential form?\r\n  if ((i = str.search(/e/i)) > 0) {\r\n\r\n    // Determine exponent.\r\n    if (e < 0) e = i;\r\n    e += +str.slice(i + 1);\r\n    str = str.substring(0, i);\r\n  } else if (e < 0) {\r\n\r\n    // Integer.\r\n    e = str.length;\r\n  }\r\n\r\n  // Determine leading zeros.\r\n  for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n  // Determine trailing zeros.\r\n  for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n  str = str.slice(i, len);\r\n\r\n  if (str) {\r\n    len -= i;\r\n    x.e = e = e - i - 1;\r\n    x.d = [];\r\n\r\n    // Transform base\r\n\r\n    // e is the base 10 exponent.\r\n    // i is where to slice str to get the first word of the digits array.\r\n    i = (e + 1) % LOG_BASE;\r\n    if (e < 0) i += LOG_BASE;\r\n\r\n    if (i < len) {\r\n      if (i) x.d.push(+str.slice(0, i));\r\n      for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n      str = str.slice(i);\r\n      i = LOG_BASE - str.length;\r\n    } else {\r\n      i -= len;\r\n    }\r\n\r\n    for (; i--;) str += '0';\r\n    x.d.push(+str);\r\n\r\n    if (external) {\r\n\r\n      // Overflow?\r\n      if (x.e > x.constructor.maxE) {\r\n\r\n        // Infinity.\r\n        x.d = null;\r\n        x.e = NaN;\r\n\r\n      // Underflow?\r\n      } else if (x.e < x.constructor.minE) {\r\n\r\n        // Zero.\r\n        x.e = 0;\r\n        x.d = [0];\r\n        // x.constructor.underflow = true;\r\n      } // else x.constructor.underflow = false;\r\n    }\r\n  } else {\r\n\r\n    // Zero.\r\n    x.e = 0;\r\n    x.d = [0];\r\n  }\r\n\r\n  return x;\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\nfunction parseOther(x, str) {\r\n  var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n  if (str.indexOf('_') > -1) {\r\n    str = str.replace(/(\\d)_(?=\\d)/g, '$1');\r\n    if (isDecimal.test(str)) return parseDecimal(x, str);\r\n  } else if (str === 'Infinity' || str === 'NaN') {\r\n    if (!+str) x.s = NaN;\r\n    x.e = NaN;\r\n    x.d = null;\r\n    return x;\r\n  }\r\n\r\n  if (isHex.test(str))  {\r\n    base = 16;\r\n    str = str.toLowerCase();\r\n  } else if (isBinary.test(str))  {\r\n    base = 2;\r\n  } else if (isOctal.test(str))  {\r\n    base = 8;\r\n  } else {\r\n    throw Error(invalidArgument + str);\r\n  }\r\n\r\n  // Is there a binary exponent part?\r\n  i = str.search(/p/i);\r\n\r\n  if (i > 0) {\r\n    p = +str.slice(i + 1);\r\n    str = str.substring(2, i);\r\n  } else {\r\n    str = str.slice(2);\r\n  }\r\n\r\n  // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n  // fraction part will be restored.\r\n  i = str.indexOf('.');\r\n  isFloat = i >= 0;\r\n  Ctor = x.constructor;\r\n\r\n  if (isFloat) {\r\n    str = str.replace('.', '');\r\n    len = str.length;\r\n    i = len - i;\r\n\r\n    // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n    divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n  }\r\n\r\n  xd = convertBase(str, base, BASE);\r\n  xe = xd.length - 1;\r\n\r\n  // Remove trailing zeros.\r\n  for (i = xe; xd[i] === 0; --i) xd.pop();\r\n  if (i < 0) return new Ctor(x.s * 0);\r\n  x.e = getBase10Exponent(xd, xe);\r\n  x.d = xd;\r\n  external = false;\r\n\r\n  // At what precision to perform the division to ensure exact conversion?\r\n  // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n  // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n  // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n  // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n  // Therefore using 4 * the number of digits of str will always be enough.\r\n  if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n  // Multiply by the binary exponent part if present.\r\n  if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n  external = true;\r\n\r\n  return x;\r\n}\r\n\r\n\r\n/*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction sine(Ctor, x) {\r\n  var k,\r\n    len = x.d.length;\r\n\r\n  if (len < 3) {\r\n    return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\r\n  }\r\n\r\n  // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n  // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n  // and  sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n  // Estimate the optimum number of times to use the argument reduction.\r\n  k = 1.4 * Math.sqrt(len);\r\n  k = k > 16 ? 16 : k | 0;\r\n\r\n  x = x.times(1 / tinyPow(5, k));\r\n  x = taylorSeries(Ctor, 2, x, x);\r\n\r\n  // Reverse argument reduction\r\n  var sin2_x,\r\n    d5 = new Ctor(5),\r\n    d16 = new Ctor(16),\r\n    d20 = new Ctor(20);\r\n  for (; k--;) {\r\n    sin2_x = x.times(x);\r\n    x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n  }\r\n\r\n  return x;\r\n}\r\n\r\n\r\n// Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\nfunction taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n  var j, t, u, x2,\r\n    i = 1,\r\n    pr = Ctor.precision,\r\n    k = Math.ceil(pr / LOG_BASE);\r\n\r\n  external = false;\r\n  x2 = x.times(x);\r\n  u = new Ctor(y);\r\n\r\n  for (;;) {\r\n    t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n    u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n    y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n    t = u.plus(y);\r\n\r\n    if (t.d[k] !== void 0) {\r\n      for (j = k; t.d[j] === u.d[j] && j--;);\r\n      if (j == -1) break;\r\n    }\r\n\r\n    j = u;\r\n    u = y;\r\n    y = t;\r\n    t = j;\r\n    i++;\r\n  }\r\n\r\n  external = true;\r\n  t.d.length = k + 1;\r\n\r\n  return t;\r\n}\r\n\r\n\r\n// Exponent e must be positive and non-zero.\r\nfunction tinyPow(b, e) {\r\n  var n = b;\r\n  while (--e) n *= b;\r\n  return n;\r\n}\r\n\r\n\r\n// Return the absolute value of `x` reduced to less than or equal to half pi.\r\nfunction toLessThanHalfPi(Ctor, x) {\r\n  var t,\r\n    isNeg = x.s < 0,\r\n    pi = getPi(Ctor, Ctor.precision, 1),\r\n    halfPi = pi.times(0.5);\r\n\r\n  x = x.abs();\r\n\r\n  if (x.lte(halfPi)) {\r\n    quadrant = isNeg ? 4 : 1;\r\n    return x;\r\n  }\r\n\r\n  t = x.divToInt(pi);\r\n\r\n  if (t.isZero()) {\r\n    quadrant = isNeg ? 3 : 2;\r\n  } else {\r\n    x = x.minus(t.times(pi));\r\n\r\n    // 0 <= x < pi\r\n    if (x.lte(halfPi)) {\r\n      quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n      return x;\r\n    }\r\n\r\n    quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n  }\r\n\r\n  return x.minus(pi).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\nfunction toStringBinary(x, baseOut, sd, rm) {\r\n  var base, e, i, k, len, roundUp, str, xd, y,\r\n    Ctor = x.constructor,\r\n    isExp = sd !== void 0;\r\n\r\n  if (isExp) {\r\n    checkInt32(sd, 1, MAX_DIGITS);\r\n    if (rm === void 0) rm = Ctor.rounding;\r\n    else checkInt32(rm, 0, 8);\r\n  } else {\r\n    sd = Ctor.precision;\r\n    rm = Ctor.rounding;\r\n  }\r\n\r\n  if (!x.isFinite()) {\r\n    str = nonFiniteToString(x);\r\n  } else {\r\n    str = finiteToString(x);\r\n    i = str.indexOf('.');\r\n\r\n    // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n    // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n    // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n    // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n    if (isExp) {\r\n      base = 2;\r\n      if (baseOut == 16) {\r\n        sd = sd * 4 - 3;\r\n      } else if (baseOut == 8) {\r\n        sd = sd * 3 - 2;\r\n      }\r\n    } else {\r\n      base = baseOut;\r\n    }\r\n\r\n    // Convert the number as an integer then divide the result by its base raised to a power such\r\n    // that the fraction part will be restored.\r\n\r\n    // Non-integer.\r\n    if (i >= 0) {\r\n      str = str.replace('.', '');\r\n      y = new Ctor(1);\r\n      y.e = str.length - i;\r\n      y.d = convertBase(finiteToString(y), 10, base);\r\n      y.e = y.d.length;\r\n    }\r\n\r\n    xd = convertBase(str, 10, base);\r\n    e = len = xd.length;\r\n\r\n    // Remove trailing zeros.\r\n    for (; xd[--len] == 0;) xd.pop();\r\n\r\n    if (!xd[0]) {\r\n      str = isExp ? '0p+0' : '0';\r\n    } else {\r\n      if (i < 0) {\r\n        e--;\r\n      } else {\r\n        x = new Ctor(x);\r\n        x.d = xd;\r\n        x.e = e;\r\n        x = divide(x, y, sd, rm, 0, base);\r\n        xd = x.d;\r\n        e = x.e;\r\n        roundUp = inexact;\r\n      }\r\n\r\n      // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n      i = xd[sd];\r\n      k = base / 2;\r\n      roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n      roundUp = rm < 4\r\n        ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n        : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n          rm === (x.s < 0 ? 8 : 7));\r\n\r\n      xd.length = sd;\r\n\r\n      if (roundUp) {\r\n\r\n        // Rounding up may mean the previous digit has to be rounded up and so on.\r\n        for (; ++xd[--sd] > base - 1;) {\r\n          xd[sd] = 0;\r\n          if (!sd) {\r\n            ++e;\r\n            xd.unshift(1);\r\n          }\r\n        }\r\n      }\r\n\r\n      // Determine trailing zeros.\r\n      for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n      // E.g. [4, 11, 15] becomes 4bf.\r\n      for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n      // Add binary exponent suffix?\r\n      if (isExp) {\r\n        if (len > 1) {\r\n          if (baseOut == 16 || baseOut == 8) {\r\n            i = baseOut == 16 ? 4 : 3;\r\n            for (--len; len % i; len++) str += '0';\r\n            xd = convertBase(str, base, baseOut);\r\n            for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n            // xd[0] will always be be 1\r\n            for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n          } else {\r\n            str = str.charAt(0) + '.' + str.slice(1);\r\n          }\r\n        }\r\n\r\n        str =  str + (e < 0 ? 'p' : 'p+') + e;\r\n      } else if (e < 0) {\r\n        for (; ++e;) str = '0' + str;\r\n        str = '0.' + str;\r\n      } else {\r\n        if (++e > len) for (e -= len; e-- ;) str += '0';\r\n        else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n      }\r\n    }\r\n\r\n    str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n  }\r\n\r\n  return x.s < 0 ? '-' + str : str;\r\n}\r\n\r\n\r\n// Does not strip trailing zeros.\r\nfunction truncate(arr, len) {\r\n  if (arr.length > len) {\r\n    arr.length = len;\r\n    return true;\r\n  }\r\n}\r\n\r\n\r\n// Decimal methods\r\n\r\n\r\n/*\r\n *  abs\r\n *  acos\r\n *  acosh\r\n *  add\r\n *  asin\r\n *  asinh\r\n *  atan\r\n *  atanh\r\n *  atan2\r\n *  cbrt\r\n *  ceil\r\n *  clamp\r\n *  clone\r\n *  config\r\n *  cos\r\n *  cosh\r\n *  div\r\n *  exp\r\n *  floor\r\n *  hypot\r\n *  ln\r\n *  log\r\n *  log2\r\n *  log10\r\n *  max\r\n *  min\r\n *  mod\r\n *  mul\r\n *  pow\r\n *  random\r\n *  round\r\n *  set\r\n *  sign\r\n *  sin\r\n *  sinh\r\n *  sqrt\r\n *  sub\r\n *  sum\r\n *  tan\r\n *  tanh\r\n *  trunc\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction abs(x) {\r\n  return new this(x).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction acos(x) {\r\n  return new this(x).acos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction acosh(x) {\r\n  return new this(x).acosh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction add(x, y) {\r\n  return new this(x).plus(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction asin(x) {\r\n  return new this(x).asin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction asinh(x) {\r\n  return new this(x).asinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction atan(x) {\r\n  return new this(x).atan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction atanh(x) {\r\n  return new this(x).atanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|bigint|Decimal} The y-coordinate.\r\n * x {number|string|bigint|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0)               = ±pi\r\n * atan2(±0, +0)               = ±0\r\n * atan2(±0, -x)               = ±pi for x > 0\r\n * atan2(±0, x)                = ±0 for x > 0\r\n * atan2(-y, ±0)               = -pi/2 for y > 0\r\n * atan2(y, ±0)                = pi/2 for y > 0\r\n * atan2(±y, -Infinity)        = ±pi for finite y > 0\r\n * atan2(±y, +Infinity)        = ±0 for finite y > 0\r\n * atan2(±Infinity, x)         = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\nfunction atan2(y, x) {\r\n  y = new this(y);\r\n  x = new this(x);\r\n  var r,\r\n    pr = this.precision,\r\n    rm = this.rounding,\r\n    wpr = pr + 4;\r\n\r\n  // Either NaN\r\n  if (!y.s || !x.s) {\r\n    r = new this(NaN);\r\n\r\n  // Both ±Infinity\r\n  } else if (!y.d && !x.d) {\r\n    r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n    r.s = y.s;\r\n\r\n  // x is ±Infinity or y is ±0\r\n  } else if (!x.d || y.isZero()) {\r\n    r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n    r.s = y.s;\r\n\r\n  // y is ±Infinity or x is ±0\r\n  } else if (!y.d || x.isZero()) {\r\n    r = getPi(this, wpr, 1).times(0.5);\r\n    r.s = y.s;\r\n\r\n  // Both non-zero and finite\r\n  } else if (x.s < 0) {\r\n    this.precision = wpr;\r\n    this.rounding = 1;\r\n    r = this.atan(divide(y, x, wpr, 1));\r\n    x = getPi(this, wpr, 1);\r\n    this.precision = pr;\r\n    this.rounding = rm;\r\n    r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n  } else {\r\n    r = this.atan(divide(y, x, wpr, 1));\r\n  }\r\n\r\n  return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction cbrt(x) {\r\n  return new this(x).cbrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction ceil(x) {\r\n  return finalise(x = new this(x), x.e + 1, 2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * min {number|string|bigint|Decimal}\r\n * max {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction clamp(x, min, max) {\r\n  return new this(x).clamp(min, max);\r\n}\r\n\r\n\r\n/*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n *   precision  {number}\r\n *   rounding   {number}\r\n *   toExpNeg   {number}\r\n *   toExpPos   {number}\r\n *   maxE       {number}\r\n *   minE       {number}\r\n *   modulo     {number}\r\n *   crypto     {boolean|number}\r\n *   defaults   {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\nfunction config(obj) {\r\n  if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n  var i, p, v,\r\n    useDefaults = obj.defaults === true,\r\n    ps = [\r\n      'precision', 1, MAX_DIGITS,\r\n      'rounding', 0, 8,\r\n      'toExpNeg', -EXP_LIMIT, 0,\r\n      'toExpPos', 0, EXP_LIMIT,\r\n      'maxE', 0, EXP_LIMIT,\r\n      'minE', -EXP_LIMIT, 0,\r\n      'modulo', 0, 9\r\n    ];\r\n\r\n  for (i = 0; i < ps.length; i += 3) {\r\n    if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n    if ((v = obj[p]) !== void 0) {\r\n      if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n      else throw Error(invalidArgument + p + ': ' + v);\r\n    }\r\n  }\r\n\r\n  if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n  if ((v = obj[p]) !== void 0) {\r\n    if (v === true || v === false || v === 0 || v === 1) {\r\n      if (v) {\r\n        if (typeof crypto != 'undefined' && crypto &&\r\n          (crypto.getRandomValues || crypto.randomBytes)) {\r\n          this[p] = true;\r\n        } else {\r\n          throw Error(cryptoUnavailable);\r\n        }\r\n      } else {\r\n        this[p] = false;\r\n      }\r\n    } else {\r\n      throw Error(invalidArgument + p + ': ' + v);\r\n    }\r\n  }\r\n\r\n  return this;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cos(x) {\r\n  return new this(x).cos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cosh(x) {\r\n  return new this(x).cosh();\r\n}\r\n\r\n\r\n/*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\nfunction clone(obj) {\r\n  var i, p, ps;\r\n\r\n  /*\r\n   * The Decimal constructor and exported function.\r\n   * Return a new Decimal instance.\r\n   *\r\n   * v {number|string|bigint|Decimal} A numeric value.\r\n   *\r\n   */\r\n  function Decimal(v) {\r\n    var e, i, t,\r\n      x = this;\r\n\r\n    // Decimal called without new.\r\n    if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n    // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n    // which points to Object.\r\n    x.constructor = Decimal;\r\n\r\n    if (isDecimalInstance(v)) {\r\n      x.s = v.s;\r\n\r\n      if (external) {\r\n        if (!v.d || v.e > Decimal.maxE) {\r\n\r\n          // Infinity.\r\n          x.e = NaN;\r\n          x.d = null;\r\n        } else if (v.e < Decimal.minE) {\r\n\r\n          // Zero.\r\n          x.e = 0;\r\n          x.d = [0];\r\n        } else {\r\n          x.e = v.e;\r\n          x.d = v.d.slice();\r\n        }\r\n      } else {\r\n        x.e = v.e;\r\n        x.d = v.d ? v.d.slice() : v.d;\r\n      }\r\n\r\n      return;\r\n    }\r\n\r\n    t = typeof v;\r\n\r\n    if (t === 'number') {\r\n      if (v === 0) {\r\n        x.s = 1 / v < 0 ? -1 : 1;\r\n        x.e = 0;\r\n        x.d = [0];\r\n        return;\r\n      }\r\n\r\n      if (v < 0) {\r\n        v = -v;\r\n        x.s = -1;\r\n      } else {\r\n        x.s = 1;\r\n      }\r\n\r\n      // Fast path for small integers.\r\n      if (v === ~~v && v < 1e7) {\r\n        for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n        if (external) {\r\n          if (e > Decimal.maxE) {\r\n            x.e = NaN;\r\n            x.d = null;\r\n          } else if (e < Decimal.minE) {\r\n            x.e = 0;\r\n            x.d = [0];\r\n          } else {\r\n            x.e = e;\r\n            x.d = [v];\r\n          }\r\n        } else {\r\n          x.e = e;\r\n          x.d = [v];\r\n        }\r\n\r\n        return;\r\n      }\r\n\r\n      // Infinity or NaN?\r\n      if (v * 0 !== 0) {\r\n        if (!v) x.s = NaN;\r\n        x.e = NaN;\r\n        x.d = null;\r\n        return;\r\n      }\r\n\r\n      return parseDecimal(x, v.toString());\r\n    }\r\n\r\n    if (t === 'string') {\r\n      if ((i = v.charCodeAt(0)) === 45) {  // minus sign\r\n        v = v.slice(1);\r\n        x.s = -1;\r\n      } else {\r\n        if (i === 43) v = v.slice(1);  // plus sign\r\n        x.s = 1;\r\n      }\r\n\r\n      return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n    }\r\n\r\n    if (t === 'bigint') {\r\n      if (v < 0) {\r\n        v = -v;\r\n        x.s = -1;\r\n      } else {\r\n        x.s = 1;\r\n      }\r\n\r\n      return parseDecimal(x, v.toString());\r\n    }\r\n\r\n    throw Error(invalidArgument + v);\r\n  }\r\n\r\n  Decimal.prototype = P;\r\n\r\n  Decimal.ROUND_UP = 0;\r\n  Decimal.ROUND_DOWN = 1;\r\n  Decimal.ROUND_CEIL = 2;\r\n  Decimal.ROUND_FLOOR = 3;\r\n  Decimal.ROUND_HALF_UP = 4;\r\n  Decimal.ROUND_HALF_DOWN = 5;\r\n  Decimal.ROUND_HALF_EVEN = 6;\r\n  Decimal.ROUND_HALF_CEIL = 7;\r\n  Decimal.ROUND_HALF_FLOOR = 8;\r\n  Decimal.EUCLID = 9;\r\n\r\n  Decimal.config = Decimal.set = config;\r\n  Decimal.clone = clone;\r\n  Decimal.isDecimal = isDecimalInstance;\r\n\r\n  Decimal.abs = abs;\r\n  Decimal.acos = acos;\r\n  Decimal.acosh = acosh;        // ES6\r\n  Decimal.add = add;\r\n  Decimal.asin = asin;\r\n  Decimal.asinh = asinh;        // ES6\r\n  Decimal.atan = atan;\r\n  Decimal.atanh = atanh;        // ES6\r\n  Decimal.atan2 = atan2;\r\n  Decimal.cbrt = cbrt;          // ES6\r\n  Decimal.ceil = ceil;\r\n  Decimal.clamp = clamp;\r\n  Decimal.cos = cos;\r\n  Decimal.cosh = cosh;          // ES6\r\n  Decimal.div = div;\r\n  Decimal.exp = exp;\r\n  Decimal.floor = floor;\r\n  Decimal.hypot = hypot;        // ES6\r\n  Decimal.ln = ln;\r\n  Decimal.log = log;\r\n  Decimal.log10 = log10;        // ES6\r\n  Decimal.log2 = log2;          // ES6\r\n  Decimal.max = max;\r\n  Decimal.min = min;\r\n  Decimal.mod = mod;\r\n  Decimal.mul = mul;\r\n  Decimal.pow = pow;\r\n  Decimal.random = random;\r\n  Decimal.round = round;\r\n  Decimal.sign = sign;          // ES6\r\n  Decimal.sin = sin;\r\n  Decimal.sinh = sinh;          // ES6\r\n  Decimal.sqrt = sqrt;\r\n  Decimal.sub = sub;\r\n  Decimal.sum = sum;\r\n  Decimal.tan = tan;\r\n  Decimal.tanh = tanh;          // ES6\r\n  Decimal.trunc = trunc;        // ES6\r\n\r\n  if (obj === void 0) obj = {};\r\n  if (obj) {\r\n    if (obj.defaults !== true) {\r\n      ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n      for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n    }\r\n  }\r\n\r\n  Decimal.config(obj);\r\n\r\n  return Decimal;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction div(x, y) {\r\n  return new this(x).div(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\nfunction exp(x) {\r\n  return new this(x).exp();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction floor(x) {\r\n  return finalise(x = new this(x), x.e + 1, 3);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction hypot() {\r\n  var i, n,\r\n    t = new this(0);\r\n\r\n  external = false;\r\n\r\n  for (i = 0; i < arguments.length;) {\r\n    n = new this(arguments[i++]);\r\n    if (!n.d) {\r\n      if (n.s) {\r\n        external = true;\r\n        return new this(1 / 0);\r\n      }\r\n      t = n;\r\n    } else if (t.d) {\r\n      t = t.plus(n.times(n));\r\n    }\r\n  }\r\n\r\n  external = true;\r\n\r\n  return t.sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\nfunction isDecimalInstance(obj) {\r\n  return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction ln(x) {\r\n  return new this(x).ln();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|bigint|Decimal} The argument of the logarithm.\r\n * y {number|string|bigint|Decimal} The base of the logarithm.\r\n *\r\n */\r\nfunction log(x, y) {\r\n  return new this(x).log(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction log2(x) {\r\n  return new this(x).log(2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction log10(x) {\r\n  return new this(x).log(10);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction max() {\r\n  return maxOrMin(this, arguments, -1);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction min() {\r\n  return maxOrMin(this, arguments, 1);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction mod(x, y) {\r\n  return new this(x).mod(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction mul(x, y) {\r\n  return new this(x).mul(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} The base.\r\n * y {number|string|bigint|Decimal} The exponent.\r\n *\r\n */\r\nfunction pow(x, y) {\r\n  return new this(x).pow(y);\r\n}\r\n\r\n\r\n/*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\nfunction random(sd) {\r\n  var d, e, k, n,\r\n    i = 0,\r\n    r = new this(1),\r\n    rd = [];\r\n\r\n  if (sd === void 0) sd = this.precision;\r\n  else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n  k = Math.ceil(sd / LOG_BASE);\r\n\r\n  if (!this.crypto) {\r\n    for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n  // Browsers supporting crypto.getRandomValues.\r\n  } else if (crypto.getRandomValues) {\r\n    d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n    for (; i < k;) {\r\n      n = d[i];\r\n\r\n      // 0 <= n < 4294967296\r\n      // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n      if (n >= 4.29e9) {\r\n        d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n      } else {\r\n\r\n        // 0 <= n <= 4289999999\r\n        // 0 <= (n % 1e7) <= 9999999\r\n        rd[i++] = n % 1e7;\r\n      }\r\n    }\r\n\r\n  // Node.js supporting crypto.randomBytes.\r\n  } else if (crypto.randomBytes) {\r\n\r\n    // buffer\r\n    d = crypto.randomBytes(k *= 4);\r\n\r\n    for (; i < k;) {\r\n\r\n      // 0 <= n < 2147483648\r\n      n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n      // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n      if (n >= 2.14e9) {\r\n        crypto.randomBytes(4).copy(d, i);\r\n      } else {\r\n\r\n        // 0 <= n <= 2139999999\r\n        // 0 <= (n % 1e7) <= 9999999\r\n        rd.push(n % 1e7);\r\n        i += 4;\r\n      }\r\n    }\r\n\r\n    i = k / 4;\r\n  } else {\r\n    throw Error(cryptoUnavailable);\r\n  }\r\n\r\n  k = rd[--i];\r\n  sd %= LOG_BASE;\r\n\r\n  // Convert trailing digits to zeros according to sd.\r\n  if (k && sd) {\r\n    n = mathpow(10, LOG_BASE - sd);\r\n    rd[i] = (k / n | 0) * n;\r\n  }\r\n\r\n  // Remove trailing words which are zero.\r\n  for (; rd[i] === 0; i--) rd.pop();\r\n\r\n  // Zero?\r\n  if (i < 0) {\r\n    e = 0;\r\n    rd = [0];\r\n  } else {\r\n    e = -1;\r\n\r\n    // Remove leading words which are zero and adjust exponent accordingly.\r\n    for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n    // Count the digits of the first word of rd to determine leading zeros.\r\n    for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n    // Adjust the exponent for leading zeros of the first word of rd.\r\n    if (k < LOG_BASE) e -= LOG_BASE - k;\r\n  }\r\n\r\n  r.e = e;\r\n  r.d = rd;\r\n\r\n  return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction round(x) {\r\n  return finalise(x = new this(x), x.e + 1, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return\r\n *   1    if x > 0,\r\n *  -1    if x < 0,\r\n *   0    if x is 0,\r\n *  -0    if x is -0,\r\n *   NaN  otherwise\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sign(x) {\r\n  x = new this(x);\r\n  return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sin(x) {\r\n  return new this(x).sin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sinh(x) {\r\n  return new this(x).sinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sqrt(x) {\r\n  return new this(x).sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sub(x, y) {\r\n  return new this(x).sub(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sum() {\r\n  var i = 0,\r\n    args = arguments,\r\n    x = new this(args[i]);\r\n\r\n  external = false;\r\n  for (; x.s && ++i < args.length;) x = x.plus(args[i]);\r\n  external = true;\r\n\r\n  return finalise(x, this.precision, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tan(x) {\r\n  return new this(x).tan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tanh(x) {\r\n  return new this(x).tanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction trunc(x) {\r\n  return finalise(x = new this(x), x.e + 1, 1);\r\n}\r\n\r\n\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toString;\r\nP[Symbol.toStringTag] = 'Decimal';\r\n\r\n// Create and configure initial Decimal constructor.\r\nexport var Decimal = P.constructor = clone(DEFAULTS);\r\n\r\n// Create the internal constants from their string values.\r\nLN10 = new Decimal(LN10);\r\nPI = new Decimal(PI);\r\n\r\nexport default Decimal;\r\n","import { Decimal } from \"decimal.js\";\nexport const TEN = new Decimal(10);\nexport const ZERO = new Decimal(0);\nexport const NEGATIVE_ZERO = new Decimal(-0);\n","export function memoize(fn, options) {\n\tconst cache = options && options.cache ? options.cache : cacheDefault;\n\tconst serializer = options && options.serializer ? options.serializer : serializerDefault;\n\tconst strategy = options && options.strategy ? options.strategy : strategyDefault;\n\treturn strategy(fn, {\n\t\tcache,\n\t\tserializer\n\t});\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n\treturn value == null || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction monadic(fn, cache, serializer, arg) {\n\tconst cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.call(this, arg);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n\tconst args = Array.prototype.slice.call(arguments, 3);\n\tconst cacheKey = serializer(args);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.apply(this, args);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n\treturn strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n\tconst strategy = fn.length === 1 ? monadic : variadic;\n\treturn assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n\treturn assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n\treturn assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nconst serializerDefault = function() {\n\treturn JSON.stringify(arguments);\n};\n//\n// Cache\n//\nclass ObjectWithoutPrototypeCache {\n\tcache;\n\tconstructor() {\n\t\tthis.cache = Object.create(null);\n\t}\n\tget(key) {\n\t\treturn this.cache[key];\n\t}\n\tset(key, value) {\n\t\tthis.cache[key] = value;\n\t}\n}\nconst cacheDefault = { create: function create() {\n\treturn new ObjectWithoutPrototypeCache();\n} };\nexport const strategies = {\n\tvariadic: strategyVariadic,\n\tmonadic: strategyMonadic\n};\n","import { memoize, strategies } from \"@formatjs/fast-memoize\";\nexport function repeat(s, times) {\n\tif (typeof s.repeat === \"function\") {\n\t\treturn s.repeat(times);\n\t}\n\tconst arr = Array.from({ length: times });\n\tfor (let i = 0; i < arr.length; i++) {\n\t\tarr[i] = s;\n\t}\n\treturn arr.join(\"\");\n}\nexport function setInternalSlot(map, pl, field, value) {\n\tif (!map.get(pl)) {\n\t\tmap.set(pl, Object.create(null));\n\t}\n\tconst slots = map.get(pl);\n\tslots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n\tfor (const k of Object.keys(props)) {\n\t\tsetInternalSlot(map, pl, k, props[k]);\n\t}\n}\nexport function getInternalSlot(map, pl, field) {\n\treturn getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl, ...fields) {\n\tconst slots = map.get(pl);\n\tif (!slots) {\n\t\tthrow new TypeError(`${pl} InternalSlot has not been initialized`);\n\t}\n\treturn fields.reduce((all, f) => {\n\t\tall[f] = slots[f];\n\t\treturn all;\n\t}, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n\treturn patternPart.type === \"literal\";\n}\n/*\n17 ECMAScript Standard Built-in Objects:\nEvery built-in Function object, including constructors, that is not\nidentified as an anonymous function has a name property whose value\nis a String.\n\nUnless otherwise specified, the name property of a built-in Function\nobject, if it exists, has the attributes { [[Writable]]: false,\n[[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, { value }) {\n\tObject.defineProperty(target, name, {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\twritable: true,\n\t\tvalue\n\t});\n}\n/**\n* 7.3.5 CreateDataProperty\n* @param target\n* @param name\n* @param value\n*/\nexport function createDataProperty(target, name, value) {\n\tObject.defineProperty(target, name, {\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t\twritable: true,\n\t\tvalue\n\t});\n}\nexport const UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err = Error) {\n\tif (!condition) {\n\t\tthrow new Err(message);\n\t}\n}\nexport const createMemoizedNumberFormat = memoize((...args) => new Intl.NumberFormat(...args), { strategy: strategies.variadic });\nexport const createMemoizedPluralRules = memoize((...args) => new Intl.PluralRules(...args), { strategy: strategies.variadic });\nexport const createMemoizedLocale = memoize((...args) => new Intl.Locale(...args), { strategy: strategies.variadic });\nexport const createMemoizedListFormat = memoize((...args) => new Intl.ListFormat(...args), { strategy: strategies.variadic });\n","import { Decimal } from \"decimal.js\";\nimport { ZERO } from \"./constants.js\";\nimport { invariant } from \"./utils.js\";\n/**\n* https://tc39.es/ecma262/#sec-tostring\n*/\nexport function ToString(o) {\n\t// Only symbol is irregular...\n\tif (typeof o === \"symbol\") {\n\t\tthrow TypeError(\"Cannot convert a Symbol value to a string\");\n\t}\n\treturn String(o);\n}\n/**\n* https://tc39.es/ecma262/#sec-tonumber\n* @param val\n*/\nexport function ToNumber(arg) {\n\tif (typeof arg === \"number\") {\n\t\treturn new Decimal(arg);\n\t}\n\t// Support bigint values by converting to string first\n\t// https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.select\n\tif (typeof arg === \"bigint\") {\n\t\treturn new Decimal(arg.toString());\n\t}\n\tinvariant(typeof arg !== \"symbol\", \"Symbol is not supported\", TypeError);\n\tif (arg === undefined) {\n\t\treturn new Decimal(NaN);\n\t}\n\tif (arg === null || arg === 0) {\n\t\treturn ZERO;\n\t}\n\tif (arg === true) {\n\t\treturn new Decimal(1);\n\t}\n\tif (typeof arg === \"string\") {\n\t\ttry {\n\t\t\treturn new Decimal(arg);\n\t\t} catch {\n\t\t\treturn new Decimal(NaN);\n\t\t}\n\t}\n\tinvariant(typeof arg === \"object\", \"object expected\", TypeError);\n\tlet primValue = ToPrimitive(arg, \"number\");\n\tinvariant(typeof primValue !== \"object\", \"object expected\", TypeError);\n\treturn ToNumber(primValue);\n}\n/**\n* https://tc39.es/ecma262/#sec-tointeger\n* @param n\n*/\nfunction ToInteger(n) {\n\tconst number = ToNumber(n);\n\tif (number.isNaN() || number.isZero()) {\n\t\treturn ZERO;\n\t}\n\tif (number.isFinite()) {\n\t\treturn number;\n\t}\n\tlet integer = number.abs().floor();\n\tif (number.isNegative()) {\n\t\tinteger = integer.negated();\n\t}\n\treturn integer;\n}\n/**\n* https://tc39.es/ecma262/#sec-timeclip\n* @param time\n*/\nexport function TimeClip(time) {\n\tif (!time.isFinite()) {\n\t\treturn new Decimal(NaN);\n\t}\n\tif (time.abs().greaterThan(8.64 * 0x38d7ea4c68000)) {\n\t\treturn new Decimal(NaN);\n\t}\n\treturn ToInteger(time);\n}\n/**\n* https://tc39.es/ecma262/#sec-toobject\n* @param arg\n*/\nexport function ToObject(arg) {\n\tif (arg == null) {\n\t\tthrow new TypeError(\"undefined/null cannot be converted to object\");\n\t}\n\treturn Object(arg);\n}\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-samevalue\n* @param x\n* @param y\n*/\nexport function SameValue(x, y) {\n\tif (Object.is) {\n\t\treturn Object.is(x, y);\n\t}\n\t// SameValue algorithm\n\tif (x === y) {\n\t\t// Steps 1-5, 7-10\n\t\t// Steps 6.b-6.e: +0 != -0\n\t\treturn x !== 0 || 1 / x === 1 / y;\n\t}\n\t// Step 6.a: NaN == NaN\n\treturn x !== x && y !== y;\n}\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-arraycreate\n* @param len\n*/\nexport function ArrayCreate(len) {\n\treturn Array.from({ length: len });\n}\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-hasownproperty\n* @param o\n* @param prop\n*/\nexport function HasOwnProperty(o, prop) {\n\treturn Object.prototype.hasOwnProperty.call(o, prop);\n}\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n* @param x\n*/\nexport function Type(x) {\n\tif (x === null) {\n\t\treturn \"Null\";\n\t}\n\tif (typeof x === \"undefined\") {\n\t\treturn \"Undefined\";\n\t}\n\tif (typeof x === \"function\" || typeof x === \"object\") {\n\t\treturn \"Object\";\n\t}\n\tif (typeof x === \"number\") {\n\t\treturn \"Number\";\n\t}\n\tif (typeof x === \"boolean\") {\n\t\treturn \"Boolean\";\n\t}\n\tif (typeof x === \"string\") {\n\t\treturn \"String\";\n\t}\n\tif (typeof x === \"symbol\") {\n\t\treturn \"Symbol\";\n\t}\n\tif (typeof x === \"bigint\") {\n\t\treturn \"BigInt\";\n\t}\n}\nconst MS_PER_DAY = 864e5;\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#eqn-modulo\n* @param x\n* @param y\n* @return k of the same sign as y\n*/\nfunction mod(x, y) {\n\treturn x - Math.floor(x / y) * y;\n}\n/**\n* https://tc39.es/ecma262/#eqn-Day\n* @param t\n*/\nexport function Day(t) {\n\treturn Math.floor(t / MS_PER_DAY);\n}\n/**\n* https://tc39.es/ecma262/#sec-week-day\n* @param t\n*/\nexport function WeekDay(t) {\n\treturn mod(Day(t) + 4, 7);\n}\n/**\n* https://tc39.es/ecma262/#sec-year-number\n* @param y\n*/\nexport function DayFromYear(y) {\n\tif (y < 100) {\n\t\t// Date.UTC parses 0 - 99 as 1900 - 1999\n\t\tconst date = new Date(0);\n\t\tdate.setUTCFullYear(y, 0, 1);\n\t\tdate.setUTCHours(0, 0, 0, 0);\n\t\treturn date.getTime() / MS_PER_DAY;\n\t}\n\treturn Date.UTC(y, 0) / MS_PER_DAY;\n}\n/**\n* https://tc39.es/ecma262/#sec-year-number\n* @param y\n*/\nexport function TimeFromYear(y) {\n\treturn Date.UTC(y, 0);\n}\n/**\n* https://tc39.es/ecma262/#sec-year-number\n* @param t\n*/\nexport function YearFromTime(t) {\n\treturn new Date(t).getUTCFullYear();\n}\nexport function DaysInYear(y) {\n\tif (y % 4 !== 0) {\n\t\treturn 365;\n\t}\n\tif (y % 100 !== 0) {\n\t\treturn 366;\n\t}\n\tif (y % 400 !== 0) {\n\t\treturn 365;\n\t}\n\treturn 366;\n}\nexport function DayWithinYear(t) {\n\treturn Day(t) - DayFromYear(YearFromTime(t));\n}\nexport function InLeapYear(t) {\n\treturn DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;\n}\n/**\n* https://tc39.es/ecma262/#sec-month-number\n* @param t\n*/\nexport function MonthFromTime(t) {\n\tconst dwy = DayWithinYear(t);\n\tconst leap = InLeapYear(t);\n\tif (dwy >= 0 && dwy < 31) {\n\t\treturn 0;\n\t}\n\tif (dwy < 59 + leap) {\n\t\treturn 1;\n\t}\n\tif (dwy < 90 + leap) {\n\t\treturn 2;\n\t}\n\tif (dwy < 120 + leap) {\n\t\treturn 3;\n\t}\n\tif (dwy < 151 + leap) {\n\t\treturn 4;\n\t}\n\tif (dwy < 181 + leap) {\n\t\treturn 5;\n\t}\n\tif (dwy < 212 + leap) {\n\t\treturn 6;\n\t}\n\tif (dwy < 243 + leap) {\n\t\treturn 7;\n\t}\n\tif (dwy < 273 + leap) {\n\t\treturn 8;\n\t}\n\tif (dwy < 304 + leap) {\n\t\treturn 9;\n\t}\n\tif (dwy < 334 + leap) {\n\t\treturn 10;\n\t}\n\tif (dwy < 365 + leap) {\n\t\treturn 11;\n\t}\n\tthrow new Error(\"Invalid time\");\n}\nexport function DateFromTime(t) {\n\tconst dwy = DayWithinYear(t);\n\tconst mft = MonthFromTime(t);\n\tconst leap = InLeapYear(t);\n\tif (mft === 0) {\n\t\treturn dwy + 1;\n\t}\n\tif (mft === 1) {\n\t\treturn dwy - 30;\n\t}\n\tif (mft === 2) {\n\t\treturn dwy - 58 - leap;\n\t}\n\tif (mft === 3) {\n\t\treturn dwy - 89 - leap;\n\t}\n\tif (mft === 4) {\n\t\treturn dwy - 119 - leap;\n\t}\n\tif (mft === 5) {\n\t\treturn dwy - 150 - leap;\n\t}\n\tif (mft === 6) {\n\t\treturn dwy - 180 - leap;\n\t}\n\tif (mft === 7) {\n\t\treturn dwy - 211 - leap;\n\t}\n\tif (mft === 8) {\n\t\treturn dwy - 242 - leap;\n\t}\n\tif (mft === 9) {\n\t\treturn dwy - 272 - leap;\n\t}\n\tif (mft === 10) {\n\t\treturn dwy - 303 - leap;\n\t}\n\tif (mft === 11) {\n\t\treturn dwy - 333 - leap;\n\t}\n\tthrow new Error(\"Invalid time\");\n}\nconst HOURS_PER_DAY = 24;\nconst MINUTES_PER_HOUR = 60;\nconst SECONDS_PER_MINUTE = 60;\nconst MS_PER_SECOND = 1e3;\nconst MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;\nconst MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;\nexport function HourFromTime(t) {\n\treturn mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);\n}\nexport function MinFromTime(t) {\n\treturn mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);\n}\nexport function SecFromTime(t) {\n\treturn mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);\n}\nfunction IsCallable(fn) {\n\treturn typeof fn === \"function\";\n}\n/**\n* The abstract operation OrdinaryHasInstance implements\n* the default algorithm for determining if an object O\n* inherits from the instance object inheritance path\n* provided by constructor C.\n* @param C class\n* @param O object\n* @param internalSlots internalSlots\n*/\nexport function OrdinaryHasInstance(C, O, internalSlots) {\n\tif (!IsCallable(C)) {\n\t\treturn false;\n\t}\n\tif (internalSlots?.boundTargetFunction) {\n\t\tlet BC = internalSlots?.boundTargetFunction;\n\t\treturn O instanceof BC;\n\t}\n\tif (typeof O !== \"object\") {\n\t\treturn false;\n\t}\n\tlet P = C.prototype;\n\tif (typeof P !== \"object\") {\n\t\tthrow new TypeError(\"OrdinaryHasInstance called on an object with an invalid prototype property.\");\n\t}\n\treturn Object.prototype.isPrototypeOf.call(P, O);\n}\nexport function msFromTime(t) {\n\treturn mod(t, MS_PER_SECOND);\n}\nfunction OrdinaryToPrimitive(O, hint) {\n\tlet methodNames;\n\tif (hint === \"string\") {\n\t\tmethodNames = [\"toString\", \"valueOf\"];\n\t} else {\n\t\tmethodNames = [\"valueOf\", \"toString\"];\n\t}\n\tfor (const name of methodNames) {\n\t\tconst method = O[name];\n\t\tif (IsCallable(method)) {\n\t\t\tlet result = method.call(O);\n\t\t\tif (typeof result !== \"object\") {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError(\"Cannot convert object to primitive value\");\n}\nexport function ToPrimitive(input, preferredType) {\n\tif (typeof input === \"object\" && input != null) {\n\t\tconst exoticToPrim = Symbol.toPrimitive in input ? input[Symbol.toPrimitive] : undefined;\n\t\tlet hint;\n\t\tif (exoticToPrim !== undefined) {\n\t\t\tif (preferredType === undefined) {\n\t\t\t\thint = \"default\";\n\t\t\t} else if (preferredType === \"string\") {\n\t\t\t\thint = \"string\";\n\t\t\t} else {\n\t\t\t\tinvariant(preferredType === \"number\", \"preferredType must be \\\"string\\\" or \\\"number\\\"\");\n\t\t\t\thint = \"number\";\n\t\t\t}\n\t\t\tlet result = exoticToPrim.call(input, hint);\n\t\t\tif (typeof result !== \"object\") {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new TypeError(\"Cannot convert exotic object to primitive.\");\n\t\t}\n\t\tif (preferredType === undefined) {\n\t\t\tpreferredType = \"number\";\n\t\t}\n\t\treturn OrdinaryToPrimitive(input, preferredType);\n\t}\n\treturn input;\n}\n","/**\n* https://tc39.es/ecma402/#sec-defaultnumberoption\n* @param val\n* @param min\n* @param max\n* @param fallback\n*/\nexport function DefaultNumberOption(inputVal, min, max, fallback) {\n\tif (inputVal === undefined) {\n\t\t// @ts-expect-error\n\t\treturn fallback;\n\t}\n\tconst val = Number(inputVal);\n\tif (isNaN(val) || val < min || val > max) {\n\t\tthrow new RangeError(`${val} is outside of range [${min}, ${max}]`);\n\t}\n\treturn Math.floor(val);\n}\n","/**\n* https://tc39.es/ecma402/#sec-getnumberoption\n* @param options\n* @param property\n* @param min\n* @param max\n* @param fallback\n*/\nimport { DefaultNumberOption } from \"./DefaultNumberOption.js\";\nexport function GetNumberOption(options, property, minimum, maximum, fallback) {\n\tconst val = options[property];\n\treturn DefaultNumberOption(val, minimum, maximum, fallback);\n}\n","import { ToString } from \"./262.js\";\n/**\n* https://tc39.es/ecma402/#sec-getoption\n* @param opts\n* @param prop\n* @param type\n* @param values\n* @param fallback\n*/\nexport function GetOption(opts, prop, type, values, fallback) {\n\tif (typeof opts !== \"object\") {\n\t\tthrow new TypeError(\"Options must be an object\");\n\t}\n\tlet value = opts[prop];\n\tif (value !== undefined) {\n\t\tif (type !== \"boolean\" && type !== \"string\") {\n\t\t\tthrow new TypeError(\"invalid type\");\n\t\t}\n\t\tif (type === \"boolean\") {\n\t\t\tvalue = Boolean(value);\n\t\t}\n\t\tif (type === \"string\") {\n\t\t\tvalue = ToString(value);\n\t\t}\n\t\tif (values !== undefined && !values.filter((val) => val == value).length) {\n\t\t\tthrow new RangeError(`${value} is not within ${values.join(\", \")}`);\n\t\t}\n\t\treturn value;\n\t}\n\treturn fallback;\n}\n","export const data = { supplemental: { languageMatching: { \"written-new\": [\n\t{ paradigmLocales: { _locales: \"en en_GB es es_419 pt_BR pt_PT\" } },\n\t{ $enUS: { _value: \"AS+CA+GU+MH+MP+PH+PR+UM+US+VI\" } },\n\t{ $cnsar: { _value: \"HK+MO\" } },\n\t{ $americas: { _value: \"019\" } },\n\t{ $maghreb: { _value: \"MA+DZ+TN+LY+MR+EH\" } },\n\t{ no: {\n\t\t_desired: \"nb\",\n\t\t_distance: \"1\"\n\t} },\n\t{ bs: {\n\t\t_desired: \"hr\",\n\t\t_distance: \"4\"\n\t} },\n\t{ bs: {\n\t\t_desired: \"sh\",\n\t\t_distance: \"4\"\n\t} },\n\t{ hr: {\n\t\t_desired: \"sh\",\n\t\t_distance: \"4\"\n\t} },\n\t{ sr: {\n\t\t_desired: \"sh\",\n\t\t_distance: \"4\"\n\t} },\n\t{ aa: {\n\t\t_desired: \"ssy\",\n\t\t_distance: \"4\"\n\t} },\n\t{ de: {\n\t\t_desired: \"gsw\",\n\t\t_distance: \"4\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ de: {\n\t\t_desired: \"lb\",\n\t\t_distance: \"4\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ no: {\n\t\t_desired: \"da\",\n\t\t_distance: \"8\"\n\t} },\n\t{ nb: {\n\t\t_desired: \"da\",\n\t\t_distance: \"8\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"ab\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ach\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ nl: {\n\t\t_desired: \"af\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ak\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"am\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"ay\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"az\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ur: {\n\t\t_desired: \"bal\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"be\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"bem\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"bh\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"bn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"bo\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"br\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"ca\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fil: {\n\t\t_desired: \"ceb\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"chr\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ckb\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"co\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"crs\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sk: {\n\t\t_desired: \"cs\",\n\t\t_distance: \"20\"\n\t} },\n\t{ en: {\n\t\t_desired: \"cy\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ee\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"eo\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"eu\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ da: {\n\t\t_desired: \"fo\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ nl: {\n\t\t_desired: \"fy\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ga\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"gaa\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"gd\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"gl\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"gn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"gu\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ha\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"haw\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"ht\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"hy\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ia\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ig\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"is\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ id: {\n\t\t_desired: \"jv\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ka\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"kg\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"kk\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"km\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"kn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"kri\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ tr: {\n\t\t_desired: \"ku\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"ky\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ it: {\n\t\t_desired: \"la\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"lg\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"ln\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"lo\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"loz\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"lua\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"mai\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"mfe\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"mg\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"mi\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ml\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"mn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"mr\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ id: {\n\t\t_desired: \"ms\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"mt\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"my\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ne\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ nb: {\n\t\t_desired: \"nn\",\n\t\t_distance: \"20\"\n\t} },\n\t{ no: {\n\t\t_desired: \"nn\",\n\t\t_distance: \"20\"\n\t} },\n\t{ en: {\n\t\t_desired: \"nso\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ny\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"nyn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"oc\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"om\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"or\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"pa\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"pcm\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ps\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"qu\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ de: {\n\t\t_desired: \"rm\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"rn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"rw\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"sa\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"sd\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"si\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"sn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"so\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"sq\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"st\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ id: {\n\t\t_desired: \"su\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"sw\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ta\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"te\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"tg\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ti\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"tk\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"tlh\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"tn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"to\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"tt\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"tum\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"ug\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"uk\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ur\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"uz\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"wo\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"xh\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"yi\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"yo\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"za\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"zu\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"aao\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"abh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"abv\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acx\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"adf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"aeb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"aec\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"afb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ajp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"apc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"apd\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"arq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ars\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ary\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"arz\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"auz\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"avl\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ayh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ayl\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ayn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ayp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"bbz\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"pga\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"shu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ssh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ az: {\n\t\t_desired: \"azb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ et: {\n\t\t_desired: \"vro\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"ffm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fub\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fue\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fuf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fuh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fui\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fuq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fuv\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ gn: {\n\t\t_desired: \"gnw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ gn: {\n\t\t_desired: \"gui\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ gn: {\n\t\t_desired: \"gun\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ gn: {\n\t\t_desired: \"nhd\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ iu: {\n\t\t_desired: \"ikt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"enb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"eyo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"niq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"oki\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"pko\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"sgc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"tec\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"tuy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kok: {\n\t\t_desired: \"gom\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kpe: {\n\t\t_desired: \"gkp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"ida\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lkb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lko\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lks\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lri\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lrm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lsm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lto\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lts\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lwg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"nle\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"nyd\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"rag\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ lv: {\n\t\t_desired: \"ltg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"bhr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"bjq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"bmm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"bzc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"msh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"skg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"tdx\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"tkg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"txy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"xmv\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"xmw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mn: {\n\t\t_desired: \"mvf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"bjn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"btj\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"bve\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"bvu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"coa\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"dup\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"hji\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"id\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"jak\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"jax\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"kvb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"kvr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"kxd\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"lce\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"lcf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"liw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"max\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"meo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"mfa\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"mfb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"min\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"mqg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"msi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"mui\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"orn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"ors\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"pel\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"pse\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"tmw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"urk\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"vkk\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"vkt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"xmm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"zlm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"zmi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ne: {\n\t\t_desired: \"dty\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ om: {\n\t\t_desired: \"gax\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ om: {\n\t\t_desired: \"hae\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ om: {\n\t\t_desired: \"orc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ or: {\n\t\t_desired: \"spv\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ps: {\n\t\t_desired: \"pbt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ps: {\n\t\t_desired: \"pst\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qub\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qud\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qug\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quk\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qul\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qup\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qur\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qus\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qux\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qva\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qve\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvj\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvl\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvs\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvz\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qwa\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qwc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qwh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qws\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxa\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxl\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sc: {\n\t\t_desired: \"sdc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sc: {\n\t\t_desired: \"sdn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sc: {\n\t\t_desired: \"sro\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sq: {\n\t\t_desired: \"aae\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sq: {\n\t\t_desired: \"aat\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sq: {\n\t\t_desired: \"aln\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ syr: {\n\t\t_desired: \"aii\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ uz: {\n\t\t_desired: \"uzs\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ yi: {\n\t\t_desired: \"yih\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"cdo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"cjy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"cpx\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"czh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"czo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"gan\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"hak\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"hsn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"lzh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"mnp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"nan\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"wuu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"yue\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"*\": {\n\t\t_desired: \"*\",\n\t\t_distance: \"80\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"am-Ethi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ru-Cyrl\": {\n\t\t_desired: \"az-Latn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"bn-Beng\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"zh-Hans\": {\n\t\t_desired: \"bo-Tibt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ru-Cyrl\": {\n\t\t_desired: \"hy-Armn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ka-Geor\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"km-Khmr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"kn-Knda\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"lo-Laoo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ml-Mlym\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"my-Mymr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ne-Deva\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"or-Orya\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"pa-Guru\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ps-Arab\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"sd-Arab\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"si-Sinh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ta-Taml\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"te-Telu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ti-Ethi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ru-Cyrl\": {\n\t\t_desired: \"tk-Latn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ur-Arab\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ru-Cyrl\": {\n\t\t_desired: \"uz-Latn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"yi-Hebr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"sr-Cyrl\": {\n\t\t_desired: \"sr-Latn\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"zh-Hans\": {\n\t\t_desired: \"za-Latn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"zh-Hans\": {\n\t\t_desired: \"zh-Hani\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"zh-Hant\": {\n\t\t_desired: \"zh-Hani\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ar-Arab\": {\n\t\t_desired: \"ar-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"bn-Beng\": {\n\t\t_desired: \"bn-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"gu-Gujr\": {\n\t\t_desired: \"gu-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"hi-Deva\": {\n\t\t_desired: \"hi-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"kn-Knda\": {\n\t\t_desired: \"kn-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ml-Mlym\": {\n\t\t_desired: \"ml-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"mr-Deva\": {\n\t\t_desired: \"mr-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ta-Taml\": {\n\t\t_desired: \"ta-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"te-Telu\": {\n\t\t_desired: \"te-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"zh-Hans\": {\n\t\t_desired: \"zh-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Latn\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Hani\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Hira\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Kana\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Hrkt\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Hrkt\": {\n\t\t_desired: \"ja-Hira\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Hrkt\": {\n\t\t_desired: \"ja-Kana\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ko-Kore\": {\n\t\t_desired: \"ko-Hani\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ko-Kore\": {\n\t\t_desired: \"ko-Hang\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ko-Kore\": {\n\t\t_desired: \"ko-Jamo\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ko-Hang\": {\n\t\t_desired: \"ko-Jamo\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"*-*\": {\n\t\t_desired: \"*-*\",\n\t\t_distance: \"50\"\n\t} },\n\t{ \"ar-*-$maghreb\": {\n\t\t_desired: \"ar-*-$maghreb\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"ar-*-$!maghreb\": {\n\t\t_desired: \"ar-*-$!maghreb\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"ar-*-*\": {\n\t\t_desired: \"ar-*-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"en-*-$enUS\": {\n\t\t_desired: \"en-*-$enUS\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"en-*-GB\": {\n\t\t_desired: \"en-*-$!enUS\",\n\t\t_distance: \"3\"\n\t} },\n\t{ \"en-*-$!enUS\": {\n\t\t_desired: \"en-*-$!enUS\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"en-*-*\": {\n\t\t_desired: \"en-*-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"es-*-$americas\": {\n\t\t_desired: \"es-*-$americas\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"es-*-$!americas\": {\n\t\t_desired: \"es-*-$!americas\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"es-*-*\": {\n\t\t_desired: \"es-*-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"pt-*-$americas\": {\n\t\t_desired: \"pt-*-$americas\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"pt-*-$!americas\": {\n\t\t_desired: \"pt-*-$!americas\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"pt-*-*\": {\n\t\t_desired: \"pt-*-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"zh-Hant-$cnsar\": {\n\t\t_desired: \"zh-Hant-$cnsar\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"zh-Hant-$!cnsar\": {\n\t\t_desired: \"zh-Hant-$!cnsar\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"zh-Hant-*\": {\n\t\t_desired: \"zh-Hant-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"*-*-*\": {\n\t\t_desired: \"*-*-*\",\n\t\t_distance: \"4\"\n\t} }\n] } } };\n","// This file is generated from regions-gen.ts\nexport const regions = {\n\t\"001\": [\n\t\t\"001\",\n\t\t\"001-status-grouping\",\n\t\t\"002\",\n\t\t\"005\",\n\t\t\"009\",\n\t\t\"011\",\n\t\t\"013\",\n\t\t\"014\",\n\t\t\"015\",\n\t\t\"017\",\n\t\t\"018\",\n\t\t\"019\",\n\t\t\"021\",\n\t\t\"029\",\n\t\t\"030\",\n\t\t\"034\",\n\t\t\"035\",\n\t\t\"039\",\n\t\t\"053\",\n\t\t\"054\",\n\t\t\"057\",\n\t\t\"061\",\n\t\t\"142\",\n\t\t\"143\",\n\t\t\"145\",\n\t\t\"150\",\n\t\t\"151\",\n\t\t\"154\",\n\t\t\"155\",\n\t\t\"AC\",\n\t\t\"AD\",\n\t\t\"AE\",\n\t\t\"AF\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AL\",\n\t\t\"AM\",\n\t\t\"AO\",\n\t\t\"AQ\",\n\t\t\"AR\",\n\t\t\"AS\",\n\t\t\"AT\",\n\t\t\"AU\",\n\t\t\"AW\",\n\t\t\"AX\",\n\t\t\"AZ\",\n\t\t\"BA\",\n\t\t\"BB\",\n\t\t\"BD\",\n\t\t\"BE\",\n\t\t\"BF\",\n\t\t\"BG\",\n\t\t\"BH\",\n\t\t\"BI\",\n\t\t\"BJ\",\n\t\t\"BL\",\n\t\t\"BM\",\n\t\t\"BN\",\n\t\t\"BO\",\n\t\t\"BQ\",\n\t\t\"BR\",\n\t\t\"BS\",\n\t\t\"BT\",\n\t\t\"BV\",\n\t\t\"BW\",\n\t\t\"BY\",\n\t\t\"BZ\",\n\t\t\"CA\",\n\t\t\"CC\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CH\",\n\t\t\"CI\",\n\t\t\"CK\",\n\t\t\"CL\",\n\t\t\"CM\",\n\t\t\"CN\",\n\t\t\"CO\",\n\t\t\"CP\",\n\t\t\"CQ\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CV\",\n\t\t\"CW\",\n\t\t\"CX\",\n\t\t\"CY\",\n\t\t\"CZ\",\n\t\t\"DE\",\n\t\t\"DG\",\n\t\t\"DJ\",\n\t\t\"DK\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"DZ\",\n\t\t\"EA\",\n\t\t\"EC\",\n\t\t\"EE\",\n\t\t\"EG\",\n\t\t\"EH\",\n\t\t\"ER\",\n\t\t\"ES\",\n\t\t\"ET\",\n\t\t\"EU\",\n\t\t\"EZ\",\n\t\t\"FI\",\n\t\t\"FJ\",\n\t\t\"FK\",\n\t\t\"FM\",\n\t\t\"FO\",\n\t\t\"FR\",\n\t\t\"GA\",\n\t\t\"GB\",\n\t\t\"GD\",\n\t\t\"GE\",\n\t\t\"GF\",\n\t\t\"GG\",\n\t\t\"GH\",\n\t\t\"GI\",\n\t\t\"GL\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GP\",\n\t\t\"GQ\",\n\t\t\"GR\",\n\t\t\"GS\",\n\t\t\"GT\",\n\t\t\"GU\",\n\t\t\"GW\",\n\t\t\"GY\",\n\t\t\"HK\",\n\t\t\"HM\",\n\t\t\"HN\",\n\t\t\"HR\",\n\t\t\"HT\",\n\t\t\"HU\",\n\t\t\"IC\",\n\t\t\"ID\",\n\t\t\"IE\",\n\t\t\"IL\",\n\t\t\"IM\",\n\t\t\"IN\",\n\t\t\"IO\",\n\t\t\"IQ\",\n\t\t\"IR\",\n\t\t\"IS\",\n\t\t\"IT\",\n\t\t\"JE\",\n\t\t\"JM\",\n\t\t\"JO\",\n\t\t\"JP\",\n\t\t\"KE\",\n\t\t\"KG\",\n\t\t\"KH\",\n\t\t\"KI\",\n\t\t\"KM\",\n\t\t\"KN\",\n\t\t\"KP\",\n\t\t\"KR\",\n\t\t\"KW\",\n\t\t\"KY\",\n\t\t\"KZ\",\n\t\t\"LA\",\n\t\t\"LB\",\n\t\t\"LC\",\n\t\t\"LI\",\n\t\t\"LK\",\n\t\t\"LR\",\n\t\t\"LS\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"LY\",\n\t\t\"MA\",\n\t\t\"MC\",\n\t\t\"MD\",\n\t\t\"ME\",\n\t\t\"MF\",\n\t\t\"MG\",\n\t\t\"MH\",\n\t\t\"MK\",\n\t\t\"ML\",\n\t\t\"MM\",\n\t\t\"MN\",\n\t\t\"MO\",\n\t\t\"MP\",\n\t\t\"MQ\",\n\t\t\"MR\",\n\t\t\"MS\",\n\t\t\"MT\",\n\t\t\"MU\",\n\t\t\"MV\",\n\t\t\"MW\",\n\t\t\"MX\",\n\t\t\"MY\",\n\t\t\"MZ\",\n\t\t\"NA\",\n\t\t\"NC\",\n\t\t\"NE\",\n\t\t\"NF\",\n\t\t\"NG\",\n\t\t\"NI\",\n\t\t\"NL\",\n\t\t\"NO\",\n\t\t\"NP\",\n\t\t\"NR\",\n\t\t\"NU\",\n\t\t\"NZ\",\n\t\t\"OM\",\n\t\t\"PA\",\n\t\t\"PE\",\n\t\t\"PF\",\n\t\t\"PG\",\n\t\t\"PH\",\n\t\t\"PK\",\n\t\t\"PL\",\n\t\t\"PM\",\n\t\t\"PN\",\n\t\t\"PR\",\n\t\t\"PS\",\n\t\t\"PT\",\n\t\t\"PW\",\n\t\t\"PY\",\n\t\t\"QA\",\n\t\t\"QO\",\n\t\t\"RE\",\n\t\t\"RO\",\n\t\t\"RS\",\n\t\t\"RU\",\n\t\t\"RW\",\n\t\t\"SA\",\n\t\t\"SB\",\n\t\t\"SC\",\n\t\t\"SD\",\n\t\t\"SE\",\n\t\t\"SG\",\n\t\t\"SH\",\n\t\t\"SI\",\n\t\t\"SJ\",\n\t\t\"SK\",\n\t\t\"SL\",\n\t\t\"SM\",\n\t\t\"SN\",\n\t\t\"SO\",\n\t\t\"SR\",\n\t\t\"SS\",\n\t\t\"ST\",\n\t\t\"SV\",\n\t\t\"SX\",\n\t\t\"SY\",\n\t\t\"SZ\",\n\t\t\"TA\",\n\t\t\"TC\",\n\t\t\"TD\",\n\t\t\"TF\",\n\t\t\"TG\",\n\t\t\"TH\",\n\t\t\"TJ\",\n\t\t\"TK\",\n\t\t\"TL\",\n\t\t\"TM\",\n\t\t\"TN\",\n\t\t\"TO\",\n\t\t\"TR\",\n\t\t\"TT\",\n\t\t\"TV\",\n\t\t\"TW\",\n\t\t\"TZ\",\n\t\t\"UA\",\n\t\t\"UG\",\n\t\t\"UM\",\n\t\t\"UN\",\n\t\t\"US\",\n\t\t\"UY\",\n\t\t\"UZ\",\n\t\t\"VA\",\n\t\t\"VC\",\n\t\t\"VE\",\n\t\t\"VG\",\n\t\t\"VI\",\n\t\t\"VN\",\n\t\t\"VU\",\n\t\t\"WF\",\n\t\t\"WS\",\n\t\t\"XK\",\n\t\t\"YE\",\n\t\t\"YT\",\n\t\t\"ZA\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t],\n\t\"002\": [\n\t\t\"002\",\n\t\t\"002-status-grouping\",\n\t\t\"011\",\n\t\t\"014\",\n\t\t\"015\",\n\t\t\"017\",\n\t\t\"018\",\n\t\t\"202\",\n\t\t\"AO\",\n\t\t\"BF\",\n\t\t\"BI\",\n\t\t\"BJ\",\n\t\t\"BW\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CI\",\n\t\t\"CM\",\n\t\t\"CV\",\n\t\t\"DJ\",\n\t\t\"DZ\",\n\t\t\"EA\",\n\t\t\"EG\",\n\t\t\"EH\",\n\t\t\"ER\",\n\t\t\"ET\",\n\t\t\"GA\",\n\t\t\"GH\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GQ\",\n\t\t\"GW\",\n\t\t\"IC\",\n\t\t\"IO\",\n\t\t\"KE\",\n\t\t\"KM\",\n\t\t\"LR\",\n\t\t\"LS\",\n\t\t\"LY\",\n\t\t\"MA\",\n\t\t\"MG\",\n\t\t\"ML\",\n\t\t\"MR\",\n\t\t\"MU\",\n\t\t\"MW\",\n\t\t\"MZ\",\n\t\t\"NA\",\n\t\t\"NE\",\n\t\t\"NG\",\n\t\t\"RE\",\n\t\t\"RW\",\n\t\t\"SC\",\n\t\t\"SD\",\n\t\t\"SH\",\n\t\t\"SL\",\n\t\t\"SN\",\n\t\t\"SO\",\n\t\t\"SS\",\n\t\t\"ST\",\n\t\t\"SZ\",\n\t\t\"TD\",\n\t\t\"TF\",\n\t\t\"TG\",\n\t\t\"TN\",\n\t\t\"TZ\",\n\t\t\"UG\",\n\t\t\"YT\",\n\t\t\"ZA\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t],\n\t\"003\": [\n\t\t\"003\",\n\t\t\"013\",\n\t\t\"021\",\n\t\t\"029\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AW\",\n\t\t\"BB\",\n\t\t\"BL\",\n\t\t\"BM\",\n\t\t\"BQ\",\n\t\t\"BS\",\n\t\t\"BZ\",\n\t\t\"CA\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CW\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"GD\",\n\t\t\"GL\",\n\t\t\"GP\",\n\t\t\"GT\",\n\t\t\"HN\",\n\t\t\"HT\",\n\t\t\"JM\",\n\t\t\"KN\",\n\t\t\"KY\",\n\t\t\"LC\",\n\t\t\"MF\",\n\t\t\"MQ\",\n\t\t\"MS\",\n\t\t\"MX\",\n\t\t\"NI\",\n\t\t\"PA\",\n\t\t\"PM\",\n\t\t\"PR\",\n\t\t\"SV\",\n\t\t\"SX\",\n\t\t\"TC\",\n\t\t\"TT\",\n\t\t\"US\",\n\t\t\"VC\",\n\t\t\"VG\",\n\t\t\"VI\"\n\t],\n\t\"005\": [\n\t\t\"005\",\n\t\t\"AR\",\n\t\t\"BO\",\n\t\t\"BR\",\n\t\t\"BV\",\n\t\t\"CL\",\n\t\t\"CO\",\n\t\t\"EC\",\n\t\t\"FK\",\n\t\t\"GF\",\n\t\t\"GS\",\n\t\t\"GY\",\n\t\t\"PE\",\n\t\t\"PY\",\n\t\t\"SR\",\n\t\t\"UY\",\n\t\t\"VE\"\n\t],\n\t\"009\": [\n\t\t\"009\",\n\t\t\"053\",\n\t\t\"054\",\n\t\t\"057\",\n\t\t\"061\",\n\t\t\"AC\",\n\t\t\"AQ\",\n\t\t\"AS\",\n\t\t\"AU\",\n\t\t\"CC\",\n\t\t\"CK\",\n\t\t\"CP\",\n\t\t\"CX\",\n\t\t\"DG\",\n\t\t\"FJ\",\n\t\t\"FM\",\n\t\t\"GU\",\n\t\t\"HM\",\n\t\t\"KI\",\n\t\t\"MH\",\n\t\t\"MP\",\n\t\t\"NC\",\n\t\t\"NF\",\n\t\t\"NR\",\n\t\t\"NU\",\n\t\t\"NZ\",\n\t\t\"PF\",\n\t\t\"PG\",\n\t\t\"PN\",\n\t\t\"PW\",\n\t\t\"QO\",\n\t\t\"SB\",\n\t\t\"TA\",\n\t\t\"TK\",\n\t\t\"TO\",\n\t\t\"TV\",\n\t\t\"UM\",\n\t\t\"VU\",\n\t\t\"WF\",\n\t\t\"WS\"\n\t],\n\t\"011\": [\n\t\t\"011\",\n\t\t\"BF\",\n\t\t\"BJ\",\n\t\t\"CI\",\n\t\t\"CV\",\n\t\t\"GH\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GW\",\n\t\t\"LR\",\n\t\t\"ML\",\n\t\t\"MR\",\n\t\t\"NE\",\n\t\t\"NG\",\n\t\t\"SH\",\n\t\t\"SL\",\n\t\t\"SN\",\n\t\t\"TG\"\n\t],\n\t\"013\": [\n\t\t\"013\",\n\t\t\"BZ\",\n\t\t\"CR\",\n\t\t\"GT\",\n\t\t\"HN\",\n\t\t\"MX\",\n\t\t\"NI\",\n\t\t\"PA\",\n\t\t\"SV\"\n\t],\n\t\"014\": [\n\t\t\"014\",\n\t\t\"BI\",\n\t\t\"DJ\",\n\t\t\"ER\",\n\t\t\"ET\",\n\t\t\"IO\",\n\t\t\"KE\",\n\t\t\"KM\",\n\t\t\"MG\",\n\t\t\"MU\",\n\t\t\"MW\",\n\t\t\"MZ\",\n\t\t\"RE\",\n\t\t\"RW\",\n\t\t\"SC\",\n\t\t\"SO\",\n\t\t\"SS\",\n\t\t\"TF\",\n\t\t\"TZ\",\n\t\t\"UG\",\n\t\t\"YT\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t],\n\t\"015\": [\n\t\t\"015\",\n\t\t\"DZ\",\n\t\t\"EA\",\n\t\t\"EG\",\n\t\t\"EH\",\n\t\t\"IC\",\n\t\t\"LY\",\n\t\t\"MA\",\n\t\t\"SD\",\n\t\t\"TN\"\n\t],\n\t\"017\": [\n\t\t\"017\",\n\t\t\"AO\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CM\",\n\t\t\"GA\",\n\t\t\"GQ\",\n\t\t\"ST\",\n\t\t\"TD\"\n\t],\n\t\"018\": [\n\t\t\"018\",\n\t\t\"BW\",\n\t\t\"LS\",\n\t\t\"NA\",\n\t\t\"SZ\",\n\t\t\"ZA\"\n\t],\n\t\"019\": [\n\t\t\"003\",\n\t\t\"005\",\n\t\t\"013\",\n\t\t\"019\",\n\t\t\"019-status-grouping\",\n\t\t\"021\",\n\t\t\"029\",\n\t\t\"419\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AR\",\n\t\t\"AW\",\n\t\t\"BB\",\n\t\t\"BL\",\n\t\t\"BM\",\n\t\t\"BO\",\n\t\t\"BQ\",\n\t\t\"BR\",\n\t\t\"BS\",\n\t\t\"BV\",\n\t\t\"BZ\",\n\t\t\"CA\",\n\t\t\"CL\",\n\t\t\"CO\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CW\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"EC\",\n\t\t\"FK\",\n\t\t\"GD\",\n\t\t\"GF\",\n\t\t\"GL\",\n\t\t\"GP\",\n\t\t\"GS\",\n\t\t\"GT\",\n\t\t\"GY\",\n\t\t\"HN\",\n\t\t\"HT\",\n\t\t\"JM\",\n\t\t\"KN\",\n\t\t\"KY\",\n\t\t\"LC\",\n\t\t\"MF\",\n\t\t\"MQ\",\n\t\t\"MS\",\n\t\t\"MX\",\n\t\t\"NI\",\n\t\t\"PA\",\n\t\t\"PE\",\n\t\t\"PM\",\n\t\t\"PR\",\n\t\t\"PY\",\n\t\t\"SR\",\n\t\t\"SV\",\n\t\t\"SX\",\n\t\t\"TC\",\n\t\t\"TT\",\n\t\t\"US\",\n\t\t\"UY\",\n\t\t\"VC\",\n\t\t\"VE\",\n\t\t\"VG\",\n\t\t\"VI\"\n\t],\n\t\"021\": [\n\t\t\"021\",\n\t\t\"BM\",\n\t\t\"CA\",\n\t\t\"GL\",\n\t\t\"PM\",\n\t\t\"US\"\n\t],\n\t\"029\": [\n\t\t\"029\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AW\",\n\t\t\"BB\",\n\t\t\"BL\",\n\t\t\"BQ\",\n\t\t\"BS\",\n\t\t\"CU\",\n\t\t\"CW\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"GD\",\n\t\t\"GP\",\n\t\t\"HT\",\n\t\t\"JM\",\n\t\t\"KN\",\n\t\t\"KY\",\n\t\t\"LC\",\n\t\t\"MF\",\n\t\t\"MQ\",\n\t\t\"MS\",\n\t\t\"PR\",\n\t\t\"SX\",\n\t\t\"TC\",\n\t\t\"TT\",\n\t\t\"VC\",\n\t\t\"VG\",\n\t\t\"VI\"\n\t],\n\t\"030\": [\n\t\t\"030\",\n\t\t\"CN\",\n\t\t\"HK\",\n\t\t\"JP\",\n\t\t\"KP\",\n\t\t\"KR\",\n\t\t\"MN\",\n\t\t\"MO\",\n\t\t\"TW\"\n\t],\n\t\"034\": [\n\t\t\"034\",\n\t\t\"AF\",\n\t\t\"BD\",\n\t\t\"BT\",\n\t\t\"IN\",\n\t\t\"IR\",\n\t\t\"LK\",\n\t\t\"MV\",\n\t\t\"NP\",\n\t\t\"PK\"\n\t],\n\t\"035\": [\n\t\t\"035\",\n\t\t\"BN\",\n\t\t\"ID\",\n\t\t\"KH\",\n\t\t\"LA\",\n\t\t\"MM\",\n\t\t\"MY\",\n\t\t\"PH\",\n\t\t\"SG\",\n\t\t\"TH\",\n\t\t\"TL\",\n\t\t\"VN\"\n\t],\n\t\"039\": [\n\t\t\"039\",\n\t\t\"AD\",\n\t\t\"AL\",\n\t\t\"BA\",\n\t\t\"ES\",\n\t\t\"GI\",\n\t\t\"GR\",\n\t\t\"HR\",\n\t\t\"IT\",\n\t\t\"ME\",\n\t\t\"MK\",\n\t\t\"MT\",\n\t\t\"PT\",\n\t\t\"RS\",\n\t\t\"SI\",\n\t\t\"SM\",\n\t\t\"VA\",\n\t\t\"XK\"\n\t],\n\t\"053\": [\n\t\t\"053\",\n\t\t\"AU\",\n\t\t\"CC\",\n\t\t\"CX\",\n\t\t\"HM\",\n\t\t\"NF\",\n\t\t\"NZ\"\n\t],\n\t\"054\": [\n\t\t\"054\",\n\t\t\"FJ\",\n\t\t\"NC\",\n\t\t\"PG\",\n\t\t\"SB\",\n\t\t\"VU\"\n\t],\n\t\"057\": [\n\t\t\"057\",\n\t\t\"FM\",\n\t\t\"GU\",\n\t\t\"KI\",\n\t\t\"MH\",\n\t\t\"MP\",\n\t\t\"NR\",\n\t\t\"PW\",\n\t\t\"UM\"\n\t],\n\t\"061\": [\n\t\t\"061\",\n\t\t\"AS\",\n\t\t\"CK\",\n\t\t\"NU\",\n\t\t\"PF\",\n\t\t\"PN\",\n\t\t\"TK\",\n\t\t\"TO\",\n\t\t\"TV\",\n\t\t\"WF\",\n\t\t\"WS\"\n\t],\n\t\"142\": [\n\t\t\"030\",\n\t\t\"034\",\n\t\t\"035\",\n\t\t\"142\",\n\t\t\"143\",\n\t\t\"145\",\n\t\t\"AE\",\n\t\t\"AF\",\n\t\t\"AM\",\n\t\t\"AZ\",\n\t\t\"BD\",\n\t\t\"BH\",\n\t\t\"BN\",\n\t\t\"BT\",\n\t\t\"CN\",\n\t\t\"CY\",\n\t\t\"GE\",\n\t\t\"HK\",\n\t\t\"ID\",\n\t\t\"IL\",\n\t\t\"IN\",\n\t\t\"IQ\",\n\t\t\"IR\",\n\t\t\"JO\",\n\t\t\"JP\",\n\t\t\"KG\",\n\t\t\"KH\",\n\t\t\"KP\",\n\t\t\"KR\",\n\t\t\"KW\",\n\t\t\"KZ\",\n\t\t\"LA\",\n\t\t\"LB\",\n\t\t\"LK\",\n\t\t\"MM\",\n\t\t\"MN\",\n\t\t\"MO\",\n\t\t\"MV\",\n\t\t\"MY\",\n\t\t\"NP\",\n\t\t\"OM\",\n\t\t\"PH\",\n\t\t\"PK\",\n\t\t\"PS\",\n\t\t\"QA\",\n\t\t\"SA\",\n\t\t\"SG\",\n\t\t\"SY\",\n\t\t\"TH\",\n\t\t\"TJ\",\n\t\t\"TL\",\n\t\t\"TM\",\n\t\t\"TR\",\n\t\t\"TW\",\n\t\t\"UZ\",\n\t\t\"VN\",\n\t\t\"YE\"\n\t],\n\t\"143\": [\n\t\t\"143\",\n\t\t\"KG\",\n\t\t\"KZ\",\n\t\t\"TJ\",\n\t\t\"TM\",\n\t\t\"UZ\"\n\t],\n\t\"145\": [\n\t\t\"145\",\n\t\t\"AE\",\n\t\t\"AM\",\n\t\t\"AZ\",\n\t\t\"BH\",\n\t\t\"CY\",\n\t\t\"GE\",\n\t\t\"IL\",\n\t\t\"IQ\",\n\t\t\"JO\",\n\t\t\"KW\",\n\t\t\"LB\",\n\t\t\"OM\",\n\t\t\"PS\",\n\t\t\"QA\",\n\t\t\"SA\",\n\t\t\"SY\",\n\t\t\"TR\",\n\t\t\"YE\"\n\t],\n\t\"150\": [\n\t\t\"039\",\n\t\t\"150\",\n\t\t\"151\",\n\t\t\"154\",\n\t\t\"155\",\n\t\t\"AD\",\n\t\t\"AL\",\n\t\t\"AT\",\n\t\t\"AX\",\n\t\t\"BA\",\n\t\t\"BE\",\n\t\t\"BG\",\n\t\t\"BY\",\n\t\t\"CH\",\n\t\t\"CQ\",\n\t\t\"CZ\",\n\t\t\"DE\",\n\t\t\"DK\",\n\t\t\"EE\",\n\t\t\"ES\",\n\t\t\"FI\",\n\t\t\"FO\",\n\t\t\"FR\",\n\t\t\"GB\",\n\t\t\"GG\",\n\t\t\"GI\",\n\t\t\"GR\",\n\t\t\"HR\",\n\t\t\"HU\",\n\t\t\"IE\",\n\t\t\"IM\",\n\t\t\"IS\",\n\t\t\"IT\",\n\t\t\"JE\",\n\t\t\"LI\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"MC\",\n\t\t\"MD\",\n\t\t\"ME\",\n\t\t\"MK\",\n\t\t\"MT\",\n\t\t\"NL\",\n\t\t\"NO\",\n\t\t\"PL\",\n\t\t\"PT\",\n\t\t\"RO\",\n\t\t\"RS\",\n\t\t\"RU\",\n\t\t\"SE\",\n\t\t\"SI\",\n\t\t\"SJ\",\n\t\t\"SK\",\n\t\t\"SM\",\n\t\t\"UA\",\n\t\t\"VA\",\n\t\t\"XK\"\n\t],\n\t\"151\": [\n\t\t\"151\",\n\t\t\"BG\",\n\t\t\"BY\",\n\t\t\"CZ\",\n\t\t\"HU\",\n\t\t\"MD\",\n\t\t\"PL\",\n\t\t\"RO\",\n\t\t\"RU\",\n\t\t\"SK\",\n\t\t\"UA\"\n\t],\n\t\"154\": [\n\t\t\"154\",\n\t\t\"AX\",\n\t\t\"CQ\",\n\t\t\"DK\",\n\t\t\"EE\",\n\t\t\"FI\",\n\t\t\"FO\",\n\t\t\"GB\",\n\t\t\"GG\",\n\t\t\"IE\",\n\t\t\"IM\",\n\t\t\"IS\",\n\t\t\"JE\",\n\t\t\"LT\",\n\t\t\"LV\",\n\t\t\"NO\",\n\t\t\"SE\",\n\t\t\"SJ\"\n\t],\n\t\"155\": [\n\t\t\"155\",\n\t\t\"AT\",\n\t\t\"BE\",\n\t\t\"CH\",\n\t\t\"DE\",\n\t\t\"FR\",\n\t\t\"LI\",\n\t\t\"LU\",\n\t\t\"MC\",\n\t\t\"NL\"\n\t],\n\t\"202\": [\n\t\t\"011\",\n\t\t\"014\",\n\t\t\"017\",\n\t\t\"018\",\n\t\t\"202\",\n\t\t\"AO\",\n\t\t\"BF\",\n\t\t\"BI\",\n\t\t\"BJ\",\n\t\t\"BW\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CI\",\n\t\t\"CM\",\n\t\t\"CV\",\n\t\t\"DJ\",\n\t\t\"ER\",\n\t\t\"ET\",\n\t\t\"GA\",\n\t\t\"GH\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GQ\",\n\t\t\"GW\",\n\t\t\"IO\",\n\t\t\"KE\",\n\t\t\"KM\",\n\t\t\"LR\",\n\t\t\"LS\",\n\t\t\"MG\",\n\t\t\"ML\",\n\t\t\"MR\",\n\t\t\"MU\",\n\t\t\"MW\",\n\t\t\"MZ\",\n\t\t\"NA\",\n\t\t\"NE\",\n\t\t\"NG\",\n\t\t\"RE\",\n\t\t\"RW\",\n\t\t\"SC\",\n\t\t\"SH\",\n\t\t\"SL\",\n\t\t\"SN\",\n\t\t\"SO\",\n\t\t\"SS\",\n\t\t\"ST\",\n\t\t\"SZ\",\n\t\t\"TD\",\n\t\t\"TF\",\n\t\t\"TG\",\n\t\t\"TZ\",\n\t\t\"UG\",\n\t\t\"YT\",\n\t\t\"ZA\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t],\n\t\"419\": [\n\t\t\"005\",\n\t\t\"013\",\n\t\t\"029\",\n\t\t\"419\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AR\",\n\t\t\"AW\",\n\t\t\"BB\",\n\t\t\"BL\",\n\t\t\"BO\",\n\t\t\"BQ\",\n\t\t\"BR\",\n\t\t\"BS\",\n\t\t\"BV\",\n\t\t\"BZ\",\n\t\t\"CL\",\n\t\t\"CO\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CW\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"EC\",\n\t\t\"FK\",\n\t\t\"GD\",\n\t\t\"GF\",\n\t\t\"GP\",\n\t\t\"GS\",\n\t\t\"GT\",\n\t\t\"GY\",\n\t\t\"HN\",\n\t\t\"HT\",\n\t\t\"JM\",\n\t\t\"KN\",\n\t\t\"KY\",\n\t\t\"LC\",\n\t\t\"MF\",\n\t\t\"MQ\",\n\t\t\"MS\",\n\t\t\"MX\",\n\t\t\"NI\",\n\t\t\"PA\",\n\t\t\"PE\",\n\t\t\"PR\",\n\t\t\"PY\",\n\t\t\"SR\",\n\t\t\"SV\",\n\t\t\"SX\",\n\t\t\"TC\",\n\t\t\"TT\",\n\t\t\"UY\",\n\t\t\"VC\",\n\t\t\"VE\",\n\t\t\"VG\",\n\t\t\"VI\"\n\t],\n\tEU: [\n\t\t\"AT\",\n\t\t\"BE\",\n\t\t\"BG\",\n\t\t\"CY\",\n\t\t\"CZ\",\n\t\t\"DE\",\n\t\t\"DK\",\n\t\t\"EE\",\n\t\t\"ES\",\n\t\t\"EU\",\n\t\t\"FI\",\n\t\t\"FR\",\n\t\t\"GR\",\n\t\t\"HR\",\n\t\t\"HU\",\n\t\t\"IE\",\n\t\t\"IT\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"MT\",\n\t\t\"NL\",\n\t\t\"PL\",\n\t\t\"PT\",\n\t\t\"RO\",\n\t\t\"SE\",\n\t\t\"SI\",\n\t\t\"SK\"\n\t],\n\tEZ: [\n\t\t\"AT\",\n\t\t\"BE\",\n\t\t\"CY\",\n\t\t\"DE\",\n\t\t\"EE\",\n\t\t\"ES\",\n\t\t\"EZ\",\n\t\t\"FI\",\n\t\t\"FR\",\n\t\t\"GR\",\n\t\t\"IE\",\n\t\t\"IT\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"MT\",\n\t\t\"NL\",\n\t\t\"PT\",\n\t\t\"SI\",\n\t\t\"SK\"\n\t],\n\tQO: [\n\t\t\"AC\",\n\t\t\"AQ\",\n\t\t\"CP\",\n\t\t\"DG\",\n\t\t\"QO\",\n\t\t\"TA\"\n\t],\n\tUN: [\n\t\t\"AD\",\n\t\t\"AE\",\n\t\t\"AF\",\n\t\t\"AG\",\n\t\t\"AL\",\n\t\t\"AM\",\n\t\t\"AO\",\n\t\t\"AR\",\n\t\t\"AT\",\n\t\t\"AU\",\n\t\t\"AZ\",\n\t\t\"BA\",\n\t\t\"BB\",\n\t\t\"BD\",\n\t\t\"BE\",\n\t\t\"BF\",\n\t\t\"BG\",\n\t\t\"BH\",\n\t\t\"BI\",\n\t\t\"BJ\",\n\t\t\"BN\",\n\t\t\"BO\",\n\t\t\"BR\",\n\t\t\"BS\",\n\t\t\"BT\",\n\t\t\"BW\",\n\t\t\"BY\",\n\t\t\"BZ\",\n\t\t\"CA\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CH\",\n\t\t\"CI\",\n\t\t\"CL\",\n\t\t\"CM\",\n\t\t\"CN\",\n\t\t\"CO\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CV\",\n\t\t\"CY\",\n\t\t\"CZ\",\n\t\t\"DE\",\n\t\t\"DJ\",\n\t\t\"DK\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"DZ\",\n\t\t\"EC\",\n\t\t\"EE\",\n\t\t\"EG\",\n\t\t\"ER\",\n\t\t\"ES\",\n\t\t\"ET\",\n\t\t\"FI\",\n\t\t\"FJ\",\n\t\t\"FM\",\n\t\t\"FR\",\n\t\t\"GA\",\n\t\t\"GB\",\n\t\t\"GD\",\n\t\t\"GE\",\n\t\t\"GH\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GQ\",\n\t\t\"GR\",\n\t\t\"GT\",\n\t\t\"GW\",\n\t\t\"GY\",\n\t\t\"HN\",\n\t\t\"HR\",\n\t\t\"HT\",\n\t\t\"HU\",\n\t\t\"ID\",\n\t\t\"IE\",\n\t\t\"IL\",\n\t\t\"IN\",\n\t\t\"IQ\",\n\t\t\"IR\",\n\t\t\"IS\",\n\t\t\"IT\",\n\t\t\"JM\",\n\t\t\"JO\",\n\t\t\"JP\",\n\t\t\"KE\",\n\t\t\"KG\",\n\t\t\"KH\",\n\t\t\"KI\",\n\t\t\"KM\",\n\t\t\"KN\",\n\t\t\"KP\",\n\t\t\"KR\",\n\t\t\"KW\",\n\t\t\"KZ\",\n\t\t\"LA\",\n\t\t\"LB\",\n\t\t\"LC\",\n\t\t\"LI\",\n\t\t\"LK\",\n\t\t\"LR\",\n\t\t\"LS\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"LY\",\n\t\t\"MA\",\n\t\t\"MC\",\n\t\t\"MD\",\n\t\t\"ME\",\n\t\t\"MG\",\n\t\t\"MH\",\n\t\t\"MK\",\n\t\t\"ML\",\n\t\t\"MM\",\n\t\t\"MN\",\n\t\t\"MR\",\n\t\t\"MT\",\n\t\t\"MU\",\n\t\t\"MV\",\n\t\t\"MW\",\n\t\t\"MX\",\n\t\t\"MY\",\n\t\t\"MZ\",\n\t\t\"NA\",\n\t\t\"NE\",\n\t\t\"NG\",\n\t\t\"NI\",\n\t\t\"NL\",\n\t\t\"NO\",\n\t\t\"NP\",\n\t\t\"NR\",\n\t\t\"NZ\",\n\t\t\"OM\",\n\t\t\"PA\",\n\t\t\"PE\",\n\t\t\"PG\",\n\t\t\"PH\",\n\t\t\"PK\",\n\t\t\"PL\",\n\t\t\"PT\",\n\t\t\"PW\",\n\t\t\"PY\",\n\t\t\"QA\",\n\t\t\"RO\",\n\t\t\"RS\",\n\t\t\"RU\",\n\t\t\"RW\",\n\t\t\"SA\",\n\t\t\"SB\",\n\t\t\"SC\",\n\t\t\"SD\",\n\t\t\"SE\",\n\t\t\"SG\",\n\t\t\"SI\",\n\t\t\"SK\",\n\t\t\"SL\",\n\t\t\"SM\",\n\t\t\"SN\",\n\t\t\"SO\",\n\t\t\"SR\",\n\t\t\"SS\",\n\t\t\"ST\",\n\t\t\"SV\",\n\t\t\"SY\",\n\t\t\"SZ\",\n\t\t\"TD\",\n\t\t\"TG\",\n\t\t\"TH\",\n\t\t\"TJ\",\n\t\t\"TL\",\n\t\t\"TM\",\n\t\t\"TN\",\n\t\t\"TO\",\n\t\t\"TR\",\n\t\t\"TT\",\n\t\t\"TV\",\n\t\t\"TZ\",\n\t\t\"UA\",\n\t\t\"UG\",\n\t\t\"UN\",\n\t\t\"US\",\n\t\t\"UY\",\n\t\t\"UZ\",\n\t\t\"VC\",\n\t\t\"VE\",\n\t\t\"VN\",\n\t\t\"VU\",\n\t\t\"WS\",\n\t\t\"YE\",\n\t\t\"ZA\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t]\n};\n","import { memoize } from \"@formatjs/fast-memoize\";\nimport { data as jsonData } from \"./languageMatching.js\";\nimport { regions } from \"./regions.generated.js\";\nexport const UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\n/**\n* Asserts that a condition is true, throwing an error if it is not.\n* Used for runtime validation and type narrowing.\n*\n* @param condition - The condition to check\n* @param message - Error message if condition is false\n* @param Err - Error constructor to use (defaults to Error)\n* @throws {Error} When condition is false\n*\n* @example\n* ```ts\n* invariant(locale !== undefined, 'Locale must be defined')\n* // locale is now narrowed to non-undefined type\n* ```\n*/\nexport function invariant(condition, message, Err = Error) {\n\tif (!condition) {\n\t\tthrow new Err(message);\n\t}\n}\n// This is effectively 2 languages in 2 different regions in the same cluster\nconst DEFAULT_MATCHING_THRESHOLD = 838;\nlet PROCESSED_DATA;\nfunction processData() {\n\tif (!PROCESSED_DATA) {\n\t\tconst paradigmLocales = jsonData.supplemental.languageMatching[\"written-new\"][0]?.paradigmLocales?._locales.split(\" \");\n\t\tconst matchVariables = jsonData.supplemental.languageMatching[\"written-new\"].slice(1, 5);\n\t\tconst data = jsonData.supplemental.languageMatching[\"written-new\"].slice(5);\n\t\tconst matches = data.map((d) => {\n\t\t\tconst key = Object.keys(d)[0];\n\t\t\tconst value = d[key];\n\t\t\treturn {\n\t\t\t\tsupported: key,\n\t\t\t\tdesired: value._desired,\n\t\t\t\tdistance: +value._distance,\n\t\t\t\toneway: value.oneway === \"true\" ? true : false\n\t\t\t};\n\t\t}, {});\n\t\tPROCESSED_DATA = {\n\t\t\tmatches,\n\t\t\tmatchVariables: matchVariables.reduce((all, d) => {\n\t\t\t\tconst key = Object.keys(d)[0];\n\t\t\t\tconst value = d[key];\n\t\t\t\tall[key.slice(1)] = value._value.split(\"+\");\n\t\t\t\treturn all;\n\t\t\t}, {}),\n\t\t\tparadigmLocales: [...paradigmLocales, ...paradigmLocales.map((l) => new Intl.Locale(l.replace(/_/g, \"-\")).maximize().toString())]\n\t\t};\n\t}\n\treturn PROCESSED_DATA;\n}\nfunction isMatched(locale, languageMatchInfoLocale, matchVariables) {\n\tconst [language, script, region] = languageMatchInfoLocale.split(\"-\");\n\tlet matches = true;\n\tif (region && region[0] === \"$\") {\n\t\tconst shouldInclude = region[1] !== \"!\";\n\t\tconst matchRegions = shouldInclude ? matchVariables[region.slice(1)] : matchVariables[region.slice(2)];\n\t\tconst expandedMatchedRegions = matchRegions.map((r) => regions[r] || [r]).reduce((all, list) => [...all, ...list], []);\n\t\tmatches &&= !(expandedMatchedRegions.indexOf(locale.region || \"\") > -1 != shouldInclude);\n\t} else {\n\t\tmatches &&= locale.region ? region === \"*\" || region === locale.region : true;\n\t}\n\tmatches &&= locale.script ? script === \"*\" || script === locale.script : true;\n\tmatches &&= locale.language ? language === \"*\" || language === locale.language : true;\n\treturn matches;\n}\nfunction serializeLSR(lsr) {\n\treturn [\n\t\tlsr.language,\n\t\tlsr.script,\n\t\tlsr.region\n\t].filter(Boolean).join(\"-\");\n}\nfunction findMatchingDistanceForLSR(desired, supported, data) {\n\tfor (const d of data.matches) {\n\t\tlet matches = isMatched(desired, d.desired, data.matchVariables) && isMatched(supported, d.supported, data.matchVariables);\n\t\tif (!d.oneway && !matches) {\n\t\t\tmatches = isMatched(desired, d.supported, data.matchVariables) && isMatched(supported, d.desired, data.matchVariables);\n\t\t}\n\t\tif (matches) {\n\t\t\tconst distance = d.distance * 10;\n\t\t\tif (data.paradigmLocales.indexOf(serializeLSR(desired)) > -1 != data.paradigmLocales.indexOf(serializeLSR(supported)) > -1) {\n\t\t\t\treturn distance - 1;\n\t\t\t}\n\t\t\treturn distance;\n\t\t}\n\t}\n\tthrow new Error(\"No matching distance found\");\n}\nfunction findMatchingDistanceImpl(desired, supported) {\n\tconst desiredLocale = new Intl.Locale(desired).maximize();\n\tconst supportedLocale = new Intl.Locale(supported).maximize();\n\tconst desiredLSR = {\n\t\tlanguage: desiredLocale.language,\n\t\tscript: desiredLocale.script || \"\",\n\t\tregion: desiredLocale.region || \"\"\n\t};\n\tconst supportedLSR = {\n\t\tlanguage: supportedLocale.language,\n\t\tscript: supportedLocale.script || \"\",\n\t\tregion: supportedLocale.region || \"\"\n\t};\n\tlet matchingDistance = 0;\n\tconst data = processData();\n\tif (desiredLSR.language !== supportedLSR.language) {\n\t\tmatchingDistance += findMatchingDistanceForLSR({\n\t\t\tlanguage: desiredLocale.language,\n\t\t\tscript: \"\",\n\t\t\tregion: \"\"\n\t\t}, {\n\t\t\tlanguage: supportedLocale.language,\n\t\t\tscript: \"\",\n\t\t\tregion: \"\"\n\t\t}, data);\n\t}\n\tif (desiredLSR.script !== supportedLSR.script) {\n\t\tmatchingDistance += findMatchingDistanceForLSR({\n\t\t\tlanguage: desiredLocale.language,\n\t\t\tscript: desiredLSR.script,\n\t\t\tregion: \"\"\n\t\t}, {\n\t\t\tlanguage: supportedLocale.language,\n\t\t\tscript: supportedLSR.script,\n\t\t\tregion: \"\"\n\t\t}, data);\n\t}\n\tif (desiredLSR.region !== supportedLSR.region) {\n\t\tmatchingDistance += findMatchingDistanceForLSR(desiredLSR, supportedLSR, data);\n\t}\n\treturn matchingDistance;\n}\n/**\n* Calculates the matching distance between two locales using the CLDR Enhanced Language Matching algorithm.\n* This function is memoized for performance, as distance calculations are expensive.\n*\n* The distance represents how \"far apart\" two locales are, with 0 being identical (after maximization).\n* Distances are calculated based on Language-Script-Region (LSR) differences using CLDR data.\n*\n* @param desired - The desired locale (e.g., \"en-US\")\n* @param supported - The supported locale to compare against (e.g., \"en-GB\")\n* @returns The calculated distance between the locales\n*\n* @example\n* ```ts\n* findMatchingDistance('en-US', 'en-US') // 0 - identical\n* findMatchingDistance('en-US', 'en-GB') // 40 - same language/script, different region\n* findMatchingDistance('es-CO', 'es-419') // 39 - regional variant\n* findMatchingDistance('en', 'fr') // 840 - completely different languages\n* ```\n*\n* @see https://unicode.org/reports/tr35/#EnhancedLanguageMatching\n*/\nexport const findMatchingDistance = memoize(findMatchingDistanceImpl, { serializer: (args) => `${args[0]}|${args[1]}` });\n/**\n* Generates fallback candidates by progressively removing subtags\n* e.g., \"en-US\" -> [\"en-US\", \"en\"]\n*      \"zh-Hans-CN\" -> [\"zh-Hans-CN\", \"zh-Hans\", \"zh\"]\n*/\nfunction getFallbackCandidates(locale) {\n\tconst candidates = [];\n\tlet current = locale;\n\twhile (current) {\n\t\tcandidates.push(current);\n\t\tconst lastDash = current.lastIndexOf(\"-\");\n\t\tif (lastDash === -1) break;\n\t\tcurrent = current.substring(0, lastDash);\n\t}\n\treturn candidates;\n}\n/**\n* Finds the best locale match using a three-tier optimization hierarchy.\n*\n* ## Three-Tier Matching Algorithm:\n*\n* **Tier 1 - Fast Path** (O(n)): Exact string matching via Set lookup\n* - Example: 'en' matches 'en' exactly → distance 0\n* - Solves #4936: 48x faster than baseline (12ms vs 610ms with 700+ locales)\n*\n* **Tier 2 - Fallback Path** (O(k×n)): Maximization + progressive subtag removal\n* - Maximizes requested locale, then removes subtags right-to-left\n* - Example: \"zh-TW\" → \"zh-Hant-TW\" → [\"zh-Hant-TW\", \"zh-Hant\", \"zh\"]\n* - Distance: 0 for maximized match, 10 per removed subtag + position penalty\n* - 40-50x faster than full UTS #35, handles 99% of real-world cases correctly\n*\n* **Tier 3 - Slow Path** (O(n×m), memoized): Full UTS #35 CLDR matching\n* - Calculates Language-Script-Region distances using CLDR data\n* - Handles complex cases like cross-script matching (sr-Cyrl ↔ sr-Latn)\n* - Only used when Tiers 1 & 2 find no match\n* - Still 6x faster than baseline due to memoization\n*\n* ## Performance Impact of Maximization:\n*\n* While Tier 2 now calls `Intl.Locale().maximize()` once per requested locale,\n* this is still much faster than Tier 3's full distance calculation:\n* - Tier 1: ~12ms (exact match, no maximization)\n* - Tier 2: ~13-15ms (maximization + fallback)\n* - Tier 3: ~100ms+ (full UTS #35 with all supported locales)\n*\n* @param requestedLocales - Locale identifiers in preference order\n* @param supportedLocales - Available locale identifiers\n* @param threshold - Maximum distance (default: 838, from CLDR)\n* @returns Matching result with distances\n*\n* @example\n* ```ts\n* // Tier 1: Exact match\n* findBestMatch(['en'], ['en', 'fr'])\n* // → { matchedSupportedLocale: 'en', distances: { en: { en: 0 } } }\n*\n* // Tier 2: Fallback with maximization\n* findBestMatch(['zh-TW'], ['zh-Hant'])\n* // → zh-TW maximizes to zh-Hant-TW, falls back to zh-Hant (distance 0)\n*\n* findBestMatch(['en-US'], ['en'])\n* // → en-US maximizes to en-Latn-US, falls back to en (distance 10)\n*\n* // Tier 3: Full calculation\n* findBestMatch(['en-XZ'], ['ja', 'ko'])\n* // → No fallback match, uses UTS #35 to find closest match\n* ```\n*\n* @see https://unicode.org/reports/tr35/#EnhancedLanguageMatching\n* @see https://github.com/formatjs/formatjs/issues/4936\n*/\n// WeakMap to cache canonicalized supported locales arrays\nconst canonicalizedSupportedCache = new WeakMap();\nexport function findBestMatch(requestedLocales, supportedLocales, threshold = DEFAULT_MATCHING_THRESHOLD) {\n\tlet lowestDistance = Infinity;\n\tlet result = {\n\t\tmatchedDesiredLocale: \"\",\n\t\tdistances: {}\n\t};\n\t// Get or compute canonicalized supported locales (one by one to preserve indices)\n\tlet canonicalizedSupportedLocales = canonicalizedSupportedCache.get(supportedLocales);\n\tif (!canonicalizedSupportedLocales) {\n\t\tcanonicalizedSupportedLocales = supportedLocales.map((locale) => {\n\t\t\ttry {\n\t\t\t\tconst canonical = Intl.getCanonicalLocales([locale]);\n\t\t\t\treturn canonical[0] || locale;\n\t\t\t} catch {\n\t\t\t\treturn locale;\n\t\t\t}\n\t\t});\n\t\tcanonicalizedSupportedCache.set(supportedLocales, canonicalizedSupportedLocales);\n\t}\n\tconst supportedSet = new Set(canonicalizedSupportedLocales);\n\t// === TIER 1: FAST PATH - Exact Match ===\n\t// Check for exact matches in ALL requested locales\n\t// This is the fastest path and handles the majority of real-world cases\n\tfor (let i = 0; i < requestedLocales.length; i++) {\n\t\tconst desired = requestedLocales[i];\n\t\tif (supportedSet.has(desired)) {\n\t\t\tconst distance = 0 + i * 40;\n\t\t\tresult.distances[desired] = { [desired]: distance };\n\t\t\tif (distance < lowestDistance) {\n\t\t\t\tlowestDistance = distance;\n\t\t\t\tresult.matchedDesiredLocale = desired;\n\t\t\t\tresult.matchedSupportedLocale = desired;\n\t\t\t}\n\t\t\t// Only return immediately if this is the first requested locale (distance=0)\n\t\t\t// Otherwise, continue checking for potentially better matches\n\t\t\tif (i === 0) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\t// If we found an exact match in Tier 1 (but not for first locale), check Tier 2\n\t// to see if there's a better fallback match with lower distance\n\t// If no exact match found, Tier 2 will find fallback matches\n\t// === TIER 2: FALLBACK PATH - Maximization + Progressive Subtag Removal ===\n\t// Try maximization-based matching before resorting to expensive Tier 3\n\t// This handles cases like zh-TW → zh-Hant efficiently\n\tfor (let i = 0; i < requestedLocales.length; i++) {\n\t\tconst desired = requestedLocales[i];\n\t\t// Maximize then fallback (for linguistic accuracy like zh-TW → zh-Hant)\n\t\ttry {\n\t\t\tconst maximized = new Intl.Locale(desired).maximize().toString();\n\t\t\tif (maximized !== desired) {\n\t\t\t\tconst maximizedCandidates = getFallbackCandidates(maximized);\n\t\t\t\tfor (let j = 0; j < maximizedCandidates.length; j++) {\n\t\t\t\t\tconst candidate = maximizedCandidates[j];\n\t\t\t\t\tif (candidate === desired) continue;\n\t\t\t\t\tif (supportedSet.has(candidate)) {\n\t\t\t\t\t\t// Check if candidate also maximizes to the same form\n\t\t\t\t\t\t// e.g., zh-TW → zh-Hant-TW and zh-Hant → zh-Hant-TW (distance 0)\n\t\t\t\t\t\t// but es-co → es-Latn-CO and es → es-Latn-ES (distance 10)\n\t\t\t\t\t\tlet distance;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst candidateMaximized = new Intl.Locale(candidate).maximize().toString();\n\t\t\t\t\t\t\tdistance = candidateMaximized === maximized ? 0 + i * 40 : j * 10 + i * 40;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tdistance = j * 10 + i * 40;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!result.distances[desired]) {\n\t\t\t\t\t\t\tresult.distances[desired] = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult.distances[desired][candidate] = distance;\n\t\t\t\t\t\tif (distance < lowestDistance) {\n\t\t\t\t\t\t\tlowestDistance = distance;\n\t\t\t\t\t\t\tresult.matchedDesiredLocale = desired;\n\t\t\t\t\t\t\tresult.matchedSupportedLocale = candidate;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {}\n\t}\n\t// If Tier 2 found a perfect maximized match (distance 0), return immediately (fast path)\n\tif (result.matchedSupportedLocale && lowestDistance === 0) {\n\t\treturn result;\n\t}\n\t// === TIER 3: SLOW PATH - Full UTS #35 Distance Calculation ===\n\t// Always run Tier 3 for full CLDR accuracy\n\t// Tier 3 may find better matches than Tier 2's fallback approach\n\t// findMatchingDistance is memoized, so repeated calculations are cached\n\trequestedLocales.forEach((desired, i) => {\n\t\tif (!result.distances[desired]) {\n\t\t\tresult.distances[desired] = {};\n\t\t}\n\t\tcanonicalizedSupportedLocales.forEach((canonicalLocale, supportedIndex) => {\n\t\t\tconst originalSupported = supportedLocales[supportedIndex];\n\t\t\t// findMatchingDistance is memoized via fast-memoize\n\t\t\t// Use the canonical locale for distance calculation\n\t\t\tconst distance = findMatchingDistance(desired, canonicalLocale);\n\t\t\t// Add some weight to the distance based on the order of the supported locales\n\t\t\t// Add penalty for the order of the requested locales, which currently is 0 since ECMA-402\n\t\t\t// doesn't really have room for weighted locales like `en; q=0.1`\n\t\t\tconst finalDistance = distance + 0 + i * 40;\n\t\t\t// Store and return the original locale, not the canonical one\n\t\t\t// Tier 3 overwrites Tier 2 distances (Tier 3 is more accurate)\n\t\t\tresult.distances[desired][originalSupported] = finalDistance;\n\t\t\tif (finalDistance < lowestDistance) {\n\t\t\t\tlowestDistance = finalDistance;\n\t\t\t\tresult.matchedDesiredLocale = desired;\n\t\t\t\tresult.matchedSupportedLocale = originalSupported;\n\t\t\t}\n\t\t});\n\t});\n\tif (lowestDistance >= threshold) {\n\t\tresult.matchedDesiredLocale = undefined;\n\t\tresult.matchedSupportedLocale = undefined;\n\t}\n\treturn result;\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX, findBestMatch } from \"./utils.js\";\n/**\n* https://tc39.es/ecma402/#sec-bestfitmatcher\n* @param availableLocales\n* @param requestedLocales\n* @param getDefaultLocale\n*/\nexport function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n\tlet foundLocale;\n\tlet extension;\n\tconst noExtensionLocales = [];\n\tconst noExtensionLocaleMap = requestedLocales.reduce((all, l) => {\n\t\tconst noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, \"\");\n\t\tnoExtensionLocales.push(noExtensionLocale);\n\t\tall[noExtensionLocale] = l;\n\t\treturn all;\n\t}, {});\n\tconst result = findBestMatch(noExtensionLocales, availableLocales);\n\tif (result.matchedSupportedLocale && result.matchedDesiredLocale) {\n\t\tfoundLocale = result.matchedSupportedLocale;\n\t\textension = noExtensionLocaleMap[result.matchedDesiredLocale].slice(result.matchedDesiredLocale.length) || undefined;\n\t}\n\tif (!foundLocale) {\n\t\treturn { locale: getDefaultLocale() };\n\t}\n\treturn {\n\t\tlocale: foundLocale,\n\t\textension\n\t};\n}\n","import { invariant } from \"./utils.js\";\nexport function CanonicalizeUValue(ukey, uvalue) {\n\t// TODO: Implement algorithm for CanonicalizeUValue per https://tc39.es/ecma402/#sec-canonicalizeuvalue\n\tlet lowerValue = uvalue.toLowerCase();\n\tinvariant(ukey !== undefined, `ukey must be defined`);\n\tlet canonicalized = lowerValue;\n\treturn canonicalized;\n}\n","export function CanonicalizeUnicodeLocaleId(locale) {\n\treturn Intl.getCanonicalLocales(locale)[0];\n}\n","import { CanonicalizeUnicodeLocaleId } from \"./CanonicalizeUnicodeLocaleId.js\";\nimport { invariant } from \"./utils.js\";\nexport function InsertUnicodeExtensionAndCanonicalize(locale, attributes, keywords) {\n\tinvariant(locale.indexOf(\"-u-\") === -1, \"Expected locale to not have a Unicode locale extension\");\n\tlet extension = \"-u\";\n\tfor (const attr of attributes) {\n\t\textension += `-${attr}`;\n\t}\n\tfor (const kw of keywords) {\n\t\tconst { key, value } = kw;\n\t\textension += `-${key}`;\n\t\tif (value !== \"\") {\n\t\t\textension += `-${value}`;\n\t\t}\n\t}\n\tif (extension === \"-u\") {\n\t\treturn CanonicalizeUnicodeLocaleId(locale);\n\t}\n\tlet privateIndex = locale.indexOf(\"-x-\");\n\tlet newLocale;\n\tif (privateIndex === -1) {\n\t\tnewLocale = locale + extension;\n\t} else {\n\t\tlet preExtension = locale.slice(0, privateIndex);\n\t\tlet postExtension = locale.slice(privateIndex);\n\t\tnewLocale = preExtension + extension + postExtension;\n\t}\n\treturn CanonicalizeUnicodeLocaleId(newLocale);\n}\n","// Cache for Set conversions to avoid repeated array->Set conversions\nconst availableLocalesSetCache = new WeakMap();\n/**\n* https://tc39.es/ecma402/#sec-bestavailablelocale\n* @param availableLocales\n* @param locale\n*/\nexport function BestAvailableLocale(availableLocales, locale) {\n\t// Fast path: use Set for O(1) lookups instead of O(n) indexOf\n\tlet availableSet = availableLocalesSetCache.get(availableLocales);\n\tif (!availableSet) {\n\t\tavailableSet = new Set(availableLocales);\n\t\tavailableLocalesSetCache.set(availableLocales, availableSet);\n\t}\n\tlet candidate = locale;\n\twhile (true) {\n\t\tif (availableSet.has(candidate)) {\n\t\t\treturn candidate;\n\t\t}\n\t\tlet pos = candidate.lastIndexOf(\"-\");\n\t\tif (!~pos) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (pos >= 2 && candidate[pos - 2] === \"-\") {\n\t\t\tpos -= 2;\n\t\t}\n\t\tcandidate = candidate.slice(0, pos);\n\t}\n}\n","import { BestAvailableLocale } from \"./BestAvailableLocale.js\";\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from \"./utils.js\";\n/**\n* https://tc39.es/ecma402/#sec-lookupmatcher\n* @param availableLocales\n* @param requestedLocales\n* @param getDefaultLocale\n*/\nexport function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n\tconst result = { locale: \"\" };\n\tfor (const locale of requestedLocales) {\n\t\tconst noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, \"\");\n\t\tconst availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n\t\tif (availableLocale) {\n\t\t\tresult.locale = availableLocale;\n\t\t\tif (locale !== noExtensionLocale) {\n\t\t\t\tresult.extension = locale.slice(noExtensionLocale.length, locale.length);\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\tresult.locale = getDefaultLocale();\n\treturn result;\n}\n","import { invariant } from \"./utils.js\";\nexport function UnicodeExtensionComponents(extension) {\n\tinvariant(extension === extension.toLowerCase(), \"Expected extension to be lowercase\");\n\tinvariant(extension.slice(0, 3) === \"-u-\", \"Expected extension to be a Unicode locale extension\");\n\tconst attributes = [];\n\tconst keywords = [];\n\tlet keyword;\n\tlet size = extension.length;\n\tlet k = 3;\n\twhile (k < size) {\n\t\tlet e = extension.indexOf(\"-\", k);\n\t\tlet len;\n\t\tif (e === -1) {\n\t\t\tlen = size - k;\n\t\t} else {\n\t\t\tlen = e - k;\n\t\t}\n\t\tlet subtag = extension.slice(k, k + len);\n\t\tinvariant(len >= 2, \"Expected a subtag to have at least 2 characters\");\n\t\tif (keyword === undefined && len != 2) {\n\t\t\tif (attributes.indexOf(subtag) === -1) {\n\t\t\t\tattributes.push(subtag);\n\t\t\t}\n\t\t} else if (len === 2) {\n\t\t\tkeyword = {\n\t\t\t\tkey: subtag,\n\t\t\t\tvalue: \"\"\n\t\t\t};\n\t\t\tif (keywords.find((k) => k.key === keyword?.key) === undefined) {\n\t\t\t\tkeywords.push(keyword);\n\t\t\t}\n\t\t} else if (keyword?.value === \"\") {\n\t\t\tkeyword.value = subtag;\n\t\t} else {\n\t\t\tinvariant(keyword !== undefined, \"Expected keyword to be defined\");\n\t\t\tkeyword.value += \"-\" + subtag;\n\t\t}\n\t\tk += len + 1;\n\t}\n\treturn {\n\t\tattributes,\n\t\tkeywords\n\t};\n}\n","import { BestFitMatcher } from \"./BestFitMatcher.js\";\nimport { CanonicalizeUValue } from \"./CanonicalizeUValue.js\";\nimport { InsertUnicodeExtensionAndCanonicalize } from \"./InsertUnicodeExtensionAndCanonicalize.js\";\nimport { LookupMatcher } from \"./LookupMatcher.js\";\nimport { UnicodeExtensionComponents } from \"./UnicodeExtensionComponents.js\";\nimport { invariant } from \"./utils.js\";\n/**\n* https://tc39.es/ecma402/#sec-resolvelocale\n*/\nexport function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {\n\tconst matcher = options.localeMatcher;\n\tlet r;\n\tif (matcher === \"lookup\") {\n\t\tr = LookupMatcher(Array.from(availableLocales), requestedLocales, getDefaultLocale);\n\t} else {\n\t\tr = BestFitMatcher(Array.from(availableLocales), requestedLocales, getDefaultLocale);\n\t}\n\tif (r == null) {\n\t\tr = {\n\t\t\tlocale: getDefaultLocale(),\n\t\t\textension: \"\"\n\t\t};\n\t}\n\tlet foundLocale = r.locale;\n\tlet foundLocaleData = localeData[foundLocale];\n\t// TODO: We can't really guarantee that the locale data is available\n\t// invariant(\n\t//   foundLocaleData !== undefined,\n\t//   `Missing locale data for ${foundLocale}`\n\t// )\n\tconst result = {\n\t\tlocale: \"en\",\n\t\tdataLocale: foundLocale\n\t};\n\tlet components;\n\tlet keywords;\n\tif (r.extension) {\n\t\tcomponents = UnicodeExtensionComponents(r.extension);\n\t\tkeywords = components.keywords;\n\t} else {\n\t\tkeywords = [];\n\t}\n\tlet supportedKeywords = [];\n\tfor (const key of relevantExtensionKeys) {\n\t\t// TODO: Shouldn't default to empty array, see TODO above\n\t\tlet keyLocaleData = foundLocaleData?.[key] ?? [];\n\t\tinvariant(Array.isArray(keyLocaleData), `keyLocaleData for ${key} must be an array`);\n\t\tlet value = keyLocaleData[0];\n\t\tinvariant(value === undefined || typeof value === \"string\", `value must be a string or undefined`);\n\t\tlet supportedKeyword;\n\t\tlet entry = keywords.find((k) => k.key === key);\n\t\tif (entry) {\n\t\t\tlet requestedValue = entry.value;\n\t\t\tif (requestedValue !== \"\") {\n\t\t\t\tif (keyLocaleData.indexOf(requestedValue) > -1) {\n\t\t\t\t\tvalue = requestedValue;\n\t\t\t\t\tsupportedKeyword = {\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} else if (keyLocaleData.indexOf(\"true\") > -1) {\n\t\t\t\tvalue = \"true\";\n\t\t\t\tsupportedKeyword = {\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tlet optionsValue = options[key];\n\t\tinvariant(optionsValue == null || typeof optionsValue === \"string\", `optionsValue must be a string or undefined`);\n\t\tif (typeof optionsValue === \"string\") {\n\t\t\tlet ukey = key.toLowerCase();\n\t\t\toptionsValue = CanonicalizeUValue(ukey, optionsValue);\n\t\t\tif (optionsValue === \"\") {\n\t\t\t\toptionsValue = \"true\";\n\t\t\t}\n\t\t}\n\t\tif (optionsValue !== value && keyLocaleData.indexOf(optionsValue) > -1) {\n\t\t\tvalue = optionsValue;\n\t\t\tsupportedKeyword = undefined;\n\t\t}\n\t\tif (supportedKeyword) {\n\t\t\tsupportedKeywords.push(supportedKeyword);\n\t\t}\n\t\tresult[key] = value;\n\t}\n\tlet supportedAttributes = [];\n\tif (supportedKeywords.length > 0) {\n\t\tsupportedAttributes = [];\n\t\tfoundLocale = InsertUnicodeExtensionAndCanonicalize(foundLocale, supportedAttributes, supportedKeywords);\n\t}\n\tresult.locale = foundLocale;\n\treturn result;\n}\n","import { BestAvailableLocale } from \"./BestAvailableLocale.js\";\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from \"./utils.js\";\n/**\n* https://tc39.es/ecma402/#sec-lookupsupportedlocales\n* @param availableLocales\n* @param requestedLocales\n*/\nexport function LookupSupportedLocales(availableLocales, requestedLocales) {\n\tconst subset = [];\n\tfor (const locale of requestedLocales) {\n\t\tconst noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, \"\");\n\t\tconst availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n\t\tif (availableLocale) {\n\t\t\tsubset.push(availableLocale);\n\t\t}\n\t}\n\treturn subset;\n}\n","import { LookupSupportedLocales } from \"@formatjs/intl-localematcher\";\nimport { ToObject } from \"./262.js\";\nimport { GetOption } from \"./GetOption.js\";\n/**\n* https://tc39.es/ecma402/#sec-supportedlocales\n* @param availableLocales\n* @param requestedLocales\n* @param options\n*/\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n\tlet matcher = \"best fit\";\n\tif (options !== undefined) {\n\t\toptions = ToObject(options);\n\t\tmatcher = GetOption(options, \"localeMatcher\", \"string\", [\"lookup\", \"best fit\"], \"best fit\");\n\t}\n\tif (matcher === \"best fit\") {\n\t\treturn LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n\t}\n\treturn LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n}\n","import { GetOption } from \"@formatjs/ecma402-abstract\";\nexport function GetDurationUnitOptions(unit, options, baseStyle, stylesList, digitalBase, prevStyle) {\n\tlet style = GetOption(options, unit, \"string\", stylesList, undefined);\n\tlet displayDefault = \"always\";\n\tif (style === undefined) {\n\t\tif (baseStyle === \"digital\") {\n\t\t\tif (unit !== \"hours\" && unit !== \"minutes\" && unit !== \"seconds\") {\n\t\t\t\tdisplayDefault = \"auto\";\n\t\t\t}\n\t\t\tstyle = digitalBase;\n\t\t} else {\n\t\t\tdisplayDefault = \"auto\";\n\t\t\tif (prevStyle === \"numeric\" || prevStyle === \"2-digit\") {\n\t\t\t\tstyle = \"numeric\";\n\t\t\t} else {\n\t\t\t\tstyle = baseStyle;\n\t\t\t}\n\t\t}\n\t}\n\tlet displayField = `${unit}Display`;\n\tlet display = GetOption(options, displayField, \"string\", [\"always\", \"auto\"], displayDefault);\n\tif (prevStyle === \"numeric\" || prevStyle === \"2-digit\") {\n\t\tif (style !== \"numeric\" && style !== \"2-digit\") {\n\t\t\tthrow new RangeError(\"Can't mix numeric and non-numeric styles\");\n\t\t} else if (unit === \"minutes\" || unit === \"seconds\") {\n\t\t\tstyle = \"2-digit\";\n\t\t}\n\t\tif (style === \"numeric\" && display === \"always\" && (unit === \"milliseconds\" || unit === \"microseconds\" || unit === \"nanoseconds\")) {\n\t\t\tthrow new RangeError(\"Can't display milliseconds, microseconds, or nanoseconds in numeric format\");\n\t\t}\n\t}\n\treturn {\n\t\tstyle,\n\t\tdisplay\n\t};\n}\n","import \"./types.js\";\nexport const TABLE_1 = [\n\t\"years\",\n\t\"months\",\n\t\"weeks\",\n\t\"days\",\n\t\"hours\",\n\t\"minutes\",\n\t\"seconds\",\n\t\"milliseconds\",\n\t\"microseconds\",\n\t\"nanoseconds\"\n];\nexport const TABLE_2 = [\n\t{\n\t\tvalueField: \"years\",\n\t\tstyleSlot: \"years\",\n\t\tdisplaySlot: \"yearsDisplay\",\n\t\tunit: \"years\",\n\t\tnumberFormatUnit: \"year\"\n\t},\n\t{\n\t\tvalueField: \"months\",\n\t\tstyleSlot: \"months\",\n\t\tdisplaySlot: \"monthsDisplay\",\n\t\tunit: \"months\",\n\t\tnumberFormatUnit: \"month\"\n\t},\n\t{\n\t\tvalueField: \"weeks\",\n\t\tstyleSlot: \"weeks\",\n\t\tdisplaySlot: \"weeksDisplay\",\n\t\tunit: \"weeks\",\n\t\tnumberFormatUnit: \"week\"\n\t},\n\t{\n\t\tvalueField: \"days\",\n\t\tstyleSlot: \"days\",\n\t\tdisplaySlot: \"daysDisplay\",\n\t\tunit: \"days\",\n\t\tnumberFormatUnit: \"day\"\n\t},\n\t{\n\t\tvalueField: \"hours\",\n\t\tstyleSlot: \"hours\",\n\t\tdisplaySlot: \"hoursDisplay\",\n\t\tunit: \"hours\",\n\t\tnumberFormatUnit: \"hour\"\n\t},\n\t{\n\t\tvalueField: \"minutes\",\n\t\tstyleSlot: \"minutes\",\n\t\tdisplaySlot: \"minutesDisplay\",\n\t\tunit: \"minutes\",\n\t\tnumberFormatUnit: \"minute\"\n\t},\n\t{\n\t\tvalueField: \"seconds\",\n\t\tstyleSlot: \"seconds\",\n\t\tdisplaySlot: \"secondsDisplay\",\n\t\tunit: \"seconds\",\n\t\tnumberFormatUnit: \"second\"\n\t},\n\t{\n\t\tvalueField: \"milliseconds\",\n\t\tstyleSlot: \"milliseconds\",\n\t\tdisplaySlot: \"millisecondsDisplay\",\n\t\tunit: \"milliseconds\",\n\t\tnumberFormatUnit: \"millisecond\"\n\t},\n\t{\n\t\tvalueField: \"microseconds\",\n\t\tstyleSlot: \"microseconds\",\n\t\tdisplaySlot: \"microsecondsDisplay\",\n\t\tunit: \"microseconds\",\n\t\tnumberFormatUnit: \"microsecond\"\n\t},\n\t{\n\t\tvalueField: \"nanoseconds\",\n\t\tstyleSlot: \"nanoseconds\",\n\t\tdisplaySlot: \"nanosecondsDisplay\",\n\t\tunit: \"nanoseconds\",\n\t\tnumberFormatUnit: \"nanosecond\"\n\t}\n];\n","const internalSlotMap = new WeakMap();\nexport function getInternalSlots(x) {\n\tlet internalSlots = internalSlotMap.get(x);\n\tif (!internalSlots) {\n\t\tinternalSlots = Object.create(null);\n\t\tinternalSlotMap.set(x, internalSlots);\n\t}\n\treturn internalSlots;\n}\n","import { createMemoizedListFormat, createMemoizedNumberFormat, invariant } from \"@formatjs/ecma402-abstract\";\nimport { TABLE_2 } from \"../constants.js\";\nimport { DurationFormat } from \"../core.js\";\nimport { getInternalSlots } from \"../get_internal_slots.js\";\nimport \"../types.js\";\nexport function PartitionDurationFormatPattern(df, duration) {\n\tconst result = [];\n\tlet done = false;\n\tlet separated = false;\n\tconst internalSlots = getInternalSlots(df);\n\tlet dataLocale = internalSlots.dataLocale;\n\tconst dataLocaleData = DurationFormat.localeData[dataLocale];\n\tif (!dataLocaleData) {\n\t\tthrow new TypeError(\"Invalid locale\");\n\t}\n\tconst numberingSystem = internalSlots.numberingSystem;\n\tconst separator = dataLocaleData.digitalFormat[numberingSystem];\n\tfor (let i = 0; i < TABLE_2.length && !done; i++) {\n\t\tconst row = TABLE_2[i];\n\t\tlet value = duration[row.valueField];\n\t\tconst style = internalSlots[row.styleSlot];\n\t\tconst display = internalSlots[row.displaySlot];\n\t\tconst { unit, numberFormatUnit } = row;\n\t\tconst nfOpts = Object.create(null);\n\t\tif (unit === \"seconds\" || unit === \"milliseconds\" || unit === \"microseconds\") {\n\t\t\tlet nextStyle;\n\t\t\tif (unit === \"seconds\") {\n\t\t\t\tnextStyle = internalSlots.milliseconds;\n\t\t\t} else if (unit === \"milliseconds\") {\n\t\t\t\tnextStyle = internalSlots.microseconds;\n\t\t\t} else {\n\t\t\t\tnextStyle = internalSlots.nanoseconds;\n\t\t\t}\n\t\t\tif (nextStyle === \"numeric\") {\n\t\t\t\tif (unit === \"seconds\") {\n\t\t\t\t\tvalue += duration.milliseconds / 1e3 + duration.microseconds / 1e6 + duration.nanoseconds / 1e9;\n\t\t\t\t} else if (unit === \"milliseconds\") {\n\t\t\t\t\tvalue += duration.microseconds / 1e3 + duration.nanoseconds / 1e6;\n\t\t\t\t} else {\n\t\t\t\t\tvalue += duration.nanoseconds / 1e3;\n\t\t\t\t}\n\t\t\t\tif (internalSlots.fractionalDigits === undefined) {\n\t\t\t\t\tnfOpts.maximumFractionDigits = 9;\n\t\t\t\t\tnfOpts.minimumFractionDigits = 0;\n\t\t\t\t} else {\n\t\t\t\t\tnfOpts.maximumFractionDigits = internalSlots.fractionalDigits;\n\t\t\t\t\tnfOpts.minimumFractionDigits = internalSlots.fractionalDigits;\n\t\t\t\t}\n\t\t\t\tnfOpts.roundingMode = \"trunc\";\n\t\t\t\tdone = true;\n\t\t\t}\n\t\t}\n\t\tif (value !== 0 || display !== \"auto\") {\n\t\t\tnfOpts.numberingSystem = internalSlots.numberingSystem;\n\t\t\tif (style === \"2-digit\") {\n\t\t\t\tnfOpts.minimumIntegerDigits = 2;\n\t\t\t}\n\t\t\tif (style !== \"2-digit\" && style !== \"numeric\") {\n\t\t\t\tnfOpts.style = \"unit\";\n\t\t\t\tnfOpts.unit = numberFormatUnit;\n\t\t\t\tnfOpts.unitDisplay = style;\n\t\t\t}\n\t\t\tconst nf = createMemoizedNumberFormat(internalSlots.locale, nfOpts);\n\t\t\tlet list;\n\t\t\tif (!separated) {\n\t\t\t\tlist = [];\n\t\t\t} else {\n\t\t\t\tlist = result[result.length - 1];\n\t\t\t\tlist.push({\n\t\t\t\t\ttype: \"literal\",\n\t\t\t\t\tvalue: separator\n\t\t\t\t});\n\t\t\t}\n\t\t\tlet parts = nf.formatToParts(value);\n\t\t\tparts.forEach(({ type, value }) => {\n\t\t\t\tlist.push({\n\t\t\t\t\ttype,\n\t\t\t\t\tvalue,\n\t\t\t\t\tunit: numberFormatUnit\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (!separated) {\n\t\t\t\tif (style === \"2-digit\" || style === \"numeric\") {\n\t\t\t\t\tseparated = true;\n\t\t\t\t}\n\t\t\t\tresult.push(list);\n\t\t\t}\n\t\t} else {\n\t\t\tseparated = false;\n\t\t}\n\t}\n\tconst lfOpts = Object.create(null);\n\tlfOpts.type = \"unit\";\n\tlet listStyle = internalSlots.style;\n\tif (listStyle === \"digital\") {\n\t\tlistStyle = \"short\";\n\t}\n\tlfOpts.style = listStyle;\n\tconst lf = createMemoizedListFormat(internalSlots.locale, lfOpts);\n\tconst strings = [];\n\tfor (const parts of result) {\n\t\tlet string = \"\";\n\t\tfor (const { value } of parts) {\n\t\t\tstring += value;\n\t\t}\n\t\tstrings.push(string);\n\t}\n\tlet formatted = lf.formatToParts(strings);\n\tlet resultIndex = 0;\n\tlet resultLength = result.length;\n\tlet flattened = [];\n\tfor (const { type, value } of formatted) {\n\t\tif (type === \"element\") {\n\t\t\tinvariant(resultIndex < resultLength, \"Index out of bounds\");\n\t\t\tlet parts = result[resultIndex];\n\t\t\tfor (const part of parts) {\n\t\t\t\tflattened.push(part);\n\t\t\t}\n\t\t\tresultIndex++;\n\t\t} else {\n\t\t\tinvariant(type === \"literal\", \"Type must be literal\");\n\t\t\tflattened.push({\n\t\t\t\ttype: \"literal\",\n\t\t\t\tvalue\n\t\t\t});\n\t\t}\n\t}\n\treturn flattened;\n}\n","import { TABLE_1 } from \"../constants.js\";\nimport \"../types.js\";\nexport function DurationRecordSign(record) {\n\tfor (const key of TABLE_1) {\n\t\tif (record[key] < 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (record[key] > 0) {\n\t\t\treturn 1;\n\t\t}\n\t}\n\treturn 0;\n}\n","import { invariant } from \"@formatjs/ecma402-abstract\";\nimport { TABLE_1 } from \"../constants.js\";\nimport \"../types.js\";\nimport { DurationRecordSign } from \"./DurationRecordSign.js\";\nexport function IsValidDurationRecord(record) {\n\tconst sign = DurationRecordSign(record);\n\tfor (const key of TABLE_1) {\n\t\tconst v = record[key];\n\t\tinvariant(isFinite(Number(v)), `${key} is not finite`);\n\t\tif (v < 0 && sign > 0) {\n\t\t\treturn false;\n\t\t}\n\t\tif (v > 0 && sign < 0) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n","import { invariant, ToNumber } from \"@formatjs/ecma402-abstract\";\nexport function ToIntegerIfIntegral(arg) {\n\tconst number = ToNumber(arg);\n\tinvariant(number.isInteger(), `${arg} is not an integer`);\n\treturn number.toNumber();\n}\n","import \"../types.js\";\nimport { IsValidDurationRecord } from \"./IsValidDurationRecord.js\";\nimport { ToIntegerIfIntegral } from \"./ToIntegerIfIntegral.js\";\nexport function ToDurationRecord(input) {\n\tif (typeof input !== \"object\") {\n\t\tif (typeof input === \"string\") {\n\t\t\tthrow new RangeError(\"Invalid duration format\");\n\t\t}\n\t\tthrow new TypeError(\"Invalid duration\");\n\t}\n\tconst result = {\n\t\tyears: 0,\n\t\tmonths: 0,\n\t\tweeks: 0,\n\t\tdays: 0,\n\t\thours: 0,\n\t\tminutes: 0,\n\t\tseconds: 0,\n\t\tmilliseconds: 0,\n\t\tmicroseconds: 0,\n\t\tnanoseconds: 0\n\t};\n\tif (input.days !== undefined) {\n\t\tresult.days = ToIntegerIfIntegral(input.days);\n\t}\n\tif (input.hours !== undefined) {\n\t\tresult.hours = ToIntegerIfIntegral(input.hours);\n\t}\n\tif (input.microseconds !== undefined) {\n\t\tresult.microseconds = ToIntegerIfIntegral(input.microseconds);\n\t}\n\tif (input.milliseconds !== undefined) {\n\t\tresult.milliseconds = ToIntegerIfIntegral(input.milliseconds);\n\t}\n\tif (input.minutes !== undefined) {\n\t\tresult.minutes = ToIntegerIfIntegral(input.minutes);\n\t}\n\tif (input.months !== undefined) {\n\t\tresult.months = ToIntegerIfIntegral(input.months);\n\t}\n\tif (input.nanoseconds !== undefined) {\n\t\tresult.nanoseconds = ToIntegerIfIntegral(input.nanoseconds);\n\t}\n\tif (input.seconds !== undefined) {\n\t\tresult.seconds = ToIntegerIfIntegral(input.seconds);\n\t}\n\tif (input.weeks !== undefined) {\n\t\tresult.weeks = ToIntegerIfIntegral(input.weeks);\n\t}\n\tif (input.years !== undefined) {\n\t\tresult.years = ToIntegerIfIntegral(input.years);\n\t}\n\tif (input.years === undefined && input.months === undefined && input.weeks === undefined && input.days === undefined && input.hours === undefined && input.minutes === undefined && input.seconds === undefined && input.milliseconds === undefined && input.microseconds === undefined && input.nanoseconds === undefined) {\n\t\tthrow new TypeError(\"Invalid duration format\");\n\t}\n\tif (!IsValidDurationRecord(result)) {\n\t\tthrow new RangeError(\"Invalid duration format\");\n\t}\n\treturn result;\n}\n","export const numberingSystemNames = [\n\t\"adlm\",\n\t\"ahom\",\n\t\"arab\",\n\t\"arabext\",\n\t\"armn\",\n\t\"armnlow\",\n\t\"bali\",\n\t\"beng\",\n\t\"bhks\",\n\t\"brah\",\n\t\"cakm\",\n\t\"cham\",\n\t\"cyrl\",\n\t\"deva\",\n\t\"diak\",\n\t\"ethi\",\n\t\"fullwide\",\n\t\"gara\",\n\t\"geor\",\n\t\"gong\",\n\t\"gonm\",\n\t\"grek\",\n\t\"greklow\",\n\t\"gujr\",\n\t\"gukh\",\n\t\"guru\",\n\t\"hanidays\",\n\t\"hanidec\",\n\t\"hans\",\n\t\"hansfin\",\n\t\"hant\",\n\t\"hantfin\",\n\t\"hebr\",\n\t\"hmng\",\n\t\"hmnp\",\n\t\"java\",\n\t\"jpan\",\n\t\"jpanfin\",\n\t\"jpanyear\",\n\t\"kali\",\n\t\"kawi\",\n\t\"khmr\",\n\t\"knda\",\n\t\"krai\",\n\t\"lana\",\n\t\"lanatham\",\n\t\"laoo\",\n\t\"latn\",\n\t\"lepc\",\n\t\"limb\",\n\t\"mathbold\",\n\t\"mathdbl\",\n\t\"mathmono\",\n\t\"mathsanb\",\n\t\"mathsans\",\n\t\"mlym\",\n\t\"modi\",\n\t\"mong\",\n\t\"mroo\",\n\t\"mtei\",\n\t\"mymr\",\n\t\"mymrepka\",\n\t\"mymrpao\",\n\t\"mymrshan\",\n\t\"mymrtlng\",\n\t\"nagm\",\n\t\"newa\",\n\t\"nkoo\",\n\t\"olck\",\n\t\"onao\",\n\t\"orya\",\n\t\"osma\",\n\t\"outlined\",\n\t\"rohg\",\n\t\"roman\",\n\t\"romanlow\",\n\t\"saur\",\n\t\"segment\",\n\t\"shrd\",\n\t\"sind\",\n\t\"sinh\",\n\t\"sora\",\n\t\"sund\",\n\t\"sunu\",\n\t\"takr\",\n\t\"talu\",\n\t\"taml\",\n\t\"tamldec\",\n\t\"telu\",\n\t\"thai\",\n\t\"tibt\",\n\t\"tirh\",\n\t\"tnsa\",\n\t\"tols\",\n\t\"vaii\",\n\t\"wara\",\n\t\"wcho\"\n];\n","/* @generated */\n// prettier-ignore\nexport const TIME_SEPARATORS = {\n\t\"default\": \":\",\n\t\"localeData\": {\n\t\t\"aa\": { \"nu\": [\"latn\"] },\n\t\t\"aa-DJ\": { \"nu\": [\"latn\"] },\n\t\t\"aa-ER\": { \"nu\": [\"latn\"] },\n\t\t\"ab\": { \"nu\": [\"latn\"] },\n\t\t\"af\": { \"nu\": [\"latn\"] },\n\t\t\"af-NA\": { \"nu\": [\"latn\"] },\n\t\t\"agq\": { \"nu\": [\"latn\"] },\n\t\t\"ak\": { \"nu\": [\"latn\"] },\n\t\t\"am\": { \"nu\": [\"latn\"] },\n\t\t\"an\": { \"nu\": [\"latn\"] },\n\t\t\"ann\": { \"nu\": [\"latn\"] },\n\t\t\"apc\": { \"nu\": [\"latn\"] },\n\t\t\"ar\": { \"nu\": [\"latn\", \"latn\"] },\n\t\t\"ar-AE\": { \"nu\": [\"latn\", \"latn\"] },\n\t\t\"ar-BH\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-DJ\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-DZ\": { \"nu\": [\"latn\", \"latn\"] },\n\t\t\"ar-EG\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-EH\": { \"nu\": [\"latn\", \"latn\"] },\n\t\t\"ar-ER\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-IL\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-IQ\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-JO\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-KM\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-KW\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-LB\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-LY\": { \"nu\": [\"latn\", \"latn\"] },\n\t\t\"ar-MA\": { \"nu\": [\"latn\", \"latn\"] },\n\t\t\"ar-MR\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-OM\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-PS\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-QA\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-SA\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-SD\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-SO\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-SS\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-SY\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-TD\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"ar-TN\": { \"nu\": [\"latn\", \"latn\"] },\n\t\t\"ar-YE\": { \"nu\": [\"arab\", \"latn\"] },\n\t\t\"arn\": { \"nu\": [\"latn\"] },\n\t\t\"as\": { \"nu\": [\"beng\"] },\n\t\t\"asa\": { \"nu\": [\"latn\"] },\n\t\t\"ast\": { \"nu\": [\"latn\"] },\n\t\t\"az\": { \"nu\": [\"latn\"] },\n\t\t\"az-Arab\": { \"nu\": [\"arabext\"] },\n\t\t\"az-Arab-IQ\": { \"nu\": [\"arabext\"] },\n\t\t\"az-Arab-TR\": { \"nu\": [\"arabext\"] },\n\t\t\"az-Cyrl\": { \"nu\": [\"latn\"] },\n\t\t\"az-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"ba\": { \"nu\": [\"latn\"] },\n\t\t\"bal\": { \"nu\": [\"latn\"] },\n\t\t\"bal-Arab\": { \"nu\": [\"latn\"] },\n\t\t\"bal-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"bas\": { \"nu\": [\"latn\"] },\n\t\t\"be\": { \"nu\": [\"latn\"] },\n\t\t\"be-tarask\": { \"nu\": [\"latn\"] },\n\t\t\"bem\": { \"nu\": [\"latn\"] },\n\t\t\"bew\": { \"nu\": [\"latn\"] },\n\t\t\"bez\": { \"nu\": [\"latn\"] },\n\t\t\"bg\": { \"nu\": [\"latn\"] },\n\t\t\"bgc\": { \"nu\": [\"deva\"] },\n\t\t\"bgn\": { \"nu\": [\"arabext\"] },\n\t\t\"bgn-AE\": { \"nu\": [\"arabext\"] },\n\t\t\"bgn-AF\": { \"nu\": [\"arabext\"] },\n\t\t\"bgn-IR\": { \"nu\": [\"arabext\"] },\n\t\t\"bgn-OM\": { \"nu\": [\"arabext\"] },\n\t\t\"bho\": { \"nu\": [\"deva\"] },\n\t\t\"blo\": { \"nu\": [\"latn\"] },\n\t\t\"blt\": { \"nu\": [\"latn\"] },\n\t\t\"bm\": { \"nu\": [\"latn\"] },\n\t\t\"bm-Nkoo\": { \"nu\": [\"latn\"] },\n\t\t\"bn\": { \"nu\": [\"beng\"] },\n\t\t\"bn-IN\": { \"nu\": [\"beng\"] },\n\t\t\"bo\": { \"nu\": [\"latn\"] },\n\t\t\"bo-IN\": { \"nu\": [\"latn\"] },\n\t\t\"bqi\": { \"nu\": [\"latn\"] },\n\t\t\"br\": { \"nu\": [\"latn\"] },\n\t\t\"brx\": { \"nu\": [\"latn\"] },\n\t\t\"bs\": { \"nu\": [\"latn\"] },\n\t\t\"bs-Cyrl\": { \"nu\": [\"latn\"] },\n\t\t\"bs-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"bss\": { \"nu\": [\"latn\"] },\n\t\t\"bua\": { \"nu\": [\"latn\"] },\n\t\t\"byn\": { \"nu\": [\"latn\"] },\n\t\t\"ca\": { \"nu\": [\"latn\"] },\n\t\t\"ca-AD\": { \"nu\": [\"latn\"] },\n\t\t\"ca-ES-valencia\": { \"nu\": [\"latn\"] },\n\t\t\"ca-FR\": { \"nu\": [\"latn\"] },\n\t\t\"ca-IT\": { \"nu\": [\"latn\"] },\n\t\t\"cad\": { \"nu\": [\"latn\"] },\n\t\t\"cch\": { \"nu\": [\"latn\"] },\n\t\t\"ccp\": { \"nu\": [\"cakm\"] },\n\t\t\"ccp-IN\": { \"nu\": [\"cakm\"] },\n\t\t\"ce\": { \"nu\": [\"latn\"] },\n\t\t\"ceb\": { \"nu\": [\"latn\"] },\n\t\t\"cgg\": { \"nu\": [\"latn\"] },\n\t\t\"cho\": { \"nu\": [\"latn\"] },\n\t\t\"chr\": { \"nu\": [\"latn\"] },\n\t\t\"cic\": { \"nu\": [\"latn\"] },\n\t\t\"ckb\": { \"nu\": [\"arab\"] },\n\t\t\"ckb-IR\": { \"nu\": [\"arab\"] },\n\t\t\"co\": { \"nu\": [\"latn\"] },\n\t\t\"cop\": { \"nu\": [\"latn\"] },\n\t\t\"cs\": { \"nu\": [\"latn\"] },\n\t\t\"csw\": { \"nu\": [\"latn\"] },\n\t\t\"cu\": { \"nu\": [\"latn\"] },\n\t\t\"cv\": { \"nu\": [\"latn\"] },\n\t\t\"cy\": { \"nu\": [\"latn\"] },\n\t\t\"da\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"da-GL\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"dav\": { \"nu\": [\"latn\"] },\n\t\t\"de\": { \"nu\": [\"latn\"] },\n\t\t\"de-AT\": { \"nu\": [\"latn\"] },\n\t\t\"de-BE\": { \"nu\": [\"latn\"] },\n\t\t\"de-CH\": { \"nu\": [\"latn\"] },\n\t\t\"de-IT\": { \"nu\": [\"latn\"] },\n\t\t\"de-LI\": { \"nu\": [\"latn\"] },\n\t\t\"de-LU\": { \"nu\": [\"latn\"] },\n\t\t\"dje\": { \"nu\": [\"latn\"] },\n\t\t\"doi\": { \"nu\": [\"latn\"] },\n\t\t\"dsb\": { \"nu\": [\"latn\"] },\n\t\t\"dua\": { \"nu\": [\"latn\"] },\n\t\t\"dv\": { \"nu\": [\"latn\"] },\n\t\t\"dyo\": { \"nu\": [\"latn\"] },\n\t\t\"dz\": { \"nu\": [\"tibt\"] },\n\t\t\"ebu\": { \"nu\": [\"latn\"] },\n\t\t\"ee\": { \"nu\": [\"latn\"] },\n\t\t\"ee-TG\": { \"nu\": [\"latn\"] },\n\t\t\"el\": { \"nu\": [\"latn\"] },\n\t\t\"el-CY\": { \"nu\": [\"latn\"] },\n\t\t\"el-polyton\": { \"nu\": [\"latn\"] },\n\t\t\"en\": { \"nu\": [\"latn\"] },\n\t\t\"en-001\": { \"nu\": [\"latn\"] },\n\t\t\"en-150\": { \"nu\": [\"latn\"] },\n\t\t\"en-AE\": { \"nu\": [\"latn\"] },\n\t\t\"en-AG\": { \"nu\": [\"latn\"] },\n\t\t\"en-AI\": { \"nu\": [\"latn\"] },\n\t\t\"en-AS\": { \"nu\": [\"latn\"] },\n\t\t\"en-AT\": { \"nu\": [\"latn\"] },\n\t\t\"en-AU\": { \"nu\": [\"latn\"] },\n\t\t\"en-BB\": { \"nu\": [\"latn\"] },\n\t\t\"en-BE\": { \"nu\": [\"latn\"] },\n\t\t\"en-BI\": { \"nu\": [\"latn\"] },\n\t\t\"en-BM\": { \"nu\": [\"latn\"] },\n\t\t\"en-BS\": { \"nu\": [\"latn\"] },\n\t\t\"en-BW\": { \"nu\": [\"latn\"] },\n\t\t\"en-BZ\": { \"nu\": [\"latn\"] },\n\t\t\"en-CA\": { \"nu\": [\"latn\"] },\n\t\t\"en-CC\": { \"nu\": [\"latn\"] },\n\t\t\"en-CH\": { \"nu\": [\"latn\"] },\n\t\t\"en-CK\": { \"nu\": [\"latn\"] },\n\t\t\"en-CM\": { \"nu\": [\"latn\"] },\n\t\t\"en-CX\": { \"nu\": [\"latn\"] },\n\t\t\"en-CY\": { \"nu\": [\"latn\"] },\n\t\t\"en-CZ\": { \"nu\": [\"latn\"] },\n\t\t\"en-DE\": { \"nu\": [\"latn\"] },\n\t\t\"en-DG\": { \"nu\": [\"latn\"] },\n\t\t\"en-DK\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"en-DM\": { \"nu\": [\"latn\"] },\n\t\t\"en-Dsrt\": { \"nu\": [\"latn\"] },\n\t\t\"en-EE\": { \"nu\": [\"latn\"] },\n\t\t\"en-ER\": { \"nu\": [\"latn\"] },\n\t\t\"en-ES\": { \"nu\": [\"latn\"] },\n\t\t\"en-FI\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"en-FJ\": { \"nu\": [\"latn\"] },\n\t\t\"en-FK\": { \"nu\": [\"latn\"] },\n\t\t\"en-FM\": { \"nu\": [\"latn\"] },\n\t\t\"en-FR\": { \"nu\": [\"latn\"] },\n\t\t\"en-GB\": { \"nu\": [\"latn\"] },\n\t\t\"en-GD\": { \"nu\": [\"latn\"] },\n\t\t\"en-GE\": { \"nu\": [\"latn\"] },\n\t\t\"en-GG\": { \"nu\": [\"latn\"] },\n\t\t\"en-GH\": { \"nu\": [\"latn\"] },\n\t\t\"en-GI\": { \"nu\": [\"latn\"] },\n\t\t\"en-GM\": { \"nu\": [\"latn\"] },\n\t\t\"en-GS\": { \"nu\": [\"latn\"] },\n\t\t\"en-GU\": { \"nu\": [\"latn\"] },\n\t\t\"en-GY\": { \"nu\": [\"latn\"] },\n\t\t\"en-HK\": { \"nu\": [\"latn\"] },\n\t\t\"en-HU\": { \"nu\": [\"latn\"] },\n\t\t\"en-ID\": { \"nu\": [\"latn\"] },\n\t\t\"en-IE\": { \"nu\": [\"latn\"] },\n\t\t\"en-IL\": { \"nu\": [\"latn\"] },\n\t\t\"en-IM\": { \"nu\": [\"latn\"] },\n\t\t\"en-IN\": { \"nu\": [\"latn\"] },\n\t\t\"en-IO\": { \"nu\": [\"latn\"] },\n\t\t\"en-IT\": { \"nu\": [\"latn\"] },\n\t\t\"en-JE\": { \"nu\": [\"latn\"] },\n\t\t\"en-JM\": { \"nu\": [\"latn\"] },\n\t\t\"en-JP\": { \"nu\": [\"latn\"] },\n\t\t\"en-KE\": { \"nu\": [\"latn\"] },\n\t\t\"en-KI\": { \"nu\": [\"latn\"] },\n\t\t\"en-KN\": { \"nu\": [\"latn\"] },\n\t\t\"en-KY\": { \"nu\": [\"latn\"] },\n\t\t\"en-LC\": { \"nu\": [\"latn\"] },\n\t\t\"en-LR\": { \"nu\": [\"latn\"] },\n\t\t\"en-LS\": { \"nu\": [\"latn\"] },\n\t\t\"en-LT\": { \"nu\": [\"latn\"] },\n\t\t\"en-LV\": { \"nu\": [\"latn\"] },\n\t\t\"en-MG\": { \"nu\": [\"latn\"] },\n\t\t\"en-MH\": { \"nu\": [\"latn\"] },\n\t\t\"en-MO\": { \"nu\": [\"latn\"] },\n\t\t\"en-MP\": { \"nu\": [\"latn\"] },\n\t\t\"en-MS\": { \"nu\": [\"latn\"] },\n\t\t\"en-MT\": { \"nu\": [\"latn\"] },\n\t\t\"en-MU\": { \"nu\": [\"latn\"] },\n\t\t\"en-MV\": { \"nu\": [\"latn\"] },\n\t\t\"en-MW\": { \"nu\": [\"latn\"] },\n\t\t\"en-MY\": { \"nu\": [\"latn\"] },\n\t\t\"en-NA\": { \"nu\": [\"latn\"] },\n\t\t\"en-NF\": { \"nu\": [\"latn\"] },\n\t\t\"en-NG\": { \"nu\": [\"latn\"] },\n\t\t\"en-NL\": { \"nu\": [\"latn\"] },\n\t\t\"en-NO\": { \"nu\": [\"latn\"] },\n\t\t\"en-NR\": { \"nu\": [\"latn\"] },\n\t\t\"en-NU\": { \"nu\": [\"latn\"] },\n\t\t\"en-NZ\": { \"nu\": [\"latn\"] },\n\t\t\"en-PG\": { \"nu\": [\"latn\"] },\n\t\t\"en-PH\": { \"nu\": [\"latn\"] },\n\t\t\"en-PK\": { \"nu\": [\"latn\"] },\n\t\t\"en-PL\": { \"nu\": [\"latn\"] },\n\t\t\"en-PN\": { \"nu\": [\"latn\"] },\n\t\t\"en-PR\": { \"nu\": [\"latn\"] },\n\t\t\"en-PT\": { \"nu\": [\"latn\"] },\n\t\t\"en-PW\": { \"nu\": [\"latn\"] },\n\t\t\"en-RO\": { \"nu\": [\"latn\"] },\n\t\t\"en-RW\": { \"nu\": [\"latn\"] },\n\t\t\"en-SB\": { \"nu\": [\"latn\"] },\n\t\t\"en-SC\": { \"nu\": [\"latn\"] },\n\t\t\"en-SD\": { \"nu\": [\"latn\"] },\n\t\t\"en-SE\": { \"nu\": [\"latn\"] },\n\t\t\"en-SG\": { \"nu\": [\"latn\"] },\n\t\t\"en-SH\": { \"nu\": [\"latn\"] },\n\t\t\"en-SI\": { \"nu\": [\"latn\"] },\n\t\t\"en-SK\": { \"nu\": [\"latn\"] },\n\t\t\"en-SL\": { \"nu\": [\"latn\"] },\n\t\t\"en-SS\": { \"nu\": [\"latn\"] },\n\t\t\"en-SX\": { \"nu\": [\"latn\"] },\n\t\t\"en-SZ\": { \"nu\": [\"latn\"] },\n\t\t\"en-Shaw\": { \"nu\": [\"latn\"] },\n\t\t\"en-TC\": { \"nu\": [\"latn\"] },\n\t\t\"en-TK\": { \"nu\": [\"latn\"] },\n\t\t\"en-TO\": { \"nu\": [\"latn\"] },\n\t\t\"en-TT\": { \"nu\": [\"latn\"] },\n\t\t\"en-TV\": { \"nu\": [\"latn\"] },\n\t\t\"en-TZ\": { \"nu\": [\"latn\"] },\n\t\t\"en-UA\": { \"nu\": [\"latn\"] },\n\t\t\"en-UG\": { \"nu\": [\"latn\"] },\n\t\t\"en-UM\": { \"nu\": [\"latn\"] },\n\t\t\"en-VC\": { \"nu\": [\"latn\"] },\n\t\t\"en-VG\": { \"nu\": [\"latn\"] },\n\t\t\"en-VI\": { \"nu\": [\"latn\"] },\n\t\t\"en-VU\": { \"nu\": [\"latn\"] },\n\t\t\"en-WS\": { \"nu\": [\"latn\"] },\n\t\t\"en-ZA\": { \"nu\": [\"latn\"] },\n\t\t\"en-ZM\": { \"nu\": [\"latn\"] },\n\t\t\"en-ZW\": { \"nu\": [\"latn\"] },\n\t\t\"eo\": { \"nu\": [\"latn\"] },\n\t\t\"es\": { \"nu\": [\"latn\"] },\n\t\t\"es-419\": { \"nu\": [\"latn\"] },\n\t\t\"es-AR\": { \"nu\": [\"latn\"] },\n\t\t\"es-BO\": { \"nu\": [\"latn\"] },\n\t\t\"es-BR\": { \"nu\": [\"latn\"] },\n\t\t\"es-BZ\": { \"nu\": [\"latn\"] },\n\t\t\"es-CL\": { \"nu\": [\"latn\"] },\n\t\t\"es-CO\": { \"nu\": [\"latn\"] },\n\t\t\"es-CR\": { \"nu\": [\"latn\"] },\n\t\t\"es-CU\": { \"nu\": [\"latn\"] },\n\t\t\"es-DO\": { \"nu\": [\"latn\"] },\n\t\t\"es-EA\": { \"nu\": [\"latn\"] },\n\t\t\"es-EC\": { \"nu\": [\"latn\"] },\n\t\t\"es-GQ\": { \"nu\": [\"latn\"] },\n\t\t\"es-GT\": { \"nu\": [\"latn\"] },\n\t\t\"es-HN\": { \"nu\": [\"latn\"] },\n\t\t\"es-IC\": { \"nu\": [\"latn\"] },\n\t\t\"es-MX\": { \"nu\": [\"latn\"] },\n\t\t\"es-NI\": { \"nu\": [\"latn\"] },\n\t\t\"es-PA\": { \"nu\": [\"latn\"] },\n\t\t\"es-PE\": { \"nu\": [\"latn\"] },\n\t\t\"es-PH\": { \"nu\": [\"latn\"] },\n\t\t\"es-PR\": { \"nu\": [\"latn\"] },\n\t\t\"es-PY\": { \"nu\": [\"latn\"] },\n\t\t\"es-SV\": { \"nu\": [\"latn\"] },\n\t\t\"es-US\": { \"nu\": [\"latn\"] },\n\t\t\"es-UY\": { \"nu\": [\"latn\"] },\n\t\t\"es-VE\": { \"nu\": [\"latn\"] },\n\t\t\"et\": { \"nu\": [\"latn\"] },\n\t\t\"eu\": { \"nu\": [\"latn\"] },\n\t\t\"ewo\": { \"nu\": [\"latn\"] },\n\t\t\"fa\": { \"nu\": [\"arabext\"] },\n\t\t\"fa-AF\": { \"nu\": [\"arabext\"] },\n\t\t\"ff\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Adlm\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-BF\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-CM\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-GH\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-GM\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-GW\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-LR\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-MR\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-NE\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-NG\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-SL\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Adlm-SN\": { \"nu\": [\"adlm\"] },\n\t\t\"ff-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-BF\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-CM\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-GH\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-GM\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-GN\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-GW\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-LR\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-MR\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-NE\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-NG\": { \"nu\": [\"latn\"] },\n\t\t\"ff-Latn-SL\": { \"nu\": [\"latn\"] },\n\t\t\"fi\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"fil\": { \"nu\": [\"latn\"] },\n\t\t\"fo\": { \"nu\": [\"latn\"] },\n\t\t\"fo-DK\": { \"nu\": [\"latn\"] },\n\t\t\"fr\": { \"nu\": [\"latn\"] },\n\t\t\"fr-BE\": { \"nu\": [\"latn\"] },\n\t\t\"fr-BF\": { \"nu\": [\"latn\"] },\n\t\t\"fr-BI\": { \"nu\": [\"latn\"] },\n\t\t\"fr-BJ\": { \"nu\": [\"latn\"] },\n\t\t\"fr-BL\": { \"nu\": [\"latn\"] },\n\t\t\"fr-CA\": { \"nu\": [\"latn\"] },\n\t\t\"fr-CD\": { \"nu\": [\"latn\"] },\n\t\t\"fr-CF\": { \"nu\": [\"latn\"] },\n\t\t\"fr-CG\": { \"nu\": [\"latn\"] },\n\t\t\"fr-CH\": { \"nu\": [\"latn\"] },\n\t\t\"fr-CI\": { \"nu\": [\"latn\"] },\n\t\t\"fr-CM\": { \"nu\": [\"latn\"] },\n\t\t\"fr-DJ\": { \"nu\": [\"latn\"] },\n\t\t\"fr-DZ\": { \"nu\": [\"latn\"] },\n\t\t\"fr-GA\": { \"nu\": [\"latn\"] },\n\t\t\"fr-GF\": { \"nu\": [\"latn\"] },\n\t\t\"fr-GN\": { \"nu\": [\"latn\"] },\n\t\t\"fr-GP\": { \"nu\": [\"latn\"] },\n\t\t\"fr-GQ\": { \"nu\": [\"latn\"] },\n\t\t\"fr-HT\": { \"nu\": [\"latn\"] },\n\t\t\"fr-KM\": { \"nu\": [\"latn\"] },\n\t\t\"fr-LU\": { \"nu\": [\"latn\"] },\n\t\t\"fr-MA\": { \"nu\": [\"latn\"] },\n\t\t\"fr-MC\": { \"nu\": [\"latn\"] },\n\t\t\"fr-MF\": { \"nu\": [\"latn\"] },\n\t\t\"fr-MG\": { \"nu\": [\"latn\"] },\n\t\t\"fr-ML\": { \"nu\": [\"latn\"] },\n\t\t\"fr-MQ\": { \"nu\": [\"latn\"] },\n\t\t\"fr-MR\": { \"nu\": [\"latn\"] },\n\t\t\"fr-MU\": { \"nu\": [\"latn\"] },\n\t\t\"fr-NC\": { \"nu\": [\"latn\"] },\n\t\t\"fr-NE\": { \"nu\": [\"latn\"] },\n\t\t\"fr-PF\": { \"nu\": [\"latn\"] },\n\t\t\"fr-PM\": { \"nu\": [\"latn\"] },\n\t\t\"fr-RE\": { \"nu\": [\"latn\"] },\n\t\t\"fr-RW\": { \"nu\": [\"latn\"] },\n\t\t\"fr-SC\": { \"nu\": [\"latn\"] },\n\t\t\"fr-SN\": { \"nu\": [\"latn\"] },\n\t\t\"fr-SY\": { \"nu\": [\"latn\"] },\n\t\t\"fr-TD\": { \"nu\": [\"latn\"] },\n\t\t\"fr-TG\": { \"nu\": [\"latn\"] },\n\t\t\"fr-TN\": { \"nu\": [\"latn\"] },\n\t\t\"fr-VU\": { \"nu\": [\"latn\"] },\n\t\t\"fr-WF\": { \"nu\": [\"latn\"] },\n\t\t\"fr-YT\": { \"nu\": [\"latn\"] },\n\t\t\"frr\": { \"nu\": [\"latn\"] },\n\t\t\"fur\": { \"nu\": [\"latn\"] },\n\t\t\"fy\": { \"nu\": [\"latn\"] },\n\t\t\"ga\": { \"nu\": [\"latn\"] },\n\t\t\"ga-GB\": { \"nu\": [\"latn\"] },\n\t\t\"gaa\": { \"nu\": [\"latn\"] },\n\t\t\"gd\": { \"nu\": [\"latn\"] },\n\t\t\"gez\": { \"nu\": [\"latn\"] },\n\t\t\"gez-ER\": { \"nu\": [\"latn\"] },\n\t\t\"gl\": { \"nu\": [\"latn\"] },\n\t\t\"gn\": { \"nu\": [\"latn\"] },\n\t\t\"gsw\": { \"nu\": [\"latn\"] },\n\t\t\"gsw-FR\": { \"nu\": [\"latn\"] },\n\t\t\"gsw-LI\": { \"nu\": [\"latn\"] },\n\t\t\"gu\": { \"nu\": [\"latn\"] },\n\t\t\"guz\": { \"nu\": [\"latn\"] },\n\t\t\"gv\": { \"nu\": [\"latn\"] },\n\t\t\"ha\": { \"nu\": [\"latn\"] },\n\t\t\"ha-Arab\": { \"nu\": [\"latn\"] },\n\t\t\"ha-Arab-SD\": { \"nu\": [\"latn\"] },\n\t\t\"ha-GH\": { \"nu\": [\"latn\"] },\n\t\t\"ha-NE\": { \"nu\": [\"latn\"] },\n\t\t\"haw\": { \"nu\": [\"latn\"] },\n\t\t\"he\": { \"nu\": [\"latn\"] },\n\t\t\"hi\": { \"nu\": [\"latn\"] },\n\t\t\"hi-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"hnj\": { \"nu\": [\"hmnp\", \"latn\"] },\n\t\t\"hnj-Hmnp\": { \"nu\": [\"hmnp\", \"latn\"] },\n\t\t\"hr\": { \"nu\": [\"latn\"] },\n\t\t\"hr-BA\": { \"nu\": [\"latn\"] },\n\t\t\"hsb\": { \"nu\": [\"latn\"] },\n\t\t\"ht\": { \"nu\": [\"latn\"] },\n\t\t\"hu\": { \"nu\": [\"latn\"] },\n\t\t\"hy\": { \"nu\": [\"latn\"] },\n\t\t\"ia\": { \"nu\": [\"latn\"] },\n\t\t\"id\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"ie\": { \"nu\": [\"latn\"] },\n\t\t\"ig\": { \"nu\": [\"latn\"] },\n\t\t\"ii\": { \"nu\": [\"latn\"] },\n\t\t\"io\": { \"nu\": [\"latn\"] },\n\t\t\"is\": { \"nu\": [\"latn\"] },\n\t\t\"it\": { \"nu\": [\"latn\"] },\n\t\t\"it-CH\": { \"nu\": [\"latn\"] },\n\t\t\"it-SM\": { \"nu\": [\"latn\"] },\n\t\t\"it-VA\": { \"nu\": [\"latn\"] },\n\t\t\"iu\": { \"nu\": [\"latn\"] },\n\t\t\"iu-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"ja\": { \"nu\": [\"latn\"] },\n\t\t\"jbo\": { \"nu\": [\"latn\"] },\n\t\t\"jgo\": { \"nu\": [\"latn\"] },\n\t\t\"jmc\": { \"nu\": [\"latn\"] },\n\t\t\"jv\": { \"nu\": [\"latn\"] },\n\t\t\"ka\": { \"nu\": [\"latn\"] },\n\t\t\"kaa\": { \"nu\": [\"latn\"] },\n\t\t\"kaa-Cyrl\": { \"nu\": [\"latn\"] },\n\t\t\"kaa-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"kab\": { \"nu\": [\"latn\"] },\n\t\t\"kaj\": { \"nu\": [\"latn\"] },\n\t\t\"kam\": { \"nu\": [\"latn\"] },\n\t\t\"kcg\": { \"nu\": [\"latn\"] },\n\t\t\"kde\": { \"nu\": [\"latn\"] },\n\t\t\"kea\": { \"nu\": [\"latn\"] },\n\t\t\"kek\": { \"nu\": [\"latn\"] },\n\t\t\"ken\": { \"nu\": [\"latn\"] },\n\t\t\"kgp\": { \"nu\": [\"latn\"] },\n\t\t\"khq\": { \"nu\": [\"latn\"] },\n\t\t\"ki\": { \"nu\": [\"latn\"] },\n\t\t\"kk\": { \"nu\": [\"latn\"] },\n\t\t\"kk-Arab\": { \"nu\": [\"latn\"] },\n\t\t\"kk-Cyrl\": { \"nu\": [\"latn\"] },\n\t\t\"kk-KZ\": { \"nu\": [\"latn\"] },\n\t\t\"kkj\": { \"nu\": [\"latn\"] },\n\t\t\"kl\": { \"nu\": [\"latn\"] },\n\t\t\"kln\": { \"nu\": [\"latn\"] },\n\t\t\"km\": { \"nu\": [\"latn\"] },\n\t\t\"kn\": { \"nu\": [\"latn\"] },\n\t\t\"ko\": { \"nu\": [\"latn\"] },\n\t\t\"ko-CN\": { \"nu\": [\"latn\"] },\n\t\t\"ko-KP\": { \"nu\": [\"latn\"] },\n\t\t\"kok\": { \"nu\": [\"latn\"] },\n\t\t\"kok-Deva\": { \"nu\": [\"latn\"] },\n\t\t\"kok-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"kpe\": { \"nu\": [\"latn\"] },\n\t\t\"kpe-GN\": { \"nu\": [\"latn\"] },\n\t\t\"ks\": { \"nu\": [\"arabext\"] },\n\t\t\"ks-Arab\": { \"nu\": [\"arabext\"] },\n\t\t\"ks-Deva\": { \"nu\": [\"latn\"] },\n\t\t\"ksb\": { \"nu\": [\"latn\"] },\n\t\t\"ksf\": { \"nu\": [\"latn\"] },\n\t\t\"ksh\": { \"nu\": [\"latn\"] },\n\t\t\"ku\": { \"nu\": [\"latn\"] },\n\t\t\"ku-Arab\": { \"nu\": [\"latn\"] },\n\t\t\"ku-Arab-IR\": { \"nu\": [\"latn\"] },\n\t\t\"ku-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"ku-Latn-IQ\": { \"nu\": [\"latn\"] },\n\t\t\"ku-Latn-SY\": { \"nu\": [\"latn\"] },\n\t\t\"ku-TR\": { \"nu\": [\"latn\"] },\n\t\t\"kw\": { \"nu\": [\"latn\"] },\n\t\t\"kxv\": { \"nu\": [\"latn\"] },\n\t\t\"kxv-Deva\": { \"nu\": [\"latn\"] },\n\t\t\"kxv-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"kxv-Orya\": { \"nu\": [\"latn\"] },\n\t\t\"kxv-Telu\": { \"nu\": [\"latn\"] },\n\t\t\"ky\": { \"nu\": [\"latn\"] },\n\t\t\"la\": { \"nu\": [\"latn\"] },\n\t\t\"lag\": { \"nu\": [\"latn\"] },\n\t\t\"lb\": { \"nu\": [\"latn\"] },\n\t\t\"lg\": { \"nu\": [\"latn\"] },\n\t\t\"lij\": { \"nu\": [\"latn\"] },\n\t\t\"lkt\": { \"nu\": [\"latn\"] },\n\t\t\"lld\": { \"nu\": [\"latn\"] },\n\t\t\"lmo\": { \"nu\": [\"latn\"] },\n\t\t\"ln\": { \"nu\": [\"latn\"] },\n\t\t\"ln-AO\": { \"nu\": [\"latn\"] },\n\t\t\"ln-CF\": { \"nu\": [\"latn\"] },\n\t\t\"ln-CG\": { \"nu\": [\"latn\"] },\n\t\t\"lo\": { \"nu\": [\"latn\"] },\n\t\t\"lrc\": { \"nu\": [\"arabext\"] },\n\t\t\"lrc-IQ\": { \"nu\": [\"arabext\"] },\n\t\t\"lt\": { \"nu\": [\"latn\"] },\n\t\t\"ltg\": { \"nu\": [\"latn\"] },\n\t\t\"lu\": { \"nu\": [\"latn\"] },\n\t\t\"luo\": { \"nu\": [\"latn\"] },\n\t\t\"luy\": { \"nu\": [\"latn\"] },\n\t\t\"lv\": { \"nu\": [\"latn\"] },\n\t\t\"lzz\": { \"nu\": [\"latn\"] },\n\t\t\"mai\": { \"nu\": [\"latn\"] },\n\t\t\"mas\": { \"nu\": [\"latn\"] },\n\t\t\"mas-TZ\": { \"nu\": [\"latn\"] },\n\t\t\"mdf\": { \"nu\": [\"latn\"] },\n\t\t\"mer\": { \"nu\": [\"latn\"] },\n\t\t\"mfe\": { \"nu\": [\"latn\"] },\n\t\t\"mg\": { \"nu\": [\"latn\"] },\n\t\t\"mgh\": { \"nu\": [\"latn\"] },\n\t\t\"mgo\": { \"nu\": [\"latn\"] },\n\t\t\"mhn\": { \"nu\": [\"latn\"] },\n\t\t\"mi\": { \"nu\": [\"latn\"] },\n\t\t\"mic\": { \"nu\": [\"latn\"] },\n\t\t\"mk\": { \"nu\": [\"latn\"] },\n\t\t\"ml\": { \"nu\": [\"latn\"] },\n\t\t\"mn\": { \"nu\": [\"latn\"] },\n\t\t\"mn-Mong\": { \"nu\": [\"latn\"] },\n\t\t\"mn-Mong-MN\": { \"nu\": [\"latn\"] },\n\t\t\"mni\": { \"nu\": [\"beng\"] },\n\t\t\"mni-Beng\": { \"nu\": [\"beng\"] },\n\t\t\"mni-Mtei\": { \"nu\": [\"mtei\"] },\n\t\t\"moh\": { \"nu\": [\"latn\"] },\n\t\t\"mr\": { \"nu\": [\"deva\"] },\n\t\t\"ms\": { \"nu\": [\"latn\"] },\n\t\t\"ms-Arab\": { \"nu\": [\"latn\"] },\n\t\t\"ms-Arab-BN\": { \"nu\": [\"latn\"] },\n\t\t\"ms-BN\": { \"nu\": [\"latn\"] },\n\t\t\"ms-ID\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"ms-SG\": { \"nu\": [\"latn\"] },\n\t\t\"mt\": { \"nu\": [\"latn\"] },\n\t\t\"mua\": { \"nu\": [\"latn\"] },\n\t\t\"mus\": { \"nu\": [\"latn\"] },\n\t\t\"mww\": { \"nu\": [\"hmnp\", \"latn\"] },\n\t\t\"mww-Hmnp\": { \"nu\": [\"hmnp\", \"latn\"] },\n\t\t\"my\": { \"nu\": [\"mymr\"] },\n\t\t\"myv\": { \"nu\": [\"latn\"] },\n\t\t\"mzn\": { \"nu\": [\"arabext\"] },\n\t\t\"naq\": { \"nu\": [\"latn\"] },\n\t\t\"nb\": { \"nu\": [\"latn\"] },\n\t\t\"nb-SJ\": { \"nu\": [\"latn\"] },\n\t\t\"nd\": { \"nu\": [\"latn\"] },\n\t\t\"nds\": { \"nu\": [\"latn\"] },\n\t\t\"nds-NL\": { \"nu\": [\"latn\"] },\n\t\t\"ne\": { \"nu\": [\"deva\"] },\n\t\t\"ne-IN\": { \"nu\": [\"deva\"] },\n\t\t\"nl\": { \"nu\": [\"latn\"] },\n\t\t\"nl-AW\": { \"nu\": [\"latn\"] },\n\t\t\"nl-BE\": { \"nu\": [\"latn\"] },\n\t\t\"nl-BQ\": { \"nu\": [\"latn\"] },\n\t\t\"nl-CW\": { \"nu\": [\"latn\"] },\n\t\t\"nl-SR\": { \"nu\": [\"latn\"] },\n\t\t\"nl-SX\": { \"nu\": [\"latn\"] },\n\t\t\"nmg\": { \"nu\": [\"latn\"] },\n\t\t\"nn\": { \"nu\": [\"latn\"] },\n\t\t\"nnh\": { \"nu\": [\"latn\"] },\n\t\t\"no\": { \"nu\": [\"latn\"] },\n\t\t\"nqo\": { \"nu\": [\"nkoo\"] },\n\t\t\"nr\": { \"nu\": [\"latn\"] },\n\t\t\"nso\": { \"nu\": [\"latn\"] },\n\t\t\"nus\": { \"nu\": [\"latn\"] },\n\t\t\"nv\": { \"nu\": [\"latn\"] },\n\t\t\"ny\": { \"nu\": [\"latn\"] },\n\t\t\"nyn\": { \"nu\": [\"latn\"] },\n\t\t\"oc\": { \"nu\": [\"latn\"] },\n\t\t\"oc-ES\": { \"nu\": [\"latn\"] },\n\t\t\"oka\": { \"nu\": [\"latn\"] },\n\t\t\"oka-US\": { \"nu\": [\"latn\"] },\n\t\t\"om\": { \"nu\": [\"latn\"] },\n\t\t\"om-KE\": { \"nu\": [\"latn\"] },\n\t\t\"or\": { \"nu\": [\"latn\"] },\n\t\t\"os\": { \"nu\": [\"latn\"] },\n\t\t\"os-RU\": { \"nu\": [\"latn\"] },\n\t\t\"osa\": { \"nu\": [\"latn\"] },\n\t\t\"pa\": { \"nu\": [\"latn\"] },\n\t\t\"pa-Arab\": { \"nu\": [\"arabext\"] },\n\t\t\"pa-Guru\": { \"nu\": [\"latn\"] },\n\t\t\"pap\": { \"nu\": [\"latn\"] },\n\t\t\"pap-AW\": { \"nu\": [\"latn\"] },\n\t\t\"pcm\": { \"nu\": [\"latn\"] },\n\t\t\"pi\": { \"nu\": [\"latn\"] },\n\t\t\"pi-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"pis\": { \"nu\": [\"latn\"] },\n\t\t\"pl\": { \"nu\": [\"latn\"] },\n\t\t\"pms\": { \"nu\": [\"latn\"] },\n\t\t\"prg\": { \"nu\": [\"latn\"] },\n\t\t\"ps\": { \"nu\": [\"arabext\"] },\n\t\t\"ps-PK\": { \"nu\": [\"arabext\"] },\n\t\t\"pt\": { \"nu\": [\"latn\"] },\n\t\t\"pt-AO\": { \"nu\": [\"latn\"] },\n\t\t\"pt-CH\": { \"nu\": [\"latn\"] },\n\t\t\"pt-CV\": { \"nu\": [\"latn\"] },\n\t\t\"pt-GQ\": { \"nu\": [\"latn\"] },\n\t\t\"pt-GW\": { \"nu\": [\"latn\"] },\n\t\t\"pt-LU\": { \"nu\": [\"latn\"] },\n\t\t\"pt-MO\": { \"nu\": [\"latn\"] },\n\t\t\"pt-MZ\": { \"nu\": [\"latn\"] },\n\t\t\"pt-PT\": { \"nu\": [\"latn\"] },\n\t\t\"pt-ST\": { \"nu\": [\"latn\"] },\n\t\t\"pt-TL\": { \"nu\": [\"latn\"] },\n\t\t\"qu\": { \"nu\": [\"latn\"] },\n\t\t\"qu-BO\": { \"nu\": [\"latn\"] },\n\t\t\"qu-EC\": { \"nu\": [\"latn\"] },\n\t\t\"quc\": { \"nu\": [\"latn\"] },\n\t\t\"raj\": { \"nu\": [\"deva\"] },\n\t\t\"rhg\": { \"nu\": [\"latn\"] },\n\t\t\"rhg-Rohg\": { \"nu\": [\"latn\"] },\n\t\t\"rhg-Rohg-BD\": { \"nu\": [\"latn\"] },\n\t\t\"rif\": { \"nu\": [\"latn\"] },\n\t\t\"rm\": { \"nu\": [\"latn\"] },\n\t\t\"rn\": { \"nu\": [\"latn\"] },\n\t\t\"ro\": { \"nu\": [\"latn\"] },\n\t\t\"ro-MD\": { \"nu\": [\"latn\"] },\n\t\t\"rof\": { \"nu\": [\"latn\"] },\n\t\t\"ru\": { \"nu\": [\"latn\"] },\n\t\t\"ru-BY\": { \"nu\": [\"latn\"] },\n\t\t\"ru-KG\": { \"nu\": [\"latn\"] },\n\t\t\"ru-KZ\": { \"nu\": [\"latn\"] },\n\t\t\"ru-MD\": { \"nu\": [\"latn\"] },\n\t\t\"ru-UA\": { \"nu\": [\"latn\"] },\n\t\t\"rw\": { \"nu\": [\"latn\"] },\n\t\t\"rwk\": { \"nu\": [\"latn\"] },\n\t\t\"sa\": { \"nu\": [\"deva\"] },\n\t\t\"sah\": { \"nu\": [\"latn\"] },\n\t\t\"saq\": { \"nu\": [\"latn\"] },\n\t\t\"sat\": { \"nu\": [\"olck\"] },\n\t\t\"sat-Deva\": { \"nu\": [\"deva\"] },\n\t\t\"sat-Olck\": { \"nu\": [\"olck\"] },\n\t\t\"sbp\": { \"nu\": [\"latn\"] },\n\t\t\"sc\": { \"nu\": [\"latn\"] },\n\t\t\"scn\": { \"nu\": [\"latn\"] },\n\t\t\"sd\": { \"nu\": [\"arab\"] },\n\t\t\"sd-Arab\": { \"nu\": [\"arab\"] },\n\t\t\"sd-Deva\": { \"nu\": [\"latn\"] },\n\t\t\"sdh\": { \"nu\": [\"arab\"] },\n\t\t\"sdh-IQ\": { \"nu\": [\"arab\"] },\n\t\t\"se\": { \"nu\": [\"latn\"] },\n\t\t\"se-FI\": { \"nu\": [\"latn\"] },\n\t\t\"se-SE\": { \"nu\": [\"latn\"] },\n\t\t\"seh\": { \"nu\": [\"latn\"] },\n\t\t\"ses\": { \"nu\": [\"latn\"] },\n\t\t\"sg\": { \"nu\": [\"latn\"] },\n\t\t\"sgs\": { \"nu\": [\"latn\"] },\n\t\t\"shi\": { \"nu\": [\"latn\"] },\n\t\t\"shi-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"shi-Tfng\": { \"nu\": [\"latn\"] },\n\t\t\"shn\": { \"nu\": [\"latn\"] },\n\t\t\"shn-TH\": { \"nu\": [\"latn\"] },\n\t\t\"si\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"sid\": { \"nu\": [\"latn\"] },\n\t\t\"sk\": { \"nu\": [\"latn\"] },\n\t\t\"skr\": { \"nu\": [\"latn\"] },\n\t\t\"sl\": { \"nu\": [\"latn\"] },\n\t\t\"sma\": { \"nu\": [\"latn\"] },\n\t\t\"sma-NO\": { \"nu\": [\"latn\"] },\n\t\t\"smj\": { \"nu\": [\"latn\"] },\n\t\t\"smj-NO\": { \"nu\": [\"latn\"] },\n\t\t\"smn\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"sms\": { \"nu\": [\"latn\"] },\n\t\t\"sn\": { \"nu\": [\"latn\"] },\n\t\t\"so\": { \"nu\": [\"latn\"] },\n\t\t\"so-DJ\": { \"nu\": [\"latn\"] },\n\t\t\"so-ET\": { \"nu\": [\"latn\"] },\n\t\t\"so-KE\": { \"nu\": [\"latn\"] },\n\t\t\"sq\": { \"nu\": [\"latn\"] },\n\t\t\"sq-MK\": { \"nu\": [\"latn\"] },\n\t\t\"sq-XK\": { \"nu\": [\"latn\"] },\n\t\t\"sr\": { \"nu\": [\"latn\"] },\n\t\t\"sr-Cyrl\": { \"nu\": [\"latn\"] },\n\t\t\"sr-Cyrl-BA\": { \"nu\": [\"latn\"] },\n\t\t\"sr-Cyrl-ME\": { \"nu\": [\"latn\"] },\n\t\t\"sr-Cyrl-XK\": { \"nu\": [\"latn\"] },\n\t\t\"sr-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"sr-Latn-BA\": { \"nu\": [\"latn\"] },\n\t\t\"sr-Latn-ME\": { \"nu\": [\"latn\"] },\n\t\t\"sr-Latn-XK\": { \"nu\": [\"latn\"] },\n\t\t\"ss\": { \"nu\": [\"latn\"] },\n\t\t\"ss-SZ\": { \"nu\": [\"latn\"] },\n\t\t\"ssy\": { \"nu\": [\"latn\"] },\n\t\t\"st\": { \"nu\": [\"latn\"] },\n\t\t\"st-LS\": { \"nu\": [\"latn\"] },\n\t\t\"su\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"su-Latn\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"suz\": { \"nu\": [\"latn\"] },\n\t\t\"suz-Deva\": { \"nu\": [\"latn\"] },\n\t\t\"suz-Sunu\": { \"nu\": [\"latn\"] },\n\t\t\"sv\": { \"nu\": [\"latn\"] },\n\t\t\"sv-AX\": { \"nu\": [\"latn\"] },\n\t\t\"sv-FI\": {\n\t\t\t\"nu\": [\"latn\"],\n\t\t\t\"separator\": { \"latn\": \".\" }\n\t\t},\n\t\t\"sw\": { \"nu\": [\"latn\"] },\n\t\t\"sw-CD\": { \"nu\": [\"latn\"] },\n\t\t\"sw-KE\": { \"nu\": [\"latn\"] },\n\t\t\"sw-UG\": { \"nu\": [\"latn\"] },\n\t\t\"syr\": { \"nu\": [\"latn\"] },\n\t\t\"syr-SY\": { \"nu\": [\"latn\"] },\n\t\t\"szl\": { \"nu\": [\"latn\"] },\n\t\t\"ta\": { \"nu\": [\"latn\"] },\n\t\t\"ta-LK\": { \"nu\": [\"latn\"] },\n\t\t\"ta-MY\": { \"nu\": [\"latn\"] },\n\t\t\"ta-SG\": { \"nu\": [\"latn\"] },\n\t\t\"te\": { \"nu\": [\"latn\"] },\n\t\t\"teo\": { \"nu\": [\"latn\"] },\n\t\t\"teo-KE\": { \"nu\": [\"latn\"] },\n\t\t\"tg\": { \"nu\": [\"latn\"] },\n\t\t\"th\": { \"nu\": [\"latn\"] },\n\t\t\"ti\": { \"nu\": [\"latn\"] },\n\t\t\"ti-ER\": { \"nu\": [\"latn\"] },\n\t\t\"tig\": { \"nu\": [\"latn\"] },\n\t\t\"tk\": { \"nu\": [\"latn\"] },\n\t\t\"tn\": { \"nu\": [\"latn\"] },\n\t\t\"tn-BW\": { \"nu\": [\"latn\"] },\n\t\t\"to\": { \"nu\": [\"latn\"] },\n\t\t\"tok\": { \"nu\": [\"latn\"] },\n\t\t\"tpi\": { \"nu\": [\"latn\"] },\n\t\t\"tr\": { \"nu\": [\"latn\"] },\n\t\t\"tr-CY\": { \"nu\": [\"latn\"] },\n\t\t\"trv\": { \"nu\": [\"latn\"] },\n\t\t\"trw\": { \"nu\": [\"latn\"] },\n\t\t\"ts\": { \"nu\": [\"latn\"] },\n\t\t\"tt\": { \"nu\": [\"latn\"] },\n\t\t\"twq\": { \"nu\": [\"latn\"] },\n\t\t\"tyv\": { \"nu\": [\"latn\"] },\n\t\t\"tzm\": { \"nu\": [\"latn\"] },\n\t\t\"ug\": { \"nu\": [\"latn\"] },\n\t\t\"uk\": { \"nu\": [\"latn\"] },\n\t\t\"und\": { \"nu\": [\"latn\"] },\n\t\t\"ur\": { \"nu\": [\"latn\"] },\n\t\t\"ur-IN\": {\n\t\t\t\"nu\": [\"arabext\"],\n\t\t\t\"separator\": { \"arabext\": \"٫\" }\n\t\t},\n\t\t\"uz\": { \"nu\": [\"latn\"] },\n\t\t\"uz-Arab\": { \"nu\": [\"arabext\"] },\n\t\t\"uz-Cyrl\": { \"nu\": [\"latn\"] },\n\t\t\"uz-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"vai\": { \"nu\": [\"latn\"] },\n\t\t\"vai-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"vai-Vaii\": { \"nu\": [\"latn\"] },\n\t\t\"ve\": { \"nu\": [\"latn\"] },\n\t\t\"vec\": { \"nu\": [\"latn\"] },\n\t\t\"vi\": { \"nu\": [\"latn\"] },\n\t\t\"vmw\": { \"nu\": [\"latn\"] },\n\t\t\"vo\": { \"nu\": [\"latn\"] },\n\t\t\"vun\": { \"nu\": [\"latn\"] },\n\t\t\"wa\": { \"nu\": [\"latn\"] },\n\t\t\"wae\": { \"nu\": [\"latn\"] },\n\t\t\"wal\": { \"nu\": [\"latn\"] },\n\t\t\"wbp\": { \"nu\": [\"latn\"] },\n\t\t\"wo\": { \"nu\": [\"latn\"] },\n\t\t\"xh\": { \"nu\": [\"latn\"] },\n\t\t\"xnr\": { \"nu\": [\"latn\"] },\n\t\t\"xog\": { \"nu\": [\"latn\"] },\n\t\t\"yav\": { \"nu\": [\"latn\"] },\n\t\t\"yi\": { \"nu\": [\"latn\"] },\n\t\t\"yo\": { \"nu\": [\"latn\"] },\n\t\t\"yo-BJ\": { \"nu\": [\"latn\"] },\n\t\t\"yrl\": { \"nu\": [\"latn\"] },\n\t\t\"yrl-CO\": { \"nu\": [\"latn\"] },\n\t\t\"yrl-VE\": { \"nu\": [\"latn\"] },\n\t\t\"yue\": { \"nu\": [\"latn\"] },\n\t\t\"yue-Hans\": { \"nu\": [\"latn\"] },\n\t\t\"yue-Hant\": { \"nu\": [\"latn\"] },\n\t\t\"yue-Hant-CN\": { \"nu\": [\"latn\"] },\n\t\t\"yue-Hant-MO\": { \"nu\": [\"latn\"] },\n\t\t\"za\": { \"nu\": [\"latn\"] },\n\t\t\"zgh\": { \"nu\": [\"latn\"] },\n\t\t\"zh\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Hans\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Hans-HK\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Hans-MO\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Hans-MY\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Hans-SG\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Hant\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Hant-HK\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Hant-MO\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Hant-MY\": { \"nu\": [\"latn\"] },\n\t\t\"zh-Latn\": { \"nu\": [\"latn\"] },\n\t\t\"zu\": { \"nu\": [\"latn\"] }\n\t}\n};\n","// Core implementation of Intl.DurationFormat polyfill\n// Follows the TC39 Intl.DurationFormat proposal specification\nimport { CanonicalizeLocaleList, GetNumberOption, GetOption, OrdinaryHasInstance, SupportedLocales, ToObject, invariant } from \"@formatjs/ecma402-abstract\";\nimport { ResolveLocale } from \"@formatjs/intl-localematcher\";\nimport { GetDurationUnitOptions } from \"./abstract/GetDurationUnitOptions.js\";\nimport { PartitionDurationFormatPattern } from \"./abstract/PartitionDurationFormatPattern.js\";\nimport { ToDurationRecord } from \"./abstract/ToDurationRecord.js\";\nimport { getInternalSlots } from \"./get_internal_slots.js\";\nimport { numberingSystemNames } from \"./numbering-systems.generated.js\";\nimport { TIME_SEPARATORS } from \"./time-separators.generated.js\";\nimport \"./types.js\";\n// Keys that should be included in resolvedOptions() output\n// These represent all the configurable options for duration formatting\nconst RESOLVED_OPTIONS_KEYS = [\n\t\"locale\",\n\t\"style\",\n\t\"years\",\n\t\"yearsDisplay\",\n\t\"months\",\n\t\"monthsDisplay\",\n\t\"weeks\",\n\t\"weeksDisplay\",\n\t\"days\",\n\t\"daysDisplay\",\n\t\"hours\",\n\t\"hoursDisplay\",\n\t\"minutes\",\n\t\"minutesDisplay\",\n\t\"seconds\",\n\t\"secondsDisplay\",\n\t\"milliseconds\",\n\t\"millisecondsDisplay\",\n\t\"microseconds\",\n\t\"microsecondsDisplay\",\n\t\"nanoseconds\",\n\t\"nanosecondsDisplay\",\n\t\"numberingSystem\",\n\t\"fractionalDigits\"\n];\n// Configuration table for all duration units (from spec Table 3)\n// Defines the style and display options for each unit, along with their defaults\n// Units are processed in order from largest (years) to smallest (nanoseconds)\nconst TABLE_3 = [\n\t{\n\t\tstyleSlot: \"years\",\n\t\tdisplaySlot: \"yearsDisplay\",\n\t\tunit: \"years\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\"\n\t\t],\n\t\tdigitalDefault: \"short\"\n\t},\n\t{\n\t\tstyleSlot: \"months\",\n\t\tdisplaySlot: \"monthsDisplay\",\n\t\tunit: \"months\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\"\n\t\t],\n\t\tdigitalDefault: \"short\"\n\t},\n\t{\n\t\tstyleSlot: \"weeks\",\n\t\tdisplaySlot: \"weeksDisplay\",\n\t\tunit: \"weeks\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\"\n\t\t],\n\t\tdigitalDefault: \"short\"\n\t},\n\t{\n\t\tstyleSlot: \"days\",\n\t\tdisplaySlot: \"daysDisplay\",\n\t\tunit: \"days\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\"\n\t\t],\n\t\tdigitalDefault: \"short\"\n\t},\n\t{\n\t\tstyleSlot: \"hours\",\n\t\tdisplaySlot: \"hoursDisplay\",\n\t\tunit: \"hours\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\",\n\t\t\t\"numeric\",\n\t\t\t\"2-digit\"\n\t\t],\n\t\tdigitalDefault: \"numeric\"\n\t},\n\t{\n\t\tstyleSlot: \"minutes\",\n\t\tdisplaySlot: \"minutesDisplay\",\n\t\tunit: \"minutes\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\",\n\t\t\t\"numeric\",\n\t\t\t\"2-digit\"\n\t\t],\n\t\tdigitalDefault: \"numeric\"\n\t},\n\t{\n\t\tstyleSlot: \"seconds\",\n\t\tdisplaySlot: \"secondsDisplay\",\n\t\tunit: \"seconds\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\",\n\t\t\t\"numeric\",\n\t\t\t\"2-digit\"\n\t\t],\n\t\tdigitalDefault: \"numeric\"\n\t},\n\t{\n\t\tstyleSlot: \"milliseconds\",\n\t\tdisplaySlot: \"millisecondsDisplay\",\n\t\tunit: \"milliseconds\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\",\n\t\t\t\"numeric\"\n\t\t],\n\t\tdigitalDefault: \"numeric\"\n\t},\n\t{\n\t\tstyleSlot: \"microseconds\",\n\t\tdisplaySlot: \"microsecondsDisplay\",\n\t\tunit: \"microseconds\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\",\n\t\t\t\"numeric\"\n\t\t],\n\t\tdigitalDefault: \"numeric\"\n\t},\n\t{\n\t\tstyleSlot: \"nanoseconds\",\n\t\tdisplaySlot: \"nanosecondsDisplay\",\n\t\tunit: \"nanoseconds\",\n\t\tvalues: [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\",\n\t\t\t\"numeric\"\n\t\t],\n\t\tdigitalDefault: \"numeric\"\n\t}\n];\n/**\n* DurationFormat provides locale-sensitive duration formatting\n* Implements the Intl.DurationFormat API from the TC39 proposal\n*/\nexport class DurationFormat {\n\tconstructor(locales, options) {\n\t\t// Ensure constructor is called with 'new' keyword\n\t\t// test262/test/intl402/ListFormat/constructor/constructor/newtarget-undefined.js\n\t\t// Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n\t\tconst newTarget = this && this instanceof DurationFormat ? this.constructor : void 0;\n\t\tif (!newTarget) {\n\t\t\tthrow new TypeError(\"Intl.DurationFormat must be called with 'new'\");\n\t\t}\n\t\t// Canonicalize the requested locales into a standard format\n\t\tconst requestedLocales = CanonicalizeLocaleList(locales);\n\t\tconst opt = Object.create(null);\n\t\tconst opts = options === undefined ? Object.create(null) : ToObject(options);\n\t\t// Get locale matching algorithm preference ('best fit' or 'lookup')\n\t\tconst matcher = GetOption(opts, \"localeMatcher\", \"string\", [\"best fit\", \"lookup\"], \"best fit\");\n\t\t// Get numbering system (e.g., 'latn', 'arab', 'deva')\n\t\tconst numberingSystem = GetOption(opts, \"numberingSystem\", \"string\", undefined, undefined);\n\t\tif (numberingSystem !== undefined && numberingSystemNames.indexOf(numberingSystem) < 0) {\n\t\t\t// Validate that the numbering system is recognized\n\t\t\tthrow RangeError(`Invalid numberingSystems: ${numberingSystem}`);\n\t\t}\n\t\topt.nu = numberingSystem;\n\t\topt.localeMatcher = matcher;\n\t\t// Resolve the best matching locale from available locales\n\t\tconst { localeData, availableLocales } = DurationFormat;\n\t\tconst r = ResolveLocale(\n\t\t\tavailableLocales,\n\t\t\trequestedLocales,\n\t\t\topt,\n\t\t\t// [[RelevantExtensionKeys]] slot - only 'nu' (numbering system) is supported\n\t\t\t[\"nu\"],\n\t\t\tlocaleData,\n\t\t\tDurationFormat.getDefaultLocale\n\t\t);\n\t\tconst locale = r.locale;\n\t\t// Initialize internal slots for this formatter instance\n\t\tconst internalSlots = getInternalSlots(this);\n\t\tinternalSlots.initializedDurationFormat = true;\n\t\tinternalSlots.locale = locale;\n\t\tinternalSlots.numberingSystem = r.nu;\n\t\t// Get overall formatting style: 'long' (3 hours), 'short' (3 hr), 'narrow' (3h), or 'digital' (3:00:00)\n\t\tconst style = GetOption(opts, \"style\", \"string\", [\n\t\t\t\"long\",\n\t\t\t\"short\",\n\t\t\t\"narrow\",\n\t\t\t\"digital\"\n\t\t], \"short\");\n\t\tinternalSlots.style = style;\n\t\tinternalSlots.dataLocale = r.dataLocale;\n\t\t// Process each duration unit (years through nanoseconds) to determine\n\t\t// its display style and when to show it (always/auto/never)\n\t\tlet prevStyle = \"\";\n\t\tTABLE_3.forEach((row) => {\n\t\t\tconst { styleSlot, displaySlot, unit, values: valueList, digitalDefault: digitalBase } = row;\n\t\t\t// Get the style and display options for this unit\n\t\t\tconst unitOptions = GetDurationUnitOptions(unit, opts, style, valueList, digitalBase, prevStyle);\n\t\t\tinternalSlots[styleSlot] = unitOptions.style;\n\t\t\tinternalSlots[displaySlot] = unitOptions.display;\n\t\t\t// Track the previous style for time units (hours through microseconds)\n\t\t\t// This is used to ensure consistent digital formatting across related units\n\t\t\tif (unit === \"hours\" || unit === \"minutes\" || unit === \"seconds\" || unit === \"milliseconds\" || unit === \"microseconds\") {\n\t\t\t\tprevStyle = unitOptions.style;\n\t\t\t}\n\t\t});\n\t\t// Get the number of fractional digits for sub-second precision (0-9)\n\t\tinternalSlots.fractionalDigits = GetNumberOption(opts, \"fractionalDigits\", 0, 9, undefined);\n\t}\n\tresolvedOptions() {\n\t\tif (typeof this !== \"object\" || !OrdinaryHasInstance(DurationFormat, this)) {\n\t\t\tthrow TypeError(\"Method Intl.DurationFormat.prototype.resolvedOptions called on incompatible receiver\");\n\t\t}\n\t\tconst internalSlots = getInternalSlots(this);\n\t\tconst ro = {};\n\t\tfor (const key of RESOLVED_OPTIONS_KEYS) {\n\t\t\tlet v = internalSlots[key];\n\t\t\tif (key === \"fractionalDigits\") {\n\t\t\t\tif (v !== undefined) {\n\t\t\t\t\tv = Number(v);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tinvariant(v !== undefined, `Missing internal slot ${key}`);\n\t\t\t}\n\t\t\tro[key] = v;\n\t\t}\n\t\treturn ro;\n\t}\n\tformatToParts(duration) {\n\t\tconst locInternalSlots = getInternalSlots(this);\n\t\tif (locInternalSlots.initializedDurationFormat === undefined) {\n\t\t\tthrow new TypeError(\"Error uninitialized locale\");\n\t\t}\n\t\tconst record = ToDurationRecord(duration);\n\t\tconst parts = PartitionDurationFormatPattern(this, record);\n\t\tconst result = [];\n\t\tfor (const { type, unit, value } of parts) {\n\t\t\tconst obj = {\n\t\t\t\ttype,\n\t\t\t\tvalue\n\t\t\t};\n\t\t\tif (unit) {\n\t\t\t\tobj.unit = unit;\n\t\t\t}\n\t\t\tresult.push(obj);\n\t\t}\n\t\treturn result;\n\t}\n\tformat(duration) {\n\t\tconst locInternalSlots = getInternalSlots(this);\n\t\tif (locInternalSlots.initializedDurationFormat === undefined) {\n\t\t\tthrow new TypeError(\"Error uninitialized locale\");\n\t\t}\n\t\tconst record = ToDurationRecord(duration);\n\t\tconst parts = PartitionDurationFormatPattern(this, record);\n\t\tlet result = \"\";\n\t\tfor (const { value } of parts) {\n\t\t\tresult += value;\n\t\t}\n\t\treturn result;\n\t}\n\tstatic supportedLocalesOf(locales, options) {\n\t\treturn SupportedLocales(DurationFormat.availableLocales, CanonicalizeLocaleList(locales), options);\n\t}\n\tstatic __defaultLocale = \"en\";\n\tstatic availableLocales = new Set();\n\tstatic localeData = Object.keys(TIME_SEPARATORS.localeData).reduce((all, locale) => {\n\t\tDurationFormat.availableLocales.add(locale);\n\t\tconst nu = TIME_SEPARATORS.localeData[locale].nu;\n\t\tall[locale] = {\n\t\t\tnu,\n\t\t\tdigitalFormat: TIME_SEPARATORS.localeData[locale].separator || nu.reduce((separators, n) => {\n\t\t\t\tseparators[n] = TIME_SEPARATORS.default;\n\t\t\t\treturn separators;\n\t\t\t}, {})\n\t\t};\n\t\treturn all;\n\t}, {});\n\tstatic getDefaultLocale = () => {\n\t\treturn DurationFormat.__defaultLocale;\n\t};\n\tstatic polyfilled = true;\n}\n","import { DurationFormat } from \"./index.js\";\nif (typeof Intl === \"undefined\") {\n\tif (typeof window !== \"undefined\") {\n\t\tObject.defineProperty(window, \"Intl\", { value: {} });\n\t} else if (typeof global !== \"undefined\") {\n\t\t// @ts-ignore we don't include @types/node so global isn't a thing\n\t\tObject.defineProperty(global, \"Intl\", { value: {} });\n\t}\n}\nObject.defineProperty(Intl, \"DurationFormat\", { value: DurationFormat });\n"],"names":["CanonicalizeLocaleList","locales","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","PI","DEFAULTS","inexact","quadrant","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","tag","mathfloor","mathpow","isBinary","isHex","isOctal","isDecimal","BASE","LOG_BASE","MAX_SAFE_INTEGER","LN10_PRECISION","PI_PRECISION","P","x","finalise","min","max","k","Ctor","y","i","j","xdL","ydL","xd","yd","xs","ys","pr","rm","cosine","toLessThanHalfPi","m","n","r","rep","s","sd","t","t3","t3plusx","digitsToString","divide","w","d","len","one","tinyPow","taylorSeries","cosh2_x","d8","sinh2_x","d5","d16","d20","getPi","wpr","xsd","halfPi","px","x2","base","isBase10","denominator","inf","num","arg","guard","naturalLogarithm","getLn10","checkRoundingDigits","e","xe","xLTy","getBase10Exponent","q","naturalExponential","carry","z","getPrecision","sine","rL","toStringBinary","dp","checkInt32","str","finiteToString","maxD","d0","d1","d2","n0","n1","yn","intPow","ws","indexOfLastWord","getZeroString","repeating","di","rd","convertBase","baseIn","baseOut","arr","arrL","strL","cos2x","multiplyInteger","temp","compare","b","aL","bL","subtract","cmp","logBase","more","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","sign","isTruncated","digits","roundUp","xdi","out","isExp","nonFiniteToString","zs","truncate","isOdd","maxOrMin","args","pow","sum","c","c0","numerator","x1","parseDecimal","parseOther","divisor","isFloat","p","Decimal","sin2_x","isHyperbolic","isNeg","pi","abs","acos","acosh","add","asin","asinh","atan","atanh","atan2","cbrt","ceil","clamp","config","obj","v","useDefaults","ps","cos","cosh","clone","isDecimalInstance","div","exp","floor","hypot","ln","log","log10","log2","mod","mul","random","round","sin","sinh","sqrt","sub","tan","tanh","trunc","ZERO","memoize","fn","options","cache","cacheDefault","serializer","serializerDefault","strategyDefault","isPrimitive","value","monadic","cacheKey","computedValue","variadic","assemble","context","strategy","serialize","strategyVariadic","ObjectWithoutPrototypeCache","key","strategies","invariant","condition","message","Err","createMemoizedNumberFormat","createMemoizedListFormat","ToString","o","ToNumber","primValue","ToPrimitive","ToObject","IsCallable","OrdinaryHasInstance","C","O","internalSlots","OrdinaryToPrimitive","hint","methodNames","name","method","result","input","preferredType","exoticToPrim","DefaultNumberOption","inputVal","fallback","val","GetNumberOption","property","minimum","maximum","GetOption","opts","prop","type","values","data","regions","UNICODE_EXTENSION_SEQUENCE_REGEX","DEFAULT_MATCHING_THRESHOLD","PROCESSED_DATA","processData","paradigmLocales","jsonData","matchVariables","all","l","isMatched","locale","languageMatchInfoLocale","language","script","region","matches","shouldInclude","expandedMatchedRegions","list","serializeLSR","lsr","findMatchingDistanceForLSR","desired","supported","distance","findMatchingDistanceImpl","desiredLocale","supportedLocale","desiredLSR","supportedLSR","matchingDistance","findMatchingDistance","getFallbackCandidates","candidates","current","lastDash","canonicalizedSupportedCache","findBestMatch","requestedLocales","supportedLocales","threshold","lowestDistance","canonicalizedSupportedLocales","supportedSet","maximized","maximizedCandidates","candidate","canonicalLocale","supportedIndex","originalSupported","finalDistance","BestFitMatcher","availableLocales","getDefaultLocale","foundLocale","extension","noExtensionLocales","noExtensionLocaleMap","noExtensionLocale","CanonicalizeUValue","ukey","uvalue","lowerValue","CanonicalizeUnicodeLocaleId","InsertUnicodeExtensionAndCanonicalize","attributes","keywords","attr","kw","privateIndex","newLocale","preExtension","postExtension","availableLocalesSetCache","BestAvailableLocale","availableSet","pos","LookupMatcher","availableLocale","UnicodeExtensionComponents","keyword","size","subtag","ResolveLocale","relevantExtensionKeys","localeData","matcher","foundLocaleData","components","supportedKeywords","keyLocaleData","supportedKeyword","entry","requestedValue","optionsValue","supportedAttributes","LookupSupportedLocales","subset","SupportedLocales","GetDurationUnitOptions","unit","baseStyle","stylesList","digitalBase","prevStyle","style","displayDefault","displayField","display","TABLE_1","TABLE_2","internalSlotMap","getInternalSlots","PartitionDurationFormatPattern","df","duration","done","separated","dataLocale","dataLocaleData","DurationFormat","numberingSystem","separator","row","numberFormatUnit","nfOpts","nextStyle","nf","lfOpts","listStyle","lf","strings","parts","string","formatted","resultIndex","resultLength","flattened","part","DurationRecordSign","record","IsValidDurationRecord","ToIntegerIfIntegral","number","ToDurationRecord","numberingSystemNames","TIME_SEPARATORS","RESOLVED_OPTIONS_KEYS","TABLE_3","opt","styleSlot","displaySlot","valueList","unitOptions","ro","nu","separators"],"mappings":"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ACV,UAAW,GACb,CAAE,EACD,CAAE,SAAU,CACX,SAAU,SACV,UAAW,GACb,CAAE,EACD,CAAE,iBAAkB,CACnB,SAAU,iBACV,UAAW,GACb,CAAE,EACD,CAAE,kBAAmB,CACpB,SAAU,kBACV,UAAW,GACb,CAAE,EACD,CAAE,SAAU,CACX,SAAU,SACV,UAAW,GACb,CAAE,EACD,CAAE,iBAAkB,CACnB,SAAU,iBACV,UAAW,GACb,CAAE,EACD,CAAE,kBAAmB,CACpB,SAAU,kBACV,UAAW,GACb,CAAE,EACD,CAAE,YAAa,CACd,SAAU,YACV,UAAW,GACb,CAAE,EACD,CAAE,QAAS,CACV,SAAU,QACV,UAAW,GACb,CAAE,CACF,CAAC,EAAI,ECpzDQC,GAAU,CACtB,MAAO,CACN,MACA,sBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,sBACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,MACA,MACA,MACA,sBACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,IAAO,CACN,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,IACF,EACC,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,IAAO,CACN,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,IAAO,CACN,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,IAAO,CACN,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,GAAI,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,GAAI,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EACC,GAAI,CACH,KACA,KACA,KACA,KACA,KACA,IACF,EACC,GAAI,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAC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M,UAAY,SACrBD,EAAO,QAAUiK,EAAoBhK,EAAM,OAAO,GAE/CA,EAAM,SAAW,SACpBD,EAAO,OAASiK,EAAoBhK,EAAM,MAAM,GAE7CA,EAAM,cAAgB,SACzBD,EAAO,YAAciK,EAAoBhK,EAAM,WAAW,GAEvDA,EAAM,UAAY,SACrBD,EAAO,QAAUiK,EAAoBhK,EAAM,OAAO,GAE/CA,EAAM,QAAU,SACnBD,EAAO,MAAQiK,EAAoBhK,EAAM,KAAK,GAE3CA,EAAM,QAAU,SACnBD,EAAO,MAAQiK,EAAoBhK,EAAM,KAAK,GAE3CA,EAAM,QAAU,QAAaA,EAAM,SAAW,QAAaA,EAAM,QAAU,QAAaA,EAAM,OAAS,QAAaA,EAAM,QAAU,QAAaA,EAAM,UAAY,QAAaA,EAAM,UAAY,QAAaA,EAAM,eAAiB,QAAaA,EAAM,eAAiB,QAAaA,EAAM,cAAgB,OAChT,MAAM,IAAI,UAAU,yBAAyB,EAE9C,GAAI,CAAC+J,GAAsBhK,CAAM,EAChC,MAAM,IAAI,WAAW,yBAAyB,EAE/C,OAAOA,CACR,CC3DO,MAAMoK,GAAuB,CACnC,OACA,OACA,OACA,UACA,OACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,WACA,OACA,OACA,OACA,OACA,OACA,UACA,OACA,OACA,OACA,WACA,UACA,OACA,UACA,OACA,UACA,OACA,OACA,OACA,OACA,OACA,UACA,WACA,OACA,OACA,OACA,OACA,OACA,OACA,WACA,OACA,OACA,OACA,OACA,WACA,UACA,WACA,WACA,WACA,OACA,OACA,OACA,OACA,OACA,OACA,WACA,UACA,WACA,WACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,WACA,OACA,QACA,WACA,OACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACD,EChGaC,GAAkB,CAC9B,QAAW,IACX,WAAc,CACb,GAAM,CAAE,GAAM,CAAC,MAAM,CAAC,EACtB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EA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AAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAA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,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,CAAE,GAAM,CAAC,MAAM,CAAC,EACzB,QAAS,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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]}